【发布时间】:2012-06-20 02:35:30
【问题描述】:
我试图弄清楚网卡在 Windows 中的工作原理,以及数据是如何被中继的。
我有两个假设。
1.
- 网卡接收到数据。
- 然后卡将数据放入内部缓冲区,可能是双缓冲区或环形缓冲区。
- 卡累积数据直到达到一定数量,然后发送中断。
- Windows 将数据从卡复制到 RAM 并通知相应的处理程序。
2.
- 数据已接收。
- 卡使用 DMA 将数据放入 RAM。 (DMA 是否保证数据不会丢失,还是卡仍需要自己的缓冲区?)
- 卡在将足够的数据放入 RAM 时触发中断。
- Windows 接收中断并将数据复制或公开给适当的处理程序。
我的假设是否正确?
如果缓冲区已满,卡或 Windows 是否有任何消息?
在我的以太网控制器的 Windows 系统属性中,我可以看到名为“接收缓冲区”和“传输缓冲区”的属性,两者都设置为 256。 这是什么意思?
有没有关于这个主题的好文献?(我有 Tanenbaum 的现代操作系统,但它与 Windows 没有特别的关系。)
【问题讨论】: