网络原理入门(二)------OSI七层模型?TCP/IP五层(四层)模型原来是这样的

网络原理入门(二)------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分用

分用就是封装的逆过程,数据到达接收方主机,逐层进行解析:

网络原理的入门基础到此结束啦~,喜欢的朋友可以点点赞,谢谢!接下来会深入学习网络编程,网络原理的知识.欢迎一起来交流!!!

相关推荐
文丑颜不良啊41 分钟前
LeetCode1861~1880题目解析
java·leetcode
Flynn Liang43 分钟前
AgentScope Java 深度解析:ReActAgent、HarnessAgent 与多智能体编排——JVM 上的自治 Agent 底座
java·大模型·架构设计·ai agent·spring ai·langchain4j·agentscope
Flynn Liang1 小时前
上线后怎么排查 AI 调用?Spring AI Observability:token/延迟/成本埋点与全链路追踪
java·人工智能·spring·监控·可观测性·observability·springai
文丑颜不良啊1 小时前
LeetCode1921~1940题目解析
java·leetcode
BingoGo1 小时前
PHP 标准库的价值远不止少写几行代码
后端·php
Tt有了t1 小时前
设计模式速查
java·python·设计模式
Thomas.Sir2 小时前
第15课:SpringBoot连接池详解:HikariCP配置、调优、监控,4.x连接池新特性
java·spring boot
JaguarJack2 小时前
PHP 标准库的价值远不止少写几行代码
后端·php·服务端
VimorphTech2 小时前
每批开 4 个线程,为什么限制不住 TTS 的总并发?
java·spring boot·spring