TCP 重传包中包含前一个已发送包的协议头部信息
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的协议头信息。