分层网络的形成机理与演化

262 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第3天,点击查看活动详情

在了解分层网络的形成机理之前,我们要知道分层,到底是把什么分层?答案是计算机网络的基本组成部分————协议。思考下我们日常的办公,你要把提案递交给老板,可能得先经过小组的讨论,再一层层网上评估递交,然后老板觉得可以就会一级一级往下传给你。在这个过程中,如何保证提案不被篡改、怎么最快将提案传给老板、提案在路上丢了怎么办?这些是协议需要解决的事情。

模块化

首先我们可以用模块化的思想解决,每一种协议都封装成一个模块,然后通过接口提供服务以及使用其其它模块的服务。例如下面这样

image.png

我们面临的不尽其数的协议,现实中还会不断产生新的协议。模块化的优点很明显,不同模块之间的耦合性低,每个模块的实现简单。但是模块化的维护是非常困难的,一个模块连着许多其它的模块,当它改变时,其它模块可能也得跟着改(接口不是一成不变的)。

两层结构

我们可以看到模块化协议之间的联系是很混乱的,没有层次感。一些人提出了两层协议,将互联网分为应用层和物理层。

image.png

每个应用对于物理层都有自己的协议。虽然结构上看上去很清晰,易于维护。但每当出现一个新的应用时,就要和物理层的每种类型去适配,这无疑是不太合理的。

三层结构

在两层结构中抽象出物理层,对应用层提供统一的接口,中间层相当于黑盒子,应用层不必考虑物理方面的实现。这样的好处是:适配的工作量从M*N到M+N。

image.png

七层模型

顺着这个思路,能不能再细分下网络层次。ISO组织因此发明了7层网络模型。自下而上分别是物理层、数据链路层、网络层、传输层、会话层、应用层。每一层都有自己的协议,他们利用下层协议提供的服务,并向上提供服务。

image.png

  • 物理层:实现点对点数据传输,物理层协议大多与无线传输有线传输、网络布线标准类型、网卡接口等相关。
  • 数据链路层:负责可靠的点到点的数据传输
  • 网络层:负责网络互联、端到端传输
  • 传输层:可靠的端对端数据传输
  • 会话层:负责管理会话以及通信连接
  • 表示层:负责数据加解密、压缩、格式化等
  • 应用层:根据应用规定进行封装,例如HTTP头部封装

网络体系结构的细腰特征

由于网络层只有IP协议栈,而向上有传输层的TCP/UDP,有应用层的HTTP、SMTP、TRP、FTP等协议,向下有PPP协议、CSMA、Async等协议。所以看上去网络层的协议很少,就像人的细腰。随着互联网技术发展,网络体系结构还得变化,很有可能是TCP和IP作为细腰。

image.png

优化-跨层感知

对于分层网络,每一层只需要对上提供服务,对下层复用就行。但在现实环境下,网络的复杂性使得分层难以达到最优性能,可以使用跨层感知。例如我们在观看爱奇艺视频时有智能码率,它就是在视频传输算法中感知网络的拥塞情况。

image.png