计算机网络为什么要分层?
分层的优点
- 各层之间是独立的。某一层并不需要知道它的下一层是如何实现的,而仅仅需要知道该层通过层间的接口(即界面)所提供的服务。由于每一层只实现一种相对独立的功能,因而可将一个难以处理的复杂问题分解为若干个较容易处理的更小一些的问题。这样,整个问题的复杂程度就下降了。
- 灵活性好。当任何一层发生变化时(例如由于技术的变化),只要层间接口关系保持不变,则在这层以上或以下各层均不受影响。此外,对某一层提供的服务还可进行修改。
- 当某层提供的服务不再需要时,甚至可以将这层取消。
- 结构上可分割开。各层都可以采用最合适的技术来实现。
- 易于实现和维护。这种结构使得实现和调试一个庞大而又复杂的系统变得易于处理,因为整个的系统已被分解为若干个相对独立的子系统。
- 能促进标准化工作。因为每一层的功能及其所提供的服务都已有了精确的说明。
分层时应注意使每一层的功能非常明确。
-
若层数太少,就会使每一层的协议太复杂。 但层数太多又会在描述和综合各层功能的系统工程任务时遇到较多的困难。
通常各层所要完成的功能主要有以下一些(可以只包括一种,也可以包括多种):
- 差错控制使相应层次对等方的通信更加可靠。
- 流量控制发送端的发送速率必须使接收端来得及接收,不要太快。
- 分段和重装发送端将要发送的数据块划分为更小的单位,在接收端将其还原。
- 复用和分用发送端几个高层会话复用一条低层的连接,在接收端再进行分用。
- 连接建立和释放交换数据前先建立一条逻辑连接,数据传送结束后释放连接。
分层当然也有一些缺点,
例如,有些功能会在不同的层次中重复出现,因而产生了额外开销。
参考文献: [1]《计算机网络(第7版)》谢希仁