ch5--运输层V06-OK.ppt

上传人:本田雅阁 文档编号:2890905 上传时间:2019-06-02 格式:PPT 页数:91 大小:803.52KB
返回 下载 相关 举报
ch5--运输层V06-OK.ppt_第1页
第1页 / 共91页
ch5--运输层V06-OK.ppt_第2页
第2页 / 共91页
ch5--运输层V06-OK.ppt_第3页
第3页 / 共91页
ch5--运输层V06-OK.ppt_第4页
第4页 / 共91页
ch5--运输层V06-OK.ppt_第5页
第5页 / 共91页
点击查看更多>>
资源描述

《ch5--运输层V06-OK.ppt》由会员分享,可在线阅读,更多相关《ch5--运输层V06-OK.ppt(91页珍藏版)》请在三一文库上搜索。

1、第 5 章 传 输 层,主要内容,5.1 传输层协议概述 5.2 TCP/IP 体系中的传输层 5.3 用户数据报协议 UDP 5.4 传输控制协议 TCP,基本要求 充分了解传输层的作用和地位 掌握端口的概念 掌握TCP/IP体系中的传输层协议的 TCP和UDP的基本特点、基本原理,5.1 传输层协议概述,传输层的作用是在源主机和目的主机之间提供端到端的,性能可靠的数据传输。 从通信和信息处理的角度看,传输层向它上面的应用层提供通信服务,传输层的功能和地位 传输层提供端到端(进程-进程)的可靠通信,即向高层用户屏蔽通信子网的细节,提供通用的传输接口 1. 主要功能: 传输层为应用进程之间提供

2、端到端的逻辑通信(网络层是为主机之间提供逻辑通信) 对收到的报文进行差错检测 流量控制和拥塞控制 传输连接管理 传输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP。,传输层为相互通信的应用进程提供了逻辑通信,应用进程之间的通信,两个主机进行通信实际上就是两个主机中的应用进程互相通信。 应用进程之间的通信又称为端到端的通信。 传输层的一个很重要的功能就是复用和分用。应用层不同进程的报文通过不同的端口向下交到传输层,再往下就共用网络层提供的服务。,传输层协议和网络层协议的主要区别,应用进程,应用进程,IP 协议的作用范围 (提供主机之间的逻辑通信),TCP 和 UDP 协议的

3、作用范围 (提供进程之间的逻辑通信),因 特 网,传输层向上提供可靠的和不可靠的逻辑通信信道,?,应 用 层,传 输 层,发 送 进 程,接 收 进 程,接 收 进 程,数据,数据,全双工可靠信道,数据,数据,使用 TCP 协议,使用 UDP 协议,不可靠信道,发 送 进 程,传输层提供的服务分为:面向连接的传输服务和 无连接传输服务。,2. 传输层的地位,地位 传输层在网络分层结构中起承上启下的作用。 无论通信子网服务和QoS如何,总可以利用传输层对它加以屏蔽,将子网的技术、设计和各种不尽人意的地方与上层隔离开来,向上提供一个标准的、相当完善的服务界面,从而为编写通用、高效的网络应用程序提供

4、可能。,传输层协议设计 因通信子网种类很多,每种各具特色,故传输层协议的设计需与这些“特色”相适应。 定性来看,通信子网提供的的服务越可靠,传输协议就可以越简单,总结: 本质上,传输层的目的是加强和弥补通信子网的服务。“加强”是对QoS而言,指提高服务的可靠性,“弥补”是对服务类型而言,传输层提供端到端进程通信,而子网仅提供点到点通信。,TCP/IP的传输层有两个不同的协议: (1) 用户数据报协议 UDP (User Datagram Protocol) (2) 传输控制协议 TCP (Transmission Control Protocol),5.2 TCP/IP 体系中的传输层 一、传

5、输层中的两个协议,TCP/IP 体系中的传输层协议,TCP,UDP,IP,应用层,与各种网络接口,传输层,TCP 传送的协议数据单位是 TCP 报文段(segment) UDP 传送的协议数据单位是 UDP 报文或用户数据 报。,TCP 与 UDP,TCP 与 UDP,UDP 在传送数据之前不需要先建立连接。对方的传输层在收到 UDP 报文后,不需要给出任何确认。 TCP 提供面向连接的服务。TCP 不提供广播或多播服务。由于 TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。,二、端口的概念,端口就是传输层服务访问点 TSAP。 端口的作用:(两方面考虑) 发送方:让

