OSI参考模型&&TCP/IP模型

OSI参考模型&&TCP/IP模型

在计算机网络领域,OSI 参考模型与 TCP/IP 模型是两个至关重要的概念。它们为网络通信提供了标准的框架和协议,使得全球范围内的计算机能够进行开放式通信。本文将从概念、层次结构、功能特点以及应用等方面,对 OSI 参考模型与 TCP/IP 协议进行深入解析。

总体结构

OSI参考模型

在 OSI 参考模型中,总共有 7 层,自下而上分别是物理层数据链路层网络层传输层会话层表示层应用层

具体设备的对应层次

主机实现了七层所有的功能,集线器实现物理层所要实现的功能,交换机要实现物理层和数据链路层所要实现的功能,路由器实现了物理层、数据链路层、网络层的功能。各个节点之间通过物理传输媒体(网线、光纤等)相连接,我们将物理传输媒体视为第 0 层。接下来我们需要研究 OSI 参考模型中每一层的具体作用。

物理层

物理层的传输单位是比特 ,任务是在物理介质上为数据端设备透明地传输原始比特流 。简单来说就是实现相邻节点的比特流传输。

我们知道,两个节点之间需要通过物理传输媒体(网线、光纤等 )进行连接,节点与节点连接好之后,它们之间要传输数据,首先要解决的第一个问题就是如何实现两个节点的比特传输?

为了实现比特传输,物理层需要定义电路接口的参数,比如说:网线的接口长什么样子、什么形状、里面有几个针脚。这些接口的参数需要由物理层进行定义。

以同轴电缆实现比特传输为例,物理层协议会对传输信号的含义、电气特征做出明确规范:若接收到 5V 高电平信号,即代表二进制 1;若接收到 1V 低电平信号,即代表二进制 0。同时,协议中还会规定每比特电信号的持续时长,比如 5V 高电平信号持续 0.1ms,判定为传输比特 1;1V 低电平信号持续 0.1ms,判定为传输比特 0。

接下来我们思考一个问题,物理层在传输电信号时很容易受到外界影响,可能导致电信号变形,例如,一个高电平电压受到环境影响后变成了低电平电压,这样的话,发送方发送**"1"的电信号,接收方会受到 "0"**的电信号,并且接收方无法得知数据是否错误,那么我们该怎么保证在传输过程中电信号的准确性呢?我们引入数据链路层来解决这个问题。

数据链路层

数据链路层的传输单位是帧,任务是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路。

包含以下功能:

  1. 差错控制:检查和纠错

  2. 流量控制:协调两个相邻节点间的速率

数据链路层以帧为传输单位,会在原始数据(如 8bit)中添加校验比特(如 2bit),整合后交给物理层传输。接收方链路层会通过校验比特检错,有错则纠错或要求重发,无误则剥离校验比特,将原始数据交给网络层。链路层还具备流量控制功能,可协调相邻节点帧传输速率,避免接收方处理不及。

至此,物理层(第 1 层)、数据链路层(第 2 层)已能实现两个相邻节点之间的无差错数据传输。但在实际计算机网络中,大多数节点之间并不会直接相连,往往需要经过多个路由器的存储转发,才能将数据从源节点成功传递到目的节点。为了实现这种跨多个节点的数据存储转发功能,我们需要在数据链路层之上,额外增加一层------网络层,专门负责解决不同节点之间的路由选择与数据转发问题。

网络层

网络层的传输单位是数据报 ,任务是将网络层的协议数据单元(分组)从源主机传输到目的主机,为分组交换网上点的不同主机提供通信服务

包含以下功能:

  1. 路由选择:构造并维护路由表,决定分组到达目的节点的最佳路径。

  2. 分组转发:将"分组"从合适的端口转发出去。

  3. 拥塞控制:发现网络拥堵,并采取缓解措施。

  4. 网际互连:实现异构网络互联(解释:简单来说,路由器的功能是将多个计算机网络连接在一起,但这些被连接的网络,内部构造各不相同,所采用的局域网技术也不一样------比如有的网络用的是以太网技术,有的则用的是令牌环网技术。而无论这些网络的内部结构、采用的技术有多大差异,只要经过路由器网络层的处理,就能把这些内部差异全部屏蔽掉,最终实现不同类型网络之间的正常互联和数据通信。)

  5. 其他功能:差错控制,流量控制,连接的建立与释放,可靠传输管理。

