《计算机网络教学资料》第8章运输层(二).ppt
《《计算机网络教学资料》第8章运输层(二).ppt》由会员分享,可在线阅读,更多相关《《计算机网络教学资料》第8章运输层(二).ppt(69页珍藏版)》请在三一办公上搜索。
1、8.6 TCP 可靠传输的实现8.6.1 以字节为单位的滑动窗口,前移,不允许发送,已发送并收到确认,A 的发送窗口=20,允许发送的序号,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,B 期望收到的序号,前沿,后沿,前移,收缩,根据 B 给出的窗口值A 构造出自己的发送窗口,TCP 标准强烈不赞成发送窗口前沿向后收缩,1,不允许发送,已发送并收到确认,A 的发送窗口位置不变,允许发送但尚未发送,26,27,28,29,30,31,32,33,34,35,
2、36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,已发送但未收到确认,56,P1,P2,P3,不允许接收,已发送确认并交付主机,B 的接收窗口,允许接收,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,未按序收到,可用窗口,A 发送了 11 个字节的数据,P3 P1=A 的发送窗口(又称为通知窗口)P2 P1=已发送但尚未收到确认的字节数P3 P2=允许发送但尚未发送的字节数(又称为可用窗
3、口),2,允许发送但尚未发送,A 的发送窗口向前滑动,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,已发送并收到确认,不允许发送,已发送但未收到确认,56,P1,P2,P3,允许接收,B 的接收窗口向前滑动,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,已发送确认并交付主机,不允许接收,56,未按序收到,A 收到新的确认号,发送窗
4、口向前滑动,先存下,等待缺少的数据的到达,3,不允许发送,已发送并收到确认,A 的发送窗口已满,有效窗口为零,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,已发送但未收到确认,56,P1,P2,P3,A 的发送窗口内的序号都已用完,但还没有再收到确认,必须停止发送。,4,发送缓存,最后被确认的字节,发送应用程序,发送缓存,最后发送的字节,发送窗口,已发送,TCP,序号增大,5,接收缓存,接收应用程序,已收到,接收窗口,TCP,接收缓存,下一个读取的字节,序号增大
5、,下一个期望收到的字节(确认号),6,发送缓存与接收缓存的作用,发送缓存用来暂时存放:发送应用程序传送给发送方 TCP 准备发送的数据;TCP 已发送出但尚未收到确认的数据。接收缓存用来暂时存放:按序到达的、但尚未被接收应用程序读取的数据;不按序到达的数据。,7,需要强调三点,A 的发送窗口并不总是和 B 的接收窗口一样大(因为有一定的时间滞后)。TCP 标准没有规定对不按序到达的数据应如何处理。通常是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程。TCP 要求接收方必须有累积确认的功能,这样可以减小传输开销。,8,8.6.2 超时重传时间的选择,重传机制是
6、TCP 中最重要和最复杂的问题之一。TCP 每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到但还没有收到确认,就要重传这一报文段。,9,往返时延的方差很大,由于 TCP 的下层是一个互联网环境,IP 数据报所选择的路由变化很大。因而运输层的往返时间的方差也很大。,时间,数据链路层,T1,T2,T3,往返时间的概率分布,10,加权平均往返时间,TCP 保留了 RTT 的一个加权平均往返时间 RTTS(这又称为平滑的往返时间)。第一次测量到 RTT 样本时,RTTS 值就取为所测量到的 RTT 样本值。以后每测量到一个新的 RTT 样本,就按下式重新计算一次 RTTS:新
7、的 RTTS(1)(旧的 RTTS)(新的 RTT 样本)(5-4)式中,0 1。若 很接近于零,表示 RTT 值更新较慢。若选择 接近于 1,则表示 RTT 值更新较快。RFC 2988 推荐的 值为 1/8,即 0.125。,11,超时重传时间 RTO(RetransmissionTime-Out),RTO 应略大于上面得出的加权平均往返时间 RTTS。RFC 2988 建议使用下式计算 RTO:RTO RTTS+4 RTTD(5-5)RTTD 是 RTT 的偏差的加权平均值。RFC 2988 建议这样计算 RTTD。第一次测量时,RTTD 值取为测量到的 RTT 样本值的一半。在以后的测
8、量中,则使用下式计算加权平均的 RTTD:新的 RTTD=(1)(旧的RTTD)+RTTS 新的 RTT 样本(5-6)是个小于 1 的系数,其推荐值是 1/4,即 0.25。,12,往返时间 RTT?,往返时间的测量相当复杂,TCP 报文段 1 没有收到确认。重传(即报文段 2)后,收到了确认报文段 ACK。如何判定此确认报文段是对原来的报文段 1 的确认,还是对重传的报文段 2 的确认?,发送一个TCP 报文段,超时重传TCP 报文段,收到 ACK,时间,1,2,往返时间 RTT?,是对哪一个报文段的确认?,13,Karn 算法,在计算平均往返时间 RTT 时,只要报文段重传了,就不采用其
9、往返时间样本。这样得出的加权平均平均往返时间 RTTS 和超时重传时间 RTO 就较准确。,14,报文段每重传一次,就把 RTO 增大一些:新的 RTO(旧的 RTO)系数 的典型值是 2。当不再发生报文段的重传时,才根据报文段的往返时延更新平均往返时延 RTT 和超时重传时间 RTO 的数值。实践证明,这种策略较为合理。,修正的 Karn 算法,15,8.6.3 选择确认 SACK(Selective ACK),接收方收到了和前面的字节流不连续的两个字节块。如果这些字节的序号都在接收窗口之内,那么接收方就先收下这些数据,但要把这些信息准确地告诉发送方,使发送方不要再重复发送这些已收到的数据。
10、,16,1 1000 1501 3000 3501 4500,确认号=1001,L1=1501,L2=3501,R1=3001,R2=4501,接收到的字节流序号不连续,连续的字节流,第一个字节块,第二个字节块,和前后字节不连续的每一个字节块都有两个边界:左边界和右边界。图中用四个指针标记这些边界。第一个字节块的左边界 L1=1501,但右边界 R1=3001。左边界指出字节块的第一个字节的序号,但右边界减 1 才是 字节块中的最后一个序号。第二个字节块的左边界 L2=3501,而右边界 R2=4501。,17,RFC 2018 的规定,如果要使用选择确认,那么在建立 TCP 连接时,就要在
11、TCP 首部的选项中加上“允许 SACK”的选项,而双方必须都事先商定好。如果使用选择确认,那么原来首部中的“确认号字段”的用法仍然不变。只是以后在 TCP 报文段的首部中都增加了 SACK 选项,以便报告收到的不连续的字节块的边界。由于首部选项的长度最多只有 40 字节,而指明一个边界就要用掉 4 字节,因此在选项中最多只能指明 4 个字节块的边界信息。,18,8.7 TCP 的流量控制8.7.1 利用滑动窗口实现流量控制,一般说来,我们总是希望数据传输得更快一些。但如果发送方把数据发送得过快,接收方就可能来不及接收,这就会造成数据的丢失。流量控制(flow control)就是让发送方的发
12、送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。利用滑动窗口机制可以很方便地在 TCP 连接上实现流量控制。,19,20,TCP 的流量控制滑动窗口的概念,TCP 采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。在 TCP 报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限。发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的资源情况,随时动态地调整对方的发送窗口上限值(可增大或减小)。,21,收到确认即可前移,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701
13、,801,1,可发送,不可发送,发送端要发送 900 字节长的数据,划分为 9 个 100 字节长的报文段,而发送窗口确定为 500 字节。发送端只要收到了对方的确认,发送窗口就可前移。发送 TCP 要维护一个指针。每发送一个报文段,指针就向前移动一个报文段的距离。,22,收到确认即可前移,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,不可发送,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,发送窗口,可发送,
14、不可发送,发送窗口前移,发送端已发送了 400 字节的数据,但只收到对前 200 字节数据的确认,同时窗口大小不变。现在发送端还可发送 300 字节。,23,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,已发送并被确认,已发送但未被确认,可发送,不可发送,指针,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,不可发送,指针,发送窗口前移,发送端收到了对方对前 400 字节数据的确认,但对方通知发送端必须把窗口减
15、小到 400 字节。现在发送端最多还可发送 400 字节的数据。,seq=1,DATA,seq=201,DATA,seq=401,DATA,seq=301,DATA,seq=101,DATA,seq=201,DATA,seq=501,DATA,ACK=1,ack=201,rwnd=300,ACK=1,ack=601,rwnd=0,ACK=1,ack=501,rwnd=100,A,B,允许 A 发送序号 201 至 500 共 300 字节,A 发送了序号 101 至 200,还能发送 200 字节,A 发送了序号 301 至 400,还能再发送 100 字节新数据,A 发送了序号 1 至 10
16、0,还能发送 300 字节,A 发送了序号 401 至 500,不能再发送新数据了,A 超时重传旧的数据,但不能发送新的数据,允许 A 发送序号 501 至 600 共 100 字节,A 发送了序号 501 至 600,不能再发送了,不允许 A 再发送(到序号 600 为止的数据都收到了),丢失!,流量控制举例,A 向 B 发送数据。在连接建立时,B 告诉 A:“我的接收窗口 rwnd=400(字节)”。,24,8.8 TCP的拥塞控制8.8.1 拥塞控制的一般原理,在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏产生拥塞(congestion)。出现资源拥
17、塞的条件:对资源需求的总和 可用资源(5-7)若网络中有许多资源同时产生拥塞,网络的性能就要明显变坏,整个网络的吞吐量将随输入负荷的增大而下降。,25,拥塞控制与流量控制的关系,拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。流量控制往往指在给定的发送端和接收端之间的点对点通信量的控制。流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。,26,拥塞控制所起的作用,提供的负载,吞吐量,0,27,拥塞控制的一般原理,拥塞控制是很难设计的,因为它是一个动态的(而不是静态
18、的)问题。当前网络正朝着高速化的方向发展,这很容易出现缓存不够大而造成分组的丢失。但分组的丢失是网络发生拥塞的征兆而不是原因。在许多情况下,甚至正是拥塞控制本身成为引起网络性能恶化甚至发生死锁的原因。这点应特别引起重视。,28,开环控制和闭环控制,开环控制方法就是在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。闭环控制是基于反馈环路的概念。属于闭环控制的有以下几种措施:监测网络系统以便检测到拥塞在何时、何处发生。将拥塞发生的信息传送到可采取行动的地方。调整网络系统的运行以解决出现的问题。,29,8.8.2 几种拥塞控制方法1.慢开始和拥塞避免,发送方维持一个叫做拥塞窗
19、口 cwnd(congestion window)的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口。如再考虑到接收方的接收能力,则发送窗口还可能小于拥塞窗口。发送方控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去。但只要网络出现拥塞,拥塞窗口就减小一些,以减少注入到网络中的分组数。,30,慢开始算法的原理,在主机刚刚开始发送报文段时可先设置拥塞窗口 cwnd=1,即设置为一个最大报文段 MSS 的数值。在每收到一个对新的报文段的确认后,将拥塞窗口加 1,即增加一个 MSS 的数值。用这样的方法逐步增大
20、发送端的拥塞窗口 cwnd,可以使分组注入到网络的速率更加合理。,31,发送方,接收方,发送 M1,确认 M1,发送 M2M3,确认 M2M3,发送 M4M7,确认 M4M7,cwnd=1,cwnd=2,cwnd=4,发送 M8M15,cwnd=8,t,t,发送方每收到一个对新报文段的确认(重传的不算在内)就使 cwnd 加 1。,轮次 1,轮次 2,轮次 3,32,传输轮次(transmission round),使用慢开始算法后,每经过一个传输轮次,拥塞窗口 cwnd 就加倍。一个传输轮次所经历的时间其实就是往返时间 RTT。“传输轮次”更加强调:把拥塞窗口 cwnd 所允许发送的报文段都
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络教学资料 计算机网络 教学 资料 运输
链接地址:https://www.31ppt.com/p-5904173.html