抽象,五层网络模型

47 阅读4分钟

和我们现实生活中发快递一个思路,1. 选陆运还是空运?2. 物流公司选哪家服务比较好?3. 收货地址是啥?4. 怎么能确切发货到人?5. 怎么让他知道我发的什么?借助这个思路,计算机五层网络模型由此而生。


五层网络模型

上面用了发快递的五步骤来举例说明,那么具体到抽象,在网络世界中,网络完成一条信息的发送也被分成了五步,我们通常称它为五层网络模型。

应用层

应用层位于模型的最顶层,主要负责处理特定的应用程序细节。

应用层主要负责接口提供、数据封装、协议支持、用户交互和会话管理等,我们主要浅谈一下它对于协议的支持。

协议支持

  • HTTP超文本传输协议,多用于Web浏览
  • SMTP(简单邮件传输协议),多用于发送邮件
  • FTP(文件传输协议),多用于文件上传和下载
  • POP3(邮局协议版本3),多用于接收邮件

传输层

负责端到端通信和 数据传输服务 的关键部分,主要负责在不同主机间的进程(应用程序实例)提供可靠或不可靠的数据传输。(确保传输的可靠性)

在传输层中,有两个最常见的协议:

TCP协议

前端中绝大多数网络传输都是HTTP+TCP协议。

  • 三次握手:TCP通过三次握手建立连接,能够准确查找。

UDP协议

  • UDP不建立连接,不保证数据包的顺序,也不重新传输丢失的数据包。
  • 基于上面的原因,UDP比TCP有更低的延迟,适用于对实时性要求较高的应用,如视频会议和在线游戏。

前端面试或者应用中,我们基本上了解上面两个内容就行了。

至于下面的三个层,更像是做网络通信的同学更在乎的事情,比如5G、WIFI6等。

网络层

网络层主要负责数据包在网络中的传输和路由选择。(从哪里到哪里?)

数据链路层

数据链路层负责在相邻网络设备之间的媒体上建立、维护和解除数据链路。(找物理地址)

物理层

物理层是网络模型中的最底层,它处理数据传输的物理和电气规范。(比如光纤、电缆?)


一条消息的发送

让我们通过一个示例详细解释张三发送给李四一个消息的过程,以及这个消息是如何在五层网络协议(应用层、传输层、网络层、数据链路层、物理层)中传输的。

发送过程(正向封装)

  1. 应用层:张三用QQ写了一段话。当他点击发送时,应用层会对消息进行封装,可能包括加密和压缩,并添加特定于应用的头部信息,如字符编码和消息类型。
  2. 传输层:消息向下传递到传输层。根据使用的协议(TCP或UDP),传输层会添加其头部信息,包括源端口和目的端口,以及可能的错误检测和校正信息。如果是TCP,还会进行连接控制和流量控制。
  3. 网络层:然后消息传递到网络层,网络层添加自己的头部,包括源IP地址和目的IP地址。这层负责选择最佳路径将数据包从张三发送到李四。
  4. 数据链路层:网络层的数据包进一步被封装成帧,并添加数据链路层的头部和尾部,包括源和目的MAC地址、错误检测等信息。数据链路层确保数据包能够在相邻节点间正确传输。
  5. 物理层:帧被转化为电信号(如果是有线网络)或电磁波(如果是无线网络),通过物理媒介(如以太网电缆、无线信号)传输。

接收过程(逆向解析)

  1. 物理层:李四这边的物理层接收到电信号或电磁波,并将其转换回数字数据。
  2. 数据链路层:数据链路层移除帧的头部和尾部信息,进行错误检查,然后将数据包向上传递给网络层。
  3. 网络层:网络层移除自己的头部信息,检查目的IP地址,确认数据包已经到达正确的目的地,然后将数据传递给传输层。
  4. 传输层:传输层移除其头部信息,根据端口号确定数据应该传递给哪个应用程序。如果是TCP协议,它还负责重新组装数据段的顺序。
  5. 应用层:最后,数据到达应用层,应用层移除任何应用级的头部信息,最终将原始消息展示给李四。

看图


四层?五层?七层?

七层: 历史问题,只存在于教科书。

四层和五层: 网络传输大致过程,看怎么理解划分。