关于数据链路层(初步)

news2024/12/1 0:45:49

以太网帧格式:

        源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固
化的;
        帧协议类型字段有三种值,分别对应载荷的形式,有IPARPRARP
        帧末尾是CRC校验码。
那么网络层的地址与数据链路层的地址有什么区别呢?其实是网络层考虑的是整体的转发过程,数据链路层考虑的是局部的(相邻)的转发。如从起始地到北京有许多路线,网络层就是对其进行规划,选择那条路线去北京,中间就要经过许多地方,最后才到北京,与之相对的,源IP就是该起始地,目的IP为北京。而数据链路层则考虑的是中间的出行工具,你可以先做飞机到一个地方,再作客车到另一个地方,最后做高铁到北京,这就是数据链路层要考虑的,与之相对的,源MAC就是其起始地,目的MAC就是要到达的下一个中转站,这样持续下去,目的MAC最终就是北京。同样的,一个主机既有MAC地址,也有IP地址,同时这两个地址不可能相同,MAC地址为6个字节,IP地址为4个字节。MAC地址一般使用16进制表示。
        一个以太网数据帧的数据最大长度为1500,大概也就1kb多一点,它受限于硬件,换成其他的硬件,也就需要搭配其他的数据链路层协议,这里的最大值可能会不一样,而这个最大值称为MTU,由于稍微大一点的传输层/应用层数据报都大于1kb,因此IP数据报的分包和组包就是为了MTU而弄出来的,一般IP数据报分包不是因为自身长度达到64kb,而是因为MTU。
        
认识 MTU
MTU 相当于发快递时对包裹尺寸的限制。这个限制是不同的数据链路对应的物理层,产生的限制。 以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要
在后面补填充位; 最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU; 如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片;不同的数据链路层标准的MTU是不同的;
DNS
        域名解析系统,要访问服务器,就得知道服务器的IP地址,这极其不方便, 且不能表达地址组织信息, 是人们发明了 域名 ,并通过 域名系统 来映射域名和 IP地址。 网络通信发送数据时,如果使用目的主机的域名,需要先通过 域名解析 查找到对应的 IP 地址: 域名解析的过程,可以简单的理解为:发送端主机作为域名系统树形结构的一个子节点,通过域名 信息,从下到上查找对应 IP 地址的过程。如果到根节点(根域名服务器)还找不到,即找不到该主 机。域名解析使用DNS 协议 来传输数据。 DNS 协议是应用层协议,基于传输层 UDP TCP 协议来实现。

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

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

相关文章

Go-Python-Java-C-LeetCode高分解法-第十周合集

前言 本题解Go语言部分基于 LeetCode-Go 其他部分基于本人实践学习 个人题解GitHub连接:LeetCode-Go-Python-Java-C 欢迎订阅CSDN专栏,每日一题,和博主一起进步 LeetCode专栏 我搜集到了50道精选题,适合速成概览大部分常用算法 突…

LuaJit交叉编译移植到ARM Linux

简述 Lua与LuaJit的主要区别在于LuaJIT是基于JIT(Just-In-Time)技术开发的,可以实现动态编译和执行代码,从而提高了程序的运行效率。而Lua是基于解释器技术开发的,不能像LuaJIT那样进行代码的即时编译和执行。因此&…

手摸手Redis7配置哨兵模式(一主二从三哨兵)

安装redis #安装gcc yum -y install gcc gcc-c #安装net-tools yum -y install net-tools #官网https://redis.io/ cd /opt/ wget http://download.redis.io/releases/redis-7.0.4.tar.gz 解压至/opt/目录下 tar -zxvf redis-7.0.4.tar.gz -C /opt/ #编译安装 make make ins…

解决“本地计算机上的 mysql 服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止”

电脑在服务中启动mysql报 如果你之前没有修改过数据库相关文件那么执行以下步骤 1.在数据库的根目录删除data文件(删除前最好先备份一下) 2,然后重新创建一个data文件夹 3.点击进入bin目录,点击上面的路径 4.点击后上面路径变蓝…

MATLAB——BP神经网络信号拟合程序

欢迎关注公众号“电击小子程高兴的MATLAB小屋” %% 学习目标:BP神经网络 %% 函数逼近 数据压缩 模式识别 %% 考虑要素:网络层数 输入层的节点数 输出层的节点数 隐含层的节点数 %% 传输函数 训练方法 %% 对信号曲线进行拟合 clear all; cle…

04_led灯闪烁

创建新的项目&#xff0c;步骤和教程2一样&#xff0c;项目结构和创建后的代码如下所示 具体代码如下所示&#xff1a;使用16进制加延迟的方式控制led的亮灭0表示亮1表示灭 #include <REGX52.H> #include <INTRINS.H> void Delay500ms() //11.0592MHz {unsigne…

网页在线打开PDF_网站中在线查看PDF之pdf.js

一、pdf.js简介 PDF.js 是一个使用 HTML5 构建的便携式文档格式查看器。 pdf.js 是社区驱动的&#xff0c;并由 Mozilla 支持。我们的目标是为解析和呈现 PDF 创建一个通用的、基于 Web 标准的平台。 pdf.js 将 PDF 文档转换为 HTML5 Canvas 元素&#xff0c;并使用 JavaScr…

