网络原理入门(二)------OSI七层模型?TCP/IP五层(四层)模型原来是这样的
摘要:本文从协议分层讲起,先介绍 OSI 七层模型的划分思路,再重点讲解实际组网中使用的 TCP/IP 五层(四层)模型,逐层说明物理层、数据链路层、网络层、传输层与应用层的职责,并以发送 QQ 消息为例,完整演示数据自上而下封装、自下而上分用的全过程,帮助读者建立网络分层的整体认知。
目录
1.协议分层
2.OSI七层模型
3.TCP/IP五层(四层)模型
4.封装和分用
正文
1.协议分层
在入门一中,学习了网络协议.对于网络协议来说,往往是分几个层次进行定义的,即协议分层.分层之后只有相邻的两层协议才能进行通信,跨层是不支持的.上层协议可以调用下层协议,下层协议可以给上层服务提供服务.
那么什么是协议分层?
协议分层类似于打电话,定义不同层次的协议:语言层用同一套协议(汉语协议),通信设备用一套协议(电话机协议).
协议分层的好处?
- 1.利用了封装的特性.上层协议调用下层协议时,不需要了解下层协议的细节.打电话的人只需要说话,无需关心电话机的工作原理.
- 2.解耦.分层之后减小了灵活替换其中的某一层对于整体的影响程度.(如把电话机协议替换成无线电协议对上层协议(语言协议)的影响极小)
上面打电话示例只有两层,实际的网络通信中有多层.
2.OSI七层模型
OSI:Open System Interconnection,开放系统互连.
OSI七层网络模型,把网络从逻辑上分成了七层.
模型划分如下:
实际组建网络的时候,只是以OSI七层模型中的部分分层,即TCP/IP五层(四层)模型来实现的.
3.TCP/IP五层(四层)模型
TCP/IP 是一组协议的代名词,它并不是单一协议,而是以 TCP、IP 为核心的一整个协议族。
TCP/IP 协议采用了五层的层级结构,每一层都可以调用下一层所提供的服务来完成自己的需求,同时向上层提供服务。
站在发送方主机的角度,数据是从应用层一直向下传递到物理层,每经过一层就加上该层的首部(封装);站在接收方主机的角度,数据是从物理层一直向上传递的,每经过一层就拆掉该层的首部(分用)。为进一步理解该模型,我们以接收方主机视角为例,自底向上逐层来看:
- 物理层:规定了网络通信中的一些硬件要求,如网线、WiFi、光纤等。物理层的协议就是约定这些硬件设备应该满足什么样的要求,负责把 0/1 比特流真正发送到物理介质上。
- 数据链路层:完成两个相邻的设备之间是如何进行通信的,如通过网线把电脑连接到路由器上。(先考虑一小步怎么走)它负责把数据组织成帧,并在相邻节点之间完成传输与差错检测。
- 网络层:完成两个任意设备之间如何进行通信,这两个设备之间可以隔着很多交换机和路由器。(考虑中间路程怎么走)它负责地址标识与路由选择,决定数据包该往哪条路径走。
- 传输层:同样完成任意两个设备之间的通信,但不考虑中间过程,只考虑起点和终点。它关注的是端到端的数据是否可靠、完整地送达。
- 应用层:拿到数据包之后应该怎么使用,即面向具体业务场景的协议,如 HTTP、DNS、FTP 等。
把五层串起来看:应用层产生数据,传输层负责端到端,网络层负责寻址与路由,数据链路层负责相邻设备间的传输,物理层负责比特流的实际发送。发送方自上而下逐层封装,接收方自下而上逐层解封装,这就是 TCP/IP 五层模型的工作方式。
当把数据链路层和物理层看作一层时就称为TCP/IP四层模型.
经典面试题:主机/路由器/交换机/集线器的工作分层?
- 主机:物理层->应用层.
- 路由器:物理层->网络层.
- 交换机:物理层->数据链路层.
- 集线器:物理层.
4.封装和分用
- 不同的协议层对数据包有不同的称呼,在传输层叫做段,网络层叫做报,数据链路层叫做帧.不用特别区分这几个叫法.
- 应用层数据通过协议栈发送到网络时,每层协议都会加上一个数据首部(报头),称为封装.
- 报头中包含上层协议是什么,载荷多长,报头多长等一些信息.
- 数据封装成帧后发送到传输介质上,到达目的主机之后每层协议再剥掉相应的报头,这叫做分用.根据报头中的"上层协议字段"将数据交给对应的上层协议处理.
下面通过发送QQ信息为例,深入理解网络数据通信的封装和分用的流程:
4.1封装
示例:我通过QQ,发送"hello"给对方:
1.应用程序QQ获取到用户的输入(“hello”),构造了一个应用层的数据包.在这里,数据包会完成数据结构化,即把用户数据结构化成二进制比特流.后这个数据包就会遵守应用层协议.这个协议格式往往是自定义的,此处假设应用层协议的格式:发送者的qq号,接收者的qq号,消息的时间,消息正文.
2.应用程序调用下层传输层提供的API(socket),通过socket接口交给传输层协议TCP,TCP接收到之后立刻加上TCP报头,组成TCP数据包.传输层的协议主要有两个:TCP协议,UDP协议.
3.传输层构造好数据之后,继续调用网络层的API,把传输层的数据包交给网络层处理.网络层的主要协议是IP协议.IP协议继续对上述的数据包进行加工,拼接上IP报头.
4.网络层继续调用数据链路层的API,把IP数据包交给数据链路层.数据链路层中的核心协议是以太网协议.接着以太网协议继续对IP数据包进行加工,拼接上以太网的报头.
5.以太网继续把以太网数据包交给硬件设备网卡.网卡把上述二进制数据,最终以光信号/电信号/电磁波信号传播出去.
4.2分用
分用就是封装的逆过程,数据到达接收方主机,逐层进行解析:
网络原理的入门基础到此结束啦~,喜欢的朋友可以点点赞,谢谢!接下来会深入学习网络编程,网络原理的知识.欢迎一起来交流!!!