6、应用层的各种应用进程都能将其数据 通过端口向下交付给传输层 接收方:让传输层知道应当将其报文段中的数据 向上通过端口交付给应用层相应的进程。 从这个意义上讲,端口是用来标志应用层的进程。,端口在进程之间通信中所起的作用,应 用 层,传 输 层,网 络 层,TCP 报文段,应用进程,TCP 复用,IP 复用,UDP 复用,TCP 报文段,应用进程,端口,TCP 分用,UDP 分用,IP 分用,发送方,接收方,端口,UDP 用户数据报,UDP 用户数据报,端口的复用和分用功能,端口将应用层的不同进程区分开; 使用复用和分用技术,使得传输层和网络层的交互看不见各种应用进程,而只有TCP报文段或UDP

7、数据报; IP层也使用类似的复用和分用技术,因而网络层和数据链路层的交互也只有IP数据报。,端口,端口用一个 16 bit 端口号进行标志。 端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。,端口分类,服务器端使用的端口号 熟知端口:数值一般为 01023。以全局方式分配。不同机器上同样的服务器,其端口号相同。 登记端口号:数值为102449151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记,以防止重复。 客户端使用的端口号 也称短暂端口号,数值为4915265535,留给客户进程选择暂时使用。

8、以本地方式分配。 当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。,常用的端口号举例,TCP熟知端口示例,UDP熟知端口示例,A与C先建立第一个连接,端口500端口25 A与C后建立第二个连接,端口501端口25 同样,B与C建立第三个连接,端口500端口25,端口使用说明,端口使用说明(续) 同一主机可以运行不同的应用进程,其端口号必须局部唯一。 例如,上例中主机A的500和501 各主机独立分配端口号,故可能相同,由于将端口号和主机的IP地址结合在一起使用,因此通信时不会发生混乱。 例如,上例中主机A和B的连接1和连接3

9、,各自分别都在500端口连接,但不会出错,端口号与IP地址结合使用,为了在通信时不致发生混乱,必须将端口号与主机的IP地址结合在一起使用; TCP使用“连接”作为最基本的抽象,一个连接由它的两个端点来标识,这样的端点称为插口(socket),就是我们常说的“套接字”; 插口包括:IP地址(32比特)和端口号(16比特),共48比特; 在整个因特网中,在传输层通信的一对插口必须是唯一的; 从上例可知:使用面向连接的TCP,就是建立一条端到端的连接。形成一对插口(131.6.23.13;501)和(130.42.85.15;25),5.3 用户数据报协议 UDP 一、UDP 概述,UDP 只在 I

10、P 的数据报服务之上增加了很少一 点的功能,即端口的功能和差错检测的功能。 虽然 UDP 用户数据报只能提供不可靠的交付, 但 UDP 在某些方面有其特殊的优点。,UDP 的主要特点,UDP 是无连接的。发送数据之前不需要建立连接。 UDP 使用尽最大努力交付。不保证可靠交付,同时也不使用拥塞控制。 UDP 是面向报文的。UDP 没有拥塞控制,很适合多媒体通信的要求。 UDP 支持一对一、一对多、多对一和多对多的交互通信。 UDP 的首部开销小,只有 8 个字节。,解释“UDP是面向报文的”,发送方 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。UDP 对应用层交下来的报文

11、,既不合并,也不拆分。 应用层交给 UDP 多长的报文,UDP 就照样发送,即一次发送一个报文。 接收方 UDP 对 IP 层交上来的 UDP 用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。 应用程序必须选择合适大小的报文。,二、UDP 用户数据报的首部格式,伪首部,源端口,目的端口,长 度,检验和,数 据,首 部,UDP长度,源 IP 地址,目的 IP 地址,0,17,IP 数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数 据,首 部,UDP 用户数据报,UDP用户数据报 有两个字段:数据字段和首部字段。首部字段有 8 个字节,由

12、4 个字段组成,每个字段都是两个字节。,伪首部,源端口,目的端口,长 度,检验和,数 据,首 部,UDP长度,源 IP 地址,目的 IP 地址,0,17,IP 数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数 据,首 部,UDP 用户数据报,在计算校验和时,临时把“伪首部”和 UDP 用户数据报连接在一起。伪首部仅仅是为了计算校验和。,伪首部,源端口,目的端口,长 度,检验和,数 据,首 部,UDP长度,源 IP 地址,目的 IP 地址,0,17,IP 数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数 据,首 部,UDP 用户数据报,校验和的