ASAN地址消毒+GCOV覆盖率分析

安全之安全(security)博客目录导读 覆盖率分析汇总 目录 一、代码示例 二、代码编译及运行 三、ASAN地址消毒&#xff08;找到溢出&泄露点&#xff09; 四、GCOV覆盖率分析 ASAN相关详见ASAN(AddressSanitizer)地址消毒动态代码分析 GCOV相关详见GCOV覆盖率分析 现…

Doris入门了解

微信公众号&#xff1a;大数据高性能计算 大数据存储与分析入门学习文档&#xff1a;深入了解 Doris 大数据技术已成为现代数据处理的核心组成部分&#xff0c;为企业提供了更多洞察和决策支持。Doris&#xff08;以前称为Palo&#xff09;是一种用于大规模数据存储和分析的开…

【LeetCode刷题(数据结构与算法)】:完全二叉树的节点个数

完全二叉树 的定义如下&#xff1a;在完全二叉树中&#xff0c;除了最底层节点可能没填满外&#xff0c;其余每层节点数都达到最大值&#xff0c;并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层&#xff0c;则该层包含 1~ 2h 个节点 输入&#xff1a;r…

Megatron-LM GPT 源码分析(二) Sequence Parallel分析

引用 本文基于开源代码 https://github.com/NVIDIA/Megatron-LM &#xff0c;延续上一篇Megatron-LM GPT 源码分析&#xff08;一&#xff09; Tensor Parallel分析 通过对GPT的模型运行示例&#xff0c;从三个维度 - 模型结构、代码运行、代码逻辑说明 对其源码做深入的分析。…

Spring framework Day15:@lmport注解使用

前言 在编程中&#xff0c;import注解通常用于导入外部的类、接口或其他资源&#xff0c;以便在当前代码文件中使用。它可以提供一种简洁、方便的方式来引入外部依赖&#xff0c;并且有以下几个主要的应用场景和好处&#xff1a; 引入外部类/接口&#xff1a;使用import注解可…

2023年最受好评的五款项目计划工具排名揭晓!

近年来&#xff0c;项目计划工具已经成为项目管理中不可或缺的一部分。正确的项目计划工具将帮助您更有效地管理项目&#xff0c;从而改善结果。随着技术的进步&#xff0c;现在有许多强大而通用的项目计划工具可用。展望2023年&#xff0c;以下是你应该考虑的深受好评的五款项…

如何在Linux上安装Tomcat

安装Tomcat的前提是安装好JDK 使用yum安装JDK Liunx的包管理器就如同手机上的应用商城一样&#xff0c;可以在其中下载软件 Linux中的包管理器有很多&#xff1a;yum、apt、pacman...其中yum是centos自带的包管理器 获取与jdk有关的数据包 请注意&#xff1a;i686后缀的为32位操…

DarkGate恶意软件通过消息服务传播

导语 近日&#xff0c;一种名为DarkGate的恶意软件通过消息服务平台如Skype和Microsoft Teams进行传播。它冒充PDF文件&#xff0c;利用用户的好奇心诱使其打开&#xff0c;进而下载并执行恶意代码。这种攻击手段使用了Visual Basic for Applications&#xff08;VBA&#xff0…

总结10.15

项目进展 登陆注册&#xff0c;连接了数据库&#xff0c;找回密码写到了通过给邮箱发送验证码&#xff0c;然后重新输入密码 项目看法 之后俩天加紧把这个登陆注册这些搞完&#xff0c;注册用到的随机生成一个账号且不重复&#xff0c;且设置一个邮箱作为之后找回密码时候的…

realman——基于SDK的pick_and_place

文章目录 概要手眼标定外参发布采摘流程核心代码设定初始位置设定安放位置坐标变换单次采摘和安放预采摘点的计算预采摘点和采摘点的运动控制参考概要 这篇博客主要介绍用官方SDK来实现睿尔曼机械臂的运动控制(从采摘到安放),对于如何获取采摘点的三维坐标不做描述。 PS:m…

Vue-3.3ESLint

ESLint代码规范 代码规范&#xff1a;一套写代码的约定规则。 JavaScript Standard Style规范说明https://standardjs.com/rules-zhcn.html 代码规范错误 如果你的代码不符合standard的要求&#xff0c;ESlint会跳出来提醒。 比如&#xff1a;在mian.js中随意做一些改动&a…

【AI视野·今日Sound 声学论文速览 第二十三期】Wed, 11 Oct 2023

AI视野今日CS.Sound 声学论文速览 Wed, 11 Oct 2023 Totally 14 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers AutoCycle-VC: Towards Bottleneck-Independent Zero-Shot Cross-Lingual Voice Conversion Authors Haeyun Choi, Jio Gim, Yuho Lee, Y…

【mysql】Mysql自定义变量 @rownum使用

Mysql自定义变量 rownum 这个可以赋值&#xff1f;这是初始化&#xff1f; 先看表结构 有五条数据。执行前半段语句发现。rownum的起始值等于行数 这里from后面可以加person与 r这连个组成 如果这里的rownum打错了呢。发现这个变量就没有初始值。 可见&#xff0c;没有必要…