七章节传输层协议

上传人:痛*** 文档编号:171246120 上传时间:2022-11-25 格式:PPT 页数:66 大小:531.08KB
收藏 版权申诉 举报 下载
七章节传输层协议_第1页
第1页 / 共66页
七章节传输层协议_第2页
第2页 / 共66页
七章节传输层协议_第3页
第3页 / 共66页
资源描述:

《七章节传输层协议》由会员分享,可在线阅读,更多相关《七章节传输层协议(66页珍藏版)》请在装配图网上搜索。

1、1/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy第七章第七章 传输层协议传输层协议7.1 进程通信与端口进程通信与端口7.2 UDP协议协议7.3 TCP协议协议2/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy7.1 进程通信与端口进程通信与端口 网络层或互联网层提供主机通信服务网络层或互联网层提供主机通信服务 传输层提供程通信服务传输层提供程通信服务 为了提供进程通信功能,为了提供进程通信功能,TCP/IP协议族提出协议族提出了端口(

2、了端口(port)的概念,用于标识进程。)的概念,用于标识进程。3/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy传输层与网络层或互联网层的关系传输层与网络层或互联网层的关系 网络层与互联网层网络层与互联网层l功能:主机通信功能:主机通信l协议:协议:IP、CLNP(ISO/OSI)l特点:特点:hop-by-hop 传输层传输层l功能:进程通信功能:进程通信l协议:协议:UDP和和TCP、TP04(ISO/OSI)l特点:特点:end-to-end4/66第六章第六章 传输层协议传输层协议 Networking N

3、etworking techno;ogytechno;ogyIP地址和端口地址和端口5/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy端口分配方法端口分配方法 第一种叫全局分配第一种叫全局分配l这是一种集中控制方式,由这是一种集中控制方式,由IANA进行统一分进行统一分配,并将结果公布于众。配,并将结果公布于众。l众所周知端口就是属于这一类。众所周知端口就是属于这一类。第二种是本地分配第二种是本地分配l注册端口注册端口l动态分配动态分配u动态绑定动态绑定6/66第六章第六章 传输层协议传输层协议 Networking

4、 Networking techno;ogytechno;ogyTCP/UDP 众所周知端口号众所周知端口号 7/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy7.2 UDP协议协议 提供主机通信提供主机通信 IP服务特性服务特性l报文可能丢失报文可能丢失l报文可能出错报文可能出错l报文可能乱序到达报文可能乱序到达l报文在网络上可能被报文在网络上可能被延迟任意长时间延迟任意长时间 支持多路复用支持多路复用 提供进程通信提供进程通信 UDP服务特性服务特性l报文可能丢失报文可能丢失l报文可能出错报文可能出错l报文可能乱

5、序到达报文可能乱序到达l报文在网络上可能被报文在网络上可能被延迟任意长时间延迟任意长时间 支持多路复用支持多路复用8/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogyIP与与UDP关系关系 IPl提供主机通信提供主机通信l通信对象命名是通信对象命名是IP 地地址址lIP地址定位到主机地址定位到主机 UDPl提供进程通信提供进程通信l通信对象命名是通信对象命名是Port 号号lPort号定位到进程号定位到进程9/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytec

6、hno;ogy1、报文格式、报文格式 32 位 源端口 目的端口 UDP 长度 UDP 校验和 数据 头部 数据区 10/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy2、多路复用、多路复用11/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy3、伪头部、伪头部 32 位源 IP 地址填充(全 0)目的 IP 地址协议UDP 长度12/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogyte

