计算机网络-谢希仁第六版第五讲传输层zm2014下_第1页
计算机网络-谢希仁第六版第五讲传输层zm2014下_第2页
计算机网络-谢希仁第六版第五讲传输层zm2014下_第3页
计算机网络-谢希仁第六版第五讲传输层zm2014下_第4页
计算机网络-谢希仁第六版第五讲传输层zm2014下_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、12本讲要求本讲要求1 理解传输层解决的基本问题理解传输层解决的基本问题2 理解数据源和目的地的标识问题理解数据源和目的地的标识问题3 理解理解UDP协议的基本功能、报文格式协议的基本功能、报文格式4 理解理解TCP协议的报文格式协议的报文格式5 掌握掌握TCP协议的连接建立、关闭过程协议的连接建立、关闭过程3传输层为应用提供端到端的控制传输层为应用提供端到端的控制比特流比特流物理层物理层数据链路层数据链路层网络层网络层传输层传输层应用层应用层比特流比特流物理层物理层数据链路层数据链路层网络层网络层物理层物理层数据链路层数据链路层网络层网络层传输层传输层应用层应用层主机主机A主机主机B点到点点

2、到点点到点点到点端到端端到端 “点到点点到点”到到“端到端端到端”是一次质的飞跃是一次质的飞跃 4网络层没有解决的问题网络层没有解决的问题 端到端的传输服务标识 网络层仅有网络层地址,还需要进程标识 端到端的服务质量问题 网络层是一种尽最大努力交付Best-effort 服务, 不保证可靠性无法确定数据到达目的地的时间无法确定数据到达目的地的状态 丢失 重复 乱序 无法解决!5传输层基本问题分析(脉传输层基本问题分析(脉 络)络) 通信源和目的地标识问题 数据从何而来?奔向何方?即数据传输的最初原始地和最终目的地如何标识? 服务质量问题 传输层如何实现可靠性?拥塞控制机制?流量控制机制?其他相

3、关问题? 用户数据报协议UDP 传输控制协议TCP进程之间的通信进程之间的通信 两个主机进行通信实际上就是两个主机中的 应用进程互相通信。 应用进程之间的通信又称为端到端的通信。 “传输层提供应用进程间的逻辑通信”。 “逻辑通信”指:传输层之间的通信好像是沿 水平方向传送数据。但事实上这两个传输层 之间并没有一条水平方向的物理连接。计算机网络计算机网络5. 传输层:传输层:进程标识进程标识 7传输层提供应用进程间的逻辑通信传输层提供应用进程间的逻辑通信54321传输层提供应用进程间的逻辑通信应用进程应用进程IP 层AP1AP2AP4端口端口54321AP3主机 A主机 B路由器 1路由器 2A

4、P1LAN2WANAP2AP3AP4LAN1IP 协议- 提供主机之间的逻辑通信传输层协议- 提供进程之间的逻辑通信计算机网络计算机网络5. 传输层:传输层:进程标识进程标识 8进程标识进程标识端口端口port 端口:是一种抽象的软件结构 (包括一些数据结构和IO缓冲区) 用于标识应用层的进程 UDP和TCP都使用端口与上层的应用进程进行通信计算机网络计算机网络5. 传输层:传输层:进程标识进程标识 9端口号端口号 16 bit (065535) TCP和UDP各自的端口号相互独立 端口号只具有本地意义 端口号只是为了标志本计算机应用层中的各进程 在因特网中不同计算机的相同端口号是没有联系的计

5、算机网络计算机网络5. 传输层:传输层:进程标识进程标识 10端口号的分配端口号的分配 两种基本分配方式 全局分配:集中式统一指派 本地分配: 动态指派 服务器端使用的端口号049151 全局分配或动态指派 客户端使用的端口号4915265535 动态指派或OS随机分配计算机网络计算机网络5. 传输层:传输层:进程标识进程标识 熟知端口号熟知端口号TCPPort NumbersFTPTransportLayerTELNETDNSSNMPTFTPHTTPUDPApplicationLayer2123805369161RIP520查阅:你常用的网络应用的端口号?端口扫描?计算机网络计算机网络5.

