数据在通信线缆上传输时还只是光/电信号(对应于物理层的比特流)。为了让路由器读懂这些信号,以便获取数据包的目的地址用于寻址转发,在路由器上插线缆的接口里边有一块接口卡――PIC(Physical Interface Controller)卡,能感知这些光/电信号,把信号转换成数据帧(比如以太帧、PPP帧、ATM信元)。
?????????????
????????
接口卡有两个重要的功能,其中一个就是完成上述的物理层功能,光/电信号的收、发;另一个重要功能,就是进行数据帧的“合法性”检查。数据经过物理线路的传递后,有可能发生畸变,变成错包,无法被包转发引擎PFE正确解析,因此在接口卡需要进行一些必要的检查。
比如,一个以太帧格式如下:
以太网标准中规定如下帧为无效帧:
-帧的长度不是整数个字节;
-用收到的帧检验序列FCS(Frame Check Sequence)查出有错误;
-收到的帧的负荷长度不在46~1500字节之间。
对于检查出的无效帧就简单的丢弃,以太网不负责重传丢弃的帧。而这些检查,是在接口卡上执行的。
说明:
每个以太帧之间都要有帧间隙(Interframe Gap),即每发完一个帧后要等待一段时间才能再发另外一个帧,以便让帧接收者对接收的帧作必要的处理(如调整缓存的指针、更新计数、通知对报文进行处理等等)。
在以太网标准中规定最小帧间隙是12个字节,其数据为全1。对于个别的接口,可减少到64(GE)或40比特(10GE),其他的接口都不应该小于12字节。
以太网标准中规定前导码为10101010 10101010 10101010 10101010 10101010 10101010 10101010(二进制),共7字节;帧开始定界符为10101011,共1字节。
那么,如果PIC卡实际收到的帧间隙、前导码、帧开始界定符,如果跟协议规定的不一样,是不是这个数据帧也会被丢弃?答案是,PIC卡在处理帧间隙时,帧间隙一般可以容忍跟协议规定的不一样(比如不是全1);但前导码、帧开始界定符必须符合协议规定的值,否则当做帧间隙处理,也就是帧被丢弃了。
PIC卡把光/电信号转换成数据帧,并检查“合法性”之后,把数据帧的内容(不包含帧间隙、前导码、帧开始界定符和FCS)发送给包转发引擎PFE。
????????????????????
说明:
PIC卡的类型决定了接口板的业务类型,比如把4*2.5G PoS PIC卡集成在某接口板上,则该单板就支持4*2.5G 的PoS业务,把10*GE PIC卡集成在某接口板上,则该单板支持提供10*GE的以太业务。将某PIC卡集成在接口板上,对应的PFE便可得知该PIC卡的类型,因此按对应业务类型来解读PIC卡送过来的数据。
数据包经过PFE转发,经过交换网板交换,从下行接口发送时,下行的对应位置也有接口卡。
???????????????
下行接口卡的作用是,用待发送的数据帧内容计算帧检验序列FCS,然后对数据帧加封装帧间隙、前导码、帧开始界定符和FCS,并将数据帧转换成光/电信号,再发送到出接口线路上。