计算机网络的OSI七层模型

目录

1、OSI七层模型是什么

1.1 物理层(Physical Layer)

1.2 数据链路层(Data Link Layer)

1.3 网络层(Network Layer)

1.4 传输层(Transport Layer)

1.5 会话层(Session Layer)

1.6 表示层(Presentation Layer)

1.7 应用层(Application Layer)

2、七层模型图示

3、tcp与udp的位置及其区别

3.1 tcp与udp的位置

3.2 tcp与udp的区别

小结:


1、OSI七层模型是什么

计算机网络的七层模型是指OSI(Open System Interconnection)参考模型,它被国际标准化组织(ISO)制定,并于1984年正式发布。该模型将计算机网络通信协议分为七层,该模型目的是将复杂的网络通信问题划分为更小、更容易管理的部分,每一层负责不同的功能,分别是:

1.1 物理层(Physical Layer)

负责传输比特流,即0和1的数据流,这一层关注数据传输的物理特性,如电压、电流、频率等。这一层的数据单位叫做比特(bit)。

物理层是OSI七层模型中最底层的部分,主要负责将数字数据转换成适合在通信信道中传输的信号。物理层直接和物理介质相关,主要定义了相关物理设备的标准(网卡,网线,集线器,中继器,调制解调器等)。

1.2 数据链路层(Data Link Layer)

负责将物理层传输的比特流组织成➡帧(Frame),并进行错误检测和纠正,以保证数据无误地传输。

因为数据链路层是 OSI 模型中最复杂的一层,所以它通常被分成两部分: 媒体访问控制子层和逻辑链路控制子层。数据链路层的协议是由底层网络定义的。在物理层传输的比特序列被组合成字节,进而组合成帧。数据链路层使用MAC地址访问介质,可以发现错误,但不能纠正。

图片来源:计算机网络 – 七层模型概述 – 前端教程

1.3 网络层(Network Layer)

负责实现不同网络之间的互联,提供路由选择和寻址等功能,以保证数据能够正确地传递到目标网络中。网络层在数据链路层之上增加了路由的概念。每当数据抵达网络层时,就会检查每个帧中包含的源地址和目标地址,以确定数据是否已到达其最终目的地。如果数据已经到达最终目的地,第3层就会将数据格式化并打包为数据包交付给下一层运输层,否则网络层会更新目的地址并将帧推送到下层。

图片来源:计算机网络 – 七层模型概述 – 前端教程

互联网是由无数子网络构成的巨型网络,为了避免在同一网段内的广播风暴,需要将用户划分到不同的网段,使得每个用户都能在自己的小网段内进行广播。为了实现这个目的,在网络层引入了一套新的地址系统,称为“网络地址”或“网址”。每台计算机在网络层拥有两种地址:MAC地址和网络地址。MAC地址是网卡固有的地址,而网络地址则是由网络管理员分配的。网络地址用于区分不同的子网络,而MAC地址将数据包送达目标子网络内的特定网卡。

为了支持路由,网络层需要一个维护逻辑地址,比如网络设备的IP地址。网络层还管理着这些逻辑地址和物理地址之间的映射,在IPv4网络中,这种映射通过地址解析协议(ARP)完成,IPv6使用邻居发现协议(NDP)。

1.4 传输层(Transport Layer)

负责将数据可靠地传输到目标主机的应用程序中,提供端到端的数据传输服务。传输层通过网络连接传输数据。传输层在网络通信过程中起着至关重要的作用,主要负责定义端口号、流量控制和校验。TCP(传输控制协议)和 UDP(用户数据报协议)是传输层比较常见且有代表性的协议。

  • TCP协议是一种面向连接的、可靠的协议。它通过三次握手和四次挥手的过程来确保数据传输的可靠性(可靠协议)。然而,这种可靠性的保证会以速度为代价,因为三次握手和四次挥手会增加通信的开销。尽管如此,TCP协议在很多场景下仍然是首选,如文件传输、电子邮件发送和Web浏览等。
  • 与TCP相比,UDP协议更注重实时性和高效性。由于UDP没有进行三次握手和四次挥手的过程,因此它的稳定性相对较低,但传输速度较快。这使得UDP协议非常适用于对实时性和低延迟性有较高要求的场景,如在线游戏、实时音视频通信和直播等。

1.5 会话层(Session Layer)

