xiexuehui 发表于 2006-3-13 22:27:25

请教:关于MAC混合模式的问题

关于CAM Control Register有以下一段说明:
The three accept bits in the CAM control register are used to override CAM rejections. To place the MAC in promiscuous mode.
... ...
Station accept (StationAcc)
Group accept (GroupAcc)
Broadcast accept (BroadAcc)
... ...
按说明, 我在程序中设寄存器CAMCON 的值为0x00000003,将CAM整字以及CAM的高16位(总48位)设好随意一个MAC地址,并使能(CAMEN第0位置1)。将板接到网上开始监测数据包,结果在板上只看到广播包(Broadcast )及组播包(Group ), 而单播包(Station )却没看到。
我将MAC改为一台实际PC机上网卡MAC地址, 同时这一台机不断发出icmp包, 板上同样也没能看到单播包。郁闷了好几周,到这向各位大侠求救~~
哪位大侠玩过混合模式的, 救救偶啊~~先谢过了。 :cry:

xiexuehui 发表于 2006-3-15 21:08:10

找到原因了.仅简单设为混合模式把接收到的数据给显示出来,没有实现如ARP之类其他的协议.把板接到网上, 只收到组播和广播.后来在程序中加了发送icmp echo request包功能,便可以在板上看到icmp echo reply的单播包. 而在本网段中的其他单播数据包却没看了. 琢磨一阵后明白了, 板子所接入的是交换机, 交换机维持一张表, 其中是接口号和流入这个接口数据包的源MAC 地址, 当交换机收到一个数据包后, 将数据包里目的MAC地址和表中的MAC地址对照, 找到相应接口发出去. 若接入网络通信设备是一般的HUB, 就可以直接看到网段内所有的流量了.
板子没问题, 程序没问题, 一个常识记不起来, 白郁闷了很久~~//sigh
页: [1]
查看完整版本: 请教:关于MAC混合模式的问题