当前位置: 首页 > news >正文

计算机网络(9) --- 数据链路层与MAC帧

计算机网络(8) --- IP与IP协议_哈里沃克的博客-CSDN博客IP与IP协议https://blog.csdn.net/m0_63488627/article/details/132155460?spm=1001.2014.3001.5502

目录

1.MAC帧

1.MAC地址

2.MAC帧报头

3.资源碰撞

4.MTU

1.对IP协议的影响

2.对UDP协议的影响

3.对TCP协议的影响

2.ARP协议

1.网络传输的本质

2.ARP协议

3.APR和MAC帧的关系

3.其他协议或技术

1.DNS

4.ICMP协议

3.ping命令

4.NAT技术

NAT

NAPT


1.MAC帧

1.MAC地址

1.在局域网内的主机可以直接通信

2.而标识每一个不同的主机是通过MAC地址所确定的

3.IP是表示去向最终地址的,而MAC地址是用与传输直接的下一个连接的节点

2.MAC帧报头

MAC帧是用于封装MAC地址的报文协议

在局域网中,所有的主机都收到了数据,但是由于mac地址而都在数据链路层中断了,只有mac地址一致的才被确定是需要传输的。

3.资源碰撞

1.那么在局域网中,发送的数据所有的主机都能看见,其实把整个网络看成操作系统,那么传输的数据就是临界资源。这种之间连接的主机,可以直接进行数据传输的区域被称之为临界区

2.数据发送之时,并不是只有两台主机进行交互,而是多台主机进行交互。而不同的主机在同时发送的时候,会出现数据碰撞问题。碰撞的数据就是无效的数据。

3.为了减少数据碰撞的问题,在局域网中出现了一种设备:交换机,它用于缩小碰撞的概率。这样就可以划分出碰撞域。

4.我们在看待网络设备时,应该更加宏观,所谓的网线传输数据其实速度极快,毕竟是光速的,那么数据碰撞的概率其实比较低的。要知道发送数据是有长有短的,我们不能将数据设置的太长,因为一旦过长,所谓的发送中的时间就会加长,碰撞的概率增大,所以MAC帧向上的网络层中IP协议的数据不可以超过1500字节。

5.当然为了减少出现数据碰撞的问题,我们有一些决策来进行减低概率。如:令牌环和以太网

4.MTU

MTU: 以太网的最大传输单元

1.对IP协议的影响

1.将较大的IP包分成多个小包, 并给每个小包打上标签;
2.每个小包IP协议头的 16位标识(id) 都是相同的;
3.每个小包的IP协议头的3位标志字段中, 第2位置为0, 表示允许分片, 第3位来表示结束标记
4.到达对端时再将这些小包, 会按顺序重组, 拼装到一起返回给传输层;
5.一旦这些小包中任意一个小包丢失, 接收端的重组就会失败. 但是IP层不会负责重新传输数据

2.UDP协议的影响

1.一旦UDP携带的数据超过1472(1500 - 20(IP首部) - 8(UDP首部)), 那么就会在网络层分成多个IP数据报.
2.这多个IP数据报有任意一个丢失, 都会引起接收端网络层重组失败. 那么这就意味着, 如果UDP数据报在 网络层被分片, 整个数据被丢失的概率就大大增加了

3.TCP协议的影响

1.TCP的一个数据报也不能无限大, 还是受制于MTU。TCP的单个数据报的最大消息长度, 称为MSS。也就是说,滑动窗口的大小其实是受:MSS,网络拥塞,接收方窗口大小
2.TCP在建立连接的过程中, 通信双方会进行MSS协商.
3.最理想的情况下, MSS的值正好是在IP不会被分片处理的最大长度
3.双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值. 然后双方得知对方的MSS值之后, 选择较小的作为最终MSS. MSS的值就是在TCP首部的40字节变长选项中

2.ARP协议

1.网络传输的本质

1.所谓的网络传输,就是在一个一个的局域网中传输。而中间的桥梁就是路由器,它分开了两个局域网,却联通了两个局域网。那么在局域网之间传输就需要依靠mac地址。

