huweiming268
驱动牛犊
驱动牛犊
  • 注册日期2003-12-13
  • 最后登录2004-07-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1835回复:3

请问:网卡中的广播地址的设置是怎么回事??

楼主#
更多 发布于:2004-07-01 05:45
     在8139的网卡中有8个MAR0~7寄存器,很多资料都说他们是用于以哈希表的方式来过滤广播包和组广播包.也就是说这是一个硬件的过滤机制.但我不知道为什么要用8个字节,为什么不用6个,它的内部是怎么工作的.
bingjie
驱动小牛
驱动小牛
  • 注册日期2001-08-15
  • 最后登录2007-11-29
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-02 16:13
哈希表的作用就是散列,实际上8个字节即64Bits说明8139最多支持64个组播地址过滤,它的机制是这样的,当Driver接收到一个要接收的组播地址表时,对每个组播地址都计算一个出一个6Bit的值(比如先算CRC,再取结果的高6bit)即0-63,然后把Register中相对应的Bit置1,在硬件MAC部分每接收到一个一个组播Packet,也将DA用同样的散列算法计算出一个6Bit的值,然后去看Register中对应的Bit是否为1,如果为1则接收该Packet,否则丢弃。当然用这种散列的方法可能会有不在接收列表的Packet被提交,但这样做可以节省硬件存储空间(6×8×64 - 64 )
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-03 17:54
哈希表的作用就是散列,实际上8个字节即64Bits说明8139最多支持64个组播地址过滤,它的机制是这样的,当Driver接收到一个要接收的组播地址表时,对每个组播地址都计算一个出一个6Bit的值(比如先算CRC,再取结果的高6bit)即0-63,然后把Register中相对应的Bit置1,在硬件MAC部分每接收到一个一个组播Packet,也将DA用同样的散列算法计算出一个6Bit的值,然后去看Register中对应的Bit是否为1,如果为1则接收该Packet,否则丢弃。当然用这种散列的方法可能会有不在接收列表的Packet被提交,但这样做可以节省硬件存储空间(6×8×64 - 64 )

回答的很简洁明了
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
huweiming268
驱动牛犊
驱动牛犊
  • 注册日期2003-12-13
  • 最后登录2004-07-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-03 18:01
    多谢,我明白了,分我一定送上,呵呵!!
游客

返回顶部