书签 分享 收藏 举报 版权申诉 / 69
上传文档赚钱

类型计算机自顶向下方法第三章课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:2210832
  • 上传时间:2022-03-21
  • 格式:PPT
  • 页数:69
  • 大小:1.93MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《计算机自顶向下方法第三章课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    计算机 向下 方法 第三 课件
    资源描述:

    1、第3讲 传输层之一1传输服务和协议传输服务和协议r提供运行在不同主机中提供运行在不同主机中进进程间程间的的逻辑通信逻辑通信 r传输协议仅运行在端系统传输协议仅运行在端系统中中 r传输传输 vs. 网络层服务网络层服务 :r网络层网络层: 在端系统间进行在端系统间进行通信通信r传输层传输层: 在进程间进行通在进程间进行通信信 m依赖于依赖于, 加强了加强了, 网络层的网络层的服务服务 applicationtransportnetworkdata linkphysicalapplicationtransportnetworkdata linkphysicalnetworkdata linkphy

    2、sicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicallogical end-end transport第3讲 传输层之一2rThe blacks The Whites mike maryBill Ann第3讲 传输层之一3传输层协议传输层协议Internet 传输服务传输服务:r可靠可靠, 按序点对点递交按序点对点递交 (TCP)m拥塞控制拥塞控制m流量控制流量控制m连接建立连接建立r不可靠的不可靠的 (“尽力而为尽力而为”), 无序的点对点或广

    3、播递交无序的点对点或广播递交: UDPr不能提供的服务不能提供的服务: m实时性实时性m带宽承诺带宽承诺m可靠的广播通信可靠的广播通信 applicationtransportnetworkdata linkphysicalapplicationtransportnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicallogical end-end transpor

    4、t第3讲 传输层之一4applicationtransportnetworkMP2applicationtransportnetwork复用复用/分用分用(multiplexing/Demultiplexing)回顾回顾: segment (段)(段)- 传输层实体间交换数据传输层实体间交换数据的单位的单位 mTPDU: 传输层数据传输层数据单元单元receiverHtHn分用分用: 将接收到的段传将接收到的段传递给正确的应用层进程递给正确的应用层进程 segmentsegmentMapplicationtransportnetworkP1MMMP3P4segmentheaderapplica

    5、tion-layerdata第3讲 传输层之一5复用复用/分用分用复用复用/分用分用:r基于发送方基于发送方, 接收方的端口号接收方的端口号, IP 地址地址m源源, 目的端口目的端口 #s 存在于存在于每个段中每个段中m回顾回顾: 用于特定应用的常用于特定应用的常用端口号(用端口号(well-known port number)从多个应用进程获取从多个应用进程获取数据数据, 用首部用首部(便于随便于随后的分用后的分用)封装数据封装数据源端口 #宿端口宿端口 #32 bits应用层数据 (报文)其他首部字段其他首部字段TCP/UDP 段格式复用:第3讲 传输层之一6复用复用/分用分用: 举例举

    6、例主机 A服务器 Bsource port: xdest. port: 23source port:23dest. port: x端口的使用: 简单的 telnet 应用Web客户端主机 AWeb服务器 BWeb客户端主机 CSource IP: CDest IP: Bsource port: xdest. port: 80Source IP: CDest IP: Bsource port: ydest. port: 80端口的使用: Web 服务器Source IP: ADest IP: Bsource port: xdest. port: 80第3讲 传输层之一7UDP: 用户数据报协议用

    7、户数据报协议 RFC 768r“最简约的最简约的” Internet 传传输协议输协议r“尽力而为的尽力而为的” 服务服务, UDP 数据段可以数据段可以:m丢失丢失m应用数据不按序到达应用数据不按序到达r无连接无连接:m在在UDP收发双方之间收发双方之间, 无无需握手信号需握手信号m每个每个 UDP 数据段的操作数据段的操作都互相独立都互相独立为什么需要为什么需要 UDP?r无需建立连接无需建立连接 (会增加会增加延迟延迟)r简单简单: 在收发双方之间在收发双方之间没有连接状态没有连接状态r段首较短段首较短r无拥塞控制无拥塞控制: UDP 可按可按需要随时发送需要随时发送第3讲 传输层之一8

    8、UDP: (续续) r经常为流媒体应用使用经常为流媒体应用使用m允许数据丢失允许数据丢失m对传输速率敏感对传输速率敏感r其他其他 UDP用途用途 (why?):mDNSmSNMPr若需要通过若需要通过 UDP进行可靠进行可靠传输传输:在应用层增加可靠性在应用层增加可靠性措施措施m在应用程序中在应用程序中-专门的专门的出错恢复机制出错恢复机制!源端口 #宿端口 #32 bits应用层数据 (报文)UDP 数据报格式lengthchecksum长度长度, UDP段的字节数段的字节数,包括首部包括首部第3讲 传输层之一9UDP 校验和(校验和(checksum)发送方发送方:r将段的内容看作一串将段

    9、的内容看作一串16位整数位整数rchecksum: 作段内容作段内容的加法的加法(补码和补码和)r发送方将补码和放入发送方将补码和放入 UDP checksum 字段字段接收方接收方:r对接收到的段内容进行补码和对接收到的段内容进行补码和计算计算r检查计算结果是否与收到的校检查计算结果是否与收到的校验和相等验和相等:mNO 查出错误查出错误mYES 没查出错误没查出错误. 但是仍但是仍有可能存在错误有可能存在错误? 目标目标: 检测传输段中的检测传输段中的“错误错误” (e.g., 位错位错)第3讲 传输层之一10可靠数据传输原理可靠数据传输原理r在应用、传输、链路层都十分重要在应用、传输、链

    10、路层都十分重要r属于网络工程的属于网络工程的top-10 课题之一课题之一!r不可靠传输通道的特性将决定可靠传输协议不可靠传输通道的特性将决定可靠传输协议(rdt)的复杂性的复杂性第3讲 传输层之一11可靠数据传输可靠数据传输: 开始起步开始起步发送方发送方接收方接收方rdt_send(): 由上层进行调用由上层进行调用, (e.g., 应用进程应用进程.). 将数据传入发送将数据传入发送方并由其传给接收方的上层方并由其传给接收方的上层udt_send(): 由由rdt调用调用,将分组通过不可靠的信道传到接将分组通过不可靠的信道传到接收方收方rdt_rcv(): 当数据到达接受方时调当数据到达

    11、接受方时调用用deliver_data(): 由由 rdt调调用用 将数据递交给上层将数据递交给上层第3讲 传输层之一12可靠数据传输可靠数据传输: 开始起步开始起步我们将要我们将要:r逐步发展收发双方的可靠数据传输协议逐步发展收发双方的可靠数据传输协议 (rdt)r仅考虑单向的数据传输仅考虑单向的数据传输m但控制信息将双向流动但控制信息将双向流动!r使用有限状态机使用有限状态机 (FSM) 来定义发送方来定义发送方, 接收方接收方state1state2事件导致状态的转换在状态转换过程中的动作状态状态: 当实体处于某个当实体处于某个“状态状态”时,时, 下个状态下个状态只能由下个事件来转只能

    12、由下个事件来转变变事件动作第3讲 传输层之一13Rdt1.0: 在可靠信道上进行可靠的数据传输在可靠信道上进行可靠的数据传输r所依赖的信道非常可靠所依赖的信道非常可靠m不可能有位错不可能有位错m不会丢失数据不会丢失数据r分别为发送方和接收方建立分别为发送方和接收方建立 FSMs :m发送方将数据送入所依赖的信道发送方将数据送入所依赖的信道m接收方从所依赖的信道读出数据接收方从所依赖的信道读出数据第3讲 传输层之一14Rdt2.0: 在可能发送位错的信道上传输在可能发送位错的信道上传输r所依赖的信道有可能在分组数据中出现位错所依赖的信道有可能在分组数据中出现位错m回顾回顾: UDP checks

    13、um 可发现位错可发现位错r问题问题: 如何从错误中恢复如何从错误中恢复 :m进行确认进行确认 (ACKs): 由接收方法送报文向发送方进行确认由接收方法送报文向发送方进行确认m发送否认发送否认 (NAKs):由接收方法送报文向发送方进行否认,说明由接收方法送报文向发送方进行否认,说明分组有错分组有错m发送方在收到发送方在收到NAK后进行分组重传后进行分组重传m在人类交往中是不是也有在人类交往中是不是也有 ACKs, NAKs?rrdt2.0的新机制 (在在 rdt1.0基础之上):m错误检测错误检测m接收方的反馈接收方的反馈: 控制信息控制信息 (ACK,NAK) rcvr-sender第3

    14、讲 传输层之一15rdt2.0: 有限状态机定义有限状态机定义发送方的发送方的FSM接收方接收方FSM第3讲 传输层之一16rdt2.0: 运行过程运行过程 (未发现错误未发现错误)发送方发送方 FSM接收方接收方 FSM第3讲 传输层之一17rdt2.0:运行过程运行过程 (出错情况出错情况)发送方 FSM接收方FSM第3讲 传输层之一18rdt2.0 有一个致命的缺点有一个致命的缺点!若若ACK/NAK 报文丢失报文丢失?r发送方将不会知道接收端发发送方将不会知道接收端发生了什么生了什么!r假如进行重传假如进行重传 : 可能发生数可能发生数据重复据重复怎么办怎么办?r发送发送 ACK/NA

    15、K 来回应接收来回应接收方的方的 ACK/NAK? 那么如果那么如果发送方的发送方的 ACK/NAK 丢失丢失?r重传重传, 但可能可能导致重传了但可能可能导致重传了正确的分组正确的分组!管理重复的问题管理重复的问题: r发送方给每个分组加上发送方给每个分组加上sequence number (序号)(序号)r如果如果ACK/NAK丢失,发送方丢失,发送方则重传正确的分组则重传正确的分组r接收方丢弃重复的分组接收方丢弃重复的分组 (不向不向上递交上递交)发送方法送一个分组,然发送方法送一个分组,然后等待接收方的响应后等待接收方的响应停等策略停等策略第3讲 传输层之一19rdt2.1: 发送方发

    16、送方, 管理丢失的管理丢失的 ACK/NAK第3讲 传输层之一20rdt2.1: 接收方接收方, 管理丢失的管理丢失的 ACK/NAK第3讲 传输层之一21rdt2.1: 讨论讨论发送方发送方:r给分组加给分组加seq #r两个两个 #s (0,1) 够否,够否,为什么为什么?r必须查收必须查收ACK/NAK r两倍的状态两倍的状态m必须必须“ 记忆记忆” 状态,是状态,是否否 “正确的正确的”分组具有分组具有 0 或或 1 seq. #接收方接收方:r必须查验接收到的分组必须查验接收到的分组 是否重复是否重复m状态可以指出状态可以指出0 或或 1 是是期望中的期望中的 seq #r注意注意:

    17、 接收方不会知道接收方不会知道最后的最后的ACK/NAK 是否是否为发送方正确接收为发送方正确接收第3讲 传输层之一22rdt2.2: 无无 NAK的协议的协议r 其功能等同其功能等同 rdt2.1, 但但仅使用仅使用 ACKr不使用不使用 NAK, 接受方只接受方只为最后正确接受的报文为最后正确接受的报文发送发送 ACKm接收方必须显式表明接收方必须显式表明ACK 的的分组分组 seq #r发送方得到双重发送方得到双重ACK导导致致 NAK的相同结果的相同结果: 重重传正确的分组传正确的分组发送方FSM!第3讲 传输层之一23rdt3.0: 通道上可能出错和丢失数据通道上可能出错和丢失数据新

    18、的假设新的假设: 所依赖的信道所依赖的信道会丢失数据会丢失数据 (数据或数据或 ACK)mchecksum, seq. #, ACK, 重发机制会有帮助重发机制会有帮助,但还远远不够,但还远远不够Q: 如何处理数据丢失如何处理数据丢失?m发送方可以等待,当某些发送方可以等待,当某些数据或数据或ACK 丢失时丢失时, 进行进行重传重传m想一想想一想: 缺点缺点?方法方法: 发送方等待发送方等待ACK一段一段 “适当的适当的” 时间时间r如果在这段时间里没有收到则如果在这段时间里没有收到则进行重传进行重传r如果分组如果分组(或或 ACK)仅仅被延迟仅仅被延迟了了 (没有丢失没有丢失):m重传将导致

    19、重复重传将导致重复, 但使用但使用seq. #s 可以控制可以控制m接收方必须定义被接收方必须定义被 ACK分组分组的的 seq #r需要进行倒计时需要进行倒计时第3讲 传输层之一24rdt3.0 发送方发送方第3讲 传输层之一25rdt3.0 接收方接收方第3讲 传输层之一26rdt3.0 的运行的运行第3讲 传输层之一27rdt3.0 的运行的运行第3讲 传输层之一28rdt3.0的性能的性能rrdt3.0 可用可用, 不过性能很糟不过性能很糟r例如例如: 1 Gb/s 链路链路, 15 ms 端对端的延迟端对端的延迟, 1KB 分组分组:Ttransmit=8kb/pkt10*9 b/s

    20、ec= 8 ms利用率 = U = =8 microsec30.016 msecfraction of timesender busy sending= 0.00015m1KB 分组每分组每 30 ms - 33kB/sec 在在 1 Gb/s 链路上的吞吐量链路上的吞吐量m网络协议限制了物理资源的利用网络协议限制了物理资源的利用!第3讲 传输层之一29流水线协议(参见流水线协议(参见p79-84)流水作业流水作业: 发送端允许发送多个发送端允许发送多个, “悬在空中悬在空中”, 等待应等待应答的分组答的分组m必须增加顺序号的位数必须增加顺序号的位数m在发送和接收端增加缓存在发送和接收端增加缓

    21、存r两种常用的流水线协议两种常用的流水线协议: 第第N个分组重发个分组重发(go-Back-N), 选择应答选择应答第3讲 传输层之一30从第从第N个分组重发个分组重发(Go-Back-N)发送方发送方:r在分组首部设置在分组首部设置k位位 seq #r使用尺寸为使用尺寸为N的的“滑动窗口滑动窗口(p80)”, 允许连续的多个分组不被应答允许连续的多个分组不被应答rACK(n): ACK所有所有n号之前,包括号之前,包括n号在内的分组号在内的分组- “积累式积累式ACK”m可能产生重复的可能产生重复的ACK (见接收方见接收方)r为每个未应答(为每个未应答(in-flight)的分组设置计时器

    22、的分组设置计时器(timer)r当当发生超时:发生超时:timeout(n): 重传重传n号和号和n号以后的号以后的所有所有分组分组第3讲 传输层之一31GBN: 发送方扩展的发送方扩展的 FSM上层调用:ACK的接收超时事件第3讲 传输层之一32GBN: 接收方扩展的接收方扩展的 FSM接收方举例接收方举例:rACK-only: 总是对正确接收到的分组中按序(总是对正确接收到的分组中按序( in-order )对最高)对最高 seq # 进行进行ACKm可以产生重复的可以产生重复的ACKsm仅仅需要记住仅仅需要记住 expectedseqnum(预期的序号)r失序分组失序分组: m丢弃丢弃

    23、(不缓存不缓存) - 不进行接收缓存不进行接收缓存!m接收到的分组中按序对最高接收到的分组中按序对最高 seq # 进行进行ACK第3讲 传输层之一33GBN 的运行的运行第3讲 传输层之一34选择应答选择应答(SR)-p84r接收方逐个对所有正确收到的分组进行应答接收方逐个对所有正确收到的分组进行应答m如有必要,对接收到的(失序)分组进行缓存如有必要,对接收到的(失序)分组进行缓存, 以便最后对以便最后对上层进行有序递交上层进行有序递交r发送方仅对未收到应答的分组进行重发发送方仅对未收到应答的分组进行重发m发送方未每个发送方未每个unACKed 分组设置计时器分组设置计时器 r发送方的窗口发

    24、送方的窗口mN 个连续的个连续的 seq #sm同样对已发送的同样对已发送的seq #s, unACKed分组进行限制分组进行限制第3讲 传输层之一35选择应答选择应答: 发送方发送方, 接收方的窗口接收方的窗口第3讲 传输层之一36选择应答选择应答上层数据到达上层数据到达 :r如果窗口中的下一个序号可如果窗口中的下一个序号可用,发送分组用,发送分组timeout(n):第第n个计时器跳个计时器跳r重发分组重发分组n, 计时器复位计时器复位 ACK(n) 到达到达sendbase,sendbase+N:r标记分组标记分组 n 已经收到已经收到r如如n为为unACKed分组中的最小分组中的最小值

    25、值, 将窗口下沿前推倒下一个将窗口下沿前推倒下一个unACKed seq # 发送方分组分组n到达到达rcvbase, rcvbase+N-1r发送发送 ACK(n)r失序失序: 缓存缓存r有序有序: 递交到上层递交到上层 (同时递交同时递交缓存中的其他有序分组缓存中的其他有序分组), 将将窗口前推倒下一个尚未收到窗口前推倒下一个尚未收到的分组的分组分组分组n到达到达 rcvbase-N,rcvbase-1r虽然接收方曾经确认,但仍虽然接收方曾经确认,但仍然需要然需要ACK(n)其他情况其他情况: 忽略分组忽略分组接收方第3讲 传输层之一37选择应答的运行选择应答的运行第3讲 传输层之一38第

    26、第4讲讲 传输层之二传输层之二本讲目的本讲目的: rInternet传输层传输层的实现和实例的实现和实例r教科书参考教科书参考m第第8章章本讲概述:r面向连接的传输: TCPm可靠传输m流量控制m连接管理rTCP拥塞控制r拥塞控制原则第3讲 传输层之一39TCP: 概述概述 RFCs: 793, 1122, 1323, 2018, 2581r全双工数据传输全双工数据传输:m在同一连接上双向传输在同一连接上双向传输mMSS: maximum segment size(最大段字(最大段字节数节数-1500,536,512)r面向连接面向连接: m握手过程握手过程 (交换控制信息交换控制信息) 在交

    27、换数据前初始化收发在交换数据前初始化收发双方的状态双方的状态,“三次握手三次握手”r流量控制流量控制:m发送方的发送速度不得超发送方的发送速度不得超过接收方的处理速度过接收方的处理速度r点对点点对点:m一个发送方一个发送方, 一个接收方一个接收方 r可靠可靠, 按序的字节流按序的字节流 :m无无 “报文边界报文边界”,无结构,无结构但有顺序但有顺序r流水式控制流水式控制:mTCP的拥塞和流量控制,设的拥塞和流量控制,设置窗口大小置窗口大小r发送发送& 接收缓存接收缓存socketdoorTCPsend bufferTCPreceive buffersocketdoorsegmentapplic

    28、ationwrites dataapplicationreads data第3讲 传输层之一40TCP 段格式段格式(p238)source port #dest port #32 bits应用数据 (可变长度)sequence numberacknowledgement numberrcvr window sizeptr urgent datachecksumFSRPAUheadlennotusedOptions (可变长度-MSS)URG: urgent data (一般不用)ACK: ACK #validPSH: push data now(一般不用)RST, SYN, FIN:conn

    29、ection estab(setup, teardowncommands)# bytes 接收方愿意接受的按发送数据的字节计算(不是按段数!)Internetchecksum(as in UDP)第3讲 传输层之一41TCP seq. #s 和和 ACKsSeq. #s:m该数据段第一个字节该数据段第一个字节在(整个报文)字节在(整个报文)字节流中流中 “编号编号” ACKs:mseq #为预期从对方为预期从对方发来的发来的“下一个下一个”字字节的编号节的编号m积累的积累的 ACKQ: 接收方如何接受失序的接收方如何接受失序的数据段数据段mA: TCP 没有定义没有定义, - 由程序设计者决定

    30、由程序设计者决定Host AHost BSeq=42, ACK=79, data = CSeq=79, ACK=43, data = CSeq=43, ACK=80UsertypesChost ACKsreceipt of echoedChost ACKsreceipt ofC, echoesback Ctime简单的 telnet 场景第3讲 传输层之一42TCP: 可靠数据传输可靠数据传输简化的发送方, 假设waitfor eventwaitfor eventevent: data received from application aboveevent: timer timeout fo

    31、r segment with seq # yevent: ACK received,with ACK # ycreate, send segmentretransmit segmentACK processing单向数据传输无流量, 拥塞控制第3讲 传输层之一43TCP: 可可靠数据传靠数据传输输00 sendbase = initial_sequence number 01 nextseqnum = initial_sequence number 0203 loop (forever) 04 switch(event) 05 event: data received from applica

    32、tion above 06 create TCP segment with sequence number nextseqnum 07 start timer for segment nextseqnum 08 pass segment to IP 09 nextseqnum = nextseqnum + length(data) 10 event: timer timeout for segment with sequence number y 11 retransmit segment with sequence number y 12 compue new timeout interva

    33、l for segment y 13 restart timer for sequence number y 14 event: ACK received, with ACK field value of y 15 if (y sendbase) /* cumulative ACK of all data up to y */ 16 cancel all timers for segments with sequence numbers 加大安全边际加大安全边际Timeout = EstimatedRTT + 4*DeviationDeviation(偏差偏差) = (1-x)*Deviati

    34、on + x*|SampleRTT-EstimatedRTT|第3讲 传输层之一49TCP 连接管理连接管理回顾回顾: TCP 收发双方在数据交收发双方在数据交换开始之前需要建立连接换开始之前需要建立连接r初始化初始化 TCP变量变量:mseq. #sm缓存缓存, 流量控制信息流量控制信息 (e.g. RcvWindow)r客户端客户端: 连接的发起者连接的发起者 Socket clientSocket = new Socket(hostname,port number); -JAVAr服务器服务器: 接受客户端的连接接受客户端的连接 Socket connectionSocket = wel

    35、comeSocket.accept();(建立连接建立连接)三次握手三次握手:Step 1: 客户端的客户端的end system向服向服务器发送务器发送 TCP SYN 控制数据段控制数据段m定义并初始化定义并初始化 seq #Step 2: 服务器的服务器的end system接收接收 SYN, 用用SYNACK控制数据段回控制数据段回答答mACKs 接收到的接收到的 SYNm分配缓存分配缓存m定义定义 server- receiver 初初始化始化 seq. # Step 3:客户端的客户端的end system向服务向服务器发送器发送ACK mACKs 接收到的连接承诺接收到的连接承诺

    36、m分配缓存分配缓存第3讲 传输层之一50TCP 连接管理连接管理 (续续)关闭连接关闭连接:客户端关闭插口客户端关闭插口: clientSocket.close(); Step 1: 客户端客户端 end system 发送发送 TCP FIN 控制段给服控制段给服务器务器 Step 2: 服务器服务器 收到收到 FIN, 用用 ACK应答应答. 关闭连接关闭连接, 发发送送 FIN. clientFINserverACKACKFINclosecloseclosedtimed wait第3讲 传输层之一51TCP 连接管理连接管理 (续续)Step 3: 客户端客户端 收到收到 FIN, 用用

    37、 ACK进行应答进行应答. m随着对接收到的随着对接收到的FIN发送发送ACK-同时进入同时进入 “timed wait(计时等待)(计时等待)”Step 4: 服务器服务器, 接收接收 ACK. 连接关闭连接关闭. 注意注意: 稍加修改稍加修改,即可管理同即可管理同时发生的多个时发生的多个FINs.clientFINserverACKACKFINclosingclosingclosedtimed waitclosed第3讲 传输层之一52TCP 连接管理连接管理 (续续)TCP 客户端实例的生命周期TCP 服务进程的生命周期第3讲 传输层之一53拥塞控制原理拥塞控制原理拥塞拥塞:r非正式的说

    38、法非正式的说法: “过多信源以过快的速率发送了过多的过多信源以过快的速率发送了过多的数据、导致数据、导致网络网络穷于应付穷于应付”r不同于流量控制不同于流量控制!r后果后果:m丢失数据分组丢失数据分组 (路由器缓存溢出路由器缓存溢出)m长时间的延迟长时间的延迟 (在路由器的缓存中排队在路由器的缓存中排队)r在网络发展的技术中的在网络发展的技术中的a top-10 problem!第3讲 传输层之一54缘由缘由/代价代价-拥塞问题拥塞问题:场景场景1 r两个发送端两个发送端, 两个两个接收端接收端r一个路由器一个路由器, 有限有限缓存缓存 r无重传机制无重传机制r发生拥塞时的延发生拥塞时的延迟迟

    39、r可达到的最大吞可达到的最大吞吐量吐量第3讲 传输层之一55缘由缘由/代价代价-拥塞问题拥塞问题: 场景场景 2 r一个路由器一个路由器, 有限有限 缓存缓存 r发送端重传丢失的分组发送端重传丢失的分组第3讲 传输层之一56缘由缘由/代价代价-拥塞问题拥塞问题: 场景场景 2 r设计期望设计期望: (goodput)r“完美的完美的” 重传仅仅是在分组丢失时重传仅仅是在分组丢失时:r重传被延迟的重传被延迟的 (而不是丢失的而不是丢失的)分组造成大量无意义的分组造成大量无意义的 (比起完美比起完美的情况的情况) 对同样的对同样的linlout=linloutlinlout拥塞的拥塞的“代价代价”

    40、 : r在给定的在给定的 “goodput”下需要做更多的工作下需要做更多的工作(重传重传)r不必要的重传不必要的重传: 链路上充斥着分组的多个拷贝链路上充斥着分组的多个拷贝第3讲 传输层之一57缘由缘由/代价代价-拥塞问题拥塞问题: 场景场景 3 r四个发送端四个发送端r多步跳路径多步跳路径r超时超时/重传重传linQ: 当当 和和 增加时发增加时发生了什么生了什么?lin第3讲 传输层之一58缘由缘由/代价代价-拥塞问题拥塞问题 : 场景场景 3 另一种拥塞的另一种拥塞的“代价代价”: r当分组被丢弃时当分组被丢弃时, 所有所有“上游上游”信道为该分组所作的信道为该分组所作的工作统统被浪费

    41、了工作统统被浪费了!第3讲 传输层之一59拥塞问题的解决方案拥塞问题的解决方案端对端的拥塞控制端对端的拥塞控制:r没有来自网络的反馈信息没有来自网络的反馈信息r对拥塞问题的了解来自于对对拥塞问题的了解来自于对数据丢失和延迟的推断数据丢失和延迟的推断r有有 TCP来解决来解决网络辅助的拥塞控制网络辅助的拥塞控制:r路由器向端系统提供反馈路由器向端系统提供反馈m一个比特位的说明一个比特位的说明 (SNA, DECNet, TCP/IP ECN, ATM)m显式告知发送方所应采用显式告知发送方所应采用的数据速率的数据速率两大类拥塞控制的办法两大类拥塞控制的办法:第3讲 传输层之一60案例研究案例研究

    42、: ATM ABR 拥塞控制拥塞控制ABR: available bit rate(可用数据速率)(可用数据速率):r“弹性服务弹性服务” r如果发送方的路径如果发送方的路径“欠负载欠负载” m发送端应该把带宽用足发送端应该把带宽用足r如果发送端路径拥塞如果发送端路径拥塞: m发送端将其数据速率约发送端将其数据速率约束到最小承诺速率束到最小承诺速率RM (resource management) cells(资源管理信元)(资源管理信元):r由发送端发送由发送端发送, 掺和在数据信元掺和在数据信元一起一起r在在 RM 信元中的数据位由交换机信元中的数据位由交换机设定设定 (“网络辅助网络辅助”

    43、) mNI bit: 不得增加发送速率不得增加发送速率 (轻微拥塞轻微拥塞)mCI bit: 拥塞指示拥塞指示rRM信元由接收端返回给发送端信元由接收端返回给发送端, 所有数据位保持原样所有数据位保持原样 第3讲 传输层之一61案例研究案例研究: ATM ABR 拥塞控制拥塞控制r在在RM信元中有信元中有2字节的字节的 ER (explicit rate) 字段字段m处于拥塞的交换机可降低信元中的处于拥塞的交换机可降低信元中的ER 值值m发送端的发送速率可以在路径上得到最低程度的支持发送端的发送速率可以在路径上得到最低程度的支持r数据信元的数据信元的EFCI 位位: 在拥塞的交换机中被设成在拥

    44、塞的交换机中被设成 1m如果在如果在RM信元之前的数据信元的信元之前的数据信元的EFCI置置1, 发送端将在返回的发送端将在返回的 RM的的RM信元中将信元中将CI置置1第3讲 传输层之一62TCP 拥塞控制拥塞控制r端到端的控制端到端的控制 (无需网络协助无需网络协助)r传输速率限制由建立在数据段之上的拥塞窗口尺寸传输速率限制由建立在数据段之上的拥塞窗口尺寸Congwin决定决定:rw=数据段数量数据段数量, 每个具有每个具有 MSS字节字节,在一个在一个 RTT周期周期内发送内发送:吞吐量 = w * MSS RTT Bytes/secCongwin第3讲 传输层之一63TCP 拥塞控制拥

    45、塞控制:r两个两个 “阶段阶段”mslow start(慢启动)(慢启动)mcongestion avoidance(拥塞避免)拥塞避免)r 重要变量重要变量:mCongwinmthreshold: 定义两个定义两个慢启动之间,拥塞控制阶慢启动之间,拥塞控制阶段的门限值段的门限值r“刺探刺探” 可用带宽可用带宽: m理想情况理想情况: 全速传输全速传输 (Congwin 越大越好越大越好) 没没有数据丢失有数据丢失m增加增加 Congwin 直到出现直到出现数据丢失数据丢失 (拥塞拥塞)m数据丢失数据丢失: 减小减小 Congwin, 然后重新开始然后重新开始进行刺探进行刺探(增加增加Cong

    46、win)第3讲 传输层之一64TCP Slowstart(慢启动)(慢启动)r窗口尺寸按指数递增窗口尺寸按指数递增 (每隔每隔 RTT) (不算太慢不算太慢!)r丢失事件丢失事件: 超时超时(Tahoe TCP) 和和/或三次重复或三次重复 ACKs (Reno TCP)initialize: Congwin = 1for (each segment ACKed) Congwin+until (loss event OR CongWin threshold)Slowstart 算法Host Aone segmentRTTHost Btimetwo segmentsfour segments第3

    47、讲 传输层之一65TCP 拥塞避免拥塞避免/* slowstart is over */ /* Congwin threshold */Until (loss event) every w segments ACKed: Congwin+ threshold = Congwin/2Congwin = 1perform slowstart拥塞避免11: 在出现三次重复的ACK后,TCP Reno 将跳过 slowstart (快速恢复 )在此阶段,Congwin以线性方式增长,发生超时,门限值减半第3讲 传输层之一66TCP 拥塞避免策略拥塞避免策略:rAIMD: madditive incre

    48、ase(加(加法形式增加);法形式增加); multiplicative decrease(倍数形式减少)(倍数形式减少)m每个每个RTT将窗口尺寸将窗口尺寸加加1m当发生数据丢失时用当发生数据丢失时用2除窗口尺寸除窗口尺寸AIMD教科书:教科书:p244-245第3讲 传输层之一67TCP 公平性公平性公平性目标公平性目标: 如果如果 N TCP 会会话共享瓶颈链路话共享瓶颈链路, 每个应该每个应该分得分得 1/N 链路传输能力链路传输能力TCP connection 1bottleneckroutercapacity RTCP connection 2第3讲 传输层之一68为什么说为什么说

    49、TCP是公平的是公平的?两个竞争性的会话两个竞争性的会话:r当吞吐量增加时,加法的结果斜率为当吞吐量增加时,加法的结果斜率为 1r而成倍递减则会等比减少连接的吞吐量而成倍递减则会等比减少连接的吞吐量 RR同等的带宽共享连接 1 的吞吐量连接 2 的吞吐量congestion avoidance: additive increaseloss: decrease window by factor of 2拥塞避免: 加法形式增加窗口尺寸丢包: 以2为除数减小窗口来进行带宽的充分使用第3讲 传输层之一69第第4讲讲: 小结小结r传输层服务原理传输层服务原理:m复用复用/分用分用m可靠数据传输可靠数据传输m流量控制流量控制m拥塞控制拥塞控制r因特网传输层的实现和实例因特网传输层的实现和实例mUDPmTCP下一步下一步:r离开网络的离开网络的“边缘边缘” (应用应用/ 传输层传输层)r进入网络的进入网络的 “核心核心”

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:计算机自顶向下方法第三章课件.ppt
    链接地址:https://www.163wenku.com/p-2210832.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库