《第5章--传输层协议ppt课件.ppt》由会员分享,可在线阅读,更多相关《第5章--传输层协议ppt课件.ppt(86页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、韩雪琴1韩雪琴2v前面各章回顾了互联网基础体系,描述了前面各章回顾了互联网基础体系,描述了主机和路由器如何发送主机和路由器如何发送Internet数据报,数据报,以及现行的机制下如何将以及现行的机制下如何将IP地址映射到物地址映射到物理地址。本章讨论主机和路由器中的网络理地址。本章讨论主机和路由器中的网络通信软件的结构。紧接着讨论互联网运输通信软件的结构。紧接着讨论互联网运输层协议机制。层协议机制。韩雪琴3v复杂的数据通信系统不会使用单一的协议来处理复杂的数据通信系统不会使用单一的协议来处理所有的传输任务。他们需要一整套相互合作的协所有的传输任务。他们需要一整套相互合作的协议,这些协议称为协议
2、族或协议套件。为什么需议,这些协议称为协议族或协议套件。为什么需要协议?首先考虑数据网络通信中可能出现的问要协议?首先考虑数据网络通信中可能出现的问题。题。 硬件失效硬件失效 网络拥塞网络拥塞 分组延时及丢失分组延时及丢失 数据损伤数据损伤 数据重复及乱序数据重复及乱序韩雪琴4v计算机上的协议软件具有称为层的垂直型栈结构,计算机上的协议软件具有称为层的垂直型栈结构,每一层负责处理问题的一个部分。把通信问题划每一层负责处理问题的一个部分。把通信问题划分为子问题,把协议软件分为多个模块,每个软分为子问题,把协议软件分为多个模块,每个软件处理一个子问题。件处理一个子问题。v关于协议分层的两个思想占据
3、了该领域的主导地关于协议分层的两个思想占据了该领域的主导地位。第一个思路基于国际标准化组织位。第一个思路基于国际标准化组织ISO所建立所建立的开放系统互连参考模型,称为的开放系统互连参考模型,称为ISO模型,给出模型,给出了七个概念层次的组织结构。了七个概念层次的组织结构。 ISO七层模型被设计为描述单一网络的协议,所以它七层模型被设计为描述单一网络的协议,所以它不像不像TCP/IP协议那样有一个具体的层用于互联网的选协议那样有一个具体的层用于互联网的选路。路。韩雪琴5物理层物理层物理层物理层物理层物理层数据链路层数据链路层数据链路层数据链路层数据链路层数据链路层网络层网络层网络层网络层网络层
4、网络层传输层传输层传输层传输层传输层传输层会话层会话层会话层会话层会话层会话层表示层表示层表示层表示层表示层表示层应用层应用层应用层应用层应用层应用层7654321韩雪琴6TCP/IP 的体系结构网络接口层IP各种应用层协议HTTP, FTP, SMTP, DNS 等TCP网际层运输层UDP应用层TCP: 传输控制协议(Transmission ControlProtocol)IP: 网际协议UDP: 用户数据报协议(User DatagramProtocol)韩雪琴7ICMPARP/RARP物理层:传输媒体物理层:传输媒体韩雪琴85 54 43 32 21 1Application laye
5、rTransport layerInternet layerData link layerPhysical layer韩雪琴9v分层的协议要设计成达到这样的效果,即分层的协议要设计成达到这样的效果,即目标主机的第目标主机的第N层所收到的数据就是源主层所收到的数据就是源主机的第机的第N层所发出的数据。层所发出的数据。韩雪琴10韩雪琴115432154321H3物物 理理 传传 输输 媒媒 体体数数 据据 部部 分分数数 据据 部部 分分数数 据据 部部 分分数数 据据 部部 分分10100110100101 比比 特特 流流 11 010111010T2计算机计算机 1 1H5H4H2首部首部尾
6、部尾部AP2AP1应应 用用 程程 序序 数数 据据计算机计算机 2 2比特比特帧帧IP数据报数据报IP分组分组TCP报文段报文段UDP报文段报文段韩雪琴12韩雪琴13v前面各章描述了一个前面各章描述了一个TCP/IP互联网,它能够提互联网,它能够提供在主机之间传输数据报的能力,每个数据报根供在主机之间传输数据报的能力,每个数据报根据其目的主机的据其目的主机的IP地址来进行互联网选路。在地址来进行互联网选路。在Internet协议层中,目的地址等同于主机,没有协议层中,目的地址等同于主机,没有对接收这个数据报的用户或应用程序进行更细致对接收这个数据报的用户或应用程序进行更细致的标识。本届增加一
7、个机制来扩充的标识。本届增加一个机制来扩充TCP/IP协议协议族,使得在给定的主机上能识别多个目的地,同族,使得在给定的主机上能识别多个目的地,同时允许多个应用程序运行于同一台主机上并独立时允许多个应用程序运行于同一台主机上并独立地进行数据报的收发。地进行数据报的收发。韩雪琴14v每个每个UDP报文称为一个用户数据报。从概念上讲,报文称为一个用户数据报。从概念上讲,分为两部分:分为两部分:UDP首部和数据区。首部被分为首部和数据区。首部被分为4个个16比特的字段。比特的字段。韩雪琴15vUDP校验和覆盖的内容超出了校验和覆盖的内容超出了UDP数据报本身的范围。数据报本身的范围。为了计算校验和,
8、为了计算校验和,UDP把伪首部引入数据中。首先把把伪首部引入数据中。首先把0只只赋予校验和字段,然后对整个对象:伪首部、赋予校验和字段,然后对整个对象:伪首部、UDP首部、首部、用户数据,计算一个用户数据,计算一个16比特的二进制反码和。比特的二进制反码和。v使用伪首部的目的是检验使用伪首部的目的是检验UDP数据报已到达正确的目的数据报已到达正确的目的地。如果校验和正确,说明地。如果校验和正确,说明UDP数据报到达了正确主机数据报到达了正确主机上的正确端口。上的正确端口。UDP长度长度协议协议0目的目的IP地址地址源源IP地址地址韩雪琴16端口端口 a a端口端口 b b端口端口 c c韩雪琴
9、177 ECHO回送回送37 TIME 时间时间42 NAMESERVER 主机名字服务器主机名字服务器53DOMAIN域名服务器域名服务器67BOOTPS启动协议服务启动协议服务69TFTP简单文件传输简单文件传输161SNMP简单网络管理协议简单网络管理协议韩雪琴18v前面各章讨论了构成互联网通信基础的不前面各章讨论了构成互联网通信基础的不可靠无连接分组交付服务,可靠无连接分组交付服务,IP协议对此进协议对此进行了定义。本节介绍可靠的流交付服务,行了定义。本节介绍可靠的流交付服务,即传输控制协议即传输控制协议TCP。韩雪琴19v最底层的计算机通信网络提供的服务是不可靠的最底层的计算机通信网
10、络提供的服务是不可靠的分组交付服务。当传输过程中出现错误时,当网分组交付服务。当传输过程中出现错误时,当网络硬件失效或网络负载太重时,分组可能会丢失,络硬件失效或网络负载太重时,分组可能会丢失,数据可能被破坏。动态路由分组的网络会使到达数据可能被破坏。动态路由分组的网络会使到达的分组顺序混乱、时延非常大或重复交付。的分组顺序混乱、时延非常大或重复交付。v最高层的应用程序常常在机器之间传输大量的数最高层的应用程序常常在机器之间传输大量的数据。使用不可靠的无连接交付来传输这样的数据据。使用不可靠的无连接交付来传输这样的数据苦不堪言,而且要求应用程序负责进行差错检测苦不堪言,而且要求应用程序负责进行
11、差错检测和恢复的工作。网络协议的研究目标之一就是为和恢复的工作。网络协议的研究目标之一就是为数据流的交付找出一般的解决方法,数据流的交付找出一般的解决方法,编制一个供编制一个供所用的应用程序使用的数据流交付软件所用的应用程序使用的数据流交付软件。独立的独立的通用协议软件通用协议软件,使我们能够定义一个统一的数据,使我们能够定义一个统一的数据流交付服务接口。流交付服务接口。韩雪琴20v应用程序与应用程序与TCP/IP可靠交付服务之间的接可靠交付服务之间的接口可以用五个特征来描述:口可以用五个特征来描述: 面向数据流面向数据流 虚电路连接虚电路连接 有缓冲的传输有缓冲的传输 无结构的数据流无结构的
12、数据流 全双工连接全双工连接v可靠的数据流交付服务确保在机器之间交可靠的数据流交付服务确保在机器之间交付数据流,不会重复交付或丢失数据。可付数据流,不会重复交付或丢失数据。可靠性使用靠性使用“带重传的肯定确认带重传的肯定确认”技术实现。技术实现。韩雪琴21vTCP是一个通信协议而不是一个软件。该协议是一个通信协议而不是一个软件。该协议 指定了两台计算机之间为了进行可靠传输而交换的指定了两台计算机之间为了进行可靠传输而交换的数数据和确认信息的格式据和确认信息的格式; 指定了计算机为了指定了计算机为了确保数据的正确到达而采取的措施确保数据的正确到达而采取的措施; 规定了规定了TCP软件如何识别给定
13、机器上的软件如何识别给定机器上的多个目的进程多个目的进程; 规定了如何对分组丢失和分组重复等规定了如何对分组丢失和分组重复等错误进行恢复错误进行恢复; 规定了两台计算机如何规定了两台计算机如何初始化一个初始化一个TCP数据流传输以数据流传输以及如何对结束的时机进行协商及如何对结束的时机进行协商。韩雪琴22vTCP是建立在连接抽象之上的,它所对应是建立在连接抽象之上的,它所对应的对象不是单独的端口而是一个虚电路连的对象不是单独的端口而是一个虚电路连接。连接是用接。连接是用一对端点一对端点来标识的。来标识的。TCP把把端点定义为一对整数(端点定义为一对整数(host,port)。)。v例如例如一个
14、连接一个连接可以表示为:可以表示为: (18.26.0.36,1069)和()和(128.10.2.3,25) 连接抽象允许多个连接共享一个端点。连接抽象允许多个连接共享一个端点。 (128.10.2.3,53) (128.9.0.32,118) (128.2.12.39,118)20FTP-DATA文件传输协议(数据连接)文件传输协议(数据连接)21FTP文件传输协议(控制连接)文件传输协议(控制连接)23TELNET远程登录终端远程登录终端25 SMTP简单邮件传输协议简单邮件传输协议53DNS 域名服务器域名服务器79FINGERfinger 程序程序2380HTTPWEB 服务服务v一
15、方面为普通的程序调用同一套熟知端口,另一方面为普通的程序调用同一套熟知端口,另一方面给操作系统很多端口号,有操作系统在一方面给操作系统很多端口号,有操作系统在应用程序需要时进行分配。应用程序需要时进行分配。vTCP 使用使用“连接连接”(而不仅仅是而不仅仅是“端口端口”)作为最作为最基本的抽象,同时将基本的抽象,同时将 TCP 连接的端点称为连接的端点称为插口插口(socket),或,或套接字套接字、套接口套接口。v插口和端口、插口和端口、IP 地址的关系是:地址的关系是: IP 地址131.6.23.13 端口号1500 131.6.23.13, 1500插口(socket)韩雪琴25传输层
16、以下传输层以下传输层传输层应用层应用层传输层以下传输层以下传输层传输层应用层应用层韩雪琴26IP=131.6.23.13IP=128.36.1.22IP=130.42.85.15v1.TCP报文的格式?报文的格式?v2.TCP的滑动窗口工作方式?窗口大小的变化依的滑动窗口工作方式?窗口大小的变化依据是什么?据是什么?v3.什么是糊涂窗口综合症?如何避免糊涂窗口综什么是糊涂窗口综合症?如何避免糊涂窗口综合症?合症?v4.TCP如何实现拥塞控制?如何实现拥塞控制?v5.TCP的定时器有哪些?的定时器有哪些?v6.TCP的重传机制?超时定时器的计算方法?的重传机制?超时定时器的计算方法?v7.TCP
17、如何建立连接?如何释放连接?如何建立连接?如何释放连接?v8.TCP建立连接为什么使用三次握手?建立连接为什么使用三次握手?v9.TCP如何实现可靠传输?如何实现可靠传输?vTCP提供数据流服务提供数据流服务v数据流、序号、报文段数据流、序号、报文段vTCP把数据流当作字节的序列,把序列划把数据流当作字节的序列,把序列划分成若干个段,每个段被放置到单个分成若干个段,每个段被放置到单个IP数数据报中在互联网上传输。据报中在互联网上传输。vTCP使用使用“滑动窗口滑动窗口”机制来解决两个重机制来解决两个重要问题:要问题:传输效率传输效率和和流量控制流量控制。韩雪琴30源端口源端口目的端口目的端口序
18、号序号确认号确认号首部长度首部长度保留未用保留未用码元比特码元比特通告窗口通告窗口校验和校验和紧急指针紧急指针选项选项填充填充数据数据韩雪琴31v源端口和目的端口源端口和目的端口:标识连接的两个端点:标识连接的两个端点v序号序号:指出本报文段在发送方的数据字节:指出本报文段在发送方的数据字节流中的位置流中的位置v确认序号确认序号:指出本机希望接收的下一个字:指出本机希望接收的下一个字节的序号节的序号v首部长度首部长度:以:以32比特为单位的首部长度值。比特为单位的首部长度值。因选项字段的长度根据包含的内容不同而因选项字段的长度根据包含的内容不同而有变化有变化v6比特比特保留字段保留字段为将来的
19、应用而保留为将来的应用而保留韩雪琴32v码元比特码元比特字段字段(CODE BITSCODE BITS) 6bit6bit 指出报文段的目的和内容,给出报文头中其他字段的指出报文段的目的和内容,给出报文头中其他字段的解释解释韩雪琴33v一个一个1616位整数校验和用于位整数校验和用于检验数据检验数据和和首部首部的完整性的完整性vTCP TCP 校验和校验和的计算方法:的计算方法:同同 IP IP 分组头的校验分组头的校验 校验和计算:除覆盖数据报外,还覆盖一个校验和计算:除覆盖数据报外,还覆盖一个 TCP TCP 伪首部伪首部 TCP TCP 伪首部的目的与伪首部的目的与 UDP UDP 基本
20、相同基本相同TCP长度长度协议协议0目的目的IP地址地址源源IP地址地址vTCP 协议是面向字节的。协议是面向字节的。TCP 将所要传送的报文将所要传送的报文看成是字节组成的数据流,并使每一个字节对应于看成是字节组成的数据流,并使每一个字节对应于一个序号。一个序号。v在连接建立时,双方要商定初始序号。在连接建立时,双方要商定初始序号。TCP 每次每次发送的报文段的首部中的序号字段数值表示该报文发送的报文段的首部中的序号字段数值表示该报文段中的段中的数据部分的第一个字节的序号数据部分的第一个字节的序号。v TCP 的确认是对接收到的数据的最高序号表示确的确认是对接收到的数据的最高序号表示确认。接
21、收端返回的确认号是已收到的数据的最高序认。接收端返回的确认号是已收到的数据的最高序号加号加 1。因此确认号表示。因此确认号表示接收端期望下次收到的数接收端期望下次收到的数据中的第一个数据字节的序号据中的第一个数据字节的序号。 韩雪琴352143658710911TCP TCP 字节数据流字节数据流ACK = 779ACK = 8ACK = 108已正确收已正确收到的字节到的字节TCP使用流序号对流中的一个位置进行确认,累计确认使用流序号对流中的一个位置进行确认,累计确认一个确认指出了接收方期望收到的下一个字节的序号。一个确认指出了接收方期望收到的下一个字节的序号。vTCP 采用大小可变的滑动窗
22、口进行流量控制。窗口采用大小可变的滑动窗口进行流量控制。窗口大小的单位是大小的单位是字节字节。v在在 TCP 报文段首部的窗口字段写入的数值就是当前报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限。给对方设置的发送窗口数值的上限。v发送窗口在连接建立时由双方商定。但在通信的过发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的资源情况,随时动态地程中,接收端可根据自己的资源情况,随时动态地调整对方的发送窗口上限值调整对方的发送窗口上限值(可增大或减小可增大或减小)。 韩雪琴37vTCP 通过可变的窗口大小来进行流量控制通过可变的窗口大小来进行流量控制 TCP
23、 允许随时改变窗口大小允许随时改变窗口大小 在确认报文中除在确认报文中除收到的字节)外,还包含收到的字节)外,还包含,说明接收方还可接收数据的能力,说明接收方还可接收数据的能力值可被认为是值可被认为是当前接收缓冲区的大小当前接收缓冲区的大小 窗口通告值增加时,发送方可扩大其发送窗口的大小;窗口通告值增加时,发送方可扩大其发送窗口的大小;窗口通告值减少时,发送方则应降低其发送窗口的大窗口通告值减少时,发送方则应降低其发送窗口的大小小收到确认即可前移1002003004005006007008009001012013014015016017018011发送窗口可发送不可发送指针v发送端要发送发送端
24、要发送 900 字节长的数据,划分为字节长的数据,划分为 9 个个 100 字节长的报文段,而发送窗口确定为字节长的报文段,而发送窗口确定为 500 字节。字节。v发送端只要收到了对方的确认,发送窗口就可发送端只要收到了对方的确认,发送窗口就可前移。前移。v发送发送 TCP 要维护一个指针。每发送一个报文要维护一个指针。每发送一个报文段,指针就向前移动一个报文段的距离。段,指针就向前移动一个报文段的距离。收到确认即可前移收到确认即可前移1002003004005006007008009001012013014015016017018011可发送不可发送指针1002003004005006007
25、008009001012013014015016017018011发送窗口可发送不可发送指针发送窗口前移v发送端已发送了发送端已发送了 400 字节的数据,但只收到对前字节的数据,但只收到对前 200 字节数据的确认,同时窗口大小不变。字节数据的确认,同时窗口大小不变。v现在发送端还可发送现在发送端还可发送 300 字节。字节。 已发送并被确认已发送但未被确认1002003004005006007008009001012013014015016017018011已发送并被确认已发送但未被确认可发送不可发送指针1002003004005006007008009001012013014015016
26、017018011已发送并被确认可发送不可发送指针发送窗口前移发送窗口缩小n发送端收到了对方对前 400 字节数据的确认,但对方通知发送端必须把窗口减小到 400 字节。n现在发送端最多还可发送 400 字节的数据。 SEQ = 1SEQ = 201SEQ = 401SEQ = 301SEQ = 101SEQ = 501ACK = 201, WIN = 300ACK = 601, WIN = 0ACK = 501, WIN = 200主机 A主机 B允许 A 再发送 300 字节(序号 201 至 500)A 还能发送 200 字节A 还能发送 200 字节(序号 301 至 500)A 还能
27、发送 300 字节A 还能发送 100 字节(序号 401 至 500)A 超时重发,但不能发送序号 500 以后的数据允许 A 再发送 200 字节(序号 501 至 700)A 还能发送 100 字节(序号 501 至 700)不允许 A 再发送(到序号 600 的数据都已收到)SEQ = 201丢失!v发送端的主机在确定发送报文段的速率时,既要发送端的主机在确定发送报文段的速率时,既要根据接收端的接收能力,又要从全局考虑不要使根据接收端的接收能力,又要从全局考虑不要使网络发生拥塞。网络发生拥塞。v因此,每一个因此,每一个 TCP 连接需要有以下两个状态变连接需要有以下两个状态变量:量:
28、接收端窗口接收端窗口 rwnd (receiver window) 又称为又称为通知窗口通知窗口(advertised window)。 拥塞窗口拥塞窗口 cwnd (congestion window)。v(1) 接收端窗口接收端窗口 rwnd 这是接收端根据其目前这是接收端根据其目前的接收缓存大小所许诺的最新的窗口值,是来自的接收缓存大小所许诺的最新的窗口值,是来自接收端的流量控制。接收端将此窗口值放在接收端的流量控制。接收端将此窗口值放在 TCP 报文的首部中的窗口字段,传送给发送端。报文的首部中的窗口字段,传送给发送端。v(2) 拥塞窗口拥塞窗口 cwnd (congestion wi
29、ndow) 是是发送端根据自己估计的网络拥塞程度而设置的窗发送端根据自己估计的网络拥塞程度而设置的窗口值,是来自发送端的流量控制。口值,是来自发送端的流量控制。v发送端的发送窗口的上限值应当取为接收端窗口发送端的发送窗口的上限值应当取为接收端窗口 rwnd 和拥塞窗口和拥塞窗口 cwnd 这两个变量中较小的一个,这两个变量中较小的一个,即应按以下公式确定:即应按以下公式确定:v当当 rwnd cwnd 时,是接收端的接收能力限制发送时,是接收端的接收能力限制发送窗口的最大值。窗口的最大值。v当当 cwnd 3),则将),则将 cwnd 设置为设置为 ssthresh + n MSS。(4) 若
30、发送窗口值还容许发送报文段,就按拥塞避免若发送窗口值还容许发送报文段,就按拥塞避免算法继续发送报文段。算法继续发送报文段。(5) 若收到了确认新的报文段的若收到了确认新的报文段的 ACK,就将,就将 cwnd 缩小到缩小到 ssthresh。v重传机制是重传机制是 TCP 中最重要和最复杂的问中最重要和最复杂的问题之一。题之一。vTCP 每发送一个报文段,就对这个报文每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的段设置一次计时器。只要计时器设置的重传时间到但还没有收到确认,就要重重传时间到但还没有收到确认,就要重传这一报文段。传这一报文段。v由于由于 TCP 的下层是一个互连
31、网环境,的下层是一个互连网环境,IP 数据数据报所选择的路由变化很大。因而运输层的往返报所选择的路由变化很大。因而运输层的往返时延的方差也很大。时延的方差也很大。时间数据链路层运输层T1T2T3往返时延的概率分布v记录每一个报文段发出的时间,以及收到相应的记录每一个报文段发出的时间,以及收到相应的确认报文段的时间。这两个时间之差就是报文段确认报文段的时间。这两个时间之差就是报文段的往返时延。的往返时延。 v将各个报文段的往返时延样本加权平均,就得出将各个报文段的往返时延样本加权平均,就得出报文段的平均往返时延报文段的平均往返时延 RTT。v每测量到一个新的往返时延样本,就按下式重新每测量到一个
32、新的往返时延样本,就按下式重新计算一次平均往返时延计算一次平均往返时延 RTT:v在上式中,在上式中,0 1。 v若若 很接近于很接近于 1,表示新算出的平均往返时延,表示新算出的平均往返时延 RTT 和原来的值相比变化不大,而新的往返时和原来的值相比变化不大,而新的往返时延样本的影响不大延样本的影响不大(RTT 值更新较慢值更新较慢)。v若选择若选择 接近于零,则表示加权计算的平均往接近于零,则表示加权计算的平均往返时延返时延 RTT 受新的往返时延样本的影响较大受新的往返时延样本的影响较大(RTT 值更新较快值更新较快)。v典型的典型的 值为值为 7/8。 v计时器的计时器的 RTO 应略
33、大于上面得出的应略大于上面得出的 RTT,即:,即:RTO RTT v这里这里 是个大于是个大于 1 的系数。的系数。v若取若取 很接近于很接近于1 ,发送端可及时地重传丢失的,发送端可及时地重传丢失的报文段,因此效率得到提高。报文段,因此效率得到提高。v但若报文段并未丢失而仅仅是增加了一点时延,但若报文段并未丢失而仅仅是增加了一点时延,那么过早地重传反而会加重网络的负担。那么过早地重传反而会加重网络的负担。v因此因此 TCP 原先的标准推荐将原先的标准推荐将 值取为值取为 2。 往返时延 RTT?vTCP 报文段报文段 1 没有收到确认。重传(即报文没有收到确认。重传(即报文段段 2)后,收
34、到了确认报文段)后,收到了确认报文段 ACK。v如何判定此确认报文段是对原来的报文段如何判定此确认报文段是对原来的报文段 1 的的确认,还是对重传的报文段确认,还是对重传的报文段 2 的确认?的确认? 发送一个TCP 报文段超时重传TCP 报文段收到 ACK时间12往返时延 RTT?是对哪一个报文段的确认?v在计算平均往返时延在计算平均往返时延 RTT 时,只要报文时,只要报文段重传了,就不采用其往返时延样本。段重传了,就不采用其往返时延样本。v这样得出的平均往返时延这样得出的平均往返时延 RTT 和重传时和重传时间就较准确。间就较准确。 v报文段每重传一次,就将重传时间增大一些:报文段每重传
35、一次,就将重传时间增大一些:新的重传时间新的重传时间 (旧的重传时间旧的重传时间)v系数系数 的典型值是的典型值是2 。v当不再发生报文段的重传时,才根据报文段的往返当不再发生报文段的重传时,才根据报文段的往返时延更新平均往返时延时延更新平均往返时延 RTT 和重传时间的数值。和重传时间的数值。v实践证明,这种策略较为合理。实践证明,这种策略较为合理。 v使路由器的队列维持两个参数,即队列长度最使路由器的队列维持两个参数,即队列长度最小门限小门限 THmin 和最大门限和最大门限 THmax。vRED 对每一个到达的数据报都先计算平均队列对每一个到达的数据报都先计算平均队列长度长度 LAV。v
36、若平均队列长度小于最小门限若平均队列长度小于最小门限 THmin,则将新,则将新到达的数据报放入队列进行排队。到达的数据报放入队列进行排队。v若平均队列长度超过最大门限若平均队列长度超过最大门限 THmax,则将新,则将新到达的数据报丢弃。到达的数据报丢弃。v若平均队列长度在最小门限若平均队列长度在最小门限 THmin 和最大门限和最大门限THmax 之间,则按照某一概率之间,则按照某一概率 p 将新到达的数将新到达的数据报丢弃。据报丢弃。从队首发送最小门限 THmin最大门限 THmin数据报到达平均队列长度 Lav排队丢弃以概率 p 丢弃最小门限 THmin最大门限 THmax平均队列长度
37、 Lav数据报丢弃概率 p1.00pmaxv当当 LAV Thmin 时,丢弃概率时,丢弃概率 p = 0。v当当 LAV Thmax 时,丢弃概率时,丢弃概率 p = 1。v当当 THmin LAV THmax时,时, 0 p 1 。 例如,按线性规律变化,从例如,按线性规律变化,从 0 变到变到 pmax。队列长度时间瞬时队列长度平均队列长度v运输连接就有三个阶段,即:运输连接就有三个阶段,即:连接建立连接建立、数据传送数据传送和和连接释放连接释放。运输连接的管理。运输连接的管理就是使运输连接的建立和释放都能正常就是使运输连接的建立和释放都能正常地进行。地进行。v连接建立过程中要解决以下三
38、个问题:连接建立过程中要解决以下三个问题: 要使每一方能够确知对方的存在。要使每一方能够确知对方的存在。 要允许双方协商一些参数(如最大报文段长要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。度,最大窗口大小,服务质量等)。 能够对运输实体资源(如缓存大小,连接表能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。中的项目等)进行分配。 vTCP 的连接和建立都是采用客户服务器方的连接和建立都是采用客户服务器方式。式。v主动发起连接建立的应用进程叫做主动发起连接建立的应用进程叫做客户客户(client)。v被动等待连接建立的应用进程叫做被动等待连接建立的应用进程叫
39、做服务器服务器(server)。 SYN, SEQ = x主机 BSYN, ACK, SEQ = y, ACK= x 1ACK, SEQ = x + 1, ACK = y 1被动打开主动打开确认确认主机 A连接请求vA 的的 TCP 向向 B 发出连接请求报文段,其首部中的发出连接请求报文段,其首部中的同步比特同步比特 SYN 应置为应置为 1,并选择序号,并选择序号 x,表明传,表明传送数据时的第一个数据字节的序号是送数据时的第一个数据字节的序号是 x。vB 的的 TCP 收到连接请求报文段后,如同意,则发收到连接请求报文段后,如同意,则发回确认。回确认。vB 在确认报文段中应将在确认报文段
40、中应将 SYN 置为置为 1,其确认号应,其确认号应为为 x 1,同时也为自己选择序号,同时也为自己选择序号 y。vA 收到此报文段后,向收到此报文段后,向 B 给出确认,其确认号应给出确认,其确认号应为为 y 1。vA 的的 TCP 通知上层应用进程,连接已经建立。通知上层应用进程,连接已经建立。v当运行服务器进程的主机当运行服务器进程的主机 B 的的 TCP 收到主机收到主机 A 的确认后,也通知其上层应用进程,连接已经建立。的确认后,也通知其上层应用进程,连接已经建立。 FIN, SEQ = xACK, SEQ = y, ACK= x 1ACK, SEQ = x + 1, ACK = y
41、 1应用进程释放连接A 不再发送报文FIN, ACK, SEQ = y, ACK = x + 1主机 B主机 A通知主机应用进程应用进程释放连接B 不再发送报文确认确认从 A 到 B 的连接就释放了,连接处于半关闭状态。相当于 A 向 B 说:“我已经没有数据要发送了。但你如果还发送数据,我仍接收。” 至此,整个连接已经全部释放。SYN, SEQ = x客户进程服务器进程LISTEN(被动打开)(主动打开) SYN_SENTSYN_RCVDESTABLISHEDESTABLISHED(主动关闭) FIN_WAIT_1CLOSE_WAIT ( 被动关闭)FIN_WAIT_2LAST_ACKTIM
42、E_WAITCLOSED(全双工数据传送阶段)SYN, ACK, SEQ = y, ACK = x + 1ACK, SEQ = x + 1, ACK = y + 1FIN, SEQ = uACK, SEQ = v, ACK = u + 1FIN, ACK, SEQ = v, ACK = u + 1ACK, SEQ = u + 1, ACK = v + 1TIME_WAITCLOSE_WAITSYN_RCVDESTABLISHED韩雪琴80v应用程序使用完连接后使用关闭操作来结应用程序使用完连接后使用关闭操作来结束一个连接。当出现异常情况使得应用程束一个连接。当出现异常情况使得应用程序或网络软件
43、要中断这个连接时,序或网络软件要中断这个连接时,TCP为为这种异常的断链操作提供了复位措施:发这种异常的断链操作提供了复位措施:发起端送出一个报文段,起端送出一个报文段,RST比特置比特置1,另,另一端响应立即退出连接。一端响应立即退出连接。TCP通知应用程通知应用程序出现了复位操作。连接双方立即停止传序出现了复位操作。连接双方立即停止传输,立即释放该传输所占用的资源。输,立即释放该传输所占用的资源。韩雪琴81vTCP使用缓冲技术提高了网络的吞吐率。使用缓冲技术提高了网络的吞吐率。v为了适应交互式用户的需求,为了适应交互式用户的需求,TCP提供了提供了推操作,应用程序能够使用这个操作强迫推操作
44、,应用程序能够使用这个操作强迫TCP发送当前在数据流中的八位组,而不发送当前在数据流中的八位组,而不必等到填满缓冲区。报文段中的必等到填满缓冲区。报文段中的PSH比特比特置置1,使得该报文段被送往接收端的应用,使得该报文段被送往接收端的应用程序。程序。韩雪琴82v当收发两端的应用程序以不同的速率工作当收发两端的应用程序以不同的速率工作时,会出现糊涂窗口综合症。时,会出现糊涂窗口综合症。v每个确认报文通告了少量的可用空间,而每个确认报文通告了少量的可用空间,而每个报文段仅仅携带少量的数据。每个报文段仅仅携带少量的数据。韩雪琴83vTCB标准用启发式方法来防止糊涂窗口综标准用启发式方法来防止糊涂窗
45、口综合症。在发送方使用的启发式技术避免了合症。在发送方使用的启发式技术避免了传输的各报文段仅包含少量数据。在接收传输的各报文段仅包含少量数据。在接收方使用的启发式技术防止送出可能会引发方使用的启发式技术防止送出可能会引发小数据分组的具有微小增量的窗口通告。小数据分组的具有微小增量的窗口通告。 接收方避免糊涂窗口综合症的策略:通告零窗接收方避免糊涂窗口综合症的策略:通告零窗口之后,要等到缓冲区可用空间至少达到总空口之后,要等到缓冲区可用空间至少达到总空间的一半或达到最大报文长度之后才发送更新间的一半或达到最大报文长度之后才发送更新的窗口通告。的窗口通告。 实现方式:推迟确认实现方式:推迟确认韩雪
46、琴84v防止发送短的报文段防止发送短的报文段v使用组块技术,其延迟根据互联网的当前性能确使用组块技术,其延迟根据互联网的当前性能确定。使用自适应机制。定。使用自适应机制。v策略:在一个连接上已经传输的数据还未被确认策略:在一个连接上已经传输的数据还未被确认的情况下,发送方的应用程序又生成了后续数据,的情况下,发送方的应用程序又生成了后续数据,并照常将数据送到缓冲区中。但此时并不发送报并照常将数据送到缓冲区中。但此时并不发送报文段,而是等到数据足以填满一个达最大长度的文段,而是等到数据足以填满一个达最大长度的报文段之后再把缓冲区的数据发送出去。报文段之后再把缓冲区的数据发送出去。v这项技术能够适应不同网络的时延、最大段长度这项技术能够适应不同网络的时延、最大段长度以及不同应用程序速度的组合情况,在常规情况以及不同应用程序速度的组合情况,在常规情况下不会降低网络的吞吐率。下不会降低网络的吞吐率。韩雪琴85ARPIPOSPFTCPUDPIGMPICMP韩雪琴86v略略