一、概述
IP协议是TCP/IP协议簇中最为核心的核心协议。TCP,UDP,ICMP及IGMP数据都是以IP数据报格式传输。
IP协议是网络层协议,提供不可靠,无连接的传输服务。
不可靠:即不能保证IP数据报能成功到达目的地。
无连接:即不需要先建立连接就可以传输数据报。每个数据报的处理是相互独立的,IP数据报可以不按发送顺序接收,每个数据报可以选择不同路径进行传输。
二、IP地址
两台主机要想在网络中通信需要两个地址,一个是逻辑地址(IP地址),一个是物理地址(MAC
地址)
IP地址有两部分组成:网络部分和主机部分
网络部分是网络的地址编码
主机部分是网络中的一个主机地址编码
IP地址分类:
IP地址范围:
A:1.0.0.0~127.255.255.255
B:128.0.0.0~191.255.255.255
C:192.0.0.0~223.255.255.255
D:224.0.0.0~239.255.255.255
E:240.0.0.0~255.255.255.255
A、B、C类都是单播地址,D类用于多播,E类保留。
IP地址通常用十进制表示,把32位的地址划分为4个字节,每一个字节用十进制表示,中间用圆
点隔开,叫做点分十进制。
私有IP地址:不能用于公网,只能在内部局域网使用,它们在Internet上不会被路由,但是可以通
过NAT技术与公网通信
私有IP地址范围:
A:10.0.0.0~10.255.255.255
B:127.16.0.0~172.31.255.255
C:192.168.0.0~192.168.255.255
特殊IP地址
0.0.0.0:不确切地址,表示本机,也叫默认路由地址
255.255.255.255:受限广播地址,同一广播域内的主机,表示本网络中所有主机。
127.0.0.1:回环地址,向自己发送测试数据,用于测试。
169.254.X.X:自动专用地址,找不到DHCP服务器,主机给自己分配的一个IP地址,掩码
255.255.0.0
网络地址:主机号全为0,不进行分配
广播地址:主机号全为1,发送给特定网络的所有主机,不分配。
三、IP首部
IP数据报格式及首部中的个字段
版本:协议的版本号,常用的是IPv4,正逐渐过渡到IPv6
首部长度(IHL):IP头长度,4位,可表示的最大十进制数值是15(1111),首部长度固定是20个字节,所以首部长度最小值是5(0101),首部长度字段所表示数的单位是32位字(1个32位字长是4字节),当首部长度达到最大值1111时(15),表明首部长度达到最大值15个32位字长,即60字节。
服务类型:用于区分不同的可靠性,优先级,延迟,和吞吐率的参数
总长度:包含IP头在内的数据单元的总长度(字节为单位)
标识符:唯一标识数据报,“标识”不是序号,IP是无连接服务,数据报不存在按顺序接收的问题。当数据报长度大于网络的MTU而进行分片时,该标识字段的值被复制到所有的数据报分片的标识字段中。相同的标识字段的值使分片后的各数据报片可以正确重装为原来的数据报。
标志:包括3个标志,M标志用于分段和重装配;一个是禁止分段标志,一个未启用。
片偏移:指明该分片处于原来数据报中的位置。
生存时间(TTL):用经过的路由器个数表示,每经过一个路由器TTL就减1,TTL为0时,数据报就被丢弃。
协议:上一层的协议
协议名 TCP ICMP UDP …
协议字段值 6 1 17 …
首部校验和:只校验IP头,不校验数据部分
源IP地址:32位,发送数据报的主机在网络中的逻辑地址
目的IP地址:32位,接收数据报的主机在网络中的逻辑地址
选项:长度可变,
数据:用户数据
wireshark抓包分析
四、MTU(最大传输单元)和分片
以太网和802.3对数据帧的长度都一个限制,其最大值分别为1500和1492字节。链路层这个特性
称作MTU,最大传输单元。
如果IP层有一个数据报要传,数据长度比链路层的MTU还大,IP层就要进行分片处理,每一片都
要小于MTU。
分片可以发生在原始发送端主机上,也可以发生在中间路由器上。
IP数据报分片后,只有到达到目的地才进行重新组装。
重新组装由目的端的IP层来完成,
分片过的数据报有可能再次分片。
在分片时,除最后一片外,其他每一片中的数据部分(除IP首部外的其他部分)必须是8字节的
整数倍。
IP首部被复制到各个片中。但是,端口号在UDP首部,只能在第1片中被发现。
需要解释几个术语: IP数据报是指I P层端到端的传输单元(在分片之前和重新组装之后) , 分组是
指在I P层和链路层之间传送的数据单元。一个分组可以是一个完整的I P数据报,也可以是I P数据
报的一个分片。
数据包默认最大为1500字节(含包头)
数据帧默认最大为1518字节,其中由IP包(1500字节)+以太网头(14字节)+以太网尾(4字节
FSC帧校验序列)构成