我们一起学网络(二)——数据链路层(CSMA/CD协议)

本文详细介绍了局域网的基本概念及其优势,并深入探讨了以太网的工作原理和技术特点,包括CSMA/CD协议、MAC地址、适配器功能及以太网的重传机制。

 (一) 广播信道是一对多的通信,在局域网中使用的最广。所以我们将广播信道就基本上是讲局域网了……

        那什么是局域网?网络为一个单位所拥有,且地理范围和站点数据均有限。       这很好理解,对吧?比如说一个学校,一个网吧,一家公司等等之类的,内部网络都是局域网。通过局域网又连接到外网。

        局域网有3个有点:(1)有广播功能,从一个机器可以访问到整个网络 (2)方便扩展,设备的位置灵活可变 (3)提高了系统的可靠性、可用性、生存性

        局域网按照网络拓扑方式分的话分为3中:(1)星形网 (2)总线网 (3)环形网    以前呢,用的最多的是总线网,因为总线网是用无源(没电源)线缆作为数据传输的介质,那时候人们认为无源的设备比较稳点,安全。现在呢,网络发达了,大规模集成电路的质量上去了,所以用的最多的是星形网,星形网用一个集线器来接收信息并广播到所有的结点上。其实星形网中的集线器就相当于总线网中的总线。

        以太网就是现在用的最广泛的局域网,共有两个标准。第一个是 DIX Ethernet V2,另一个是IEEE 802.3。    IEEE 802.3把局域网的链路层拆为两个子层,(1)逻辑链路控制LLC (2)媒体接入控制MAC。    由于各种原因,LLC已经基本不用了。所以我们着重介绍MAC

        讲MAC之前,我们需要先了解一下 适配器,适配器又叫网卡。网卡最大的功能是缓冲数据再发送,避免了网络数据率和总线数据率不同而可能引起的问题。每个适配器里都有一个独一无二的,固定的物理地址,这个物理地址就是我们所说的MAC地址。所谓广播就是集线器给局域网内的各个站点发送出此数据帧后,只有适配器的MAC地址与数据帧中的目的地址匹配的那个站才接收数据,其他的站就丢掉帧。

 

下面讲个重点的重点,以太网采用的协议CSMA/CD协议。 CSMA/CD的意思的载波监听多点接入/碰撞检测 (这里的载波不是指那种传输数据的载波,只是借用一个这个词)

多点接入:就是说网络是总线型的(星形网也是总线型的一种)。CSMA/CD是双向交替通信(半双工通信)

载波监听:不管发送前,还是发送中,每个站必须不停的检测信道。 发送前检测,是为了获得发送权,如果检测出信道中有数据,就不能发送。发送中检测,是为了及时发现有没有和其他的数据碰撞,也就是下面要说的碰撞检测

碰撞检测:当两个或以上的站发传送的数据同时在总线上时,总线上的电压变化幅度就会变大,容易造成传输中的数据损坏。

 

那么,这里有一个问题,既然我们在发送前进行了监听,监听到信道是“空闲”的才发送的数据,为什么还会发送碰撞?这是一个严重的问题。。。。。。

我们要知道,电磁波在电缆中传播是需要时间的,电磁波在1Km的电缆中传播时延为5μs。就是假如说,我A和B距离1km,A发出信息,B要5μs才能检测到,在这5μs内,B认为信道空闲,万一B一不小心在这5μs内发送了数据,,就会造成碰撞。咱还是用图说话吧。。。。

                                                               

我们把这种单程端到端传播时延极为τ   那端到端往返的传播时延自然就是2τ了。这个2τ这段时间呢,有个名词,叫争用期。争用期过了还没检测出碰撞,才能肯定这次发送肯定不会发送碰撞,数据顺利发送完毕了。争用期一般为51.2μs

那么碰撞以后呢?一旦检测到碰撞,则站点立刻终止发送数据,这样的话,数据就没有帧尾部。数据就不完整,接收方收到数据以后就会发现数据部完整,就把他丢弃了。为了防止数据过短,在检测到碰撞时数据已经发送完,造成接收端收到错误的数据,所以,我们规定最短的帧长度为64字节(不满64的加入填充字节),即512bit。与争用期相同。所以我们就可以说凡是长度小于64字节的帧都是由于碰撞而异常中止的无效帧。

