zoukankan      html  css  js  c++  java
  • socket可靠性传输方案

        最近验证一个数据传输可靠性方案,走了不少弯路,在此记录,希望从中汲取教训。

       

        需求为 能够检测数据在一条通道传输时是否发生异常,在发生异常后能够及时切换到备用通道,继续进行数据传输,保证数据传输速率和准确性;

       

        在头几天,基于tcp协议进行验证,思路是,通过内核截包,检测是否传输速率发生异常,在速率低于一个阀值时,切换通道,在备用通道继续传输,

    为保证连续和不丢包,考虑正常传输时在发送端缓存数据,在发生异常时接收端发送包的标识到发送端,发送端能够从该包开始通过备用通道继续传输,

    然而,却因为缺乏对tcp协议栈实现原理的理解,竟然天真的认为在切换通道后发送端会继续传输!!实际是发送端在没有收到接收端的回复情况下会重传

    相应的包直至停止发送,在做了大量准备工作和准备好实验时恍然发现,这种方案几乎是无法实现的!!

         但是我们立刻停下,在确认这种天真想法无法进行后,实验了一个更为简单可靠地方案,直接切换路由!!最终不到两个小时,新的方案验证完毕!!

    在高兴的同时,也懊悔不已,当时为了解决在截包模块中调试一个bug(在ip包中增加数据),甚至加班到第二天凌晨4点,走了不少弯路,其中有相应知识匮乏,

    更有思路不严谨的问题,特此谨记!!

  • 相关阅读:
    HTTP 错误 403.6
    NPOI-WebForm_Excel导入与导出
    一触即发 App启动优化最佳实践
    如何查看手机是硬件加密还是软件加密
    Android EidtText 光标的使用和设置
    jd-gui报错INTERNAL ERROR 解决办法
    你应该知道的那些Android小经验
    如何分析解决Android ANR
    Android延时执行调用的几种方法
    转:各种Adapter的用法
  • 原文地址:https://www.cnblogs.com/lqc1002000/p/2424336.html
Copyright © 2011-2022 走看看