zoukankan      html  css  js  c++  java
  • ude—基于udp的全双工可靠传输协议

        ude是一款基于udp的可靠传输协议,专门用于在数据传输方面对实时性要求较高的应用领域。
        tcp协议虽然能保证数据的可靠传输,但它有以下几个缺点:1.tcp的数据确认机制会导致发送方重复发送一些已经被对方接收的数据,降低了带宽的有效利用率;2.tcp协议的超时重传机制严格遵守rtt公平性,即到了rtt时间才会重传丢失的数据,当rtt较大时,就会导致数据的实时性降低,这对于一些对实时性要求较高的应用(比如流媒体应用)是不能忍受的,并且这一特点会导致带宽得不到充分利用;3.在p2p传输领域,由于tcp的NAT穿透成功率极低,用tcp做p2p数据传输几乎不可行。
        udp协议虽然不能保证数据传输的可靠性,但它在数据的实时性、带宽的利用率等方面有着tcp望尘莫及的优势。
        ude协议,正是融合了tcp和udp各自的优点,ude协议在udp的基础之上,实现了tcp的握手连接、数据校验、超时重传等机制,并且在某些方面比tcp做的更好:1.ude协议的数据确认机制比tcp更科学,不会重复发送已经被对方接收的数据;2.ude的超时重传机制不遵循rtt公平性(可以设置rtt的上限值),这就保证了当网络延时较高时,ude也可以用于传输对实时性要求较高的数据,降低了带宽的有效利用率换取实时性,另外它不等ack的到来就重传数据(原理为第n帧没收到ack、而第n+1、n+2帧已收到ack,则认为第n帧已经丢失);3.ude协议计算两端之间的带宽,用这个带宽值和rtt值计算每次发送的数据量,可以最大化的利用带宽;4.当网络发送拥塞,ude计算出新的带宽值,它会控制带宽值的下降幅度,以保证自身的抗网络抖动能力和带宽竞争力;5.ude协议内部实现了心跳机制来检测死链接,程序员不需要在设计时考虑死链接这样的问题。

        ude协议,极其适合在cs方式/p2p方式下做实时性数据的可靠传输。可以在公网搭建tcp server来转发NAT穿透信令,在穿透之后,使用ude协议来做可靠传输。

        对rudp技术感兴趣的朋友可以加群:172297772

    http://blog.csdn.net/xieyu2885/article/details/78296282

  • 相关阅读:
    本地计算机上的SQL Server(MSSQLSERVER)服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止
    三色需求与工作层次
    dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Gold;第一次无效
    c# 在DataTable的第一列(指定列)的前面添加一列
    去掉DataGridView最后一行的空白行,删除空白行
    阿里云OSS Multipart Upload上传实例
    sql 自动增加排序 并且初始值是000001
    HTML禁用Flash文件右键
    HTML,JS禁止鼠标右键、禁止全选、复制、粘贴的方法
    C#PDF转Word
  • 原文地址:https://www.cnblogs.com/findumars/p/7718638.html
Copyright © 2011-2022 走看看