数据链路层协议之以太网协议

news/2024/4/27 20:18:26/文章来源:https://blog.csdn.net/zyh20050430/article/details/137080682

以太网协议是通过网线/光纤进行通信。这和通过wifi(无线),通过移动流量(4G/5G)通信不一样。以太网,横跨数据链路层和物理层

一.以太网数据帧格式

包括了帧头+载荷(IP数据报)+帧尾。

1.目的地址 源地址

分别都是六个字节。这里的地址不是IP地址,而是mac地址。由于mac地址是6个字节,所以比IP地址大了2^16倍,所以即使IP地址不够用了,mac地址也是充足的。一般来说,每一格网卡出厂时,其中的mac地址就写死了,不能够修改。所以mac地址也可以作为一台网络设备的身份标识。一个网卡对应一个mac地址

cmd中查看mac地址,通常是用16进制表示的,每个字节之间用-或:来分割

mac和IP的各自用途

IP协议立足全局,完成整个通信路径的规划过程

以太网关注局部,强调响铃两个设备之间的通信过程

比如我要回老家,就是从A到B。传输层关注的就是A和B这两个起始位置;网络层关注的是A->C->B还是A->D>B,也就是要选择哪一条路径,但是无论选哪条,IP数据报中的源IP和目的IP都是不变的;数据链路层则关注相邻节点如何转发。假设在网络层选择了A>C>B这条路,那么数据链路层就会确定下来:A>C做飞机,C>B坐火车。

然后在A>C过程中,数据报的源IP目的IP分别是AB,而原mac目的mac则是A C;在C>B过程中数据报的源IP目的IP分别是AB,而原mac目的mac则是C B

2.类型

类型描述了载荷中的数据是啥样的数据。类型字段占两个字节

也就是描述了上层协议的类型。由于上层协议众多,所以在处理数据的时候必须设置该字段,标识数据交付哪个协议处理。例如,字段为 0x0800 时,表示将数据交付给 IP 协议。若字段为0x0806,表示ARP协议;字段为0x8035,表示RARP

ARP与RARP两种协议不是传输业务数据的,而是辅助转发的协议。我们知道,像交换机这样的设备,收到以太网数据帧后,要进行转发(就是刚才举的例子,A>c>B,到了C之后要进行转发),此过程需要能够根据mac地址来判断走哪个网口(这个网口指的就是物理意义上插网线的扣,而不像IP协议中路由器走哪个网络接口是抽象概念)。那么具体如何转发?交换机内部就有一个数据结构转发表(就相当于是一个简单的hash表),表如何构造?就是通过ARP协议来生成的

3.数据

放的就是要传输的有效数据

4.CRC

其实就是校验和。

二.MTU

1.认识MTU

MTU相当于发快递时对包裹尺寸的限制,这个限制时不同的数据链路对应的物理层产生的限制。

以太网帧中的数据长度最小规定为46字节,最大不超过1500字节。

然而ARP数据报的长度不够46字节,只有28个字节,所以要在后面补填充位18个字节

同理RARP也是28字节,也要补18位。

如果一个数据包从以太网路由到拨号链路上,数据包的长度大于拨号链路的MTU了,就需要对数据包进行分片

不同的数据链路层标准的MTU是不同的

2.MTU对IP协议的影响

由于数据链路层MTU的限制(最小就得是46字节,最大也就1500字节),就要对较大的IP数据包进行分包(因为IP协议中数据上限是64kb,也就是1024*64=2^16字节,所以大的IP数据包会远超1500字节)。

分包就是将一个大的数据包分为若干个小的数据包,每个小包的16位标识(id)都是相同的;

每个小包的三位标志位字段中,第二位是0标识允许分片,第三位表示结束标记(0就是说当前不是最后一个包,1表示当前就是最后一个包);

到达对端后就会对这些小包进行重组,拼装到一起后再返回给传输层;

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初探Flink集群【持续更新】

周末下雨&#xff0c;倒杯茶&#xff0c;在家练习Flink相关。 开发工具&#xff1a;IntelliJ Idea 第一步、创建项目 打开Idea&#xff0c;新建Maven项目&#xff0c;包和项目命名 在pom.xml 文件中添加依赖 <properties><flink.version>1.13.0</flink.vers…

【Redis主从架构。主从工作原理psync、bgsave、部分数据复制、主从复制风暴解决方案】【Redis哨兵高可用架构。sentinel】

Redis主从架构 Redis主从工作原理数据部分复制 Redis哨兵高可用架构client连接哨兵规则主节点挂了&#xff0c;集群从新选择主节点&#xff0c;并且同步给sentinel 转自图灵课堂 redis主从架构搭建&#xff0c;配置从节点步骤&#xff1a; 1、复制一份redis.conf文件2、将相关…

六大原则与设计模式

1. 六大原则 1.1 单一原则&#xff08;SRP&#xff09; 应该有且仅有一个原因引起类的变更 1. 复杂性降低&#xff0c;可读性高&#xff0c;可维护性提高 2. 变更引起的风险降低&#xff0c;变更是必不可少的&#xff0c;如果接口的单一职责做得好&#xff0c;一个接口修改…

基于单片机多功能智能台灯设计

**单片机设计介绍&#xff0c;基于单片机多功能智能台灯设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的多功能智能台灯设计是一个集硬件与软件于一体的综合性项目&#xff0c;旨在为用户提供更加便捷、舒适和节…

