3. 网络层协议及 IP 编址

3. 网络层协议及 IP 编址

网络基础第三课

网络层协议

网络层经常被称为 IP 层。但网络层协议并不只是 IP 协议,还包括 ICMP(Internet Control Message Protocol)协议、IPX(Internet Packet Exchange)协议等。

IPv4 报文格式

IP Packet(IP 数据包),其包头主要内容如下:

  • Version:4 bit,4:表示为 IPv4;6:表示为 IPv6。

  • Header Length:4 bit,首部长度,如果不带 Option 字段,则为 20,最长为 60。

  • Type of Service:8 bit,服务类型。只有在有 QoS 差分服务要求时,这个字段才起作用。

  • Total Length:16 bit,总长度,整个 IP 数据包的长度。

  • Identification:16 bit,标识,分片重组时会用到该字段。

  • Flags:3 bit,标志位。

  • Fragment Offset:12 bit,片偏移,分片重组时会用到该字段。

  • Time to Live:8 bit,生存时间。

  • Protocol:8 bit,协议:下一层协议。指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个进程处理。

    常见值:

      1: ICMP, Internet Control Message;
      2: IGMP, Internet Group Management;
      6: TCP , Transmission Control Protocol;
      17: UDP, User Datagram Protocol。
    
  • Header Checksum:16 bit,首部检验和。

  • Source IP Address:32 bit,源 IP 地址。

  • Destination IP Address:32 bit,目的IP地址。

  • Options:可变,选项字段。

  • Padding:可变,填充字段,全填0。

IPv4 地址介绍

IP 地址分类(有类编制)

为了方便IP地址的管理及组网,IP地址分成五类:

  • A、B、C、D、E类的类别字段分别是二进制数0、10、110、1110、1111,通过网络号码字段的前几个比特就可以判断IP地址属于哪一类,这是区分各类地址最简单的方法。

  • A、B、C三类地址是单播IP地址 (除一些特殊地址外),只有这三类地址才能分配给主机接口使用。

  • D类地址属于组播 IP 地址。

  • E类地址专门用于特殊的实验目的。

本节内容,只关注A、B、C三类地址。

A、B、C类地址比较:

  • 使用 A 类地址的网络称为 A 类网络;使用 B 类地址的网络称为 B 类网络;使用 C 类地址的网络称为 C 类网络。

  • A 类网络的网络号为 8 bit,个数很少,但所允许的主机接口的个数很多;首位恒定为 0,地址空间为:0.0.0.0 ~ 127.255.255.255。

  • B 类网络的网络号为 16 bit,介于A类和C类网络之间;首两位恒定为10,地址空间为:128.0.0.0 ~ 191.255.255.255。

  • C 类网络的网络号为 24 bit,个数很多,但所允许的主机接口的个数就很少;首三位恒定为 110,地址空间为:192.0.0.0 ~ 223.255.255.255。

注:

  • 主机 (Host),通常指路由器和计算机的统称。并且常把主机的某个接口的IP地址简称为主机IP地址。

  • 组播地址:组播能实现一对多传递消息。

特殊 IP 地址

特殊 IP 地址地址范围作用
有限广播地址255.255.255.255可作为目的地址,发往该网段所有主机(受限于网关)
任意地址0.0.0.0“任何网络”的网络地址;“这个网络上这个主机接口”的 IP 地址
环回地址127.0.0.0/8测试设备自身的软件系统
本地链路地址169.254.0.0/24当主机自动获取地址失败后,可使用该网段中的某个地址进行临时通信

子网划分

为什么要划分子网

  • 一个B类地址用于一个广播域,地址浪费。

  • 广播域太庞大,一旦发生广播,内网不堪重负

  • 将一个网络号划分成多个子网,每个子网分配给一个独立的广播域。如此一来广播域的规模更小、网络规划更加合理。IP 地址得到了合理利用。

