【网络知识必知必会】聊聊数据链路层以太网

news2024/11/24 2:52:46

文章目录

  • 前言
  • 1. 认识以太网
  • 2. 以太网帧格式
    • 已经有了ip地址, 为什么还要有 mac 地址呢?
    • 认识MTU
    • MTU对IP协议的影响
    • MTU对UDP协议的影响
    • MTU对于TCP协议的影响
  • 总结

前言

本文继续来聊聊网络传输中数据链路层中的一个代表协议, 以太网. 以太这个词其实最早出现在物理学当中, 在早期, 人们认为光是一种 “波”, 并且光能在真空中进行传播, 而波的传播需要介质. 所以在当时, 物理学家就假象在真空中存在一种物质, 称之为 “以太”. 但在后来的一次实验中, 有科学家发现光在各个方向上传播速度都是一致的, 也就推翻了 “以太” 的存在. 不过这一词并没有被抛弃, 而是被计算机界拿来使用了.

关注收藏, 开始学习吧🧐


1. 认识以太网

  • “以太网” 不是一种具体的网络, 而是一种技术标准. 平时使用的网线也叫作 “以太网线”, 平时使用的交换机, 也叫作 “以太交换机”.
  • 它既包含了数据链路层的内容, 也包含了一些物理层的内容.
  • 数据链路层例如规定了网络拓扑结构, 访问控制方式, 传输速率等.
  • 物理层例如以太网中的网线必须使用双绞线, 传输速率有10M, 100M, 1000M等.
  • 以太网是当前应用最广泛的局域网技术. 和以太网并列的还有令牌环网, 无线LAN等.

2. 以太网帧格式

以太网的帧格式如下所示:
在这里插入图片描述

  • 源地址和目的地址是指网卡的硬件地址(也叫MAC地址), 长度是48位(6个字节), 是在网卡出厂时固化的.
  • 帧协议类型字段有三种值, 分别对应IP, ARP, RARP.
  • 帧末尾是CRC校验码.

已经有了ip地址, 为什么还要有 mac 地址呢?

我们都知道, 每一个主机都有一个自己的 ip 地址作为自己的身份象征, 那么为什么还需要有一个 mac 地址呢? 其实是由于一些历史问题导致的, 在当时设计时, ip 地址和 mac 地址被不同的组织设计出来了.

后来我们为了做区分, 才进行了统一, 让 ip 地址负责网络层转发, 而 mac 地址负责数据链路层的转发. 网络层负责的是整体的一个转发过程, 而数据链路层负责的是局部(相邻设备)的转发过程.

实际上, mac 地址的数值和 ip 地址是不完全相同的. mac 地址有6个字节, ip 地址有4个字节. 一个主机既有自己的 ip 地址, 也有自己的 mac 地址.

ip 地址, 使用4个字节, 采用点分十进制来表示, 字节之间使用 . 来分割
在这里插入图片描述

mac 地址, 使用6个字节, 采用十六进制来表示, 字节之间使用 - 或者 : 来分割
在这里插入图片描述

这两东西虽然内容不同, 但都能表示自己电脑的地址. 由于 mac 地址有6个字节, 表示的范围比 ip 地址, 要大很多. 就可以保证每个设备的网卡都能有独立的 mac 地址.

认识MTU

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

  • 从以太网帧格式可以看出, 以太网帧中的数据长度规定最小46字节, 最大1500字节, ARP数据包的长度不够46字节, 要在后面补填充位.
  • 最大值1500称为以太网的最大传输单元(MTU), 不同的网络类型有不同的MTU.
  • 如果一个数据包从以太网路由到拨号链路上, 数据包长度大于拨号链路的MTU了, 则需要对数据包进行分片.
  • 不同的数据链路层标准的 MTU 是不同的.

MTU对IP协议的影响

回顾IP协议

由于数据链路层MTU的限制,对于较大的IP数据包要进行分包。

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

在这里插入图片描述
在这里插入图片描述

MTU对UDP协议的影响

回顾UDP协议

让我们回顾一下UDP协议:

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

MTU对于TCP协议的影响

回顾TCP协议