13、计算方法类似于IP数据报,但是对首部和数据都校验,5.4 传输控制协议 TCP 一、TCP 概述,TCP 最主要的特点,TCP 是面向连接的传输层协议 每一条 TCP 连接只能有两个端点(endpoint),每一条 TCP 连接只能是点对点的(一对一) TCP 提供可靠交付的服务。(无差错、不丢失、不重复、不失序) TCP 提供全双工通信。(双方应用进程在任何时候都能发送数据。双方都有发送缓存和接收缓存) 面向字节流,应用程序和TCP的交互是一次一个数据块(大小不等),但TCP将应用程序交下来的数据看成是一串无结构的字节流。 TCP不关心字节流的含义。 不保证接收方应用程序收到的数据块和发送方

14、应用程序所发送的数据块具有对应大小的关系。 接收方应用程序收到的字节流必须和发送方应用程序发出的字节流完全一样。 TCP中每个字节都对应有一个序号,面向字节流的概念,面向字节流的概念(续),发送 TCP 报文段,发送方,接收方,把字节写入 发送缓存,从接收缓存 读取字节,应用进程,应用进程,18,17,16,15,14,H,加上 TCP 首部 构成 TCP 报文段,TCP,TCP,字节流,字节流,H,表示 TCP 报文段的首部,x,表示序号为 x 的数据字节,TCP 连接,图中: TCP 连接是一条虚连接而不是一条真正的物理连接。 TCP 对应用进程一次把多长的报文发送到TCP 的缓存中是不关

15、心的。 TCP 根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP 发送的报文长度是应用进程给出的)。 TCP 可把太长的数据块划分短一些再传送。TCP 也可等待积累有足够多的字节后再构成报文段发送出去。,总结: 发送方:(连接建立后) 应用进程产生数据,送往发送缓存排队;TCP从中取出一定数量的数据,组成TCP报文段逐个交给IP层,最后发送出去。 接收方: 从IP层收到TCP报文段后,先将其放入接收缓存,接收端的应用进程逐个读取数据,TCP要完成的主要功能 可靠传输(字节序号、滑动窗口、超时重传) 流量控制 拥塞控制 传输连接管理,TCP 首部,20 字节的 固

16、定首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,32 bit,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,TCP 数据部分,TCP 首部,TCP 报文段,IP 数据部分,IP 首部,发送在前,二、TCP 报文段首部,TCP 首部,20 字节 固定 首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C

17、 K,U R G,比特 0 8 16 24 31,填 充,源端口和目的端口字段各占 2 字节。端口是传输层与应用层的服务接口。传输层的复用和分用功能都要通过端口才能实现。,序号字段占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值:本报文段所发送的数据的第一个字节的序号。 初始序号在建立连接时设置。,TCP 首部,20 字节 固定 首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24

18、 31,填 充,确认号字段占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。,TCP 首部,20 字节 固定 首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,比特 0 8 16 24 31,数据偏移占 4 bit,指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。表示TCP报文段首部长度。“数据偏移”的单位不是字节,而是 32 bit 字(4 字节为计算单位)

19、。,TCP 首部,20 字节 固定 首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,填 充,保留字段占 6 bit,保留为今后使用,但目前应置为 0。,TCP 首部,20 字节 固定 首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,紧急

20、比特 URG 当 URG 1 时,紧急指针字段有效。表明从本报文段的起始字符开始,到紧急指针指出的序号之间的部分为紧急数据,应立即交应用程序或上层。紧急指针指出的序号以后的数据为一般数据。 URG 0,表示本报文段为一般数据,TCP 首部,20 字节 固定 首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,确认比特 ACK 只有当 ACK 1 时确认号字段有效。当 ACK 0 时,确认号无效。这说

21、明TCP具有捎带确认功能。,TCP 首部,20 字节 固定 首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,推送比特 PSH (PuSH) 接收 TCP 收到推送比特置 1 的报文段,将以前收到的数据和本报文段的数据一起立即交给应用进程,而不再等到整个缓存都填满了后再向上交付。,TCP 首部,20 字节 固定 首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,

22、序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,复位比特 RST (ReSeT) 当 RST 1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须立即释放连接,通知应用程序立即释放缓冲区等资源。然后再重新建立传输连接。,TCP 首部,20 字节 固定 首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,

