MAC帧

基本问题

数据链路层的协议有很多,但是都有三个基本问题:封装成帧,透明传输和差错检测。

封装成帧

封装成帧(Framing)就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。帧是数据链路层的传送单元,它包括一定数量的数据和一些必要的控制信息(如同步信息、地址信息、差错控制等)。首部和尾部的一个重要作用就是进行帧定界。

在接收端,数据链路层可以从物理层接收到的比特流中准确地识别出一个个帧的开始和结束位置,这样就能够将比特流恢复成原始的数据。

透明传输

透明传输(Transparent Transmission)是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。

为了实现透明传输,可以采取字节计数法、字符填充法或零比特填充法等。这些方法都是在数据部分的前后加上一些特殊的标记,以便在接收端能够准确地识别出数据的开始和结束位置。

差错检测

差错检测(Error Detection)是数据链路层的一个重要功能,用于检测传输过程中是否出现了差错。由于信道噪声的干扰,数据在传输过程中可能会出现错误。为了降低数据传输的差错率,数据链路层通常会对传输的数据进行差错检测。

常用的差错检测方法有循环冗余校验(CRC)和奇偶校验等。其中,CRC是一种基于二进制除法运算的校验方法,它能够检测出数据在传输过程中是否出现了多位错误。而奇偶校验则是一种简单的校验方法,它只能检测出数据在传输过程中是否出现了奇数位或偶数位的错误。

在数据链路层中,通常会将CRC校验码添加到帧的尾部,以便在接收端进行差错检测。如果接收端检测到CRC校验码与发送端不一致,则说明数据在传输过程中出现了错误,接收端会要求发送端重新发送该帧。

适配器

计算机和外界局域网的接口是通过适配器(adapter),就是我们常说的网卡NIC。

image-20240531094834367

以太网

以太网这个术语一般是指数字设备公司(Digital Equipment Corp)、英特尔公司(IntelCorp.)和Xerox公司在1982年联合公布的一个标准。它是当今TCP/IP采用的主要的局域网技术。它采用一种称作CSMA/CD的媒体接入方法,其意思是带冲突检测的载波侦听多路接入(Carrier Sense, Multiple Access with Collision Detection)。它的速率为10 Mb/s,地址为48 bit。

IEEE802后面又定义了多个标准,把数据链路层拆分成LLC(逻辑链路控制)和MAC(媒体接入控制),再后面发展就只剩下DIX Ethernet V2也就是常说的以太网,仅只有MAC协议。

CSMA/CD

CSMA/CD(Carrier Sense Multiple Access with Collision Detection)是一种用于局域网(LAN)的介质访问控制(MAC)协议,特别是在以太网(Ethernet)中。这个协议确保当多个设备同时尝试发送数据时,它们可以高效地共享单一传输介质(如双绞线、同轴电缆或光纤)。以下是CSMA/CD的详细解析:

工作原理

CSMA/CD的工作原理可以分为四个主要步骤:

  1. 载波侦听(Carrier Sense)在发送数据之前,设备会监听传输介质是否空闲。如果介质空闲,设备会等待一个随机时间(称为“退避时间”)后发送数据,以减少多个设备同时发送数据导致的冲突。
  2. 多路访问(Multiple Access)当设备确定介质空闲并且退避时间结束后,它会开始发送数据。多个设备可以同时监听并尝试访问传输介质。
  3. 冲突检测(Collision Detection)在发送数据的同时,设备也会监听传输介质以检测是否有其他设备同时发送数据。如果检测到冲突(即有其他设备同时发送数据),设备会立即停止发送当前数据帧,并发送一个特殊的信号来通知其他设备发生了冲突。
  4. 冲突后行为(Post-Collision Behavior)一旦检测到冲突,发送数据的设备会等待一个随机时间(通常是退避时间的两倍或更多)后重试发送。这个随机等待时间基于二进制指数退避算法,旨在减少冲突发生的概率。

