局域网(以太网)的数据链路层

由于局域网与数据链路层的关系颇多,所以《计算机网络》一书中把局域网放到了数据链路层来讲,但这并不代表局域网只与这一层相关。
局域网的数据链路层被拆分为2个子层,即逻辑链路控制LLC子层和媒体接入控制MAC子层。互联网的发展,使得以太网取代了局域网这一代词,经常使用的局域网是DIX EthernetV2标准的局域网,所以由IEE制定的LLC层已经消失,很多厂商生产的适配器就没有LLC协议。
计算机与局域网的连接是通过适配器实现。适配器本来是在主机箱内插入的一块网络接口板(或者是在笔记本电脑中插入一块PCMCIA卡——个人计算机存储器卡接口适配器),接口板又称为网络接口卡NIC或简称为网卡。由于现在计算机主板中都已经嵌入了这种适配器,不再使用单独的网卡了,所以称适配器。适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的,而适配器和计算机之间的通信则是通过计算机主板的I/O总线以并行传输方式进行的。因此适配器的主要功能就是进行数据串行传输和并行传输方式的转换。
由于网络上的数据率和计算机总线上的数据率不相同,因此适配器必须要装有暂时存储数据的存储芯片,在主板上插入适配器时,还必须把管理该适配器的驱动程序安装到操作系统中,这个驱动程序以后就会告诉适配器,需要从哪个位置把多长的数据块发送到局域网中,适配器要能够实现以太网协议。
适配器在接收和发送各种帧时,不适用计算机的CPU,当适配器收到有差错的帧时,就把这个帧丢弃而不告诉计算机,当适配器收到正确的帧时,它就使用中断来告诉计算机,并交付协议栈中的网络层。计算机的硬件地址存储在适配器的ROM中,而IP地址则在计算机的存储器中。
如何实现以太网总线上的一对一通信?
方法是使每一台适配器拥有一个与其他适配器都不同的地址,在发送数据帧时,在帧的首部写明接收站的地址,仅当数据帧中的目的地址与适配器ROM存放的硬件地址一致时,该适配器才能接收这个数据帧,否则丢弃。
由于总线上同一时间只允许一台计算机发送数据,而以太网协议采用的是随机接入,解决两个计算机发送数据的冲突问题由CSMA/CD协议(载波监听多点接入/碰撞检测)解决。
在使用CSMA/CD协议时,一个站不可能同时进行发送和接收。因此使用CSMA/CD协议的以太网不可能进行全双工通信而只能进行双向交互通信(半双工通信)。
以太网不能保证某一时间之内一定能够把自己的数据帧成功地发送出去(因为存在碰撞的可能),以太网的这一特点被称为发送的不确定性。如果希望在以太网上发生碰撞的机会很小,必须使整个以太网的平均通信量远小于以太网的最高数据率。
最先发送数据帧的A站,在发送数据帧之后至多经过2t就可以 知道所发送的数据帧是否发生了碰撞,以太网的端到端的往返时间称为争用期,又称为碰撞窗口
截断二进制指数退避算法确定重传时机
这种算法让碰撞的站在停止发送数据帧后,不是等待信道变为空闲后就立即再发送数据,而是推迟(这叫做退避)一个随机的时间。
(1)协议规定了基本退避时间为争用期2t,具体的争用期是51.2us,对于10Mbit/s以太网,在争用期内可发送512bit,即64字节。
(2)从离散的整数集合[0,1,...,(2^k-1)]中随机取出一个数,记为r,重传应推后的时间是r倍的争用期。上面的参数k按下面的公式计算
k=Min[重传次数,10]
(3)当重传次数达16次仍不能成功时,则丢弃该帧,并向高层报告。
**还应注意,**适配器每发送一个新的帧,就要执行一次CSMA/CD算法。适配器对过去发生过的碰撞并无记忆功能。因此,当好几个适配器正在执行指数退避算法时,很可能有某一个适配器发送的新帧能够碰巧立即成功的插入到信道中,得到了发送权,而已经推迟好几次发送的站,有可能很不巧,还要继续执行退避算法,继续等待。
CSMA/CD协议要点:
(1)准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中,但在发送之前,必须检测信道
(2)检测信道:若检测到信道忙,则应不停地检测,一直等待信道转为空闲,若检测到信道空闲,并在96比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧
(3)在发送过程中不停地检测信道,即网络适配器要边发送边监听。
1.发送成功:在争用期内一直未检测到碰撞,这个帧一定能够发送成功,发送完后什么也不做,回到(1)
2.发送失败:在争用期内检测到碰撞,这时立即停止发送数据,并按规定发送人为干扰信号。适配器接着就执行指数退避算法,等待r倍512比特时间后,返回到(2),继续检测信道,若重传达16次仍不能成功,则停止重传而向上报错

你可能感兴趣的:(计网,网络)