第5章传输层协议ppt课件.ppt

上传人:牧羊曲112 文档编号:2104918 上传时间:2023-01-10 格式:PPT 页数:86 大小:2.26MB
返回 下载 相关 举报
第5章传输层协议ppt课件.ppt_第1页
第1页 / 共86页
第5章传输层协议ppt课件.ppt_第2页
第2页 / 共86页
第5章传输层协议ppt课件.ppt_第3页
第3页 / 共86页
第5章传输层协议ppt课件.ppt_第4页
第4页 / 共86页
第5章传输层协议ppt课件.ppt_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《第5章传输层协议ppt课件.ppt》由会员分享,可在线阅读,更多相关《第5章传输层协议ppt课件.ppt(86页珍藏版)》请在三一办公上搜索。

1、韩雪琴,1,第5章 传输层协议,5.1 协议的分层 5.2 用户数据报协议UDP5.3 可靠的数据流传输服务TCP,2,韩雪琴,2,引言,前面各章回顾了互联网基础体系,描述了主机和路由器如何发送Internet数据报,以及现行的机制下如何将IP地址映射到物理地址。本章讨论主机和路由器中的网络通信软件的结构。紧接着讨论互联网运输层协议机制。,3,韩雪琴,3,5.1 协议的分层,复杂的数据通信系统不会使用单一的协议来处理所有的传输任务。他们需要一整套相互合作的协议,这些协议称为协议族或协议套件。为什么需要协议?首先考虑数据网络通信中可能出现的问题。硬件失效网络拥塞分组延时及丢失数据损伤数据重复及乱

2、序,4,韩雪琴,4,5.1 协议的分层,计算机上的协议软件具有称为层的垂直型栈结构,每一层负责处理问题的一个部分。把通信问题划分为子问题,把协议软件分为多个模块,每个软件处理一个子问题。关于协议分层的两个思想占据了该领域的主导地位。第一个思路基于国际标准化组织ISO所建立的开放系统互连参考模型,称为ISO模型,给出了七个概念层次的组织结构。ISO七层模型被设计为描述单一网络的协议,所以它不像TCP/IP协议那样有一个具体的层用于互联网的选路。,5,韩雪琴,5,物理层,数据链路层,网络层,传输层,会话层,表示层,应用层,7654321,ISO模型OSI/RM,6,韩雪琴,6,TCP/IP 的体系

3、结构,网络接口层,IP,各种应用层协议HTTP,FTP,SMTP,DNS 等,TCP,网际层,运输层,UDP,应用层,TCP:传输控制协议(Transmission ControlProtocol),IP:网际协议,UDP:用户数据报协议(User DatagramProtocol),7,韩雪琴,7,TCP/IP协议栈,8,韩雪琴,8,协议的原理性层次结构,9,韩雪琴,9,协议分层的原则,分层的协议要设计成达到这样的效果,即目标主机的第N层所收到的数据就是源主机的第N层所发出的数据。,10,韩雪琴,10,前导,物理层,数据链路层,IP层,TCP层,应用层,数据,后导,D_link,校验,IP头

4、,TCP头,数据,TCP/IP体系结构中的协议数据单元,11,韩雪琴,11,5,4,3,2,1,5,4,3,2,1,H3,物 理 传 输 媒 体,数 据 部 分,数 据 部 分,数 据 部 分,数 据 部 分,10100110100101 比 特 流 11 010111010,T2,计算机 1,H5,H4,H2,首部,尾部,AP2,AP1,应 用 程 序 数 据,计算机 2,比特,帧,IP数据报IP分组,TCP报文段UDP报文段,数据在TCP/IP网络中的传输,12,韩雪琴,12,多路复用和多路分解,13,韩雪琴,13,5.2 用户数据报协议UDP,前面各章描述了一个TCP/IP互联网,它能够

5、提供在主机之间传输数据报的能力,每个数据报根据其目的主机的IP地址来进行互联网选路。在Internet协议层中,目的地址等同于主机,没有对接收这个数据报的用户或应用程序进行更细致的标识。本届增加一个机制来扩充TCP/IP协议族,使得在给定的主机上能识别多个目的地,同时允许多个应用程序运行于同一台主机上并独立地进行数据报的收发。,14,韩雪琴,14,UDP的报文格式,每个UDP报文称为一个用户数据报。从概念上讲,分为两部分:UDP首部和数据区。首部被分为4个16比特的字段。,记录UDP数据报中的字节数,包括UDP首部和用户数据,可选,为0说明不进行校验。UDP使用和IP协议同样的校验和计算方法。

