PCS子层有什么用?

PCS子层有什么用?

 

说到PCS子层,这个话题涉及到以太网的帧格式。除了数据帧本身,每个数据帧之前有8个字节的前导码,两个数据帧之间还有最少96 比特时间的的帧间隔。

 

这样看起来似乎很清楚,链路空闲96 比特时间之后,一旦出现8个字节的前导码,后面就是数据帧,数据帧后面链路又变为空闲状态。但是,从百兆以太网开始,大多数类型的以太网的帧间隔期间链路并不是真正的空闲,而是需要一直传送IDLE信号。这样,链路上始终都有连续的信号(这里暂不考虑EEE功能)。这种情况下,要想分辨数据帧的起始和结束位置,就不太容易了。这就是通信领域的“成帧”问题。尽管早期有一些成帧方案,以太网还是采用了不同的方式。

 

100BASE-X百兆以太网的PCS子层,引入了4B/5B编码机制。按照4B/5B的编码规则,接收端可以很容易地解析数据帧。简单来讲,4B/5B编码把每4个比特转换成5个比特。5个比特位有32种组合,其中16种组合用来表示4比特对应的0到15这16个数值,剩余的16种组合就可以用作控制码。这样,数据码和控制码就可以区分开了。http://cafe007.blog.51cto.com/

 

下面看一下百兆以太网编码前后的对比,就很容易理解PCS子层所做的工作。通常所理解的数据帧格式如下:

 

wKiom1NyN5nRFTnoAAA40lfvIbk820.jpg

经过4B/5B编码之后,变成了下面的码流:

 

wKioL1NyN4LALFYuAABEVMR-9lE359.jpg

上图中,出现了/I/,/J/,/K/,/T/,/R/这些符号。这些符号对应着4B/5B编码中的控制码,其中/J/和/K/码位于前导码的第一个字节的位置,而/T/和/R/码则占据了帧间隔的8比特时间。百兆以太网共有7种控制码,汇总如下:

 

控制码

 

编码

 

说明

 

/I/码

 

11111

 

对应Idle码流

 

/J/码

 

11000

 

用于标识数据帧的起始位置,和/K/码总是成对出现。

 

/K/码

 

10001

 

同上

 

/T/码

 

01101

 

用于标识数据帧的结束位置,和/R/码总是成对出现。

 

/T/和/R/码紧邻数据帧的FCS域,占用8个比特时间的帧间隔。

 

/R/码

 

00111

 

同上

 

/H/码

 

00100

 

Transmit Error; used to force signaling errors

 

/P/码

 

00000

 

SLEEP,用于EEE功能;其他情况下,为无效编码。

 

 

 

不同类型的以太网使用的PCS子层不尽相同,采用的编码机制也不同,例如:1000BASE-X以太网使用了8B/10B编码,10GBASE-R以太网使用了64B/66B编码。这些编码机制的具体实现方式,笔者无法在此一一分析,但是PCS编码的思想应该是类似的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值