CSMA/CD协议
CSMA/CD(CarrierSenseMultipleAccess/collisiondetection,带有冲突检测的载波侦听多路存取)是IEEE802.3使用的一种媒体访问控制方法。从逻辑上可以划分为两大部分:数据链路层的媒体访问控制子层(MAC)和物理层。它严格对应于ISO开放系统互连模式的最低两层。LLC子层和MAC子层在一起完成OSI模式的数据链路层的功能。CSMA/CD的基本原理是:所有节点都共享网络传输信道,节点在发送数据之前,首先检测信道是否空闲,如果信道空闲则发送,否则就等待;在发送出信息后,再对冲突进行检测,当发现冲突时,则取消发送。
中文名:CSMA/CD协议
外文名:CarrierSenseMultipleAccess/collisiondetection
缩写:CSMA/CD
起源:ALOHA网
1、简介
CSMA/CD(CarrierSenseMultipleAccess/CollisionDetection),在以太网中使用随机争用型的介质访问控制方法,即冲突检测的载波监听多路访问的方法。它起源于美国夏威夷大学开发的ALOHA网所采用的争用型协议,并进行了改进,使之具有比ALOHA协议更高的介质利用率。
2、工作原理
CSMA/CD的基本原理是:每个节点都共享网络传输信道,在每个站要发送数据之前,都会检测信道是否空闲,如果空闲则发送,否则就等待;在发送出信息后,则对冲突进行检测,当发现冲突时,则取消发送。我们可以借助于生活中的一个例子来解释:假设有这一层楼,两旁住了几十户人,中间只有一条仅供一人同行的走道。我们看情况会怎么样:①当这些住户要经过走道出来时,首先探出头来看看走道上有没有人(这就是载波监听),如果没有,就通过走道出来;②如果走道上有人走,那么就一直盯着走道,直到走道上没人时再出来(1-坚持监听算法);③如果有两人同时看到走道上没有人,而同时走向走道(冲突检测),则两个人发现时就马上回到自己屋里。在整个协议中最关键的是载波监听、冲突检测两部分。
3、其它
数据链路层的功能
1.在物理层中把依赖于媒体的特性分离出来,使得LLC子层和MAC子层能适用于一系列媒体。在物理层内定义了两个重要的兼容接口,即依赖于媒体的媒体相关接口MDI和访问单元接口AUI。MDI是一个同轴电缆接口,所有站都必须严格遵守IEEE802.3定义的物理媒体信号的确切技术规范,严格遵守站点正确动作的规程,要求这个物理媒体接口完全兼容;AUI为第二兼容接口,大多数站点都设在离开同轴电缆的连接处有一段距离的地方,在与同轴电缆靠近的MAC中只有少量电路,而大部分硬件和全部软件都在站点中,对于确保通信来说,符合这个接口并不是绝对必要的,但是由于它允许在MAC和站配合使用时有极大的灵活性,所以推荐这个接口。
MAC子层和LLC子层之伺的接口,包括发送和接收帧的设施,并提供每个操作的状态信息,以供高一层差错恢复规程之用,MAC子层和物理层之间的接口,包括成帧、载波监听、启动传输和解决争用(冲突控制)的信号,在两层间传送一对串行比特流(发送、接收)的设施和用于定时等待的功能。
2.MAC的帧结构
MAC帧是在MAC子层实体间交换的协议数据。帧的格式如图6.16所示。帧的8个字段为:前导码、帧起始定界符、目的地址、源地址、表示信息字段长度的长度字段、要发送的以LLC数据、需要进行填充的字段和帧校验序列字段。这8个字段除LLC数据和填充字段外,长度都是固定的。
前导码字段包含7个字节,它用于使PLS(物理收发信号)电路和收到的帧达到稳态同步。帧起始定界符(SFD)字段是10101011序列,它紧跟在前导码后,表示一帧的开始。地址字段包括目的地址字段和源地址字段。目的地址字段规定该帧发往的目的地。源地址字段用于标识起始发送该帧的站。MAC子层有两类地址:即单个地址和成组地址,单个地址说明该地址与网络上一个特定站有关,成组地址说明是多目的地的地址,它与给定网络上的一个或多个站有关。也可以是广播地址,即表示网络上所有站的一组地址。
长度字段是两个字节字段,其值表示数据字段中LLC数据的字节数量,数据字段包含数据序列,为了CSMA/CD协议的正常操作需要一个最小帧长度,必要时可在LLC数据字段之后,FCS之前以字节为单位加以填充。帧校验序列(FCS)字段是发送和接收都要使用循环冗余校验码(CRC)算法所产生的FCS字段的CRC码,帧的长度为64个字节到1518字节之间。
3.MAC子层的功能
IEEE802.3标准提供了MAC子层的功能说明,主要有数据封装和媒体访问管理两个方面,MAC功能模块如图6.17所示。数据封装(发送和接收数据封装)包括成帧(帧定界和帧同步)、编址(源地址及目的地址的处理)和差错检测等。媒体访问管理包括媒体分配和竞争处理。
(1)发送数据封装部分的功能
当LLC子层请求发送一帧时,MAC子层的发送数据封装部分用LLC子层所提供的数据结构组帧,它将一个前导码P和一个帧起始定界符SFD附加到帧的开头部分,还将PAD附加到结尾部分,以确保传送帧的长度满足最小帧长的要求,它还要附加目的地址和源地址,长度计数字段和帧校验序列,然后把组成的帧交给MAC子层的发送媒体访问管理部分以供发送。
(2)发送媒体访问管理部分的功能
借助于监视物理层收发信号(PLS)部分提供的载波监听信号,发送媒体访问管理设法避免发送信号与媒体上其它信息发生冲突。在媒体空闲时,经短暂的帧间延迟(提供给媒体恢复时间)之后,就启动帧发送,然后,MAC子层将串行位流送给PLS接口以供发送,PLS完成产生媒体上电信号的任务。同时,监视媒体和产生冲突检测信号。在没有争用的情况下,即完成发送。完成发送后,MAC子层通过LLC与MAC间的接口通知LLC子层,等待下一个发送请求。假如产生冲突,PLS接通冲突检测信号,接着发送媒体访问管理开始处理冲突。首先,它发送一个称为阻塞(Jam)的位序列来强制冲突,这就保证了有足够的冲突持续时间,以使其它与冲突有关的发送站都得到通知,在阻塞信号结束时,发送媒体访问管理就停止发送。
发送媒体访问管理在随机选择的时间间隔后再进行重发尝试,在重复的冲突面前反复进行重发尝试,发送媒体访问管理用二进制指数退避算法调整媒体负载。然后,或者重发成功,或者媒体故障或过载的情况下,放弃重发尝试。
(3)接收媒体访问管理部分的功能
首先由PLS检测到达帧,使接收与前导码同步,并接通载波监听信号。接收媒体访问管理部件要检测到达的帧是否错误,帧长是否超过最大长度,是否为8位的整倍数,还要过滤冲突的信号,即把小于最小长度的帧过滤掉。
(4)接收数据解封部分的功能
这一部分检验帧的目的地址字段,决定本站是否应该接收该帧,如地址符合,将送到LLC子层,并进行差错检验。
下面列出IEEE802.3MAC协议的10Mbps实现方案的参数值。
参数数值
SlotTime(时间片)512比特时间
InterFrameGap(帧问间隔)9.6微秒
attemptlimit(尝试极限)16
Backofflimit(退避极限)10
Jamsize(人为干扰长)32比特
maxFramesize(最大帧长)1518字节
minFramesize(最小帧长)64字节
addresssize(地址字段长)48比特
冲突检测的方法
冲突检测的方法很多,通常以硬件技术实现。一种方法是比较接收到的信号的电压大小。只要接收到的信号的电压摆动值超过某一门限值,就可以认为发生了冲突。另一种方法是在发送帧的同时进行接收,将收到的信号逐比特地与发送的信号相比较,如果有不符合的,就说明出现了冲突。