华中科技大学计算机网络课件-第3章-运输层

上传人:风*** 文档编号:240606670 上传时间:2024-04-24 格式:PPT 页数:130 大小:1.40MB
返回 下载 相关 举报
华中科技大学计算机网络课件-第3章-运输层_第1页
第1页 / 共130页
华中科技大学计算机网络课件-第3章-运输层_第2页
第2页 / 共130页
华中科技大学计算机网络课件-第3章-运输层_第3页
第3页 / 共130页
点击查看更多>>
资源描述
“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。计算机网络第3章 运输层计算机网络第3章 运输层1第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。目录n概述和运输层服务n多路复用与多路分解n无连接传输:UDPn可靠数据传输的原理n面向连接的传输:TCPn拥塞控制原理nTCP拥塞控制2024/4/242目 录概述和运输层服务2023/7/302第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.1 概述和运输层服务n运输层的功能运输层的功能q为不同主机上运行的应用进程之间提供逻辑通信(logical communication)n运输层协议的工作内容运输层协议的工作内容q发送方:把应用数据划分成 报文段(segments),交给网络层q接收方:把报文段重组成应用数据,交付给应用层2024/4/2433.1 概述和运输层服务运输层的功能2023/7/303第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.1 概述和运输层服务n运输层和网络层的区别运输层和网络层的区别q网络层:不同主机之间的逻辑通信q运输层:应用进程之间的逻辑通信类似于家庭间通信:12个孩子要与另一个家庭的12个孩子相互通信n进程=孩子们n进程间报文=信封中的信笺n主机=家庭的房子n运输协议=张三 和 李四n网络层协议=邮局提供的服务2024/4/2443.1 概述和运输层服务运输层和网络层的区别类似于家庭间通信第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.1 概述和运输层服务n上例中的几种特殊场景上例中的几种特殊场景q张三和李四生病了,无法工作,换成张五和李六n不同的运输层协议可能提供不一样的服务q邮局不承诺信件送抵的最长时间n运输层协议能够提供的服务受到底层网络协议的服务模型的限制q邮局不承诺平信一定安全可靠的送达,可能在路上丢失,但张三、李四可在较长时间内没有受到对方的回信时,再次誊写信件,寄出n在网络层不提供某些服务的情况下,运输层自己提供2024/4/2453.1 概述和运输层服务上例中的几种特殊场景2023/7/3第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.1 概述和运输层服务n因特网上的运输层协议因特网上的运输层协议q用户数据报协议UDP(数据报)q传输控制协议TCP(报文段)q所提供的服务n进程间数据交付n差错检测n可靠的数据传输n拥塞控制2024/4/2463.1 概述和运输层服务因特网上的运输层协议2023/7/3第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.2 多路复用与多路分解应用层运输层网络层TCP 报文段UDP用户数据报应用进程TCP 复用IP 复用UDP 复用TCP 报文段UDP用户数据报 应用进程端口端口TCP 分用UDP 分用IP 分用发送方接收方2024/4/2473.2 多路复用与多路分解应运网TCP 报文段UDP应用进程第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.2 多路复用与多路分解n端口端口q端口的作用就是让应用层的各种应用进程都能将其数据通过端口向下交付给运输层,以及让运输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程(或者线程)q从这个意义上讲,端口是用来标志应用层的进程(或者线程)q端口用一个 16 bit 端口号进行标志2024/4/2483.2 多路复用与多路分解端口2023/7/308第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.2 多路复用与多路分解n套接字套接字qTCP 使用“连接”(而不仅仅是“端口”)作为最基本的抽象,同时将 TCP 连接的端点称为套接字(socket)。q套接字和端口、IP 地址的关系是:IP 地址131.6.23.13 端口号1500 131.6.23.13,1500套接字(socket)2024/4/2493.2 多路复用与多路分解套接字IP 地址131.6.23.第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.2 多路复用与多路分解n报文段(数据报)的投送报文段(数据报)的投送q主机收到IP包n每个数据包都有源IP地址和目的IP地址n每个数据包都携带一个传输层的数据报文段n每个数据报文段都有源、目的端口号q主机根据“IP地址端口号”将报文段定向到相应的套接字源端口#目的端口#32 位应用数据(报文)其他首部字段TCP/UDP 报文段格式2024/4/24103.2 多路复用与多路分解报文段(数据报)的投送源端口#目第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.2 多路复用与多路分解n面向连接到复用和分用面向连接到复用和分用qTCP 套接字由一个四元组来标识(源IP地址,源端口号,目的IP地址,目的端口号)q接收方主机根据这四个值将报文段定向到相应的套接字q服务器主机同时支持多个并发的TCP套接字:n每一个套接字都由其四元组来标识qWeb服务器为每一个客户连接都产生不同的套接字n非持久HTTP对每一个请求都建立不同的套接字(会影响性能)2024/4/24113.2 多路复用与多路分解面向连接到复用和分用2023/7/第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.2 多路复用与多路分解n举例:多线程的举例:多线程的WEB服务器服务器P1客户 IP:A客户IP:BP2服务器IP:CP4P3SP:9157DP:80S-IP:AD-IP:CSP:9157DP:80D-IP:CS-IP:BSP:5775DP:80D-IP:CS-IP:B2024/4/24123.2 多路复用与多路分解举例:多线程的WEB服务器P1客户第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.3 无连接传输:UDPn一个最简单的运输层协议必须提供一个最简单的运输层协议必须提供q多路复用/多路分解服务q差错检查实际上这就是实际上这就是UDP所提供的功能(所提供的功能(RFC 768)2024/4/24133.3 无连接传输:UDP一个最简单的运输层协议必须提供第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.3 无连接传输:UDPnUDP处理数据的流程处理数据的流程q发送方n从应用进程得到数据n附加上为多路复用/多路分解所需的源和目的端口号及差错检测信息,形成报文段(数据报)n递交给网络层,尽力而为的交付给接收主机q接收方n从网络层接收报文段(数据报)n根据目的端口号,将数据交付给相应的应用进程UDP通信事先无需握手,是通信事先无需握手,是无连接的无连接的2024/4/24143.3 无连接传输:UDPUDP处理数据的流程UDP通信第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.3 无连接传输:UDPnUDP的优势的优势q无需建立连接建立连接会增加时延q简单发送方和接收方无需维护连接状态q段首部开销小TCP:20Byte vs UDP:8Byteq无拥塞控制UDP 可按需要随时发送2024/4/24153.3 无连接传输:UDPUDP的优势2023/7/30第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.3 无连接传输:UDPn部分采用部分采用UDP协议的应用协议的应用q远程文件系统(NFS)q流式多媒体q因特网电话q网络管理(SNMP)q选路协议(RIP)q域名解析(DNS)2024/4/24163.3 无连接传输:UDP部分采用UDP协议的应用202第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.3 无连接传输:UDPnUDP大量应用可能导致的严重后果大量应用可能导致的严重后果q路由器中大量的分组溢出q显著减小TCP通信的速率,甚至挤垮TCP会话n使用使用UDP的可靠数据传输的可靠数据传输q在应用层实现数据的可靠传输q增加了应用进程的实现难度2024/4/24173.3 无连接传输:UDPUDP大量应用可能导致的严重后第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.3 无连接传输:UDPnUDP报文段(报文段(数据报数据报)的结构)的结构源端口源端口#目的端口目的端口#32 位位应用数据应用数据(报文报文)长度长度检查和检查和包括首部在内的包括首部在内的UDP报文段长度报文段长度,(以字节为单位)(以字节为单位)2024/4/24183.3 无连接传输:UDPUDP报文段(数据报)的结构源第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.3 无连接传输:UDPnUDP的检查和的检查和q目标n检测收到的报文段的“差错”(例如,出现突变的比特)q发送方n把报文段看作是16比特字的序列n检查和:对报文段的所有16比特字的和进行1的补运算n发送方将计算校验和的结果写入UDP校验和字段中n增加伪首部:(源IP地址(4字节)、目的IP地址(4字节)、0(1字节)、17(UDP协议号,1字节)、UDP长度(2字节))q接收方n计算接收到的报文段的校验和n检查计算结果是否与收到报文段的校验和字段中的值相同q不同 检测到错误q相同 没有检测到错误(但仍可能存在错误)2024/4/24193.3 无连接传输:UDPUDP的检查和2023/7/3第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.3 无连接传输:UDPn例子例子:将两个将两个16比特字相加比特字相加1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 11 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 11 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1回卷和检查和注意:注意:最高有效位的进位要回卷加到结果当中2024/4/24203.3 无连接传输:UDP例子:将两个16比特字相加1第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理n可靠数据传输可靠数据传输q在应用层、运输层和链路层都很重要q网络中最重要的top-10问题之一!2024/4/24213.4 可靠数据传输的原理可靠数据传输2023/7/3021第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理不可靠信道的特性决定了可靠数据传输协议不可靠信道的特性决定了可靠数据传输协议(rdt)的复杂性。的复杂性。2024/4/24223.4 可靠数据传输的原理不可靠信道的特性决定了可靠数据传输第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理发送方接收方rdt_send():由上层(如应用层)调用,将数据发送给接收方的上层udt_send():由 rdt调用,将分组通过不可靠信道传给接收方rdt_rcv():当分组到达接收方时调用deliver_data():由 rdt 调用,将数据交付上层2024/4/24233.4 可靠数据传输的原理发送方接收方rdt_send():第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理我们将要:n逐步地开发可靠数据传输协议(rdt)的发送方和接收方n只考虑单向数据传输(unidirectional data transfer)的情况q但控制信息是双向传输的n用有限状态机(FSM)来描述发送方和接收方状态1状态2事件引起状态变迁状态转换过程中的动作状态:由事件引起一个状态到另一个状态的变迁。事件动作2024/4/24243.4 可靠数据传输的原理我们将要:状态状态事件引起状态变迁第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理n可靠信道上的可靠传输可靠信道上的可靠传输 rdt 1.0q底层信道完全可靠n不会产生比特错误n不会丢失分组q分别为发送方和接收方建立FSMn发送方将数据发送给底层信道n接收方从底层信道接收数据packet=make_pkt(data)udt_send(packet)rdt_send(data)extract(packet,data)deliver_data(data)等待来自下层的调用rdt_rcv(packet)发送方发送方接收方接收方等待来自上层的调用2024/4/24253.4 可靠数据传输的原理可靠信道上的可靠传输 rdt 第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理n信道可能导致比特出现差错时信道可能导致比特出现差错时rdt 2.xq第一个版本rdt 2.0n假设q分组比特可能受损q所有传输的分组都将按序被接收,不会丢失n处理机制q如何判断分组受损差错检测q如何通知发送方分组是否受损接收方反馈(ACK和NAK)q在得知分组受损后,发送方如何处理出错重传2024/4/24263.4 可靠数据传输的原理信道可能导致比特出现差错时rd第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理nrdt 2.0的有限状态机FSM等待来自上层的调用snkpkt=make_pkt(data,checksum)udt_send(sndpkt)extract(rcvpkt,data)deliver_data(data)udt_send(ACK)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)rdt_rcv(rcvpkt)&isACK(rcvpkt)udt_send(sndpkt)rdt_rcv(rcvpkt)&isNAK(rcvpkt)udt_send(NAK)rdt_rcv(rcvpkt)&corrupt(rcvpkt)等待 ACK 或 NAK等待来自下层的调用发送方发送方接收方接收方rdt_send(data)L2024/4/24273.4 可靠数据传输的原理rdt 2.0的有限状态机FSM等第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理等待来自上层的调用snkpkt=make_pkt(data,checksum)udt_send(sndpkt)extract(rcvpkt,data)deliver_data(data)udt_send(ACK)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)rdt_rcv(rcvpkt)&isACK(rcvpkt)udt_send(sndpkt)rdt_rcv(rcvpkt)&isNAK(rcvpkt)udt_send(NAK)rdt_rcv(rcvpkt)&corrupt(rcvpkt)等待 ACK 或 NAK等待来自下层的调用rdt_send(data)L发送方发送方接收方接收方rdt2.0:无差错的情况无差错的情况2024/4/24283.4 可靠数据传输的原理等待来自snkpkt=make第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理等待来自上层的调用snkpkt=make_pkt(data,checksum)udt_send(sndpkt)extract(rcvpkt,data)deliver_data(data)udt_send(ACK)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)rdt_rcv(rcvpkt)&isACK(rcvpkt)udt_send(sndpkt)rdt_rcv(rcvpkt)&isNAK(rcvpkt)udt_send(NAK)rdt_rcv(rcvpkt)&corrupt(rcvpkt)等待 ACK 或 NAK等待来自下层的调用rdt_send(data)L发送方发送方接收方接收方rdt2.0:有差错的情况有差错的情况2024/4/24293.4 可靠数据传输的原理等待来自snkpkt=make第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理n如何实现重传q使用缓冲区缓存已发出但未收到反馈的报文段n新的问题q需要多大的缓冲区呢?n接收方和发送方各一个报文段大小的缓冲区即可2024/4/24303.4 可靠数据传输的原理如何实现重传2023/7/3030第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理q第二个版本rdt 2.1n问题的引入qACK和NAK分组可能受损,而rdt 2.0没有考虑该情况n解决问题的几种思路q在人类的对话中,如果听不清楚对方所述,会回问一句“刚才你说什么来着?”但如果这句话仍然没有听清楚呢?怎么办?双方对着问“刚才你说什么来着?”这就可能进入了一个难以解困的死循环q增加足够的检查和比特,使发送方不仅可以检查比特差错,还可以恢复比特差错q收到出错的反馈时,不管三七二十一,直接重发当前数据分组,但这就需要对数据分组进行编号,以示识别2024/4/24313.4 可靠数据传输的原理第二个版本rdt 2.1202第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理nrdt 2.1的发送方等待来自上层的调用0sndpkt=make_pkt(0,data,checksum)udt_send(sndpkt)rdt_send(data)等待 ACK 或 NAK 0udt_send(sndpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)|isNAK(rcvpkt)sndpkt=make_pkt(1,data,checksum)udt_send(sndpkt)rdt_send(data)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&isACK(rcvpkt)udt_send(sndpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)|isNAK(rcvpkt)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&isACK(rcvpkt)等待来自上层的调用1等待ACK 或 NAK 1LL2024/4/24323.4 可靠数据传输的原理rdt 2.1的发送方等待来自sn第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理nrdt 2.1的接收方等待来自下层的0rdt_rcv(rcvpkt)¬ corrupt(rcvpkt)&has_seq0(rcvpkt)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&has_seq1(rcvpkt)extract(rcvpkt,data)deliver_data(data)sndpkt=make_pkt(ACK,chksum)udt_send(sndpkt)等待来自下层的1rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&has_seq0(rcvpkt)extract(rcvpkt,data)deliver_data(data)sndpkt=make_pkt(ACK,chksum)udt_send(sndpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)sndpkt=make_pkt(ACK,chksum)udt_send(sndpkt)rdt_rcv(rcvpkt)¬ corrupt(rcvpkt)&has_seq1(rcvpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)sndpkt=make_pkt(ACK,chksum)udt_send(sndpkt)sndpkt=make_pkt(NAK,chksum)udt_send(sndpkt)sndpkt=make_pkt(NAK,chksum)udt_send(sndpkt)2024/4/24333.4 可靠数据传输的原理rdt 2.1的接收方等待来自下层第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理q第三个版本rdt 2.2n针对rdt 2.1的改进q只使用ACKq取消NAK,接收方对最后一个正确收到的分组发送 ACK接收方必须明确指出被确认的分组的序号q发送方收到的重复的ACK将按照NAK来进行处理重传正确的分组2024/4/24343.4 可靠数据传输的原理第三个版本rdt 2.2202第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理等待来自上层的调用0sndpkt=make_pkt(0,data,checksum)udt_send(sndpkt)rdt_send(data)udt_send(sndpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)|isACK(rcvpkt,1)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&isACK(rcvpkt,0)等待ACK0发送方部分发送方部分FSM等待来自下层的0rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&has_seq1(rcvpkt)extract(rcvpkt,data)deliver_data(data)sndpkt=make_pkt(ACK1,chksum)udt_send(sndpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)|has_seq1(rcvpkt)udt_send(sndpkt)接收方部分接收方部分 FSML2024/4/24353.4 可靠数据传输的原理等待来自上层的调用0sndpkt 第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理q针对rdt 2.x的进一步讨论nrdt 2.x实际上也解决了流控问题2024/4/24363.4 可靠数据传输的原理针对rdt 2.x的进一步讨论20第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理n信道不但出错,而且丢包时信道不但出错,而且丢包时rdt 3.0q假设n底层信道不但可能出现比特差错,而且可能会丢包q需解决的问题n怎样检测丢包n发生丢包后,如何处理q检查和技术、序号、ACK、重传如何判断数据报丢失了呢?如何判断数据报丢失了呢?最简单的方法就是:最简单的方法就是:耐心的等待耐心的等待2024/4/24373.4 可靠数据传输的原理信道不但出错,而且丢包时rdt第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理sndpkt=make_pkt(0,data,checksum)udt_send(sndpkt)start_timerrdt_send(data)等待ACK0rdt_rcv(rcvpkt)&(corrupt(rcvpkt)|isACK(rcvpkt,1)等待来自上层的调用1sndpkt=make_pkt(1,data,checksum)udt_send(sndpkt)start_timerrdt_send(data)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&isACK(rcvpkt,0)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)|isACK(rcvpkt,0)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&isACK(rcvpkt,1)stop_timerstop_timerudt_send(sndpkt)start_timertimeoutudt_send(sndpkt)start_timertimeoutrdt_rcv(rcvpkt)等待来自上层的调用0等待 ACK1Lrdt_rcv(rcvpkt)LLLRdt 3.0的发送方的发送方2024/4/24383.4 可靠数据传输的原理sndpkt=make_pkt第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理qrdt 3.0举例2024/4/24393.4 可靠数据传输的原理rdt 3.0举例2023/7/3第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理d)过早超时过早超时c)丢失丢失ACKpkt 0ACK 0pkt 1pkt 0ACK 0发送方发送方接收方接收方发送分组发送分组0接收接收ACK0发送分组发送分组1接收接收ACK1发送分组发送分组0接收分组接收分组0发送发送ACK0接收分组接收分组1发送发送ACK1接收分组接收分组0发送发送ACK0pkt 1超时超时重发分组重发分组1pkt 0ACK 0ACK 1pkt 0ACK 0发送方发送方接收方接收方发送分组发送分组0接收接收ACK0发送分组发送分组1接收接收ACK1发送分组发送分组0接收分组接收分组0发送发送ACK0接收分组接收分组1(检测冗余检测冗余发送发送ACK1)发送发送ACK1接收分组接收分组0发送发送ACK0pkt 1丢失丢失超时超时重发分组重发分组1pkt 1ACK 1接收分组接收分组1发送发送ACK1ACK 1ACK 1接收接收ACK1什么也不做什么也不做接收分组接收分组1(检测冗余发送检测冗余发送ACK1)发送发送ACK12024/4/24403.4 可靠数据传输的原理d)过早超时c)丢失ACKpkt 第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理nrdt 3.0的性能分析的性能分析q1Gbps 的链路,15ms 的端到端延迟,分组大小为1KB Ttransmit=8kb/pkt109 b/sec=8 sL(比特为单位的分组大小)R(传输速率,bps)=n每30ms内只能发送1KB:1 Gbps 的链路只有33kB/sec 的吞吐量n网络协议限制了物理资源的利用率!2024/4/24413.4 可靠数据传输的原理rdt 3.0的性能分析Ttran第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理qrdt 3.0性能低下的原因首个分组的第首个分组的第1个比特被传输个比特被传输,t=0发送方发送方接收方接收方RTT 首个分组的最后首个分组的最后1比特被传输比特被传输,t=L/R首个分组的第首个分组的第1个比特到达个比特到达首个分组的最后首个分组的最后1个比特到达个比特到达,发送发送ACKACK 到达到达,发送下一个分组发送下一个分组,t=RTT+L/R2024/4/24423.4 可靠数据传输的原理rdt 3.0性能低下的原因首个分第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理q提高性能的一种可行方法:流水线技术n允许发送方发送多个分组而无需等待确认q必须增大序号范围q协议的发送方和接收方必须对分组进行缓存2024/4/24433.4 可靠数据传输的原理提高性能的一种可行方法:流水线技术第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理n流水线技术对性能提升的原理图发送方发送方接收方接收方RTT 利用率提高3倍!首个分组的第首个分组的第1个比特被传输个比特被传输,t=0首个分组的最后首个分组的最后1比特被传输比特被传输,t=L/RACK 到达到达,发送下一个分组发送下一个分组,t=RTT+L/R首个分组的第首个分组的第1个比特到达个比特到达首个分组的最后首个分组的最后1个比特到达个比特到达,发送发送ACK第第2个分组的最后个分组的最后1个比特到达个比特到达,发送发送ACK第第3个分组的最后个分组的最后1个比特到达个比特到达,发送发送ACK2024/4/24443.4 可靠数据传输的原理流水线技术对性能提升的原理图发送方第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理n流水线技术工作原理q分组首部用k比特字段表示序号q已被传输但还未确认的分组的许可序号范围可以看作是一个在序号范围内大小为N的“窗口(window)”2024/4/24453.4 可靠数据传输的原理流水线技术工作原理2023/7/3第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理q问题:当流水线技术中丢失一个分组后,如何进行重传nGo-Back-N(GBN)协议:其后分组全部重传n选择重传(SR)协议:仅重传该分组2024/4/24463.4 可靠数据传输的原理问题:当流水线技术中丢失一个分组后第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理GBN时序图时序图2024/4/24473.4 可靠数据传输的原理GBN时序图2023/7/3047第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理nGo-Back-N协议协议q特点nACK(n):接收方对序号n之前包括n在内的所有分组进行确认 -“累积 ACK”n对所有已发送但未确认的分组统一设置一个定时器n超时(n):重传分组n和窗口中所有序号大于n的分组n失序分组:q丢弃(不缓存)-接收方无缓存q重发按序到达的最高序号分组的ACK2024/4/24483.4 可靠数据传输的原理Go-Back-N协议2023/7第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.4 可靠数据传输的原理nGo-Back-N协议协议等待start_timerudt_send(sndpktbase)udt_send(sndpktbase+1)udt_send(sndpktnextseqnum-1)timeoutrdt_send(data)if(nextseqnum SendBase)SendBase=y if(there are currently not-yet-acknowledged segments)start timer /*end of loop forever*/从应用程序接收数据n将数据封装入报文段中,每个报文段都包含一个序号n序号是该报文段第一个数据字节的字节流编号n启动定时器n超时间隔:TimeOutInterval 超时n重传认为超时的报文段n重启定时器收到ACKn如果是对以前的未确认报文段的确认q更新SendBaseq如果当前有未被确认的报文段,TCP还要重启定时器2024/4/24823.5 面向连接的传输:TCP NextSeqNu第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.5 面向连接的传输:TCPnTCP的几种重传情况的几种重传情况由于由于ACK丢失而重传丢失而重传时间时间由于超时过短而重传,由于超时过短而重传,只重传第一个只重传第一个主机 ASeq=92,8 字节数据ACK=100丢失超时主机 BXSeq=92,8 字节数据ACK=100SendBase=100主机 ASeq=100,20 字节数据ACK=100主机 BSeq=92,8 字节数据ACK=120Seq=92,8 字节数据Seq=92 超时ACK=120Seq=92 超时SendBase=120SendBase=120Sendbase=1002024/4/24833.5 面向连接的传输:TCPTCP的几种重传情况由于A第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.5 面向连接的传输:TCP主机 ASeq=92,8 字节数据ACK=100丢失超时累积确认避免了第一个报文的重传累积确认避免了第一个报文的重传主机 BXSeq=100,20 字节数据ACK=120时间2024/4/24843.5 面向连接的传输:TCP主机 ASeq=92,8第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。2024年4月24日853.5 面向连接的传输:TCPn超时间隔加倍q每一次TCP重传均将下一次超时间隔设为先前值的两倍q超时间隔由EstimatedRTT和DevRTT决定n收到上层应用的数据n收到对未确认数据的ACK2023年7月30日853.5 面向连接的传输:TCP超第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.5 面向连接的传输:TCPn快速重传快速重传q超时周期往往太长n增加重发丢失分组的延时q通过重复的ACK检测丢失报文段n发送方常要连续发送大量报文段n如果一个报文段丢失,会引起很多连续的重复ACK.q如果发送收到一个数据的3个ACK,它会认为确认数据之后的报文段丢失n快速重传:在超时到来之前重传报文段2024/4/24863.5 面向连接的传输:TCP快速重传2023/7/30第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。2024年4月24日873.5 面向连接的传输:TCPn产生产生TCP ACK的建议(的建议(RFC1122、2581)接收方事件接收方事件所期望序号的报文段按序到达。所所期望序号的报文段按序到达。所有在期望序号及其以前的数据都已有在期望序号及其以前的数据都已经被确认经被确认有期望序号的报文段按序到达。有期望序号的报文段按序到达。另一个按序报文段等待发送另一个按序报文段等待发送ACK比期望序号大的失序报文段到达,比期望序号大的失序报文段到达,检测出数据流中的间隔检测出数据流中的间隔能部分或完全填充接收能部分或完全填充接收数据间隔的报文段到达数据间隔的报文段到达 TCP接收方接收方 动作动作延迟的延迟的ACK。对另一个按序报文段的到。对另一个按序报文段的到达最多等待达最多等待500ms。如果下一个按序报。如果下一个按序报文段在这个时间间隔内没有到达,则发文段在这个时间间隔内没有到达,则发送一个送一个ACK立即发送单个累积立即发送单个累积ACK,以确认两个按,以确认两个按序报文段序报文段 立即发送冗余立即发送冗余ACK,指明下一个期待字,指明下一个期待字节的序号节的序号(也就是间隔的低端字节序号也就是间隔的低端字节序号)倘若该报文段起始于间隔的低端,倘若该报文段起始于间隔的低端,则立即发送则立即发送ACK2023年7月30日873.5 面向连接的传输:TCP产第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.5 面向连接的传输:TCPn快速重传的算法快速重传的算法 event:ACK received,with ACK field value of y if(y SendBase)SendBase=y if(there are currently not-yet-acknowledged segments)start timer else increment count of dup ACKs received for y if(count of dup ACKs received for y=3)resend segment with sequence number y 重复的重复的ACK报文报文快速重传快速重传2024/4/24883.5 面向连接的传输:TCP快速重传的算法 重复的AC第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.5 面向连接的传输:TCPnTCP流量控制流量控制q背景nTCP接收方有一个缓存,所有上交的数据全部缓存在里面n应用进程从缓冲区中读取数据可能很慢q目标n发送方不会由于传得太多太快而使得接收方缓存溢出q手段n接收方在反馈时,将缓冲区剩余空间的大小填充在报文段首部的窗口字段中,通知发送方2024/4/24893.5 面向连接的传输:TCPTCP流量控制2023/7第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.5 面向连接的传输:TCPq窗口值的计算空闲空间空闲空间缓存中的缓存中的TCP数据数据RcvWindow来自来自IP的数据的数据应用进程应用进程RcvBufferLastByteRcvd LastByteRead RcvBuffer接收方:接收方:RcvWindows=RcvBuffer LastByteRcvd-LastByteRead发送方:发送方:LastByteSent LastByteAcked RcvWindow2024/4/24903.5 面向连接的传输:TCP窗口值的计算空闲空间缓存中第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.5 面向连接的传输:TCPq一种特殊的情况n接收方通知发送方RcvWindow为0,且接收方无任何数据传送给发送方n发送方持续向接受方发送只有一个字节数据的报文段,目的是试探2024/4/24913.5 面向连接的传输:TCP一种特殊的情况2023/7第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.5 面向连接的传输:TCPnTCP连接的建立SYN,SEQ=x主机 BSYN,ACK,SEQ=y,ACK=x 1ACK,SEQ=x+1,ACK=y 1被动打开主动打开确认确认主机 A连接请求2024/4/24923.5 面向连接的传输:TCPTCP连接的建立SYN,第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。2024年4月24日93TCP 连接释放的过程FIN,SEQ=xACK,SEQ=y,ACK=x 1ACK,SEQ=x+1,ACK=y 1应用进程释放连接A 不再发送报文FIN,ACK,SEQ=y,ACK=x+1主机 B主机 A通知主机应用进程应用进程释放连接B 不再发送报文确认确认从 A 到 B 的连接就释放了,连接处于半关闭状态。相当于 A 向 B 说:“我已经没有数据要发送了。但你如果还发送数据,我仍接收。”至此,整个连接已经全部释放。2023年7月30日93TCP 连接释放的过程 FIN,S第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.5 面向连接的传输:TCPnTCP连接管理的状态序列连接管理的状态序列客户机TCP状态序列服务器TCP状态序列2024/4/24943.5 面向连接的传输:TCPTCP连接管理的状态序列客第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.6 拥塞控制原理n拥塞的基本知识拥塞的基本知识q非正式定义:“过多的源端发送了过多的数据,超出了网络的处理能力”q不同于流量控制q现象:n丢包(路由器缓冲区溢出)n延时长(在路由器缓冲区排队)2024/4/24953.6 拥塞控制原理拥塞的基本知识2023/7/3095第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.6 拥塞控制原理n情境情境1q两个发送方,两个接受方q一个具有无限大缓存的路由器q没有重传无限制的共享式输出链路缓存主机 Alin:原始数据主机 Blout主机D主机C2024/4/24963.6 拥塞控制原理情境1无限制的共享式主机 Alin:第三章 运输层“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。3.6 拥塞控制原理n情境情境1q最
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!