raw socket接收数据的诡异问题

发布时间:2024年01月15日

概述

因为工作需要使用raw socket来转发指定数据流的数据,但是在使用的过程中,发现TCP链接存在数据乱的问题,后面使用tcpdump和数据比对详细分析了下,故而博文记录,备忘。

问题情况

raw socket收取TCP特定业务端口的数据,然后转发给其他多个客户端,最后在测试的时候,发现raw socket收到的数据和对应业务端口应用层程序收到的数据不一致。

经过tcpdump和数据比对,发现是TCP的重发机制以及包乱序导致的问题。TCP重发机制会导致raw socket收到多余的数据,包乱序会导致数据位置错乱,故而要想实现这种数据转发,要么解决TCP重发以及包乱序问题,要么使用应用层数据转发。

文章来源:https://blog.csdn.net/qq_38189542/article/details/135594140
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。