计算机网络自顶向下第三章资料

上传人:w****i 文档编号:99139752 上传时间:2019-09-17 格式:PPT 页数:96 大小:2.82MB
返回 下载 相关 举报
计算机网络自顶向下第三章资料_第1页
第1页 / 共96页
计算机网络自顶向下第三章资料_第2页
第2页 / 共96页
计算机网络自顶向下第三章资料_第3页
第3页 / 共96页
计算机网络自顶向下第三章资料_第4页
第4页 / 共96页
计算机网络自顶向下第三章资料_第5页
第5页 / 共96页
点击查看更多>>
资源描述

《计算机网络自顶向下第三章资料》由会员分享,可在线阅读,更多相关《计算机网络自顶向下第三章资料(96页珍藏版)》请在金锄头文库上搜索。

1、运输层,1,第3章:运输层,我们的目的: 理解运输层服务依据的原理: 复用/分解 可靠数据传输 流量控制 拥塞控制,学习因特网中的运输层协议: UDP: 无连接传输 TCP: 面向连接传输 TCP 拥塞控制,运输层,2,第3章 要点,3.1 概述与运输层服务 3.2 多路复用与多路分解 3.3 无连接运输: UDP 3.4 可靠数据传输的原理 构造可靠数据传输协议 流水线可靠数据传输协议 回退N帧rdt2 选择重传 rdt3,3.5 面向连接的传输: TCP TCP连接与报文段结构 可靠数据传输 流量控制 连接管理 3.6 拥塞控制的原则 3.7 TCP拥塞控制 机制 TCP吞吐量 TCP公平

2、性 时延模型,运输层,3,运输服务和协议,在运行不同主机上应用进程之间提供逻辑通信 运输协议运行在端系统中 发送方:将应用报文划分为段,传向网络层 接收方:将段重新装配为报文,传向应用层 应用可供使用的运输协议不止一个 因特网:TCP和UDP,运输层,4,运输层 vs. 网络层,网络层: 主机间的逻辑通信 运输层: 进程间的逻辑通信 依赖、强化网络层服务,家庭类比: 12个孩子向12个孩子发信 进程 = 孩子 应用报文= 信封中的信 主机 = 家庭 运输协议 = Ann和Bill 网络层协议= 邮政服务,运输层,5,因特网运输层协议,可靠的、按序的交付 (TCP) 拥塞控制 流量控制 连接建立

3、 不可靠、不按序交付: UDP “尽力而为”IP的不提供不必要服务的扩展 不可用的服务: 时延保证 带宽保证,运输层,6,第3章 要点,3.1 运输层服务 3.2 复用与分解 3.3 无连接传输: UDP 3.4 可靠数据传输的原则 rdt1 rdt2 rdt3 流水线协议,3.5 面向连接的传输: TCP 报文段结构 可靠数据传输 流量控制 连接管理 3.6 拥塞控制的原则 3.7 TCP拥塞控制 机制 TCP吞吐量 TCP公平性 时延模型,运输层,7,复用/分解,= 进程,= 套接字,将接收到的段交付给正确的套接字,从多个套接字收集数据,用首部封装数据(以后用于分解 ),运输层,8,分解工

4、作过程,主机接收IP数据报 每个数据报有源无连接, 目的地无连接 每个数据报承载1个运输层段 每个段具有源、目的端口号 (回想: 对特定应用程序的周知端口号) 主机使用IP地址 &端口号将段定向到适当的套接字,源端口 #,目的端口 #,32 bits,应用数据 (报文),其他首部字段,TCP/UDP 段格式,运输层,9,无连接分解,生成具有端口号的套接字: DatagramSocket mySocket1 = new DatagramSocket(99111); DatagramSocket mySocket2 = new DatagramSocket(99222); UDP套接字由二元组标识

5、 : (目的地IP地址, 目的地端口号),当主机接收UDP段时: 在段中检查目的地端口号 将UDP段定向到具有该端口号的套接字 具有不同源IP地址和/或源端口号的IP数据报 定向到相同的套接字,运输层,10,无连接分解(续),DatagramSocket serverSocket = new DatagramSocket(6428);,SP提供了“返回地址”,运输层,11,面向连接分解,TCP套接字由四元组标识: 源IP地址 源端口号 目的IP地址 目的端口号 接收主机使用这四个值来将段定向到适当的套接字,服务器主机可能支持许多并行的TCP套接字: 每个套接字由其自己的四元组标识 Web服务器

6、对每个连接的客户机具有不同的套接字 非持久HTTP将为每个请求具有不同的套接字,运输层,12,面向连接分解 (续),客户机 IP:B,服务器 IP: C,SP: 9157,DP: 80,D-IP:C,S-IP: A,D-IP:C,S-IP: B,D-IP:C,S-IP: B,运输层,13,面向连接分解: 多线程Web服务器,客户机 IP:B,服务器IP: C,SP: 9157,DP: 80,P4,D-IP:C,S-IP: A,D-IP:C,S-IP: B,D-IP:C,S-IP: B,运输层,14,第3章 要点,3.1 运输层服务 3.2 复用与分解 3.3 无连接传输: UDP 3.4 可靠

7、数据传输的原则 rdt1 rdt2 rdt3 流水线协议,3.5 面向连接的传输: TCP 报文段结构 可靠数据传输 流量控制 连接管理 3.6 拥塞控制的原则 3.7 TCP拥塞控制 机制 TCP吞吐量 TCP公平性 时延模型,运输层,15,UDP: 用户数据报协议 RFC 768,“没有不必要的,” “基本要素” 互联网传输协议 “尽力而为”服务,UDP段可能: 丢包 对应用程序交付失序 无连接: 在UDP发送方和接收方之间无握手 每个UDP段的处理独立于其他段,为何要有 UDP协议? 无连接创建(它将增加时延) 简单:在发送方、接收方无连接状态 段首部小 无拥塞控制: UDP能够尽可能快

