目录
一、最早的以太网——总线网
二、以太网采取的 2 种重要措施
三、CSMA/CD协议的要点
1.最早的以太网:将许多计算机都连接到一根总线上。
2.总线特点:易于实现广播通信,简单,可靠。
3.为了实现一对一通信,将接收站的硬件地址写入帧首部中的目的地址字段中。仅当数据帧中的目的地址与适配器硬件地址一致时,才能接收这个数据帧。
4.总线缺点:多个站点同时发送时,会产生发送碰撞或冲突,导致发送失败。
为了通信的简便,以太网采取了以下两种措施:
1. 采用较为灵活的无连接的工作方式。
(1)不必先建立连接就可以直接发送数据。
(2)对发送的数据帧不进行编号,也不要求对方发回确认。
注:这样做可以使以太网工作起来非常简单,而局域网信道的质量很好,因通信质量不好产生差错的概率是很小的。因此,以太网提供的服务是尽最大努力的交付,即不可靠的交付。
2.当目的站收到有差错的数据帧时(例如:用CRC查出有差错),就把帧丢弃,其他什么也不做。对有差错帧是否需要重传则由高层来决定。例如,如果高层使用TCP协议,那么TCP就会发现丢失了一些数据。于是经过一定的时间后,TCP就把这些数据重新传递给以太网进行重传。但以太网并不知道这是重传帧,而是当做新的数据帧来发送。
3.同一时间只能允许一台计算机发送数据。以太网采用最简单的随机接入来协调总线上各计算机的工作,但有很好的协议用来减少冲突发生的概率,以太网使用的协议是CSMA/CD。
2.发送的数据都使用曼彻斯特 (Manchester) 编码。
曼彻斯特编码缺点:所占的频带宽度比原始的基带信号增加了一倍。
1、多点接入:说明这是总线型网络。许多计算机以多点接入的方式连接在一根总线上。协议的实质是“载波监听”和“碰撞检测”。
2、载波监听:即“边发送边监听”。不管在想要发送数据之前,还是在发送数据之中,每个站都必须不停地检测信道。在发送前检测信道,是为了避免冲突。如果检测出已经有其他站在发送,则本站就暂时不要发送数据。在发送中检测信道,是为了及时发现如果有其他站也在发送,就立即中断本站的发送。这就称为碰撞检测。
3、碰撞检测(冲突检测):适配器边发送数据,边检测信道上的信号电压的变化情况。电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞(或冲突)。
注:在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。因此,任何一个正在发送数据的站,一旦发现总线上出现了碰撞,其适配器就要立即停止发送。 等待一段随机时间后再次发送。
CSMA/CD 协议工作流程
(1)为什么要进行碰撞检测?
因为信号传播时延对载波监听产生了影响,设图中的局域网两端的站A和B相距1km,用同轴电缆相连。电磁波在1km电缆的传播时延约为。因此,A向B发出的数据,在约后才能传到B。换言之,B若在A发送的数据到达B之前发送自己的帧(因为这时B的载波监听检测不到A所发送的信息),则必然要在某个时间和A发送的帧发生碰撞。碰撞的结果是两个帧都变得无用。
(2)在使用CSMA/CD协议时,一个站不可能同时进行发送和接收(但必须边发送边监听信道)。因此使用CSMA/CD协议的以太网不可能进行全双工通信而只能进行双向交替通信(半双工通信)。
(3)发送的不确定性
每一个站在自己发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。这一小段时间是不确定的,它取决于另一个发送数据的站到本站的距离。因此,以太网不能保证在检测到信道空闲后的某一时间内,一定能够把自己的数据帧成功的发送出去(因为存在产生碰撞的可能)。
:总线上的单程端到端传播时延
如图,A 至多需要单程传播时延的 2 倍的时间(2),才能检测到与 B 的发送产生了冲突。
(4)争用期:以太网的端到端往返时延 2 称为争用期,或碰撞窗口。 具体的争用期时间 = 51.2 μs。经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
(5)碰撞后重传的时机
以太网采用截断二进制指数退避 (truncated binary exponential backoff) 算法确定碰撞后重传的时机。 这种算法让发生碰撞的站停止发送数据后,要退避一个随机时间后再发送数据。
为了尽可能减少重传时再次发生冲突的概率,退避算法有如下具体的规定:
1、基本退避时间 = 2, 具体的争用期时间 = 51.2 μs。
2、从整数集合 [0, 1, … , ( - 1)] 中随机地取出一个数,记为 r。重传所需的时延 = r ⅹ 基本退避时间。 参数 k = Min[重传次数, 10],可见当重传次数不超过10时,参数k等于重传次数;但当重传次数超过10时,k就不再增大而一直等于10。
3、当重传达 16 次仍不能成功时(这表明同时打算发送数据的站太多,以致连续发生冲突),则丢弃该帧,并向高层报告。
举例:
第 1 次冲突重传时: k = 1,r 为 {0,1} 集合中的任何一个数。
第 2 次冲突重传时: k = 2,r 为 {0,1,2,3} 集合中的任何一个数。
第 3 次冲突重传时: k = 3,r 为 {0,1,2,3,4,5,6,7} 集合中的任何一个数。
若连续多次发生冲突,表明可能有较多的站参与争用信道。上述退避算法可使重传需要推迟的平均时间随重传次数而增大(称为动态退避),因而减小发生碰撞的概率,有利于整个系统的稳定。
(6)10 Mbit/s 以太网争用期的长度
争用期的长度 = 51.2 μs 。对于10Mbit/s以太网,在争用期内可发送512比特,即64字节。也可以说争用期是512比特时间。1比特时间就是发送1比特所需的时间。
这意味着: 以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突。 以太网规定了最短有效帧长为 64 字节。凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧,应当立即将其丢弃。
(7)以太网的最大端到端长度
信号在以太网上传播1km大约需要5μs 。以太网最大端到端单程时延必须小于争用期的一半 (即 25.6 μs),相当于以太网的最大端到端长度约为 5 km。
(8)强化碰撞:人为干扰信号
发送站检测到冲突后,立即停止发送数据帧,接着就发送 32 或 48 比特的人为干扰信号 (jamming signal) ,以便让所有用户都知道发生了碰撞。 以太网还规定了帧间最小间隔为 9.6 μs。
如上图所示,A站从发送数据开始到发现碰撞并停止发送的时间间隔是。A站得知碰撞已经发生时所发送的强化碰撞的干扰信号的持续时间是。图中的B站在得知发生碰撞后,也要发送人为干扰信号,但为简单起见,图中并未画出。发生碰撞使A浪费时间。可是整个信道被占用的时间还要增加一个单程端到端的传播时延。因此总线被占用的时间是。 以太网规定了帧间最小间隔为 9.6 μs。这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。
(9)CSMA/CD 协议的要点归纳