如何解决重组段时如何验证TCP数据包?
我已经开发了一个使用Windivert dll捕获数据包的应用程序。当收到 [FIN] 数据包时,它将接收将合并的数据段。由于某些网络问题,有时无法接收到数据包。合并数据包的各个段时,是否有任何方法可以验证是否接收到所有段,从而避免丢失任何数据?我尝试使用序列号,但找不到任何可以验证的订单
以下是我的数据流(段):
1. sourceKey : 127.0.0.1:55736 | parsedPacket.TcpSeqNum: 3464538165 | parsedPacket.TcpAckNum: 16777216 | parsedPacket.PayloadLength: 536
2. sourceKey : 127.0.0.1:55736 | parsedPacket.TcpSeqNum: 3867322421 | parsedPacket.TcpAckNum: 16777216 | parsedPacket.PayloadLength: 536
3. sourceKey : 127.0.0.1:55736 | parsedPacket.TcpSeqNum: 4270106677 | parsedPacket.TcpAckNum: 16777216 | parsedPacket.PayloadLength: 536
4. sourceKey : 127.0.0.1:55736 | parsedPacket.TcpSeqNum: 377989173 | parsedPacket.TcpAckNum: 16777216 | parsedPacket.PayloadLength: 536
5. sourceKey : 127.0.0.1:55736 | parsedPacket.TcpSeqNum: 780773429 | parsedPacket.TcpAckNum: 16777216 | parsedPacket.PayloadLength: 536
6. sourceKey : 127.0.0.1:55736 | parsedPacket.TcpSeqNum: 1183557685 | parsedPacket.TcpAckNum: 16777216 | parsedPacket.PayloadLength: 536
7. sourceKey : 127.0.0.1:55736 | parsedPacket.TcpSeqNum: 1586341941 | parsedPacket.TcpAckNum: 16777216 | parsedPacket.PayloadLength: 536
8. sourceKey : 127.0.0.1:55736 | parsedPacket.TcpSeqNum: 1989126197 | parsedPacket.TcpAckNum: 16777216 | parsedPacket.PayloadLength: 536
9. sourceKey : 127.0.0.1:55736 | parsedPacket.TcpSeqNum: 2391910453 | parsedPacket.TcpAckNum: 16777216 | parsedPacket.PayloadLength: 536
10. sourceKey : 127.0.0.1:55736 | parsedPacket.TcpSeqNum: 2794694709 | parsedPacket.TcpAckNum: 16777216 | parsedPacket.PayloadLength: 536
11. sourceKey : 127.0.0.1:55736 | parsedPacket.TcpSeqNum: 3197478965 | parsedPacket.TcpAckNum: 16777216 | parsedPacket.PayloadLength: 536
12. sourceKey : 127.0.0.1:55736 | parsedPacket.TcpSeqNum: 3600263221 | parsedPacket.TcpAckNum: 16777216 | parsedPacket.PayloadLength: 536
13. sourceKey : 127.0.0.1:55736 | parsedPacket.TcpSeqNum: 4003047477 | parsedPacket.TcpAckNum: 16777216 | parsedPacket.PayloadLength: 536
14. sourceKey : 127.0.0.1:55736 | parsedPacket.TcpSeqNum: 110929973 | parsedPacket.TcpAckNum: 16777216 | parsedPacket.PayloadLength: 536
15. sourceKey : 127.0.0.1:55736 | parsedPacket.TcpSeqNum: 513714229 | parsedPacket.TcpAckNum: 16777216 | parsedPacket.PayloadLength: 536
16. sourceKey : 127.0.0.1:55736 | parsedPacket.TcpSeqNum: 916498485 | parsedPacket.TcpAckNum: 16777216 | parsedPacket.PayloadLength: 536
17. sourceKey : 127.0.0.1:55736 | parsedPacket.TcpSeqNum: 1319282741 | parsedPacket.TcpAckNum: 16777216 | parsedPacket.PayloadLength: 536
18. sourceKey : 127.0.0.1:55736 | parsedPacket.TcpSeqNum: 1722066997 | parsedPacket.TcpAckNum: 16777216 | parsedPacket.PayloadLength: 536
19. sourceKey : 127.0.0.1:55736 | parsedPacket.TcpSeqNum: 2124851253 | parsedPacket.TcpAckNum: 16777216 | parsedPacket.PayloadLength: 536
20. sourceKey : 127.0.0.1:55736 | parsedPacket.TcpSeqNum: 2527635509 | parsedPacket.TcpAckNum: 16777216 | parsedPacket.PayloadLength: 189
以上是接收到的完整数据流。如果其中一个数据包丢失,该如何验证?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。