主机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
- 主机A需要给主机B传输一份10GB的数据,从应用层上可以做哪些传输优化?从TCP上可以做哪些传输优化?请分别列举优化措施
- 网络数据包从主机A传输到主机B的流程
- 【清晰明了】A局域网主机向B局域网主机传输数据的过程
- WebRTC中传输层优化
- 网站的优化需要做的有哪些要素
- 蓝牙主机和从机之间传输数据说明
- unity3d移动平台性能优化(9):为了好一点的图形效果可以酌情做哪些,哪些必须避免。
- 不同Web主机上的Servlet之间数据对象的相互传输
- 不同Web主机上的Servlet之间数据对象的相互传输
- 不同Web主机上的Servlet之间数据对象的相互传输
- nfs的传输速度优化
- VPS主机上MySQL数据库的优化
- VPS主机上MySQL数据库的优化
- 新站上线需要做哪些SEO优化准备
- linux主机之间传输数据
- NFS传输速度优化
- 网页为搜索引擎可以做的优化
- 【优化】IO流应用之网络传输
- 黑马程序员----Java语法基础(1){标示符,变量,常量,运算符}
- 00-自测1. 打印沙漏(20)
- HDU 1559 最大子矩阵--dp--(最大和子矩阵模型)
- 文件输入输出操作(字符流)
- poj 2751 双机调度问题Johnson算法(贪心)
- 主机A需要给主机B传输一份10GB的数据,从应用层上可以做哪些传输优化?从TCP上可以做哪些传输优化?请分别列举优化措施
- Win8.1安装SVN时 出现The code error = 2502\2503的解决方法
- Drawable之Ninepatch
- 【swift总结】集合
- 00-自测2. 素数对猜想 (20)
- 静态方法中调用非静态方法
- 指针
- EntryPointTable API
- 静态集成 OpenCL 的 Kernel 源代码到可执行文件