6、,源端口和目的端口各包含16比特的UDP协议端口号,15,韩雪琴,15,UDP的伪首部,UDP校验和覆盖的内容超出了UDP数据报本身的范围。为了计算校验和,UDP把伪首部引入数据中。首先把0只赋予校验和字段,然后对整个对象:伪首部、UDP首部、用户数据,计算一个16比特的二进制反码和。使用伪首部的目的是检验UDP数据报已到达正确的目的地。如果校验和正确,说明UDP数据报到达了正确主机上的正确端口。,指明所使用的协议类型代码(17),伪首部不随UDP数据报一起传输,也不计算在数据报长度之内,16,韩雪琴,16,UDP基于端口的复用,17,韩雪琴,17,UDP端口号,7 ECHO回送37 TIME

7、 时间42 NAMESERVER主机名字服务器53DOMAIN域名服务器67BOOTPS启动协议服务69TFTP简单文件传输161SNMP简单网络管理协议,18,韩雪琴,18,5.3 可靠的数据流传输服务TCP,前面各章讨论了构成互联网通信基础的不可靠无连接分组交付服务,IP协议对此进行了定义。本节介绍可靠的流交付服务,即传输控制协议TCP。,19,韩雪琴,19,对数据流交付的需求,最底层的计算机通信网络提供的服务是不可靠的分组交付服务。当传输过程中出现错误时,当网络硬件失效或网络负载太重时,分组可能会丢失,数据可能被破坏。动态路由分组的网络会使到达的分组顺序混乱、时延非常大或重复交付。最高层

8、的应用程序常常在机器之间传输大量的数据。使用不可靠的无连接交付来传输这样的数据苦不堪言,而且要求应用程序负责进行差错检测和恢复的工作。网络协议的研究目标之一就是为数据流的交付找出一般的解决方法,编制一个供所用的应用程序使用的数据流交付软件。独立的通用协议软件,使我们能够定义一个统一的数据流交付服务接口。,20,韩雪琴,20,可靠交付服务的特征,应用程序与TCP/IP可靠交付服务之间的接口可以用五个特征来描述:面向数据流虚电路连接有缓冲的传输无结构的数据流全双工连接可靠的数据流交付服务确保在机器之间交付数据流,不会重复交付或丢失数据。可靠性使用“带重传的肯定确认”技术实现。,21,韩雪琴,21,

9、传输控制协议,TCP是一个通信协议而不是一个软件。该协议指定了两台计算机之间为了进行可靠传输而交换的数据和确认信息的格式;指定了计算机为了确保数据的正确到达而采取的措施;规定了TCP软件如何识别给定机器上的多个目的进程;规定了如何对分组丢失和分组重复等错误进行恢复;规定了两台计算机如何初始化一个TCP数据流传输以及如何对结束的时机进行协商。,22,韩雪琴,22,传输控制协议,TCP是建立在连接抽象之上的,它所对应的对象不是单独的端口而是一个虚电路连接。连接是用一对端点来标识的。TCP把端点定义为一对整数(host,port)。例如一个连接可以表示为:(18.26.0.36,1069)和(128

10、.10.2.3,25)连接抽象允许多个连接共享一个端点。(128.10.2.3,53)(128.9.0.32,118)(128.2.12.39,118),23,保留的TCP端口号,20FTP-DATA文件传输协议(数据连接)21FTP文件传输协议(控制连接)23TELNET远程登录终端25 SMTP简单邮件传输协议53DNS 域名服务器79FINGERfinger 程序2380HTTPWEB 服务一方面为普通的程序调用同一套熟知端口,另一方面给操作系统很多端口号,有操作系统在应用程序需要时进行分配。,24,套接字地址-插口(socket),TCP 使用“连接”(而不仅仅是“端口”)作为最基本的