负责建立、维护和关闭应用程序之间的会话,为应用程序提供可靠的数据传输和错误处理机制。在网络通信中负责创建、维护、终止或断开发送方和接收方之间的连接,类似于电话通话的过程。它为发送方和接收方提供了一种机制,允许他们在需要时启动或停止通信会话,并在通信过程中遇到拥塞的情况下仍能维持对话。它支持多种类型的连接,这些连接可以动态地创建并在单个网络上运行。

1.6 表示层(Presentation Layer)

主要是进行消息数据的语法处理,负责数据的格式转换、加密解密和压缩解压缩等操作,以保证应用程序能够正确地读取和处理数据。也常被称为“报文”。

1.7 应用层(Application Layer)

应用层为终端用户使用的应用提供网络服务(处理用户数据的协议)。举个例子,在Web浏览器应用程序中,应用层协议HTTP打包发送和接收网页内容所需的数据。同时应用层也会向表示层提供或获取数据。该层负责提供网络应用程序所需的服务,例如电子邮件、文件传输、远程登录等。

它是网络模型中与用户最接近的一层,为用户提供了直接的网络服务和应用接口。应用层处理了诸多网络协议,以满足用户在各种场景下的需求。以下是一些常见的应用层协议及其用途:

  1. HTTP(超文本传输协议):HTTP 是用于在互联网上进行文档和资源传输的基本协议。例如,当我们使用浏览器访问网页时,就是通过 HTTP 协议进行通信的。在 Web 开发中,AJAX 请求也是基于 HTTP 协议发送的。
  2. DNS(域名系统):DNS 是用于将域名解析成 IP 地址的服务,它将便于人们记忆的域名转换为计算机可识别的 IP 地址。例如,当我们在浏览器中输入一个网址时,DNS 会将该网址转换为实际的 IP 地址,以便正确访问目标网站。
  3. SMTP(简单邮件传输协议):SMTP 是一种用于在网络上发送和接收电子邮件的协议。当我们使用电子邮件客户端或 Web 邮件服务发送邮件时,就是通过 SMTP 协议进行通信的。
  4. WebSocket:WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,用于实现客户端和服务器之间的长连接。例如,在实时聊天、在线游戏或股票行情推送等场景中,WebSocket 可以提供低延迟、高效的数据传输。
  5. SSH(安全外壳协议):SSH 是一种用于在不安全的网络环境中对远程服务器进行安全访问和管理的加密协议。它可以保护数据在传输过程中的完整性、机密性和可靠性,广泛应用于远程登录、文件传输等场景。(片段引自:计算机网络 - 七层模型概述 - 掘金)

2、七层模型图示

图片来源:网络七层模型-CSDN博客

3、tcp与udp的位置及其区别

3.1 tcp与udp的位置

TCP和UDP都是传输层协议,处于OSI参考模型的第四层。在TCP/IP协议栈中,TCP和UDP也位于网络层和应用层之间,负责提供端到端的数据传输服务。其中,TCP是一种面向连接的协议,提供可靠的数据传输服务,而UDP则是一种无连接的协议,提供不可靠但高效的数据传输服务。由于UDP比较简单,UDP头包含很少的字节,比TCP负载消耗少。

3.2 tcp与udp的区别

TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种常用的传输层协议,它们之间有以下几点区别:

  1. 连接导向 vs 无连接:TCP是一种面向连接的协议,通信双方在传输数据前需要先建立连接,然后再进行数据传输,最后释放连接;而UDP是无连接的,通信双方直接发送数据包,不需要建立连接。

  2. 可靠性:TCP提供可靠的数据传输,通过序号、确认和重传机制来确保数据的完整性和顺序性;而UDP不提供可靠性保证,数据包可能会丢失或者乱序到达。

  3. 拥塞控制:TCP具有拥塞控制机制,可以根据网络情况动态调整传输速率,以避免网络拥塞;UDP没有拥塞控制机制,数据包会以最大速率发送,可能导致网络拥塞。

  4. 数据量限制:TCP没有固定的数据包大小限制,可以根据需要动态调整;而UDP有固定的数据包大小限制,每个数据包的大小都有一个上限。TCP的头部开销大,UDP的头部开销小。

  5. 应用场景:TCP是面向字节流的,UDP是面向报文的。TCP适用于要求可靠传输、顺序传送的应用,如文件传输、邮件等;UDP适用于实时性要求高、可以容忍少量数据丢失的应用,如音频、视频流等。

总的来说,TCP和UDP各有优势,适用于不同的应用场景。TCP适合对数据可靠性要求高的场景,而UDP适合对实时性要求高的场景。在实际应用中,根据具体需求选择合适的协议非常重要。

小结:

尽管OSI七层模型在理论上得到了广泛的认可和应用,但在实际的网络实现中,它并没有得到广泛的采用。TCP/IP协议族,最早由美国国防部高级研究计划署(DARPA)在20世纪70年代开发,成为了互联网的基石。TCP/IP模型采用了一个更简化的四层架构,即:链路层、网络层、传输层和应用层。

图片来源:计算机网络 – 七层模型概述 – 前端教程

就算如此,OSI七层模型仍然是计算机网络领域的重要理论基础。这七层模型的设计目的是为了提供一个标准的参考框架,使不同厂商和组织开发的计算机网络能够相互兼容和互通。同时,该模型也有助于理解和分析网络通信协议的工作原理和功能。它有助于理解不同协议和设备如何相互协作,并为网络故障排查、性能优化等提供了有用的参考框架。

参考:

计算机网络 - 七层模型概述 - 掘金

简单图解OSI七层网络模型

网络七层结构是干啥的?看这篇文章就够了 - 知乎

网络七层模型-CSDN博客

ISO的七层模型是什么?tcp/udp属于哪一层?tcp/udp有哪些优缺点?tcp/udp的使用场合?PPP协议属于哪一层协议?_tcp哪一层-CSDN博客

TCP和UDP的区别_ZJE_ANDY的博客-CSDN博客

【精选】计算机网络七层模型OSI_计网七层模型_coding-day的博客-CSDN博客


感谢阅读,码字不易,多谢点赞!如有不当之处,欢迎反馈指出,感谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/154305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何进行并发编程和线程同步?

并发编程是一种多任务处理的编程范式,它允许程序中的多个任务(线程、进程等)在相同的时间段内执行。线程同步是确保这些并发任务在共享资源上正确协作的一种技术。在C语言中,通过使用线程和相关的同步机制,可以实现并发…

5款免费BI数据可视化工具,2023年最新精选推荐!

BI可视化工具顾名思义是进行数据分析和可视化的软件,旨在将数据以表格、图表、仪表盘等形式展示出来,让用户能够更加直观了解其业务状况、发现问题,并在必要时进行决策。   市面上BI数据可视化工具很多,目前比较火的像国外的Tabl…

应用软件安全编程--24不要使用硬编码密匙

当程序中使用硬编码加密密匙时,所有项目开发人员都可以查看该密匙,甚至如果攻击者能够获取 程序 class文件,可通过反编译得到密匙,硬编码加密密匙会大大降低系统安全性。 对于避免使用硬编码密匙的情况,示例1给出了不…

jQUery(基本介绍+示例代码)

一、JQUery基本介绍和特点 jQuery 是一个快速、轻量级、跨浏览器的 JavaScript 库。它简化了在网页开发中处理诸多任务的过程,提供了易于使用的 API,使得开发者能够更容易地操作 HTML 文档、处理事件、执行动画、发送 AJAX 请求等。 以下是一些 jQuery…

CTF/AWD竞赛标准参考书+实战指南

随着网络安全问题日益凸显,国家对网络安全人才的需求持续增长,其中,网络安全竞赛在国家以及企业的人才培养和选拔中扮演着至关重要的角色。 在数字化时代,企业为了应对日益增长的攻击威胁,一般都在大量部署安全产品、…

PyInstaller 如何 将第三方库打包到可执行文件

PyInstaller 是一个非常流行的 Python 打包工具,它可以将你的 Python 程序以及其依赖项打包成一个可执行文件。如果你想将第三方库打包到可执行文件中,你可以按照以下步骤操作: 首先,确保你已经安装了 PyInstaller。如果没有&…

uview-plus u-picker的defaultIndexs修改后无效的问题

uniapp项目中使用了uview-plus组件库,在使用u-picker组件时,发现其默认的选中属性 defaultIndex是一次性的,修改后无法响应,解决办法就是在u-picker源码中修改这个属性的watch,源码位置在uni_modules/uview-plus/components/u-pi…

Hive 定义变量 变量赋值 引用变量

Hive 定义变量 变量赋值 引用变量 变量 hive 中变量和属性命名空间 命名空间权限描述hivevar读写用户自定义变量hiveconf读写hive相关配置属性system读写java定义额配置属性env只读shell环境定义的环境变量 语法 Java对这个除env命名空间内容具有可读可写权利; …

Qt如何解析JSON格式

Qt 5.15 版本以后&#xff0c;推荐使用 QJsonDocument 来解析 JSON 数据。 直接贴代码&#xff1a; #include <QJsonDocument> #include <QJsonObject> #include <QFile>// 从文件中读取 JSON 数据 QFile file("data.json"); file.open(QIODevi…

