chapter3传输层.ppt_第1页
chapter3传输层.ppt_第2页
chapter3传输层.ppt_第3页
chapter3传输层.ppt_第4页
chapter3传输层.ppt_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、3: Transport Layer,3-1,第三章 传输层,3.1 概述及传输层服务 3.3 UDP 3.4 可靠数据传输 原理 3.5 TCP 3.6 拥塞控制 原理 3.7 TCP 拥塞控制,3: Transport Layer,3-2,3.1 传输层服务,传输层协议运行在不同的主机上 发送方: 将应用层报文分为段,传递给网络层 接收方:将“段”重组为报文,传递给应用层 TCP and UDP,3: Transport Layer,3-3,3.1.1 Transport vs. network layer,一个家庭的例子:12个孩子给另外12个孩子写信 进程 =孩子 应用报文 = 信封里

2、的信件 主机 = 家 传输层协议 = Ann 和 Bill 网络层协议 = 邮政服务,12 kids sending letters to 12 kids,Ann,Bill,3: Transport Layer,3-4,3.1.1 传输层和网络层的关系,12 kids sending letters to 12 kids,网络层: 主机之间的逻辑通信 传输层: 进程之间的逻辑通信 依赖网络层服务,同时也促进网络层服务,3: Transport Layer,3-5,3.1.2 Internet 传输层概述,可靠的,按序传送 :TCP 拥塞控制 流量控制 建立连接 不可靠,无序传输: UDP 不能

3、实现的服务: 延迟保证 带宽保证,3: Transport Layer,3-6,3.3 UDP: User Datagram Protocol,尽最大努力传送服务, UDP 数据段可能会: 丢失 向应用层传送乱序的数据 无连接: 在 UDP发送方和接收方之间没有握手机制 每个UDP段都独立处理,为什么需要UDP? 不需要建立连接(建立连接会增加延迟) 简单:在发送方和接收方不需要维护连接信息 段头部信息小(无效载荷少,提高传输效率) 没有拥塞控制:可以任意传送突发的大量数据,3: Transport Layer,3-7,3.3 UDP,通常用于流式多媒体数据 允许丢失 对传输速率敏感 其他使用

4、UDP的应用 DNS SNMP 简单网络管理协议 在UDP上实现可靠传输: 在应用层增加可靠性 由应用层进行错误恢复!,3: Transport Layer,3-8,3.3 UDP校验和,发送方: 源端口 + 目的端口 + 长度 A (0101) 校验和 (1010) 发送方将校验和写进UDP报头,接收方: 源端口+目的端口+长度校验和 111 ?(1111) 不是 检测出错 是 未检测出错.,目标: 在传输的数据段中检测错误(比特错误),3: Transport Layer,3-9,3.4 可靠数据传输原理,3.4.1 构造一个可靠数据传输协议 1. rdt1.0 : 理想的可靠信道 2.

5、rdt2.0 : 有比特错误的信道 3. rdt3.0 : 有比特错误并且会丢失的信道 3.4.2 流水线式可靠数据传输原理 3.4.3 退后N帧协议 (GBN) 3.4.4 选择性重传 (SR),rdt ( reliable data transfer): 没有错误, 没有丢失 ,乱序 udt (unreliable data transfer),3: Transport Layer,3-10,3.4.1 开始构造一个 rdt 协议,3: Transport Layer,3-11,3.4.1 构造可靠数据传输协议(rdt),1. rdt1.0:基于理想信道 2. rdt2.0:基于有比特错误

6、的信道的 3. rdt3.0:基于会丢失且会出错的信道,3: Transport Layer,3-12,3.4.1 构造可靠数据传输协议(rdt),发送方,接收方,3: Transport Layer,3-13,3.4.1 构造可靠数据传输协议(rdt),构造发送方和接收方的可靠协议 只考虑单向数据传输 (控制信息双向传输) 使用有限状态自动机(FSM)描述发送方和接收方,状态转换所产生的行为,由一个状态转入 下一个状态 (由事件决定),3: Transport Layer,3-14,3.4.1 Rdt1.0,底层是非常可靠的信道 没有比特错误 没有分组丢失 发送方和接收方的行为: 发送方将数

7、据发送给底层信道 接收方从底层信道接收数据,3: Transport Layer,3-15,3.4.1 Rdt2.0,有比特错误的信道 Q : 怎样从错误中恢复: 确认(ACKs): 接收方告诉发送方分组正确接收 否定确认 (NAKs): 接收方告诉发送方分组出错 发送方接收到否定确认后重新传送分组,rdt2.0中的新机制 错误检测 接收方回馈: ACK,NAK,3: Transport Layer,3-16,rdt2.0: FSM 描述,sender FSM,receiver FSM,应用层发送数据,则计算校验和,构造分组,向不可靠信道发送分组,3: Transport Layer,3-17

8、,rdt2.0: 运行 (正确时),sender FSM,receiver FSM,3: Transport Layer,3-18,rdt2.0: 运行(出错时),sender FSM,receiver FSM,3: Transport Layer,3-19,3.4.1 Rdt3.0(rdt2.0的缺陷)!,如果 ACK/NAK 丢失呢? 发送方只是重传: 可能重复,产生复本,处理重复问题: 发送方在每个分组上添加序列号 如果ACK/NAK丢失,发送方重传当前分组 接收方丢弃重复的分组(不向上层递交),3: Transport Layer,3-20,rdt3.0 运行(正确时),3: Tran

