举例详解 TCP/IP 五层(或四层)模型与 OSI七层模型对比 (画图详解 一篇看懂!)

news/2024/9/23 4:17:58/

目录

一、为什么要对协议进行分层

1、什么是协议分层

2、协议分层的好处

二、TCP/IP 五层(或四层)模型 

1、概念

·应用层

·传输层

·网络

·数据链路层

·物理层

2、举例详解

·传输层

·网络

·数据链路层 和 物理层

·应用层

四、TCP/IP 五层(或四层)模型 与 OSI 七层模型 的对比


一、为什么要对协议进行分层

1、什么是协议分层

        网络通信是一个非常复杂的事情,在这个过程中会涉及到很多细节的问题。如果我们使用一个协议来约定上述的所有细节,那这个协议就会非常庞大,非常复杂

        此时,我们就可以将一个功能复杂繁琐的协议,拆分成多个功能更单一的协议。拆分,是为了管理复杂程度,对协议进行 “分类” 、“分层”,每个部分负责一个功能,使结构更清晰明。      

        协议分层,就是把很多协议,按照功能分成不同的层级,每个层级都有对应的主线任务。上层协议会调用下层协议的功能,下层协议会给上层协议提供服务。

2、协议分层的好处

        协议分层最大的好处,类似于面向接口编程:定义好两层间的接口规范,让双方都遵循这个规范来对接。

这样的好处在于:

·对于使用方来说,并不需要关心提供方是如何实现,只要能通过接口实现对应功能就行

·对于提供方来说,并不需要关心使用方是如何使用,只需要实现功能,提供接口就行

        这样的分层也有利于更好的维护与拓展,给整个网络体系的更新迭代带来了很大的便利~

二、TCP/IP 五层(或四层)模型 

1、概念

        TCP/IP 是一组协议的代名词,他包括了许多协议,组成了 TCP/IP 协议簇。TCP/IP 通讯协议采用了 5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

·应用层

        负责应用程序间的沟通。如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。

·传输层

        负责两台主机之间的数据传输。如传输控制协议(TCP),能够确保数据可靠的从源主机发送到目标主机。

·网络

        负责地址管理和路由选择。例如在 IP协议 中,通过 IP地址 来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输线路(路由)。路由器工作在网络层。

·数据链路层

        负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网,无线LAN等标准。交换机工作在数据链路层。

·物理层

        负责光/电信号的传递方式。比如现在以太网通用的网线(双绞线)、早期以太网采用的同轴电缆(现在主要用于有线电视机)、光纤,现在的 WiFi 无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器工作在物理层。

物理层我们平时考虑的较少,所以有时候也称为 TCP/IP四层模型 

2、举例详解

在这边我们举一个 送快递 的例子来辅助我们理解 TCP/IP 模型各个层的原理:

·传输层

        例如我们在某个购物平台购买了一件商品 ‘A’, 在下单时,需要填写我们和商家的地址与电话。在这个过程中,我们只需要关心我们和商家的地址信息。就类比为 传输层 主机间的数据传输,只需要关注 源主机目标主机 的 “地址信息”。

·网络

        商家接到订单,要把包裹交给快递公司来运送给我们。但包裹运送具体的路线选择、运输工具,这些是不需要商家和用户关心的,由快递公司来进行 路线规划和路线选择。这一层就相当于 网络负责地址管理和路由选择。

·数据链路层 和 物理层

        当快递公司规划好路线之后,具体如何运输就由快递员来负责。这一部分的功能交给快递员来实现,具体是要用 大货车、大卡车、轮船还是三轮车,这部分也不需要快递公司关心了。数据链路层 负责设备之间的数据帧的传送和识别,物理层负责选择信息的传递方式。

·应用层

        当快递拿到手之后,用户要如何使用这件物品,就与上述每一个流程都无关。用户只负责与商家进行交涉这一部分,其他的运输、路线选择等等也都与用户无关。应用层负责应用程序间的沟通。

四、TCP/IP 五层(或四层)模型 与 OSI 七层模型 的对比

        OSI七层模型既复杂又不实用,所以,OSI七层模型没有落地实现。实际组建网络时,只是以 OSI七层模型设计中的部分分层,也即是 TCP/IP 五层(四层)模型来实现的。


        以上就是 举例详解 TCP/IP 五层(或四层)模型与 OSI七层模型对比 (画图详解 一篇看懂!) 的全部内容了,希望能对您有所帮助!


http://www.ppmy.cn/news/1444386.html

相关文章

走向大规模应用之前,DePIN 如何突破技术、数据与市场之网

近期,随着分布式物理基础设施网络(DePIN)的快速演变,一个旨在利用区块链技术彻底改造传统基础设施模型的新兴生态系统正在逐渐浮现。2024 年 4 月,以 peaq 为代表的 DePIN 项目成功筹集了 1500 万美元用于生态系统的扩…

严把质量关,饮片追溯系统应用,信息化追溯助力用药安全-亿发

中药饮片作为我国中药产业的重要组成部分,在医药工业中发挥着至关重要的作用。近年来,中药饮片行业虽然取得了稳步增长,但同时也面临着产业集中度低、竞争激烈、质量良莠不齐等诸多挑战。为了应对这些问题,国家和各地纷纷加强中药…

Python深度学习实践:使用TensorFlow构建图像分类器

摘要 随着深度学习技术的飞速发展,图像识别已成为AI领域的热点应用之一。本篇文章将引导读者使用Python和Google的TensorFlow框架,从零开始构建一个简单的图像分类器。我们将深入探讨卷积神经网络(CNN)的基本原理,实现一个能够识别MNIST手写数字的数据集模型,并通过实战代…

react挂载后函数

在React中,当组件被挂载到DOM后,你可以使用生命周期方法 componentDidMount() 来执行某些操作。这是React组件生命周期中的一个重要阶段,此时组件已经被渲染并插入到DOM中。 componentDidMount() 是一个在组件输出到DOM后立即自动调用的方法…

【MHA】MySQL高可用MHA介绍4-故障监控与切换具体流程

目录 一 故障监控与切换 1 验证复制设置并识别当前主服务器 2 监控主服务器 3 检测主服务器故障 4 再次验证从服务器配置 5 关闭故障的主服务器(可选) 6 恢复新主服务器 6.1 保存来自 已崩溃主服务器的二进制日志事件(如果可能&#…

Android Framework 获取所有应用的运行异常情况

Mdm需求,获取所有应用运行异常情况 实现 Android_source/frameworks/base/core/java/android/app/IActivityManager.aidl // add getAppRuntimeExceptionInfo List getAppRuntimeExceptionInfo();Android_source/frameworks/base/service/core/java/com/android/server/am/Acti…

SpringBoot JPA使用

SpringBoot JPA使用 简介 Spring Data JPA 是 Spring 框架提供的一个模块,用于简化与关系型数据库的交互和数据访问。它基于JPA(Java Persistence API)标准,并提供了一组易于使用的API和工具,帮助开发人员更轻松地进…

.net 报错 远程主机强迫关闭了一个现有的连接 问题分析解决

先测试cmd 发现可以ping通地址:证明不是网络问题 postman 报错 Error: Hostname/IP does not match certificates altnames 设置里ssl验证默认开启,把选项关闭,接着就正常了:证明应该是https或ssl 相关通讯出现问题 visual st…