我正在编写一个使用libpcap捕获数据包并重新组装TCP流的程序。我的程序只是监视流量,因此我无法控制数据包的接收和传输。我的程序忽略所有非TCP/IP流量。
我从ISN计算下一个期望的序列号,然后是连续的SEQ号码。我已经设置好了每个TCP连接都由源IP、源端口、目标IP和目标端口组成的元组来唯一标识。一切都很顺利,直到我收到一个序列号与我期望的不同的数据包。我已经上传了屏幕截图来帮助说明我所描述的here。
我的问题是: 1. 在“丢失”的数据包中的数据在哪里? 2. SEQ号码如何从这种情况中恢复? 3. 我能做些什么来处理这些情况?
请记住;但是,我不是在编写遵守TCP协议的程序。我正在编写一个被动监视TCP流量并尝试将原始数据保存到磁盘的程序,我对上述状态发生的原因以及如何编程处理它感到困惑。
谢谢
我从ISN计算下一个期望的序列号,然后是连续的SEQ号码。我已经设置好了每个TCP连接都由源IP、源端口、目标IP和目标端口组成的元组来唯一标识。一切都很顺利,直到我收到一个序列号与我期望的不同的数据包。我已经上传了屏幕截图来帮助说明我所描述的here。
我的问题是: 1. 在“丢失”的数据包中的数据在哪里? 2. SEQ号码如何从这种情况中恢复? 3. 我能做些什么来处理这些情况?
请记住;但是,我不是在编写遵守TCP协议的程序。我正在编写一个被动监视TCP流量并尝试将原始数据保存到磁盘的程序,我对上述状态发生的原因以及如何编程处理它感到困惑。
谢谢