博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
为什么TCP在高时延和丢包的网络中传输效率差?
阅读量:5872 次
发布时间:2019-06-19

本文共 1027 字,大约阅读时间需要 3 分钟。

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


-

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

-

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

TCP固有的传输性能瓶颈主要是由TCP的加性增/乘性减()拥塞避免算法引起的,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

转载于:https://blog.51cto.com/13688966/2105897

你可能感兴趣的文章
linux中引入python的tkinter模块
查看>>
不学无数——适配器模式
查看>>
一张图了解Spring Cloud微服务架构
查看>>
上下文管理器
查看>>
用Golang写一个搜索引擎(0x03)
查看>>
OSChina 周六乱弹 ——用大脑直接写代码
查看>>
notepad++配置Zen Coding
查看>>
make
查看>>
python临时笔记
查看>>
ios自定义UITextView 支持placeholder的方法
查看>>
多语言跨平台远程过程调用【Avro】
查看>>
[0/N] 论得趣
查看>>
[16/N]论得趣
查看>>
甜蜜的负担
查看>>
Android开发,你应该知道的
查看>>
图片压缩的另一种实现(3)
查看>>
Material Design实现的美观的登录界面
查看>>
有关数据库事务的一些理解-原生的Java的JDBC事务
查看>>
python中__init__.py是干什么的
查看>>
Hashtable 和 HashMap 的区别
查看>>