广播信道可以一对多通
局域网的数据链路层
局域网的特点:网络为一个单位所拥有,且地理范围和站点数目均有限。
如何使局域网上的众多主机能够合理而方便的共享通信媒体资源?在技术上有两种方法:
? 静态划分信道:在物理层进行频分复用、时分复用、码分复用,这种方法代价较高,不适合局域网使用。
? 动态媒体接入控制,又称为多点接入,信道并非在用户通信时固定分配。这种方法又分为两类
? 随机接入:所有连接在局域网上的用户可以随机的发送信息,但是如果有两个用户在同时发送信息,那么就会产生碰撞,因此必须要有解决碰撞的协议
? 受控接入:用户不能随机发送信息,必须服从一定的控制,这种方法使用的较少
严格的说以太网是符合DIXEthernet U2标准的局域网
IEEE 802 委员会把局域网的数据链路层拆分为两个子层:
? 逻辑链路控制层:LLC 这一层的 作用在现在已经消失了
? 媒体接入控制层:MAC
适配器
计算机与外界局域网的连接是通过通信适配器来完成的,适配器上装有处理器和存储器(RAM/ROM)。适配器中的存储芯片必须对数据进行缓存,因为网络上的数据率与计算机总线上的数据率并不相同,同时计算机的操作系统中必须安装适配器的驱动程序,驱动程序的作用是使告诉适配器应该从存储器的什么。位置把多长的数据发送到局域网,或者应该在存储器的什么位置上把局域网传送过来的数据块存储下来。
适配器要实现以太网协议,适配器包含了数据链路层和物理层的功能,计算机的MAC地址在适配器的ROM中,IP地址在计算机的存储器中,适配器在发送和接受各种帧的时候,并不使用计算机的CPU,当适配器收到正确的帧时,它就使用中断来通知计算机并交付协议栈中的网络层,当计算机要发送IP数据报时,就由协议栈把IP数据报交付给适配器,组装成帧后发送到局域网中。
CSMA/CD 协议
如何在具有广播特性的总线上实现一对一通信?
使每一台计算机的适配器都拥有一个与其他适配器不同的地址,也就是MAC地址。在发送数据时,在帧的首部写明接收站的地址,广播中的其他站点收到这个帧时,检查目的地址是否与自己的MAC地址一致,如果一致则接收该帧,如不一致,就不接收该帧。
如何实现通信的便捷?
? 以太网提供的服务是尽最大努力的交付,是不可靠的,在同一时间只允许一台计算机发送数据
? 以太网发送的数据都使用曼彻斯特编码,方便接收端提取信号。
协议的要点
? 多点接入,许多计算机以多点接入的方式连接在一根总线上。
? 载波监听,在发送数据之前(为了获得发送权)、发送中都要对信道不停的检测,看信道上是否还有其他计算机在发送数据。
? 碰撞检测,适配器边发送数据边检测信道上的电压的变化情况,如果电压的幅度变化超过一定的门限值,信道上就产生了碰撞,一旦产生碰撞,适配器要立即停止发送数据。
数据在发送之后仍存在产生碰撞的可能?
既然在发送数据之前,已经检测了信道上没有计算机在发送数据,即信道为“空闲”状态,为什么会会产生碰撞?由于电磁波的传播速度是有限的,所以存在这种可能性,即两个主机同时检测到信道为空,都想发送数据,此时就会产生发生碰撞的可能性。
电磁波在1km的电缆上的传播时延约为5us,
经过分析,一个站点最多经过两倍的端到端的传播时延就会知道有没有发生碰撞,每个站点在自己发生数据的一小段时间内,存在遭遇碰撞的可能性。两倍的τ(tao)
注意:使用CSMA/CD协议时,站点只能进行半双工通信,同时要边发送数据边检测信道上是否发生碰撞
在发生碰撞之后如何确定重传的时机?
以太网使用截断二进制指数退避算法来确定重传的时机,算法的描述如下:
? 基本的退避时间为:2τ,具体为51.2us,对于10mb/s的以太网,在51.2us的时间内,可以发送512kbit的数据,即64字节,
? 从集合[1,2,...,(2的k次方 -1) ]中随机选取一个整数,记为 r ,重传后应退后的时间就是为 r 倍的争用期,
k = min[重传次数,10]
若 k >= 16,则丢弃该帧,以太网的最短帧长是64个字节,发送时间为51.2us,
如果以太网在争用期的时间内没有发生碰撞,那么 后续发送的数据都不会发生碰撞,一旦发生碰撞,就必然是子在发送的前64字节之内,由于检测到冲突,即立即停止发送数据,那么接收端凡是接收到小于64字节的帧,都是无效帧,应该丢弃该帧。
强化碰撞
当发送数据的站点一旦发生了碰撞,除了立即停止发送数据外,还要继续发送,32bit或者48bit的人为干扰信号,以便让所有用户都知道发生了碰撞,以太网还规定了帧间最小间隔为9.6us,相当于96bit的时间,这样做的目的是为了使刚刚接收到数据帧的 站点的接收缓存来得及清理,做好接收下一帧的准备。
原文地址:https://www.cnblogs.com/yusiming/p/9748308.html