我正在解决一些通信问题,在网络跟踪中我偶尔会遇到TCP序列错误。我得到的一个例子是:
数据包4& 5跟踪记录在跟踪中(来自客户端和服务器之间的路由器)几乎完全相同,因此它们很可能在传输过程中交叉。
TCP会话与客户端不同步,错过了服务器的最后两次传输。这两个数据包应该已经重新传输,但它们不是,下一个跟踪日志是数据包6后24秒来自客户端的RST数据包。
我的问题与无法从数据包3&amp ;;重新传输服务器数据的原因有关。 5?我会假设重新传输将在操作系统级别,但无论如何应用程序可以影响它并阻止它被发送?线程阻塞或进入睡眠或类似的东西?
答案 0 :(得分:2)
从服务器到客户端只丢失了一个数据包 - 数据包3.数据包6包含数据包5的选择性确认(SACK),以便通过。
在回答您的具体问题时,不,应用程序级问题不应阻止TCP重新传输。