让我们再回顾一下TCP协议:

  • TCP的一个数据报也不能无限大,还是受制于MTU。TCP的单个数据报的最大消息长度,称为MSS(Max Segment Size);
  • TCP在建立连接的过程中,通信双方会进行MSS协商。
  • 最理想的情况下,MSS的值正好是在IP不会被分片处理的最大长度(这个长度仍然是受制于数据链路层的MTU)。
  • 双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值。
  • 然后双方得知对方的MSS值之后,选择较小的作为最终MSS。
  • MSS的值就是在TCP首部的40字节变长选项中(kind=2);

总结

✨ 本文主要讲解了数据链路层的重点协议以太网, 认识了以太网帧格式等等.
✨ 想了解更多计算机网络的知识, 可以收藏一下本人的计算机网络学习专栏, 里面会持续更新本人的学习记录, 跟随我一起不断学习.
✨ 感谢你们的耐心阅读, 博主本人也是一名学生, 也还有需要很多学习的东西. 写这篇文章是以本人所学内容为基础, 日后也会不断更新自己的学习记录, 我们一起努力进步, 变得优秀, 小小菜鸟, 也能有大大梦想, 关注我, 一起学习.

再次感谢你们的阅读, 你们的鼓励是我创作的最大动力!!!!!

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

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

相关文章

前端工程化(vue2)

一、环境准备 1.依赖环境:NodeJS 官网:Node.js 2.脚手架:Vue-cli 参考网址:安装 | Vue CLI 介绍:Vue-cli用于快速的生成一个Vue的项目模板。主要功能有:统一的目录结构,本地调试&#xff0…

麒麟系统查看磁盘UUID方法

通过查看 /dev/disk/by-uuid/ 目录下的软连接确定磁盘UUID ls -l /dev/disk/by-uuid/ 命令输出入下图所示,红框中即为磁盘UUID号 通过 blkid 命令查看系统中某块磁盘的uuid 号 blkid 命令输出如下图所示,UUID”” 中即为磁盘UUID号 开机自动…

五:ffmpe主要参数的使用

目录 一:回顾一下主要参数 二:使用主要参数操作视频 1、-i 输入流的使用 2、-i 配合 输出流-f使用 三、使用-ss开始时间进行转换 四、使用-t参数,设置转换的时长 一:回顾一下主要参数 -i 设定输入流。 支持本地和网络流 -f …

数学到底在哪里支撑着编程?

如果编程语言是血肉,那么数学的思想和知识就是灵魂。它可以帮助你选择合适的数据结构和算法,提升系统效率,并且赋予机器智慧。在大数据和智能化的时代更是如此。举个例子,我们在小学就学过的余数,其实在编程的世界里也…

3D 线激光相机的激光条纹中心提取方法

论文地址:Excellent-Paper-For-Daily-Reading/application/centerline at main 类别:应用——中心线 时间:2023/11/06 摘要 线激光条纹中心提取是实现线激光相机三维扫描的关键,根据激光三角测量法研制了线激光相机,基于传统 Steger 法对其进行优化并提出一种适用于提…

淘宝店铺所有商品数据接口(taobao.item_search_shop)

淘宝店铺所有商品数据接口可以使用淘宝开放平台提供的API接口获取。要使用这个接口,需要在淘宝开放平台上注册账号并申请App Key和App Secret,获取API访问权限。 使用淘宝店铺所有商品数据接口时,需要传入shop id参数来获取相应的商品信息。…

【Redis】掌握篇--Redis与SSM进行整合

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Redis的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.Redis与SSM的整合 1.添加Redis依赖 2…

「随笔」浅谈2023年云计算的发展趋势

在2023年,云计算的发展趋势将受到政治、经济、社会和科技四个维度的影响。以下是对这些维度的具体分析: 1.1 政治维度: 全球政策推动: 随着全球各国政策对云计算的重视程度不断提高,云计算服务将获得更广泛的市场准入…

安科瑞关于新能源电动汽车有序充电的对策-安科瑞黄安南

