计算机网络的OSI七层模型

news2024/11/19 10:36:00

目录

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.coloradmin.cn/o/1233288.html

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

相关文章

PLC设备相关常用英文单词(一)

PLC设备相关常用英文单词(一) Baud rate 波特率Bus 总线Binary 二进制Configuration 组态Consistent data 一致性数据Counter 计数器Cycle time 循环时间Conveyor 传送Device names 设备名称Debug 调试Download 下载Expand 扩展Fix 固定Flow 流量Functio…

【数据结构(三)】单链表(1)

文章目录 1. 链表介绍2. 单链表应用实例2.1. 顺序添加方式2.1.1. 思路分析2.1.2. 代码实现 2.2. 按照编号顺序添加方式2.2.1. 思路分析2.2.2. 代码实现 3. 单链表节点的修改3.1. 思路分析3.2. 代码实现 4. 单链表节点的删除4.1. 思路分析4.2. 代码实现 5. 单链表常见面试题5.1.…

支持寄存器模型读写功能的AHB driver实现——导读

1.前言 UVM driver在接口协议的实现中起着非常重要的作用,因为它一端处理基于类的事务级sequence,另一端处理基于时钟的信号/引脚级的总线行为。因此,如何实现 UVM driver及其与sequence的同步对于 DUT 和 UVM 环境之间的交互以及避免 UVM d…

LeSS敏捷框架高效生产力实践

每个团队可能都有一套适合自己的敏捷方法,本文介绍了ResponseTap工程团队通过采用LeSS框架、引入准备周,从而提升迭代冲刺研发效能的实践。原文: LeSS Agile, More Productive — Part 1: Pain[1], LeSS Agile, More Productive — Part 2: Promise, LeS…

吉他效果器开发方法

吉他效果器开发方法 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,群赠送语音信号处理降噪算法,蓝牙耳机音频,ADI DSP音频项目核心开发资料, 1 做出的效果图 2 介绍 …

ISP概念入门

这里写自定义目录标题 引言ISP的处理流程1、Sensor有暗电流2、通过镜头到达Sensor中间的光多于到达Sensor的边缘的光,即光学系统中的渐晕3、Senor上有的像素点的输出有坏点4、Cmos的Sensor采用了Bayer色彩滤波阵列(Bayer Color Filter Array,CFA)5、Seno…

css animation 动画如何保留动画结束后的状态 animation-fill-mode: forwards

css animation 动画如何保留动画结束后的状态 animation-fill-mode: forwards 一、问题描述 在做一个弹窗动画提示的时候遇到了一个问题: 在动画结束的时候,移除元素时会有闪一下的问题,像这样,有残留的痕迹。 我的动画结尾是这…

Mysql之聚合函数

Mysql之聚合函数 什么是聚合函数常见的聚合函数GROUP BYWITH ROLLUPHAVINGHAVING与WHERE的对比 总结SQL底层原理 什么是聚合函数 对一组数据进行汇总的函数,但是还是返回一个结果 聚合函数也叫聚集,分组函数 常见的聚合函数 1.AVG(): 求平均值 2.SUM() :…

choices参数的使用、MVC和MTV的模式、创建表对表关系的三种创建方式

【1】choices参数的使用 应用场景:针对表中可能列表完全的字段,采用choices参数 例如:性别,代码如下 # 1.创建一张表class gender_info(models.Model):name models.CharField(max_length32)password models.CharField(max_lengt…

webstorm配置console.log打印

一、设置面板 打开设置面板(windows 快捷键: ctrl alt s) ,找到 编辑器 -> 实时模板 -> JavaScript -> log,点击log会出现对应的配置 二、模板文本 将下面这些模板文本粘贴进去 console.info("🚀 ~ file:$file…

自然语言处理:Transformer与GPT

Transformer和GPT(Generative Pre-trained Transformer)是深度学习和自然语言处理(NLP)领域的两个重要概念,它们之间存在密切的关系但也有明显的不同。 1 基本概念 1.1 Transformer基本概念 Transformer是一种深度学…

Python matplotlib Linecollection() 函数用法

Python matplotlib Linecollection 函数用法 今天看到了这个函数的用法觉得很有意思,因为通常,如果我们想要在 matplotlib 中绘制多条线条,通常我们的做法是使用 for 循环绘制。然而当想要绘制的线条逐渐多起来的时候,使用 for 循…

如何在外部数据库中存储空间化表时使用Mapinfo_mapcatalog

开始创建地图目录表之前 您将使用EasyLoader在要使用的数据库中创建地图目录表。EasyLoader与MapInfo Pro一起安装。 (工具“DBMS_Catalog”不再随MapInfo Professional 64位一起提供,因为它的功能可以在EasyLoader工具中找到。) ​ 注&…

windows 查看防火墙设置命令使用方法

点击键盘上windows键,输入cmd,选择以管理员身份运行 输入下面命令查看使用说明 netsh advfirewall firewall add rule ? 发现显示不全,不方便看 可以输入下面命令,生成文件,方便查看 netsh advfirewall firewall ad…

人机交互——机器人形态

1.聊天机器人 2.任务型机器人 3.面向FAQ的问答机器人 4.面向KB的问答机器人

【C++】——多态性与模板(其二)

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

人工智能带来的各方面影响

近年来,人工智能(AI)技术在各个领域中的应用越来越广泛,已经开始对我们的生活方式、社会和经济结构产生深远的影响。 1.人工智能家庭化。人工智能技术使我们的生活变得更加便利和智能化。在家庭日常中,智能家居、智能…

二百零七、Flume——Flume实时采集5分钟频率的Kafka数据直接写入ODS层表的HDFS文件路径下

一、目的 在离线数仓中,需要用Flume去采集Kafka中的数据,然后写入HDFS中。 由于每种数据类型的频率、数据大小、数据规模不同,因此每种数据的采集需要不同的Flume配置文件。玩了几天Flume,感觉Flume的使用难点就是配置文件 二、…

图像处理02 matlab中NSCT的使用

06 matlab中NSCT的使用 最近在学习NSCT相关内容,奈何网上资源太少,简单看了些论文找了一些帖子才懂了一点点,在此分享给大家,希望有所帮助。 一.NSCT流程 首先我们先梳理一下NSCT变换的流程,只有清楚流程才更好的理清…

一文详看大模型长文本如何评估:四大主流评测数据集的任务设计、数据集构建方案

大语言模型(LLM)尽管在各种语言任务中表现抢眼,但通常仅限于处理上下文窗口大小范围内的文本。 有越来越多的基准被提出来测试LLM的长文本理解能力。 当前具有代表性的长文本评测主要包括Zero-SCROLLS、L-Eval、LongBench以及loogle四个基准…