SQL零基础入门教程,贼拉详细!贼拉简单! 速通数据库期末考!(十一)

COUNT() 计数函数 COUNT() 函数返回匹配指定条件的行数。 语法&#xff1a; 1.返回指定列的字段值条数 SELECT COUNT(column_name) FROM table_name;2.返回整表数据行条数 SELECT COUNT(*) FROM table_name;3.返回指定列去重后的字段值条数 SELECT COUNT(DISTINCT column_…

Leetcode 第 372 场周赛题解

Leetcode 第 372 场周赛题解 Leetcode 第 372 场周赛题解题目1&#xff1a;2937. 使三个字符串相等思路代码复杂度分析 题目2&#xff1a;2938. 区分黑球与白球思路代码复杂度分析 题目3&#xff1a;2939. 最大异或乘积思路代码复杂度分析 题目4&#xff1a;2940. 找到 Alice 和…

vatee万腾的科技奇点:Vatee创新力引领数字未来

在数字时代的涌动潮流中&#xff0c;Vatee万腾显露出一颗科技的奇点之心&#xff0c;其创新力正引领着数字未来的前沿。随着科技不断演进&#xff0c;Vatee万腾敏锐地捕捉到了科技的契机&#xff0c;展现出独特的创新视野&#xff0c;为数字化未来勾勒出了一幅令人瞩目的画卷。…

使用frp搭建内网穿透服务

使用frp搭建内网穿透服务 frp 是一个专注于内网穿透的高性能的反向代理应用&#xff0c;支持 TCP、UDP、HTTP、HTTPS 等多种协议&#xff0c;且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。 1.下载frp 下载地址 2.服务端安装 …

[Linux] shell脚本相关知识

一、shell脚本基础 1.1 shell脚本的作用 shell将人类使用的高级语言翻译成二进制&#xff0c;再将二进制翻译成高级语言。换句话就是人类写了一个命令集合&#xff0c;然后用bash去翻译给硬件执行。 linux中常见的shell&#xff1a; bash:基于gun的框架下发展的shell csh:类…

同为科技(TOWE)智能机柜PDU助力上海华为数据中心完善机房末端配电

智能时代加速而来&#xff0c;最大的需求是算力&#xff0c;最关键的基础设施是数据中心。作为一家在信息通信领域拥有多年经验和技术积累的公司&#xff0c;华为在全国多个地区都设有数据中心&#xff0c;如知名的贵州贵安华为云全球总部、内蒙古乌兰察布华为数据中心等&#…

pnpm 管理依赖包是如何节省磁盘空间的?

npm 存在的问题 我们经常使用 npm 来管理 node 项目中的包&#xff0c;从 package.json 中读取配置将依赖下载到本地&#xff0c;以保障项目的正常运行。 当项目数量多时&#xff0c;这样的包管理方式会非常的占用电脑内存。由于每个项目都有属于自己的依赖&#xff0c;每个项…

什么是多域名证书?

多域名证书是指同一个证书中包含多个域名&#xff0c;能够在多个站点之间共享一份证书&#xff0c;实现一个站点对应多个域名的情况。多域名证书非常适合需要跨多个站点部署的应用&#xff0c;例如企业的子站点、博客等。 特点 多域名证书的优点包括以下几个方面&#xff1a;…

【软件工程_软件工程项目管理】课后题

选择 1、( A )不属于项目的活动。 A.罐头产品的生产 B.一种新型罐头产品的发展 C.罐头产品的试制 D.罐头产品的营销策划 2、WBS&#xff08;任务分解结构&#xff09;非常重要&#xff0c;因为下列原因&#xff0c;除了&#xff08;D &#xff09; A.帮助组织工作 B.防止遗漏工…

python使用timm创建模型出现connect error

使用timm创建模型会出现网络连接等错误&#xff0c;比如LocalEntryNotFoundError: Connection error, and we cannot find the requested files in the disk cache. Please try again or make sure your Internet connection is on. 这是因为timm下载权重默认是从huggingfaceH…

【原创】为MybatisPlus增加一个逻辑删除插件,让XML中的SQL也能自动增加逻辑删除功能

前言 看到这个标题有人就要说了&#xff0c;D哥啊&#xff0c;MybatisPlus不是本来就有逻辑删除的配置吗&#xff0c;比如TableLogic注解&#xff0c;配置文件里也能添加如下配置设置逻辑删除。 mybatis-plus:mapper-locations: classpath*:mapper/*.xmlconfiguration:mapUnd…