9、sport Layer,3-21,rdt3.0 运行(丢失分组/ACK),3: Transport Layer,3-22,rdt3.0 (过早超时),3: Transport Layer,3-23,3.4.2 流水线协议,例: 链路带宽R=1 Gbps, 传播延迟RTT=15 ms, 分组长度L=1KB,在1Gbps的链路上只能得到30KB/s的吞吐量 rdt3.0 可以正常工作,但是性能受到限制 网络协议限制了物理资源的充分使用,sender,receiver,RTT,t = L / R,t = RTT + L / R,分组到达 发送 ACK,3: Transport Layer,3-24,

10、流水线Pipelining:提高效率,first packet bit transmitted, t = 0,sender,receiver,RTT,last bit transmitted, t = L / R,first packet bit arrives,last packet bit arrives, send ACK,ACK arrives, send next packet, t = RTT + L / R,last bit of 2nd packet arrives, send ACK,last bit of 3rd packet arrives, send ACK,效率提高3

11、倍!,3: Transport Layer,3-25,3.4.2 流水线协议,流水线: 连续发送多个分组,不需要等 序列号范围要增大 在发送和接收方要能够缓存分组,3: Transport Layer,3-26,3.4.2流水线协议,Q : 如果分组出现错误,怎么处理其他正确的分组 ? 重传错误分组之后的所有分组退后N帧协议 (GBN) 仅仅重传错误分组选择性重传协议SR,3: Transport Layer,3-27,3.4.3 Go-Back-N,接收方: ACK-only: 给当前正确按序接收到的序号最大的分组发送ACK 可能会产生重复的ACK 只需要记住“期待接收的序号”(除此之外都丢

12、弃并发送ACK) 乱序的分组: 丢弃 (不缓存) - 不需要接收方缓冲区! 对当前正确按序接收到的序号最大的分组再次发送ACK,重传错误分组之后的所有分组,3: Transport Layer,3-28,3.4.3 Go-Back-N,Window size = 4,3: Transport Layer,3-29,3.4.4 选择性重传,接收方对每个正确接收的分组都独立回复ACK 如果需要,缓存分组,以确保按序递交到上层 发送方仅仅重新发送未被确认的分组 对每个未被确认的分组都设定了timer 发送方窗口 N 个连续的序列号 限制了可发送的和已发送为被确认的分组个数,仅仅重传错误分组,3: T

13、ransport Layer,3-30,3.4.4 选择性重传,3: Transport Layer,3-31,Selective repeat:,接收方无法区别0号分组是旧的副本还是新的分组! Q: 序列号范围和窗口大小的关系? A:序列号为 N bit,窗口大小是 2N/2,Example: seq #s: 0, 1, 2, 3 window size=3,3: Transport Layer,3-32,3.5 面向连接 : TCP,3.5.1 TCP连接 3.5.2 TCP 段结构 3.5.3 序列号和ACK号 3.5.5 可靠数据传输 3.5.6 流量控制 3.5.7 往返时间和超时,

14、3: Transport Layer,3-33,3.5.1 TCP: Overview,全双工传输: 在一个连接上有双向数据流 MSS: maximum segment size 面向连接: 握手 流量控制: 发送方不会淹没接收方 拥塞控制,点到点: 一个发送方,一个接收方 可靠,按序的字节流 流水线式: TCP拥塞控制和流量控制都设置了窗口大小 send 1 super computer(1Gbps) 1 pc(100Kbps) link: 1Mbps ; 500 pc (100Kbps) 500 pc(100Kbps),流量控制 拥塞控制,3: Transport Layer,3-46,3

15、.6.2 拥塞控制两种解决方法,Open-loop control(开环控制) 提前避免: 以良好的设计避免问题出现 漏桶算法 close-loop control(闭环控制) 事后解决。 基于反馈环路的概念 监测网络系统,以检测拥塞发生 汇报拥塞信息 解决问题 2种解决方案: 增加资源; 降低载荷 降低发送速率 阻塞分组算法,3: Transport Layer,3-47,3.6.2拥塞控制两种解决方法,开环控制 漏桶算法 将突发通信量转换为平稳连续的通信量 (通信量整形),3: Transport Layer,3-48,3.6.2 拥塞控制两种解决方法,(a) 仅影响源端的抑制分组.,2.

16、 闭环控制 站站抑制分组法,(b) 站站抑制分组,3: Transport Layer,3-49,3.7 TCP 拥塞控制,接受方容量 网络容量 接受方窗口 拥塞窗口,2个阶段 慢速启动 拥塞避免 重要的变量: Congwin拥塞窗口 Threshold临界值: 在慢速启动和拥塞避免2个阶段之间定义临界值,3: Transport Layer,3-50,TCP慢速启动,3: Transport Layer,3-51,3.7 TCP 拥塞控制,Internet 拥塞控制算法 3个参数 : 接受方窗口 , 拥塞窗口 , 临界值 算法 : 使用慢速启动算法增加Congwin,直到到达临界值 从临界值

17、开始, Congwin线性增长,直到发生超时现象(即传输失败) 当发生超时,临界值重新设置为当前拥塞窗口的一半,3: Transport Layer,3-52,TCP 拥塞避免,3: Transport Layer,3-53,Chapter 3:transport layer review,3: Transport Layer,3-54,Reliable data transfer,Channel : Error , lost, Disorder ACK(NAK)+retransmit , timer, sequence number,Stop and wait Go back N Select repeat,: send , stop and wait for ACK or NAK, send, :if seq. number= n bit , then Wr=1 Ws 2n-1 :if seq. number= n bit , then Wr=Ws 2n-1,3: Transport Layer,3

温馨提示

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

最新文档

评论

0/150

提交评论