2.当前的MAC帧协议没有包含mac地址的任何数据,只知道IP地址,那么此时就需要引入ARP协议

2.ARP协议

1.以太网目的IP和源IP提供在局域网内部判断是否为自己要接收的依据,帧类型表示MAC帧的类型。这些字段作为以太网的首部。
2.硬件类型指链路层网络类型,1为以太网;协议类型指要转换的地址类型,0x0800为IP地址。硬件地址长度对于以太网地址为6字节;;协议地址长度对于和IP地址为4字节。这些数据基本上是固定不变的
3.op字段为1表示ARP请求,op字段为2表示ARP应答
4.发送端发送时,不知道目的以太网的mac地址,所以全部位设计为F;而发送mac地址是知道的
5.接收应答方返回自己对应的mac地址和对方的目的mac地址

3.APR和MAC帧的关系

可以用这图表示

也就是说,如果想要传输数据,需要先封装ARP协议再对MAC帧进行封装 

3.其他协议或技术

1.DNS

1.DNS 是一整套从域名映射到 IP 的系统
2.TCP/IP 中使用 IP 地址和端口号来确定网络上的一台主机的一个程序 但是 IP 地址不方便记忆。于是人们发明了一种叫主机名的东西, 是一个字符串 , 并且使用 hosts 文件来描述主机名和 IP 地址的关系

有两种方法:

1.通过互连网信息中心来管理这个hosts文件的,即自己的本地存放hosts映射

2.DNS系统:一个组织的系统管理机构, 维护系统内的每个主机的IP和主机名的对应关系;

如果新计算机接入网络, 将这个信息注册到数据库中;用户输入域名的时候, 会自动查询DNS服务器, 由DNS服务器检索数据库, 得到对应的IP地址

4.ICMP协议

ICMP 协议是一个 网络层协议
一个新搭建好的网络 , 往往需要先进行一个简单的测试 , 来验证网络是否畅通 ; 但是 IP 协议并不提供可靠传输 . 如果丢包了, IP 协议并不能通知传输层是否丢包以及丢包的原因

3.ping命令

1.ping 的是域名, 而不是url,一个域名可以通过DNS解析成IP地址
2.ping命令不光能验证网络的连通性, 同时也会统计响应时间和TTL(IP包中的Time To Live, 生存周期).
3. ping 命令基于 ICMP, 是在网络层 . 而端口号 , 是传输层的内容 . ICMP 中根本就不关注端口号这样的信息

4.NAT技术

NAT

NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;
NAT路由器收到外部的数据时, 又会把目标IP从202.244.174.37替换回10.0.0.10;
在NAT路由器内部, 有一张自动生成的, 用于地址转换的表;
当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系
具体原理之前解释过~

NAPT

那么 NAT 路由器如何判定将这个数据包转发给哪个局域网的主机

1. 为了找到之前的地址返回消息,NAT路由器中存储四元组。针对内网:四元组包含内网IP和内网PORT 以及 路由器的LAN口IP和LAN口PORT;针对公网:四元组包含公网IP和公网PORT 以及 路由器的WAN口IP和WAN口PORT

2.那么当访问特定服务器,NAT路由器会得出转换表,该表存储两份四元组为key值,这样双方都能找到彼此

3.同一个子网下的不同客户端访问相同的服务器,那么该NAT转换表对应的服务器四元组不同的点就在于路由器的WAN口IP地址的PORT不同

相关文章:

计算机网络(9) --- 数据链路层与MAC帧

计算机网络(8) --- IP与IP协议_哈里沃克的博客-CSDN博客IP与IP协议https://blog.csdn.net/m0_63488627/article/details/132155460?spm1001.2014.3001.5502 目录 1.MAC帧 1.MAC地址 2.MAC帧报头 3.资源碰撞 4.MTU 1.对IP协议的影响 2.对UDP协议…...

【学会动态规划】环绕字符串中唯一的子字符串(25)

目录 动态规划怎么学? 1. 题目解析 2. 算法原理 1. 状态表示 2. 状态转移方程 3. 初始化 4. 填表顺序 5. 返回值 3. 代码编写 写在最后: 动态规划怎么学? 学习一个算法没有捷径,更何况是学习动态规划, 跟我…...

