OSI七层模型与物理层与设备链路层
目录
协议
举例
OSI七层模型
理解七层模型
以下为OSI七层模型数据逐层封装和数据逐层解封的过程
TCP/IP参考模型
数据包的层层封装与层层拆包
各层的数据以及协议
封装所用的协议的数字表示形式
物理层
模拟信号
模拟信号特点
数字信号
数字信号特点
数据通信模型
信道
通信方式
数据链路层
数据链路层的三个基本问题
封装成帧
透明传输
差错检验
CSMA/CD协议
Ethernet V2帧的格式
PPP协议
网卡
协议
前言:互联网的出现彻底的改变了人们的生活方式,足不出户就可以购物、聊天、看电影、买车票、上班等。但是,数据从一个设备传到另一个设备需要网络的协议来规定;没有网络协议就没有今天的互联网
含义:电脑内部的一种规矩,它规定了两个设备通讯时如何识别对方、如何建立连接、使用的讯号类型、数据的编码和解码方式、数据传输的类型、数据传输的方式以及物理层面上的电压电流保持和截止时间等等规定,两个设备只有协议完全一样或者相容,他们之间才能够进行通讯
举例
假设A与B元器件之间有一根电路,可以通电和断电,若我们不做任何的规定和约束,那么这个总线除了可以通电和断电之外就无法实现任何的功能,若我们规定一秒为10个周期通电为1、断电为0;那么A只需要通过大量的通电和断电就可以将想发送的信息以每秒10bit的速度向B传输数据;而这个一秒为10个周期,通电代表1,断电代表0这个规定就是A和B之间的通信协议。
理解:协议就是一种双方提前约定好采用某种形式以某种规格利用某种物体把数据传输出去,而另一方再以同样的规则和流程去接受数据的约定制度或者规章。
OSI七层模型
前言:由于早期计算机厂商使用私有网络模型没有统一标准,因此ISO在1984年颁布了OSI参考模型,将网络分为七层
定义:OSI七层模型 (Open System Interconnect),全称为开放系统互连参考模型,是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互联参考模型,为开放式互联信息系统提供了一种功能结构的框架。
理解七层模型
- 应用层:将原始数据转换为电脑能够识别的二进制数据
- 表示层:数据的表示,加密,压缩等
- 会话层:建立、管理、终止会话(软件层面)
- 传输层:定义传输数据的协议、端口号、流控、差错校验
- 网络层:进行逻辑地址(IP地址)的寻址,实现不同网络之间的路径选择
- 数据链路层:建立逻辑连接,进行硬件地址(MAC地址)的寻址、差错校验
- 物理层:二进制数据转换为传输的电信号以及光信号(建立、维护、断开物理连接)
以下为OSI七层模型数据逐层封装和数据逐层解封的过程
注意:每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如发送的目标地址以及协议相关信息。通常,为协议提供的信息为包首部,所要发送的内容为数据。在下一层的角度看,从上一层收到的包全部都被认为是本层的数据。
TCP/IP参考模型
前言:OSI参考模型仅仅是一个标准,而且制定这个标准的组织很多时候太理论了,然而在实际运用过程中逐渐发现TCP/IP协议模型才是实践型的(实际应用过程中这种TCP/IP模型才是符合现实生活的);只有四层体系结构的TCP/IP协议与有七层体系结构的OSI相比要简单了不少,也正是这样,TCP/IP协议在实际的应用中效率更高,成本更低。
注意:当然,有的教材为了研究更加清楚,通常把网络接口层分为2层(数据链路层、物理层),这样TCP/IP模型就具有五层结构
数据包的层层封装与层层拆包
各层的数据以及协议
封装所用的协议的数字表示形式
物理层
前言:物理层定义了接口标准,线缆标准,传输速率,传输方式等
模拟信号
模拟信号特点
- 模拟信号为连续的信号,适合长距离传输
- 模拟信号抗干扰能力差,受到干扰时波形变形很难纠正
数字信号
数字信号特点
- 数字信号为离散的信号,不适合长距离传输
- 数字信号抗干扰能力强,受到干扰时波形失真可以修复
数据通信模型
信道
含义:信息传输的通道,一条传输介质上(比如网线)上可以有多条信道
通信方式
- 单工通信:信号只能往一个方向传输,任何时候都不能改变信号的传输方向
- 半双工通信:信号可以双向传输,但必须是交替进行,同一时间只能往一个方向传输。
- 全双工通信:一个通道同一时间允许双向进行数据的传输
数据链路层
链路:从一个节点到相邻节点的一段物理线路(有线或无线),中间没有其他交换节点
注意:
- 集线器不算一个链路节点
- 在一条链路上传输数据时,需要有对应的通信协议来控制数据的传输;不同类型的数据链路所用的通信协议可能是不同的
- 广播信道用的是CSMA/CD协议(比如同轴电缆、集线器等组成的网络)
- 点对点信道用的是PPP协议(比如两个路由器之间的信道)
数据链路层的三个基本问题
- 封装成帧
- 透明传输
- 差错检验
封装成帧
注意:
- 每一种数据链路层都规定了所能够传输的帧的数据长度上限MTU(以太网的MTU为1500个字节)
- 数据链路层封装成帧过程中,将网际层的包的首部和尾部分别添加内容,添加的内容与链路的类型有关(链路使用的协议)
透明传输
前言:因为数据帧有帧开始符号(SOH)、帧结束符号(EOT)所以数据部分一旦出现SOH、EOT、ESC就需要进行转义(在后面加ESC字符进行填充)
差错检验
帧的尾部有FCS,这个FCS主要用于差错检验
FCS作用:数据在信道中传输时若受到一些干扰信号有可能会失真,这样传过来的数据可能不精确,若要检测数据的完整性,网卡会拿到帧数据部分以及数据链路层首部并计算出一个值,计算出的这个值叫做FCS,若网卡比较这两个FCS相同,那么传输过程中数据没有失真;若网卡比较这两个FCS不同,则网卡会将该数据丢弃
CSMA/CD协议
理解:载波侦听多路访问/冲突检测
- 载波侦听:处在集线器中的一个设备能够监听到在这个信道上有没有信号在传输,若监听到这个信道上没有信号在传输,那么若有必要就会将信号发出去,反之不发送信号
- 多路访问:在集线器中的所有设备都可以发送信号
- 冲突检测:若集线器中的两个设备同时监听到该信道没有信号传输,同时将信号发出,之后,两个信号便会冲突,信号碰撞之后就会回弹,此时设备就有能力判断这个回弹的消息是别人回复的消息还是冲突产生的回弹消息
注意:
- 使用了CSMA/CD协议的网络可以称为是以太网,他传输的是以太网帧
- 以太网帧格式有(Ethernet V2标准、IEEE802.3标准)最常用的是Ethernet V2标准
- 用交换机组建的网路,已经支持全双工通信,不需要再使用CSMA/CD协议,但是它传输的依然是以太网帧,所以用交换机组建的网络依然可以叫以太网
- 为了能够检测正在发送的帧是否产生了冲突,以太网的帧至少64字节
Ethernet V2帧的格式
注意:
- 因为以太网使用曼彻斯特编码,接收端接收帧过程只要发现没有信号跳变,就认为帧结束,所以没有帧开始与帧结束界定符
- 在物理层传输的时候需要插入前同步码以及帧开始符,前同步码其主要目的是帮助接收器进行时间和频率同步,告诉接收站下一帧即将来临做好准备。
- 2的类型表示网络类型(IPV4、IPV6)
- IP数据包的数据至少为46,最多为1500,当数据部分的长度小于46字节时,数据链路层会在数据的后面加一些字节填充,当数据被接收时接收端会将填充的字节去掉
PPP协议
含义:(point to point protocol)点对点协议
PPP协议字节填充
注意:
- PPP协议帧格式有帧开始与帧结束符号:0x7E
- 首部的A为Address字段,图中值为0xFF,形同虚设,点对点信道不需要源mac与目标mac
- 首部的C为Control字段,图中值为0x03,目前没什么用
- Protocol字段为内部用到的协议类型
网卡
含义:也叫网络适配器,网卡是计算机上网不可或缺的一部分,其在计算机网络中所处的位置是数据链路层与物理层,兼顾两层的功能。
网卡的作用:网卡实现的主要功能是物理层与数据链路层的功能,是数据的封装与解封、链路管理、编码与译码;网卡和计算机之间的通信是通过计算机主板上的I/O总线以并行传输方式进行,我们的网卡接入到网络后如果要通信,则需要给他配置ip地址。
注意:
- 每个网卡都具有一个身份标识(MAC地址),该MAC地址具有全球唯一性,储存在网卡的ROM中
- 网卡接收到一个帧,首先会进行差错校验,若校验通过则接收,否则丢弃
- wireshark抓到的帧没有FCS,因为它抓到的是差错校验通过的帧(帧尾部的FCS会被硬件去掉)
- wireshark抓不到差错校验失败的帧
相关文章:

OSI七层模型与物理层与设备链路层
目录 协议 举例 OSI七层模型 理解七层模型 以下为OSI七层模型数据逐层封装和数据逐层解封的过程 TCP/IP参考模型 数据包的层层封装与层层拆包 各层的数据以及协议 封装所用的协议的数字表示形式 物理层 模拟信号 模拟信号特点 数字信号 数字信号特点 数据通信模…...

Java8的Optional类的使用 和 Stream流式操作
Java知识点总结:想看的可以从这里进入 目录13.6、Optional类13.7、Stream13.7.1、Stream创建13.7.2、中间操作1、筛选2、切片3、映射4、排序13.7.3、终止操作1、遍历2、聚合3、匹配查找4、归约5、收集归集统计分组字符串拼接归约13.6、Optional类 Optional类是一个…...

Authorization Server 认证服务
Hi Auth HiAuth是一个开源的基于Oauth2协议的认证、授权系统,除了标准的Oauth2授权流程功能外,还提供了应用管理、用户管理、权限管理等相关功能。 在这个项目中你能够了解到如何基于spring-security-oauth2-authorization-server实现自己的Authorizat…...
研制过程评审活动(五)生产定型阶段
1. 生产定型阶段主要任务 生产定型的主要任务是对产品批量生产条件和质量稳定情况进行全面考核,以确认产品是否达到批量生产的标准。 需要生产定型的军工产品,在完成设计定型并经小批量试生产后、正式批量生产之前,进行生产定型。生产定型的条件和时间,由定委在批准设计…...
NCUT加权的NMF
矩阵定义 X:特征矩阵,矩阵的维度为体素数mx(指标数x被试数)n S:相似性矩阵,由特征矩阵的每一行计算皮尔逊相关得到mxm的方阵 D:度矩阵,度矩阵的对角线元素由相似性矩阵S对应的行和…...

从0开始的ios自动化测试
最近由于工作内容调整,需要开始弄ios自动化了。网上信息有点杂乱,这边我就按我的实际情况,顺便记录下来,看是否能帮到有需要的人。 环境准备 安装tidevice pip3 install -U “tidevice[openssl]” 它的作用是,帮你绕…...

vue3中使用jszip压缩文件
1、安装依赖 npm install jszip npm install file-saver --save 2、使用 <template><el-card class"mb15"><template #header><span>jszip</span></template><!-- 二维码容器 --><div id"qrCodeBox">&…...

React 虚拟DOM的前世今生
引文 通过本文你将了解到 什么是虚拟DOM?虚拟DOM有什么优势?React的虚拟Dom是如何实现的?React是如何将虚拟Dom转变为真实Dom? 一、前言 要了解虚拟DOM,我们先明确一下DOM的概念。 根据MDN的说法: 文档…...
Java环境变量配置
一、Path环境变量配置设置环境变量的值:C:\Program Files\Java\jdk-17\bin目前较新的JDK安装时会自动配置javac、java程序的路径到Path环境变量中去 ,因此,javac、java可以直接使用。注意:以前的老版本的JDK在安装的是没有自动配置…...

超详细解读!数据库表分区技术全攻略
更多内容可以关注微信公众号:老程序员刘飞 分区的定义 分区是一种数据库优化技术,它可以将大表按照一定的规则分成多个小表,从而提高查询和维护的效率。在分区的过程中,数据库会将数据按照分区规则分配到不同的分区中࿰…...

Redis高可用集群方案
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 @[TOC](文章目录)主从复制哨兵模式(sentinel)Cluster集群在生产过程中,Redis不一定会单独部署。因为一旦redis服务因为某些原因导致无法提供数,那么redis就不可用了。那么实现redis高可用的方式就…...

企业微信机器人发送消息
前言 随着科技的发展,各企业公司的业务不断发展,那么就需要强有力的沟通软件,其中企业微信、钉钉的能力得到了大众的认可,今天这篇文章就讲其中的一个功能-调用企业微信机器人(下文简称应用)进行消息传递。它的好处有哪些呢?自然是可以让相关人员及时追踪任务进度。 一、…...

使用PHP+yii2调用asmx服务接口
一.创建服务端 1:创建一个ASP.NET web应用程序 2:选择空的模板 3:系统生成项目目录 4:右键项目-添加项-新建项 5:选择Web 服务(ASMX) 6:选择之后项目中会有一个Test.asmx服务程序,…...
【042】904. 水果成篮[滑动窗口]
你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果 种类 。 你想要尽可能多地收集水果。然而,农场的主人设定了一些严格的规矩,你必须按照要求采摘水果&…...
Linux基础知识(一)
♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放࿰…...
Redis面试题
目录 Redis持久化机制:RDB和AOF Redis线程模型有哪些?单线程为什么快? Redis的过期键有哪些删除策略? Redis集群方案有哪些? redis事务怎么实现? 为什么redis不支持回滚? redis主从复制的原理是什么 …...

微服务之Eureka
🏠个人主页:阿杰的博客 💪个人简介:大家好,我是阿杰,一个正在努力让自己变得更好的男人👨 目前状况🎉:24届毕业生,奋斗在找实习的路上🌟 …...

日日顺于贞超:供应链数字化要做到有数、有路、有人
在供应链行业里面,关于“数字化”的讨论绝对是一个经久不衰的话题。 但关于这个话题的讨论又时常让人觉得“隔靴搔痒”,因为数字化变革为非一日之功,对于企业来说意味着投入和牺牲。企业既怕不做怕将来被淘汰,又怕投入过高、不达预…...

Js中blob、file、FormData、DataView、TypedArray
引言 最开始我们看网页时,对网页的需求不高,显示点文字,显示点图片就很满足了,所以对于浏览器而言其操作的数据其实并不多(比如读取本地图片显示出来,或上传图片到服务器),那么浏览器…...

CTFer成长之路之任意文件读取漏洞
任意文件读取漏洞CTF 任意文件读取漏洞 afr_1 题目描述: 暂无 docker-compose.yml version: 3.2services:web:image: registry.cn-hangzhou.aliyuncs.com/n1book/web-file-read-1:latestports:- 80:80启动方式 docker-compose up -d 题目Flag n1book{afr_1_solved} W…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...

mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...

STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...