计算机网络与通信 第2版 教学课件 作者 申普兵 第8章 传输层 .ppt

计算机网络与通信 第2版 教学课件 作者 申普兵 第8章 传输层 .ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * TCP维持一个最大报文段长度MSS的变量。只要发送缓存从发送进程得到的数据达到MSS字节时,就组装成一个TCP报文段发送出去。 发送端的应用进程指明要求发送报文段,即TCP支持的推送(push)操作。 发送端的一个计时器时间到了,就把当前已有的缓存数据装入报文段发送出去。 TCP控制报文发送的三种机制 Nagle算法 每一条TCP连接上最多只能有一个未被确认的小分组,在该分组的确认到达之前不能再发送其他的小分组,由本地TCP实体收集这些小分组。在确认到来之前将其拼装成一个较大的分组,收到确认时将这个分组发送出去。如果本地的数据积累到窗口尺寸的一半或者到达了最大的数据段长度时,应该立即发送一个报文段。Nagle算法是自适应的,确认到达得越快,数据也就发送得越快。 TCP的流量控制 TCP使用可变窗口机制来进行流量控制。当一条连接创建时,连接的每一端都会分配一个缓冲区用于保存输入的数据,缓冲区空间的可用大小值被称为通知窗口,在相应的报文段中给出窗口的过程称为窗口通告。 TCP的流量控制常用于拥塞控制。 SEQ=1 SEQ=101 SEQ=201 ACK=201,WIN=300 SEQ=301 SEQ=401 SEQ=201 ACK=501,WIN=200 SEQ=501 ACK=601,WIN=0 A还能发送300字节 A还能发送200字节 允许A再发送300字节(序号201至500) A还能发送200字节(序号301至500) A还能发送100字节(序号401至500) A超时重发,但不能发送序号500以后的数据 允许A再发送200字节(序号501至700) A 还能发送100字节(序号601至700) 不允许A再发送(序号600以前的均收到了) 丢失 主机 A 主机 B 利用可变窗口进行流量控制举例 发送窗口的确定 发送窗口=Min[通知窗口,拥塞窗口] 通知窗口是接收端根据其接收能力许诺的窗口值,是来自接收端的流量控制。 拥塞窗口是发送端根据网络拥塞情况得出的窗口值,来自发送端的流量控制。 发送端的发送窗口取“通知窗口”和“拥塞窗口”中较小的一个。 TCP拥塞控制技术 1999年公布的因特网建议标准RFC 2581定义了进行拥塞控制的四种算法,即慢启动(slow-start)、拥塞避免(congestion avoidance)、快重传(fast restransmit)和快恢复(fast recovery)。 慢启动和拥塞避免 慢启动的基本思路: 通常在刚刚开始发送报文段时,先把拥塞窗口cwnd设置为一个最大报文段MSS的数值。而在每收到一个对新的报文段的确认后,把拥塞窗口增加至多一个MSS的数值。用这样的方法逐步增大发送方的拥塞窗口cwnd,可以使分组注入到网络的速率更加合理。 慢启动 在一开始发送方先设置cwnd=1,发送第一个报文段M1,接收方收到后确认M1。发送方收到对M1的确认后,把cwnd从1增大到2,于是发送方接着发送M2和M3两个报文段。接收方收到后发回对M2和M3的确认。发送方每收到一个对新报文段的确认(重传的不算在内)就使发送方的拥塞窗口加1,因此发送方在收到两个确认后,cwnd就从2增大到4,并可发送M4~M7共4个报文段。因此使用慢启动算法后,每经过一个传输轮次(transmission round),拥塞窗口cwnd就加倍。 拥塞避免 拥塞避免算法的思路是让拥塞窗口cwnd缓慢增大,即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1而不是加倍。这样,拥塞窗口cwnd按线性规律缓慢增长,比慢启动算法的拥塞窗口增长速率缓慢很多。 慢启动与拥塞避免 为了防止拥塞窗口cwnd增长过大引起网络拥塞,还需要设置一个慢启动门限ssthresh状态变量。慢启动门限ssthresh的用法如下: 当cwnd<ssthresh时,使用上述的慢启动算法。 当cwnd>ssthresh时,停止使用慢启动算法而改用拥塞避免算法。 当cwnd=ssthresh时,既可使用慢启动算法,也可使用拥塞避免算法。 慢启动与拥塞避免 无论在慢启动阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(其根据就是没有收到确认),就要把慢启动门限ssthresh设置为出现拥塞时的发送方窗口值的一半(但不能小于2)。然后把拥塞窗口cwnd重新设置为1,执行慢启动算法。这样做的目

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档