Code前端首页关于Code前端联系我们

Web程序员需要了解的七层网络模型和四层模型有什么区别

terry 2年前 (2023-09-25) 阅读数 48 #后端开发

Web程序员需要了解网络模型,网络如何通信和工作,以及为什么服务器可以接收和响应请求。这里的原理应该是每个互联网程序员都应该明白的。

网络模型的历史和起源

网络模型一开始并不存在。网络刚发展起来的时候,网络协议是由各个互联网公司定义的,比如巨头网络IBM、微软、苹果、思科等,各个公司都有自己的网络协议,而且各个公司的协议是不互通的。当时每个人都认为这没什么问题,但对于消费者来说这基本上是一种技术垄断,因为你不能在微软设备上使用购买的苹果设备,因为它们的协议不一样。没有统一的标准来规范网络协议。它们都是这些公司的私有协议。

这极大地阻碍了互联网的发展。为了解决这个问题,国际标准化组织于1984年提出的模型标准,称为OSI(开放系统互连模型),是一个标准,而不是一个实现。

TCP/IP协议就是基于该模型设计的。

OSI模型

Web 程序员要了解的网络七层模型与四层模型有啥区别文件

OSI模型从上到下。最底层越接近硬件,越高越接近软件。七层模型是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

这种分层模型是计算机科学中常用的方法。各层通过规定的接口直接交互。每层基本上都是顶层或底层的黑盒子。事实上,顶层和底层并不关心它们内部的实现,只关心它们之间的接口。接口就是规定的信息,要给出的一切都是规定的。

这种分层模型的优点是每一层都可以独立升级和优化。只要接口不变,模型整体就不会有问题。例如,物理层从以太网电缆到光纤和我们的网络。速度有了巨大的提升,但是在整个技术创新过程中,其他层并没有做更多的工作,工作只是在物理层完成。这样做的好处也提高了我们技术的发展和创新的速度。

分层功能职责

  • 物理层:底层数据传输,如网线;网卡标准。
  • 数据链路层:定义了数据的基本格式、如何传输以及如何识别;例如网卡的MAC地址。
  • 网络层:定义IP寻址和路由功能;例如从不同设备转发数据。
  • 传输层:端到端数据传输的基本功能;如TCP、UDP。
  • 会话层:管理应用程序之间的会话能力;例如,不同的软件数据被分发给不同的软件。
  • 识别层:数据格式识别、基本压缩和加密功能。
  • 应用层:各种应用软件,包括Web应用程序。
Web 程序员要了解的网络七层模型与四层模型有啥区别文件

数据交互

Web 程序员要了解的网络七层模型与四层模型有啥区别文件

我们简化模型,假设有计算机A和计算机B想要互相通信。例如,一个网页是A开发的,需要B打开。 B向A发送请求,然后请求数据从B的应用层发送到表示层,然后从表示层发送到会话。层到物理层,然后通过物理层通向A。 A的物理层收到请求后。将请求传递给自己的应用层。应用层然后将请求的数据传递给自己的物理层,然后B接收到数据并将数据传递给自己的应用层。这里为了简化理解,我们去掉了三次握手、四次挥手的逻辑。

这就是数据在计算机和网络之间传输的方式。这里所做的工作就是将其解包,并逐层添加它想要发送的信息。该术语称为标题。

在第四层,来自传输层的数据称为Segments;三层网络层数据称为数据包;第二层的数据链路层数据称为帧;来自第一层的数据在物理层上被称为比特流(Bit)。 Web 程序员要了解的网络七层模型与四层模型有啥区别文件

TCP/IP 模型将OSI模型从七层简化为四层。传输层和网络层被完整保留。因此,网络中的核心技术是传输层和网络层技术。

TCP/IP协议中各技术层示例:

网络接入层:ARP、RARP

互联网层:ICMP、IP

传输层:TCP、UDP

应用层:DNS 、FTP、HTTP、SMTP、TELNET、IRC、WHOIS

总结

七层网络模型是一个标准,而不是实现。

四层网络模型是一个实现的应用模型。

四层网络模型已简化并与七层模型合并。

作者:麦索
链接:https://juejin.im/post/59a0472f5188251240632f92
来源:掘金
版权归作者所有。商业转载请联系作者获得许可。非商业转载请注明出处。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门