11、抽象,同时将 TCP 连接的端点称为插口(socket),或套接字、套接口。插口和端口、IP 地址的关系是:,25,韩雪琴,25,传输控制协议,传输层以下,传输层,应用层,传输层以下,传输层,应用层,主机1,主机2,多对进程可以复用到一个网络连接上,26,韩雪琴,26,传输端口的分配示例-Client/server,IP=130.42.85.15,端口25,Server(SMTP),27,1.TCP报文的格式?2.TCP的滑动窗口工作方式?窗口大小的变化依据是什么?3.什么是糊涂窗口综合症?如何避免糊涂窗口综合症?4.TCP如何实现拥塞控制?5.TCP的定时器有哪些?6.TCP的重传机制?超时

12、定时器的计算方法?7.TCP如何建立连接?如何释放连接?,28,8.TCP建立连接为什么使用三次握手?9.TCP如何实现可靠传输?,29,传输控制协议TCP格式,TCP提供数据流服务数据流、序号、报文段TCP把数据流当作字节的序列,把序列划分成若干个段,每个段被放置到单个IP数据报中在互联网上传输。TCP使用“滑动窗口”机制来解决两个重要问题:传输效率和流量控制。,30,韩雪琴,30,TCP报文段格式,4,16,0,31,24,10,31,韩雪琴,31,TCP报文段格式,源端口和目的端口:标识连接的两个端点序号:指出本报文段在发送方的数据字节流中的位置确认序号:指出本机希望接收的下一个字节的序

13、号首部长度:以32比特为单位的首部长度值。因选项字段的长度根据包含的内容不同而有变化6比特保留字段为将来的应用而保留,32,韩雪琴,32,TCP报文段格式,码元比特字段(CODE BITS)6bit指出报文段的目的和内容,给出报文头中其他字段的解释,33,韩雪琴,33,TCP 校验和的计算,一个16位整数校验和用于检验数据和首部的完整性TCP 校验和的计算方法:同 IP 分组头的校验校验和计算:除覆盖数据报外,还覆盖一个 TCP 伪首部TCP 伪首部的目的与 UDP 基本相同,伪首部不随TCP数据报一起传输,也不计算在数据报长度之内,IP分组头中指明所使用的协议类型代码(TCP=6),34,T

14、CP 的数据编号与确认,TCP 协议是面向字节的。TCP 将所要传送的报文看成是字节组成的数据流,并使每一个字节对应于一个序号。在连接建立时,双方要商定初始序号。TCP 每次发送的报文段的首部中的序号字段数值表示该报文段中的数据部分的第一个字节的序号。TCP 的确认是对接收到的数据的最高序号表示确认。接收端返回的确认号是已收到的数据的最高序号加 1。因此确认号表示接收端期望下次收到的数据中的第一个数据字节的序号。,35,韩雪琴,35,累积确认,8,优点:确认容易产生,不会有两义性。若确认信息丢失并不一定迫使发送方重传缺点:发送方不能收到所有成功传输的报文段的确认信息 使累计确认的效率降低。,T

15、CP使用流序号对流中的一个位置进行确认,累计确认一个确认指出了接收方期望收到的下一个字节的序号。,36,5.3.4 TCP 的流量控制与拥塞控制1.滑动窗口的概念,TCP 采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。在 TCP 报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限。发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的资源情况,随时动态地调整对方的发送窗口上限值(可增大或减小)。,37,韩雪琴,37,TCP 流量控制,TCP 通过可变的窗口大小来进行流量控制TCP 允许随时改变窗口大小在确认报文中除确认序号(收到的字节)外,还包含窗口

16、通告,说明接收方还可接收数据的能力窗口通告值可被认为是当前接收缓冲区的大小窗口通告值增加时,发送方可扩大其发送窗口的大小;窗口通告值减少时,发送方则应降低其发送窗口的大小,38,收到确认即可前移,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,可发送,不可发送,发送端要发送 900 字节长的数据,划分为 9 个 100 字节长的报文段,而发送窗口确定为 500 字节。发送端只要收到了对方的确认,发送窗口就可前移。发送 TCP 要维护一个指针。每发送一个报文段,指针就向前移动一个报文段的距离。,39,收到

17、确认即可前移,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 字节的数据,但只收到对前 200 字节数据的确认,同时窗口大小不变。现在发送端还可发送 300 字节。,40,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,

