主机A需要给主机B传输一份10GB的数据,从应用层上可以做哪些传输优化?从TCP上可以做哪些传输优化?请分别列举优化措施

来源:互联网 发布:什么是数组 编辑:程序博客网 时间:2024/05/17 03:19

这题有难度哦。

如果传数据无外乎TCP/UDP协议,或者自己写。但是一般比较方便都是直接用socket调用。

如果小数据这个题目就不难了,但是10G的大数据,又要求优化,这就要对网络协议非常了解才行。


一般下载软件 迅雷 /各种快车 为什么都用UDP传数据,但是他们发送命令,建连又会使用TCP,有没有人想想为什么?


了解了这个,在谈TCP优化,其实就能找到点了。


我们先说UDP ,只管发,不管你是否收到,又接收方判断接收是否完整,又上层协议控制是否需要重传。

说TCP,TCP协议负责可靠的传输,那么,每发送数据包的时候就要有应答,比如我发1个数据包,你应答了一个,我发了2个数据包,你应答了2个,我发四个数据包,你应答了4个,我发8个,你不应答8个,我就要减少发送了。这部分可以参考TCP的慢启动和滑动窗口。

是不是可以做优化呢?

现在开始说这个题目的考点或者意图。

首先,讲TCP深入的书,都会讲的长肥管道。不清楚的可以自行百度。如果不清楚这个,影响都这个题目的理解。

也就是这个通道的带宽很大,是不是应该很快就传完呢?不是,UDP可以,TCP不行,因为什么,就因为这个应答机制。

我发送完我要等,等对方的应答,如果对方不应答,我就要等超时,如果这个通道的 RTT很长,那么悲催了,本身慢启动,再加等应答,你会发现,10G的通道,在RTT很大的时候,用TCP协议传输,很难将带宽用满。这个是最关键的优化点,如果能解决这个问题,必须改造协议,改造应答机制,这样才是优化到点子上。


看起来这个题目像老师的作业,或者论述,要注意自己思考哈~

计算机网络 第四版 写的很清楚,我就不多细说了,其他的你自己查书,补充。


0 0
原创粉丝点击