有没有网络大佬 请教个判断 TCP Segment 的问题

查看 51|回复 6
作者:sankooc   
事情是这样, 我发现 tcp 实际的 payload 长度和握手时协商的 MSS 长度多出很多.
按理来说根据不同的路由环境 segment 的长度比 mss 小可以理解,但是比 mss 大这就有点诡异了
下图时我的问题发生现场, 图 1 确认 mss 长度(图片有点模糊 显示的是 1357), 图 2 中 192.168.8.104 发送的 tcp segment 却比 mss 大很多

图 2 中的 segment 长度正好是 mss 的两倍 但在别的 frame 中也能找到非整数倍的 segment


图 1

图 2
我想知道的是 wireshark 是如何确认一个 tcp frame 是否为 segment 一开始以为是通过 mss 长度但发现这并不可靠, 也有很多特别小的 segment. 是通过应用层?
turi   
tcp tso
quanyajian   
看你的第二个握手包 SYN-ACK ,里面应该也有一个 MSS 。
sankooc
OP
  
@quanyajian 第二个 mss 是 1460 也跟 tcp 的 payload 相差很大
sankooc
OP
  
@turi 那能理解为 NIC 会通过网络情况会自动分包? 那 wireshark 分析的时候是如何判断出这些包是 segment 呢? 主要我最近做一个类似 wireshark 的工具 现在卡在合并应用层数据
quanyajian   
把 pcap 文件贴出来看看
quanyajian   
@sankooc 你应该是要做 tcp 重组,我这边用的 gopacket 实现的。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部