• 三 工具虽微小 入门不可少


    Linux使用ifconfig、Windows使用ipconfig

    所谓见微知著,这两个命令虽然是最简单的 IP 查询工具,可是世间最厉害的就是最简单的用到极致,便勘破一切,大道至简。

    闲话少叙,诸位请跟随我走入浩瀚汪洋的网络命令起点,去领略计算机大神们创造的世界。

    既然都是有志于我门之人,咱们还是从旁人接触少的 Linux 系统说起。

    在 Linux 系统之下,除了刚开始提到的 ifconfig 命令,还有 ip addr 命令也能达到类似效果。这二者的渊源,出自于 net-tools 和 iptoute2 两个软件包,当然这两个软件包的爱恨情仇一时半会儿也说不清楚,以后有机会给大家详解。

    当我们登录到 Linux 系统,来敲入 ip addr,输入如下内容:

    ip addr

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN

        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 qlen 1000

        link/ether 8e:5f:34:c9:ec:90 brd ff:ff:ff:ff:ff:ff

        inet 10.6.0.28/24 brd 10.6.0.255 scope global eth0

           valid_lft forever preferred_lft forever

        inet6 fe80::8c5f:34ff:fec9:ec90/64 scope link

    我们首要关注的就是 IP 地址(inet 10.6.0.28/24),IP 地址就是我们现实世界中的地址号码,自然这个地址号码是不能重复的,不然别人根本就找不到你。联想到我们平时网络排障的时候遇到的 IP 地址冲突,导致网络故障。

    10.6.0.28 就是一个 IP 地址,点分十进制的方式分成了四个段,每个段为 8 bit,所以 IP 地址总共是 4 * 8 = 32 bit,到了如今已经枯竭了,至于应对方法,大神们早就准备好了,我们以后再说。

    IP 地址又被分成了A、B、C、D、E五类,A、B、C 日常使用,D、E 为组播和保留使用。

    每个 IP 地址有两个标识 ID ,分别为网络 ID 和 主机 ID。

    同一个网络 ID ,即我们常说的同一个网段,在里面的主机 ID 是可以直接通信的。

    五类的网络 ID 详情如下:

    A 类地址:以 0 开头,第一个字节范围:0~127;

    B 类地址:以 10 开头,第一个字节范围:128~191;

    C 类地址:以 110 开头,第一个字节范围:192~223;

    D 类地址:以 1110 开头,第一个字节范围为 224~239;

    E 类地址:以 1111 开头,保留地址

    下面这个表格,详细地展示了 A、B、C 三类地址所能包含的主机的数量。

     

     

     

    无类型域间选路(CIDR)

    我们看到命令输出的是inet 10.6.0.28/24,有一个“/24”的后缀,既然我们刚刚说到网段,那么怎么计算主机 ID 是否在同一个网段内?就是靠这个称为子网掩码的后缀来计算。

    子网掩码是子网特征的表现,也是 32 bit,网络位全是 1 ,主机位全是 0 。我们看到命令输出的子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0,有一个广播地址brd 10.6.0.255,如果发送这个地址,所有在10.6.0网段内的主机都能收到。

    有了子网掩码,我们就能很容易的判断若干个 IP 地址是否在同一个子网内?

    方法将若干个 IP 地址与子网掩码分别进行 AND 运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。

     

    公有 IP 地址和私有 IP 地址

     

    以上表格展示的就是我们一般家里面、办公室或者学校里面的 IP 地址,这样的话这些组织内部的 IT 管理人员能够自主管理、分配甚至可以和其他组织内的地址重复。

    公有 IP 地址需要和运营商购买,比如说提供对外服务的网站、APP之类的。

     

    咱们继续看命令的输出“scope global eth0”,global 是对外的,可以接收主机以外的包。

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

     

    link/ether 8e:5f:34:c9:ec:90 brd ff:ff:ff:ff:ff:ff,这就是 MAC 地址,是十六进制方式表示,共有6 byte。

    MAC 地址是同一个网段使用,当然要保证不能冲突,如果要跨网段,还是得依赖 IP 地址。

     

    eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

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

    “BROADCAST”表示网卡具备广播地址,可以发送广播包。

    “MULTICAST”表示可以发送多播包。

    “UP”表示网卡处于启用的状态。

    “LOWER_UP”表示接着网线,网卡灯状态正常。

     

    mtu 1500 qdisc pfifo_fast state UP qlen 1000

    “mtu 1500” 最大传输单元 MTU 为 1500,这是以太网的默认值。

    “qdisc”全称是 queueing discipline,中文叫排队规则。

    最简单的qdisc是pfifo,不对进入的数据包做处理,采用先入先出的方式。

    而我们使用命令输出的是pfifo_fast,它是使用三个波段(band)。在每个波段里面,使用先进先出规则。优先级是band 0最高,band 2次之,band 3再次之。

    如果数据包在 band 0里面,那么 band 1的数据包就不会得到处理,band 1 和 band 2 类似之。

    这三个波段(band)是由服务类型(Type of Service,TOS)分配的,由它来决定优先级的顺序。

     

     

  • 相关阅读:
    2019暑假——区域赛真题讲解
    2019暑假杭电训练赛(补题及笔记)
    2019暑假牛客训练赛(补题及笔记)
    网络流——最大流-Dinic算法
    SPFA
    K短路(A*+SPFA)
    从业务架构视角聊聊大型商业银行的转型实践
    互联网 40 岁失业是一个无法打破的魔咒吗
    Hadoop集群中出现的节点有哪些作用
    CDH集群的角色划分
  • 原文地址:https://www.cnblogs.com/sanyuanempire/p/13030384.html
Copyright © 2020-2023  润新知