收藏 分销(赏)

自动化学习资料公开课一等奖优质课大赛微课获奖课件.pptx

上传人:丰**** 文档编号:5102692 上传时间:2024-10-25 格式:PPTX 页数:88 大小:775KB
下载 相关 举报
自动化学习资料公开课一等奖优质课大赛微课获奖课件.pptx_第1页
第1页 / 共88页
自动化学习资料公开课一等奖优质课大赛微课获奖课件.pptx_第2页
第2页 / 共88页
自动化学习资料公开课一等奖优质课大赛微课获奖课件.pptx_第3页
第3页 / 共88页
自动化学习资料公开课一等奖优质课大赛微课获奖课件.pptx_第4页
第4页 / 共88页
自动化学习资料公开课一等奖优质课大赛微课获奖课件.pptx_第5页
第5页 / 共88页
点击查看更多>>
资源描述

1、第五章第五章 运送层运送层计算机网络计算机网络(第五版第五版)第1页第1页第第 5 5 章章 运送层运送层 5.1 5.1 运送层协议概述运送层协议概述 5.1.1 5.1.1 进程之间通信进程之间通信 Go Go 5.1.2 5.1.2 运送层两个主要协议运送层两个主要协议 Go Go 5.1.3 5.1.3 运送层端口运送层端口 Go Go 5.2 5.2 用户数据报协议用户数据报协议 UDP UDP 5.2.1 UDP 5.2.1 UDP 概述概述 Go Go 5.2.2 UDP 5.2.2 UDP 首部格式首部格式 Go Go 5.3 5.3 传播控制协议传播控制协议 TCP TCP

2、概述概述 5.3.1 TCP 5.3.1 TCP 最主要特点最主要特点 Go Go 5.3.2 TCP 5.3.2 TCP 连接连接 Go Go 第2页第2页第第 5 5 章章 运送层运送层(续续)5.4 5.4 可靠传播工作原理可靠传播工作原理 5.4.1 5.4.1 停止等待协议停止等待协议 Go Go 5.4.2 5.4.2 连续连续 ARQ ARQ 协议协议 Go Go 5.5 TCP 5.5 TCP 报文段首部格式报文段首部格式 Go Go 5.6 TCP 5.6 TCP 可靠传播实现可靠传播实现 5.6.1 5.6.1 以字节为单位滑动窗口以字节为单位滑动窗口 Go Go 5.6.

3、2 5.6.2 超时重传时间选择超时重传时间选择 Go Go 5.6.3 5.6.3 选择确认选择确认 SACK SACK Go Go 5.7 TCP5.7 TCP流量控制流量控制 5.7.1 5.7.1 利用滑动窗口实现流量控制利用滑动窗口实现流量控制 Go Go 5.7.2 5.7.2 必须考虑传播效率必须考虑传播效率 Go Go 第3页第3页第第 5 5 章章 运送层运送层(续续)5.8 TCP 5.8 TCP 拥塞控制拥塞控制 5.8.1 5.8.1 拥塞控制普通原理拥塞控制普通原理 Go Go 5.8.2 5.8.2 几种拥塞控制办法几种拥塞控制办法 Go Go 5.8.3 5.8.

4、3 随机早期检测随机早期检测 RED RED Go Go 5.9 TCP 5.9 TCP 运送连接管理运送连接管理 5.9.1 TCP 5.9.1 TCP 连接建立连接建立 Go Go 5.9.2 TCP 5.9.2 TCP 连接释放连接释放 Go Go 5.9.3 TCP 5.9.3 TCP 有限状态机有限状态机 Go Go 第4页第4页5.1.1 5.1.1 进程之间通信进程之间通信l从从通通信信和和信信息息处处理理角角度度看看,运运送送层层向向它它上上面面应应用用层层提提供供通通信信服服务务,它它属属于于面面向向通通信信部部分分最最高高层层,同时也是用户功效中最低层同时也是用户功效中最低

5、层l当当网网络络边边沿沿部部分分中中两两个个主主机机使使用用网网络络关关键键部部分分功功效效进进行行端端到到端端通通信信时时,只只有有位位于于网网络络边边沿沿部部分分主主机机协协议议栈栈才才有有运运送送层层,而而网网络络关关键键部部分分中中路路由由器器在转发分组时都只用到下三层功效在转发分组时都只用到下三层功效第5页第5页运送层为互相通信应用进程提供了逻辑通信运送层为互相通信应用进程提供了逻辑通信主机 A主机 B应用进程应用进程54321运送层提供应用进程间逻辑通信IP 层AP1AP2AP4端口端口54321AP3路由器 1路由器 2AP1LAN2WANAP2AP3AP4LAN1IP 协议作用

