TCP 重传包中包含前一个已发送包的协议头部信息

cameled 2018-03-08 11:47:17
FreeBSD 的网络栈中TCP重传包偶尔会出现问题,主要表现为,重传包数据的底部被之前一个包的协议头信息给覆盖了。
从打印的日志来看, 重传包在TCP缓存冲拿出来的信息就已经被篡改了, 所以可以推断错误发生在重传包之前。具体的问题
还不能确定, 有谁遇到过这种问题吗?
具体的情况像下面:
Browser: Sequence number:444, Acknowledgment number: 4600
NetStack: Sequence number:4600, Acknowledgment number: 444
NetStack: Sequence number:7819, Acknowledgment number:444 (Previous segment lost?)
Browser: Sequence number:444, Acknowledgment number: 6060
NetStack: Sequence number:6060, Acknowledgment number: 444 (Retansmission happened)
6060是重传的包,它的cluster里面包含了7819的协议头信息。
...全文
76 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
kinkon007 2018-03-10
  • 打赏
  • 举报
回复
正常情况下tcp协议栈是保存发送包一直到收到正确的ack包后再丢弃的,重传包用的就是这个等待ack时期的发送包,都是指向同一地址的。

1,737

社区成员

发帖
与我相关
我的任务
社区描述
网络协议与配置相关内容讨论专区
网络协议网络安全tcp/ip 技术论坛(原bbs)
社区管理员
  • 网络协议与配置社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