CNN卷积详解(三)

一、卷积层的计算 4 ∗ * ∗ 4的输入矩阵 I I I 和 3 ∗ * ∗ 3 的卷积核 K K K: 在步长(stride)为 1 时,输出的大小为 ( 4 − 3 1 ) ( 4 − 3 1) 计算公式: ● 输入图片矩阵 I I I 大小: w w w w ww ●…...

使用 Amazon Redshift Serverless 和 Toucan 构建数据故事应用程序

这是由 Toucan 的解决方案工程师 Django Bouchez与亚马逊云科技共同撰写的特约文章。 带有控制面板、报告和分析的商业智能(BI,Business Intelligence)仍是最受欢迎的数据和分析使用场景之一。它为业务分析师和经理提供企业的过去状态和当前状…...

CentOS 上快速安装包管理工具Conda

要在 CentOS 上安装 Conda,您可以按照以下步骤进行操作: 1. 下载 Miniconda 或 Anaconda 安装脚本: Miniconda:适用于轻量级安装的 Miniconda 版本。 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.…...

opencv-手势识别

# HandTrackingModule.py import cv2 import mediapipe as mpclass HandDetector:"""使用mediapipe库查找手。导出地标像素格式。添加了额外的功能。如查找方式,许多手指向上或两个手指之间的距离。而且提供找到的手的边界框信息。"""…...

【SA8295P 源码分析】10 - HQX Display(OpenWFD)qcdisplaycfg_ADP_STAR_LA.xml 配置文件解析

【SA8295P 源码分析】10 - HQX Display(OpenWFD)qcdisplaycfg_ADP_STAR_LA.xml 配置文件解析 一、HQX Display 介绍1.1 OpenWF Display Driver二、HQX Display 配置文件参数解析2.1 qcdisplaycfg.xml 配置文件2.1 配置两个 DPUs in QNX2.1.1 配置 graphics_ADP_STAR.conf : …...

达梦数据库权限和预定角色介绍

概述 本文对达梦数据库数据库和对象权限及DM预定义角色及角色创建进行介绍。 1.权限管理 用户权限有两类:数据库权限和对象权限。 数据库权限主要是指针对数据库对象的创建、删除、修改的权限,对数据库备份等权限。 数据库权限一般由 SYSDBA、SYSAU…...

Python编程从入门到实践_8-8 用户的专辑_答案

Python编程从入门到实践_8-8 用户的专辑_答案 我也看了一些其他人的答案,很多的答案存在问题,每次调用函数 make_album() 后生成一个专辑字典会覆盖上次调用函数 make_album() 生成的字典,不符合题意。 我采取的解决方案是添加一个空列表 …...

HummingBird 基于 Go 开源超轻量级 IoT 物联网平台

蜂鸟(HummingBird) 是 Go 语言实现的超轻量级物联网开发平台,包含设备接入、产品管理、物模型、告警中心、规则引擎等丰富功能模块。系统采用GoLang编写,占用内存极低, 单物理机可实现百设备的连接。 在数据存储上&…...

10.小程序样式

样式 css部分样式不支持,并且添加了rpx属性,小程序开发的时候应该使用rpx,而不是px,因为rpx是将移动端的屏幕大小分为750份,会自动按设备的大小去适配;我们在开发时应该以iphone6为基准的设备进行开发&…...

Flink 流式读写文件、文件夹

文章目录 一、flink 流式读取文件夹、文件二、flink 写入文件系统——StreamFileSink三、查看完整代码 一、flink 流式读取文件夹、文件 Apache Flink针对文件系统实现了一个可重置的source连接器,将文件看作流来读取数据。如下面的例子所示: StreamExe…...

【SA8295P 源码分析】64 - QNX 与 Android GVM 显示 Dump 图片方法汇总

【SA8295P 源码分析】64 - QNX 与 Android GVM 显示 Dump 图片方法汇总 一、QNX侧1.1 surfacedump 功能1.2 screenshot 功能二、Android GVM 侧2.1 screencap -p 导出 PNG 图片2.2 screencap 不加 -p 参数,导出 RGB32 图片2.3 dumpsys SurfaceFlinger --display-id 方法系列文…...

