本篇博客主要用于记录我匮乏的网络相关的知识
- 作为一个 Web 程序员👨💻,对于网络模型你应该了解,知道网络到底是怎么进行通信的,进行工作的,为什么服务器能够接收到请求,做出响应。这里面的原理应该是每个 Web 程序员应该了解的。
网络七层模型 - OSI
- OSI(Open System Interconnection)是一个开放性的通行系统 互连参考模型 。
- 是一个 理论模型 ;实际工业中并没有这么设计的。
网络模型历史及起源
网络模型不是一开始就有的,在网络刚发展时,网络协议是由各互联网公司自己定义的,比如那时的巨头网络公司 IBM、微软、苹果、思科等等,他们每家公司都有自己的网络协议,各家的协议也是不能互通的,那时候大家觉得这是可以的,但对消费者来说这实际上是技术垄断,因为你买了苹果的设备就不能用微软的设备,因为他们的协议不是一样的,没有统一的标准来规范网络协议,都是这些公司的私有协议。
这样大大的阻碍了互联网的发展,为了解决这个问题,国际标准化组织 1984 提出的模型标准,简称 OSI(Open Systems Interconnection Model),这是一个标准,并非实现。
OSI 模型是从上往下的,越底层越接近硬件,越往上越接近软件,这七层模型分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
这种分层模型是我们计算机科学中常用的方法,分层直接通过规定好的接口进行交互,每一层其实对它的上层或下层都是一个黑盒,其实它的上层和下层也不关心它内部的实现,只关心它们之间进行交互的接口,接口是规定的信息,要给到什么都是规定好的。
这种分层模型的好处就是可以对任何一层进行独立升级、优化,只要保持接口不变那么这个模型整体就不会有问题,比如说物理层从以太网线到光纤,我们的网络速度大大提高,但是整个技术革新的时候,其他层是没有做更多工作的,工作只在物理层完成。这样做的好处也同时提高了我们技术的发展革新速度。
通信示意图
分层功能指责
分层名称 | 功能 | |
---|---|---|
1 | 物理层 | 负责比特流与电子信号之间的互换 |
2 | 数据链路层 | 将0、1序列划分为具有意义的数据帧传送给对端 |
3 | 网络层 | 负责将数据传输到目标地址。目标地址可以使多个网络通过路由器连接而成的某一个地址。因此这一层主要负责寻址和路由选择 |
4 | 传输层 | 管理两个节点之间的数据传输(确保数据被可靠的传输到目标地址) |
5 | 会话层 | 负责建立和断开通信连接(数据流动的逻辑通路),以及数据的分割等数据传输相关的管理 |
6 | 表示层 | 将应用处理的信息转换为适合网络传输的格式,或者将来自下一层的数据转换为上层能处理的格式。它主要负责数据格式的转换 |
7 | 应用层 | 为应用程序提供服务并规定应用程序中通讯相关的细节,也就是为应用提供服务 |
总结一下
- 在7层模型中,每一层都提供一个特殊的网络功能。从网络功能的角度观察:
- 下面4层(物理层、数据链路层、网络层和传输层)主要提供数据传输和交换功能,即以节点到节点之间的通信为主;
- 第4层作为上下两部分的桥梁,是整个网络体系结构中最关键的部分;
- 而上3层(会话层、表示层和应用层)则以提供用户与应用程序之间的信息和数据处理功能为主。
- 简言之,下4层主要完成通信子网的功能,上3层主要完成资源子网的功能。
TCP/IP
通常说TCP/IP是Internet协议族,而不单单是TCP和IP这两个协议。其他的例如:文件传输(FTP)和电子邮件(SMTP)等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。
TCP/IP是实际上的网络体系结构和协议标准
TCP/IP是四层模型结构
TCP/IP和OSI的对比
- 注:在TCP/IP中的各层名称也有不同:
- 应用层
- 传输层
- 网络层
- 数据链路层