数据链路层——使用广播信道

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

局域网的数据链路层

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

局域网优点

局域网具有如下主要优点:

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

局域网分类

局域网可按网络拓扑进行分类。

共享信道

共享信道带来的问题:

共享信道要着重考虑的一个问题就是如何使众多用户能够合理而方便的共享通信媒体资源。这在技术上有两种方法:

  • 静态划分信道:频分复用、时分复用、波分复用、码分复用
  • 动态媒体接入控制(多点接入):随机接入、受控接入,如多点线路探询,或轮询。

以太网的两个标准

DIX Ethernet V2 是世界上第一个局域网产品(以太网)的规约。IEEE 802.3 是第一个 IEEE 的以太网标准。数据率为10MBit/s

DIX Ethernet V2 标准与 IEEE 的 802.3 标准只有很小的差别,因此可以将 802.3 局域网简称为“以太网”。严格说来,“以太网”应当是指符合 DIX Ethernet V2 标准的局域网 。

为了使数据链路层能更好地适应多种局域网标准,将局域网的数据链路层拆成两个子层:

  • 逻辑链路控制 LLC(Logical Link Control)子层;
  • 媒体接入控制 MAC(Medium Access Control)子层。

与接入到传输媒体有关的内容都放在 MAC 子层,而 LLC 子层则与传输媒体无关。

不管采用何种媒体和 MAC 子层的局域网,对 LLC 子层来说都是透明的。

由于 TCP/IP 体系经常使用的局域网是 DIX Ethernet V2 而不是 802.3 标准中的几种局域网,因此现在 802 委员会制定的逻辑链路控制子层 LLC(即 802.2 标准)的作用已经不大了。

很多厂商生产的适配器上就仅装有 MAC 协议而没有 LLC 协议。

适配器的作用

网络接口板又称为通信适配器(adapter)或网络接口卡 NIC(Network Interface Card),或“网卡”。计算机与外界局域网的连接是通过通信适配器进行的。

适配器的重要功能:

  • 进行串行/并行转换。适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的,而适配器和计算机之间的通信是通过计算机主板上的 I/O 总线以并行传输方式进行的。
  • 对数据进行缓存。网络上的数据率和计算机总线上的数据率并不相同。
  • 在计算机的操作系统安装设备驱动程序。这个驱动程序以后会告诉适配器应当从存储器的什么位置上把多长的数据块发送到局域网上,或者应当在存储器的什么位置上把局域网传送过来的数据块存储下来。
  • 实现以太网协议。

适配器在接收和发送各种帧时,不适用计算机的 CPU。

当适配器收到有差错的帧时,就把这个帧直接丢弃而不通知计算机。当适配器收到正确的帧时,他就使用过中断来通知计算机,并交付协议栈中的网络层。当计算机要发送 IP 数据报时, 就由协议栈把 IP 数据报向下交给适配器,组装成帧后发送到局域网。

通信适配器上面装有处理器和存储器(包括 ROM 和 RAM)。计算机的硬件地址就在适配器的 ROM 中,计算机的 IP 地址在计算机的存储器中。

CSMA/CD 协议

最初的以太网是将许多计算机都连接到一根总线上。易于实现广播通信。当初认为这样的连接方法既简单又可靠,因为总线上没有有源器件。

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

但我们并不总是要在局域网上进行一对多的广播通信。为了在总线上实现一对一通信,将接收站的硬件地址写入帧首部中的目的地址字段中。仅当数据帧中的目的地址与适配器的硬件地址一致时,才能接收这个数据帧。

总线也有缺点。若多台计算机或多个站点同时发送时,会产生发送碰撞或冲突,导致发送失败。

以太网采取的两种重要的措施

为了通信的简便,以太网采取了两种重要的措施:

  1. 采用较为灵活的无连接的工作方式

不必先建立连接就可以直接发送数据。

适配器对发送的数据帧不进行编号,也不要求对方发回确认。

这样做的理由是局域网信道的质量很好,因信道质量产生差错的概率是很小的。

以太网提供的服务是不可靠的交付,即尽最大努力的交付。

当目的站收到有差错的数据帧时就丢弃此帧,其他什么也不做。差错的纠正由高层来决定。

