以太网的传输并非百分之百可靠,数据帧传输过程中可能出错。下面列出了常见的以太网错误帧类型:
1) CRC错误帧
CRC错误较为常见。数据帧传输过程中,某些比特位可能会从0变为1或者从1变为0。这样,接收端根据报文内容计算的校验和,就和报文尾部携带的校验和不一致。这样的数据帧就是CRC错误帧。
2) Collision
在半双工链路上,发送数据帧之前会先探测链路是否空闲。但是,有可能两个不同的终端都检测到了链路空闲,而后都开始发送数据帧。这样,两个数据帧就会在链路上发生冲突。
严格来讲,collision并不是错误帧,而是CSMA/CD机制必然导致的事件。半双工以太网中,出现collision错误通常是正常现象。
3) Late Collision
半双工链路上,数据帧开始发送一段时间之后,就不应该再发生冲突。这段时间称为collision window。低于百兆的以太网的collision window是512比特时间,千兆以太网的collision window是4096比特时间。
如果在collision window之后检测到了冲突,这种情况就是late collision。出现late collision,往往意味着网络本身出了故障。
4) Fragment错误帧
数据帧有CRC错误且长度小于64字节。
5) Alignment错误帧
如果数据帧的最后不是一个完整的字节,这种帧就属于Alignment错误帧。
6) Runt帧
数据帧的CRC正确,但是帧长小于64字节。
7) Oversize错误帧
数据帧的CRC正确,但是帧长大于1518字节。如果数据帧带有VLAN tag,那么帧长大于1522字节才算作Oversize错误帧。
需要注意的是,现在大多数交换机已经开始支持超长帧的转发,帧长可以达到9K字节。
除了以上所列的错误,以太网还有Jabber Error,Dribble Error,Symbol Error等错误类型。这些错误类型不太常见,笔者对此也没有深入的理解。