传输层

网络层实现主机到主机的数据分组转发,但一台主机会运行多个进程,数据传到目标主机后,还需区分收发对应的进程,因此在网络层之上增设传输层。

传输层的核心是实现 端到端(进程到进程) 的通信服务(这里的 "端" 指端口),为主机间的进程通信提供通用数据传输能力,各类网络应用均可共用该服务,无需针对特定应用单独设计。

包含以下功能:

  1. 分用和复用复用 是多个应用层进程可同时使用传输层的服务;分用则是传输层将接收到的信息,分别交付给应用层对应的进程,再由应用进程处理应用层报文。

  2. 其他功能:差错控制,流量控制,连接的建立与释放,可靠传输管理。

传输层之间是以报文段为单位传输数据,一个报文段可能会被拆分为多个分组, 源节点的网络层会将这些分组发送给目的节点,最后再由目的节点的网络层把这些分组拼凑成完整的报文段,交付给目的节点的传输层。

会话层

核心任务:专门负责管理网络中不同主机上进程之间的通信会话,保障进程间通信的有序性、连续性,避免因异常中断导致通信数据丢失或重传浪费。

主要功能 :核心为会话管理,其中最关键的是检查点恢复机制。该机制会在通信过程中按规则记录数据传输的关键节点(检查点),若通信因网络中断、设备故障等原因失效,无需从头开始传输数据,恢复连接后可直接从最近的检查点继续后续传输,大幅提升通信效率。

实际举例:主机 A 通过微信向主机 B 发送 1GB 的视频文件时,会话层会全程管控该传输会话。若视频传输至 500MB 时突发网络中断,会话层会立即在 500MB 这个位置记录检查点;当网络恢复、两台主机的通信进程重新建立连接后,视频不会从 0MB 重新发送,而是直接从 500MB 的检查点继续传输剩余内容。

表示层

核心任务:解决不同主机之间信息表示格式不一致的问题,统一通信双方的数据表达形式,让异构主机能正确识别、解析彼此传输的数据,是通信双方的 "数据翻译官"。

主要功能 :以数据格式转换为核心,同时涵盖数据压缩 / 解压、加密 / 解密等配套功能。数据格式转换包含编码格式转换、数据格式标准化等;压缩 / 解压可减小数据传输体积,提升传输速度;加密 / 解密则保障数据在传输过程中的安全性,防止信息泄露。

实际举例:不同主机的系统可能采用不同的字符编码格式,若主机 A 的编码格式为 GBK,主机 B 为 UTF-8,同一个汉字在两台主机中被转换的二进制编码会完全不同 ------ 主机 A 发送的汉字二进制数据,直接传到主机 B 后会出现乱码,这就是典型的信息表示不一致问题。此时表示层会介入处理:主机 A 的表示层先将 GBK 编码的二进制数据转换为双方约定的统一编码格式,再传输至主机 B;主机 B 的表示层接收到数据后,再将其转换为自身可识别的 UTF-8 编码,最终让主机 B 正确显示对应的汉字,解决乱码问题。

应用层

核心任务:直接为用户或应用程序提供特定的网络应用服务,是 OSI 参考模型中最贴近用户的一层,所有用户可见的网络功能都由应用层实现。

主要功能:功能无统一固定标准,完全根据实际网络应用的需求进行设计和开发,种类繁多且随网络技术发展不断拓展。凡是依托网络实现的具体应用功能,都对应应用层的相关协议和服务。

常见举例:日常使用的网页浏览(对应 HTTP/HTTPS 协议)、文件传输(FTP 协议)、电子邮件收发(SMTP/POP3 协议)、即时通讯(微信、QQ 的专属应用层协议)、域名解析(DNS 协议)等,都是应用层实现的典型网络应用。

TCP/IP模型

结构

TCP/IP 模型是一个四层 网络架构模型,由美国国防部高级研究计划局(ARPA)在 20 世纪 70 年代为 ARPANET(互联网前身)所设计。它基于一系列核心协议(如 TCP 和 IP),并因互联网的全球普及而成为实际上的工业标准。与 OSI 模型的理论分层 不同,TCP/IP 模型更侧重于实践和协议实现。

网络接口层