7、chno;ogy7.3 TCP协议协议 7.3.1 服务特性服务特性7.3.2 报文格式报文格式7.3.3 连接建立和终止连接建立和终止7.3.4 差错控制差错控制7.3.5 重传定时器重传定时器7.3.6 流量控制流量控制7.3.7 拥塞控制拥塞控制7.3.8 TCP扩展扩展7.3.9 触发传输触发传输7.3.10 记录边界记录边界13/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy7.3.1 服务特性(服务特性(1)面向连接面向连接 全双工全双工 点到点点到点 可靠可靠 字节流服务字节流服务 多路复用多路复用14

8、/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy服务特性(服务特性(2)流量控制流量控制l保证发送方不要保证发送方不要“淹没淹没”接收方接收方 拥塞控制拥塞控制l保证发送方不要保证发送方不要“淹没淹没”网络网络15/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy字节流(字节流(1)应用进程 写入 字节s TCP 发送缓存 应用进程 读取 字节TCP 接收缓存 TCP报文 TCP报文 TCP报文 16/66第六章第六章 传输层协议传输层协议

9、Networking Networking techno;ogytechno;ogy字节流(字节流(2)1)发送和接受,发送和接受,TCP都使用缓存都使用缓存2)应用进程发送的数据首先保留在应用进程发送的数据首先保留在TCP发送缓存中发送缓存中,当数据量达到一个报文段大小时,当数据量达到一个报文段大小时,TCP就向外就向外发送数据。发送数据。3)应用进程的多个发送请求,可能对应一个应用进程的多个发送请求,可能对应一个TCP数数据发送;据发送;17/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy字节流(字节流(3)4)

10、可以使用可以使用PUSH机制使应用进程的每个发送请求机制使应用进程的每个发送请求都对应一个都对应一个TCP数据发送;数据发送;5)TCP收到保文后存放在接收缓存中,等待应用进收到保文后存放在接收缓存中,等待应用进程读取;程读取;6)一个一个TCP发送可以对应多个发送可以对应多个TCP读操作;多个读操作;多个TCP发送可以对应一个读操作。发送可以对应一个读操作。18/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy7.3.2 报文格式报文格式32 位 源端口 目的端口 发送序号 确认序号 头部长度 保留 URG ACK

