IP/TCP数据结构
IP包结构
TCP包结构
测试环境
PC 作为TCP Server
IP | 10.192.26.30 | |
---|---|---|
MAC | A0-8C-FD-E3-36-B3 | |
Port | 51515 |
MCU 作为TCP Client
IP | 10.192.26.110 | |
---|---|---|
MAC | 02-00-00-36-00-51 | |
Port | 8088 |
测试方式
PC端向MCU发送0x12 0x34 0x56
测试数据
WinShark显示数据如下
02 00 00 36 00 51 a0 8c fd e3 36 b3 08 00 45 00
00 2b 1c 66 40 00 40 06 00 00 **0a c0 1a 1e 0a c0 **
1a 6e c9 3b 1f 98 a4 6c ac f9 00 00 1b 77 50 18
f8 e8 4a 29 00 00 12 34 56
MCU-MAC: 02 00 00 36 00 51
PC-MAC: a0 8c fd e3 36 b3
Type : 08 00
IP包数据解析:
IPv4(4bits:0100)-Head Length(4bits:0101):45
4:表示版本,占4个位,即ipv4
5:表示IP包头长,共占4个位,它表示数据包头包含多少个32位长整型,也就是包含多少个4字节数据。为5,则5*4=20字节
服务类型:00
Total Length(表示包裹总长) :00 2b
重组标识:1c 66
表示重组标识,占16个位,f247转换为十进制是62023。发送主机赋予的标识,以便接收方进行分片重组
标志(3bits)-段偏移量(13bits):40 00
生存时间:40
Protocol TCP(协议代码): 06
协议代码,占8个位,6=TCP,1=ICMP,UDP=17
Header Checksum:00 00
源始地址(10.192.26.30): 0a c0 1a 1e
目的地址(10.192.26.110):0a c0 1a 6e
TCP包解析
源端口(51515): c9 3b
目的端口(8088): 1f 98
数据序号: a4 6c ac f9
确认序号: 00 00 1b 77
偏移-保留-UAPRSF: 50 18
5:表偏移,即距离数据包头有多少个32位,为5,4*5=20个字节(头长)
从源始地址开始算起()
保留是0;U,A,P,R,S,F中的哪个位是1,就表示哪种比特
窗口字段: f8 e8
表示滑动窗口
包校验和: 4a 29
紧急指针: 00 00
发送的实际数据12 34 56