数据通信与计算机网络清华n6传输层_第1页
数据通信与计算机网络清华n6传输层_第2页
数据通信与计算机网络清华n6传输层_第3页
数据通信与计算机网络清华n6传输层_第4页
数据通信与计算机网络清华n6传输层_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、第23讲 传输层之二传输控制与UDP1. 流量控制与缓冲 TL的流控涉及TS用户、传输实体和网络服务相互作用得到B的允许(对等流控)得到其传输实体的允许(接口流控) A必须等待,直到: TL流控的复杂性一. 传输控制传输实体a传输实体b接口接口传输层网络层传输用户A传输用户B发送TS用户接收TS用户传输协议SendSegment Indication ACK sendACK sendConfirm Response ACK send传输实体间的传输延迟通常比实际传输时间长而且变化不定接口流控对等流控 基于可靠网络服务的流控什么也不做溢出缓冲区的段都遭丢弃。后压机制拒绝从网络服务接受进一步段。固

2、定滑动窗口协议数据单元采用顺序编号窗口尺寸固定利用确认滑动窗口在某个时刻,发送传输实体有一些已输出的段尚未得到确认。预留途径在长延迟环境中会限制传输连接的吞吐量。接收者通过授予未拥有的空间信用卡而潜在地提高吞吐量如发送者快于接收者某些段将遭丢弃迫使重发信用卡模式经过连接建立过程,发送和接收序号取得同步。每当发送段前移发送窗口的尾部;每当获得信用卡前移发送窗口前沿;数据发送并已确认数据发送但未确认允许的数据传输未用和不可用的序号发送序号分为四部分:012345670123012345670123012345670123012345670123012345670123012345670123012

3、345670123012345670123012345670123传输实体A传输实体BSN0SN1SN2SN3SN4SN5SN6A可发7个段A滑动发送窗口B准备接收7个段B确认3个段,准备再接收额外一个段ACK3, CDT=5A根据信用卡调整发送窗口A耗尽信用卡SN7ACK0, CDT=7初始序号最后收到的ACK最后发送的数据段窗口边界发送的数据确认的数据未确认的数据可发送的数据初始序号最后收到的数据段最后发送的ACK窗口边界收到的数据收到&确认的数据未确认的数据可接收的数据(a)发送序号空间(b)接收序号空间基于不可靠网络服务的流控有效性传输实体发送形为(ACKN, CREDIT M)的控制

4、段ACK N :确认所有直到N的数据段;CREDIT M:允许传输从N1NM的段;为了增加或减少信用卡为X B可发出(ACK N,CREDIT X)为了确认一个新段而不增加信用卡 B可发出(ACK N+1,CREDIT M-1)死锁系统A系统BACKn, CDT=0临时关闭连接ACKn, CDT=m授予A信用卡丢失等待B的授予等待A的传输采用窗口计时器为每个ACK/CREDIT段提供确认死锁2. 多路复用应用多路复用FTPWeb TelnetTelnet 传输层复用概述Web FTPTelnetTelnet复用一般定义向上多路复用TLNL向下多路复用实现技术源、目标端口的应用如何设置端口号源

5、port = x目的port = 23源 port = 23目的port = xTelnet 如何区分选用相同端口号的客户CTelnet ServerIP=A, SP=x, DP=23IP=A, SP=y, DP=23IP=B, SP=x, DP=23三元组:源IP地址、源端口号、目的端口号 A B3. 其他问题网络崩溃采用放弃计时器采用RST段重置连接主机崩溃STPDU0TPDU1发送一文件停等协议崩溃恢复 C客户端的两种状态S0状态 所有TPDU已确认S1状态 最后TPDU未确认协议不能正确恢复的情况TPDUiACKi崩溃S0状态应用程序?应用程序TPDUiACKi?S1状态导致丢失导致重

6、复崩溃客户机策略服务器策略总是重发从不重发当S0时重发当S1时重发AC(W)AWCC(AW)C(WA)WACWC(A)正确重复正确正确正确正确正确正确正确正确正确正确正确重复重复重复重复重复丢失丢失丢失丢失丢失丢失先确认,后写入先写入,后确认客户与服务器采用方案的组合情况有序传送按段编号 按字节量编号重传策略段在传输过程中遭破坏段丢失,没有到达目的地导致重传的事件肯定确认接收者必须确认每个成功接收的段。重传计时器固定长计时器无法响应变化的网络情况自适应模式对等实体并不立即确认;发送者无从知晓收到的ACK是初始传输还是重传段的确认;网络情况瞬间变化;观察到的平均延迟值是否可信赖?传输实体 A传输