6、范围运送层协议 TCP 和 UDP 作用范围第6页第6页运送层协议和网络层协议主要区别运送层协议和网络层协议主要区别应用进程应用进程IP 协议作用范围(提供主机之间逻辑通信)TCP 和 UDP 协议作用范围(提供进程之间逻辑通信)因 特 网Back第7页第7页lTCP/IP 运输层有两个不同协议:l(1)用户数据报协议 UDP(User Datagram Protocol)l(2)传输控制协议 TCP(Transmission Control Protocol)l两个对等运输实体在通信时传送数据单位叫作运输协议数据单元 TPDU(Transport Protocol Data Unit)lTC

7、P 传送数据单位协议是 TCP 报文段(segment)l UDP 传送数据单位协议是 UDP 报文或用户数据报5.1.2 5.1.2 运送层两个主要协议运送层两个主要协议 第8页第8页TCP/IP TCP/IP 体系中运送层协议体系中运送层协议 TCPUDPIP应用层与各种网络接口运送层l l运送层运送层 UDP UDP 用户数据报与网际层用户数据报与网际层IPIP数据报有很大区别。数据报有很大区别。IP IP 数据报数据报要通过互连网中许多路由器存储要通过互连网中许多路由器存储转发,但转发,但 UDP UDP 用户数据报是在运用户数据报是在运送层端到端抽象逻辑信道中传送送层端到端抽象逻辑信

8、道中传送l lTCP TCP 则提供面向连接服务。则提供面向连接服务。但不提供广播或多播服务但不提供广播或多播服务。由于。由于 TCP TCP 要提供可靠、面向连接运送服务,因此不可避免地增长要提供可靠、面向连接运送服务,因此不可避免地增长了许多开销。这不但使协议数据单元首部增大诸多,还要占了许多开销。这不但使协议数据单元首部增大诸多,还要占用许多处理机资源用许多处理机资源第9页第9页还要强调两点还要强调两点 l运运送送层层 UDPUDP 用用户户数数据据报报与与网网际际层层IPIP数数据据报报有有很很大大区区别别。IPIP 数数据据报报要要通通过过互互连连网网中中许许多多路路由由器器存存储储

9、转转发发,但但 UDPUDP 用用户户数数据据报报是是在在运运送送层层端端到到端端抽抽象象逻逻辑辑信信道中传送道中传送lTCPTCP 报报文文段段是是在在运运送送层层抽抽象象端端到到端端逻逻辑辑信信道道中中传传送送,这这种种信信道道是是可可靠靠全全双双工工信信道道。但但这这样样信信道道却却不不知知道道终终归归通通过过了了哪哪些些路路由由器器,而而这这些些路路由由器器也也主主线线不不知知道上面运送层是否建立了道上面运送层是否建立了 TCP TCP 连接连接Back第10页第10页5.1.3 5.1.3 运送层端口运送层端口 l运行在计算机中进程是用进程标识符来标志。l运行在应用层各种应用进程却不

10、应该让计算机操作系统指派它进程标识符。这是因为在因特网上使用计算机操作系统种类很多,而不同操作系统又使用不同格式进程标识符l为了使运行不同操作系统计算机应用进程能够相互通信,就必须用统一方法对 TCP/IP 体系应用进程进行标志 第11页第11页需要处理问题需要处理问题 l由于进程创建和撤消都是动态,发送方几乎无法辨由于进程创建和撤消都是动态,发送方几乎无法辨认对方机器上进程认对方机器上进程l有时我们会变更接受报文进程,但并不需要告知所有时我们会变更接受报文进程,但并不需要告知所有发送方有发送方l我们往往需要利用目的我们往往需要利用目的主机提供功效主机提供功效来辨认终点,来辨认终点,而而不需要

11、知道不需要知道实现这个功效进程实现这个功效进程第12页第12页端标语端标语(protocol port number)(protocol port number)l处理这个问题办法:在运送层使用处理这个问题办法:在运送层使用协议端标语协议端标语(protocol port number)(protocol port number),或通常简称为,或通常简称为端口端口(port)(port)l即使通信终点是应用进程,但我们能够把端口想象即使通信终点是应用进程,但我们能够把端口想象是通信终点,由于我们是通信终点,由于我们只要把要传送报文交到目的只要把要传送报文交到目的主机某一个适当目的端口,剩余工

