Advertisement

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

阅读量:

核心算法分析:


1. 解析帧结构模块

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

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

2. 封装数据帧模块

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

**

**



3. 模拟发送帧模块

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

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

在以太网架构中,每个节点通过共享的总线进行数据传输

步骤二:冲突检测(CD)

在数据传输过程中可能存在冲突(即指在同一时间从多个设备向同一个通信介质上传的信息超出了该介质承载能力)。由于可能存在多个设备同时在监听通信介质,在这些情况下会将信息通过介质传递出去。因此,在传输信息的过程中也需要进行冲突检测:一旦发生冲突,则应立即停止向该介质上传信息。

步骤三:随即延迟后重发

采用随机延迟机制进行重传。当检测到冲突事件发生并停止发送数据时,节点会根据检测到的冲突状况重新执行随机延迟后的重传操作。若在连续16次尝试中均未成功,则判定该帧的发送失败,并取消该帧的发送行为。关于随机延迟的具体实现方法通常采用截断二进制指数退避算法。

具体流程图如下所示:

在本程序中,采用了基于随机数值模拟的方法进行冲突和总线忙两种状态的检测.出现冲突的可能性高达87.5%,处于繁忙状态的概率达50%.

4.CRC8校验

为求简洁而高效, 本程序采用了针对CRC8设计的一种高效的查表方法. 具体算法已在背景知识章节中详细说明.

全部评论 (0)

还没有任何评论哟~