7、实体 BSN1SN2SN0SN1SN3SN4SN5SN6SN7SN0ACK3ACK3ACK4ACK5ACK6ACK7ACK0超时,重发SN0超时,重发SN1SN0已废SN0到达重复检测接收端假设它的确认已丢失必须对重复段确认序号空间必须足够大二. 案例学习:UDP协议网络层能够提供在主机之间传送数据报的能力目的地址等同于一个主机,没有对接收数据报的用户或应用程序进行更细致的标识。传输层能够识别主机上的多个目的地址允许多个应用程序在同一台主机上工作并独立地进行数据报的转发。通信的最终目的地不是进程通信的最终目的地是协议端口进程的生成和消失都是动态的接收进程的改换对发送方透明由接收方的功能来识别目

8、的地每台机器是一些抽象的访问目的协议端口(protocol port)OS提供对端口的同步接入能力在接入端口的时候停止计算的运行IGMPIPICMPTCPUDPOSPFRIPBGPDNSTFTPBOOTPSNMPrloginFTPtelnetSMTP各端口都有缓冲区协议软件模块将到达某个端口的分组排成队列发送方要知道目的机的IP地址和对应的协议端口号1. 客户-服务器模型S 重复型服务等待一个客户请求的到来处理客户请求发送响应给客户此时服务器不能为其他客户提供服务并发型服务等待一个客户请求的到来启动一个新的服务器处理这个客户请求新服务器对客户的全部请求进行处理。处理结束后终止该服务器。TCP服

9、务器是并发的;UDP服务器是重复的;每个客户都有自己对应的服务器2. UDP概述UDP提供了不可靠的无连接传输服务。它使用IP携带报文,但增加了对给定主机上多个目标进行区别的能力。 特点 没有确认机制 不对报文排序 没有超时机制 没有反馈机制控制流量报文丢弃、重复和乱序使用UDP的应用程序要承担可靠性方面的全部工作3. UDP报文格式UDP源端口UDP目的端口UDP报文长度UDP校验和数据 UDP源端口 UDP目的端口4B4B可选(0)用于分用操作 UDP长度包含UDP头和数据的字节数 UDP校验和可选(0)减少在可靠性高的LAN上的实现开销4. UDP的伪头与校验和UDP的校验和覆盖了UDP

10、头和UDP数据,但超出了UDP数据报本身的范围。UDP的校验和提供了唯一的对数据是否原封不动传送到目的的监督手段。IP协议并不对IP报文中的数据部分计算校验和 UDP的校验和计算方法按16比特先计算二进制反码再进行异或操作得到校验和UDP数据报的长度可以为奇数字节当校验和为0时表示发送端没有计算校验和当计算出的校验和为0则用全“1”表示如果接收端计算出校验和有错则丢弃数据报接收端计算的校验和应为全0 UDP的伪头UDP源端口UDP目的端口UDP报文长度UDP校验和数据0UDP报文长度32位目的IP地址32位源IP地址协议号(17)伪头填充(0)不被发送伪头的设置允许UDP两次检查数据是否已经正

11、确到达目的地长度字段在校验和计算中出现了两次 UDP报文长度不包括伪头 层次的划分接收端在验证正确性时必须把伪头字段的信息从IP报文的头中抽取出来,以伪头的格式进行装配,然后再重新计算校验和。是否违反分层原则? UDP层可直接得知目的IP地址而不必从IP层找发送用户必须知道目的IP地址。在发送数据时把目的地址告诉UDP。 如果不和IP层交互UDP层是无法得知源IP地址的源IP地址是根据IP层对路由的选择而定。源IP地址标识了数据报传输时所经过的网络接口。5. UDP的封装UDP数据区UDP头IP数据区IP头帧数据区帧头 IP层只负责在互联网络上的一对主机之间进行数据传输 UDP层只负责对一台主

