关于Windows中的网卡如何工作的问题

时间:2012-06-19 18:22:37

标签: windows operating-system

我正在试图弄清楚网卡在Windows中是如何工作的,以及如何传输数据。

我有两个假设。

1

  1. 网卡收到数据。
  2. 然后,卡将数据放入内部缓冲区,可能是双缓冲区或环形缓冲区。
  3. 卡会累积数据,直到达到一定数量,然后发送中断。
  4. Windows将数据从卡复制到RAM并通知适当的处理程序。
  5. 2

    1. 收到数据。
    2. 卡使用DMA将数据放入RAM。 ( DMA是否保证数据不会丢失,或者卡仍然需要自己的缓冲区?
    3. 在RAM中放入足够的数据时,卡会发出中断。
    4. Windows接收中断并将数据复制或公开给适当的处理程序。
    5. 我的假设是否正确?

      如果缓冲区已满,卡或Windows是否有任何消息?

      在我的以太网控制器的Windows系统属性中,我可以看到名为“接收缓冲区”和“传输缓冲区”的属性,两者都设置为256。 这是什么意思?

      有没有关于这个主题的好文献?(我有Tanenbaum的现代操作系统,但它与Windows无关。)

1 个答案:

答案 0 :(得分:1)

您的问题包含(至少!)三个非常非常广泛的主题:

1)Layer 2 (Data Link)硬件设备如何工作?

2)它与操作系统的network stack

有何关系

......和......

3)它与操作系统的内核级device driver有什么关系?

下一个链接实际上与原始问题相反180度(API是相对较高的级别,您的问题属于最低的软件级别),但是查看.Net API以获取视角“如何工作“:

'希望这有助于...至少一点......

PS:

Linux是关于实现网络堆栈的大量信息:所有内核源代码和所有设备驱动程序都是完全可用的,并且有很好的文档记录。

相关问题