OSI七层协议——分层网络协议

news2025/1/18 6:57:56

OSI七层协议,顾名思义,分为七层,实际上七层是不存在的,是人为的进行划分,让人更好的理解
在这里插入图片描述
七层协议包括,物理层(我),数据链路层(据),网络层(网),传输层(传输),会话层(会),表示层(表),应用层(用)(记忆口诀->我会用表传输网据)

五层协议,物理层,数据链路层,网络层,传输层,应用层

四层协议,网络接口层(口),网络层(网),传输层(传输),应用层(用)(记忆口诀->用传输网口)

物理层

字面意思就是物理特性,物理传输,硬件的意思,正如我们打电话,必须有网线连接,才能打电话,正如计算机之间进行通讯,而网线传输就是电信号,如10101010,这样的二进制数据,当然我们知道电信号一串数字传输过去,根本就不知道这些二进制是什么意思,所以我们要定义一个规则即协议,比如8位为一组,但是这不是在物理层能干的事情,要在数据链路层

数据链路层

数据链路层,定义了一种协议就是我们经常说的,以太网协议Ethernet,他把电信号分为一组,就是我们经常说的数据包,也叫做帧,每一帧由两部分组成,头和数据
在这里插入图片描述
首先,我们在发送数据包的的过程,就如我们写信一样,我们必须知道我们的地址和对方的地址,才能进行发送信息,而计算的的地址就是mac地址,而mac地址是我们计算机出厂就存在的一个唯一标识,因此在包头就有了目标mac地址和源mac地址
在这里插入图片描述
此时我们计算机之间就可以进行通讯了,假设一个教室就是一个局域网,教室的每一个位置就是一台计算机,比如教室有A,B两个人要进行交谈,A就站起来大喊一声B,说我们下午一起吃饭吧,此时教室的所有人都听见了,但是所有人听到A是喊B,就知道叫的不是自己,就会忽略,而B知道叫的是自己,就答应A说,好的,而这种方式叫做广播,数据链路层的工作方式就是广播的方式

刚才我们知道局域网计算机的通信方式,但是我们计算机通讯肯定不能单单在一个局域网进行通讯,而是有无数个局域网组成的一个更大的局域网,假设全世界的计算机就是一个大型局域网,他们之间通讯好像是不是也可以通过广播的方式进行通讯呢,理论上是可以的,但是仔细想想,都在哪里吼一嗓子,世界不会乱了吗,因此就会出现了网络层的概念

网络层

此时网络层也定义了一个协议叫做ip协议,首先举个例子,就是我们每一个教室是一个局域网,有one,two两个教室各自的A,B两个同学要进行交流,但是他们之间不认识,而每个教室都有一个负责人,我们叫做one Teacher ,two Teacher,两位老师,这两位老师相当于我们的网关,然后A同学要找B同学,首先要知道B同学在那个教室,那么就会用上ip协议,ip协议就会区分出B同学在那个教室,这样A同学找到了two Teacher老师告诉他,我要找你们班的B同学,而two Teacher老师就会大吼一声,B同学有人找你,此时就可已进行交流了

mac地址定位的是教室的某一个位置,而ip定位的是哪个教室,此时我们的数据包就会是下面的样子
在这里插入图片描述

此时我们还有一个疑问就是在吼之前,要明确几个地址,自己的mac地址,和ip地址,我可以知道,目标的ip,我们肯定也可以知道,正如我们要访问百度,肯定知道他的域名一样,但是我们怎么知道目标的mac地址呢

其实要知道目标的mac地址,还要靠ARP协议,其实就是靠广播的方式发送ARP数据包,他的格式如下
在这里插入图片描述
其中目标mac地址是12F这叫做广播地址,他的功能就是获取对方的mac地址,当这个包在局域网中发送的时候,每个计算机进行拆解,发现不是自己就会忽略,但是如果是自己就会回把自己的mac地址返回,此时就知道了目标的mac地址了

但是如果是在跨局域网是如何处理的呢,首先通过ip区分目标在哪个网关,然后把目标ip换成网关的ip

在这里插入图片描述

然后网关就会把他自己的mac地址返回给你,放到目标mac地址
在这里插入图片描述
然后在正常发包,此时就会通过网关去找你的目标地址,其实这个过程我们根本就不知道网络的存在

传输层