字符串旋转(1)

目录 ​编辑 题目要求😍: 题目内容❤: 题目分析📚: 主函数部分📕:​编辑 方法一🐒: 方法二🐒🐒: 方法三🐒&#x1f…...

【SA8295P 源码分析】13 - Android GVM 虚拟机 QUPv3 UART / SPI / I2C功能配置及透传配置

【SA8295P 源码分析】13 - Android GVM 虚拟机 QUPv3 UART / SPI / I2C功能配置及透传配置 一、QUP v3 介绍二、QUP v3 UART 功能配置2.1 TrustZone 域 Uart 资源权限配置:以 QUPV3_0_SE2 为例2.2 QNX Host 域关闭 Uart 资源:以 QUPV3_0_SE2 为例2.3 Android Kernel 域使能 U…...

STM32 F103C8T6学习笔记10:OLED显示屏GIF动图取模—简易时钟—动图手表的制作~

今日尝试做一款有动图的OLED实时时钟,本文需要现学一个OLED的GIF动图取模 其余需要的知识点有不会的可以去我 STM32 F103C8T6学习笔记 系列专栏自己查阅把,闲话不多,直接开肝~~~ 文章提供源码,测试工程下载,测试效…...

大数据课程K3——Spark的常用案例

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 掌握Spark的常用案例——WordCount; ⚪ 掌握Spark的常用案例——求平均值; ⚪ 掌握Spark的常用案例——求最大值和最小值; ⚪ 掌握Spark的常用案例——TopK; ⚪ 掌握Spark的常用案例…...

85-最大矩阵

