Wednesday, September 2, 2009

以太网卡工作原理

对网卡有个疑问:
1. 网卡对某些数据包进行处理时, 计算机的CPU是不知道的?

为解开这两个问题, 找了一点资料

下面的图是ethernet card的大致设计图: ( 来源于: http://www.patentstorm.us/patents/6252874/claims.html )


arbitration电路: 主要起到转换数据在转输顺序, 所以Transmitting circuit都为经过arbitration circuit才能到达transceiver, 然后发出数据到以太网络中
如下内容从参考文档中copy出来的:
According to one aspect of the present invention, a transmitting circuit and a detection circuit are added to a regular ethernet card, enabling the CPU(fox example, RISC) to inspect packet data received by the MAC of the ethernet card, so that the CPU directly drives the MAC to discard received packet data if packet data received by the MAC has nothing to do with the host computer
* 有两部分Transmitting circuit, 一部分是computer的, 还有一部分是ethernet card的, 因为ethernet card CPU可以直接回复某些数据包而不经过computer的CPU

Receiving circuit 与 Transmitting circuit两部分电路总和称之为 MAC
* 上面的图中没有明文指出哪里是MAC ( media access control )
Detection电路: 主要起到控制MAC中的Receiving circuit部分( 逻辑由CPU去发出 ), 也就是起到控制前往computer的数据流的作用, 对满足要求的数据才能到达computer, 否则, 在ethernet card中被丢掉

到目前为止, 本人提出的疑问算是解开了.

ifconfig可以配置的参数还有很多:
1. promisc: 如果开启此选项, 那么receiving的数据将不受物理地址的影响, 即Destination为任一值都接收
2. hw class address: 可以改变网卡的物理地址
3. arp: 是否充许ARP请求
4. mtu: 修改网卡的物理帧的长度
* 其它参数还没有用到....

参考文档:
https://docs.google.com/fileview?id=0By6wzuq9XWc6ZTMwNzJmYjctNGUxYy00MmRmLTk3ZjItNGZhNjJkM2ViYWRi&hl=en

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.