我在winpcap上有以下2个TCP数据包:
http://pastebin.com/FUAs3UZ7 或者以pcap格式https://www.dropbox.com/s/0ss4j0weszy92no/SO.pcap
要重新组装这两个数据包,但它们的IP标志是“010”,意思是“不要碎片”,并且片段偏移量为0.它们有一个连续的标识号,但如果我理解正确的话单独定义分段数据包是不够的。
Wireshark 确实重新组合这些数据包,我真的不明白为什么。
我在这里缺少什么? Wireshark如何知道重新组装这两个数据包?
答案 0 :(得分:1)
第一个数据包:
00 80 f4 09 e6 a5 - 以太网目的地址
00 50 56 26 ab 04 - 以太网源地址
08 00 - 以太网类型,即IPv4
45 - IP版本(4代表IPv4)和标题长度(5代表5 * 4 = 20字节)
00 - DSCP / ECN(或过去的TOS)
02 40 - 总长度(576字节)
74 ff - 识别
40 00 - 标志和片段偏移量; DF,片段偏移量为0
80 - 生活的时间
06 - 协议,即TCP
当您说“Wireshark 重新组合这些数据包”时,您指的是 IP 重组或 TCP 重新装配?那些发生在不同的层,我怀疑Wireshark正在做的是重新组装第一个数据包中的全部或部分TCP段和第二个数据包中的TCP段,以便为上的协议生成一个数据包< / em> TCP; TCP是一种字节流协议,因此不能保证TCP段边界(几乎在所有情况下都变成链路层帧边界)对应于在TCP之上运行的协议的数据包边界。