计算机网络 - OSI & TCP/IP

本篇博客主要用于记录我匮乏的网络相关的知识

  • 作为一个 Web 程序员👨‍💻‍,对于网络模型你应该了解,知道网络到底是怎么进行通信的,进行工作的,为什么服务器能够接收到请求,做出响应。这里面的原理应该是每个 Web 程序员应该了解的。

网络七层模型 - OSI

  • OSI(Open System Interconnection)是一个开放性的通行系统 互连参考模型
  • 是一个 理论模型 ;实际工业中并没有这么设计的。

网络模型历史及起源

  • 网络模型不是一开始就有的,在网络刚发展时,网络协议是由各互联网公司自己定义的,比如那时的巨头网络公司 IBM、微软、苹果、思科等等,他们每家公司都有自己的网络协议,各家的协议也是不能互通的,那时候大家觉得这是可以的,但对消费者来说这实际上是技术垄断,因为你买了苹果的设备就不能用微软的设备,因为他们的协议不是一样的,没有统一的标准来规范网络协议,都是这些公司的私有协议。

  • 这样大大的阻碍了互联网的发展,为了解决这个问题,国际标准化组织 1984 提出的模型标准,简称 OSI(Open Systems Interconnection Model),这是一个标准,并非实现。

osi

  • OSI 模型是从上往下的,越底层越接近硬件,越往上越接近软件,这七层模型分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

  • 这种分层模型是我们计算机科学中常用的方法,分层直接通过规定好的接口进行交互,每一层其实对它的上层或下层都是一个黑盒,其实它的上层和下层也不关心它内部的实现,只关心它们之间进行交互的接口,接口是规定的信息,要给到什么都是规定好的。

  • 这种分层模型的好处就是可以对任何一层进行独立升级、优化,只要保持接口不变那么这个模型整体就不会有问题,比如说物理层从以太网线到光纤,我们的网络速度大大提高,但是整个技术革新的时候,其他层是没有做更多工作的,工作只在物理层完成。这样做的好处也同时提高了我们技术的发展革新速度。

通信示意图

communication

分层功能指责

分层名称 功能
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中的各层名称也有不同:
    • 应用层
    • 传输层
    • 网络层
    • 数据链路层