传输层将数据分段,并进行必要的控制,以便将这些片段重组成各种通信流。在此过程中,传输层主要负责:
- 跟踪源主机和目的主机上应用程序间的每次通信;
- 将数据分段,并管理每个片段;
- 将分段数据重组为应用程序数据流;
- 标识不同的应用程序。
跟踪各个会话
每台主机上都可以有多个应用程序同时在网络上通信。这些应用程序将与远程主机上的一个或多个应用程序相互通信。传输层负责管理这些应用程序间的多道通信流。
数据分段
每个应用程序首先生成要发送到远程应用程序上的流数据,这些数据必须处理成便于管理的片段,以便通过传输介质发送出去。传输层协议描述了将应用层数据分段的服务,以及每段数据所需的封装服务。必须在传输层上为每段应用程序添加报头,以关联与该段数据相关的通信。
重组数据段
在接收主机上,各个数据片段将被传送到适当的应用程序。此外,还必须将这些数据片段重组为完整的数据流,这样才能被应用层使用。传输层协议规定了如何使用传输层报头信息来重组要传送到应用层的数据片段。
标识应用程序
为了将数据流传送到适当的应用程序,传输层必须要标识目的应用程序。因此,传输层将向应用程序分配标识符。TCP/IP 协议称这种标识符为端口号。在每台主机中,每个需要访问网络的软件进程都将被分配一个唯一的端口号。该端口号将用于传输层报头中,以指示与数据片段关联的应用程序。
传输层负责网络传输,是应用层和网络层之间的桥梁。它从不同的会话接收信息后,将数据划分成最终能在介质上多路传输的一些便于管理的数据片段,然后再向下层传送数据。
应用程序不需要了解所用网络的详细运作信息,它们只需生成从一个应用程序发送到另一个应用程序的数据,而不必理会目的主机类型、数据必须要流经的介质类型、数据传输的路径以及链路上的拥塞情况或网络的规模。
同时,OSI 模型的下层也不需要知道有多少应用程序在通过网络发送数据。它们只需负责将数据传送到适当的设备。然后,传输层将对这些数据段排序,并将其传送到相应的应用程序。
数据要求各不相同
由于不同的应用程序有不同的要求,所以传输层协议也有很多种。在一些应用程序中,数据段必须按照特定的顺序到达,才能顺利处理;在另一些应用程序中,必须要收到所有数据才能使用其中的某段数据;在其它应用程序中,则可以允许网络传输过程中丢失部分数据。
在当今的融合网络中,有不同传输需求的各种应用程序可以在同一个网络上通信。不同传输层协议所包含的规则各不相同,因此设备可以处理各种各样的数据要求。
有些协议只提供在相应的应用程序之间高效传送数据片段所需的一些基本功能。这类协议适用于那些对数据延迟极敏感的应用程序。
其它传输层协议描述的进程提供了一些附加功能,例如确保应用程序之间可靠传输。虽然这些附加功能可以在传输层上提供更为健全的应用程序间数据通信,但同时也产生了额外的开销并增加了对网络的要求。