18、701,801,1,已发送并被确认,已发送但未被确认,可发送,不可发送,指针,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,不可发送,指针,发送窗口前移,发送端收到了对方对前 400 字节数据的确认,但对方通知发送端必须把窗口减小到 400 字节。现在发送端最多还可发送 400 字节的数据。,41,利用可变窗口大小进行流量控制双方确定的窗口值是 400,主机 A,主机 B,允许 A 再发送 300 字节(序号 201 至 500),A 还能发送 200 字节,A 还能发送 200 字节(序号 301

19、至 500),A 还能发送 300 字节,A 还能发送 100 字节(序号 401 至 500),A 超时重发,但不能发送序号 500 以后的数据,允许 A 再发送 200 字节(序号 501 至 700),A 还能发送 100 字节(序号 501 至 700),不允许 A 再发送(到序号 600 的数据都已收到),42,2.慢开始和拥塞避免,发送端的主机在确定发送报文段的速率时,既要根据接收端的接收能力,又要从全局考虑不要使网络发生拥塞。因此,每一个 TCP 连接需要有以下两个状态变量:接收端窗口 rwnd(receiver window)又称为通知窗口(advertised window)

20、。拥塞窗口 cwnd(congestion window)。,43,接收端窗口 rwnd 和拥塞窗口 cwnd,(1)接收端窗口 rwnd 这是接收端根据其目前的接收缓存大小所许诺的最新的窗口值,是来自接收端的流量控制。接收端将此窗口值放在 TCP 报文的首部中的窗口字段,传送给发送端。(2)拥塞窗口 cwnd(congestion window)是发送端根据自己估计的网络拥塞程度而设置的窗口值,是来自发送端的流量控制。,44,发送窗口的上限值,发送端的发送窗口的上限值应当取为接收端窗口 rwnd 和拥塞窗口 cwnd 这两个变量中较小的一个,即应按以下公式确定:发送窗口的上限值 Min rw

21、nd,cwnd 当 rwnd cwnd 时,是接收端的接收能力限制发送窗口的最大值。当 cwnd rwnd 时,则是网络的拥塞限制发送窗口的最大值。,45,慢开始算法的原理,在主机刚刚开始发送报文段时可先将拥塞窗口 cwnd 设置为一个最大报文段 MSS 的数值。在每收到一个对新的报文段的确认后,将拥塞窗口增加至多一个 MSS 的数值。用这样的方法逐步增大发送端的拥塞窗口 cwnd,可以使分组注入到网络的速率更加合理。,46,慢开始和拥塞避免算法的实现举例,当 TCP 连接进行初始化时,将拥塞窗口置为 1。图中的窗口单位不使用字节而使用报文段。,慢开始门限的初始值设置为 16 个报文段,即 s

22、sthresh=16。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,传输次数,拥塞窗口 cwnd,ssthresh=16,慢开始,慢开始,拥塞避免,拥塞避免,更新后的 ssthresh=12,47,慢开始和拥塞避免算法的实现举例,发送端的发送窗口不能超过拥塞窗口 cwnd 和接收端窗口 rwnd 中的最小值。我们假定接收端窗口足够大,因此现在发送窗口的数值等于拥塞窗口的数值。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,传输次数,拥塞窗口 cwnd,ssthresh=16,慢开始,慢开始

23、,拥塞避免,拥塞避免,更新后的 ssthresh=12,48,慢开始和拥塞避免算法的实现举例,在执行慢开始算法时,拥塞窗口 cwnd 的初始值为 1,发送第一个报文段 M0。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,传输次数,拥塞窗口 cwnd,ssthresh=16,慢开始,慢开始,拥塞避免,拥塞避免,更新后的 ssthresh=12,49,慢开始和拥塞避免算法的实现举例,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,传输次数,拥塞窗口 cwnd,ssthresh=16,慢开始,慢开

24、始,拥塞避免,拥塞避免,更新后的 ssthresh=12,发送端收到 ACK1(确认 M0,期望收到 M1)后,将 cwnd 从 1 增大到 2,于是发送端可以接着发送 M1 和 M2 两个报文段。,50,慢开始和拥塞避免算法的实现举例,接收端发回 ACK2 和 ACK3。发送端每收到一个对新报文段的确认 ACK,就把发送端的拥塞窗口加 1。现在发送端的 cwnd 从 2 增大到 4,并可发送 M4 M6共 4个报文段。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,传输次数,拥塞窗口 cwnd,ssthresh=16,慢开始,慢开始,拥塞避

