raw socket接收数据的诡异问题

概述

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

问题情况

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

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

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值