网络接口层是 TCP/IP 模型的最底层,对应 OSI 参考模型的物理层和数据链路层,传输单位是帧,核心任务是负责将网络层传递下来的分组(数据报)封装成帧,通过物理传输媒体实现相邻设备之间的帧传输,同时接收来自物理介质的帧,剥离帧头部信息后,将核心数据(分组)交给网络层。

这里我们思考一个问题:网络接口层只能实现相邻设备之间的帧传输,无法跨越多个网络(如局域网与广域网)传递数据------比如一台家用电脑(局域网内)要向互联网上的服务器发送数据,中间需要经过路由器、交换机等多个设备,此时仅靠网络接口层的帧传输无法完成,因此需要引入网络层,解决跨网络的数据转发问题。

网络层

网络层是 TCP/IP 模型的核心层次,对应 OSI 参考模型的网络层,传输单位是分组(也称为数据报),核心任务是实现跨网络(异构网络)的分组转发,将源主机的分组通过多个路由器的存储转发,最终传递到目的主机,为主机与主机之间(跨网络)的通信提供基础服务。

包含以下功能:

  1. IP 寻址:为互联网中的每一台主机分配唯一的 IP 地址(IPv4 或 IPv6),作为主机的身份标识,确保分组能够准确识别源主机和目的主机。IP 地址就像是主机的"网络身份证",例如家用电脑的 IP 地址可能是 192.168.1.100,互联网服务器的 IP 地址可能是 203.0.113.10,分组通过 IP 地址才能找到对应的目的主机。

  2. 路由选择:路由器会构造并维护路由表,路由表中记录了不同网络的可达路径、路径优先级、下一跳路由器地址等信息。当路由器接收到分组时,会根据分组中的目的 IP 地址,查询路由表,选择一条最优路径,将分组转发到下一跳路由器,直至分组到达目的主机所在的网络。

  3. 分组转发:这是网络层的核心操作,路由器接收来自上层(传输层)或其他路由器的分组后,解析分组头部的目的 IP 地址,结合路由表确定转发端口,将分组转发出去。转发过程中,路由器仅修改分组的物理地址(MAC 地址),不修改 IP 地址和分组的数据内容。

  4. 拥塞控制:当网络中分组数量过多,超过路由器或链路的处理能力时,会出现网络拥塞(导致分组延迟、丢失)。网络层通过丢弃部分分组、调整转发速率等简单方式,缓解拥塞,保障网络的基本传输效率(TCP/IP 模型中,更精细的拥塞控制主要由传输层负责)。

  5. 网际互连:实现异构网络的互联,例如将以太网(局域网)、广域网(如光纤网络)、无线网络等不同类型的网络连接在一起。路由器的网络层能够屏蔽不同底层网络的差异(如帧格式、传输介质不同),通过 IP 协议统一封装分组,实现不同网络之间的正常数据通信。

传输层

传输层对应 OSI 参考模型的传输层,位于网络层之上、应用层之下,传输单位是报文段(TCP 协议)或用户数据报(UDP 协议),核心任务是在网络层"主机到主机"通信的基础上,实现"端到端(进程到进程)"的可靠或不可靠通信,为主机上的不同应用进程提供独立的通信通道,屏蔽网络层的传输差异。

我们知道,网络层只能将分组传递到目的主机,但一台主机上会同时运行多个应用进程(如同时打开浏览器、微信、QQ),分组到达目的主机后,需要明确"交给哪个应用进程处理"------传输层通过"端口"解决这个问题:每个应用进程对应一个唯一的端口号(1-65535),分组到达后,传输层根据端口号,将数据分发给对应的应用进程,这就是"进程到进程"的通信。