23、比特 0 8 16 24 31,填 充,同步比特 SYN :SYN 1,表示这是一个连接请求或连接接受报文。(建立传输连接时使用),TCP 首部,20 字节 固定 首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,终止比特 FIN (FINal) 用来释放一个连接。当FIN 1 时,表明此报文段的发送端的数据已发送完毕,并要求释放传输连接。,TCP 首部,20 字节 固定 首部,目 的 端 口,数

24、据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,窗口字段 占 2 字节。窗口字段用来控制对方发送的数据量,单位为字节。TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。,TCP 首部,20 字节 固定 首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R

25、S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,检验和 占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。(类似UDP,伪首部中协议字段为6),TCP 首部,20 字节 固定 首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,比特 0 8 16 24 31,紧急指针字段 占 16 bit

26、。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。,TCP 首部,20 字节 固定 首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,填 充,三、TCP 的可靠传输,对数据进行编号和确认的原因 保证数据传输的可靠性。(措施之一) 如何实现 以字节为单位编号; 收到数据后发确认(使用捎带确认技术); 采用超时重传机制实现重传,描述: TCP 协议是面向字节的。TCP 将所要传送的报文看成是字节组成的数据流,并使每一个字节对应于一个

27、序号。 在连接建立时,双方要商定初始序号。TCP 每次发送的报文段的首部中的序号字段数值表示该报文段中的数据部分的第一个字节的序号。 TCP 的确认是对接收到的数据的最高序号表示确认。接收端返回的确认号是已收到的数据的最高序号加 1。因此确认号表示接收端期望下次收到的数据中的第一个数据字节的序号。,四、TCP 的流量控制与拥塞控制 1. 滑动窗口的概念,TCP 采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。 在 TCP 报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限。 发送窗口在连接建立时由双方商定。 在通信的过程中,接收端可根据自己的资源情况,随时动态地调整

28、对方的发送窗口上限值。,收到确认即可前移,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,可发送,不可发送,要发送 900 字节长的数据,划分为 9 个报文段,100 字节/报文段,发送窗口大小为 500 字节。 发送端只要收到了对方的确认,发送窗口就可前移。 发送 TCP 要维护一个指针。每发送一个报文段,指针就向前移动一个报文段的距离。,例如,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,不可发送,发送窗口

29、前移,发送端已发送了 400 字节的数据,但只收到对前 200 字节数据的确认,同时窗口大小不变。 现在发送端还可发送 300 字节。,收到确认即可前移,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,已发送 并被确认,已发送但 未被确认,可发送,不可发送,指针,100,200,300,400,500,600,700,800,900,101,201

30、,301,401,501,601,701,801,1,不可 发送,指针,发送窗口前移,发送端收到了对方对前 400 字节数据的确认,但对方通知发送端必须把窗口减小到 400 字节。 现在发送端最多还可发送 400 字节的数据。,2. 拥塞控制的算法 慢开始、拥塞避免、快重传、快恢复,慢开始和拥塞避免,基本思想: 发送开始,试探性地增大发送量(即增大发送端的拥塞窗口,按指数规律);达到慢开始门限时,按线性规律增大;一旦有报文丢失,则拥塞窗口重新设置为1,重新开始执行慢开始算法。,发送端的主机在确定发送报文段的速率时,既要根据接收端的接收能力,又要从全局考虑不要使网络发生拥塞。 因此,每一个 TC

31、P 连接需要有以下两个状态变量: 接收端窗口 rwnd (receiver window) 又称为 通知窗口(advertised window)。 拥塞窗口 cwnd (congestion window)。,描述:,接收端窗口 rwnd 和拥塞窗口 cwnd,接收端窗口 rwnd 这是接收端根据其目前的接收缓存大小所许诺的最新的窗口值,是来自接收端的流量控制。接收端将此窗口值放在 TCP 报文的首部中的窗口字段,传送给发送端。 (2) 拥塞窗口 cwnd (congestion window) 是发送端根据自己估计的网络拥塞程度而设置的窗口值,是来自发送端的流量控制。,发送窗口的上限值,发