8、地传输,运输层,16,UDP: 其他,常用于流式多媒体应用 丢包容忍 速率敏感 其他UDP应用 DNS SNMP 经UDP的可靠传输 : 在应用层增加可靠性 应用程序特定的差错恢复!,源端口#,目的端口#,32 bits,应用数据 (报文),UDP 段格式,长度,检查和,UDP段的长度,包括首部,以字节计,运输层,17,UDP检查和,发送方: 将段内容处理为16比特整数序列 检查和: 段内容的加法(反码和) 发送方将检查和放入UDP检查和字段,接收方: 计算接收的段的检查和 核对计算的检查和是否等于检查和字段的值: NO 检测到差错 YES 无差错检测到。虽然如此,还可能有差错吗?详情见后,目

9、的: 在传输的段中检测“差错” (如比特翻转),运输层,18,互联网检查和例子,注意 当数字作加法时,最高位进比特位的进位需要加到结果中 例子: 两个16-bit整数相加,1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1,回卷,和,检查和,运输层,19,第3章 要点,3.1 运输层服务 3.2 复用与分解 3

10、.3 无连接传输: UDP 3.4 可靠数据传输的原则 rdt1 rdt2 rdt3 流水线协议,3.5 面向连接的传输: TCP 报文段结构 可靠数据传输 流量控制 连接管理 3.6 拥塞控制的原则 3.7 TCP拥塞控制 机制 TCP吞吐量 TCP公平性 时延模型,运输层,20,可靠数据传输的原则,在应用层、运输层、数据链路层的重要性 重要的网络主题中的最重要的10个之一!,不可靠信道的特点决定了可靠数据传输 协议 (rdt) 的复杂性,运输层,21,可靠数据传输: 基本概念,发送侧,接收侧,运输层,22,可靠数据传输: 基本概念,我们将: 增强研发发送方,可靠数据传输协议 (rdt) 的

11、接收方侧 仅考虑单向数据传输 但控制信息将在两个方向流动! 使用有限状态机 (FSM)来定义发送方和接收方,引起状态变迁的事件,状态变迁所采取的行动,状态: 当位于这个“状态时”,下个状态惟一地由下个事件决定,运输层,23,第3章 要点,3.1 运输层服务 3.2 复用与分解 3.3 无连接传输: UDP 3.4 可靠数据传输的原则 rdt1 rdt2 rdt3 流水线协议,3.5 面向连接的传输: TCP 报文段结构 可靠数据传输 流量控制 连接管理 3.6 拥塞控制的原则 3.7 TCP拥塞控制 机制 TCP吞吐量 TCP公平性 时延模型,运输层,24,Rdt1.0: 经可靠信道的可靠传输

12、,底层信道非常可靠 无比特差错 无分组丢失 装发送方、接收方的单独FSM: 发送方将数据发向底层信道 接收方从底层信道读取数据,Wait for call from above,packet = make_pkt(data) udt_send(packet),rdt_send(data),extract (packet,data) deliver_data(data),Wait for call from below,rdt_rcv(packet),发送方,接收方,运输层,25,第3章 要点,3.1 运输层服务 3.2 复用与分解 3.3 无连接传输: UDP 3.4 可靠数据传输的原则 rd

13、t1 rdt2 rdt3 流水线协议,3.5 面向连接的传输: TCP 报文段结构 可靠数据传输 流量控制 连接管理 3.6 拥塞控制的原则 3.7 TCP拥塞控制 机制 TCP吞吐量 TCP公平性 时延模型,运输层,26,Rdt2.0: 具有比特差错的信道,信道有可能导致数据包中产生flip bits 校验和检测比特级错误 问题是如何从错误中恢复: acknowledgements (ACKs): receiver explicitly tells sender that pkt received OK negative acknowledgements (NAKs): receiver e

14、xplicitly tells sender that pkt had errors sender retransmits pkt on receipt of NAK rdt2.0 新机制(beyond rdt1.0): error detection receiver feedback: control msgs (ACK,NAK) rcvr-sender,运输层,27,rdt2.0: FSM规格参数,等待来自上面的调用,snkpkt = make_pkt(data, checksum) udt_send(sndpkt),extract(rcvpkt,data) deliver_data(d

15、ata) udt_send(ACK),rdt_rcv(rcvpkt) & notcorrupt(rcvpkt),rdt_rcv(rcvpkt) & isACK(rcvpkt),udt_send(sndpkt),rdt_rcv(rcvpkt) & isNAK(rcvpkt),发送方,接收方,rdt_send(data),L,运输层,28,rdt2.0: 无差错时的操作,等待来自上面的调用,snkpkt = make_pkt(data, checksum) udt_send(sndpkt),extract(rcvpkt,data) deliver_data(data) udt_send(ACK),

16、rdt_rcv(rcvpkt) & notcorrupt(rcvpkt),rdt_rcv(rcvpkt) & isACK(rcvpkt),udt_send(sndpkt),rdt_rcv(rcvpkt) & isNAK(rcvpkt),等待来自下面的调用,rdt_send(data),L,运输层,29,rdt2.0: 有差错时的情况,等待来自上面的调用,snkpkt = make_pkt(data, checksum) udt_send(sndpkt),extract(rcvpkt,data) deliver_data(data) udt_send(ACK),rdt_rcv(rcvpkt) & notcorrupt(rcvpkt),rdt_rcv(rcvpkt) & isACK(rcvpkt),udt_send(sndp

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号