采用较高的速度通过介质时,数据有可能被损坏。通过使用代码组,我们就可以更有效地检测到错误了。另外,随着对数据速度的要求与日俱增,我们需要找到通过介质传输较少的比特来表达更多数据的方法。代码组提供的方法可以实现这种数据表达。

 
网络设备的物理层必须能够检测合法的数据信号,并忽略物理介质上可能存在的随机非数据信号。信号流的传输需要接收器能够识别帧的开始和结束。
 
信号模式
 
检测帧的一种方法是每个帧都用物理层认为是帧开头的比特信号模式开始,用表示帧结束的比特信号模式结束。没有以这种方式构成帧的信号比特将被所采用的物理层标准忽略。
 
有效的数据比特需组织成帧;否则,收到的数据比特将无任何上下文环境,无法将其意义传递给网络模型的上层。这种构成帧的方法可以由数据链路层或物理层分别提供,也可以由二者共同提供。
 
信号模式可表示:帧开始、帧结束和帧内容。这些信号模式可以被解码成比特。而比特又可以被解释成代码。代码会指示帧的开始和结束位置。
代码组
 
编码技术使用的比特模式就称为符号。物理层可以使用一组被编码的符号(称为代码组)来表示编码数据或控制信息。代码组是连续的代码比特,解释并映射为数据比特模式。例如,代码比特 10101 可以代表数据比特 0011。
 
如右图所示,代码组通常用作较高速度 LAN 技术的中间编码技术。该步骤出现在物理层生成电压信号、光脉冲信号或射频信号之前。通过发送符号,发送设备和接收设备之间的错误检测能力和时间同步功能均得到增强。这些是支持通过介质高速传输时需要考虑的重要内容。
 
尽管使用代码组会产生额外的比特开销需要传输,但却能提高通信链路的稳定性。对于高速数据传输尤其如此。
 
使用代码组的优点有:
  • 降低比特电平错误
  • 限制传输到介质中的效能
  • 帮助甄别数据比特和控制比特
  • 更有效地检测介质错误
降低比特电平错误
 
要正确地检测单个比特是 0 还是 1,接收器必须了解如何及何时在介质上取样信号。这要求接收器和发送器之间的时间必须同步。在许多物理层技术中,介质上的跳变均可用于该同步。如果传输到介质上的比特模式不能创建频率跳变,该同步可能会丢失,个别比特可能出错。因此,人们便设计了代码组,以便该符号促使介质上产生足够的比特跳变来同步该时间。它们通过使用符号来确保不在同一行中使用太多 1 或 0,从而达到这一目的。
 
限制发送的能量
 
在很多代码组中,该符号可以确保一串符号中 1 和 0 的数量均衡。平衡发送的 1 和 0 数量的过程称为 DC 平衡。这可以避免在传输中将过多的能量注入介质,从而减少介质辐射的干扰。在许多介质信号方法中,逻辑电平(例如 1)是由发送到介质中的能量来表示的;而相对逻辑电平( 0)则用没有该能量来表示。发送一长串 1 可能导致接收器中的传输激光和光电二极管过热,有可能导致较高的错误率。
 
甄别数据和控制
 
代码组提供三种类型的符号:
数据符号 — 在向下将帧传输到物理层时,代表帧数据的符号。
控制符号 — 由物理层输入的用于控制传输的特殊代码。其中包括帧结尾和空闲介质符号。
无效符号 — 含有介质上不允许的模式的符号。接收到无效符号表示帧出错。
编码到介质上的符号都是唯一的。表示通过网络发送的数据的符号与用于控制的符号,它们的比特模式不尽相同。它们之间的差异使物理层能够在接收节点马上区分数据信息和控制信息。
 
更有效地检测介质错误
 
除数据符号和控制符号外,代码组中还包含无效符号。这些符号可能在介质上创建长串的 1 或 0;因而,发送节点不会使用它们。如果接收节点收到其中一种模式,物理层就可以断定收到的数据有错误。
4B/5B
 
我们例举代码组 4B/5B 进行详解。现代网络中目前使用的代码组通常更为复杂。
 
在该技术中,4 比特数据被转换成 5 比特代码符号,以便通过介质系统传输。在 4B/5B 中,每个要传输的字节均被分解为四比特片段或半字节 ,并被编码为五比特值(即符号)。这些符号代表要传输的数据,以及有助于控制介质上传输的一组代码。代码中包含的符号表示帧传输的开始和结束位置。尽管这一过程增加了比特传输的开销,但也增加了有助于高速数据传输的功能。
 
4B/5B 可确保每个代码中至少存在一次电平更改,以提供同步。4B/5B 中使用的大多数代码中每个符号的 1 和 0 的使用次数是均衡的。