上面我们通过mac地址和ip地址定位了一条计算机,但是我们的计算机不单单运行一个应用程序,此时就要通过端口进行区分了,传输层就是端口到端口之间通信,且传输层也有他的协议的,比如TCP,UDP

应用层

应用层位于传输层之上,主要提供两个终端设备上的应用程序之间信息交换的服务,它定义了信息交换的格式,消息会交给下一层传输层来传输。我们把应用层交互的数据单元称为报文,应用层定义了许多协议,对于不同的网络应用使用不同的协议,比如Email,WWW,FTP,HTTP等等

TCP和UDP区别

是否面向连接 :UDP 在传送数据之前不需要先建立连接。而 TCP 提供面向连接的服务,在传送数据之前必须先建立连接,数据传送结束后要释放连接。
是否是可靠传输:远地主机在收到 UDP 报文后,不需要给出任何确认,并且不保证数据不丢失,不保证是否顺序到达。TCP 提供可靠的传输服务,TCP 在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制。通过 TCP 连接传输的数据,无差错、不丢失、不重复、并且按序到达。
是否有状态 :这个和上面的“是否可靠传输”相对应。TCP 传输是有状态的,这个有状态说的是 TCP 会去记录自己发送消息的状态比如消息是否发送了、是否被接收了等等。为此 ,TCP 需要维持复杂的连接状态表。而 UDP 是无状态服务,简单来说就是不管发出去之后的事情了。
传输效率 :由于使用 TCP 进行传输的时候多了连接、确认、重传等机制,所以 TCP 的传输效率要比 UDP 低很多。
传输形式 :TCP 是面向字节流的,UDP 是面向报文的。
首部开销 :TCP 首部开销(20 ~ 60 字节)比 UDP 首部开销(8 字节)要大。
是否提供广播或多播服务 :TCP 只支持点对点通信,UDP 支持一对一、一对多、多对一、多对多
在这里插入图片描述

参考文献:OSI协议

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

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

相关文章

浅谈计算机网络04 | 现代网络需求与技术支撑

现代网络需求与技术支撑 一、网络和因特网流量的类型剖析1.1 弹性流量的自适应特征1.2 非弹性流量的刚性特征1.3 实时流量特性 二、特定领域的网络需求解析2.1 大数据环境下的网络需求分析2.2 云计算环境下的网络需求分析2.3 移动数据环境下的网络需求分析 三、QoS和QoE&#x…

微服务架构下的负载均衡:Spring Cloud如何实现高效流量分配

