【计算机网络】传输层

传输层与数据链路层的作用都是建立数据传输通道,两者在功能上存在许多相似之处。传输层的功能主要体现在广域网网络应用中,可以吧数据链路层当做局域网通信的数据传输通道,而传输层则是广域网中的数据传输通道。

传输层是整个广域网网络体系结构模型的核心所在,以为它负责端到端的通信,是两台计算机系统经过网络进行数据通信时第一个端到端的层次。

1、概述

传输层是面向通信部分的最高层,与下面的三层(物理层、数据链路层、网络层)一起共同构建进行网络通信所需的线路和数据传输通道,同时又是面向用户的最底层(应用层、表示层、会话层)。来自应用层的用户数据必须依靠传输层协议在不同网络中的主机间进行传输,因为仅靠网络层把数据传送到目的主机上还是不够的,还必须把它交给目的主机的应用进程。

物理层为数据通信提供实际的物理线路和通信信道,这是任何数据通信的基础;数据链路层为同一网络中(数据链路层的通信限于同一局域网中)的数据通信提供了虚拟的通信通道,可以根据不同链路类型对物理层的比特流进行帧封装和传输;网络层为不同网络间的数据通信提供了数据包的路由、转发功能,把数据包从一个网络中的主机传送到位于另一个网络中的目的主机上,其中需要选择传送的最佳路径。而我们本篇所要介绍的传输层则是将这些数据包传送给各种网络应用进程,因为位于两台网络主机间的真正数据通信主体不是这两台主机,而是两台主机中的各种网络应用程序。端口实质就是网络应用进程。

结合前面介绍的,总结一下不同网络间主机的整体通信过程:

在一个用户主机的应用层发出的应用请求报文到了传输层后,在数据的头部添加对应的传输层协议头部信息,将其封装成数据段,然后传到网络层后封装在报文中的“数据”部分,再依次传到数据链路层,重新封装成数据帧,最后通过物理层以比特流的方式一位位地向对方网络传输。最后提交给应用层中相应应用进程。如果中间经过多个路由器,则这些中间路由器只进行最低三层的报文封装和解封转,以及其他对应功能,不建立基于传输层的对等关系。(前面网络层的介绍有图示,存在路由转发的情况,只进行最低三层)。

传输层是源端到目的端对数据传送进行控制的从低到高的最后一层,最终目标就是向它的用户(应用层中的应用进程)提供高效、可靠和性价比合理的服务。在传输层内部,完成这项任务的硬件或软件称为传输实体。


传输层的主要作用就是为它的上层提供端到端的数据传输服务,这里面包含两层意思:第一层含义是从物理的网络连接角度来讲的,即端到端是指网络通信的双方在不在同一链路上,不是点对点连接的;第二层含义是从虚拟的传输连接角度来讲的,即端到端是指在用户看来两端的连接是直接进行的(事实上,我们也知道不是这样的),屏蔽了核心网络结构和各种子网间的差异。

点对点连接就是通信双方直接通过电缆进行的连接,也就是通常所说的背对背连接,中间没有经过任何其他设备。而端对端连接是两个终端系统之间的连接,体现在两个终端系统的连接中时要经过一个或多个设备(路由器的转连)。


2、传输层服务

与网络层有面向连接服务和无连接服务两大类一样(在TCP/IP中只有无连接的IP网络层服务),传输层的服务也有这两大类。面向连接的传输服务在提供传输服务前需要先建立专门的传输连接,而且这条连接是可管理的,在需要或通信结束时进行拆除,它是可靠的传输服务,而且可提供拥塞控制和差错控制功能,如我们熟知的TCP服务。无连接的传输服务在提供服务前不需要建立专门的传输连接,直接向目的节点发送数据,不管是否有可传输的通道,提供的是不可靠的传输服务,如UDP服务。

为什么在基于网络层上,传输层还要划分为这两个层次呢?因为网络层是通信子网的一个组成部分,网络服务质量并不可靠,比如频繁地丢失分组,网络层系统可能崩溃或不断地进行网络复位。对于这些情况,用户将束手无策,因为用户不能对通信子网加以控制,因而无法采用更优的通信处理机来解决网络服务质量低劣的问题。更不能通过改进数据链路层纠错能力来改善它。解决这一问题的唯一可行方法就是在资源子网的主机上增加一个可以由用户控制的传输层。通过传输层的面向连接服务,使得数据传输更加可靠,特别是对于IP这类无连接网络层服务。


TSAP(传输服务访问点)

在计算机网络中,传输层要在用户之间提供可靠、有效的端到端服务,必须把一个用户进程和其他的用户进程区分开。同一时间、同一对网络实体间的用户应用进程可能有多个,不能依靠网络实体地址(NSAP)来标识通信双方(通信的实体是各个应用进程,而非通信双方主机),而必须借助传输层地址进行标识。

为确保所有的传输地址在整个网络中是唯一的,因此将传输地址分成网络ID、主机ID及主机分配的端口三部分。网络ID和主机ID正好是IP地址的两部分,用来指定具体的网络实体,后面的端口则是传输层特定的属性,用来与应用进程进行一一对应的,实际上,传输层地址就是应用进程占用的端口。


3、传输层服务功能

传输层要完成端到端的透明数据传输,至少要分两个步骤:一是虚拟传输连接的建立,二是源端用户数据沿着传输连接传送到目的端。

3.1、传输层寻址方案

就是找端口。应用进程(包括客户端和服务器)可以将自己关联到一个TSAP上,以便与远程的TSAP建立连接。我们知道只有少数常见的服务(如WWW、FTP、DNS等)是固定分配了端口。其余绝大部分则没有与固定的端口相关联,所以这些服务的发送端就需要接收端对应用户进程关联的端口。

3.1.1、进程服务器的TSAP地址分配方案

先由进程服务器为各应用程序集中建立初始传输连接,然后再转给对应的服务进行正式的传输连接。进程服务器的TSAP地址分配方案是使用一个特殊的进程服务器来集中为那些较少使用的服务提供监听代理功能。具体如下:

  1. 用户向服务器发送一个传输连接请求,如果没有专门的服务器在等待,启动与该请求对应的服务
  2. 进程服务器接到了用户的传输连接请求后,装载对应的用户进程,启动与该请求对应的服务
  3. 进程服务器为该用户进程分配一个临时的端口,这样用户与对应的服务器进行初始连接,允许对应的服务继承进程服务器与用户之间已有的连接,然后对应的服务执行用户请求的工作,而进程服务器则继续监听新的请求。
3.1.2、名称服务器的TSAP地址分配方案
名称服务器就是DNS服务器。名称服务器总是在监听一个特定的知名服务的端口(常规端口)。为了找到与给定的服务名字相对应的端口,用户需要与名称服务器建立一个链接,然后用户发送一条消息指定它想要的服务名字,DNS服务器则发回相应的端口,随后,用户将它与DNS服务器之间的连接释放,再与期望的服务建立一个新的连接。与上面说的进程服务器流程类似。
DNS服务器之所以知道这些知名服务的TSAP地址,是因为在一个新的服务被创建时必须向DNS服务器注册,并把它的服务名字和端口告诉DNS服务器,DNS服务器将把这分信息记录到它的内部数据库中,以后当用户查询时就知道了。


参考资料《深入理解计算机网络》


你可能感兴趣的:(TCP/IP,传输层,网络,dns服务器)