6、传输层:传输层:进程标识进程标识 12TCP/IP通信五要素通信五要素 目的目的IP地址地址 要与之进行数据通信的目的主机所在位置 目的端口目的端口 定位远程主机进行数据交换的进程 源源IP地址地址 数据的发送方,通过这个要素让远程主机系统知道对等通信的主机 源端口号源端口号 通过这个来定位本地处理通信数据的进程。 协议协议 定位具体的通信协议计算机网络计算机网络5. 传输层:传输层:进程标识进程标识 13用户数据报协议用户数据报协议UDP UDP特点 无连接 UDP不使用拥塞控制,不保证可靠交付 (除了提供校验和机制) 面向报文(传输基本单位:用户数据报) 传输效率较高 适用于传输量比较少的

7、情况 支持一对一、一对多、多对一、多对多通信 UDP适适合要求简洁、快速、合要求简洁、快速、可靠性要求不高的应用可靠性要求不高的应用 UDP作用 相对于IP协议,唯一增加的能力是提供协议 端口,以保证进行通信计算机网络计算机网络5. 传输层:传输层:UDP14UDP 报文封装报文封装 计算机网络计算机网络5. 传输层:传输层:UDP IP首部首部 IP数据区数据区 帧首部帧首部 帧数据区帧数据区 UDP首部首部 UDP数据区数据区 应用层报文应用层报文 应用层传输层网络层数据链路层15源端口目的端口长 度检验和数 据首 部IP 数据报2222字节发送在前数 据首 部UDP 用户数据报 UDP

8、由两部分组成:数据字段和首部字段 首部字段8 个字节,由 4 个字段组成UDP 首部格式首部格式 计算机网络计算机网络5. 传输层:传输层:UDP16伪首部源端口目的端口长 度检验和数 据首 部UDP长度源 IP 地址目的 IP 地址017IP 数据报字节44112122222字节发送在前数 据首 部UDP 用户数据报UDP校验和计算校验和计算u计算范围:计算范围:伪首部伪首部+UDP首部首部+UDP数据数据u计算方法:与计算方法:与IP首部校验和的计算方法相同首部校验和的计算方法相同计算机网络计算机网络5. 传输层:传输层:UDP17UDP伪首部伪首部 引入伪首部目的是验证数据报是否已正确到

9、达终点引入伪首部目的是验证数据报是否已正确到达终点 - 不仅检查端口,还检查了不仅检查端口,还检查了IP地址地址 伪首部既不向下传送也不向上递交伪首部既不向下传送也不向上递交 - 仅仅为了计算校验和仅仅为了计算校验和 伪首部的引入破坏了分层原则,是根据需要做的折中伪首部的引入破坏了分层原则,是根据需要做的折中计算机网络计算机网络5. 传输层:传输层:UDP18常见的使用常见的使用UDP的服务的服务 DNS:域名解析服务, 使用53端口 SNMP:简单网络管理协议,使用161端口 Oicq:Oicq的程序既接受服务,又提供服务 oicq服务器使用8000端口,侦听是否有信息到来客户端使用4000

10、端口,向外发送信息 TFTP:快速文件传输协议,端口号69 RPC:远程过程调用,端口号111 计算机网络计算机网络5. 传输层:传输层:UDP19 TCP的特点的特点 面向连接面向连接 每一条连接只能有两个端点每一条连接只能有两个端点endpoint 保证可靠交付保证可靠交付 提供全双工通信提供全双工通信 传送数据单元:报文段传送数据单元:报文段TCP segment 面向字节流面向字节流TCP协议协议-可靠的可靠的计算机网络计算机网络5. 传输层:传输层:TCP TCP是一个面向连接的、端到端的、提供可靠性服务的传输层协议20TCP的连接标识的连接标识 TCP 使用“连接”(而不仅仅是“端

11、口”)作为最基本的 抽象 如何标识一条TCP连接? 用IP地址可以吗? 用端口号可以吗? 需要IP地址和端口号共同使用 所以,端点标识!计算机网络计算机网络5. 传输层:传输层:TCP21套接字套接字(socket) TCP 连接的端点称为插口,套接字、套接口 套接字和端口、IP 地址的关系是: IP 地址3 端口号1500 3: 1500套接字(socket) 计算机网络计算机网络5. 传输层:传输层:TCP每一条tcp连接唯一的被通信两端的两个端点(套接字)所确定 TCP 连接 := socket1, socket2 = (IP1: port1),