题目 给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 示例 1: 输入:matrix [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,…...

8.3 【C语言】通过指针引用数组

8.3.1 数组元素的指针 所谓数组元素的指针就是数组元素的地址。 可以用一个指针变量指向一个数组元素。例如: int a[10]{1,3,5,7,9,11,13,15,17,19}; int *p; p&a[0]; 引用数组元素可以用下标法,也可以用指针法&#xf…...

基于Flink CDC实时同步PostgreSQL与Tidb【Flink SQL Client模式下亲测可行,详细教程】

文章目录 一、PostgreSQL作为数据来源(source),由flink读取1.postgre安装与配置2.flink安装与配置3.flink cdc postgre配置3.1 postgre配置(for flink cdc)3.2 flink cdc postgres的jar包下载 4.flink cdc postgre测试…...

Vue-5.编译器Idea

Vue专栏(帮助你搭建一个优秀的Vue架子) Vue-1.零基础学习Vue Vue-2.Nodejs的介绍和安装 Vue-3.Vue简介 Vue-4.编译器VsCode Vue-5.编译器Idea Vue-6.编译器webstorm Vue-7.命令创建Vue项目 Vue-8.Vue项目配置详解 Vue-9.集成(.editorconfig、…...

qiuzhiji3

本篇想介绍一下慧与,这里的工作氛围和企业文化令人难忘,希望更多人了解它 也想探讨一下不同的文化铸就的不同企业,究竟有哪些差别。 本篇将从我个人角度出发描述慧与。 2022/3/16至2023/7/31 本篇初次写于2023年8月20日 说起来在毕业之前那段…...

JVM——垃圾回收(垃圾回收算法+分代垃圾回收+垃圾回收器)

1.如何判断对象可以回收 1.1引用计数法 只要一个对象被其他对象所引用,就要让该对象的技术加1,某个对象不再引用其,则让它计数减1。当计数变为0时就可以作为垃圾被回收。 有一个弊端叫做循环引用,两个的引用计数都是1&#xff…...

QT TLS initialization failed问题(已解决) QT基础入门【网络编程】openssl

问题: qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed 这个问题的出现主要是使用了https请求:HTTPS ≈ HTTP + SSL,即有了加密层的HTTP 所以Qt 组件库需要OpenSSL dll 文件支持HTTPS 解决: 1.加入以下两行代码获取QT是否支持opensll以…...

SpringMVC之获取请求参数

文章目录 前言一、通过ServletAPI获取二、通过控制器方法的形参获取请求参数三、注解1.RequestParam2.RequestHeader3.CookieValue前面的代码总和:4.通过POJO获取请求参数 三、解决获取请求参数的乱码问题总结 前言 下面用到了thymeleaf,不知道的可以看…...

【无标题】QT应用编程: QtCreator配置Git版本控制(码云)

QT应用编程: QtCreator配置Git版本控制(码云) 感谢:DS小龙哥的文章,这篇主要参考小龙哥的内容。 https://cloud.tencent.com/developer/article/1930531?areaSource102001.15&traceIdW2mKALltGu5f8-HOI8fsN Qt Creater 自带了git支持。但是一直没…...

JVM面试题-2

1、有哪几种垃圾回收器,各自的优缺点是什么? 垃圾回收器主要分为以下几种:Serial、ParNew、Parallel Scavenge、Serial Old、Parallel Old、CMS、G1; Serial:单线程的收集器,收集垃圾时,必须stop the worl…...

kafka安装说明以及在项目中使用

一、window 安装 1.1、下载安装包 下载kafka 地址,其中官方版内置zk, kafka_2.12-3.4.0.tgz其中这个名称的意思是 kafka3.4.0 版本 ,所用语言 scala 版本为 2.12 1.2、安装配置 1、解压刚刚下载的配置文件,解压后如下&#x…...

二叉树搜索

✅<1>主页&#xff1a;我的代码爱吃辣&#x1f4c3;<2>知识讲解&#xff1a;数据结构——二叉搜索树☂️<3>开发环境 &#xff1a;Visual Studio 2022&#x1f4ac;<4>前言&#xff1a;在之前的我们已经学过了普通二叉树&#xff0c;了解了基本的二叉树…...

【先进PID控制算法(ADRC,TD,ESO)加入永磁同步电机发电控制仿真模型研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

台湾做系统集成的公司网站/seo技术博客

clickhouse提供了update和delete的删除能力&#xff0c;但是和常规的例如mysql&#xff0c;redis这种立即见效的能力不一样。在clickhouse中这种操作称为mutation操作。 1.mutation操作有3个特点&#xff1a; 1.Mutations是一类允许对表的行记录进行删除或更新的ALTER操作。相…...

建设网站 翻译/网站seo关键词设置

最近负责的邮箱系统项目中有一个这样的需求&#xff1a;提供一个接口给业务层&#xff0c;可以通过邮箱查询到该用户的未读邮件个数。 之前的方案是通过查看用户目录下.INBOX/new目录中的文件个数&#xff0c;但是这个方法不准确&#xff0c;当有用户连接到邮箱服务器时&#x…...

塘厦网站建设公司/做seo排名好的公司

编辑&#xff1a;ll ASEMI代理LSIC1MO120E0080力特车规级MOS管 型号&#xff1a;LSIC1MO120E0080 品牌&#xff1a;LITTELFUSE/力特 封装&#xff1a;TO-247 最大漏源电流&#xff1a;25A 漏源击穿电压&#xff1a;1200V RDS&#xff08;ON&#xff09;Max&#xff1a;0…...

免费建站平台哪个靠谱/web网页制作成品免费

转贴:http://bbs.langtech.org.cn/frame.php?frameonyes&refererhttp%3A//bbs.langtech.org.cn/forumdisplay.php%3Ffid%3D20感谢原创作者.ICDM2006-介绍&#xff1a;数据挖掘领域最有影响力的18个算法ICDM是数据挖掘领域的顶级会议之一&#xff0c;在数据挖掘理论与应用领…...

广州网站推广奋/百度seo刷排名软件

安装到最后一步出错&#xff0c;求解...

如何建单位内部购物网站/班级优化大师下载安装

2019独角兽企业重金招聘Python工程师标准>>> Talk is cheap, show me the code&#xff01; 但是在互联网企业中&#xff0c;身处技术要职的架构师到底需不需要写代码&#xff1f; 在我们的专业领域中有一种普遍存在的误解&#xff1a;架构师的工作不需要写代码。 就…...