12、作主机某一个适当目的端口,剩余工作(即最后交付即最后交付目的进程目的进程)就由就由 TCP TCP 来完毕来完毕注意:注意:l在协议栈层间抽象协议端口是在协议栈层间抽象协议端口是软件端口软件端口l路由器或互换机上端口是路由器或互换机上端口是硬件端口硬件端口第13页第13页TCP/IP TCP/IP 端口端口 l端口用一个端口用一个 16 16 位位端标语进行标志端标语进行标志l端标语只含有端标语只含有当地当地意义意义三类端口三类端口l熟知端口:熟知端口:数值普通为数值普通为 01023 01023l登记端标语登记端标语:数值为:数值为102449151102449151,为没有熟知端,为没有熟

13、知端标语应用程序使用。使用这个范围端标语必须在标语应用程序使用。使用这个范围端标语必须在 IANA IANA 登记,以预防重复登记,以预防重复l客户端标语客户端标语/短暂端标语短暂端标语:数值为:数值为49152655354915265535,留,留给客户进程选择暂时使用给客户进程选择暂时使用Back第14页第14页5.2.1 UDP 5.2.1 UDP 概述概述UDP UDP 主要特点主要特点1.UDP UDP 是是无连接无连接,即发送数据之前不需要建立连接,即发送数据之前不需要建立连接2.UDP UDP 使使用尽最大努力交付用尽最大努力交付,即不确保可靠交付,同,即不确保可靠交付,同时也不

14、使用拥塞控制时也不使用拥塞控制3.UDP UDP 是是面向报文面向报文4.UDP UDP 没有没有拥塞控制拥塞控制,很适合多媒体通信要求,很适合多媒体通信要求 5.UDP UDP 支持一对一、一对多、多对一和多对多交互通支持一对一、一对多、多对一和多对多交互通信信6.UDP UDP 首部开销小首部开销小,只有,只有 8 8 个字节个字节第15页第15页面向报文面向报文 UDP UDPl发送方发送方 UDP UDP 相应用程序交下来报文,在添加首部相应用程序交下来报文,在添加首部后就向下交付后就向下交付 IP IP 层。层。UDP UDP 相应用层交下来报文,相应用层交下来报文,既不合并,也不拆

15、分既不合并,也不拆分,但保留这些报文边界,但保留这些报文边界l应用层交给应用层交给 UDP UDP 多长报文,多长报文,UDP UDP 就照样发送,即就照样发送,即一次发送一个报文一次发送一个报文l接受方接受方 UDP UDP 对对 IP IP 层交上来层交上来 UDP UDP 用户数据报,在用户数据报,在清除首部后就原封不动地交付上层应用进程,清除首部后就原封不动地交付上层应用进程,一次一次交付一个完整报文交付一个完整报文l应用程序应用程序必须选择必须选择适当大小报文适当大小报文第16页第16页UDP UDP 是面向报文是面向报文 IP 数据报数据部分IP 首部IP 层UDP 首部UDP 用

16、户数据报数据部分运送层应用层报文应用层Back第17页第17页5.2.2 UDP 5.2.2 UDP 首部格式首部格式 伪首部源端口目端口长 度检查和数 据首 部IP 数据报122222字节发送在前数 据首 部UDP 用户数据报第18页第18页UDP UDP 基于端口分用基于端口分用 IP 层UDP 数据报到达端口 2端口 3端口 1UDP 分用第19页第19页UDP UDP 校验和伪首部校验和伪首部UDP长度源 IP 地址目 IP 地址017字节44112伪首部源端口目端口长 度检查和数 据首 部IP 数据报122222字节发送在前数 据首 部UDP 用户数据报第20页第20页计算计算 UD

17、P UDP 检查和例子检查和例子153.19.8.104171.3.14.1112 字节伪首部8 字节UDP 首部7 字节数据填充全 0 17 15 1087 13 15 全 0数据 数据 数据 数据数据 数据 数据 全 010011001 00010011 153.1900001000 01101000 8.10410101011 00000011 171.300001110 00001011 14.1100000000 00010001 0 和和 1700000000 00001111 1500000100 00111111 108700000000 00001101 1300000000

