一,TCP的流量控制
1)利用滑动窗口实现流量控制:让发送方的速度不要太快,接收方来得及接收
TCP窗口单位为字节,不是报文段。
2)MSS: Maximum Segment Size 最大分段大小最大传输大小是TCP数据包每次能够传输的最大数据分段。
为了达到最佳的传输效能,TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以一般MSS值1460
通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。
注:最大报文段长度MSS这个名词很容易引起误解。MSS是TCP报文段中的数据字段的最大长度。数据字段加上TCP首部才等于整个的TCP报文段。所以MSS并不是TCP报文段的最大长度,而是:MSS=TCP报文段长度-TCP首部长度
3)糊涂窗口综合症
当发送端应用进程产生数据很慢、或接收端应用进程处理接收缓冲区数据很慢,或二者兼而有之;就会使应用进程间传送的报文段很小,特别是有效载荷很小。 极端情况下,有效载荷可能只有1个字节;而传输开销有40字节(20字节的IP头+20字节的TCP头) 这种现象就叫糊涂窗口综合症
比如:TCP 接收端缓存空间已经满,交互式应用程序一次只能从接收空间读取一个字节,然后向发送端发送确认,把窗口设置为1字节。发送端发送41字节传输开销有40字节(20字节的IP头+20字节的TCP头)。
问题解决:让接收端等待一段时间,使得有足够的空闲空间可以容纳一个最长报文段或拥有一半的空闲。
发送方:要积累一定数据段后才发送。
二,TCP 的拥塞控制
拥塞控制是一个全局性过程,防止过多的数据注入到网络中,使网络路由器或链路不至于过载。
流量控制是一个端到端过程,控制发送端,不要发送过快,让接收端来得及处理。
开环控制:设计网络时,事先将有关发生拥塞的因素都考虑清楚。
闭环控制:基于反馈环路的概念
拥塞控制方法:
1)慢开始和拥塞避免
发送方控制窗口的原则:只要网络没有出现拥塞,窗口就增大一些,以便把更多的分组发送出去。一旦出现拥塞,就把窗口减小,减少注入到网络中的分支数。
慢开始和拥塞避免算法必须被TCP发送端用来控制正在向网络输送的数据量。为了实现这些算法,必须向TCP每连接状态加入两个参量。
拥塞窗口(cwnd)是对发送端收到确认(ACK)之前能向网络传送的最大数据量的一个发送端限制,
接收端通知窗口(rwnd)是对未完成数据量的接收端限制。
Min(Cwnd,rwnd)决定了数据传送
另一个状态参量,慢启动阀值(ssthresh),被用来确定是用慢启动还是用拥塞避免算法来控制数据传送
cwnd<ssthresh
慢开始算法
cwnd>ssthresh拥塞避免算法
cwnd和ssthresh
既可以使用慢启动也可以使用拥塞避免
慢开始:cwnd大小指数增加,即每经过一个传输轮次,拥塞窗口加倍。
拥塞避免:cwnd以每个往返(RTT)1满尺寸数据段的速度递增,即每经过一个传输轮次,拥塞窗口增加
1 。(cwnd+=SMSS*SMSS/cwnd)
执行拥塞避免算法时候,网络出现拥塞(没有按时收到确认),讲慢开始门限(ssthresh)设置为出现拥塞时窗口大小的一半,然后讲cwnd重新设置为1,执行慢开始算法。
2)快速重传/快速恢复
快重传:接收方收到一个失序的报文段后就立即发出重复确认(让发送方及早知道有报文段没有到达接收端),而不要等到接收端发送数据时候捎带确认。
收到M1、M2又收到了M4,则M3丢失,如果接下来的几个报文段都不是M3,则发送M2
确认,如果是M5则再次发M2确认,当发送端收到3个重复确认就应该立即重传M3.
快恢复:当收到三个重复确认,执行乘法减小算法,把慢开始门限ssthresh减半。不执行慢开始算法。
此时执行拥塞避免算法,因为网络没有发生拥塞,如果拥塞就不会一连接受到三个报文。
三,随机早期检测RED
1)概述
路由器的分组丢弃策略对TCP拥塞控制影响很大。
如果发生了路由丢弃,说明出现了拥塞。路由丢弃的是IP分组,而一个IP分组有可能包含好几个TCP连接,所以导致许多TCP同时进入慢开始状态。全局同步
2)丢弃策略
最大门限THmax ,如果分组多余THmax则一定丢弃。
处于两门限之间的要以概率p丢弃个别分组,让拥塞控制只在个别TCP连接上进行,因而避免发生全局性拥塞控制。
最小门限THmin,小于THmin的分组不予丢弃
THmax = 2*THmin 是合适的
分享到:
相关推荐
计算机网络原理-113第5章 传输层--TCP协议概述.mp4
第17章 TCP:传输控制协议 170 第18章 TCP连接的建立与终止 174 第19章 TCP的交互数据流 200 第20章 TCP的成块数据流 209 第21章 TCP的超时与重传 226 第22章 TCP的坚持定时器 245 第23章 TCP的保活定时器 251 第24...
第二十二章 协议控制块 第二十三章 UDP:用户数据报协议 第二十四章 TCP:传输控制协议 第二十五章 TCP的定时器 第二十六章 TCP输出 第二十七章 TCP的函数 第二十八章 TCP的输入 第二十九章 TCP的输入(续) 第三十...
第17章 TCP:传输控制协议 170 17.1 引言 170 17.2 TCP的服务 170 17.3 TCP的首部 171 17.4 小结 173 第18章 TCP连接的建立与终止 174 18.1 引言 174 18.2 连接的建立与终止 174 18.2.1 tcpdump的输出 174 18.2.2 ...
第17章 TCP:传输控制协议 第18章 TCP连接的建立与终止 第19章 TCP的交互数据流 第20章 TCP的成块数据流 第21章 TCP的超时与重传 第22章 TCP的坚持定时 第23章 TCP的保活定时器 第24章 TCP的未来和性能 第25章 SNMP...
第一章 计算机网络基础 4 1.1 计算机网络概述 4 ...5.2 传输层的协议 21 5.3 TCP协议 22 5.4 UDP协议 22 第六章 应用层 24 6.1 应用层的功能 24 6.2 应用层的协议 25 6.3 HTTP协议 26 6.4 DNS协议 27 参考文献 28
第17章 TCP:传输控制协议 170 17.1 引言 170 17.2 TCP的服务 170 17.3 TCP的首部 171 17.4 小结 173 第18章 TCP连接的建立与终止 174 18.1 引言 174 18.2 连接的建立与终止 174 18.2.1 tcpdump的输出 174 18.2.2 ...
与其他的TCP/IP书藉的最大不同在于,本书不仅仅讲述了RFCS的标准协议,而且结合大量实例讲述了TCP/IP协议包的定义原因及在各种不同的操作系统中(如Sunos4.1.3、Soloris2.2、AIX...,使读者可以轻松掌握TCP/IP的知识...
第8~9章介绍传输层数据收发过程,重点介绍基于套接字的TCP/UDP传输实现。第10章讨论了Linux内核套接字层的实现,以及套接字层与应用层、传输层之间的接口。第11章介绍网络应用软件的开发技术,以及内核对网络应用的...
第17章 TCP:传输控制协议 170 17.1 引言 170 17.2 TCP的服务 170 17.3 TCP的首部 171 17.4 小结 173 第18章 TCP连接的建立与终止 174 18.1 引言 174 18.2 连接的建立与终止 174 18.2.1 tcpdump的输出 174 18.2.2 ...
第8~9章介绍传输层数据收发过程,重点介绍基于套接字的TCP/UDP传输实现。第10章讨论了Linux内核套接字层的实现,以及套接字层与应用层、传输层之间的接口。第11章介绍网络应用软件的开发技术,以及内核对网络应用的...
第8~9章介绍传输层数据收发过程,重点介绍基于套接字的TCP/UDP传输实现。第10章讨论了Linux内核套接字层的实现,以及套接字层与应用层、传输层之间的接口。第11章介绍网络应用软件的开发技术,以及内核对网络应用的...
TCP/IP详解 1 概述 1.1 引言 ...在TCP/IP协议组件中,网络层协议包括IP协议(网际协议),ICMP协议(Internet互连网控制报文协议),以及IGMP协议(Internet组管理协议)。 详细内容,请下载浏览。
第22章协议控制块 第23章UDP:用户数据报协议 第24章TCP:传输控制协议 第25章TCP的定时器 第19章选路请求和选路 第26章TCP输出 第27章TCP的函数 第28章TCP的输入 第29章TCP的输入(续) 第30章TCP的用户需求 第31章...
第1章 T/TCP概述 1 1.1 概述 1 1.2 UDP上的客户-服务器 1 1.3 TCP上的客户-服务器 6 1.4 T/TCP上的客户-服务器 12 1.5 测试网络 15 1.6 时间测量程序 15 1.7 应用 17 1.8 历史 19 1.9 实现 20 1.10 小结 21 第2章 T/...
第17章 TCP:传输控制协议 第18章 TCP连接的建立与终止 第19章 TCP的交互数据流 第20章 TCP的成块数据流 第21章 TCP的超时与重传 第22章 TCP的坚持定时 第23章 TCP的保活定时器 第24章 TCP的未来和性能 第25章 SNMP...
第17章 TCP:传输控制协议 170 17.1 引言 170 17.2 TCP的服务 170 17.3 TCP的首部 171 17.4 小结 173 第18章 TCP连接的建立与终止 174 18.1 引言 174 18.2 连接的建立与终止 174 18.2.1 tcpdump的输出 174 18.2.2 ...
第17章 TCP:传输控制协议 170 17.1 引言 170 17.2 TCP的服务 170 17.3 TCP的首部 171 17.4 小结 173 第18章 TCP连接的建立与终止 174 18.1 引言 174 18.2 连接的建立与终止 174 18.2.1 tcpdump的输出 174 18.2.2 ...
第六单元 传输层本节内容概述 ...传输层的多路复用 ...端口号 ...传输控制协议(TCP) ...TCP报文格式 ...三次握手建立连接 ...四次握手释