如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新的数据帧来发送。

  1. 以太网发送的数据都使用曼彻斯特编码

曼彻斯特编码缺点是:它所占的频带宽度比原始的基带信号增加了一倍。

CSMA/CD协议要点

总线上只要有一台计算机在发送数据,总线的传输资源就会被占用。因此,在同一时间只能允许一台计算机发送数据,否则各计算机之间就会互相干扰,使得所发送数据被破坏。因此,如何协调总线上各计算机的工作就是以太网要解决的重要问题。

以太网采用最简单的随机接入,但有很好的协议来减少冲突发生的概率。它使用的协议是载波监听多点接入/碰撞检测(CSMA/CD,Carrier Sense Multiple Access with Collision Detection)。

“多点接入”表示许多计算机以多点接入的方式连接在一根总线上。

“载波监听”是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。

总线上并没有什么“载波”。因此, “载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号。

“碰撞检测”就是计算机边发送数据边检测信道上的信号电压大小。当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。

所谓“碰撞”就是发生了冲突。因此“碰撞检测”也称为“冲突检测”。

在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。

每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。

CSMA/CD 协议工作流程

为什么要进行碰撞检测? 因为信号传播时延对载波监听产生了影响。

A 需要单程传播时延的 2 倍的时间,才能检测到与 B 的发送产生了冲突。

最先发送数据帧的站,在发送数据帧后至多经过时间 2τ(两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞。

以太网的端到端往返时延 2τ 称为争用期,或碰撞窗口。

经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。

CSMA/CD 协议的重要特性

使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)。
每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。
这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。

CSMA/CD 协议的要点

使用集线器的星形拓扑

传统以太网最初是使用粗同轴电缆,后来演进到使用比较便宜的细同轴电缆,最后发展为使用更便宜和更灵活的双绞线。

采用双绞线的以太网采用星形拓扑,在星形的中心则增加了一种可靠性非常高的设备,叫做集线器(hub)。

1990 年,IEEE 制定出星形以太网 10BASE-T 的标准 802.3i。

星形以太网 10BASE-T 使用无屏蔽双绞线,采用星形拓扑。每个站需要用两对双绞线,分别用于发送和接收。双绞线的两端使用 RJ-45 插头。集线器使用了大规模集成电路芯片,因此集线器的可靠性提高。10BASE-T 的通信距离稍短,每个站到集线器的距离不超过 100m。

这种10 Mbit/s速率的无屏蔽双绞线星形网的出现,既降低了成本,又提高了可靠性。 具有很高的性价比。

10BASE-T 双绞线以太网的出现,是局域网发展史上的一个非常重要的里程碑,它为以太网在局域网中的统治地位奠定了牢固的基础。

从此以太网的拓扑就从总线形变为更加方便的星形网络,而以太网也就在局域网中占据了统治地位。

集线器的一些特点

集线器是使用电子器件来模拟实际电缆线的工作,因此整个系统仍然像一个传统的以太网那样运行。

使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是 CSMA/CD 协议,并共享逻辑上的总线。

集线器很像一个多接口的转发器,工作在物理层。

集线器采用了专门的芯片,进行自适应串音回波抵消,减少了近端串音。

具有三个接口的集线器

以太网的 MAC 层

MAC 层的硬件地址

在局域网中,硬件地址又称为物理地址,或 MAC 地址。

如果连接在局域网上的主机或路由器安装有多个适配器,那么这样的主机或路由器就有多个“地址”。更准确些说,这种 48 位“地址”应当是某个接口的标识符。

IEEE 的注册管理机构 RA 负责向厂家分配地址字段 6 个字节中的前三个字节 (即高位 24 位),称为组织唯一标识符。

地址字段 6 个字节中的后三个字节 (即低位 24 位) 由厂家自行指派,称为扩展唯一标识符,必须保证生产出的适配器没有重复地址。

一个地址块可以生成 224 个不同的地址。这种 48 位地址称为 MAC-48,它的通用名称是 EUI-48。

生产适配器时,6 字节的 MAC 地址已被固化在适配器的 ROM,因此,MAC 地址也叫做硬件地址或物理地址。

“MAC 地址”实际上就是适配器地址或适配器标识符 EUI-48。

单站地址,组地址,广播地址

