开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第3天,点击查看活动详情
在了解分层网络的形成机理之前,我们要知道分层,到底是把什么分层?答案是计算机网络的基本组成部分————协议。思考下我们日常的办公,你要把提案递交给老板,可能得先经过小组的讨论,再一层层网上评估递交,然后老板觉得可以就会一级一级往下传给你。在这个过程中,如何保证提案不被篡改、怎么最快将提案传给老板、提案在路上丢了怎么办?这些是协议需要解决的事情。
模块化
首先我们可以用模块化的思想解决,每一种协议都封装成一个模块,然后通过接口提供服务以及使用其其它模块的服务。例如下面这样
两层结构
我们可以看到模块化协议之间的联系是很混乱的,没有层次感。一些人提出了两层协议,将互联网分为应用层和物理层。
三层结构
在两层结构中抽象出物理层,对应用层提供统一的接口,中间层相当于黑盒子,应用层不必考虑物理方面的实现。这样的好处是:适配的工作量从M*N到M+N。
七层模型
顺着这个思路,能不能再细分下网络层次。ISO组织因此发明了7层网络模型。自下而上分别是物理层、数据链路层、网络层、传输层、会话层、应用层。每一层都有自己的协议,他们利用下层协议提供的服务,并向上提供服务。
- 物理层:实现点对点数据传输,物理层协议大多与无线传输有线传输、网络布线标准类型、网卡接口等相关。
- 数据链路层:负责可靠的点到点的数据传输
- 网络层:负责网络互联、端到端传输
- 传输层:可靠的端对端数据传输
- 会话层:负责管理会话以及通信连接
- 表示层:负责数据加解密、压缩、格式化等
- 应用层:根据应用规定进行封装,例如HTTP头部封装
网络体系结构的细腰特征
由于网络层只有IP协议栈,而向上有传输层的TCP/UDP,有应用层的HTTP、SMTP、TRP、FTP等协议,向下有PPP协议、CSMA、Async等协议。所以看上去网络层的协议很少,就像人的细腰。随着互联网技术发展,网络体系结构还得变化,很有可能是TCP和IP作为细腰。
优化-跨层感知
对于分层网络,每一层只需要对上提供服务,对下层复用就行。但在现实环境下,网络的复杂性使得分层难以达到最优性能,可以使用跨层感知。例如我们在观看爱奇艺视频时有智能码率,它就是在视频传输算法中感知网络的拥塞情况。