4-2IP Network Protocol
4.2IP Network Protocol
4.2.1数据报格式
网络层分组称为数据报。
1.IPv4格式
格式如下图:
解释:
-
**版本号:**4bit,规定了IP协议版本。
-
**首部长度:**4bit,标注实际数据从哪里开始,即首部的长度。(由于IP数据报允许包含可变数量的选项)
- 如果没有选项,则一般的数据报首部是20字节的长度
- 最大首部长度为60字节
-
**服务类型:**8bit,用于将一些不同类型的IP数据报区分开来(低延迟、高吞吐量、可靠性等)。
-
**数据报长度:**16bit,表示IP数据报的总长度(首部+数据),以字节为单位。理论最大值为65535。
-
**标识、标志与片偏移:**16+3+13bit,这三个字段与IP分片有关。
-
**寿命:**8bit,TTL字段保证数据报不会永远在网络中循环。每经过一台路由器,该字段的值减1。
- 最大寿命255
-
**协议:**8bit,用于指示IP数据报的数据部分交付给哪个运输层协议。
- 6代表TCP
- 17代表UDP
- 1代表ICMP
-
**首部检验和:**16bit,对首部中每2字节进行加和,最终结果取反。
- 注意:每经过一次路由器都要重算,因为TTL字段变化了。
-
**源IP和目标IP地址:**各占32bit。
-
**选项:**允许IP首部被扩展。该字段用于一些可选的报头设置,主要用于测试、调试和安全的目的。这些选项包括严格源路由(数据报必须经过指定的路由)、网际时间戳(经过每个路由器时的时间戳记录)和安全限制。
- 使用0填充末尾保证报头长度是32位的整数倍。
-
**数据:**用于存储TCP、UDP、IMCP等协议的数据。
2.IP数据报分片
底层链路层协议可能不能发送过大的IP数据报,因此需要对数据报进行分片。
4.2.2IPv4编址
IP地址具有32位,形式为a.b.c.d/x。其中a,b,c,d代表IP地址,/x代表子网掩码的位数。
1.IP地址的分类
-
a类:以0开头,后面跟着7为作为网络地址,剩下的24位作为主机地址
-
b类:以10开头,后面跟着14位作为网络地址,剩下的16位作为主机地址
-
c类:以110开头,后面跟着21位作为网络地址,剩下的8位作为主机地址
-
d类:广播地址
-
e类:保留地址
2.特殊地址
-
网络部分全0:表示当前网络
-
主机部分全0:表示当前主机
-
主机部分全1:向网络的所有主机广播
-
127.x.x.x:回环地址,从本机应用层下至IP层就回来了。用于测试
3.内网专用IP地址
一些地址在每一个内网中都有,但不会出现在公网里。路由器不对目标地址是专用地址的分组进行转发。
a类:10.0.0.0~10.255.255.255 /8
b类:172.16.0.0~172.31.255.255 /16
c类:192.168.0.0~192.168.255.255 /24
4.CIDR
将子网一般化,允许出现任意位数的网络地址。其实质是在大网络下划出子网。因此需要子网掩码来确认子网的网络地址。(大网络仍然根据a,b,c类划分)
5.DHCP(动态主机配置协议)
用于动态配置主机的IP地址和子网掩码。要求所在网络拥有一个DHCP服务器。
配置过程:
-
主机广播是否存在DHCP服务器
-
DHCP服务器(可能存在多个)收到并广播推荐的IP地址
-
主机选择一个DHCP服务器,发送请求报文。(同时配置好了自己的地址)
-
服务器发送Ack