包含以下功能:

  1. 分用和复用:复用是指多个应用层进程可以同时使用传输层的服务,传输层会为每个进程分配独立的端口号,将不同进程的数据封装成不同的报文段 / 用户数据报,统一交给网络层传输;分用是指传输层接收来自网络层的分组后,解析分组中的端口号,将数据分别交付给应用层对应的进程。

  2. 可靠传输(TCP 协议专属):TCP 协议通过确认机制、重传机制、排序机制、流量控制、拥塞控制等,确保数据能够准确、有序、无丢失地从源进程传输到目的进程。例如,发送方发送报文段后,会等待接收方的确认消息;若超时未收到确认,会重新发送该报文段;接收方会对收到的报文段进行排序,丢弃重复的报文段,确保数据的有序性。

  3. 不可靠传输(UDP 协议专属):UDP 协议不提供可靠传输,仅负责将应用层的数据封装成用户数据报,交给网络层传输,不进行确认、不重传、不排序,传输效率高,适合对实时性要求高、允许少量数据丢失的场景(如视频通话、语音通话、广播)。

  4. 流量控制:协调源进程和目的进程的数据传输速率,避免目的进程处理速度跟不上源进程的发送速度,导致数据堆积、丢失。TCP 协议通过滑动窗口机制实现流量控制,UDP 协议不提供流量控制。

  5. 连接的建立与释放(TCP 协议专属):TCP 协议是面向连接的协议,通信前需要通过"三次握手"建立连接,确保双方通信就绪;通信结束后,通过"四次挥手"释放连接,释放系统资源;UDP 协议是无连接协议,通信前无需建立连接,通信结束后无需释放连接。

应用层

应用层是 TCP/IP 模型的最上层,对应 OSI 参考模型的会话层、表示层、应用层,核心任务是直接为用户或应用程序提供特定的网络应用服务,是 TCP/IP 模型中最贴近用户的一层,所有用户可见的网络功能,都由应用层实现。

与 OSI 模型将会话、表示、应用功能分开不同,TCP/IP 模型将这三层的功能整合到应用层中,简化了协议设计------应用层无需关注底层的传输细节(如如何分组、如何转发、如何保证可靠传输),只需调用传输层提供的服务,实现具体的网络应用功能即可。应用层的协议都是针对具体应用设计的,种类繁多,随网络技术的发展不断拓展。

补充说明:应用层的所有数据,都会交给传输层(TCP 或 UDP 协议)进行封装,再依次经过网络层、网络接口层的封装,最终通过物理介质传输;接收方则从底层到上层,依次剥离各层的封装头部,最终将数据交给应用层的对应进程,完成一次完整的网络通信。

总结

OSI 参考模型是由国际标准化组织(ISO)制定的理论化七层协议模型(自下而上为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),核心定位是为全球异构网络提供统一的通信规范和理论框架,层次划分细致、功能定义严谨,涵盖了从物理比特传输到应用服务的全流程,但其结构复杂、实现成本高,仅作为理论参考,未在实际网络中广泛应用;TCP/IP 模型源于 ARPAnet 项目,是实用化的四层协议模型(自下而上为网络接口层、网络层、传输层、应用层),核心定位是解决实际网络互联问题,整合了 OSI 模型中会话层、表示层的功能,虽非国际标准,但因其简洁高效、兼容性强,成为全球互联网的实际执行标准,两者核心对应关系明确:TCP/IP 模型的网络接口层对应 OSI 的物理层与数据链路层(负责帧和比特传输),网络层(核心 IP 协议)、传输层(TCP/UDP 协议)分别对应 OSI 的同名层次,应用层则涵盖了 OSI 会话层、表示层、应用层的全部应用服务功能。

相关推荐
不做菜鸟的网工1 小时前
OSPF协议笔记整理
网络协议
tzy2333 小时前
极简版本的 TCP / IP 协议栈介绍
网络·网络协议·tcp/ip
tod1133 小时前
TCP全连接队列与tcpdump抓包
网络·网络协议·tcp/ip·github·tcpdump
cheems95273 小时前
【javaEE】全方位拆解 UDP 协议
网络·网络协议·udp
崎岖Qiu3 小时前
【计算机网络 | 第七篇】数据链路层及三个基本问题
网络·网络协议·计算机网络·数据链路层
科技块儿3 小时前
物联网设备分布分析需要精准地理信息?支持IPv4IPv6双栈批量解析的IP离线库
物联网·网络协议·tcp/ip
一晌小贪欢4 小时前
深入理解 Python HTTP 请求:从基础到高级实战指南
开发语言·网络·python·网络协议·http
Trouvaille ~18 小时前
TCP Socket编程实战(三):线程池优化与TCP编程最佳实践
linux·运维·服务器·网络·c++·网络协议·tcp/ip
JoySSLLian19 小时前
手把手教你安装免费SSL证书(附宝塔/Nginx/Apache配置教程)
网络·人工智能·网络协议·tcp/ip·nginx·apache·ssl