如何借用 NTFS 交换数据流 实现隐藏文件?如何使用【文件包含】PHP伪协议?不同操作系统如何实现文件隐藏和木马伪装?

如何借用 NTFS 交换数据流 实现隐藏文件?如何使用【文件包含】PHP伪协议?不同操作系统如何实现文件隐藏和木马伪装? NTFS交换数据流(Alternate Data Streams, ADS)是NTFS文件系统特有的一种功能,它允许在同一个文件名下存储多个数据流。除了默认的数据流(通常用于存储文…

day3-QT

1>使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函。将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#xff0c;密码是…

Java SPI 机制

SPI 机制的定义 在Java中&#xff0c;SPI&#xff08;Service Provider Interface&#xff09;机制是一种用于实现软件组件之间松耦合的方式。它允许在应用程序中定义服务接口&#xff0c;并通过在类路径中发现和加载提供该服务的实现来扩展应用程序功能。 SPI 机制通常涉及三…

DBA工作经验总结

目录 一、MySQL8.0创建一张规范的表 1.表、字段全采用小写 2.int类型不再加上最大显示宽度 3.每张表必须显式定义自增int类型的主键 4.建表时增加comment来描述字段和表的含义&#xff08;防止以后忘记&#xff09; 5.建议包含create_time和update_time字段 6.核心业务增…

asp程序之“会话Cookie中缺少HttpOnly属性”

先在URL重新模块添加服务器变量&#xff1a; 添加变量名&#xff1a;Add HttpOnly 网站根目录web.config添加如下规则&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <configuration><system.webServer><rewrite><out…

第1篇:Mysql数据库表结构导出字段到Excel(一个sheet中)

package com.xx.util;import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.sql.*; import java.io.*;public class DatabaseToExcel {public static void main(String[] args) throws Exception {// 数据库连接配置String u…

SQLyog图形化工具安装教程

日常开发中&#xff0c;当需要输入的命令较长时&#xff0c;使用命令行客户端工具输入命令很不方便&#xff0c;此时可以使用相对方便的图形化管理工具来操作MySQL&#xff0c;从而提高效率。 SQLyog的特点 1.基于MySQL程序接口开发 2.方便快捷的数据库同步与数据库结构同步 …

【检索稳定|火爆征稿中】2024年企业管理与数字化经济国际学术会议(ICBMDE 2024)

【检索稳定|火爆征稿中】2024年企业管理与数字化经济国际学术会议&#xff08;ICBMDE 2024&#xff09; 2024 International Conference on Business Management and Digital Economy&#xff08;ICBMDE 2024&#xff09; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~…

【算法刷题】链表笔试题解析(1)

一、链表分割 题目描述&#xff1a; 链接&#xff1a;链表分割 题目分析&#xff1a; 这题直接处理并不好做&#xff0c;我们可以构建前后两个链表&#xff0c;将小于x值的结点放在链表a内&#xff0c;将其它结点放在链表b内&#xff0c;这样将原链表遍历完后&#xff0c;原链…

基于springboot+vue+Mysql的闲一品交易平台

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

缓存菜品、套餐、购物车相关功能

一、缓存菜品 通过缓存的方式提高查询性能 1.1问题说明 大量的用户访问导致数据库访问压力增大&#xff0c;造成系统响应慢&#xff0c;用户体验差 1.2 实现思路 优先查询缓存&#xff0c;如果缓存没有再去查询数据库&#xff0c;然后载入缓存 将菜品集合序列化后缓存入red…

如何利用nginx在windows系统上搭建一个文件服务器

1&#xff1a;先下载windows版的nginx 官网 http://nginx.org/ 下载完后注意端口号&#xff08;默认端口号为&#xff1a;80&#xff09;是否被占用 启动nginx服务 地址为localhost的 如果出现 Welcome to nginx 就说明启动成功 2&#xff1a;然后进入conf文件里修改配置 …

题目:摆花(蓝桥OJ 0389)

问题描述&#xff1a; 题解&#xff1a; #include <bits/stdc.h> using namespace std; using ll long long; const int N 105; const ll p 1e6 7; ll a[N], dp[N][N];int main() {int n, m; cin >> n >> m;for(int i 1; i < n; i)cin >> a[i…

EdgeGallery开发指南

API接口 简介 EdgeGallery支持第三方业务系统通过北向接口网关调用EdgeGallery的业务接口。调用流程如下图所示&#xff08;融合前端edgegallery-fe包含融合前端界面以及北向接口网关功能&#xff0c;通过浏览器访问时打开的是融合前端的界面&#xff0c;通过IP:Port/urlPref…

网络原理(6)——IP协议

目录 一、网段划分 现在的网络划分&#xff1a; 1、一般情况下的家庭网络环境 2、IP地址 3、子网掩码 4、网关 以前的网络划分&#xff1a; 二、特殊IP 1、环回 IP 2、主机号为全 0 的IP 3、广播地址IP 三、路由选择&#xff08;路线规划&#xff09; 一、网段划分…

vue3+ts+element home页面侧边栏+头部组件+路由组件组合页面教程

文章目录 效果展示template代码script代码样式代码 效果展示 template代码 <template><el-container class"home"><el-aside class"flex" :style"{ width: asideDisplay ? 70px : 290px }"><div class"aside-left&q…