【计算机网络】MAC层(三)经典以太网的MAC子层协议

简介: 前言 本文将会围绕下图来展开描述: 背景 上图为经典以太网的MAC子层协议的前后两个版本。 为什么要有这样一个协议? ————因为直接通过线路发送二进制编码,站点无法将0与空闲线路区分开。
本文首发于稀土掘金。该平台的作者 逐光而行 也是本人。

前言

本文将会围绕下图来展开描述:

image.png

背景

上图为经典以太网的MAC子层协议的前后两个版本。
为什么要有这样一个协议?
————因为直接通过线路发送二进制编码,站点无法将0与空闲线路区分开。

两个版本的差异

由于IEEE 802.3要完全兼容DIX,

故除了前缀多了个SOF标志位、中间有个字段可表示type或length外,其他都是一样的。

如何保证type与length字段兼容(为什么要有最大长度限制)?

之前type所占用的字段都是在1500以上(十进制)。

于是有如下规定:

  • 在1536(十六进制表示为0x600)以上的,说明该字段为type;
  • 小于等于1536的,说明该字段为length(即length最大为1536)

以1536为分界线

为什么要有最小长度限制?

  • 保证数据发送时间应大于等于往返传播时延,即t>=2τ,使得发生冲突时,站点能监听到冲突,并重发信息。(最重要)

image.png

  • 当收发器监测到冲突时,它需要截断当前帧。为了能更容易识别有效帧,因此规定如上图的一组信息中除去前缀(preamble)的部分至少要达到64个字节,如果不够,上图所示的填充字段(pad)就发挥作用了。

对其他字段的补充解释

Preamble

该字段有8个byte,由于1byte=8bit,所以从bit的视角看是这样的:

image.png
注意最后两位是11,最后1byte也称为802.3的定界符开头。

前缀用到了曼彻斯特编码来同步发送方和接收方的时钟,最后两bit的作用为告诉接收方接下来会有帧被发送。

(我认为这个10101010不是固定的,原文指的应该是以这样跳变的形式出现(符合曼彻斯特编码),不同形式应该是不同的,比如组播和广播,具体的等我看到实际的报文再回来勘误)

source address

该字段是唯一的,没有两个相同的站点会拥有相同的地址

check sum

用到的是之前也提到的CRC校验码之类

CSMA/CD with Binary Exponential Backoff(二进制指数回退算法)

回顾上两篇文章中提到的小明坐公交问题:

【计算机网络】媒介访问控制子层(MAC)(一)概念理解

如果他和小军同时想坐座位,又同时等待并等待相同时间的话,下一次他们还是会冲突。
该算法就用于解决这个问题。

假设以一个slot的间隔为时间单位。第一次他们各自等待0或1$(2^1-1)$,要是发现还冲突,就等待0/1/2/3$(2^2-1)$......第i次还冲突就等待$(2^i-1)$,这样就能尽可能错开时间。

需要注意的是,由于这是指数级增长,所以如果完全取决于i的话是不现实的。所以有如下规定:当i>10后,即范围最大值边界超过1023后,这个范围就不再变动,之后再有冲突,也是在0~1023之间取随机时间间隔。

参考书籍

  • 《Computer Networks (the fifth edition) 》

看英文原书、理解、码字整理都不容易,希望各位多多包涵哈~如有错误,恳请各位大神指出!

相关文章
|
7月前
|
数据采集 算法 数据挖掘
模块化控制协议(MCP)在网络中增强智能体执行效率的研究
随着Web3技术的迅速发展,去中心化应用和智能体在各种领域的应用逐渐增多。MCP(Modularized Control Protocol,模块化控制协议)作为一种增强智能体执行能力的关键技术,为Web3场景中的智能体提供了更强的灵活性和可扩展性。本文将探讨如何利用MCP技术提升智能体在Web3场景中的执行能力,并通过实例代码展示其实现路径。
603 22
|
4月前
|
监控 负载均衡 安全
WebSocket网络编程深度实践:从协议原理到生产级应用
蒋星熠Jaxonic,技术宇宙中的星际旅人,以代码为舟、算法为帆,探索实时通信的无限可能。本文深入解析WebSocket协议原理、工程实践与架构设计,涵盖握手机制、心跳保活、集群部署、安全防护等核心内容,结合代码示例与架构图,助你构建稳定高效的实时应用,在二进制星河中谱写极客诗篇。
WebSocket网络编程深度实践:从协议原理到生产级应用
|
5月前
|
运维 架构师 安全
二层协议透明传输:让跨域二层协议“无感穿越”多服务商网络
简介:本文详解二层协议透明传输技术,适用于企业网工、运营商及架构师,解决LLDP/LACP/BPDU跨运营商传输难题,实现端到端协议透传,提升网络韧性与运维效率。
|
9月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
251 18
|
10月前
|
安全 网络安全 定位技术
网络通讯技术:HTTP POST协议用于发送本地压缩数据到服务器的方案。
总的来说,无论你是一名网络开发者,还是普通的IT工作人员,理解并掌握POST方法的运用是非常有价值的。它就像一艘快速,稳定,安全的大船,始终为我们在网络海洋中的冒险提供了可靠的支持。
293 22
|
10月前
|
网络协议 数据安全/隐私保护 网络架构
|
11月前
|
缓存 网络协议 API
掌握网络通信协议和技术:开发者指南
本文探讨了常见的网络通信协议和技术,如HTTP、SSE、GraphQL、TCP、WebSocket和Socket.IO,分析了它们的功能、优劣势及适用场景。开发者需根据应用需求选择合适的协议,以构建高效、可扩展的应用程序。同时,测试与调试工具(如Apipost)能助力开发者在不同网络环境下优化性能,提升用户体验。掌握这些协议是现代软件开发者的必备技能,对项目成功至关重要。
|
12月前
|
人工智能 自然语言处理 决策智能
智能体竟能自行组建通信网络,还能自创协议提升通信效率
《一种适用于大型语言模型网络的可扩展通信协议》提出创新协议Agora,解决多智能体系统中的“通信三难困境”,即异构性、通用性和成本问题。Agora通过标准协议、结构化数据和自然语言三种通信格式,实现高效协作,支持复杂任务自动化。演示场景显示其在预订服务和天气预报等应用中的优越性能。论文地址:https://arxiv.org/pdf/2410.11905。
451 6