TCP/IP详解学习笔记(14)-TCP连接的未来和性能(未写完)
2016-05-10 14:42
811 查看
在TCP刚出世的时候,其主要工作环境是以太网和SLIP之类的低速网络。随着高速网络的出现,让TCP协议的吞吐量更大,效率更高的要求就愈来愈迫切。为此,TCP增加了三个重要机制来对应现在的变化,他们是
路径MTU发现。
窗口扩大选项和时间戳。
T/TCP(增加了事务功能的TCP协议)。
当源主机接收到较新的ICMP差错报文时,就直接修改自己的最大发送报文段大小为发送ICMP差错报文的发送端的MTU与IP头和TCP头的差值。
当源主机接收到较新的ICMP差错报文时,则必须尝试下一个MTU(各种不同的网络设备都有一个MTU,各个MTU从大到小为"65535,17914,4464,4352,1500,1492,576,296")。
因为路由可以动态变化,所以每隔10分钟,发送端就可以用比较大的报文来侦测一下路径MTU。
顶0
路径MTU发现。
窗口扩大选项和时间戳。
T/TCP(增加了事务功能的TCP协议)。
1.路径MTU发现
顾名思义路径MTU指的是源主机到墓地主机之间的路径的可传送最大单元的大小。其原理同样是使用设置了不许分片的IP数据报,并等待ICMP错误,来估算MTU的大小。书中的P257介绍了TCP如何根据ICMP的报文来修改自己的MTU。具体如下:当源主机接收到较新的ICMP差错报文时,就直接修改自己的最大发送报文段大小为发送ICMP差错报文的发送端的MTU与IP头和TCP头的差值。
当源主机接收到较新的ICMP差错报文时,则必须尝试下一个MTU(各种不同的网络设备都有一个MTU,各个MTU从大到小为"65535,17914,4464,4352,1500,1492,576,296")。
因为路由可以动态变化,所以每隔10分钟,发送端就可以用比较大的报文来侦测一下路径MTU。
2.长肥管道
所谓的长肥管道,说的就是发送时延长,带宽宽的管道,衡量这一概念的标准是时延面积。如果碰上了网络“又长又肥”,那么网络的利用率就会大幅度的降低,普通的计时方法和窗口面积就不够用了。就需要更多的措施来弥补这个缺陷。这就是时间戳和窗口扩大选项。这些都是在经典TCP协议头之外定义的扩展选项,格式如下:2.1.时间戳选项
用户在发送每一个TCP报文的时候都放置一个时间戳,接受方在确认中返回这个时间戳值。发送方就可以根据这个时间戳来计算RTT。从而使得RTT更加精确,减少不必要的重传。减低网络的负载。2.2.窗口扩大选项
很奇怪的是为什么窗口最大的扩展量只有14而不是64。因为毕竟窗口扩大选项有一个字节那么长的数据可以用,不过,不管怎么样,还是记住为好。窗口扩大选项可以让窗口扩大到2的30次方。这就几乎完美的解决了肥管道的问题。顶0
相关文章推荐
- HTTP协议
- TCP/IP详解学习笔记(13)-TCP坚持定时器,TCP保活定时器
- TCP/IP详解学习笔记(12)-TCP的超时与重传
- TCP/IP详解学习笔记(11)-TCP交互数据流,成块数据流
- TCP/IP详解学习笔记(10)-TCP连接的建立与中止
- TCP/IP详解学习笔记(9)-TCP协议概述
- TCP/IP详解(三)---IP、ARP协议
- TCP/IP详解学习笔记(8)-DNS域名系统
- TCP/IP详解学习笔记(7)-广播和多播,IGMP协议
- socket,tcp,http三者之间的区别和原理
- TCP/IP详解学习笔记(6)-UDP协议
- TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节
- HttpClient
- Tomcat配置并启用HTTPS
- 网络编程知识(7)--Apache与Nginx的优缺点比较
- TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute
- 苹果:6月1日后所有应用必须支持IPv6-only网络
- Java---网络编程(3)-TCP-互传文件和图片
- Java---网络编程(3)-TCP-互传文件和图片
- TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议