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

2018-03-0301:15:31后端程序开发Comments2,751 views字数 1557阅读模式

Web 程序员对于网络模型你应该了解,知道网络到底是怎么进行通信的,进行工作的,为什么服务器能够接收到请求,做出响应。这里面的原理应该是每个 Web 程序员应该了解的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/1130.html

网络模型历史及起源

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

这样大大的阻碍了互联网的发展,为了解决这个问题,国际标准化组织 1984 提出的模型标准,简称 OSI(Open Systems Interconnection Model),这是一个标准,并非实现。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/1130.html

TCP/IP 协议就是基于此模型设计。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/1130.html

OSI 模型

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

OSI 模型是从上往下的,越底层越接近硬件,越往上越接近软件,这七层模型分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/1130.html

这种分层模型是我们计算机科学中常用的方法,分层直接通过规定好的接口进行交互,每一层其实对它的上层或下层都是一个黑盒,其实它的上层和下层也不关心它内部的实现,只关心它们之间进行交互的接口,接口是规定的信息,要给到什么都是规定好的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/1130.html

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

分层功能职责

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

数据交互

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

我们简化模型,假设有 计算机 A 和 计算机 B 要进行信息交互,比如 A 上开发了一个网页,需要 B 去访问。B 发出一个请求给 A,那么请求数据从 B 的 应用层开始向下传到表示层、再从表示层传到会话层直到物理层,通过物理层传递到 A ,A 的物理层接到请求后将请求向上传递到自己的应用层,应用层再将要请求的数据向自己的物理层方向传递然后 B 接到数据传递数据到自己的应用层。这里简化理解,我们去除了三次握手四次挥手的逻辑。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/1130.html

数据就是这样在计算机和网络中进行传递的。这其中做的工作就是每层进行层层解包和附加自己所要传递的信息,术语叫做报头。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/1130.html

在四层,既传输层数据被称作段(Segments);三层网络层数据被称做包(Packages);二层数据链路层时数据被称为帧(Frames);一层物理层时数据被称为比特流(Bits)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/1130.html

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

TCP/IP 模型将 OSI 模型由七层简化为四层,传输层和网络层被完整保留,因此网络中最核心的技术就是传输层和网络层技术。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/1130.html

TCP/IP 协议中每层技术举例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/1130.html

网络访问层:ARP、RARP文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/1130.html

互联网层:ICMP、IP文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/1130.html

传输层:TCP、UDP文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/1130.html

应用层:DNS、FTP、HTTP、SMTP、TELNET、IRC、WHOIS文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/1130.html

总结

网络七层模型是一个标准,而非实现。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/1130.html

网络四层模型是一个实现的应用模型。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/1130.html

网络四层模型由七层模型简化合并而来。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/1130.html

作者:麦索
链接:https://juejin.im/post/59a0472f5188251240632f92
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/1130.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/1130.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/1130.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定