- 主题:MAC是如何计算CRC的呢?
我查了一下协议,我的理解是这样的:
1、PHY并不知道目前在传输的是4字节FCS,MAC更不会知道当前是FCS
2、MAC每接收PHY传过来的1个字节的帧数据就计算一次CRC。当然是从SFD后开始的
3、如果PHY开始传输FCS了,但是此时PHY和MAC都不知道当前字节是FCS,那么MAC必定会把FCS当作普通帧数据进行CRC计算了
如果是这样的话,MAC计算出来的CRC结果不可能等于FCS。
难道MAC会在接收4个字节后,才开始从第一个字节计算CRC,这样当所有报文PHY接收完毕后,刚好计算完4字节FCS前的最后一个有效帧字节数据,这样就保证了MAC计算出来的CRC结果不包括FCS字段么?
多谢指教!
--
FROM 123.112.52.*
没研究过,如果是你说的这样,最后计算结果扔进一个两三级的fifo就行了吧,收完了把最后一次的结果扔了
【 在 meitianhappy 的大作中提到: 】
我查了一下协议,我的理解是这样的:
1、PHY并不知道目前在传输的是4字节FCS,MAC更不会知道当前是FCS
2、MAC每接收PHY传过来的1个字节的帧数据就计算一次CRC。当然是从SFD后开始的
3、如果PHY开始传输FCS了,但是此时PHY和MAC都不知道当前字节是FCS,那么MAC必定会把FCS当作普通帧数据进行CRC计算了
如果是这样的话,MAC计算出来的CRC结果不可能等于FCS。
难道MAC会在接收4个字节后,才开始从第一个字节计算CRC,这样当所有报文PHY接收完毕后,刚好计算完4字节FCS前的最后一个有效帧字节数据,这样就保证了MAC计算出来的CRC结果不包括FCS字段么?
多谢指教!
--
FROM 124.16.158.*
FCS 跟普通数据一样,扔给 crc caculator
假如没有传输错误,算完最后一个字节,得到一个固定值。
不是这个值,就有 error 具体值记不大清了
--
修改:stirlitz FROM 112.1.62.*
FROM 112.1.62.*
1,帧有固定格式,最后4字节是fcs
2,fcs是针对整帧
3,现代交换机都是存储转发,即收到帧先缓存,fcs校验无误后再转发
【 在 meitianhappy 的大作中提到: 】
:
: 我查了一下协议,我的理解是这样的:
: 1、PHY并不知道目前在传输的是4字节FCS,MAC更不会知道当前是FCS
: 2、MAC每接收PHY传过来的1个字节的帧数据就计算一次CRC。当然是从SFD后开始的
: 3、如果PHY开始传输FCS了,但是此时PHY和MAC都不知道当前字节是FCS,那么MAC必定会把FCS当作普通帧数据进行CRC计算了
#发自zSMTH@KKG-AN00
--
FROM 223.65.186.*