11、PSH RST SYN FIN 通告窗口 校验和 紧急指针 选项或填充 数据 19/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy字段含义(字段含义(1)(1)源端口和目的端口源端口和目的端口l各各2个字节,表示源和目的端口号。个字节,表示源和目的端口号。(2)发送序号发送序号l4字节,指出报文中数据在发送方的数据流中的位置(以字节,指出报文中数据在发送方的数据流中的位置(以字节编号)。字节编号)。(3)确认序号确认序号l4字节,指接收方希望下一次接收的字节序号。字节,指接收方希望下一次接收的字节序号。(4)TCP头

12、长头长l4比特,指出以比特,指出以32比特为单位的报文头部长度。该域是针比特为单位的报文头部长度。该域是针对变长的对变长的“选项选项”域设计的。域设计的。20/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy字段含义(字段含义(2)(5)同步标志位同步标志位SYN,l当当SYN=1而而ACK=0时,表明这是一个建立连接请求报时,表明这是一个建立连接请求报文,若对方同意建立该连接,则应在发回的报文中使文,若对方同意建立该连接,则应在发回的报文中使将将SYN和和ACK标志位同时置标志位同时置1。(6)确认标志位确认标志位A

13、CKl只有当只有当ACK=1时确认序号字段才有意义。当时确认序号字段才有意义。当ACK=0时时,确认序号没有意义。,确认序号没有意义。(7)终止标志位终止标志位FIN(FINal)l当当FIN1时,表明数据已经发送完毕,并请求释放连时,表明数据已经发送完毕,并请求释放连接。接。21/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy字段含义(字段含义(3)(8)重建标志位重建标志位RST(ReSeT)l当当RST=1时,表明出现严重差错,必须释放连接,然后时,表明出现严重差错,必须释放连接,然后重新建立连接。重新建立连接

14、。(9)紧急标志位紧急标志位URG(URGent)l当当URG=1时,表明此报文是紧急数据,应尽快传送出时,表明此报文是紧急数据,应尽快传送出去。去。(10)急迫标志位急迫标志位PSH(PuSH)l当当PSH=1时,请求接收方时,请求接收方TCP协议将该报文立即交给应协议将该报文立即交给应用程序。用程序。22/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy字段含义(字段含义(4)(11)通告窗口通告窗口l2字节。该字段实际上是接收方告诉发送方它的接收窗口字节。该字段实际上是接收方告诉发送方它的接收窗口大小,其单位为字

15、节。通告窗口字段主要是用于流量控大小,其单位为字节。通告窗口字段主要是用于流量控制。制。(12)校验和校验和l2字节。校验和字段检验的范围包括字节。校验和字段检验的范围包括TCP报文的头部和数报文的头部和数据区这两部分。据区这两部分。(13)可选项可选项l长度可变。最常用的选项,即最大报文长度长度可变。最常用的选项,即最大报文长度MSS(Maximum Segment Size)。23/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy7.3.3 连接建立和终止连接建立和终止 seq=x acky+1 ACK C seq

16、=y ackx+1 SYN ACK C 时间 服务器 seq=x SYN C 客 户 24/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy TCP状态变换图状态变换图 25/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy7.3.4 差错控制差错控制 字节编号字节编号 字节确认字节确认 超时重传超时重传 26/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy1、字节编

17、号、字节编号 每个每个TCP连接传输的字节数据由连接传输的字节数据由TCP进行随机编进行随机编号,即每个号,即每个TCP连接开始时第一个连接开始时第一个TCP报文段第报文段第一字节数据的编号是随机选取的(避免初始序列一字节数据的编号是随机选取的(避免初始序列号号ISN攻击)。攻击)。27/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy举例举例 假设某条假设某条TCP连接要传送连接要传送5000字节的文件,字节的文件,TCP对对第一个字节的编号从第一个字节的编号从10001(随机选取的)开始。(随机选取的)开始。假设这

18、个文件分为假设这个文件分为5个个TCP报文段进行传送,每个报文段进行传送,每个TCP报文段携带报文段携带1000字节,那么每个字节,那么每个TCP报文段的报文段的字节编号如下所示:字节编号如下所示:报文段报文段1 顺序号顺序号:10,001(范围范围:10,001 到到 11,000)报文段报文段2 顺序号顺序号:11,001(范围范围:11,001 到到 12,000)报文段报文段3 顺序号顺序号:12,001(范围范围:12,001 到到 13,000)报文段报文段4 顺序号顺序号:13,001(范围范围:13,001 到到 14,000)报文段报文段5 顺序号顺序号:14,001(范围范

19、围:14,001 到到 15,000)28/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy2、字节确认、字节确认 TCP采用的是字节确认,一般情况下,接收方确采用的是字节确认,一般情况下,接收方确认已收到的最长的、连续的字节计数,认已收到的最长的、连续的字节计数,TCP报文报文的每个确认序号字段指出下一个希望接收的字节的每个确认序号字段指出下一个希望接收的字节,实际上就是对已经收到的所有字节的确认。,实际上就是对已经收到的所有字节的确认。字节确认的优点是即使确认丢失也不一定导致发字节确认的优点是即使确认丢失也不一定导

20、致发送方重传。送方重传。29/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy3、超时重传、超时重传 发送方发送方TCP为了恢复丢失或者损坏的报文段,必为了恢复丢失或者损坏的报文段,必须对丢失或者损坏的报文段进行重传。事实上,须对丢失或者损坏的报文段进行重传。事实上,发送方发送方TCP每发送一个每发送一个TCP报文段,就启动一个报文段,就启动一个重传定时器,如果在规定的时间之内没有收到接重传定时器,如果在规定的时间之内没有收到接收方收方TCP返回的确认报文,重传定时器超时,与返回的确认报文,重传定时器超时,与于是发送重

21、传该于是发送重传该TCP报文。报文。30/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy7.3.5 重传定时器重传定时器1、原始算法、原始算法2、Karn/Partridge算法算法31/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy1、原始算法、原始算法 EstimatedRTT=EstimatedRTT+(1-)SampleRTT 因子决定了因子决定了EstimatedRTT对延迟变化的反应速度对延迟变化的反应速度;当;当接近接近1时,

22、短暂的延迟变化对时,短暂的延迟变化对EstimatedRTT几乎不起作用;而当几乎不起作用;而当接近接近0时,时,EstimatedRTT紧紧随延迟的变化而变化。原始的随延迟的变化而变化。原始的TCP协议规范建议协议规范建议值在值在0.8到到0.9之间。之间。32/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy超时定时器计算超时定时器计算 TimeOut=EstimatedRTT 当当接近接近1时,时,TCP能迅速检测到报文丢失并及时能迅速检测到报文丢失并及时重传,从而减少等待时间,但可能引起不必要的重传,从而减少等

23、待时间,但可能引起不必要的重传。当重传。当太大时,重传报文的数目减少,但等待太大时,重传报文的数目减少,但等待确认的时间太长。作为折衷,原始的确认的时间太长。作为折衷,原始的TCP协议规协议规范一般推荐范一般推荐取取2。33/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy2、Karn/Partridge算法算法 34/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy产生超时后产生超时后 当重传一个报文时,当重传一个报文时,TCP停止计算机停止

24、计算机RTT采样值采样值;TCP只为没有重传的报文测量只为没有重传的报文测量RTT采样值。采样值。即每当即每当TCP有超时重传时,它下次的超时定时器有超时重传时,它下次的超时定时器的值设置成上次的两倍,而并不以上次的的值设置成上次的两倍,而并不以上次的EstimatedRTT为基础。为基础。35/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy7.3.6 流量控制流量控制1、滑动窗口机制、滑动窗口机制2、坚持定时器、坚持定时器3、保持定时器、保持定时器36/66第六章第六章 传输层协议传输层协议 Networking

25、Networking techno;ogytechno;ogy1、滑动窗口机制、滑动窗口机制 与数据链路层不同的是:与数据链路层不同的是:TCP不是使用一个固定大不是使用一个固定大小的滑动窗口,而是由接收方通过小的滑动窗口,而是由接收方通过TCP报文头部的报文头部的通告窗口通告窗口AdvertisedWindow字段向发送方通告它的字段向发送方通告它的窗口大小。窗口大小。发送方在任意时刻没有确认的字节数不能超过通告发送方在任意时刻没有确认的字节数不能超过通告窗口窗口AdvertisedWindow的值。的值。接收方根据分配的缓冲区的大小来为通告窗口接收方根据分配的缓冲区的大小来为通告窗口Adv

26、ertisedWindow选择一个合适的值。选择一个合适的值。37/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy发送和接收缓冲区(发送和接收缓冲区(1)发送方的发送方的TCP维护一个发送缓冲区。发送缓冲区维护一个发送缓冲区。发送缓冲区用来保存那些已经发送出去但是还没有收到对方用来保存那些已经发送出去但是还没有收到对方确认的数据以及发送方应用进程写入但尚未发送确认的数据以及发送方应用进程写入但尚未发送的数据。的数据。而接收方的而接收方的TCP也同样维护着一个接收缓冲区。也同样维护着一个接收缓冲区。接收缓冲区保存那些保

27、留那些乱序到达接收方的接收缓冲区保存那些保留那些乱序到达接收方的数据以及那些按顺序到达接收方(即该字节流前数据以及那些按顺序到达接收方(即该字节流前面的字节都没有丢失)但接收进程来不及读出的面的字节都没有丢失)但接收进程来不及读出的数据。数据。38/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy发送和接收缓冲区(发送和接收缓冲区(2)发送应用进程 LastByteWritten TCP LastByteSent LastByteAcked 接收应用进程 LastByteRead TCP LastByteRcvd Ne

28、xtByteExpected 39/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy发送方发送方TCP 维持着维持着3个指针,分别是:个指针,分别是:LastByteAcked、LastByteSent和和LastByteWritten。lLastByteAcked表示已经应答的字节编号表示已经应答的字节编号lLastByteSent表示已经发送但尚未收到确认的字节编表示已经发送但尚未收到确认的字节编号号lLastByteWritten表示发送方应用进程写到发送方表示发送方应用进程写到发送方TCP但还没有发送的字节编号

29、但还没有发送的字节编号 在在LastByteAcked左边的缓冲区可以释放了,因为左边的缓冲区可以释放了,因为这些字节是已经发送出去而且已经收到确认了。这些字节是已经发送出去而且已经收到确认了。40/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy接收方接收方TCP 维持着维持着3个指针,分别是个指针,分别是LastByteRead、NextByteExpexcted和和LastByteRcvd。lLastByteRead表示接收方应用进程一定读走的字节编表示接收方应用进程一定读走的字节编号号lNextByteExpe

30、xcted表示接收方表示接收方TCP期望接收的字节编期望接收的字节编号号lLastByteRcvd表示到目前已经接收到最大字节编号。表示到目前已经接收到最大字节编号。在在LastByteRead左边的缓冲区可以释放了,因为左边的缓冲区可以释放了,因为这些字节是已经被接收方应用进程读出了。这些字节是已经被接收方应用进程读出了。41/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy流量控制机制流量控制机制 发送方发送方TCP和接收方和接收方TCP的缓冲区大小是有限的的缓冲区大小是有限的,我们分别用,我们分别用MaxSend

31、Buffer和和MaxRcvBuffer表表示示。42/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy接收方的通告窗口接收方的通告窗口 接收方的通告窗口接收方的通告窗口lAdvertisedWindow=MaxRcvBuffer(LastByteRcvd LastByteRead)l这个值就代表接收方这个值就代表接收方TCP缓冲区剩下的可用缓冲区的缓冲区剩下的可用缓冲区的大小大小 43/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy发送方的

32、发送窗口发送方的发送窗口 发送方的发送窗口发送方的发送窗口lEffectiveWindow=AdvertisedWindow-(LastByteSend LastByteAcked)发送方计算)发送方计算l只有只有EffectiveWindow大于大于0,发送方才能发送数据。,发送方才能发送数据。44/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy发送方的动作发送方的动作 首先,由于接收方应用进程处理速度慢,最终导首先,由于接收方应用进程处理速度慢,最终导致接收方致接收方TCP缓冲区满,这就意味着接收方发给缓冲区满,

33、这就意味着接收方发给发送方的通告窗口为发送方的通告窗口为0。发送方。发送方TCP一看到通告窗一看到通告窗口为口为0,就立即停止发送数据。,就立即停止发送数据。但是,发送方应用进程会一直往发送方但是,发送方应用进程会一直往发送方TCP缓冲缓冲区里填入数据,最终会将发送方区里填入数据,最终会将发送方TCP缓冲区填满缓冲区填满,从而导致发送方,从而导致发送方TCP将发送方应用进程阻塞。将发送方应用进程阻塞。45/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy接收方的动作接收方的动作 而在接收方,一旦接收方应用进程开始从接收

34、方而在接收方,一旦接收方应用进程开始从接收方TCP的接收方缓冲区读取数据,那么接收方的接收方缓冲区读取数据,那么接收方TCP就就可以打开它的窗口,亦即接收方可以打开它的窗口,亦即接收方TCP缓冲区可用空缓冲区可用空间不再为间不再为0,从而允许发送方,从而允许发送方TCP把数据从它的发送把数据从它的发送缓冲区发送出去。缓冲区发送出去。而当发送方收到返回的确认后,就可以释放部分发而当发送方收到返回的确认后,就可以释放部分发送缓冲区的空间,从而发送方送缓冲区的空间,从而发送方TCP不再阻塞发送方不再阻塞发送方应用进程并允许发送方应用进程继续往发送缓冲区应用进程并允许发送方应用进程继续往发送缓冲区里写

35、入数据。里写入数据。46/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy2、坚持定时器(、坚持定时器(1)因为,一旦接收方的通告窗口变为因为,一旦接收方的通告窗口变为0,就不允许发,就不允许发送方发送任何数据,直到接收到接收方送方发送任何数据,直到接收到接收方TCP的确的确认,并宣告非零窗口值。但是这个确认可能丢失认,并宣告非零窗口值。但是这个确认可能丢失。需要引起注意的是,在。需要引起注意的是,在TCP中,对确认是不需中,对确认是不需要确认的。假如确认丢失了,接收方要确认的。假如确认丢失了,接收方TCP仍然认仍然认

36、为这个确认已经正确到达发送方,因此接收方就为这个确认已经正确到达发送方,因此接收方就等待发送方等待发送方TCP发送更多的报文段。发送方发送更多的报文段。发送方TCP由于没有收到确认,就一直等待接收方由于没有收到确认,就一直等待接收方TCP发送发送确认以及非零通告窗口值,双方进入死锁状态。确认以及非零通告窗口值,双方进入死锁状态。47/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy坚持定时器(坚持定时器(2)要打开这种死锁,要打开这种死锁,TCP为每一个连接使用坚持定为每一个连接使用坚持定时器。当发送方时器。当发送方T

37、CP接收到通告窗口值为接收到通告窗口值为0的确认的确认时,就启动坚持定时器。当坚持定时器超时,发时,就启动坚持定时器。当坚持定时器超时,发送方送方TCP就发送一个特殊的报文段,叫探测报文就发送一个特殊的报文段,叫探测报文。探测报文只有。探测报文只有1字节数据,它有序号,但它的序字节数据,它有序号,但它的序号永远不需要确认。探测报文的目的是提醒接收号永远不需要确认。探测报文的目的是提醒接收方方TCP,确认已经丢失,必须重传。,确认已经丢失,必须重传。48/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy坚持定时器(坚持定

38、时器(3)坚持定时器的定时宽度通常设置为重传定时器的坚持定时器的定时宽度通常设置为重传定时器的宽度。如果在坚持定时器超时后还没有收到对方宽度。如果在坚持定时器超时后还没有收到对方的应答,则将定时宽度加倍,重新发送的应答,则将定时宽度加倍,重新发送1个新的探个新的探测报文,直到增加到门限值(通常是测报文,直到增加到门限值(通常是60s)为止。)为止。以后,发送方每隔以后,发送方每隔60s就发送一个探测报文,直到就发送一个探测报文,直到接收窗口重新打开。接收窗口重新打开。49/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;og

39、y3、保活定时器(、保活定时器(1)在某些在某些TCP实现中要使用保活(实现中要使用保活(keepalive)定时)定时器来防止器来防止TCP连接的长时间空闲。假定客户建立连接的长时间空闲。假定客户建立了到服务器的了到服务器的TCP连接,并且发送了一些数据,连接,并且发送了一些数据,然后就出故障了。在这种情况下,这个然后就出故障了。在这种情况下,这个TCP连接连接就永远地处于打开状态。就永远地处于打开状态。50/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy保活定时器(保活定时器(2)要解决这个问题,就必须在服务器使

40、用保活定时要解决这个问题,就必须在服务器使用保活定时器。每当服务器收到客户的信息,就将保活定时器。每当服务器收到客户的信息,就将保活定时器复位。保活定时器通常设置为器复位。保活定时器通常设置为2小时,若服务器小时,若服务器超过了超过了2小时还没有收到客户的信息,服务器就不小时还没有收到客户的信息,服务器就不断地(每隔断地(每隔75s)发送探测报文,若服务器发送了)发送探测报文,若服务器发送了10个探测报文还没有收到客户的响应,服务器就个探测报文还没有收到客户的响应,服务器就终止终止TCP连接。连接。51/66第六章第六章 传输层协议传输层协议 Networking Networking tec

41、hno;ogytechno;ogy7.3.7 拥塞和拥塞控制拥塞和拥塞控制 从拥塞的表现形式定义,拥塞是指由于路由器中从拥塞的表现形式定义,拥塞是指由于路由器中排队的报文足够多,导致缓冲区溢出,路由器开排队的报文足够多,导致缓冲区溢出,路由器开始丢弃报文的现象;始丢弃报文的现象;从拥塞对网络的影响来定义,拥塞是指网络中存从拥塞对网络的影响来定义,拥塞是指网络中存在过多的报文时,导致网络性能下降的现象;在过多的报文时,导致网络性能下降的现象;从拥塞产生的根本原因来定义,拥塞是指当报文从拥塞产生的根本原因来定义,拥塞是指当报文到达速率大于路由器的转发速率时发生的一种现到达速率大于路由器的转发速率时

42、发生的一种现象。象。52/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogyTCP拥塞控制拥塞控制 拥塞控制的源算法中使用最广泛的是拥塞控制的源算法中使用最广泛的是TCP 拥塞控拥塞控制机制。与制机制。与TCP 类似的、主要依靠端节点执行拥类似的、主要依靠端节点执行拥塞控制的机制统称为端到端拥塞控制。塞控制的机制统称为端到端拥塞控制。53/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy1、慢启动、慢启动54/66第六章第六章 传输层协议传输层协

43、议 Networking Networking techno;ogytechno;ogy2、拥塞避免、拥塞避免 TCP为每个连接维持一个新的状态变量,成为拥为每个连接维持一个新的状态变量,成为拥塞窗口塞窗口cwnd(CongestionWindow)。)。MaxWindow=MIN(cwnd,AdvertisedWindow)EffectiveWindow=MaxWindow-(LastByteSent-LastByteAcked)55/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy拥塞避免阶段拥塞避免阶段56/66

44、第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy3、快速重传、快速重传57/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy4、快速恢复、快速恢复 在快速重传期间发送方接收到重复在快速重传期间发送方接收到重复ACK后,进入后,进入拥塞避免而不进入慢启动。因为重复拥塞避免而不进入慢启动。因为重复ACK不仅意不仅意味着报文的丢失,而且意味着在丢失的报文之后味着报文的丢失,而且意味着在丢失的报文之后还接收到其后的报文,即网络上仍然有数据流动还接收到其后的

45、报文,即网络上仍然有数据流动,即网络的拥塞还不是非常严重,如果这个时候,即网络的拥塞还不是非常严重,如果这个时候突然进入慢启动阶段,不利于充分利用带宽。突然进入慢启动阶段,不利于充分利用带宽。58/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy快速重传和快速恢复(快速重传和快速恢复(1)(1)当发送方接收到)当发送方接收到3个重复个重复ACK时,把时,把ssthresh设设为当前拥塞窗口为当前拥塞窗口cwnd的一半,但是不小于的一半,但是不小于2个报文个报文段。然后重传丢失的报文。最后把段。然后重传丢失的报文。最后把

46、cwnd设为设为ssthresh加上加上3个个MSS大小。这就用已经离开网络的大小。这就用已经离开网络的报文数量和接收方已经缓存的报文数量放大了拥塞报文数量和接收方已经缓存的报文数量放大了拥塞窗口。窗口。(2)发送方每收到一个重复的)发送方每收到一个重复的ACK,则将,则将cwnd增加增加1个个MSS大小,因为这意味着有大小,因为这意味着有TCP报文段离开网报文段离开网络。如果络。如果cwnd允许的话,发送允许的话,发送1个个TCP报文段。报文段。59/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy快速重传和快速恢复

47、(快速重传和快速恢复(2)(3)当发送方接收到新的)当发送方接收到新的ACK,将,将cwnd设为设为ssthresh,退出快速恢复状态。这个,退出快速恢复状态。这个ACK应该是应该是第第1步中重传步中重传TCP报文段到达接收方方后接收方返报文段到达接收方方后接收方返回的回的ACK。此外,这个。此外,这个ACK应当确认是对丢失报应当确认是对丢失报文以及所有中间报文的确认。文以及所有中间报文的确认。60/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogyTCP拥塞控制拥塞控制 61/66第六章第六章 传输层协议传输层协议 N

48、etworking Networking techno;ogytechno;ogyTCP拥塞控制实例拥塞控制实例 62/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy7.3.8 TCP扩展扩展 为什么要对为什么要对TCP进行扩展进行扩展lTCP中字节序号字段(中字节序号字段(Sequence Number)和窗口()和窗口(Window)字段的长度以及它们对)字段的长度以及它们对TCP正确性和性能的正确性和性能的影响。影响。63/66第六章第六章 传输层协议传输层协议 Networking Networking te

49、chno;ogytechno;ogy32比特序号空间回绕的时间比特序号空间回绕的时间 64/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy100ms RTT所需的窗口大小所需的窗口大小 65/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogyTCP扩展功能扩展功能 第一个扩展功能有助于改善第一个扩展功能有助于改善TCP的超时机制的超时机制l打时标;打时标;第二个扩展接解决了第二个扩展接解决了TCP的的32比特序号在高速网比特序号在高速网络上回绕过快的问题。络上回绕过快的问题。l32时标时标32位序号位序号 第三个扩展功能允许第三个扩展功能允许TCP通告更大的窗口,因此通告更大的窗口,因此允许发送方发送更多的数据以填满更大的延迟允许发送方发送更多的数据以填满更大的延迟带宽管道。带宽管道。l规模因子规模因子16字节字节 66/66第六章第六章 传输层协议传输层协议 Networking Networking techno;ogytechno;ogy作业作业 8,9,10,20,21,23,24,25,26,27,28,29,30

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!