如何进行子网划分

  • 现在,将原有的24位网络位向主机位去“借”1位,这样网络位就扩充到了25位,相对的主机位就减少到了7位,而借过来的这1位就是子网位,此时网络掩码就变成了25位,即255.255.255.128,或/25。

  • 子网位:可取值0或取值1,则得到了两个新的子网。

  • 通过计算可知,现在网络中,有128个IP地址。

ICMP 协议

Internet 控制消息协议 ICMP (Internet Control Message Protocol)是 IP 协议的辅助协议

为了更有效地转发 IP 数据报文和提高数据报文交互成功的机会,在网络层使用 ICMP 协议。ICMP 允许主机或设备报告差错情况和提供有关异常情况的报告。

ICMP消息:

ICMP 消息封装在 IP 报文中,IP 报文头部 Protocol 值为 1 时表示 ICMP 协议。

字段解释

  • ICMP 消息的格式取决于 Type 和 Code 字段,其中 Type 字段为消息类型,Code 字段包含该消息类型的具体参数。

  • 校验和字段用于检查消息是否完整。

  • 消息中包含 32 bit 的可变参数,这个字段一般不使用,通常设置为 0。

  • 在 ICMP 重定向消息中,这个字段用来指定网关 IP 地址,主机根据这个地址将报文重定向到指定网关。

  • 在 Echo 请求消息中,这个字段包含标识符和序号,源端根据这两个参数将收到的回复消息与本端发送的 Echo 请求消息进行关联。尤其是当源端向目的端发送了多个 Echo 请求消息时,需要根据标识符和序号将 Echo 请求和回复消息进行一一对应。

TypeCode描述
00Echo Reply
30网络不可达
31主机不可达
32协议不可达
33端口不可达
50重定向
60Echo Request

ICMP 重定向

ICMP 重定向报文是 ICMP 控制报文中的一种。在特定的情况下,当路由器检测到一台机器使用非最优路由的时候,它会向该主机发送一个 ICMP 重定向报文,请求主机改变路由。

ICMP 重定向过程:

  1. 主机 A 希望发送报文到服务器 A,于是根据配置的默认网关地址向网关 RTB 发送报文。

  2. 网关 RTB 收到报文后,检查报文信息,发现报文应该转发到与源主机在同一网段的另一个网关设备 RTA,此转发路径是更优的路径,所以 RTB 会向主机发送一个 Redirect 消息,通知主机直接向另一个网关 RTA 发送该报文。

  3. 主机收到 Redirect 消息后,会向 RTA 发送报文,然后 RTA 会将该报文再转发给服务器 A。

IPv4 地址配置及基本应用

例:配置物理接口地址

物理接口:物理接口是指网络设备上实际存在的接口,分为负责承担业务传输的业务接口和负责管理设备的管理接口,例如 GE 业务接口和 MEth 管理接口。

[RTA] interface gigabitethernet 0/0/1
[RTA-GigabitEthernet0/0/1] ip address 192.168.1.1 255.255.255.0

[RTA-GigabitEthernet0/0/1] ip address 192.168.1.1 24

例:配置逻辑接口

逻辑接口是指能够实现数据交换功能但物理上不存在、需要通过配置建立的接口,需要承担业务传输,例如 VLANIF 接口、Loopback 接口。

Loopback 接口:用户需要一个接口状态永远是 Up 的接口的 IP 地址时,可以选择 Loopback 接口的IP地址。

  • Loopback 接口一旦被创建,其物理状态和链路协议状态永远是 Up,即使该接口上没有配置 IP 地址。

  • Loopback 接口配置 IP 地址后,就可以对外发布。Loopback 接口上可以配置 32 位掩码的 IP 地址,达到节省地址空间的目的。

  • Loopback 接口不能封装任何链路层协议,数据链路层也就不存在协商问题,其协议状态永远都是 Up。

  • 对于目的地址不是本地 IP 地址,出接口是本地 Loopback 接口的报文,设备会将其直接丢弃。

      [RTA] interface LoopBack 0
      [RTA-LoopBack0] ip address 1.1.1.1 255.255.255.255
    

[RTA-LoopBack0] ip address 1.1.1.1 32
Comment