12、(IP2: port2) 22 TCP 是面向字节流的(是面向字节流的(1)7 68H发送 TCP 报文段发送方接收方把字节写入发送缓存从接收缓存读取字节应用进程应用进程1230181716151419202145131211H109 H加上 TCP 首部构成 TCP 报文段 TCP TCP字节流字节流H 表示 TCP 报文段的首部 x 表示序号为 x 的数据字节 TCP 连接(虚连接) 计算机网络计算机网络5. 传输层:传输层:TCP23 TCP 连接是一条虚连接而不是一条真正的物理连接 TCP 对应用进程一次把多长的报文发送到TCP 的缓存中是不关心的。 TCP 根据对方给出的窗口值和当前

13、网络拥塞的程度来决定一个报文段应包含多少个字节(UDP 发送的报文长度是应用进程给出的)。 TCP 可把太长的数据块划分短一些再传送。TCP 也可等待积累有足够多的字节后再构成报文段发送出去 TCP 是面向字节流的(是面向字节流的(2)计算机网络计算机网络5. 传输层:传输层:TCP24n 报文段格式报文段格式n 连接建立与关闭连接建立与关闭:三次握手:三次握手+ +四次握手四次握手n 可靠性机制可靠性机制 防丢失:确认与重传防丢失:确认与重传 防重复:报文段序号防重复:报文段序号n 流量控制流量控制:滑动窗口机制:滑动窗口机制n 拥塞控制拥塞控制:加速递减与慢启动技术:加速递减与慢启动技术T

14、CP实现可靠传输基本问题实现可靠传输基本问题要实现可靠的数据流传输服务,要实现可靠的数据流传输服务,必须解决哪几个问题必须解决哪几个问题?计算机网络计算机网络5. 传输层:传输层:TCP25TCP报文段的首部报文段的首部TCP 数据部分数据部分TCP 首部首部TCP 报文段报文段TCP首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FIN32 bitSYNRSTPSHACKURG比特 0 8 16 24 31填 充IP 数据部分IP 首部发送在前固定首部20字节计算机网络计算机网络5. 传输层:传输层:TCP报文段报文段26TC

15、P首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充源端口和目的端口字段各占 2 字节。端口是传输层与应用层的服务接口。传输层的复用和分用功能都要通过端口才能实现。 27TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充序号字段占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一

16、个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。 28TCP首部20字节固定首部目 的 端 口数据 偏移 检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充确认号字段占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。 若确认号=N, 则到序号N-1为止的所有数据都已正确收到!29TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG

17、比特 0 8 16 24 31填 充数据偏移(首部长度)占 4 bit,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位不是字节而是 32 bit 字(4 字节为计算单位)首部长度范围:20-60字节30TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充保留字段占 6 bit,保留为今后使用,但目前应置为 0 31TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源

18、 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充紧急比特 URG 当 URG 1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。 32TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充确认比特 ACK 只有当 ACK 1 时确认号字段才有效。当 ACK 0 时,确认号无效。 33TCP首部20字节固定首部目 的 端 口

19、数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充推送比特 PSH (PuSH) 接收 方TCP 收到推送比特置 1 的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。 34TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充复位比特 RST (ReSeT) 当 RST 1 时,表明 TCP 连接

20、中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。 35TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充同步比特 SYN 同步比特 SYN 置为 1,就表示这是一个连接请求或连接接受报文 36TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充终止比特

21、 FIN 用来释放一个连接。当FIN 1 时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接 37TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充窗口字段 占 2 字节。窗口字段用来控制对方发送的数据量,单位为字节。窗口值告诉对方:我现在能接收多少数据!窗口值经常变化!38TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTP

22、SHACKURG比特 0 8 16 24 31填 充检验和 占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。伪首部TCP长度源 IP 地址目的 IP 地址06441121239TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充紧急指针字段 占 16 bit。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。即使窗口为0,也可发送紧急数据! 40TCP首部2

23、0字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充选项字段 长度可变。第一版TCP只规定了一种选项,即最大报文段长度 MSS;第二版TCP增加了窗口扩大因子、时间戳等选项 MSS 是 TCP 报文段中的数据字段数据字段的最大长度 数据字段加上 TCP 首部才等于整个的 TCP 报文段 窗口和窗口和MSS的区别:的区别: MSS是一个报文的最大长度是一个报文的最大长度 而窗口则是所能发送的所有数据总数。它可以是多而窗口则是所能发送的所有数据总数。它可以

24、是多个报文段,但每个报文段必须满足个报文段,但每个报文段必须满足MSS的限制,同时的限制,同时其数据总和不能超过窗口大小其数据总和不能超过窗口大小41TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充填充字段 这是为了使整个首部长度是 4 字节的整数倍。 42TCP连接管理连接管理 连接方式连接方式 C/S客户服务器方式客户服务器方式 主动发起连接建立的应主动发起连接建立的应用进程叫客户用进程叫客户 被动等待连接建立的应被动等待连接建立的

25、应用进程叫服务器用进程叫服务器 连接三个阶段连接三个阶段 建立连接建立连接 数据传输数据传输 释放连接释放连接 计算机网络计算机网络5. 传输层:传输层:TCP连接与释放连接与释放43TCP建立连接建立连接连接建立过程要解决的问题:连接建立过程要解决的问题: 要使每一方都能够确知对方的存在要使每一方都能够确知对方的存在 要允许双方协商一些参数要允许双方协商一些参数(如最大报文段长度(如最大报文段长度MSS,最大窗口大小,服务质,最大窗口大小,服务质量量Qos等)等) 对传输实体资源进行分配对传输实体资源进行分配(如缓冲区大小,连接表中的项目等)(如缓冲区大小,连接表中的项目等)计算机网络计算机

26、网络5. 传输层:传输层:TCP连接与释放连接与释放44requestconfirmindicationresponseconfirmrequesttimeoutre-requestindicationindicationresponseresponseconfirm正常连接正常连接重复连接重复连接连接的建立过程问题连接的建立过程问题 -可能出现重复连接可能出现重复连接问题:两次握手不能解决建立连接的延迟重复问题解决方法:三次握手(three-way handshake)计算机网络计算机网络5. 传输层:传输层:TCP连接与释放连接与释放45TCP连接建立过程连接建立过程三次握手三次握手SYN

27、置1, seq = x主机 BSYN置1, ACK置1, seq= y, ack= x 1ACK置1, seq = x + 1, ack= y 1被动打开主动打开确认确认主机 A连接请求计算机网络计算机网络5. 传输层:传输层:TCP连接与释放连接与释放SYN报文段占用一个序号;报文段占用一个序号;ACK报文段,如不携带数据则不占用序号;报文段,如不携带数据则不占用序号;发送数据的第一字节序号为:初始序列号发送数据的第一字节序号为:初始序列号+146TCP连接的终止连接的终止 半关闭半关闭 半关闭的概念半关闭的概念 关闭一个方向上的数据传送,而另一个方向可关闭一个方向上的数据传送,而另一个方向

28、可以传输数据以传输数据 因为一个因为一个TCP连接是全双工,每个方向都可以独立的连接是全双工,每个方向都可以独立的 传输数据,因此每个方向必须单独地进行关闭传输数据,因此每个方向必须单独地进行关闭 当一方完成它的数据发送任务后就能发送一个当一方完成它的数据发送任务后就能发送一个FIN来来 终止这个方向的连接。当一端收到一个终止这个方向的连接。当一端收到一个FIN,它必,它必须通知应用层另一端已经终止了那个方向的数据传送须通知应用层另一端已经终止了那个方向的数据传送 计算机网络计算机网络5. 传输层:传输层:TCP连接与释放连接与释放47FIN 置 1, seq = uCLOSED主动关闭数据传

29、送ESTAB-LISHEDESTAB-LISHEDAB客户服务器CLOSEDTCP 的连接释放的连接释放四次握手四次握手 数据传输结束后,通信的双方都可释放连接 A 的应用进程先向其TCP 发出连接释放报文段 A停止再发送数据,主动关闭 TCP 连接 A 把连接释放报文段首部的 FIN = 1,其序号seq = u,等待 B 的确认计算机网络计算机网络5. 传输层:传输层:TCP连接与释放连接与释放48FIN 置1, seq = uCLOSED主动关闭数据传送ESTAB-LISHEDESTAB-LISHEDAB客户服务器CLOSEDTCP 的连接释放的连接释放 B 发出确认 确认号 ack =

30、 u 1,自己的序号 seq = v B方TCP 服务器进程通知高层应用进程 从 A 到 B 这个方向的连接就释放了 TCP 连接处于半关闭状态半关闭状态。B 若发送数据,A 仍要接收ACK置1, seq = v, ack= u 1通知应用进程计算机网络计算机网络5. 传输层:传输层:TCP连接与释放连接与释放49置 1, seq = uCLOSED主动关闭数据传送ESTAB-LISHEDESTAB-LISHEDAB客户服务器CLOSEDTCP 的连接释放的连接释放 若 B 已经没有要向 A 发送的数据,其应用进程就 通知 TCP 释放连接ACK 置1, seq = v, ack= u 1通知

31、应用进程被动关闭FIN 置 1, ACK 置1, seq = w, ack= u 1数据传送计算机网络计算机网络5. 传输层:传输层:TCP连接与释放连接与释放50FIN 置 1, seq = uCLOSED主动关闭数据传送ESTAB-LISHEDESTAB-LISHEDAB客户服务器CLOSEDTCP 的连接释放的连接释放 A 收到连接释放报文段后,必须发出确认 ACK=1,确认号 ackw1,自己的序号seq=u+1ACK 置 1, seq = v, ack= u 1通知应用进程被动关闭FIN 置 1, ACK 置1, seq = w, ack= u 1数据传送ACK 置 1, seq =

32、 u + 1, ack = w 1计算机网络计算机网络5. 传输层:传输层:TCP连接与释放连接与释放51n 接收方收到数据 后向源站发确认 (ACK)报文n 发送方设置定时 器,源站在限定 时间内未收到 ACK,则重发 数据发送方数据发送方 数据接收方数据接收方 接收确认接收确认 发送报文段发送报文段 接收报文段接收报文段 发送发送ACK确认确认 接收确认接收确认 发送报文段发送报文段 接收报文段接收报文段 发送发送ACK确认确认 超时重传超时重传 确认机制确认机制 重传机制重传机制 可靠性问题可靠性问题 基本原理:确认机制、重传机制基本原理:确认机制、重传机制 停止等待协议停止等待协议 基

33、本问题:数据丢失、乱序、重复等基本问题:数据丢失、乱序、重复等计算机网络计算机网络5. 传输层:传输层:可靠性机制可靠性机制52确认问题再讨论确认问题再讨论 捎带确认捎带确认 累计确认累计确认 不设置专门的报文段反馈确认不设置专门的报文段反馈确认 对正确接收到的、对正确接收到的、连续的连续的、最高序、最高序 号的报文段进行确认号的报文段进行确认Piggybacking100, , 500, , 10001050, , 2000成功接收数据丢失成功接收确认号:确认号:10011001接收队列:缺点:无法确认所有已经接收数据,可能导致传输效率低下。计算机网络计算机网络5. 传输层:传输层:可靠性机

34、制可靠性机制53 引起重传原因:引起重传原因: 1.数据没到对方数据没到对方 2.到了,但错了,被丢弃到了,但错了,被丢弃 3.到了,也对了,到了,也对了, 但确认丢了或确认迟到但确认丢了或确认迟到重传问题再讨论重传问题再讨论 解决:解决: 1.设置超时计时器设置超时计时器 2.每发一个分组要暂时保留副本每发一个分组要暂时保留副本 3.超时时间设置(很复杂)超时时间设置(很复杂)timeoutretransmissionframe 1frame 1ACK 1lost计算机网络计算机网络5. 传输层:传输层:可靠性机制可靠性机制54超时重传定时器的设置超时重传定时器的设置RTT(Round Tr

35、ip Time):):往返时间往返时间- 报文段发出到收到确认信息间的时间段报文段发出到收到确认信息间的时间段n 方法方法 自适应重传算法自适应重传算法n Karn算法和定时器补偿算法和定时器补偿 重传定时时限重传定时时限RTO的计算方法的计算方法 计算机网络计算机网络5. 传输层:传输层:可靠性机制可靠性机制55停止等待协议的信道利用率停止等待协议的信道利用率 停止等待协议的优点:简单 缺点:信道利用率太低 ATDRTTTD + RTT + TABtt确认分组分组确认ADDTTTURTT利用率计算机网络计算机网络5. 传输层:传输层:可靠性机制可靠性机制56流水线传输流水线传输 解决:采用解

36、决:采用流水线传输(管道化技术)流水线传输(管道化技术),提高利用率,提高利用率 策略:策略:发送方可连续发送多个分组,不必每发完一个 分组就停顿下来等待对方的确认 典型协议:典型协议:连续连续ARQ协议协议 滑动窗口协议滑动窗口协议B分组ttAACK计算机网络计算机网络5. 传输层:传输层:可靠性机制可靠性机制57用管道化技术发送帧面临的新问题用管道化技术发送帧面临的新问题 问题:出错情况问题:出错情况 连续发送连续发送W个分组,其中有一帧出错或丢了,个分组,其中有一帧出错或丢了,但其后续帧被成功发送但其后续帧被成功发送 解决:解决:2种接收策略种接收策略 回退回退N帧帧 Go-back n

37、 选择性重传选择性重传计算机网络计算机网络5. 传输层:传输层:可靠性机制可靠性机制58回退回退N帧帧接收方:丢弃出错分组及其所有后续分组接收方:丢弃出错分组及其所有后续分组发送方:超时重传出错帧及其后续帧发送方:超时重传出错帧及其后续帧errordiscardacksendtimeoutreceiveresend0 1 E D D D D D D 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 2 3 4 5 6 7 8 计算机网络计算机网络5. 传输层:传输层:可靠性机制可靠性机制59选择性重传选择性重传buffertimeoutreceive0 1 2 3 4 5 6 7

38、 8 resend2 0 1 E 3 4 5 6 7 8 2 resend3 D resend4 D send9 接收方接收方: 丢弃错分组,缓存后续正确接收分组丢弃错分组,缓存后续正确接收分组发送方:只重发出错帧及后续的部分帧发送方:只重发出错帧及后续的部分帧ack 9 discard9 receive计算机网络计算机网络5. 传输层:传输层:可靠性机制可靠性机制60流量控制流量控制 滑动窗口机制滑动窗口机制 p 一般的滑动窗口机制一般的滑动窗口机制 思思 想:采用管道化技术,一次传输多个分组,想:采用管道化技术,一次传输多个分组, 但但规定一个上限规定一个上限 1 2 3 4 5 6 7

39、8 9 10 11 12 13 分分 组组 WindowSize=8 缓缓 存存 窗窗 口:确认到来之前最多可以发送分组的数量口:确认到来之前最多可以发送分组的数量 随着确认不断到来,窗口会不断向后滑动,随着确认不断到来,窗口会不断向后滑动, 直到所有分组都被包含在窗口内,从而发送出去直到所有分组都被包含在窗口内,从而发送出去计算机网络计算机网络5. 传输层:传输层:流量控制流量控制61滑动窗口示例滑动窗口示例A-BB通告A,其接收窗口值为20,确认值为31前移不允许发送已发送并收到确认A 的发送窗口 = 20允许发送的序号26 27 28 29 30 31 32 33 34 35 36 37

40、 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56B 期望收到的序号前移根据 B 给出的窗口值A 构造出自己的发送窗口 计算机网络计算机网络5. 传输层:传输层:流量控制流量控制62不允许发送已发送并收到确认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可用窗口A 发送了 11 个字节的数据,但未收到确认 允许发送但尚未发送A

41、的发送窗口向前滑动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 收到新的确认号34,发送窗口向前滑动 计算机网络计算机网络5. 传输层:传输层:流量控制流量控制63不允许发送已发送并收到确认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已发

42、送但未收到确认56P1P2P3A 的发送窗口内的序号都已用完,但还没有再收到确认,必须停止发送滑动窗口示例滑动窗口示例计算机网络计算机网络5. 传输层:传输层:流量控制流量控制64 滑动窗口以字节为单位,最大65535字节 TCP 连接的每一端都必须设有两个窗口 一个发送窗口和一个接收窗口 一方的发送窗口和另一方接收窗口一致! TCP采用可变发送窗口方式进行流量控制 接收端可根据自己的资源情况,动态调整自己的接收窗口,并将新的窗口通告给对方,使对方的发送和自己的接收窗口一致TCP滑动窗口机制滑动窗口机制计算机网络计算机网络5. 传输层:传输层:流量控制流量控制65使用可变滑动窗口进行流控使用可

43、变滑动窗口进行流控1002003004005006007008009001012013014015016017018011已发送并被确认已发送但未被确认可发送不可发送指针1002003004005006007008009001012013014015016017018011已发送并被确认可发送不可发送指针发送窗口前移发送窗口缩小发送窗口初始:500字节新窗口通告:400字节计算机网络计算机网络5. 传输层:传输层:流量控制流量控制660窗口通告面临新问题窗口通告面临新问题 问题一:问题一: 0窗口通告停止所有的传输,接收缓存又窗口通告停止所有的传输,接收缓存又 有空间,怎么办?有空间,怎么办?Tips:Tips:持续定时器使用时机:持续定时器使用时机:n 一方发送了一方发送了0 0窗口通告,另一方就启动定时器窗口通告,另一方就启动定时器n 问题二:问题二: 非非0窗口通告丢失,怎么办?窗口通告丢失,怎么办? 结结 果:果: 造成死锁造成死锁 解解 决:决: 发送方为每个连接都启动发送方为每个连接都启动持续定时器持续定时器,周,周 期性的向接收方发期性

温馨提示

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

评论

0/150

提交评论