IEEE 规定地址字段的第一字节的最低位为I/G位。I/G表示Individual / Group

  • I/G= 0时,地址字段表示一个单站地址。
  • I/G= 1时,表示组地址,用来进行多播(以前曾译为组播)。此时,IEEE 只分配地址字段前三个字节中的 23 位。
  • I/G位分别为 0 和 1 时,一个地址块可分别生成 223 个单个站地址和 223 个组地址。
  • 所有 48 位都为 1 时,为广播地址。只能作为目的地址使用。

IEEE 把地址字段第一字节的最低第 2 位规定为G/L位,表示Global / Local

  • G/L= 0时,是全球管理(保证在全球没有相同的地址),厂商向 IEEE 购买的 OUI 都属于全球管理。
  • G/L= 1时,是本地管理,这时用户可任意分配网络上的地址。

当路由器通过适配器连接到局域网时,适配器上的硬件地址就用来标志路由器的某个接口。路由器如果同时连接到两个网络上,那么它就需要两个适配器和两个硬件地址。

适配器从网络上每收到一个 MAC 帧就首先用硬件检查 MAC 帧中的 MAC 地址。如果是发往本站的帧则收下,然后再进行其他的处理。否则就将此帧丢弃,不再进行其他的处理。

“发往本站的帧”包括以下三种帧:

  • 单播(unicast)帧(一对一),即收到的帧的 MAC 地址与本站的硬件地址相同。
  • 广播(broadcast)帧(一对全体),即发送给局域网上所有站点的帧(全1的地址)。
  • 多播(multicast)帧(一对多),即发送给本局域网上一部分站点的帧。

所有的适配器都至少能够识别前两种帧,即能够识别单播地址和广播地址。有的适配器可用编程方法识别多播地址。只有目的地址才能使用广播地址和多播地址。

以混杂方式(promiscuous mode)工作的以太网适配器只要“听到”有帧在以太网上传输就都接收下来。

混杂方式有时非常有用。例如网络维护和管理人员需要用这种方式来监听分析以太网上的流量。有一种网络工具叫嗅探器,就使用了设置为混杂方式的网络适配器。

MAC 帧的格式

以太网 MAC 帧格式有两种标准:DIX Ethernet V2 标准、IEEE 的 802.3 标准。最常用的 MAC 帧是以太网 V2 的格式。

类型字段用来标志上一层使用的是什么协议,以便把收到的 MAC 帧的数据上交给上一层的这个协议。

数据字段长度在46~1500字节。最小长度 64 字节 - 18 字节的首部和尾部 = 数据字段的最小长度(46字节)。

当传输媒体的误码率为 1x10-8 时,MAC 子层可使未检测到的差错小于 1x10-14

当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节。

为了达到比特同步,在传输媒体上实际传送的要比 MAC 帧还多 8 个字节。

在帧的前面插入(硬件生成)的 8 字节中,第一个字段共 7 个字节,是前同步码,用来迅速实现 MAC 帧的比特同步。第二个字段 1 个字节是帧开始定界符,表示后面的信息就是 MAC 帧。

无效的 MAC 帧:

  • 数据字段的长度与长度字段的值不一致;
  • 帧的长度不是整数个字节;
  • 用收到的帧检验序列 FCS 查出有差错;
  • 数据字段的长度不在 46 ~ 1500 字节之间。有效的 MAC 帧长度为 64 ~ 1518 字节之间。

对于检查出的无效 MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧。

IEEE 802.3 MAC 帧格式

与以太网 V2 MAC 帧格式相似,区别在于:

  • IEEE 802.3 规定的 MAC 帧的第三个字段是“长度 / 类型”。
  • 当这个字段值大于 0x0600 时(相当于十进制的 1536),就表示“类型”。这样的帧和以太网 V2 MAC 帧完全一样。
  • 当这个字段值小于 0x0600 时才表示“长度”。
  • 当“长度/类型”字段值小于 0x0600 时,数据字段必须装入上面的逻辑链路控制 LLC 子层的 LLC 帧。

帧间最小间隔为9.6μs,相当于96 bit的发送时间。一个站在检测到总线开始空闲后,还要等待9.6μs才能再次发送数据。这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。

打赏
  • Copyrights © 2017-2023 WSQ
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信