数据包结构:
7字节 | FR 同步位 | 用于收发双方的时钟同步,同时也指明了传输的速率,56位的二进制数1010…… | |
1字节 | SD 分隔位 | [10101011]表示下面跟着的是真正的数据,而不是同步时钟 | |
位置 (位) | 位置 (字节) | ETH头 | |
作用 | 说明 | ||
00~31 00~15 | 0~5 | Destination Address 目标MAC地址 | |
16~31 00~31 | 6~11 | Source Address 来源MAC地址 | |
00~07 | 12 | Length/Ethertype 以太网类型 | [2048]=IP、[2054]=ARP |
08~15 | 13 | ||
16~ | Data 数据 | 即ARP、IP、PPP等。以太网总长度64~1518Byte。数据长度(MTU)一般在576~1500Byte之间 | |
PAD 填充位 | 以太网帧数据包不能小于64字节,当数据段的数据不足46字节时,后面补0 | ||
4字节 | CRC 校验 |
位置 (位) xxxxxx | 位置 字节 xxxx | ETH之后-ARP头 | ETH之后-IP头 | ETH之后-PPPOE头 | |||||
作用 | 说明 | 作用 | 说明 | 作用 | 说明 | ||||
00~03 | 0 | 类型 | [1]=Ethernet以太网 | Version 版本号 | [4]=IPV4 | Version 版本号 | [1] | ||
04~07 | Header Length 包头长度(/4字节) | [5~15] | Type 类型 | [1] | |||||
08 | 1 | Type of Service 服务类型(TOS) | 过滤(不用) | Code 代码 | 不同会话阶段内容不同 | ||||
09 | |||||||||
10 | |||||||||
11 | 低时延 | ||||||||
12 | 高流量 | ||||||||
13 | 高可靠性 | ||||||||
14 | 最小代价 | ||||||||
15 | 不用 | ||||||||
16~23 | 2 | 协议 | [2048]=IP | Total Length 总长度(/字节) | [24~65535] | Session ID 会话ID | [0]或获取的ID | ||
24~31 | 3 | ||||||||
00~07 | 4 | MAC长度 | [6] | Identification 标识号(ID) | (每个分片数据包具有相同ID) | Length 长度 | 指示数据段长度 | Payload 数据(净载荷) | 在PPPOE发现阶段才填充Tag标记,会话阶段没有标记类型和长度,填充PPP报文 |
08~15 | 5 | IP长度 | [4] | ||||||
16 | 6 | 操作码 | [1]=Request查询 [2]=Reply回应 [3]=RARP请求 [4]=RARP回应 | Flags 片标志 | 不用 | Tag标记类型 | 在PPPOE发现阶段才填充Tag标记,会话阶段没有标记类型和长度,填充PPP报文 | ||
17 | DF不分片 | ||||||||
18 | MF更多分片 | ||||||||
19 | Fragment Offset 分片偏移(/8字节) | [68~8191]分片数据在总数据的位置 | |||||||
20 | |||||||||
21 | |||||||||
22 | |||||||||
23 | |||||||||
24~31 | 7 | ||||||||
00~07 | 8 | Source 来源MAC地址 | Time to Live 生存时间 | 长度 | Tag数据的长度 | ||||
08~15 | 9 | Proctol 协议类型 | [1]=ICMP;[2]=IGMP [6]=TCP;[17]=UDP | ||||||
16~23 | 10 | Header Checksun 包头校验和 | 数据 | 不同标记类型所对应的相关数据 | |||||
24~31 | 11 | ||||||||
00~07 | 12 | Source Address 来源IP地址 | |||||||
08~15 | 13 | ||||||||
16~23 | 14 | Source Address 来源IP地址 | |||||||
24~31 | 15 | ||||||||
00~07 | 16 | Destination Address 目标IP地址 | |||||||
08~15 | 17 | ||||||||
16~23 | 18 | Destination 目标MAC地址 | |||||||
24~31 | 19 | ||||||||
00~07 | 20 | Options 选项 | (用到选项的数据包几率只有0.003%,IPv4包首部最长可使用选项扩展到60字节,总是4个字节4个字节的扩展) | ||||||
08~15 | 21 | ||||||||
16~23 | 22 | ||||||||
24~31 | 23 | ||||||||
00~07 | 24 | Destination Address 目标IP地址 | 数据 | 即TCP、UDP、ICMP等 | |||||
08~15 | 25 | ||||||||
16~23 | 26 | ||||||||
24~31 | 27 |
位置 (位) xxxxxx | 位置 字节 xxxx | ETH-IP之后-TCP头 | ETH-IP之后-UDP头 | ETH-IP之后-ICMP头 | ETH-IP之后-IGMP头 | ||||
作用 | 说明 | 作用 | 说明 | 作用 | 说明 | 作用 | 说明 | ||
00~03 | 0 | Source Port 来源端口 | Source Port 来源端口 | (可选,如果无则为0) | Type 类型 | 标识ICMP消息 | Version 版本号 | (一般是1) | |
04~07 | Type 类型 | [1]=主机成员请求 [2]=主机成员报告 | |||||||
08~15 | 1 | Code 代码 | (相当于TYPE子类型) | Max response time | 未用 | ||||
16~23 | 2 | Destination Port 目标端口 | Destination Port 目标端口 | Checksum 校验和 | Checksum 校验和 | ||||
24~31 | 3 | ||||||||
00~07 | 4 | Initial Sequence Number 序列号(初始连接请求号SEQ) | Length UDP总长度(/字节) | [8+] | 由ICMP类型决定 | Group address 组地址 | |||
08~15 | 5 | ||||||||
16~23 | 6 | Checksum 校验和 | IP、UDP协议头和数据位 | ||||||
24~31 | 7 | ||||||||
00~07 | 8 | Next Expected SEQ Number 确认序列号(ACK值) | 数据 | 数据 | 差错报文由IP数据报包头(因为包含地址)和IP数据报数据部分前8字节(因为包含端口和序列号)组成 | ||||
08~15 | 9 | ||||||||
16~23 | 10 | ||||||||
24~31 | 11 | ||||||||
00~03 | 12 | Data Offset 数据偏移(/4字节) | [5~15]相当于TCP头长度 | ||||||
04~07 | Reserved Bites 保留位 | [0]不用 | |||||||
08 | 13 | ||||||||
09 | |||||||||
10 | URG | Flags TCP标志 | |||||||
11 | ACK | ||||||||
12 | PSH | ||||||||
13 | RST | ||||||||
14 | SYN | ||||||||
15 | FIN | ||||||||
16~23 | 14 | Window 窗口大小 | |||||||
24~31 | 15 | ||||||||
00~07 | 16 | CheckSum 校验和 | |||||||
08~15 | 17 | ||||||||
16~23 | 18 | Urgent Pointer 紧急指针(URG值) | |||||||
24~31 | 19 | ||||||||
00~07 | 20 | Options 选项 | (0~40字节长) | ||||||
08~15 | 21 | ||||||||
16~23 | 22 | Padding 填充 | 为保证TCP头长度为4的倍数,以0填充。 | ||||||
24~31 | 23 |