特点

  • 简单性:CSMA/CD协议相对简单,易于实现。
  • 效率:通过载波侦听和冲突检测,CSMA/CD协议能够高效地共享传输介质。
  • 可靠性:在冲突发生时,设备会重试发送数据,确保数据的可靠传输。
  • 公平性:通过二进制指数退避算法,CSMA/CD协议能够在一定程度上保证各个设备公平地访问传输介质。
  • 不适合高负载网络:在高负载网络环境下,冲突可能会变得频繁,导致网络性能下降。
  • 不适用于无线环境:CSMA/CD依赖于物理介质上的信号检测来发现冲突,这在无线环境中难以实现。
  • 无法完全避免冲突:尽管CSMA/CD可以减少冲突的发生,但在某些情况下仍然无法完全避免冲突。

PPP协议

PPP协议,全称为Point-to-Point Protocol,是一种数据链路层协议,它提供了在两个节点之间进行数据封装和传输的标准方法。

PPP协议广泛应用于需要点对点连接和数据传输的场合,如拨号上网、VPN连接、专线连接等,但不适用于广域网和提供加密等。

特点:

  1. 动态IP地址分配:PPP具有动态分配IP地址的能力,允许在连接时刻协商IP地址。
  2. 多网络协议支持:PPP支持多种网络协议,如TCP/IP、NetBEUI、NWLINK等。
  3. 错误检测:PPP具有错误检测能力,但不具备纠错能力,因此被归类为不可靠传输协议。
  4. 网络开销小:由于无重传机制,PPP在数据传输时网络开销小,速度快。
  5. 身份验证功能:PPP提供了强大的身份验证功能,如CHAP(Challenge Handshake Authentication Protocol)和PAP(Password Authentication Protocol)。

MAC帧

image-20240531095416669

长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)在网卡出厂时就确定了, 不能修改。

MAC由5个字段组成。MAC帧的帧头和帧尾包含必要的控制信息,如同步信息、地址信息、差错控制信息等。

第三个字段类型表示上一层用什么协议,以便把收到的MAC帧数据交给上一层这个协议。例如:0x0800:IPv4协议、0x86DD:IPv6协议。

数据字段是要传输的实际数据,长度在46-1500字节之间,长度不足46字节时,会用填充字节(Padding)补足。

CRC用于检验帧的完整性,采用循环冗余校验(CRC)算法。接收端通过计算和比较FCS来确定数据是否在传输过程中损坏。

无效帧

  • 帧长度不正确:长度不在46-1500字节之间。
  • 帧校验序列(FCS)错误:FCS用于检验帧的完整性。如果接收端计算出的FCS与帧中的FCS不匹配,说明帧在传输过程中发生了错误,因此该帧被视为无效帧。
  • 地址错误:如果帧的目的地址或源地址不正确(如全零或全一地址),该帧可能被视为无效帧。
  • 帧的长度不是整数个字节

对于无效帧就直接丢弃了,以太网不负责重传。

MTU

数据帧有一个最大的长度限制是1500叫MTU,如果 I P层有一个数据报要传,而且数据的长度比链路层的MTU还大,那么IP层就需要进行分片(fragmentation),把数据报分成若干片,这样每一片都小于MTU。

image-20240531101405213

MTU对UDP协议的影响

当UDP数据包的大小超过链路的MTU时,数据包在发送前需要进行分片。分片发生在IP层,由发送端的网络接口根据链路的MTU将过大的数据包拆分成多个较小的数据包进行传输。

UDP协议本身不提供数据包的确认和重传机制,因此数据包的丢失率相对较高。当数据包的大小超过链路的MTU并导致分片时,这些分片需要被重新组装成原始的数据包。这个过程需要消耗额外的CPU资源,并且可能增加数据包的丢失率(如果分片在传输过程中丢失)。

MTU对于TCP协议的影响

当TCP数据包(实际上是IP数据包,因为TCP是传输层协议,封装在IP数据包中)的大小超过链路的MTU时,数据包会在发送端被分片。这些分片的数据包会在网络中进行独立的路由传输,最后在接收端被重新组装成原始的TCP数据包。

分片与重组过程会增加网络延迟和CPU开销,因为每个数据包都需要被单独处理。如果数据包在传输过程中丢失了某个分片,那么整个TCP数据包都需要被重传,这会进一步降低传输效率。

TCP也使用PMTUD来动态发现路径上的最小MTU。与UDP不同的是,TCP在收到ICMP“数据包过大”错误时,会减小数据包的大小并重试,而不是简单地丢弃数据包。PMTUD有助于TCP在复杂的网络环境中选择最佳的数据包大小,以提高传输效率并减少数据包丢失。