在Spring Cloud中,实现服务的负载均衡,主要是为了让多个服务实例能够均匀分担请求压力,就像把一堆东西分给几个人拿,确保大家都不太累。 假设你开了一个网店,有很多顾客会同时来买东西(这就是并发请求&…

L3自动驾驶开始落地,AI交通时代离我们有多远?

2025年,自动驾驶领域迎来了一个重要的里程碑——L3级别自动驾驶技术的逐步落地。据《中国汽车报》报道,多家汽车制造商已获得L3级自动驾驶的量产资质,这意味着车辆能够在特定条件下完全接管驾驶任务,而驾驶员可以在车内进行其他活…

动手学大数据-2常见的查询优化器

目录 什么是查询优化器 查询优化器分类 Top-downOptimizer Bottom-upOptimizer RBO-关系代数 RBO-优化原则 RBO-列裁剪 RBO-谓词下推 RBO-传递闭包 RBO-RuntimeFilter 小结 CBO(Cost-basedOptimizer) 概念 CBO-统计信息 CBO-统计信息…

ctfshow复现2024ciscn第一场web

2024ciscn第一场 本章内容均在ctfshow复现 图片若显示失败请参考我的blog👇 ddl08.github.io sanic python污染 源码 from sanic import Sanic from sanic.response import text, html from sanic_session import Session import pydash # pydash5.1.2 ​ ​…

Java快速入门之数组、方法

一、数组 1、数组的概念: 数组指的是一种容器,可以用来存储同种数据类型的多个值,但是数组容器在存储数据的时候,需要结合隐式转换考虑。 例如: 定义了一个int类型的数组,那么boolean、double类型的数据是…

STM32 FreeRTOS任务通知

目录 任务通知的简介 任务通知相关API函数介绍 任务通知的简介 任务通知是 FreeRTOS 中一种用于任务间通信的机制,它允许一个任务向其他任务发送简单的通知或信号,以实现任务间的同步和协作。任务通知通常用于替代二值信号量或事件标志组,提…

Chrome谷歌浏览器如何能恢复到之前的旧版本

升级了谷歌最新版不习惯,如何降级版本 未完待续。。 电脑中的Chrome谷歌浏览器升级到了最新版本,但是有种种的不适应,如何能恢复到之前的旧版本呢?我们来看看操作步骤,而且无需卸载重装。 怎么恢复Chrome 之前版本&a…

前端实习第二个月小结

时间飞快,第一次实习已经过去两个多月,作一些简单的总结和分享。 注:文章整体会比较轻松,提及的经历、经验仅作参考。 一、关于实习/工作内容 1、工作内容 近期做的是管理后台方面的业务,技术栈:前端re…

阿里云 Serverless 助力盟主直播:高并发下的稳定性和成本优化

在直播场景中,阿里云 Serverless 应用引擎 SAE 提供的无缝弹性伸缩与极速部署能力,确保直播间高并发时的流畅体验,降低了我们的运营成本,简化了运维流程。结合阿里云云原生数据库 PolarDB 的 Serverless 能力,实现了数…

flutter的web页面

有几个服务器 有几个后台 直接通过web端进去虽然说很方便,但… 于是把web页面镶嵌到应用里面去, 这样就换了个方式打开web页面了 比如这里有有个列表 这里是写死了,活的列表可以通过io去获取 import package:flutter/material.dart; imp…

【Rust自学】13.1. 闭包 Pt.1:什么是闭包、如何使用闭包

13.1.0. 写在正文之前 Rust语言在设计过程中收到了很多语言的启发,而函数式编程对Rust产生了非常显著的影响。函数式编程通常包括通过将函数作为值传递给参数、从其他函数返回它们、将它们分配给变量以供以后执行等等。 在本章中,我们会讨论 Rust 的一…

安装 fairseq 失败

git clone https://github.com/pytorch/fairseq cd fairseq pip install --editable ./ 出现错误 解决方法: pip install pip24.0 参考:https://github.com/SociallyIneptWeeb/AICoverGen/issues/133 gcc 和 g 需要 9.0以上,怎么安装可以…

解决conda create速度过慢的问题

问题 构建了docker容器 想在容器中创建conda环境,但是conda create的时候速度一直很慢 解决办法 宿主机安装的是anaconda 能正常conda create,容器里安装的是miniforge conda create的时候速度一直很慢,因为容器和宿主机共享网络了,宿主机…

AI编程工具横向评测--Cloudstudio塑造完全态的jupyter notebook助力数据分析应用开发

AI编程工具横向评测–Cloudstudio塑造完全态的jupyter notebook助力数据分析应用开发 数据分析类应用的开发,指的是首先进行数据分析,比如统计学分析、机器学习模型的构建等,然后将分析的流程开发成数据分析类的工具,或者将数据分…

Web 浏览器轻松访问和管理 SSH 与 Telnet 服务

前几天也分享了一篇类似的文章,但是有朋友反馈不太安全,如果有个输入密码后访问最好,然后我就找了一下发现了这个更加优秀的项目, sshwifty是一个开源项目,它允许用户通过浏览器进行 SSH 和 Telnet 操作。这个项目提供…

Python制作简易PDF查看工具PDFViewerV1.0

PDFViewer PDF浏览工具,Python自制PDF查看工具,可实现基本翻页浏览功能,其它功能在进一步开发完善当中,如果有想一起开发的朋友,可以留言。本软件完全免费,自由使用。 软件界面简洁,有菜单栏、…

Python大数据可视化:基于Python的王者荣耀战队的数据分析系统设计与实现_flask+hadoop+spider

开发语言:Python框架:flaskPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 管理员登录 管理员功能界面 比赛信息管理 看板展示 系统管理 摘要 本文使用Python与…

【k8s面试题2025】3、练气中期

体内灵气的量和纯度在逐渐增加。 文章目录 在 Kubernetes 中自定义 Service端口报错常用控制器Kubernetes 中拉伸收缩副本失效设置节点容忍异常时间Deployment 控制器的升级和回滚日志收集资源监控监控 Docker将 Master 节点设置为可调度 在 Kubernetes 中自定义 Service端口报…

如何利用SAP官方提供的渠道学习(SAP Help Portal)

首先进入地址 https://help.sap.com/docs/ 然后输入关键词 选择语言 然后就可以浏览自己想看的内容啦