25、免,拥塞避免,更新后的 ssthresh=12,51,慢开始和拥塞避免算法的实现举例,发送端每收到一个对新报文段的确认 ACK,就把发送端的拥塞窗口加 1,因此拥塞窗口 cwnd 随着传输次数按指数规律增长。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,传输次数,拥塞窗口 cwnd,ssthresh=16,慢开始,慢开始,拥塞避免,拥塞避免,更新后的 ssthresh=12,52,慢开始和拥塞避免算法的实现举例,当拥塞窗口 cwnd 增长到慢开始门限值 ssthresh 时(即当 cwnd=16 时),就改为执行拥塞避免算法,拥塞窗口按线性

26、规律增长。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,传输次数,拥塞窗口 cwnd,ssthresh=16,慢开始,慢开始,拥塞避免,更新后的 ssthresh=12,53,慢开始和拥塞避免算法的实现举例,假定拥塞窗口的数值增长到 24 时,网络出现超时(表明网络拥塞了)。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,传输次数,拥塞窗口 cwnd,ssthresh=16,慢开始,慢开始,拥塞避免,拥塞避免,更新后的 ssthresh=12,54,慢开始和拥塞避免算法的实现举例,更新后的

27、 ssthresh 值变为 12(即发送窗口数值 24 的一半),拥塞窗口再重新设置为 1,并执行慢开始算法。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,传输次数,拥塞窗口 cwnd,ssthresh=16,慢开始,慢开始,拥塞避免,拥塞避免,更新后的 ssthresh=12,55,慢开始和拥塞避免算法的实现举例,当 cwnd=12 时改为执行拥塞避免算法,拥塞窗口按按线性规律增长,每经过一个往返时延就增加一个 MSS 的大小。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,传输次数,拥

28、塞窗口 cwnd,ssthresh=16,慢开始,慢开始,拥塞避免,拥塞避免,更新后的 ssthresh=12,56,乘法减小(multiplicative decrease),“乘法减小“是指不论在慢开始阶段还是拥塞避免阶段,只要出现一次超时(即出现一次网络拥塞),就把慢开始门限值 ssthresh 设置为当前的拥塞窗口值乘以 0.5。当网络频繁出现拥塞时,ssthresh 值就下降得很快,以大大减少注入到网络中的分组数。,57,加法增大(additive increase),“加法增大”是指执行拥塞避免算法后,当收到对所有报文段的确认就将拥塞窗口 cwnd增加一个 MSS 大小,使拥塞窗口

29、缓慢增大,以防止网络过早出现拥塞。,58,必须强调指出,“拥塞避免”并非指完全能够避免了拥塞。利用以上的措施要完全避免网络拥塞还是不可能的。“拥塞避免”是说在拥塞避免阶段把拥塞窗口控制为按线性规律增长,使网络比较不容易出现拥塞。,59,3.快重传和快恢复,快重传算法规定,发送端只要一连收到三个重复的 ACK 即可断定有分组丢失了,就应立即重传丢失的报文段而不必继续等待为该报文段设置的重传计时器的超时。不难看出,快重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文段。,60,快重传举例,主机 A,主机 B,B 确认 M1 和 M2,A 发送 M1 和 M2,A 收到了三个重复的确认

30、ACK3,就立即重传 M3,而不必等待超时重传。,A 发送 M3 但丢失了,A 发送 M4,A 发送 M5,B 发送第二个重复确认 ACK3,A 发送 M6,B 发送第三个重复确认 ACK3,B 只能再次确认 M2(因为 M3 没有收到),61,快恢复算法,(1)当发送端收到连续三个重复的 ACK 时,就重新设置慢开始门限 ssthresh。(2)与慢开始不同之处是拥塞窗口 cwnd 不是设置为 1,而是设置为 ssthresh+3 MSS。(3)若收到的重复的 ACK 为 n 个(n 3),则将 cwnd 设置为 ssthresh+n MSS。(4)若发送窗口值还容许发送报文段,就按拥塞避免

31、算法继续发送报文段。(5)若收到了确认新的报文段的 ACK,就将 cwnd 缩小到 ssthresh。,62,5.3.5 TCP 的重传机制,重传机制是 TCP 中最重要和最复杂的问题之一。TCP 每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到但还没有收到确认,就要重传这一报文段。,63,往返时延的方差很大,由于 TCP 的下层是一个互连网环境,IP 数据报所选择的路由变化很大。因而运输层的往返时延的方差也很大。,时间,数据链路层,T1,T2,T3,往返时延的概率分布,64,往返时延的自适应算法,记录每一个报文段发出的时间,以及收到相应的确认报文段的时间。这两个时间