TCP协议具有流量控制和拥塞控制机制,可以根据网络状况动态调整发送速率和接收窗口大小。这些机制与MTU密切相关,因为数据包的大小直接影响到网络的拥塞程度和传输效率。当MTU设置得过大时,可能会导致网络拥塞加剧,从而影响TCP的流量控制和拥塞控制机制的效果。

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

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

相关文章

css 中clip 属性和替代方案 clip-path属性使用

clip clip 属性概述 作用:clip 属性用于定义一个裁剪区域,该区域外的元素内容将不可见。适用元素:clip 属性只对绝对定位(position: absolute)或固定定位(position: fixed)的元素有效&#xf…

掘金AI 商战宝典-高阶班:如何用AI制作视频(11节视频课)

课程目录: 1-第一讲用AI自动做视频(上)_1.mp4 2-第二讲用AI自动做视频(中)_1.mp4 3-第四讲A1做视频实战:店铺宣传_1.mp4 4-第五讲Al做视频实战:商品带贷1.mp4 5-第六讲Al做视频实战&#x…

码随想录算法训练营第二十四天| 77. 组合

77. 组合 - 力扣&#xff08;LeetCode&#xff09; class Solution {ArrayList<Integer> path new ArrayList<>();ArrayList<List<Integer>> result new ArrayList<>();public List<List<Integer>> combine(int n, int k) {if(n &…

SAP揭秘者- SAP PP模块日常常见运维问题之工单入库失败原因分析及快速处理

文章摘要&#xff1a; 无论您是负责SAP实施项目还是负责SAP运维项目&#xff0c;当用户发现有SAP PP模块的各种异常问题的时都需要作为SAP PP顾问的您快速地理解用户提交的问题&#xff0c;并快速地解决这些问题&#xff0c; 上篇文章跟大家聊了基本单位维护错了怎么修改的解决…

qt按钮的autoRepeat属性和default属性

autoRepeat属性&#xff1a;按住按钮不松&#xff0c;表示一直在点击按钮 default属性&#xff1a;点击Enter键表示在点击按钮

02Docker中的镜像和容器命令

镜像和容器 Docker中有镜像和容器的概念 镜像(Image): Docker将应用程序及其运行所需要的依赖、函数库、环境、配置等文件打包在一起称为镜像即硬盘中的文件容器(Container): 镜像中的应用程序运行起来并加载到内存中后形成的进程就是容器,一个镜像可以运行多个容器将来形成集…

计算机毕业设计hadoop++hive微博舆情预测 微博舆情分析 微博推荐系统 微博预警系统 微博数据分析可视化大屏 微博情感分析 微博爬虫 知识图谱

摘 要 随着社交媒体的普及和互联网技术的快速发展&#xff0c;热点舆情事件频发&#xff0c;对于政府、企业和公众来说&#xff0c;及时了解和分析热点舆情&#xff0c;把握舆论走向&#xff0c;已经成为一项重要的任务。然而&#xff0c;传统的数据处理和分析方法在面对海量…

华为 2024 届实习校园招聘-硬件通⽤/单板开发——第五套

华为 2024 届实习校园招聘-硬件通⽤/单板开发——第五套 部分题目分享&#xff0c;完整版带答案(有答案和解析&#xff0c;答案非官方&#xff0c;未仔细校正&#xff0c;仅供参考&#xff09;&#xff08;共十套&#xff0c;每套四十题选择题&#xff09;获取&#xff08;WX:…

Java18新版本特性!

Java 18引入了多项新特性&#xff0c;主要包括默认UTF-8字符集、简单的Web服务器、栈步进API等。Java 18是Oracle在2022年发布的版本&#xff0c;其旨在通过一系列创新特性来提升开发效率与性能。下面将逐一探讨Java 18的主要新特性以及它们对开发者的具体影响&#xff1a; 默认…

【C语言】10.C语言指针(4)

文章目录 1.回调函数是什么&#xff1f;2.qsort 使⽤举例2.1 使⽤qsort函数排序整型数据2.2 使⽤qsort排序结构数据 3.qsort函数的模拟实现 1.回调函数是什么&#xff1f; 回调函数就是一个通过函数指针调用的函数。 如果你把函数的指针&#xff08;地址&#xff09;作为参数…

