这几天一直在看TCP/IP详解->TCP超时重传这一章,这章的内容可以毫不夸张的说是TCP的难点,。本章重点讲了Van.Jacobson的慢启动,拥塞避免算法,快速重传算法,快速恢复算法,在讲解中stevens重点关注了在传输中,cwnd(拥塞窗口),ssthresh(慢启动极限)的变化。现在重点描述一下在以下状态这两个值的变化:
发送SYN超时->SYN重传->慢启动->拥塞避免算法->数据分组丢失->重复ACK->重传丢失数据分组->重复ACK->发送新的数据分组->重发数据ACK->->
(1)在发送SYN期间超时,cwnd设置一个报文段(256字节),ssthresh设置最小取值2D(两个报文段512字节),SYN重传成功后不会更新cwnd,ssthresh做任何修改,发送方将等待新的ACK发回;
(2)发送方进入慢启动状态后ssthresh不会变化,每次收到ACK时候cwnd=cwnd + 一个报文大小,说明在慢启动期间cwnd是成指数级增长的;
(3)当cwnd超过了ssthresh时进入拥塞避免算法状态,此刻cwnd增长速率减小cwd = cwnd + segsize*segsize/cwnd + 1/cwnd,但是实际上早期的BSD并没有按照这个算法去实现,而是错误按照cwd = cwnd + segsize*segsize/cwnd + segsize/8去实现;
(4)在传输数据的时候出现数据分组丢失时,一旦被接受方发现,接受方将一直发送重复ACK,此刻cwnd,ssthresh不变化(因为有可能是TCP传送序号失序),当接受方发现3个重复ACK的时候,接受方就立即发送丢失数据分组,就是是所谓的快速重传;
(5)重传数据分组后,ssthresh变化为当前cwnd的一半(四舍五入去整),而cwnd设置为当前变化后的ssthresh + 3*报文段,这里乘3的原因是快速重传算法传三次;
(6)然后继续接受重复ACK,在此期间发送方运行发送数据但必须cwnd的容量大于通告窗口缓存里的容量才可传入新的数据分组,这就是所谓的快速恢复,cwnd在这个阶段也是按照报文段个数增长(与慢启动期间相同);
(7)最后发送方终于回复了重传数据包的ACK后,cwnd被设置成ssthresh的值,ssthresh不变,此时由于cwnd小于等于ssthresh,因此cwnd增加一个报文段大小,此时cwnd大于ssthresh接收方又进入拥塞避免状态.
写得有点乱,详细请看TCP/IP协议详解 卷一 p239,重点看那三张图,画得很直观,很清晰,。
分享到:
相关推荐
第21章 TCP的超时与重传 226 第22章 TCP的坚持定时器 245 第23章 TCP的保活定时器 251 第24章 TCP的未来和性能 256 第25章 SNMP:简单网络管理协议 270 第26章 Telnet和Rlogin:远程登录 293 第27章 FTP:文件传送...
第21章 TCP的超时与重传 226 第22章 TCP的坚持定时器 245 第23章 TCP的保活定时器 251 第24章 TCP的未来和性能 256 第25章 SNMP:简单网络管理协议 270 第26章 Telnet和Rlogin:远程登录 293 第27章 FTP:文件传送...
第21章 TCP的超时与重传 226 21.1 引言 226 21.2 超时与重传的简单例子 226 21.3 往返时间测量 227 21.4 往返时间RTT的例子 229 21.4.1 往返时间RTT的测量 229 21.4.2 RTT估计器的计算 231 21.4.3 慢启动 233 21.5 ...
当客户与服务器进程在同一台主机上时,UNIX域协议通常要比TCP/IP快一倍。本书同样采用了大量的实例和实现细节,并参考引用了卷2中的大量源程序。适用于希望理解TCP/IP如何工作的人,包括编写网络应用程序的程序员...
在TCP传送一个数据包时,它会把这个数据包放入重发队列中,同时启动计时器,如果收到了关于这个包的确认信息,便将此数据包从队列中删除,如果在计时器超时的时候仍然没有收到确认信息,则需要重新发送该数据包。...
第21章 TCP的超时与重传 226 21.1 引言 226 21.2 超时与重传的简单例子 226 21.3 往返时间测量 227 21.4 往返时间RTT的例子 229 21.4.1 往返时间RTT的测量 229 21.4.2 RTT估计器的计算 231 21.4.3 慢...
第21章 TCP的超时与重传 226 21.1 引言 226 21.2 超时与重传的简单例子 226 21.3 往返时间测量 227 21.4 往返时间RTT的例子 229 21.4.1 往返时间RTT的测量 229 21.4.2 RTT估计器的计算 231 21.4.3 慢启动 233 21.5 ...
介绍了TCP/IP协议的三次握手,并且解释了传输超时系统的设置。
基于TCP/IP的连接 其中接收端SELECT 超时设置 阻塞 多路监听技术 初学者很适合! 为了初学者多学习,一定要用最低的积分
第21章 TCP的超时与重传 226 21.1 引言 226 21.2 超时与重传的简单例子 226 21.3 往返时间测量 227 21.4 往返时间RTT的例子 229 21.4.1 往返时间RTT的测量 229 21.4.2 RTT估计器的计算 231 21.4.3 慢启动 233 21.5 ...
tcp/ip详解全书pdf,绝对高清! 1.1 引言 很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但T C P / I P协议 族允许它们互相进行通信。这一点很让人感到吃惊,因为它的作用已远远超出了起初的...
第21章 TCP的超时与重传 226 第22章 TCP的坚持定时器 245 第23章 TCP的保活定时器 251 第24章 TCP的未来和性能 256 第25章 SNMP:简单网络管理协议 270 第26章 Telnet和Rlogin:远程登录 293 第27章 FTP:文件传送...
对T C P的介绍将由本章开始,并一直包括随后的7章。第1 8章描述如何建立和终止一...第2 1章提供T C P超时及重传的技术细节,第2 2和第2 3章将介绍两种其他 的定时器。最后,第2 4章概述T C P新的特性以及T C P的性能。
第21章 TCP的超时与重传 226 21.1 引言 226 21.2 超时与重传的简单例子 226 21.3 往返时间测量 227 21.4 往返时间RTT的例子 229 21.4.1 往返时间RTT的测量 229 21.4.2 RTT估计器的计算 231 21.4.3 慢启动 233 21.5 ...
第21章 TCP的超时与重传 226 21.1 引言 226 21.2 超时与重传的简单例子 226 21.3 往返时间测量 227 21.4 往返时间RTT的例子 229 21.4.1 往返时间RTT的测量 229 21.4.2 RTT估计器的计算 231 21.4.3 慢启动 233 21.5 ...
书中依次全面介绍了ARP、DHCP、NAT、防火墙、ICMPv4/ICMPv6、广播、多播、UDP、DNS等,并详细介绍了可靠传输和TCP,包括连接管理、超时、重传、交互式数据流和拥塞控制。此外,还介绍了安全和加密的基础知识,阐述...
互联网协议套件(英语:Internet Protocol Suite,缩写IPS)[1]是一个网络通信模型,以及一整个网络传输协议家族,为网际网络的基础通信架构。它常被通称为TCP/IP协议族(英语:...3、重传超时 4、流量控制 5、拥塞控制
《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输...