12、机上复用的多个端口进行区分IP层的头指明了源和目的主机地址UDP层的头指明了主机上的源和目的端口IP数据报与分组 IP数据报IP层端到端的传输单元(在分段之前与重组之后)分组IP层与链路层之间传送的数据单元IP头UDP数据区(1473 字节)UDP头IP头1472 字节UDP头IP头IP数据报20字节8字节1字节IP分组IP分组传输层头只出现在第一片数据中;分组可以是一个完整的数据报或数据报的一个分片; 最大UDP数据报长度 IP数据报的最大长度65535个字节20个字节的IP头8个字节的UDP头UDP数据报中用户数据的最大长度为65507个字节 制约UDP数据报长度的因素应用程序可能受程序接

13、口的限制大部分系统省缺提供可读写8192个字节的UDP数据报8192是NFS读写用户数据报的省缺值受TCP/IP内核实现的限制BSD/386 32786个字节SunOS 4.1.3 32767个字节Solaris 2.2 65535个字节用户数据长32758数据报截断IP能够发送/接收特定长度的数据报并不意味着接收应用程序可读取该长度的数据UDP编程接口允许应用程序指定每次返回的字节数接收到的数据报长度大于应用程序所能处理的长度时怎么办?Berkeley版socket API取决于编程接口和实现对数据报进行截断并丢弃任何多余的数据SVR4的socket API是否通知应用程序则取决于版本不截断

14、数据,超出部分的数据在后面的读取中返回TLI API不丢弃数据但返回一个标志6. UDP的复用、分用和端口UDP接收多个应用程序送来的数据报,把它们送给IP层去传输;同时接收IP层送来的UDP数据报,把它们送给对应的应用程序。UDP基于端口的分用端口1端口2端口3IP层UDP与应用程序之间的复用和分用都要通过端口机制来实现每个应用程序在发送数据报之前必须与OS协商以取得协议端口和相应的端口号队列实现方法发送数据报时创建一个内部队列接收数据报检查当前端口发送ICMP端口不可达放入队列等待应用程序访问7. 保留的UDP端口端口号的指派方式集中式管理动态绑定“统一指派”“知名端口”一个集中管理机构负

15、责对端口的指派和发布。所有软件在设计时都要遵守这些指派的规定。当一个应用程序需要使用端口时,网络软件便指派一个端口。TCP/IP采纳了一种混合方式对端口地址进行管理:对某些端口进行指派;但对本地站点和应用程序留下了很大的端口取值范围。十进制数 Internet关键字 UNIX关键字 描述0753676869111161162-ECHODOMAINBOOTPSBOOTPCTFTPSUNRPC-echonameserverbootpsbootpctftpsunrpcsnmpsnmp-trap保留回应域名服务器引导协议服务器引导协议客户机简单文件传送SUN远程过程调用SNMP网络监控程序SNMP陷阱

16、 常用的UDP端口8. UDP服务器的设计服务器启动后处于休眠状态,等待客户请求的到来。当客户数据报到达时,服务器苏醒过来处理数据报中可能的客户请求消息。 客户IP地址及端口号当一个应用程序接收到UDP数据报时,OS必须告诉它是谁发送了这份消息。允许一个UDP服务器对多个客户进行处理 目的IP地址某些应用程序要求知道数据报发给谁。OS从接收到的UDP数据报中将目的IP地址交给应用程序。“IP_RECVDSTADDR”选项BSD/386,4.4BSD支持SVR4,SunOS4.x,Solaris2.x不支持 UDP输入队列单个服务器进程对单个UDP端口(服务器上的知名端口)上的所有客户请求进行处

17、理。每个UDP端口有一个有限大小的输入队列来自不同客户的请求将由UDP自动排队排队溢出可造成内核中UDP模块丢失数据报接收到的UDP数据报以接收顺序交给应用程序应用程序并不知道其输入队列何时溢出没有反馈机制通知客户其数据报被丢弃UDP输出队列是FIFOS 539限制本地IP地址使用通配符UDP服务器在创建UDP端口时可指定或不指定本地IP地址。本地接口接收所有目的地为本地的数据报.指定一个本地IP地址如果指定端口地址为SLIP,则所有从以太网发给服务器的数据报都将返回一个ICMP端口不可达报文。服务器本地地址的绑定导致拒绝接收UDP数据报如果为端口指定了特定的IP地址,那么在匹配目的地址时始终

温馨提示

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

评论

0/150

提交评论