18、 00001111 1500000000 00000000 0(0(检查和检查和)01010100 01000101 数据数据01010011 01010100 数据数据01001001 01001110 数据数据01000111 00000000 数据和数据和 0(0(填充填充)10010110 11101101 求和得出结果求和得出结果01101001 00010010 检查和检查和 按二进制反码运算求和将得出结果求反码Back第21页第21页5.3.1 TCP 5.3.1 TCP 最主要特点最主要特点 lTCP TCP 是是面向连接面向连接运送层协议运送层协议l每一条每一条 TCP TC

19、P 连接连接只能有两个端点只能有两个端点(endpoint)(endpoint),每,每一条一条 TCP TCP 连接只能是连接只能是点对点点对点(一对一一对一)lTCP TCP 提供提供可靠交付可靠交付服务服务l TCP TCP 提供提供全双工全双工通信通信l面向字节流面向字节流第22页第22页TCP TCP 面向流概念面向流概念 TCP7 68H发送 TCP 报文段发送方接受方把字节写入发送缓存从接受缓存读取字节应用进程应用进程1230181716151419202145131211H109 H加上 TCP 首部构成 TCP 报文段TCP字节流字节流H表示 TCP 报文段首部x表示序号为

20、x 数据字节TCP 连接Back第23页第23页5.3.2 TCP 5.3.2 TCP 连接连接 lTCP TCP 把连接作为最基本抽象把连接作为最基本抽象l每一条每一条 TCP TCP 连接有两个端点连接有两个端点lTCP TCP 连接端点不是主机,不是主机连接端点不是主机,不是主机IP IP 地址,不是地址,不是应用进程,也不是运送层协议端口。应用进程,也不是运送层协议端口。TCP TCP 连接端连接端点叫做点叫做套接字套接字(socket)(socket)或或插口插口l端标语拼接到端标语拼接到(contatenated with)IP(contatenated with)IP 地址地址即

21、构成即构成了了套接字套接字第24页第24页套接字套接字(socket)(socket)套接字 socket=(IP地址:端标语)(5-1)l每一条每一条 TCP TCP 连接唯一地被通信两端两个端点连接唯一地被通信两端两个端点(即即两个套接字两个套接字)所拟定所拟定。即:。即:TCP 连接:=socket1,socket2 =(IP1:port1),(IP2:port2)(5-2)Back第25页第25页5.4.1 5.4.1 停止等待协议停止等待协议(停停-等协议等协议)(a)无差错情况A发送 M1确认 M1B发送 M2发送 M3确认 M2确认 M3ttA发送 M1B超时重传 M1发送 M2

22、确认 M1丢弃有差错报文(b)超时重传tt第26页第26页请注意请注意l在发送完一个分组后,必须在发送完一个分组后,必须暂时保留暂时保留已发送分组已发送分组副本副本l分组分组和和确认分组确认分组都必须进行都必须进行编号编号l超时计时器超时计时器重传时间重传时间应当比数据在分组传播应当比数据在分组传播平均平均往返时间更长一些往返时间更长一些第27页第27页确认丢失和确认迟到确认丢失和确认迟到 A发送 M1B超时重传 M1发送 M2丢弃重复 M1重传确认 M1(a)确认丢失确认 M1ttA发送 M1B超时重传 M1发送 M2丢弃重复 M1重传确认M1(b)确认迟到确认 M1收下迟到确认但什么也不做

23、tt第28页第28页信道利用率信道利用率 U U l停止等待协议长处是简朴,但缺点是信道利用率停止等待协议长处是简朴,但缺点是信道利用率太低太低TDRTTATD+RTT+TAB分组确认tt分组确认(5-3)第29页第29页流水线传播流水线传播 l发送方可发送方可连续发送连续发送多个分组,不必每发完一个分组多个分组,不必每发完一个分组就停止下来等待对方确实认就停止下来等待对方确实认l由于信道上始终有数据不间断地传送,这种传播方由于信道上始终有数据不间断地传送,这种传播方式可取得很高信道利用率式可取得很高信道利用率B分组ttAACKBack第30页第30页5.4.2 5.4.2 连续连续 ARQ

24、ARQ 协议协议 123456789101112(a)发送方维持发送窗口(发送窗口是 5)发送窗口(b)收到一个确认后发送窗口向前滑动向前123456789101112发送窗口第31页第31页累积确认累积确认 l接受方普通采用接受方普通采用累积确认累积确认方式。即不必对收到分组方式。即不必对收到分组逐一发送确认,而是对按序到达最后一个分组发送逐一发送确认,而是对按序到达最后一个分组发送确认,表示:确认,表示:到这个分组为止所有分组都已正确收到这个分组为止所有分组都已正确收到了到了l长处是:容易实现,即使确认丢失也不必重传确认长处是:容易实现,即使确认丢失也不必重传确认l缺点是:不能向发送方反应

25、出接受方已经正确收到缺点是:不能向发送方反应出接受方已经正确收到所有分组信息所有分组信息第32页第32页Go-back-N(Go-back-N(回退回退 N)N)l假如发送方发送了前假如发送方发送了前 5 5 个分组,而中间第个分组,而中间第 3 3 个分组个分组丢失了。这时接受方只能对前两个分组发出确认。丢失了。这时接受方只能对前两个分组发出确认。发送方无法知道后面三个分组下落,而只好把后面发送方无法知道后面三个分组下落,而只好把后面三个分组都再重传一次三个分组都再重传一次l这就叫做这就叫做 Go-back-N(Go-back-N(回退回退 N)N),表示需要再退回来,表示需要再退回来重传已

26、发送过重传已发送过 N N 个分组个分组l可见当通信线路质量不好时,连续可见当通信线路质量不好时,连续 ARQ ARQ 协议会带协议会带来负面影响来负面影响第33页第33页TCP TCP 可靠通信详细实现可靠通信详细实现 lTCP TCP 连接每一端都必须设有两个窗口:连接每一端都必须设有两个窗口:发送窗口发送窗口和和接受窗口接受窗口lTCP TCP 可靠传播机制用可靠传播机制用字节序号字节序号进行控制。进行控制。TCP TCP 所所有确实认都是有确实认都是基于序号基于序号而不是基于报文段而不是基于报文段lTCP TCP 两端四个窗口经常处于两端四个窗口经常处于动态改变动态改变之中之中lTCP

27、TCP连接往返时间连接往返时间 RTT RTT 也也不是固定不变不是固定不变。需要使。需要使用特定算法估算较为合理重传时间用特定算法估算较为合理重传时间 Back第34页第34页5.5 TCP 5.5 TCP 报文段首部格式报文段首部格式 TCP首部20 字节固定首部目 端 口数据偏移检 验 和选 项(长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FIN32 位SYNRSTPSHACKURG位 0 8 16 24 31填 充TCP 数据部分TCP 首部TCP 报文段IP 数据部分IP 首部发送方向第35页第35页TCPTCP首部各字段含义首部各字段含义TCP首部20字节固

28、定首部目 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充第36页第36页选项字段选项字段l lTCPTCP最初只要求了一个选项,即最初只要求了一个选项,即最大报文段长度最大报文段长度MSS MSS(Maximum Segment Size)(Maximum Segment Size)。MSSMSS告诉对方告诉对方TCPTCP:我缓存所能我缓存所能接受报文段数据字段最大长度是接受报文段数据字段最大长度是MSSMSS个字节个字节。MSS MSS 是指数是指数据字段最大长度据

29、字段最大长度(数据字段加上数据字段加上 TCP TCP 首部才等于整个首部才等于整个 TCP TCP 报报文段文段)l l窗口扩大选项窗口扩大选项:占:占3 3字节,其中有一个字节表示移位值字节,其中有一个字节表示移位值 S S。新窗口值等于新窗口值等于TCP TCP 首部中窗口位数增大到首部中窗口位数增大到(16+S)(16+S),相称于,相称于把窗口值向左移动把窗口值向左移动 S S 位后取得实际窗口大小位后取得实际窗口大小l l时间戳选项时间戳选项:占:占1010字节,其中最主要域是字节,其中最主要域是时间戳值字段时间戳值字段(4(4 字节字节)和和时间戳回送回答字段时间戳回送回答字段(

30、4(4 字节字节)l l选择确认选项选择确认选项:在后面:在后面5.6.35.6.3节简介节简介Back第37页第37页5.6.1 5.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 56B 盼望盼望收到序号收到序号窗口前沿窗口后沿前移前移收缩收缩l依据 B 给出窗口值,A 结构出自己发送窗口 lTCP 原则

31、强烈不赞成发送窗口前沿向后收缩 第38页第38页发送端发送端 A A 和接受端和接受端 B B 窗口窗口不允许发送已发送并收到确认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已发送但未收到确认56P1P2P3不允许接受已发送确认并交付主机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 5

32、4 55 56未按序收到可用窗口发送了11个字节数据P3 P1=A 发送窗口(又称为告知窗口)P2 P1=已发送但尚未收到确认字节数P3 P2=允许发送但尚未发送字节数(又称为可用窗口)第39页第39页 A A 和和 B B 窗口向前滑动窗口向前滑动允许发送但尚未发送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已发送并收到确认不允许发送已发送但未收到确认56P1P2P3允许接受B 接受窗口向前滑动26 27 28 29 30 31 32 33

33、 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55已发送确认并交付主机不允许接受56先存下,等待缺乏数据到达未按序收到第40页第40页 A A 继续发送直到窗口满继续发送直到窗口满不允许发送已发送并收到确认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已发送但未收到确认56P1P2P3A窗口已满,但还没有再收到B确认,必须停止发送,此时P2和P3重叠如果

34、长时间内均未收到确认,发生超时,A要重传这些数据第41页第41页发送缓存发送缓存 最后被确认字节发送应用程序发送缓存最后发送字节发送窗口已发送已发送TCP序号增大l发送缓存用来暂时存储:发送缓存用来暂时存储:发送应用程序传送给发送方发送应用程序传送给发送方 TCP TCP 准备发送数据准备发送数据TCP TCP 已发送出但尚未收到确认数据已发送出但尚未收到确认数据最后写入字节第42页第42页接受缓存接受缓存接受应用程序已收到已收到接受窗口TCP接受缓存下一个读取字节序号增大下一个盼望收到字节(确认号)l接受缓存用来暂时存储:接受缓存用来暂时存储:按序到达、但尚未被接受应用程序读取数据按序到达、

35、但尚未被接受应用程序读取数据不按序到达数据不按序到达数据第43页第43页需要强调三点需要强调三点lA A 发送窗口并不总是和发送窗口并不总是和 B B 接受窗口同样大接受窗口同样大(由于有由于有一定期间滞后一定期间滞后)lTCP TCP 原则没有要求对不按序到达数据应如何处理。原则没有要求对不按序到达数据应如何处理。通常是先暂时存储在接受窗口中,等到字节流中所通常是先暂时存储在接受窗口中,等到字节流中所缺乏字节收到后,再按序交付上层应用进程缺乏字节收到后,再按序交付上层应用进程lTCP TCP 要求接受方必须有要求接受方必须有累积确认累积确认功效,这样能够减功效,这样能够减小传播开销小传播开销

36、Back第44页第44页5.6.2 5.6.2 超时重传时间选择超时重传时间选择l由于由于 TCP TCP 下层是一个互联网环境,下层是一个互联网环境,IP IP 数据报所选数据报所选择路由改变很大,因而运送层择路由改变很大,因而运送层往返时延方差也很往返时延方差也很大大时间数据链路层运送层T1T2T3往返时间概率分布第45页第45页l lTCP TCP 保留了保留了 RTT RTT 一个加权平均往返时间一个加权平均往返时间 RTT RTTS S(又称为平滑又称为平滑往返时间往返时间)l l第一次测量到第一次测量到 RTT RTT 样本时,样本时,RTTRTTS S 值就取为所测量到值就取为所

37、测量到 RTT RTT 样本值。以后每测量到一个新样本值。以后每测量到一个新 RTT RTT 样本,就按下式重新计样本,就按下式重新计算一次算一次 RTT RTTS S:新新 RTT RTTS S (1(1)(旧旧RTTRTTS S)(新新RTTRTT样本样本)(5-4)(5-4)式中,式中,0 0 1 1。若。若 很靠近于零,表示很靠近于零,表示 RTT RTT 值更新较慢。值更新较慢。若选择若选择 靠近于靠近于1 1,则表示,则表示RTTRTT值更新较快值更新较快l lRFC 2988 RFC 2988 推荐推荐 值为值为 1/8 1/8,即,即 0.125 0.125加权平均往返时间加权

38、平均往返时间第46页第46页l lRTO RTO 应略不小于上面得出加权平均往返时间应略不小于上面得出加权平均往返时间 RTT RTTS Sl lRFC 2988 RFC 2988 提议使用下式计算提议使用下式计算 RTO RTO:RTO RTO RTT RTTS S+4 +4 RTT RTTD D (5-5)(5-5)l lRTTRTTD D 是是 RTT RTT 偏差加权平均值偏差加权平均值l lRFC 2988 RFC 2988 提议这样计算提议这样计算 RTT RTTD D。第一次测量时,。第一次测量时,RTTRTTD D 值取值取为测量到为测量到 RTT RTT 样本值二分之一。在以

39、后测量中,则使用下样本值二分之一。在以后测量中,则使用下式计算加权平均式计算加权平均 RTT RTTD D:新新RTTRTTD D=(1=(1)(旧旧RTTRTTD D)+)+RTTRTTS S 新新RTTRTT样本样本 (5-6)(5-6)l l 是个小于是个小于 1 1 系数,其推荐值是系数,其推荐值是 1/4 1/4,即,即 0.25 0.25超时重传时间超时重传时间 RTO RTO(RetransmissionTime-Out)(RetransmissionTime-Out)第47页第47页往返时间 RTT?往返时间测量相称复杂往返时间测量相称复杂 lTCP TCP 在时间在时间1 1

40、发送报文段,但没有收到确认。在时发送报文段,但没有收到确认。在时间间2 2重传报文段后,收到了确认报文段重传报文段后,收到了确认报文段 ACK ACKl如何鉴定此确认报文段是对本来报文段如何鉴定此确认报文段是对本来报文段 1 1 确实认,确实认,还是对重传报文段还是对重传报文段 2 2 确实认?确实认?发送一个TCP 报文段超时重传TCP 报文段收到 ACK时间12往返时间 RTT?是对哪一个报文段确认?第48页第48页Karn Karn 算法算法 l在计算平均往返时间在计算平均往返时间 RTT RTT 时,只要报文段重传了,时,只要报文段重传了,就不采用其往返时间样本就不采用其往返时间样本修

41、正修正 Karn Karn 算法算法l报文段每重传一次,就把报文段每重传一次,就把 RTO RTO 增大一些:增大一些:新新 RTO RTO (旧旧 RTO)RTO)l系数系数 典型值是典型值是 2 2 l当不再发生报文段重传时,才依据报文段往返时延当不再发生报文段重传时,才依据报文段往返时延更新平均往返时延更新平均往返时延 RTT RTT 和超时重传时间和超时重传时间 RTO RTO 数值数值Back第49页第49页5.6.3 5.6.3 选择确认选择确认SACKSACK(Selective ACK)(Selective ACK)l接受方收到了和前面字节流不连续两个字节块接受方收到了和前面字

42、节流不连续两个字节块l假如这些字节序号都在接受窗口之内,那么接受方假如这些字节序号都在接受窗口之内,那么接受方就先收下这些数据,但要把这些信息准确地告诉发就先收下这些数据,但要把这些信息准确地告诉发送方,使发送方不要再重复发送这些已收到数据送方,使发送方不要再重复发送这些已收到数据第50页第50页接受到字节流序号不连续接受到字节流序号不连续 1 1000 1501 3000 3501 4500确认号=1001L1=1501L2=3501R1=3001R1=4501连续字节流第一个字节块第二个字节块l l和前后字节不连续每一个字节块都有和前后字节不连续每一个字节块都有左边界左边界和和右边界,右边

43、界,但但TCPTCP首部没有哪个字段能提供这些边界信息首部没有哪个字段能提供这些边界信息l l要使用选择确认,要使用选择确认,在建立在建立 TCP TCP 连接时连接时,就要在,就要在 TCP TCP 首部选项首部选项中加上中加上“允许允许 SACK SACK”选项选项l l并且本来首部中并且本来首部中“确认号字段确认号字段”使用办法仍然不变,但在使用办法仍然不变,但在首首部中都增长部中都增长SACKSACK选项选项l l在选项中最多只能指明在选项中最多只能指明 4 4 个字节块边界信息个字节块边界信息Back第51页第51页5.7.1 5.7.1 利用滑动窗口实现流量控制利用滑动窗口实现流量

44、控制l l流量控制流量控制(flow control)(flow control)就是让发送方发送速率不要太快,既就是让发送方发送速率不要太快,既要让接受方来得及接受,也不要使网络发生拥塞要让接受方来得及接受,也不要使网络发生拥塞l l在连接建立时,在连接建立时,B B告知告知A A接受窗口接受窗口 rwnd=400(rwnd=400(字节字节)seq=1,DATAseq=1,DATAseq=201,DATAseq=201,DATAseq=401,DATAseq=401,DATAseq=301,DATAseq=301,DATAseq=101,DATAseq=101,DATAseq=201,DA

45、TAseq=201,DATAseq=501,DATAseq=501,DATAACK=1,ack=201,rwnd=300ACK=1,ack=201,rwnd=300ACK=1,ack=601,rwnd=0ACK=1,ack=601,rwnd=0ACK=1,ack=501,ACK=1,ack=501,rwndrwnd=100=100A AB B允许允许 A A 发送序号发送序号 201 201 至至 500 500 共共 300 300 字节字节A A 发送了序号发送了序号 101 101 至至 200 200,还能发送,还能发送 200 200 字节字节A A 发送了序号发送了序号 301 3

46、01 至至 400 400,还能再发送,还能再发送 100 100 字节新数据字节新数据A A 发送了序号发送了序号 1 1 至至 100 100,还能发送,还能发送 300 300 字节字节A A 发送了序号发送了序号 401 401 至至 500 500,不能再发送新数据了,不能再发送新数据了A A 超时重传旧数据,但不能发送新数据超时重传旧数据,但不能发送新数据允许允许 A A 发送序号发送序号 501 501 至至 600 600 共共 100 100 字节字节A A 发送了序号发送了序号 501 501 至至 600 600,不能再发送了,不能再发送了不允许不允许 A A 再发送再发

47、送(到序号到序号 600 600 为止数据都收到了为止数据都收到了)丢失!第52页第52页连续计时器连续计时器(persistence timer)(persistence timer)lTCP TCP 为每一个连接设有一个为每一个连接设有一个连续计时器连续计时器l只要只要 TCP TCP 连接一方收到对方连接一方收到对方零窗口零窗口告知,就启动告知,就启动连续计时器连续计时器l若连续计时器设置时间到期,就发送一个若连续计时器设置时间到期,就发送一个零窗口零窗口探测报文段探测报文段(仅携带仅携带 1 1 字节数据字节数据),而对方就在确认,而对方就在确认这个探测报文段时给出了现在窗口值这个探测

48、报文段时给出了现在窗口值l若窗口仍然是零,则收到这个报文段一方就重新若窗口仍然是零,则收到这个报文段一方就重新设置连续计时器设置连续计时器l若窗口不是零,则死锁僵局就能够打破了若窗口不是零,则死锁僵局就能够打破了 Back第53页第53页5.7.2 5.7.2 必须考虑传播效率必须考虑传播效率l能够用不同机制来控制 TCP 报文段发送时机l第一个机制是 TCP 维持一个变量,它等于最大报文段长度 MSS。只要缓存中存放数据达到 MSS 字节时,就组装成一个 TCP 报文段发送出去l第二种机制是由发送方应用进程指明要求发送报文段,即 TCP 支持推送(push)操作l第三种机制是发送方一个计时器

49、期限到了,这时就把当前已经有缓存数据装入报文段(但长度不能超出 MSS)发送出去lNagle算法和Clark算法Back第54页第54页5.8.1 5.8.1 拥塞控制普通原理拥塞控制普通原理 l在某段时间,若对网络中某资源需求超出了该资源在某段时间,若对网络中某资源需求超出了该资源所能提供可用部分,网络性能就要变坏所能提供可用部分,网络性能就要变坏产生产生拥拥塞塞(congestion)(congestion)l出现资源拥塞条件出现资源拥塞条件 对资源需求总和对资源需求总和 可用资源可用资源 (5-7)(5-7)l若网络中有许多资源同时产生拥塞,网络性能就要若网络中有许多资源同时产生拥塞,网

50、络性能就要明显变坏,整个网络吞吐量将随输入负荷增大而下明显变坏,整个网络吞吐量将随输入负荷增大而下降降第55页第55页拥塞控制与流量控制关系拥塞控制与流量控制关系 l拥塞控制:拥塞控制:预防过多数据注入到网络中,使得网络预防过多数据注入到网络中,使得网络中过多路由器和链路不产生过载中过多路由器和链路不产生过载拥塞控制所要做都有一个前提,就是拥塞控制所要做都有一个前提,就是网络能够承受网络能够承受既有既有网络负荷网络负荷拥塞控制是一个拥塞控制是一个全局性全局性过程,涉及到所有主机、所有路过程,涉及到所有主机、所有路由器,以及与减少网络传播性能相关所有原因由器,以及与减少网络传播性能相关所有原因l

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服