摘要 随着我国能源战略发展以及低碳行动的实施,电动汽车已逐步广泛应用,而电动汽车的应用非常符合当今社会对环保意识的要求,以及有效节省化石燃料的消耗。由于其没有污染排放的优点以及政府部门的关注,电动汽车将成为以后出行的…

后端工程化 | SpringBoot 知识点

文章目录 [SpringBoot] 后端工程化1 需求2 开发流程3 RequestController 类(操作类)3.1 简单参数(形参名和请求参数名一致)3.2 简单参数(形参名和请求参数名不一致)3.3 复杂实体参数3.4 数组参数3.5 集合参…

10 特征向量与特征值

特征向量与特征值 什么是特征向量三维空间的旋转矩阵和线性变换特征向量二维线性变换不一定有特征向量一个特征值可能不止一个特征向量特征基 这是关于3Blue1Brown "线性代数的本质"的学习笔记。 图1 预备知识 什么是特征向量 图1 特征向量 线性变换过程中&#xff…

测试常见异常总结

为了更好地保障测试质量,除了测试正向场景,也需要验证软件在异常情况下的行为和反应。本文分享一些测试过程中常见的异常。 通过模拟和触发各种异常情况,测试人员可以验证软件对异常的处理是否符合预期,是否能够正确地处理和恢复。…

Microsoft Dynamics 365 CE 扩展定制 - 7. 安全

在本章中,我们将介绍以下内容: 构建累积安全角色配置业务单元层次结构基于分层位置配置访问配置和分配字段级安全组建团队并共享设置访问团队对静止数据进行加密以满足FIPS 140-2标准管理Dynamics 365在线SQLTDE加密密钥简介 Dynamics 365是一个强大的平台,具有超过10年的良…

电脑风扇控制软件 Macs Fan Control Pro mac中文版功能介绍

Macs Fan Control mac是一款专门为 Mac 用户设计的软件,它可以帮助用户控制和监控 Mac 设备的风扇速度和温度。这款软件允许用户手动调整风扇速度,以提高设备的散热效果,减少过热造成的风险。 Macs Fan Control 可以在菜单栏上显示当前系统温…

LT498. 对角线遍历

498. 对角线遍历 问题描述 给你一个大小为 m x n 的矩阵 mat ,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素。 示例 1: 输入:mat [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,4,7,5,3,6,8,9]示例 2&#xf…

机器学习实战:基于sklearn的工业蒸汽量预测

文章目录 写在前面工业蒸汽量预测1.基础代码2.模型训练3.模型正则化4.模型交叉验证5.模型超参空间及调参6.学习曲线和验证曲线 写在后面 写在前面 本期内容:基于机器学习的工业蒸汽量预测 实验环境: anaconda python sklearn 注:本专栏内所有…

uniapp小程序才到第五层就报错navigateto:fail webview count limit exceed

错误截图 原因 小程序官方描述是说可以跳转10层,但是使用uniapp开发的程序在小程序中才运行到第五层就报错了,原因是因为没有设置appId。如果设置了就正常了。

基于APM(PIX)飞控和missionplanner制作遥控无人车-从零搭建自主pix无人车无人坦克

前面的步骤和无人机调试一样,可以参考无人机相关专栏。这里不再赘述。 1.安装完rover的固件后,链接gps并进行校准。旋转小车不同方向,完成校准,弹出成功窗口。 2.校准遥控器。 一定要确保遥控器模式准确,尤其是使用没…

按键精灵中的UI界面操作

1. 按键精灵中UI界面常用的控件 1. 文字框 界面1: {标签页1:{文字框:{名称:"文字框1",显示内容:"显示内容",文字大小:0,高度:0,宽度:0,注释:"文字大小、高度、宽度是可选属性,如需使用默认值,可保持值为0或直接删除此属性&qu…

easyHttp -- 轻量级的 HTTP 客户端工具包

easyHttp gitte地址:easy-http 介绍 easyHttp 是一个轻量级的 HTTP 客户端工具包,专为 Java 设计,使得基本的 HTTP 请求变得异常简单。该库主要针对常见的 HTTP 请求提供了简洁的 API,使得开发者无需面对复杂的设置。当前版本已支持基本的请…