32、之差就是报文段的往返时延。将各个报文段的往返时延样本加权平均,就得出报文段的平均往返时延 RTT。每测量到一个新的往返时延样本,就按下式重新计算一次平均往返时延 RTT:平均往返时延RTT(旧的RTT)(1)(新的往返时延样本)在上式中,0 1。,65,参数 的选择,若 很接近于 1,表示新算出的平均往返时延 RTT 和原来的值相比变化不大,而新的往返时延样本的影响不大(RTT 值更新较慢)。若选择 接近于零,则表示加权计算的平均往返时延 RTT 受新的往返时延样本的影响较大(RTT 值更新较快)。典型的 值为 7/8。,66,超时重传时间 RTO(RetransmissionTime-Out

33、),计时器的 RTO 应略大于上面得出的 RTT,即:RTO RTT 这里 是个大于 1 的系数。若取 很接近于1,发送端可及时地重传丢失的报文段,因此效率得到提高。但若报文段并未丢失而仅仅是增加了一点时延,那么过早地重传反而会加重网络的负担。因此 TCP 原先的标准推荐将 值取为 2。,67,往返时延 RTT?,往返时间的测量相当复杂,TCP 报文段 1 没有收到确认。重传(即报文段 2)后,收到了确认报文段 ACK。如何判定此确认报文段是对原来的报文段 1 的确认,还是对重传的报文段 2 的确认?,发送一个TCP 报文段,超时重传TCP 报文段,收到 ACK,时间,1,2,往返时延 RTT

34、?,是对哪一个报文段的确认?,68,Karn 算法,在计算平均往返时延 RTT 时,只要报文段重传了,就不采用其往返时延样本。这样得出的平均往返时延 RTT 和重传时间就较准确。,69,修正的 Karn 算法,报文段每重传一次,就将重传时间增大一些:新的重传时间(旧的重传时间)系数 的典型值是2。当不再发生报文段的重传时,才根据报文段的往返时延更新平均往返时延 RTT 和重传时间的数值。实践证明,这种策略较为合理。,70,5.3.6 随机早期丢弃 RED(Random Early Discard),使路由器的队列维持两个参数,即队列长度最小门限 THmin 和最大门限 THmax。RED 对每

35、一个到达的数据报都先计算平均队列长度 LAV。若平均队列长度小于最小门限 THmin,则将新到达的数据报放入队列进行排队。若平均队列长度超过最大门限 THmax,则将新到达的数据报丢弃。若平均队列长度在最小门限 THmin 和最大门限THmax 之间,则按照某一概率 p 将新到达的数据报丢弃。,71,RED 将路由器的到达队列划分成为三个区域,从队首发送,最小门限 THmin,最大门限 THmin,数据报到达,平均队列长度 Lav,排队,丢弃,以概率 p 丢弃,72,丢弃概率 p 与 THmin 和 Thmax 的关系,最小门限 THmin,最大门限 THmax,平均队列长度 Lav,数据报丢

36、弃概率 p,1.0,0,pmax,当 LAV Thmin 时,丢弃概率 p=0。当 LAV Thmax 时,丢弃概率 p=1。当 THmin LAV THmax时,0 p 1。例如,按线性规律变化,从 0 变到 pmax。,73,瞬时队列长度和平均队列长度的区别,队列长度,时间,瞬时队列长度,平均队列长度,74,5.3.7 TCP 的传输连接管理1.传输连接的三个阶段,运输连接就有三个阶段,即:连接建立、数据传送和连接释放。运输连接的管理就是使运输连接的建立和释放都能正常地进行。连接建立过程中要解决以下三个问题:要使每一方能够确知对方的存在。要允许双方协商一些参数(如最大报文段长度,最大窗口大

37、小,服务质量等)。能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。,75,客户服务器方式,TCP 的连接和建立都是采用客户服务器方式。主动发起连接建立的应用进程叫做客户(client)。被动等待连接建立的应用进程叫做服务器(server)。,76,用三次握手建立 TCP 连接,主机 B,被动打开,主动打开,确认,确认,主机 A,连接请求,77,建立 TCP 连接,A 的 TCP 向 B 发出连接请求报文段,其首部中的同步比特 SYN 应置为 1,并选择序号 x,表明传送数据时的第一个数据字节的序号是 x。B 的 TCP 收到连接请求报文段后,如同意,则发回确认。B 在确认报文段中应

