以太网 V2 MAC帧的封装,解析,发送

news/2024/10/31 1:26:28/

核心算法分析:

 

1. 解析帧结构模块

       本模块实现了将封装好的MAC帧各字段解析为可阅读的文本的功能。

       其中,任意位置的读入失败都抛出文件已到达末尾异常,结束解析。

 

2. 封装数据帧模块

       本模块实现了将用户输入的文本封装为MAC帧的功能。

 

 

 

 

3. 模拟发送帧模块

       本模块实现了简单的CSMA/CD协议,能够模拟单机发送一个MAC帧的过程。

步骤一:载波侦听过程(CSMA)

 

以太网中每个结点利用总线发送数据,总线是每个结点共享的公共传输介质。所以结点在发送一个帧前,必须侦听总线是否空闲。由于以太网的数据采用曼彻斯特编码方式,所以可以通过判断总线电平是否跳变来确定总线是否空闲。若总线空闲,就可以启动发送,否则继续监听。

 

步骤二:冲突检测(CD)

 

在数据发送过程中,可能会产生冲突(冲突是指总线上同时出现两个或两个以上的发送信号,他们叠加后的信号波形与任何发送结点的输出波形都不相同)。因为可能多个主机都在侦听总线,当他们侦听到总线空闲时,就会往总线上发送数据。所以在发送数据的过程中,也应该进行冲突检测,只要发现冲突就该立即停止发送数据。


步骤三:随即延迟后重发

 

随机延迟后重发。在检测到冲突,停止发送后,结点进行随机延迟后重发。若发16次后还未成功,则宣告发送失败,取消该帧的发送。随机延迟的算法一般采用截断二进制指数退避算法。

 

 

 

 

 

 

 

 

具体流程图如下所示:

      

       本程序中,对冲突和总线忙两种状态的检测均采用随机值模拟。发生冲突的概率为87.5%,总线忙的概率为50%。

 

4.CRC8校验

       为求精简而高效,本程序采用适用于CRC8的高效率的查表法。具体算法在背景知识章节中已有描述。

 



http://www.ppmy.cn/news/548509.html

相关文章

UUID-五个版本-v1|v2|v3|v4|v5-使用说明

1、UUID概要 UUID 的全称是 Universally Unique Identifier,中文为通用唯一识别码。 构成:由一组32位数的16进制数字所构成。 格式:以连字号分为五段,表现形式为8-4-4-4-12的32个字符 xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx如&…

MobileNet v2 算法笔记

论文:Inverted Residuals and Linear Bottlenecks Mobile Networks for Classification, Detection and Segmentation 链接:https://128.84.21.199/abs/1801.04381 第三方代码(可用于在ImageNet数据集上训练):https:…

开始使用DOCKER COMPOSE V2

Compose V2 项目启动于2021年6月,直到2022年4月26号,发布了GA版本。在发布GA版本后,社区也宣布对于Compose V1将不会再进行功能更新,将在6个月后结束生命周期(EOL),期间会进行关键的安全和错误修…

卸载V2ray

停用并卸载服务(systemd): systemctl stop v2ray systemctl disable v2ray 停用并卸载服务(sysv): service v2ray stop update-rc.d -f v2ray remove 然后删除以下文件: /etc/v2ray/* /usr…

# Kinect V2 简介

Kinect V2 简介 文章为个人学习笔记 整理了一些网络资源和视频知识。 提示:自己也是小白,文章不免会出现不少的错误。 文章目录 Kinect V2 简介前言一、Kinect V2是什么?二、硬件信息1.摄像头结构2.连接线 三、软件准备1.kinect for window …

使用CISCO配置RIP v2动态路由

随着OSPF和IS-IS的出现,RIP的使用渐渐减少,仅适用于小型网络 下面为拓扑图 首先将RIP改成version 2Router(config)# router rip Router(config-router)# version 2 RIP v2动态路由配置中,路由表仅填写直连网段,以中间Router3为例…

C-V2X 技术介绍

缩略语 3GPP(the 3rd Generation Partnership Project,第三代合作伙伴项目) CA(Certificate Authority,证书授权) C-ITS(Cooperative Intelligent Transportation System,协作式智能交通系统…

MP4V2封装h265

mp4v2一般是用来做h264到mp4的封装,后来经过总结和优化,出现了支持h264/h265的版本,链接如下: mp4v2-h265 从以上链接中下载的MP4V2源码 相关接口如下: MP4V2_EXPORT MP4TrackId MP4AddH265VideoTrack(MP4FileHand…