网络层协议
网络层经常被称为 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 请求和回复消息进行一一对应。
| Type | Code | 描述 |
|---|---|---|
| 0 | 0 | Echo Reply |
| 3 | 0 | 网络不可达 |
| 3 | 1 | 主机不可达 |
| 3 | 2 | 协议不可达 |
| 3 | 3 | 端口不可达 |
| 5 | 0 | 重定向 |
| 6 | 0 | Echo Request |
ICMP 重定向
ICMP 重定向报文是 ICMP 控制报文中的一种。在特定的情况下,当路由器检测到一台机器使用非最优路由的时候,它会向该主机发送一个 ICMP 重定向报文,请求主机改变路由。
ICMP 重定向过程:
-
主机 A 希望发送报文到服务器 A,于是根据配置的默认网关地址向网关 RTB 发送报文。
-
网关 RTB 收到报文后,检查报文信息,发现报文应该转发到与源主机在同一网段的另一个网关设备 RTA,此转发路径是更优的路径,所以 RTB 会向主机发送一个 Redirect 消息,通知主机直接向另一个网关 RTA 发送该报文。
-
主机收到 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