理论教育 传输层:网络服务更可靠,多路复用与分流的功能

传输层:网络服务更可靠,多路复用与分流的功能

时间:2023-09-26 理论教育 版权反馈
【摘要】:为了达到这一目标, 传输层利用了网络层所提供的服务。实质上, 传输层的存在使传输服务会远比其低层的网络服务更可靠, 分组丢失、数据残缺均会被传输层检测到并采取相应的补救措施。在数据链路层, 两个节点通过物理通道直接通信; 而在传输层, 两个物理通道由整个子网所取代。此外, 传输层上还必须实现多路复用和分流的功能, 这在数据链路层上是没有的。

传输层:网络服务更可靠,多路复用与分流的功能

在OSI 参考模型中, 物理层、数据链路层和网络层是面向网络通信的层次; 会话层、表示层和应用层是面向信息处理的层次; 而传输层(Transport Layer) 位于低三层和高三层之间, 无论从其所处的位置还是所起的作用来看, 它都是整个协议层次的核心。 传输层的任务是为高层从源端机到目的机提供可靠、经济的数据传输服务, 而与具体网络无关。 为了保证数据传输的可靠性, 传输层上必须实现差错控制流量控制等功能; 为了向用户提供经济有效的服务, 传输层还提供多路复用和分流的功能。

1.传输服务

传输层的最终目标是向其用户(一般是指应用层的进程) 提供有效、可靠且价格合理的服务。 为了达到这一目标, 传输层利用了网络层所提供的服务。 传输层中完成这一工作的硬件和(或) 软件称为传输实体(Transport Entity)。 传输实体可能在操作系统内核中, 或在一个单独的用户进程内, 也可能包含在网络应用的程序库中, 或是位于网络接口卡上。 在某些场合, 电信公司甚至可以提供可靠的传输服务。 这时, 传输实体位于与主机相连的子网边缘的特定接口机器上。

正如存在两种类型的网络服务(面向连接的和无连接的) 一样, 传输服务也有两种类型。 面向连接的传输服务在很多方面类似于面向连接的网络服务, 二者的连接都包括三个阶段, 即建立连接、数据传输和释放连接。 两者的寻址和流量控制方式也类似。 无连接的传输服务与无连接的网络服务也很类似。

既然传输服务与网络层服务如此类似, 那为什么还要将它区分为不同的两层呢? 前面介绍过网络层是通信子网的一部分, 并且一般是由电信公司来提供服务的(至少广域网是如此)。 如果网络层提供的面向连接的服务不可靠, 例如频繁地丢失分组该怎么办? 假如路由器不断发生冲突又会发生什么情况呢? 这就是问题之所在。 由于用户无法对子网加以控制,因此他们不能通过换用更好的路由器或增强数据链路层的纠错能力来解决网络层服务质量低劣的问题。 唯一可行的方法是在网络层上再增加一层以改善服务质量。 比如当网络连接中断或网络复位后, 两端的传输层可以通过建立起新的网络连接, 并在确认了传输中断的位置后, 继续被中断了的数据传输, 因此传输服务比网络服务更可靠。

实质上, 传输层的存在使传输服务会远比其低层的网络服务更可靠, 分组丢失、数据残缺均会被传输层检测到并采取相应的补救措施。 另外, 传输服务源语的设计可以独立于网络服务源语, 后者是随网络不同而会有很大差异的(如无连接的局域网服务可能与面向连接的广域网服务大相径庭)。 传输层起着将子网的技术、设计和各种缺陷与上层相隔离的关键作用。

因此, 很多人将OSI 的7 层模型从下向上划分为两部分: 1 ~4 层为一部分, 5 ~7 层为另一部分。 下面4 层可以看作传输服务提供者(Transport Service Provider), 上面3 层是传输服务用户(Transport Service User)。 这一划分对层次设计影响巨大, 并且将传输层置于关键的位置, 因为传输层为服务提供者和用户之间进行可靠的数据传输服务架起了一座桥梁

2.传输协议的要素(www.daowen.com)

传输服务是通过建立连接的两个传输实体之间所用的传输协议来实现的。 在某些方面,传输协议类似前面讨论过的数据链路层协议, 二者都必须解决差错控制、分组顺序、流量控制及其他问题。

但二者之间也存在着显著的差异, 这些差异主要是因为两个协议所运行的环境不同所造成的。 在数据链路层, 两个节点通过物理通道直接通信; 而在传输层, 两个物理通道由整个子网所取代。 这一差异对协议产生了很多重要的影响。

首先, 在数据链路层, 不必为一个节点指明它要与哪个节点通话——每条输出线对应唯一的一个节点。 在传输层里, 需要显式地给出目的端地址

其次, 在线路上建立连接的过程很简单: 另一端总是存在的(只有在它已崩溃的情况下才不存在), 每一方都没有太多的事情要做。 对传输层而言, 初始连接的建立要复杂得多。

数据链路层和传输层之间的另一个区别是子网的存储能力。 当源节点发送了一帧时,该帧可能会到达目的地, 也可能会丢失。 数据链路没有存储能力, 但通信子网有存储能力。 如果子网内部采用数据报和适应性路由选择策略, 那么极有可能将一个分组存储几秒钟, 然后再传送。 子网的这种存储能力有时可能会产生严重后果, 因此需要使用特殊的协议。

数据链路层与传输层之间的最后一个区别是: 在两层中都需要有数据缓冲和流量控制,但在传输层中出现的可能需要使用与在数据链路层中不同的处理方法。 在数据链路层, 为每个连接都分配了一定容量的缓冲区就可以解决问题。 在传输层中有大量的、数目可变化的连接要求, 因此, 为每个连接固定分配缓冲区的策略是行不通的。

此外, 传输层上还必须实现多路复用和分流的功能, 这在数据链路层上是没有的。 至于如何解决这些问题, 请阅读有关参考资料。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