计算机网络第5章运输层机械工业出版社ISBN978-7-111-30641-2计算机网络本章学习内容及要求•了解–套接字的作用•熟悉–运输层复用与分解的基本概念–服务质量的基本概念•掌握–运输层协议基本功能的实现技术和方法–实现可靠数据传输的网络协议的设计与分析方法–用户数据报UDP、传输控制协议TCP的基本内容计算机网络5.1运输层概述•5.1.1运输层提供的服务•5.1.2运输层与相邻层的关系•5.1.3运输服务质量和运输协议数据单元计算机网络5.1.1运输层提供的服务•运输层为应用层提供可靠的运输服务–运输层的位置在网络边缘,属于端到端的层次•运输层协议处在计算机网络中的端系统之间,为应用层提供可靠的端到端的通信和运输连接–运输层为高层用户屏蔽了通信子网(网络核心)的细节–运输层起着承上启下的功用–运输层除了要为应用进程提供复用和分用,还要为应用报文提供差错检测,包括:•传输数据出错、传输数据丢失、应答数据丢失、重复、失序、超时等–运输协议要为端系统提供流量控制,并对尽力交付的网络提供拥塞控制等。还有连接建立与连接释放、连接控制和序号设置等计算机网络运输协议的复杂程度和底层网络的关系图中用高度表示协议的复杂程度。可看出在应用层和运输层的接口处,运输层必须为应用层提供可靠的端到端运输服务若网络服务可以提供很好的质量,相应的运输协议就可以很简单,反之若网络服务很差,对应的运输协议就很复杂计算机网络5.1.2运输层与相邻层的关系•依据OSI对运输层抽象描述,运输层向应用层提供运输服务的是运输实体,使用运输服务的是运输服务用户–运输服务用户可以是应用层中的各种应用进程,或是应用层实体•运输层中的两个对等运输实体通过运输协议进行通信,运输层提供的运输服务也使用了下面网络层向上提供的网络服务计算机网络运输层协议和网络层协议的作用范围网络层是为主机之间提供逻辑通信,运输层为应用进程之间提供端到端的逻辑通信计算机网络5.1.3运输服务质量和运输协议数据单元•运输层服务质量的参数有:–⑴连接建立延迟;⑵连接建立失败的概率;⑶吞吐率;⑷传输延迟;⑸残余误码率;⑹安全保护;⑺优先级;⑻恢复功能•运输服务原语计算机网络TPDU与分组、帧的嵌套•运输服务原语用来描述运输用户如何访问运输服务•运输服务需要运输协议,即运输协议数据单元TPDU来实现计算机网络5.2运输层协议的要素•5.2.1网络中的寻址•5.2.2运输层的复用与分用•5.2.3运输连接的建立与释放•5.2.4运输协议实现的控制计算机网络5.2.1网络中的寻址•网络寻址是最重要的技术,是网络互连的关键–网络中怎样寻址–计算机网络中的主机(计算机设备)也有连接标识,在因特网中用IP地址作为•网络节点(计算机设备)的网络接口的连接标识–这些连接标识是一个逻辑地址,与计算机设备的物理地址相联系•采用连接标识是为了寻址的方便•在计算机网络中必须使用逻辑地址才有可能实现计算机设备以及网络的互连计算机网络网络中的地址及层次对应计算机网络中有四种地址:域名地址、端口地址、IP地址、物理地址。自顶向下依次与应用层、运输层、网络层、数据链路层对应计算机网络网络地址的使用•访问网络中的计算机设备,寻址最终要执行物理地址,才能找到网络中一个主机的位置•网络地址之间的转换–网络中寻址时需进行地址转换,需要用到地址转换(映射)协议•域名地址通过域名服务器和域名解析协议(DNS)找到对应的IP地址•IP地址通过地址解析协议(ARP)找到对应的物理地址•IP地址与端口地址构成套接字(Socket),用于标识不同的应用服务进程计算机网络5.2.2运输层的复用与分用•运输层一个很重要的功能就是–复用和分用(分解)•源主机的应用层的多个进程通过应用层和运输层之间的不同端口向下递交到运输层–再向下复用到网络层,使用网络层提供的服务•目的主机的运输层使用分用功能–根据套接字标识,通过不同的端口号把报文分别交付到相应的应用进程计算机网络3个应用进程连接的复用和分用两台客户机主机A、B,一台服务器主机C,A有一个HTTP进程与服务器连接,B有两个HTTP进程与服务器连接计算机网络5.2.3运输连接的建立与释放•连接建立采用三次握手机制,连接释放采用四次握手–这里的一次握手其实讲的是协议数据单元从通信的一方传输到另一方,之所以采用三次握手,原因是下层网络服务是不可靠的–连接释放分为突然释放和文雅释放,无连接的服务使用突然释放,面向连接的服务采用文雅释放计算机网络面向连接的连接建立和释放状态图计算机网络5.2.4运输协议实现的控制•连接控制与缓冲管理•连接控制涉及到收发双方的同步–即接收方能够来得及接收到达的数据单元,能够区分所接收的协议数据单元的边界•发送方和接收方都要有足够的缓冲区存放协议数据单元–网络协议要能够建立相应的缓冲区,分配和管理缓冲区的大小,并在连接释放后立即释放所占用的缓冲区•差错控制、序号设置、超时机制计算机网络5.3基本的网络协议设计与分析•5.3.1可靠数据传输协议设计的基本概念•5.3.2滑动窗口协议描述•5.3.2理想的网络协议•5.3.3停-等协议•5.3.4回退N协议•5.3.5选择重传协议•5.3.63种可靠数据传输协议的比较计算机网络5.3.1可靠数据传输协议设计基本概念•可靠数据传输协议设计是学习网络的重要基础•网络协议设计的目的是:–实现网络中的可靠数据传输RDT(reliabilitydatatransfer)•对网络协议的描述–可以通过滑动窗口协议–可以使用有限状态机方法,描述协议状态的变化和跃迁–可以使用形式化方法–也可以使用自然语言–也可以使用图形描述计算机网络可靠数据传输的服务模型和服务实现计算机网络5.3.2滑动窗口协议描述•采用滑动窗口协议SWP(slidewindowsProtocol)描述协议的执行情况–其实真正意义上的滑动窗口在网络中是不存在的•采用滑动窗口可以比较形象地反映出网络中收、发双方之间传输协议数据单元时的流量控制、序号变化、以及协议机制的实现过程–给出直观清晰的图示,使得网络协议的设计更加方便、更便于理解•滑动窗口可以采用等分的圆表示,每一等分的圆与协议数据单元的序号对应–也可以采用水平的由带序号的协议数据单元顺序排列的带状表示计算机网络连续ARQ协议(1)123456789101112(a)发送方维持发送窗口(发送窗口是5)发送窗口计算机网络连续ARQ协议(2)123456789101112(a)发送方维持发送窗口(发送窗口是5)发送窗口计算机网络连续ARQ协议(3)123456789101112(a)发送方维持发送窗口(发送窗口是5)发送窗口计算机网络5.3.3理想的网络协议•在对网络协议进行设计时,采用的方法是–先从理想网络情况开始–假设数据在网络中:•①不会出现差错、不会丢失•②能够按序到达•③接收方完全来得及接收到达的数据,不用进行流量控制•④也不用进行拥塞控制计算机网络理想网络传输协议当然这种理想网络是不存在的,之所以如此假设,是想从最简单的网络协议设计入手,再逐步增加实际网络应用中会存在的、需要网络协议解决的问题,最终设计出适用的网络协议计算机网络5.3.4停-等协议•停-等(stop-wait)协议的基本思想是:–在发送方每发送完一个协议数据单元后,就停止发送•等待接收方的确认信息,并把所发送过的数据的副本保留下来–若发送方从接收方收到的确认信息的肯定的•例如ACK,则发送方按顺序接着发送下一个协议数据单元–若收到的反馈信息是否定的,例如NAK•则发送方就重新发送上次发送过的协议数据单元–停-等协议符合数据双向交替(半双工)通信的模型计算机网络停-等协议PDU传输的几种情况若接收方收到一个重复序号的协议数据单元,就可以判定其刚发送的确认信息丢失。若在给定的时间没有收到确认,就说明出现丢失计算机网络停-等协议工作原理图停-等协议的算法:算法是解决问题的步骤,依据算法可以很容易的编写实现算法的程序,进行网络软件的设计计算机网络停-等协议效率的计算停-等协议的信道利用率U:U=tf/tr=tf/(tf+tout)=tf/(tf+2tp),若tf为8μs,tp为15ms,可以计算出U=0.00027,可以看出停-等协议的信道效率很低计算机网络5.3.5回退N协议•累计确认与捎带确认•回退N协议的基本原理是:–发送方可以连续发送落在发送窗口中多个协议数据单元–然后停止发送,等待接收方的确认–这时发送窗口大于1计算机网络回退N协议分析可以将回退N协议的序号范围划分为四个部分计算机网络5.3.6选择重传协议•人们考虑是否可以让接收方把所有收到的数据单元都接收下来,若发生差错,只重新传输出现差错涉及到序号的数据单元,以提高传输效率–减少不必要的重传,这就是选择重传协议的基本思路计算机网络选择重传协议分析计算机网络选择重传协议不成立的示例可能会出现的问题是,传送给接收方的ACK0—ACK6全部丢失了计算机网络5.3.73种可靠数据传输协议的比较•停-等协议的两个窗口的值均为1•回退N协议需要满足Wr+Wt=2K,若不能满足,则滑动窗口协议不能成立•对选择重传协议,接收窗口的值应满足Wr=2K/2,若大于此值,没有什么用处滑动窗口协议讲的是发送窗口在接收窗口的控制下滑动,只有接收窗口向前滑动,同时也向发送方发送了确认信息后,发送窗口收到确认信息后,才会向前滑动计算机网络5.4拥塞控制•5.4.1拥塞控制概述•5.4.2与拥塞控制有关的因素•5.4.3流量控制与拥塞控制•5.4.4拥塞控制原理•5.4.5网络拥塞控制机制计算机网络5.4.1拥塞控制概述•拥塞是不可避免的,但拥塞是要控制的–在某段时间,如果在某一层协议的执行过程中,对网络中的某一资源的需求超过了该资源所能够提供的可用部分,则表明这一资源在该段时间产生了拥塞–造成拥塞的4个主要原因–出现资源拥塞的条件可用公式描述为:∑对资源的需求>∑可用资源计算机网络5.4.2与拥塞控制有关的因素•规模、最优性、公平系数、健壮性•容易实现、仿真结构描述、节点传输模型计算机网络5.4.3流量控制与拥塞控制•流量控制是对一条通信路径上的流量进行控制,其目的是保证发送者的发送速度不超过接收者的接收速度–流量控制只涉及一个发送者和一个接收者,涉及到两个节点–流量控制是局部控制•拥塞控制是对整个通信子网的流量进行控制,其目的是保证通信子网的流量与资源相匹配,不出现系统性能恶化、甚至崩溃的局面–涉及到网络中多个节点(主机、路由器、交换机)–拥塞控制是全局控制计算机网络对拥塞控制产生影响的网络设计策略计算机网络拥塞控制涉及到的层次拥塞控制涉及到的层次有数据链路层、网络层和运输层计算机网络5.4.4拥塞控制原理•理论上说,拥塞控制有两类方法:–开环控制;闭环控制–开环的基本思想是:•通过良好的设计,避免拥塞问题的出现,力求网络在工作时不会发生拥塞,事先将有关发生拥塞的因素考虑周到–闭环是建立在反馈环路基础上的方法,在计算机网络中常采用闭环控制方法。基本思想是:•通过反馈控制,在工作过程中动态控制拥塞计算机网络闭环控制和开环控制计算机网络目前常用的闭环拥塞控制方法•第一种是采用闭环反馈回路–把拥塞信息反馈给源节点,调节源节点发送数据的速率•第二种是在协议包中设计拥塞控制位或字段–把拥塞控制信息放在协议字段中,协议包在传输过程中经过节点时,节点会知道网络中的拥塞情况•第三种是由网络中的节点–例如路由器周期地产生一些协议包,告知或询问网络中的拥塞情况计算机网络拥塞控制描述为了清晰标出理想拥塞控制、无拥塞控制和实际拥塞控制3个曲线,在图中坐标0处将3个曲线画出一些间距计算机网络拥塞控制所起的作用输入负载吞吐量理想的拥塞控制实际的拥塞控制0死锁(吞吐量=0)无拥塞控制拥塞轻度拥塞计算机网络5.4.5网络拥塞控制机制反压反馈、隐式拥塞控制、显式拥塞控制、连接接纳控制(CAC)、基于许可证方法、通信量整形、负载丢弃、拥塞抑制PDU、基于窗口的拥塞控制、基于速率的流量控制、ATM网络中基于速率的拥塞控制计算机网络通信量整形•连接接