我有10个未排序的TCP段(A),我想暂时对它们进行排序。我从每个人那里得到的信息:
据我所知,第一个应该是C,第二个应该是E,但我不知道如何安排其他部分。
谢谢
发布于 2019-09-01 14:27:10
为了更准确地排序,您需要每个数据包的有效负载大小(以避免错过与其上一段重叠的段的顺序)。
但是,如果您确定没有包含一些重叠数据的段,则可以通过比较数据包的顺序和确认号(并考虑控制标志)对数据包进行排序。
首先,最好在每个方向上独立地对数据包进行排序:
请求端:C,B,I,J,A。
响应侧:E,G,F,H,D。
在F和G之间进行选择时,我们认为F的PSH标志是设置的,因此它包含了数据并提高了序列号,因此,由于G似乎不包含任何数据,所以它应该在G之后出现。
现在我们可以通过比较每一方的第一个数据包来进行合并:
C:SYNE:SYN + ACKB:ACKs EI:G的确认号大于I的序列号。G:J的确认号大于G的序列号。F:J的确认号大于F的序列号。H:J的确认号大于H的序列号。J:J在D之前,因为它没有ACK D。(设置了D的鳍控制标志;因此它会提高序列号。)D:A的确认号大于D的序列号。Ahttps://stackoverflow.com/questions/37610024
复制相似问题