【链路层】局域网广播通信、CSMA/CD 协议及 MAC 帧

目录

1、局域网的特点和网络适配器(网卡)

2、CSMA/CD 协议

3、以太网的帧结构:MAC帧


        广播信道可以进行一对多的通信,局域网通信使用的就是广播信道

1、局域网的特点和网络适配器(网卡)

        局域网的一些特点:

        局域网最主要的特点是:网络为一个单位所拥有,且地理范围和站点数目均有限。

        局域网具有如下的一些优点:

  1. 具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
  2. 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。

        局域网的拓扑结构:

        局域网的网络拓扑结构一般有星形网、环形网,总线网等几种结构:

【链路层】局域网广播通信、CSMA/CD 协议及 MAC 帧_第1张图片

        图中总线网的匹配电阻用于吸收在总线上传播的电磁波信号的能量,避免在总线上产生有害的电磁波反射。

        局域网共享信道划分:

        为了能使众多用户能够合理而方便地共享通信媒体资源,还需要考虑如何对共享信道进行划分,一般有两种划分方式:

        (1)静态划分信道:如频分复用、时分复用、波分复用和码分复用等。用户只要分配到了信道就不会和其他用户发生冲突。但这种划分信道的方法代价较高,不适合于局域网使用

        (2)动态媒体接入控制:又称为多点接入(multiple access),其特点是信道并非在用户通信时固定分配给用户。这里又分为以下两类:

        随机接入:特点是所有的用户可随机地发送信息。但如果恰巧有两个或更多的用户在同一时刻发送信息,那么在共享媒体上就要产生碰撞,使得这些用户的发送都失败。因此,必须有解决碰撞的网络协议。//CSMA/CD 协议

        受控接入:特点是用户不能随机地发送信息,而必须服从一定的控制,局域网中使用得较少。

        那么,我们的计算机是怎样连接到局域网上的呢?

        计算机与外界局域网的连接是通过适配器(adapter)。适配器是在主机箱内插入的一块网络接口板。这种接口板又称为网络接口卡 NIC(Network Interface Card)或简称为“网卡”//这里说的适配器就是网卡

        在这种通信适配器上面装有处理器和存储器 (包括 RAM 和 ROM)。适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的,而适配器和计算机之间的通信则是通过计算机主板上的 I/O 总线以并行传输方式进行的。因此,适配器的一个重要功能就是要进行数据串行传输和并行传输的转换//使用网线入网

        由于网络上的数据率和计算机总线上的数据率并不相同,因此在适配器中必须装有对数据进行缓存的存储芯片。在主板上插入适配器时,还必须把管理该适配器的设备驱动程序安装在计算机的操作系统中。这个驱动程序以后就会告诉适配器,应当从存储器的什么位置上把多长的数据块发送到局域网,或者应当在存储器的什么位置上把局域网传送过来的数据块存储下来。此外,适配器还要能够实现以太网协议。//适配器还需要提供数据缓存和以太网协议实现

        请注意,适配器所实现的功能包含了数据链路层及物理层这两个层次的功能

        适配器在接收和发送各种帧时,不使用计算机的 CPU。这时计算机中的 CPU 可以处理其他任务。当适配器收到有差错的帧时,就把这个帧直接丢弃而不必通知计算机。当适配器收到正确的帧时,它就使用中断来通知该计算机,并交付协议栈中的网络层。当计算机要发送 IP 数据报时,就由协议栈把 IP 数据报向下交给适配器,组装成后发送到局域网。//适配器的工作原理

【链路层】局域网广播通信、CSMA/CD 协议及 MAC 帧_第2张图片

        此外,计算机的硬件地址 MAC 地址通常存储在适配器的 ROM 中,而计算机的软件地址 IP 地址,则在计算机的存储器中。//ROM 只读存储器(Read-Only Memory)的简称

2、CSMA/CD 协议

        总线和广播通信:

        总线的特点是:当一台计算机发送数据时,总线上的所有计算机都能检测到这个数据,这就是局域网的广播通信方式。

        如何在总线上实现一对一的通信?

        为了在总线上实现一对一的通信,可以使每一台计算机的适配器都拥有一个与其他适配器都不同的地址。在发送数据帧时,在帧的首部写明接收站的地址。仅当数据帧中的目的地址与适配器 ROM 中存放的硬件地址一致时,该适配器才能接收这个数据帧,适配器对不是发送给自己的数据帧就丢弃。这样,具有广播特性的总线上就实现了一对一的通信。

        那,为什么需要 CSMA/CD 协议?

        我们知道,总线上只要有一台计算机在发送数据,总线的传输资源就被占用。因此,在同一时间只能允许一台计算机发送数据,否则各计算机之间就会互相干扰,使得所发送数据被破坏。//前提是在总线型网络

        这好比有一屋子的人在开讨论会,没有会议主持人控制发言。想发言的随时可发言,不需要举手示意。但我们还必须有个协议来协调大家的发言。这就是:如果你听见有人在发言,那么你就必须等别人讲完了才能发言。但有时碰巧两个或更多的人同时发言了,那么一旦发现冲突,大家都必须立即停止发言,等听到没有人发言了你再发言。//虽然没有主持人,但是要遵守发言规则

        以太网采用的协调方法和上面的办法非常像,这个协调方法就是 CSMA/CD 协议,意思是载波监听多点接入/碰撞检测(Carrier Sense Multiple Access with Collision Detection)

        CSMA/CD 协议要点:

        多点接入:就是说明这是总线型网络,许多计算机以多点接入的方式连接在一根总线上。协议的实质是“载波监听”和“碰撞检测”。//CSMA/CD 协议只在总线型网络中使用

        载波监听:就是边发送边监听。载波监听就是不管在想要发送数据之前,还是在发送数据之中,每个站都必须不停地检测信道。在发送前检测信道,是为了避免冲突。如果检测出已经有其他站在发送,则本站就暂时不要发送数据。在发送中检测信道,是为了及时发现如果有其他站也在发送,就立即中断本站的发送。这就称为碰撞检测。

        碰撞检测:指适配器边发送数据边检测信道上的信号电压的变化情况。当两个或几个站同时在总线上发送数据时,总线上的信号电压变化幅度将会增大(互相叠加)。这时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。因此,任何一个正在发送数据的站,一旦发现总线上出现了碰撞,其适配器就要立即停止发送,免得继续进行无效的发送,白白浪费网络资源,然后等待一段随机时间后再次发送。

        CSMA/CD 协议的工作流程如下图所示:

【链路层】局域网广播通信、CSMA/CD 协议及 MAC 帧_第3张图片

        需要注意的是,在使用 CSMA/CD 协议时,一个站不可能同时进行发送和接收(但必须边发送边监听信道)。因此使用 CSMA/CD 协议的以太网不可能进行全双工通信而只能进行半双工通信

        注意:总线以太网使用 CSMA/CD 协议,以半双工方式工作。但以太网交换机不使用共享总线,没有碰撞问题,因此不使用 CSMA/CD 协议,而是以全双工方式工作

        既然连以太网的重要协议 CSMA/CD 都不使用了,为什么还叫作以太网呢?原因就是它的帧结构未改变,仍然采用以太网的帧结构。

3、以太网的帧结构:MAC帧

        在局域网中,硬件地址又称为物理地址MAC 地址(因为这种地址用在 MAC 帧中)。

        下图为 MAC 地址:

【链路层】局域网广播通信、CSMA/CD 协议及 MAC 帧_第4张图片

        MAC 地址字段长度为 6 字节(48位),是固化在适配器的 ROM 中的地址。如果连接在局域网上的主机或路由器安装有多个适配器,那么这样的主机或路由器就有多个地址。实际上,MAC 地址就是一个适配器(网卡)的唯一标识符,全世界所有的局域网适配器都具有不相同的地址

        MAC 帧的格式:

        常用的以太网 MAC 帧格式有两种标准,一种是 DIX Ethermet V2 标准(即以太网 V2 标准),另一种是 IEEE 的 802.3 标准,此处介绍使用得最多的以太网 V2 的 MAC 帧格式。

        下图为以太网 V2 标准的 MAC 帧格式:

【链路层】局域网广播通信、CSMA/CD 协议及 MAC 帧_第5张图片

        以太网 V2 的 MAC 帧较为简单,由五个字段组成。

        前两个字段分别为 6 字节长的目的地址源地址字段。目的地址字段存储的是帧要发送到的设备的 MAC 地址,源地址字段存储的是发送该帧的设备的 MAC 地址。

        第三个字段是 2 字节的类型字段,用来标志上一层使用的是什么协议,以便把收到的 MAC 的数据上交给上一层的这个协议,比如标记上层协议为 IP 协议时,类型字段的值是 OX0800。

        第四个字段是数据字段,其长度在 46 到 1500 字节之间,46 字节是这样得出的:最小长度 64 字节减去 18 字节的首部和尾部就得出数据字段的最小长度。

        最后一个字段是 4 字节的检验序列 FCS(使用 CRC 检验)。

        上边我们说了,数据字段长度在 46 到 1500 字节之间,那当数据字段的长度小于 46 字节时怎么办呢?

        当数据字段的长度小于 46 字节时,MAC 子层就会在数据字段的后面加入一个整数字节的填充字段,以保证以太网的 MAC 长不小于 64 字节。

        那么 IP 层又是怎样知道得到的数据字段中有没有填字段的呢?

        大家知道,IP 协议的首部有一个“总长度”字段。如果 IP 数据报的“总长度”超过或等于 46 字节,那么肯定就没有填充字段。反之,如果“总长度”小于 46 字节,那么就很容易把填充字段计算出。例如,若 IP 数据报的总长度为 42 字节,填充字段就应当是 4 字节。当 MAC 帧把 46 字节的数据上交给 IP 层后,IP 层就把其中最后 4 字节的填充字段丢弃。

        在上图中,为什么传输媒体上实际传送的要比 MAC 帧还多 8 个字节?

        这是因为当一个站在刚开始接收 MAC 时,由于适配器的时钟尚未与到达的比特流达成同步,因此 MAC 帧的最前面的若于位就无法接收,结果使整个的 MAC 成为无用的帧。

        为了接收端迅速实现位同步,从 MAC 子层向下传到物理层时还要在的前面插入 8 个字节(由硬件生成),它由两个字段构成。

        第一个字段是 7个字节的前同步码(1 和 0 交替码),它的作用是使接收端的适配器在接收 MAC 时能够迅速调整其时钟频率,使它和发送端的时钟同步,也就是“实现位同步”(位同步就是比特同步的意思)。

        第二个字段是帧开始定界符,定义为 10101011。它的前六位的作用和前同步码一样,最后的两个连续的 1 就是告诉接收端适配器 “MAC 帧的信息马上就要来了,请适配器注意接收”。顺便指出,MAC 的 FCS 字段的检验范围不包括前同步码和帧开始定界符

        注意:在以太网上传送数据时是以帧为单位传送的。以太网在传送帧时,各帧之间还必须有一定的间隙。因此,接收端只要找到帧开始定界符,其后面的连续到达的比特流就都属于同一个 MAC 帧。可见以太网不需要使用结束定界符,也不需要使用字节插入来保证透明传输//实际情况与理论总会存在一定差异

        至此,全文结束。

你可能感兴趣的:(计算机网络原理,局域网,MAC地址,MAC帧,CSMA/CD,协议,网卡)