帧结构:
目标MAC + 源MAC + 协议类型 + 数据 + 帧尾
类型: 0800为IP协议,0806为ARP协议。
IP包头结构:
版本号:
4bit,标识目前采用的IP协议版本号,0100表示IPV4,0110表示IPV6。
首部长度:
4bit,单位为32位二进制(32bit=4字节)表示IP包头的长度,范围为20–60字节。
优先级与服务类型:
8bit,前三位表示优先级,000–111,数值越大优先级越高;
中间四位表示服务类型,按顺序分别表示时延、吞吐量、可靠性、成本;0表示普通,1表示较好。
最后一位保留,恒为0。
总长度:
16bit,单位为字节,表示整个IP数据段的长度,(应用层+TCP/UDP+IP包头),理论上IP数据段最大可达65535字节,但由于MTU限制,一般无法到达这个值。
MTU: 最大传输单元,一般为1500bit。
标识符:
16bit,对较大的上层数据包进行分段操作,由同一个数据包分开的标识符数值相同,方便目的端区分。
标志:
3bit,
第一位:置为0。
第二位:1表示不分片,0表示分片。
第三位:1表示后面还有分片,0表示后面无分片即最后一个报文。
标志 | 含义 |
---|---|
010 | 不分片 |
000 | 分片的最后一片报文 |
001 | 分片且后面还有分片 |
段偏移量:
13bit,表示分片相对于原始数据的偏移量,用于重组数据。
TTL生存时间:
8bit,表示该IP数据包可以经过的最大路由器数量,每经过一个路由器,TTL减一,当减为零时丢弃该包;防止IP数据包在网络中无限传输,占用资源。
(一般TTL < 100 发送端系统为linux, TTL > 100,一般为windows系统 ,255为特例)
协议:
8bit,用于区分上层协议。
数值 | 协议 |
---|---|
1 | ICMP |
2 | IGMP |
6 | TCP |
17 | UDP |
88 | IGRP |
89 | OSPF |
1,6,17 较常见。
首部校验和:
16bit,校验IP包头(20–60字节)不包含数据。
源地址和目标地址:
均为32bit,源地址IP和目标地址IP。
可选项:
以32bit为单位,不足时用0补充,主要用于测试。