碰撞中断帧的发送后会涉及一个重传的问题,以太网的解决方法是,使用退避算法来决定帧的重传。

退避算法:从离散的整数集合【0,1,…,(2k-1)】中随机取出一个数,记为r,重传推后时间是r倍的争用期。  k=Min【重传次数,10】。重传次数超过10次就取10,超过16次就把帧丢掉并报告给高层(TCP层)。

例如:第一次重传,k=1,r就从(0,1)里面选,因此重传推迟时间就为0或者2τ。如果还碰撞,第二次重传,k=2,r就从(0,1,2,3)选。重传推迟时间就为(0,2τ,4τ,6τ)中的其中之一。

最后介绍下【强化碰撞】的概念。 发生碰撞以后,除了立即停止发送数据,发送端再发送32bit或者48bit的人为干扰信号。目的是让局域网中所有用户都知道发生了碰撞。

最后一点是,以太网规定了 帧间最小间隔为9.6μs。

CSMA/CD(载波侦听多路访问/冲突检测)是一种用于有线局域网数据链路层协议,主要用于以太网中,以确保在同一时间只有一个节点能够成功地发送数据,从而防止数据包的冲突。 工作原理可以分为几个关键步骤: 1. **监听信道**:在发送数据之前,每个设备都会监听网络信道是否空闲。如果信道空闲,则设备可以发送数据;如果信道忙,则设备需要等待直到信道变为空闲。 2. **发送数据**:一旦检测到信道空闲,设备就开始发送数据帧,并继续监听信道以检测是否有其他设备同时开始发送数据,这会导致数据帧的冲突。 3. **冲突检测**:在发送数据的过程中,设备会持续监听信道。如果检测到冲突(即两个或多个设备同时发送数据),则立即停止发送,并发送一个拥塞信号(jam signal),确保所有其他设备也意识到发生了冲突。 4. **随机退避**:冲突发生后,所有涉及冲突的设备都会使用一个随机退避算法来决定何时重新尝试发送数据。这个算法通常会根据冲突次数的增加而增加等待时间,以此来减少再次发生冲突的可能性。 5. **重传**:在随机退避时间结束后,设备再次尝试发送数据,重复上述过程直到数据成功发送或达到最大重传次数。 CSMA/CD协议的设计使得它非常适合用于有线网络,因为在有线网络中,信号的传播是相对稳定的,并且设备之间的干扰较少,可以较为准确地检测到冲突。然而,CSMA/CD并不适用于无线网络,因为无线网络中信号强度的变化较大,且存在隐蔽站问题,这使得冲突检测变得复杂且不可靠[^3]。 ### CSMA/CDCSMA/CA对比 - **应用场景**:CSMA/CD主要应用于有线局域网,而CSMA/CA则用于无线局域网。 - **冲突处理**:CSMA/CD通过检测冲突并在冲突发生后采取措施来处理冲突;CSMA/CA则试避免冲突的发生,而不是在冲突发生后处理它。 - **隐蔽站问题**:CSMA/CD无法解决无线网络中的隐蔽站问题,而CSMA/CA通过使用RTS(请求发送)和CTS(清除发送)机制来避免这个问题。 CSMA/CD协议是早期以太网技术的核心,随着全双工交换式以太网的普及,CSMA/CD的重要性有所下降,因为全双工通信允许同时发送和接收数据,无需检测冲突。但在半双工模式下,尤其是在较老的以太网标准中,CSMA/CD仍然是确保数据可靠传输的关键机制。 ```python # 以下是一个简化的CSMA/CD冲突处理模拟代码示例 import random def csma_cd(channel_free, collision_occurred): if channel_free: print("Channel is free. Starting to send data.") # Simulate sending data if collision_occurred: print("Collision detected. Sending jam signal.") # Random backoff before retransmission backoff_time = random.randint(1, 10) print(f"Waiting for {backoff_time} units before retransmission.") return backoff_time else: print("Data sent successfully.") return 0 else: print("Channel is busy. Waiting for the channel to become free.") return 0 # Simulate a scenario where the channel is free and no collision occurs csma_cd(channel_free=True, collision_occurred=False) # Simulate a scenario where the channel is free but a collision occurs csma_cd(channel_free=True, collision_occurred=True) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值