32、送端的发送窗口的上限值应当取为接收端窗口 rwnd 和拥塞窗口 cwnd 这两个变量中较小的一个,即应按以下公式确定: 发送窗口的上限值 Min rwnd, cwnd 当 rwnd cwnd 时,是接收端的接收能力限制发送窗口的最大值。 当 cwnd rwnd 时,则是网络的拥塞限制发送窗口的最大值。,慢开始算法的原理,在主机刚刚开始发送报文段时可先将拥塞窗口 cwnd 设置为一个最大报文段 MSS 的数值。 在每收到一个对新的报文段的确认后,将拥塞窗口增加至多一个 MSS 的数值。 用这样的方法逐步增大发送端的拥塞窗口 cwnd,可以使分组注入到网络的速率更加合理。,慢开始和拥塞避免算法的实

33、现举例,当 TCP 连接进行初始化时,将拥塞窗口置为 1。图中的窗口单位不使用字节而使用报文段。,慢开始门限的初始值设置为 16 个报文段,即 ssthresh = 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,发送端的发送窗口不能超过拥塞窗口 cwnd 和接收端窗口 rwnd 中的最小值。我们假定接收端窗口足够大,因此现在发送窗口的数值等于拥塞窗口的数值。,2,4,6,8,10,12,14,16,18,

34、20,22,0,0,4,8,12,16,20,24,传输次数,拥塞窗口 cwnd,ssthresh = 16,慢开始,慢开始,拥塞避免,拥塞避免,更新后的 ssthresh = 12,慢开始和拥塞避免算法的实现举例,在执行慢开始算法时,拥塞窗口 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,慢开始和拥塞避免算法的实现举例,发送端收到 ACK1 (确认 M0,期望

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

36、20,22,0,0,4,8,12,16,20,24,传输次数,拥塞窗口 cwnd,ssthresh = 16,慢开始,慢开始,拥塞避免,拥塞避免,更新后的 ssthresh = 12,慢开始和拥塞避免算法的实现举例,发送端每收到一个对新报文段的确认 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,慢开始和拥塞避免算法的实现举例

37、,当拥塞窗口 cwnd 增长到慢开始门限值 ssthresh 时(即当 cwnd = 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,慢开始和拥塞避免算法的实现举例,假定拥塞窗口的数值增长到 24 时,网络出现超时(表明网络拥塞了)。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,传输次数,拥塞窗口 c

38、wnd,ssthresh = 16,慢开始,慢开始,拥塞避免,拥塞避免,更新后的 ssthresh = 12,慢开始和拥塞避免算法的实现举例,更新后的 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,慢开始和拥塞避免算法的实现举例,当 cwnd = 12 时改为执行拥塞避免算法,拥塞窗口按按线性规律增长,每

39、经过一个往返时延就增加一个 MSS 的大小。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,传输次数,拥塞窗口 cwnd,ssthresh = 16,慢开始,慢开始,拥塞避免,拥塞避免,更新后的 ssthresh = 12,慢开始和拥塞避免算法的实现举例,必须强调指出,“拥塞避免”并非指完全能够避免了拥塞。利用以上的措施要完全避免网络拥塞还是不可能的。 “拥塞避免”是说在拥塞避免阶段把拥塞窗口控制为按线性规律增长,使网络比较不容易出现拥塞。,五、TCP 的传输连接管理 1. 传输连接的三个阶段,传输连接的三个阶段:连接建立、数据传送和连接释放

40、。 传输连接的管理就是使传输连接的建立和释放都能正常地进行。 需解决的三个问题: (连接建立过程中) 要使每一方能够确知对方的存在。 要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。 能够对传输实体资源(如缓存大小,连接表中的项目等)进行分配。,建立TCP 连接采用客户服务器方式 客户:主动发起连接建立的应用进程 服务器:被动等待连接建立的应用进程,用三次握手建立 TCP 连接,CLOSED,CLOSED,A,B,客户,服务器,A 的 TCP 向 B 发出连接请求报文段,其首部中的 同步位 SYN = 1,并选择序号 seq = x,表明传送 数据时的第一个数据字节的序号是 x。,CLOSED,CLOSED,A,B,客户,服务器,B 的 TCP 收到连接请求报文段后,如同意,则 发回确认。 B 在确认报文段中应使 SYN = 1,使 ACK = 1, 其确认号ack = x 1,自己选择的序号 seq = y。,CLOSED,CLOSED,A,B,客户,服务器,A 收到此报文段后向 B 给出确认,其 ACK = 1, 确认号 ack = y 1。 A 的 T

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1