第6章-传输层-5月8日
本作品内容为第6章-传输层-5月8日,格式为 doc ,大小 628224 KB ,页数为 60页
('第6章传输层位于应用层和网络层之间的传输层是分层网络体系结构的关键层次。本章讨论传输层的基本功能及其协议机制,并且介绍了TCP/IP体系结构中的传输层协议TCP和UDP。6.1传输层的基本功能传输层是OSI模型的第四层,是整个网络体系的核心,它的主要职能是在源计算机到目的计算机之间提供可靠的、经济的数据传送服务,而且独立于所使用的物理网络,对于一些特殊的应用,某些传输层协议也提供高效的但不可靠的数据传送服务。使用传输服务的实体可以是会话实体,也可以直接是应用实体。6.1.1传输层端到端通信的概念从本质上说,由物理层、数据链路层和网络层组成的通信子网为网络环境中的主机提供点对点通信服务,而传输层是为网络环境中的主机应用层应用进程提供端到端进程通信服务。通信子网只提供一台机器到另一台机器之间的通信,不会涉及到程序或进程的概念。端到端信道由一段段的点对点信道构成,端到端协议建立在点对点协议上,提供应用程序进程之间的通信手段。传输层端到端通信与网络层的点对点通信的关系如图6-1所示。如前所述,从网络体系结构的角度,传输层既是面向通信的最高层,又是属于用户功能的最低层,它向上面的应用层提供了通信服务。传输层的基本功能是利用图6-1传输层端到端通信的基本结构通信子网为两台主机的应用进程之间,提供端到端的性能可靠、价格合理、透明传输的通信服务。图6-1表示两台主机(A和B)的用户进程通过互联的通信子网进行通信的情况。图中两个传输层之间有一条双向箭头,表示传输层为应用进程之间提供的逻辑通信。所谓逻辑通信指应用进程的报文到达传输层后,似乎是直接沿着水平方向传送到远地的传输层,但事实上应用进程之间并没有一条水平方向的物理连接,被传送的数据实际上是经过传输层以下各层及通信子网来传送的。在通信子网互联时,由于各通信子网所提供的服务不一定相同,传输层的存在就弥补了各通信子网所提供服务的差异和不足,并在其提供的服务的基础上,利用传输层的协议及增加的服务功能,使得通信子网的用户得到一个面向通信的通用的传输接口。此时,各通信子网对两端用户进程则是透明的,而对高层用户而言,传输层则屏蔽了通信子网或网络群的具体细节,用户进程所看到的只是在两个传输层实体之间存在着一条端到端的可靠的通信链路。不难看出,传输层协议的复杂程度与通信子网提供的服务有关。通信子网提供的服务越多,传输层协议就越简单。反之,如通信子网所提供的服务越少,传输层协议就越复杂。从某种意义上来说,传输层协议填补了用户的要求与通信子网所提供的服务之间的差距。如前所述,网络层提供虚电路(面向连接的)和数据报(无连接的)两种服务,对于提供虚电路服务者,如果用户怀疑通信子网提供的虚电路服务的可靠性,此时传输层还必须具有端到端的差错控制和流量控制的功能。而对于提供数据报服务者,传输层既要负责报文无差错、不丢失、不重复,而且还要保证报文的顺序性,此时的传输层协议就要比前者复杂得多。从某种意义上来讲,传输层协议与数据链路层协议相类似,它们都要解决差错控制、流量控制和排序等问题,但其间的明显差异是它们所处的环境不同。数据链路层的环境是两个分组交换结点(PSN)直接相连的一条物理信道,而传输层的环境是两个主机之间的通信子网。由于传输层的环境要比数据链路层的环境复杂,从而对传输层协议的复杂程度产生很大的影响。这些影响主要体现在以下几个方面:第一,传输层建立传输连接的过程较复杂,需要有明确的路由选择才能通过通信子网找到目的主机中的用户进程;第二,由于通信子网的交换结点具有存储能力,分组在各交换结点上被存储转发,这就要求传输层协议适当处理因存储转发而出现的各种问题;第三,因通信子网可能同时存在多条链路,其连接数目又是动态变化的,传输层协议应采用不同的管理方法;第四,传输层必须给出目的地址,而数据链路层却不用给出目的地址。总之,传输层协议比数据链路层协议更复杂。设计传输层的目的是弥补通信子网服务的不足,提高传输服务的可靠性与保证服务质量(QOS)。传输层是计算机网络体系结构中非常重要的一层。传输层的作用是在源主机与目的主机进程之间提供端到端数据传输,而传输层以下各层只提供相邻结点之间的点对点数据传输,如源主机-路由器、路由器-路由器、路由器-目的主机的数据传输。从“点对点”通信到“端到端”通信是一次质的飞跃,传输层为此需要引入许多新的概念和新的机制。6.1.2传输层向上层提供的服务传输层是第一个端对端的层次。有了传输层后,高层用户就可利用传输层的服务直接进行端到端的数据传输,从而不必知道通信子网的存在,通过传输层的屏蔽,高层用户看不到通信子网的更替和技术变化,网络中通信子网是指网络层及其以下的部分。传输层在网络分层结构中起着承上启下的作用,它使用了网络层提供的服务,并通过执行传输层协议,针对高层屏蔽通信子网在技术、设计上的差异和服务质量的不足,向高层提供一个标准的、完善的通信服务。通常,在高层用户请求建立一条传输通信连接时,传输层就通过网络层在通信子网中建立一条独立的网络连接。若需要较高的吞吐量,传输层也可以建立多条网络连接来支持一条传输连接,这就是分流(splitting)。或者,为了节省费用,传输层也可以让多个传输通信合用一条网络连接,称为复用(multiplexing)。传输层还要处理端到端的差错控制和流量控制问题。概括地说,传输层为上层用户提供端对端的透明优化数据传输服务。在传输层设计中,有两种可能的方法。第一种方法是针对每一种通信子网和所需要的传输服务都设计一个传输层协议。这种方式的好处在于可以有的放矢地解决问题,协议简捷,没有更多额外开销,效率很高,但协议缺乏通用性。第二种方法是针对通信子网可能的服务类型和各种传输服务需求,设计一个通用的传输层协议。这种标准化的设计思想可能把传输层协议变得大而全,效率低。一种折衷的方案是将通信子网分类,针对每一类通信子网设计相应的传输层协议,既保证效率又不失通用性。从通信和信息处理的角度看,应用层是面向信息处理的,而传输层是为应用层提供通信服务的。传输层是属于网络中提供通信服务的最高层。有了传输层后,应用层的网络应用程序不必担心不同的子网接口和不可靠的数据传输。传输层可以起到隔离通信子网的技术差异性,如网络拓扑、通信协议的差异,改善传输可靠性的作用。因此,传输层是为用户提供可靠的数据传输服务的关键层。传输层的最终目标是向它的用户,也就是应用层中的进程提供高效,可靠和经济的服务,为了实现这一目标,在传输层使用网络层提供的服务,同时通过传输协议完成传输层地功能,完成传输层功能的硬件和软件被称为传输实体(transportentity),传输实体可能位于操作系统的内核,或者在一个独立的用户进程中,或者以一个链接库的形式被绑定到网络应用中,或者位于网络接口卡上,网络层,传输层和应用层之间的关系如图6-2所示:如同网络层有两种不同类型的服务(面向连接的和无连接的)一样,传输服务的类型也有两种。其中面向连接的传输服务是一种可靠的服务,整个连接有三个阶段:建立连接、数据传输和释放连接,这在许多方面与面向连接的网络服务类似。另外,无连接的传输服务与无连接的网络服务也非常相似。在协议栈中,传输层位于网络层之上。传输层协议为不同主机上运行的进程提供逻辑通信,而网络层协议则为不同主机提供逻辑通信。这个区别非常重要。在一个终端系统中,传输层协议将应用进程的消息传送到网络边缘(也就是网络层),反之亦然;但是它并不涉及消息是如何在网络层之间传送的工作。事实上,中间路由器对于传输层加在应用程序消息上的信息不能做任何识别和处理。传输层协议所提供的服务通常受限于位于其下方的网络层协议。如果网络层协议不能提供主机之间传送的TPDU(传输协议数据单元)的延迟和带宽保证,那么传输层协议也不可能提供进程之间传送的消息的延迟和带宽保证。传输层的代码完全运行在用户的机器上,但是网络层主要运行在由承运商控制的路由器上(至少对于广域网是如此)。如果网络层提供的服务不够用,那会怎么样呢?如果它频繁地丢失分组该怎么办?如果路由器时常崩溃又该怎么办呢?用户在网络层上并没有真正的控制权,也就是用户不能对通信子网加以控制,因而无法采用更优的通信处理机制来解决网络层服务质量太差的问题,更不能通过改进数据链路层纠错能力来改善它,惟一的可能是在网络层之上的另一层中提高服务质量。如果在一个面向连接的子网中,一个传输实体在执行一个长时间的传输过程时,突然接到通知说它的网络层连接已经被意外终止了,而且也不知道当前正在传输的那些数据到底怎么样,那么,该传输实体可以与远程的传输实体建立起新的网络层连接。利用新建立的连接,它可以向对方发送一个查询请求,询问哪些数据已经到达,哪些数据还没有到达,然后从中断的地方开始继续向对方发送数据。TPDU用户网络实体传输实体用户网络实体传输实体传输地址网络地址传输协议应用∕传输层接口传输∕网络层接口图6-2网络层、传输层和应用层之间的关系从本质来讲,由于传输层的存在,这使得传输服务有可能比网络服务更加可靠。丢失的分组和损坏的数据可以在传输层上检测出来,并且由传输层来补偿。由于有了传输层,应用开发人员可以根据一组标准的原语来编写代码,而且他们的程序有可能运行在各种各样的网络上,他们不用处理不同的子网接口。也不用担心不可靠的传输过程。传输层承担了将子网的技术、设计和各种缺陷与上层隔离的关键作用。并且即使当下面的网络层协议使得网络层并不能提供某些相应的服务时,传输层协议仍然可以提供某些特定服务。6.1.3传输服务原语通常,传输实体也称为传输服务提供者,而使用传输服务的用户(可能是会话实体,也可能是应用实体)称为传输服务用户,简称TS用户。为了让TS用户访问传输服务,传输层必须为TS用户提供一些操作,也就是说,提供一个传输服务接口,每个传输服务都有它自己的接口。这就是传输服务原语。表6-1给出了抽象的传输服务原语。表6-1抽象的传输服务原语阶段服务原语参数连接建立建立连接T—Contact.Req被呼地址,主呼地址,选项,服务质量,TS用户数据T—Connect.Ind被呼地址,主呼地址,选项,服务质量,TS用户数据T—Connect.Rsp响应地址,选项,服务质量,Ts用户数据T—Connect.Cnf响应地址,选项,服务质量,TS用户数据数据传输常规数据T—Data.ReqTS用户数据T—Data.IndTS用户数据加速数据T—Expedited—Data.ReqTS用户数据T—Expedited—Data.IndTS用户数据连接释放释放连接T—Disconnect.ReqTS用户数据T—Disconnect.Ind连接释放原因,TS用户数据传输层通过传输服务原语向传输用户提供服务,取决于不同的系统,传输服务原语的表现(实现)形式可以有所不同,在Unix环境下通过Socket形式来实现,在Windows环境下一般都通过Winsock来实现。20世纪80年代初,美国高级(远景)研究计划署(ARPA)给伯克利的加利福尼亚大学提供了资金,让他们在UNIX操作系统下实现TCP/IP协议。在这个项目中,一组伯克利研究人员为TCP/IP网络通信开发了一个API。设计人员将这个API称为Socket接口,Socket接口是TCP/IP网络的API。也就是说,Socket接口规定了许多函数和例程,程序员可以用它们来开发TCP/IP网络上的应用程序。今天,Socket接口是TCP/IP网络最为通用的API之一。WindowsSockets(WinSock)是一个基于Socket模型的API。WindowsAPI只在MicrosoftWindows操作系统类中使用。WinSock是以动态链接库(DLL)来实现Socket接口的。6.1.4传输服务应用举例本小节我们介绍一个UNIX下的Socket编程例子来说明传输服务应用。一个非常简单的Internet文件服务器和一个与该服务器配合使用的例子客户,要理解这个例子,我们需要对Socket编程有一定的认识。1.Socket处理过程网络通信包括两台主机或两个进程,通过网络传递它们之间的数据。网络专家将网络会话的每一端称为一个端点。当使用Socket接口对网络通信编程时,Socket是网络通信过程中端点的抽象表示。为了进行网络通信(通过Socket接口),程序在网络会话的每端都需要一个Socket。两个Socket之间的通信可以是面向连接的(点对点连接),也可以是无连接的。Socket接口使用“打开--读/写--关闭”这样的处理过程。为了实现TCP/IP通信,程序首先打开一个到网络的连接。接着,程序可以通过这个连接读和写数据。最后,程序必须关闭这个连接。许多网络调用都需要一个变元,该变元是指向Socket地址结构的指针,在
提供第6章-传输层-5月8日会员下载,编号:1700775030,格式为 docx,文件大小为60页,请使用软件:wps,office word 进行编辑,PPT模板中文字,图片,动画效果均可修改,PPT模板下载后图片无水印,更多精品PPT素材下载尽在某某PPT网。所有作品均是用户自行上传分享并拥有版权或使用权,仅供网友学习交流,未经上传用户书面授权,请勿作他用。若您的权利被侵害,请联系963098962@qq.com进行删除处理。