zoukankan      html  css  js  c++  java
  • ifconfig

        怎么查看 IP 地址,在 Windows 上是 ipconfig,在 Linux 上是 ifconfig。在 Linux 上还有 ip addr。

        登录进入一个被裁剪过的非常小的 Linux 系统中,发现既没有 ifconfig 命令,也没有 ip addr 命令,这个时候,可以自行安装 net-tools 和 iproute2 这两个工具。安装好后,运行一下 ip addr。会输出下面的内容。

    root@test:~# ip addr
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
    valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether fa:16:3e:c7:79:75 brd ff:ff:ff:ff:ff:ff
    inet 10.100.122.2/24 brd 10.100.122.255 scope global eth0
    valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fec7:7975/64 scope link
    valid_lft forever preferred_lft forever
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        这个命令显示了这台机器上所有的网卡。大部分的网卡都会有一个 IP 地址。

        IP 地址是一个网卡在网络世界的通讯地址,相当于现实世界的门牌号码。既然是门牌号码,不能大家都一样,不然就会起冲突。有时候的电脑弹出网络地址冲突,出现上不去网的情况,多半是 IP 地址冲突了。

        如上输出的结果,10.100.122.2 就是一个 IP 地址。这个地址被点分隔为四个部分,每个部分 8 个 bit,所以 IP 地址总共是 32 位。这样产生的 IP 地址的数量很快就不够用了。因为不够用,于是就有了 IPv6,也就是上面输出结果里面 inet6 fe80::f816:3eff:fec7:7975/64。这个有 128 位。

        32 位的 IP 地址被分成了 5 类。

        在网络地址中,对于 A、B、 C 类主要分两部分,前面一部分是网络号,后面一部分是主机号。

        下表展示了 A、B、C 三类地址所能包含的主机的数量。

        由于 C 类地址能包含的最大主机数量实在太少了,只有 254 个。而 B 类地址能包含的最大主机数量又太多了。6 万多台机器放在一个网络下面,一般的企业基本达不到这个规模,闲着的地址就是浪费。

    无类型域间选路(CIDR)
        无类型域间选路,简称CIDR。这种方式打破了原来设计的几类地址的做法,将 32 位的 IP 地址一分为二,前面是网络号,后面是主机号。注意观察的话可以看到,10.100.122.2/24,这个 IP 地址中有一个斜杠,斜杠后面有个数字 24。这种地址表示形式,就是 CIDR。后面 24 的意思是,32 位中,前 24 位是网络号,后 8 位是主机号。

        伴随着 CIDR 存在的,一个是广播地址,10.100.122.255。如果发送这个地址,所有 10.100.122 网络里面的机器都可以收到。另一个是子网掩码,255.255.255.0。

        将子网掩码和 IP 地址进行 AND 计算。前面三个 255,转成二进制都是 1。1 和任何数值取 AND,都是原来数值,因而前三个数不变,为 10.100.122。后面一个 0,转换成二进制是 0,0 和任何数值取 AND,都是 0,因而最后一个数变为 0,合起来就是 10.100.122.0。这就是网络号。将子网掩码和 IP 地址按位计算 AND,就可得到网络号。

    公有 IP 地址和私有 IP 地址

        表格最右列是私有 IP 地址段。平时看到的数据中心里,办公室、家里或学校的 IP 地址,一般都是私有 IP 地址段。因为这些地址允许组织内部的 IT 人员自己管理、自己分配,而且可以重复。因此,不同学校的某个私有 IP 地址可以是一样的。

        公有 IP 地址有个组织统一分配,需要去买。如果搭建一个网站,给学校的人使用,让学校的 IT 人员给一个 IP 地址就行。但是假如要做一个类似百度这样的网站,就需要有公有 IP 地址,这样全世界的人才能访问。

        表格中的 192.168.0.x 是最常用的私有 IP 地址。家里有 Wi-Fi,对应就会有一个 IP 地址。一般家里地上网设备不会超过 256 个,所以 /24 基本就够了。

        不需要将十进制转换为二进制 32 位,就能明显看出 192.168.0 是网络号,后面是主机号。而整个网络里面的第一个地址 192.168.0.1,往往就是这个私有网络的出口地址。例如,家里的电脑连接 Wi-Fi,Wi-Fi 路由器的地址就是 192.168.0.1,而 192.168.0.255 就是广播地址。一旦发送这个地址,整个 192.168.0 网络里面的所有机器都能收到。

        在 IP 地址的后面有个 scope,对于 eth0 这张网卡来讲,是 global,说明这张网卡是可以对外的,可以接收来自各个地方的包。对于 lo 来讲,是 host,说明这张网卡仅仅可以供本机相互通信。

        lo 全称是loopback,又称环回接口,往往会被分配到 127.0.0.1 这个地址。这个地址用于本机通信,经过内核处理后直接返回,不会在任何网络中出现。

    MAC 地址
        在 IP 地址的上一行是 link/ether fa:16:3e:c7:79:75 brd ff:ff:ff:ff:ff:ff,这个被称为MAC 地址,是一个网卡的物理地址,用十六进制,6 个 byte 表示。

         MAC 地址号称全局唯一,不会有两个网卡有相同的 MAC 地址,而且网卡自生产出来,就带着这个地址。

        一个网络包要从一个地方传到另一个地方,除了要有确定的地址,还需要有定位功能。而有门牌号码属性的 IP 地址,才是有远程定位功能的。

        MAC 地址像是身份证,是一个唯一的标识。它的唯一性设计是为了组网的时候,不同的网卡放在一个网络里面的时候,可以不用担心冲突。从硬件角度,保证不同的网卡有不同的标识。

        MAC 地址是有一定定位功能的,只不过范围非常有限。

        MAC 地址的通信范围比较小,局限在一个子网里面。例如,从 192.168.0.2/24 访问 192.168.0.3/24 是可以用 MAC 地址的。一旦跨子网,即从 192.168.0.2/24 到 192.168.1.2/24,MAC 地址就不行了,需要 IP 地址起作用了。

    网络设备的状态标识
        BROADCAST,MULTICAST,UP,LOWER_UP > 是net_device flags,网络设备的状态标识。

         UP 表示网卡处于启动的状态;BROADCAST 表示这个网卡有广播地址,可以发送广播包;MULTICAST 表示网卡可以发送多播包;LOWER_UP 表示 L1 是启动的,即网线插着。MTU1500 最大传输单元 MTU 为 1500,这是以太网的默认值。

        网络包是层层封装的。MTU 是二层 MAC 层的概念。MAC 层有 MAC 的头,以太网规定连 MAC 头带正文合起来,不允许超过 1500 个字节。正文里面有 IP 的头、TCP 的头、HTTP 的头。如果放不下,就需要分片来传输。

        qdisc 全称是queueing discipline,中文叫排队规则。内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的 qdisc(排队规则)把数据包加入队列。

        最简单的 qdisc 是 pfifo,它不对进入的数据包做任何的处理,数据包采用先入先出的方式通过队列。pfifo_fast 稍微复杂一些,它的队列包括三个波段(band)。在每个波段里面,使用先进先出规则。

        三个波段(band)的优先级也不相同。band 0 的优先级最高,band 2 的最低。如果 band 0 里面有数据包,系统就不会处理 band 1 里面的数据包,band 1 和 band 2 之间也是一样。

        数据包是按照服务类型(Type of Service,TOS)被分配多三个波段(band)里面的。TOS 是 IP 头里面的一个字段,代表了当前的包是高优先级的,还是低优先级的。

    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    颠倒的价牌|2013年蓝桥杯A组题解析第四题-fishers
    振兴中华|2013年蓝桥杯A组题解析第三题-fishers
    排它平方数|2013年蓝桥杯A组题解析第二题-fishers
    L2-001:dijskstra + 多条最短路径 + 记录中间路径
    2018 蓝桥杯省赛 B 组模拟赛(五)
    差分数组|小a的轰炸游戏-牛客317E
    差分数组
    线性基
    transformer中自注意力和多头注意力的pytorch实现
    transformer中的位置嵌入pytorch代码
  • 原文地址:https://www.cnblogs.com/huhuxixi/p/10784279.html
Copyright © 2011-2022 走看看