专栏首页云上大文件传输为什么TCP在高时延和丢包的网络中传输效率差?

为什么TCP在高时延和丢包的网络中传输效率差?

说明:有同学私信问到,为什么TCP在高时延和丢包的网络中传输效率差? Google可以搜到很多的信息,这里转译了部分IBM Aspera fasp技术白皮书的第一章节内容,作为参考。


在这个数字世界中,数字数据的快速和可靠移动,包括全球范围内的大规模数据传送,对于几乎所有行业的业务成功都变得至关重要。

然而,传统的TCP协议具有固有的性能瓶颈,特别是对于具有高往返时间(RTT)和丢包的高带宽网络上最为显著。

TCP固有的传输性能瓶颈主要是由TCP的加性增/乘性减(AIMD)拥塞避免算法引起的,TCP拥塞算法缓慢地探测网络的可用带宽,增加传输速率直到检测到分组丢失,然后指数地降低传输速率。

TCP的这种拥塞算法是为了避免Internet整体拥塞而设计的,因为在互联网的早期,数据传送网络都是基于电缆固定网络,传输中出现丢包就可以100%的认为是传输通道出现了拥塞。然而在今天的网络情况下,WIFI/移动蜂窝网络等无线传输网络本身就具有天然的丢包可能性,这些与网络拥塞无关的其它分组丢失同样降低了传输速率。

事实上,TCP AIMD算法本身也会造成丢包,导致网络出现瓶颈。在提高传输速率直到发生丢失时,AIMD过于激进地探测可用带宽导致丢包。在某些情况下,这种由于激进探测带宽引发的丢包损耗实际上超过了来自其它原因(例如物理介质或交叉业务突发)的损耗,并且以不可预测的损耗比将"无损耗通信信道"变为"不可靠的信道"。

TCP AIMD中基于丢包的拥塞控制对网络端到端传输吞吐量具有致命的影响:当一个分组丢失需要重传时,TCP大幅降低发送数据甚至停止发送数据到接收应用,直到重传确认。所有的网络应用传输性能都会受到TCP这种拥塞算法的影响,但是对于大批量数据的传输而言,尤其致命。

TCP中可靠性(重传)与拥塞控制的这种耦合对文件传输造成严重的人为吞吐量损失,这从基于TCP的传统文件传输协议(如广域网上的FTP、HTTP、CIFS、NFS )的性能较差可见一斑。

下面条形图显示了在使用TCP (黄色显示)的文件传输技术的OC-1 (51 Mbps)链路上,在各种数据包丢失和网络延迟条件下可实现的最大吞吐量。TCP连接吞吐量有一个严格的理论限制,它仅取决于网络RTT和数据包丢失。请注意,增加更多带宽不会改变TCP有效吞吐量。文件传输速度没有提高,昂贵的带宽也没有得到充分利用。

tcp在不同的丢包率和时延下的端到端吞吐量.png

原文链接:http://asperasoft.com/fileadmin/media/Asperasoft.com/Resources/White_Papers/fasp_Critical_Technology_Comparison_AsperaWP.pdf

原文作者:asperasoft.com

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Windows TCP: TCP接收窗口自动调谐(Auto-Tuning)原理介绍

    TCP连接上的吞吐量可以通过发送和接收应用程序、TCP的发送和接收实现以及TCP对等体之间的传输路径来限制。在本文我将介绍TCP接收窗口及其对TCP吞吐量的影响...

    云语科技
  • win10和win server 2016新的TCP功能介绍

    TFO允许在TCP握手期间发送和接收初始SYN分组中的数据。如果客户端和服务器都支持TFO功能,则可以减少建立到同一服务器的多个TCP连接的延迟。这是通过在初始...

    云语科技
  • 如果美国政府不让中国使用aspera软件,我们的大文件传输还有哪些选择

    上周最热信息莫过于“美国对中兴通信ZTE的出口禁令”,美国断了“芯”,企业丢了魂,每年营收超千亿、全球第四大的通信设备制造商(前三为华为、爱立信、阿尔卡特朗讯)...

    云语科技
  • GitHub 标星过万!腾讯技术官发布的“神仙文档”图解网络

    互联网世界中,网络协议的重要性不言而喻。很多人都知道,网络协议中的五层模型或者七层模型,这些在操作系统中,那都是“必考题”。上学的时候,无论是死记硬背,还是各种...

    烂猪皮
  • TCP 是什么?面试时必须知道吗?

    你学习英语时会只背单词不学语法吗?显然不可能,那 TCP 也是一样的,作为计算机网络非常重要的内容,规范了网络传输过程的状态,格式等。

    CSDN技术头条
  • TCP 是什么?面试时必须知道吗?

    你学习英语时会只背单词不学语法吗?显然不可能,那 TCP 也是一样的,作为计算机网络非常重要的内容,规范了网络传输过程的状态,格式等。

    用户1737318
  • Linux-Python-Scapy的T

    从下到上FIN—SYN—RST—PSH—ACK—URG 1 2 4 8 16 32

    py3study
  • 头条二面问网络传输如何保证可靠性?我差点翻车了

    如果你还在参加春招,不管是社招还是校招。龙叔都想唠叨几句,今年整体经济形势很差,可能有些人还没意识到有多差,但我相信很多人都能感受到。很多公司入不敷出,基本都在...

    龙跃十二
  • 端口的常用端口

    端口号---具有网络功能的应用软件的标识号。注意,端口号是不固定的,即可以由用户手工可以分配(当然,一般在软件编写时就已经定义)。当然,有很多应用软件有公认的默...

    98k
  • 哈哈哈,求人办事,切勿 UDP 方式啊,还是 TCP 靠谱呀 [允悲][允悲][允悲]

    1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接

    良月柒

扫码关注云+社区

领取腾讯云代金券