38、将 SYN 置为 1,其确认号应为 x 1,同时也为自己选择序号 y。A 收到此报文段后,向 B 给出确认,其确认号应为 y 1。A 的 TCP 通知上层应用进程,连接已经建立。当运行服务器进程的主机 B 的 TCP 收到主机 A 的确认后,也通知其上层应用进程,连接已经建立。,78,TCP 连接释放的过程,应用进程释放连接A 不再发送报文,主机 B,主机 A,确认,确认,从 A 到 B 的连接就释放了,连接处于半关闭状态。相当于 A 向 B 说:“我已经没有数据要发送了。但你如果还发送数据,我仍接收。”,至此,整个连接已经全部释放。,79,TCP 的正常的连接建立和关闭,SYN,SEQ=x,

39、客户进程,服务器进程,LISTEN(被动打开),(主动打开)SYN_SENT,SYN_RCVD,ESTABLISHED,ESTABLISHED,(主动关闭)FIN_WAIT_1,CLOSE_WAIT(被动关闭),FIN_WAIT_2,LAST_ACK,TIME_WAIT,CLOSED,(全双工数据传送阶段),SYN,ACK,SEQ=y,ACK=x+1,ACK,SEQ=x+1,ACK=y+1,FIN,SEQ=u,ACK,SEQ=v,ACK=u+1,FIN,ACK,SEQ=v,ACK=u+1,ACK,SEQ=u+1,ACK=v+1,TIME_WAIT,CLOSE_WAIT,SYN_RCVD,EST

40、ABLISHED,80,韩雪琴,80,5.3.8 TCP连接的复位,应用程序使用完连接后使用关闭操作来结束一个连接。当出现异常情况使得应用程序或网络软件要中断这个连接时,TCP为这种异常的断链操作提供了复位措施:发起端送出一个报文段,RST比特置1,另一端响应立即退出连接。TCP通知应用程序出现了复位操作。连接双方立即停止传输,立即释放该传输所占用的资源。,81,韩雪琴,81,5.3.9 推操作,TCP使用缓冲技术提高了网络的吞吐率。为了适应交互式用户的需求,TCP提供了推操作,应用程序能够使用这个操作强迫TCP发送当前在数据流中的八位组,而不必等到填满缓冲区。报文段中的PSH比特置1,使得该

41、报文段被送往接收端的应用程序。,82,韩雪琴,82,5.3.10 糊涂窗口综合症,当收发两端的应用程序以不同的速率工作时,会出现糊涂窗口综合症。每个确认报文通告了少量的可用空间,而每个报文段仅仅携带少量的数据。,83,韩雪琴,83,避免糊涂窗口综合症,TCB标准用启发式方法来防止糊涂窗口综合症。在发送方使用的启发式技术避免了传输的各报文段仅包含少量数据。在接收方使用的启发式技术防止送出可能会引发小数据分组的具有微小增量的窗口通告。接收方避免糊涂窗口综合症的策略:通告零窗口之后,要等到缓冲区可用空间至少达到总空间的一半或达到最大报文长度之后才发送更新的窗口通告。实现方式:推迟确认,84,韩雪琴,

42、84,避免糊涂窗口综合症,防止发送短的报文段使用组块技术,其延迟根据互联网的当前性能确定。使用自适应机制。策略:在一个连接上已经传输的数据还未被确认的情况下,发送方的应用程序又生成了后续数据,并照常将数据送到缓冲区中。但此时并不发送报文段,而是等到数据足以填满一个达最大长度的报文段之后再把缓冲区的数据发送出去。这项技术能够适应不同网络的时延、最大段长度以及不同应用程序速度的组合情况,在常规情况下不会降低网络的吞吐率。,85,韩雪琴,85,TCP/IP协议多路复用,以太网硬件,以太网软件,ARP,IP,OSPF,TCP,UDP,IGMP,ICMP,Telnet,FTP,SMTP,TFTP,SNMP,物理层(MAC地址),数据链路层(类型码),网络层(IP协议字段),传输层(端口号),0 x0800,0 x0806,1,2,89,6,17,23,23,21,25,67,161,86,韩雪琴,86,小结,略,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号