Prime1 - 信息收集和分析能力的试炼

主机发现 nmap扫描与分析 端口22、80 详细扫描&#xff1b;linux、ubuntu、 udp扫描 端口都是关闭的 脚本扫描 web渗透 打开只有一张图片&#xff1b;源码有图片和一个alt&#xff1a;hnp security不知道有啥用&#xff0c;先记录下来吧 继续web渗透思路走吧&#xff0c;目录…

线性代数|机器学习-P3乘法和因式分解矩阵

文章目录 1. 矩阵分解2. S Q Λ Q T SQ\Lambda Q^T SQΛQT3. A U Σ V T AU\Sigma V^T AUΣVT4. A LU 分解5. 矩阵的四个子空间 1. 矩阵分解 目前我们有很多重要的矩阵分解&#xff0c;每个分解对应于多个前提条件&#xff0c;分解方法&#xff0c;分解后的形状会中如下&…

如何跨渠道分析销售数据 - 6年制造业销售经验小结

如何跨渠道分析销售数据 - 6年制造业销售经验小结&#xff08;1&#xff09; 【前言】 在我过去6年销售工作生涯中&#xff0c;从第一年成为公司销冠后&#xff0c;我当时的确自满的一段时间&#xff0c;认为自己很了不起。但是第一年的销售业绩并没有拿到提成&#xff0c;最…

“一键”掌控数据库特权,DpEasy 新版本即将启航

去年11月&#xff0c;我们在 BinTools 社区推出了一款新产品——DpEasy。在我们最初设计这款产品的时候&#xff0c;我们给出的定位是「数据库安全风险扫描工具」&#xff0c;目标是提供一种简单、安全且高效的方式来管理数据库账号密码以及分析数据库账号的使用情况&#xff0…

Python开发与应用实验1 | 开发环境安装配置

*本文来自博主对专业课 Python开发与应用 实验部分的整理与解析。 *一些题目可能会增加了拓展部分&#xff08;⭐&#xff09;。拓展部分不是实验报告中原有的内容&#xff0c;而是博主本人的补充&#xff0c;以便各位学习参考。 *实验环境为&#xff1a;Python 3.10 &#xf…

[AFCTF 2018]JPython

小祥为了保护自己的代码&#xff0c;修改了部分Python Bytecode指令集&#xff0c;并把这个指令集称之为JPython&#xff0c; JPython只能在他私人定制的环境上才能运行&#xff0c;其他人无法得到这个环境。 现在&#xff0c;小明为了获取小祥代码中的秘密&#xff0c;收集到了…

LangChain实战技巧之四:当模型(Model)不支持Tool/Function的解决办法

文心大模型两大主力模型已全面免费&#xff0c;可参考我之前发的文章 AI菜鸟向前飞 — 今日三则AI相关新闻 但是&#xff0c;这些模型原生并不支持Tool/Function Call 如下所示&#xff1a; tool def greeting(name: str):向朋友致欢迎语return f"你好啊, {name}"…

xilinx ip自带XDC只读

检查生成的IP核再目录下显示的文件类型是不是.xcix 如果是的话&#xff0c;重新生成为.xci 再二次编辑即可 或者 将框柱的部分不选择&#xff0c;从新生成

在潮流时尚的绿地新都会,竟然藏了一家神奇的工作室

绿地新都会新开的国学文化工作室有点不一样&#xff01;拜师终南山汇通中西方文化融合东西方数术更适合中国宝宝体质的新天地 探索人生规律&#xff0c;改善家居环境&#xff0c;强化自身能量 查看人生剧本&#xff0c;观看图卡心理学TAROT 关于创始人妙霏老师 生活环境研究…

AWS 高防和阿里云高防深度对比

随着网络攻击的不断增加&#xff0c;企业对于网络安全的需求也越来越高。在这种情况下&#xff0c;高防护服务成为了企业网络安全的重要组成部分。AWS和阿里云作为全球领先的云计算服务提供商&#xff0c;都提供了高防护服务&#xff0c;但它们之间存在着一些差异。我们九河云一…