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的流量控制和拥塞控制机制的效果。

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

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

相关文章

vue中使用WebSocket心跳机制与Linux中的心跳机制

WebSocket心跳机制 一、WebSocket简介 WebSocket是HTML5开始提供的一种浏览器与服务器进行全双工通讯的网络技术,属于应用层协议。 WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。 二、WebSocket事件与方法 …

曝光超1.5亿,迪丽热巴“抖音直播首秀”解锁德施曼智能锁科技革命

作为中国电商行业年中最大的消费狂欢节点,今年的618大促热闹依旧;各大品牌在今年极简的现货模式下展开了周期最长的品牌实力比拼。其中,高端智能锁领军品牌德施曼在618大促期间,携手代言人迪丽热巴,再次掀起智能锁消费…

设计模式(七)结构型模式---组合模式

文章目录 组合模式简介结构UML图具体实现UML图代码实现 组合模式简介 组合模式(Composite Pattern)又叫整体模式,它创建了对象组的树形结构,将对象组合成树状结构来表示“整体-部分”的层次关系。实际使用点:HashMap中…

Day04 左侧菜单导航实现

一.点击左侧菜单导航到对应的View页面 1.首先在MyToDo项目中,创建出左侧菜单所有的View(视图)及对应的ViewModel(视图逻辑处理类) ViewViewModel首页IndexViewIndexViewModel待办事项ToDoViewToDoViewModel忘备录MemoViewMemoViewModel设置SettingsViewSettingsViewModel

html+CSS+js部分基础运用11

一、改变新闻网页中的字号 1、设计如图1-1所示的界面,要求当网络访问者选择字号中的【大、中、小】时能实现页面字号大小变化,选择“中”时,页面效果如图1所示。 图1 单击前初始状态页面 图2 单击“中”链接后页面 2、div中内容如下&#x…

十大排序 —— 归并排序

十大排序 —— 归并排序 归并排序分治(排序)合归并排序的性能一些小总结 我们今天继续来学习排序算法 —— 归并排序: 归并排序 归并排序(Merge Sort)是一种高效的、稳定的排序算法,它采用分治法(Divide and Conquer&#xff09…

杂项——STM32ZET6要注意的一些问题——高级定时器问题和PB3,PB4引脚问题

ZET6可能会用到定时器,高级定时器要输出PWM要加上这样一行代码,否则无法正常输出PWM波 TIM_CtrlPWMOutputs(TIM8, ENABLE); // 主输出使能,当使用的是通用定时器时,这句不需要 ZET6中PB3,PB4引脚默认功能是JTDO和NJTRST,如果想将…

六一和侄子拼lego颗粒二维画

一、从泥巴到高科技:儿时玩具的变迁 在我童年的记忆里,最快乐的时光往往与简单的玩具和泥巴有关。在那个没有智能手机和电子游戏的年代,泥巴是我们的乐园,而玩具则是我们的伴侣。 小时候,泥巴是我们的创造力的源泉。…

Go跨平台编译

1.编译windows平台运行程序 # windows env GOOSwindows GOARCHamd64 go build main.go2.编译linux平台运行程序 # linux env GOOSlinux GOARCHamd64 go build main.go 3.编译macos平台运行程序 # macos env GOOSdarwin GOARCHamd64 go build main.go 编译结果:

Python3 match-case 语句

前言 本文主要介绍match-case语句与switch-case的区别,及match-case语句的基本用法。 文章目录 前言一、switch-case 和match-case的区别二、match-case的基本用法1、可匹配的数据类型2、多条件匹配3、通配符匹配 一、switch-case 和match-case的区别 C语言里面s…

Git操作笔记

学git已经好多次了。但是还是会忘记很多的东西,一些常用的操作命令和遇到的bug以后在这边记录汇总下 一.github图片展示 图片挂载,我是创建了一个库专门存图片,然后在github的md中用专用命令展示图片,这样你的md就不会全是文字那…

【C语言】文件操作(中卷)

前言 在文件操作(上卷)中,讲到的主要都是正式文件操作开始之前的前置知识,而这一卷中,我们将开始正式地操作文件。 在上卷中我们已经说到,stdin stdout stderr是三个C语言程序启动时默认打开的流。这三个流…

HarmonyOS应用开发学习历程(1)初识DevEco Studio

1.create project Bundle name:包名,标识应用程序,默认应用ID也使用该名 Compile SDK:编译时API版本 2.工程目录 AppScope:应用全局所需资源 entry:应用的主模块,含代码、资源 hvigor&#…

TimeDao-一篇文章了解清楚Subspace项目

1 项目简介 什么是Subspace网络? Subspace是为下一波加密创建者构建的第四代区块链。旨在实现web3规模扩容。 Subspace允许开发者以互联网规模运行 Web3 应用。它提供了一个简单的接口,用于快速部署按需求自动扩展的多链去中心化应用。Subspace由一个…

神经网络与深度学习——第7章 网络优化与正则化

本文讨论的内容参考自《神经网络与深度学习》https://nndl.github.io/ 第7章 网络优化与正则化 网络优化与正则化 网络优化 网络结构多样性 高维变量的非凸优化 神经网络优化的改善方法 优化算法 小批量梯度下降 批量大小选择 学习率调整 学习率衰减 学习率预热 周期性学习率调…

HCIP-Datacom-ARST自选题库__EBGP【18道题】

一、单选题 1.在排除EBGP邻居关系故障时,你发现两台直连设备使用Loopback口建立连接,故执行display current-configurationconfiguration bgp查看peer ebgp-max-hop hop-count的配置,下列哪项说法是正确的? hop-count必须大于2 hop-count…

8条黄金准则,解决API安全问题

API(应用程序编程接口)是现代软件开发中不可或缺的一部分。它们允许不同的应用程序之间共享数据和功能,从而促进了软件系统的整合和互操作性。然而,随着API使用的普及,安全性问题也开始浮出水面。 API安全是指保护API免…

Windows 剪映专业版 v5.9.0 解锁VIP、解除限制功能!

介绍 该脚本具备多项高级功能,包括人像抠图、会员专属模板、超清画质以及素材预设。会员可使用的功能均通过此脚本解锁。 解锁剪映软件会员功能,包括人像抠图、会员模板、超清画质以及素材预设等。 在标准操作流程中,用户首先在电脑端启动…

系统架构设计师【第12章】: 信息系统架构设计理论与实践 (核心总结)

文章目录 12.1 信息系统架构基本概念及发展12.1.1 信息系统架构的概述12.1.2 信息系统架构的发展12.1.3 信息系统架构的定义 12.2 信息系统架构12.2.1 架构风格12.2.2 信息系统架构分类12.2.3 信息系统架构的一般原理12.2.4 信息系统常用4种架构模型12.2.5 企业信息系…

大模型应用:Prompt-Engineering优化原则

1.Prompt-Engineering 随着大模型的出现及应用,出现了一门新兴“技术”,该技术被称为Prompt-Enginerring。Prompt Engineering即提示工程,是指在使用大语言模型时,编写高效、准确的Prompt(提示词)的过程。通过不同的表述、细节和…