核心提示:一个概念叫描述符在一个网络卡是一种固定结构链是由DMA和CPU切换控制。在初始化,多为一定数量的内存的应用程序和用途的描述表结构相同的大小给出网络卡。包的方向的相同数量的应。


在网络卡的概念被称为描述符,这是一个固定结构链是由DMA和CPU切换。



在初始化时,多为一定数量的内存的应用程序和用途的描述表结构相同的尺寸给网卡,数据包方向,数据包缓存数量相同也适用于这些描述符。包的方向,这包挂在当前缓冲区描述符只有当你想要把它,它不需要被应用时,它被初始化。



初始化也需要描述表做一些必要的设置。在方向接收数据包完成后,只要控制这些描述符从CPU向DMA在手上,然后没有DMA对网络数据包的检测时,如果有,会根据设定的一些考试,没有问题是这个包的复制与缓存的第一个描述符。产生一个信号通知CPU(通常中断)也能控制描述符的CPU,DMA将跳到同一监控下描述表。一般来说,这个列表是圆形的,所以它可以启动后,有些网卡会记得这是第一次,这是最后一个了。另一端,如果CPU收到中断或循环查询,发现控制描述符是自己的,要去包缓冲区,在这里你可以复制的内容,也可以使用一个新的缓冲区替换包缓冲区(在描述符唯一记录指针),显然这种替代的方法,效率是很高的,这就是所谓的零copy。当然,有些网卡如Realtek 8139系列不能是的。因为他的描述表和数据包缓冲区是连续的空间。



在包装的方向,当描述符初始化后,您可以填写默认值。当我们想要的合同,我们需要做的具体的事情,包括描述符链包缓冲区描述符,并进行必要的设置。然后我们把控制权交给dma.dma发现该描述符的控制器是自己和会送出去的数据包缓冲区的内容。中断信号会在传输完成后发送到CPU,和控制将返回到CPU.CPU接收完成中断和滴这个免费的数据包缓冲区。这是零拷贝机制。另一种方法是在初始化、接收以及对描述符包缓冲区的应用,在将需要复制的内容被发送到数据包的缓冲时间,然后发送完成,不需要做这个数据包缓冲区有什么特别的事。



总的原则是。当然,还有很多其他的东西,比如流量控制,可以进一步理解,每个芯片都不一样。它需要与数据表相结合。



无线网卡的硬件实现与有线网卡有很大的不同,但其驱动原理实际上与有线网卡一样,但它只是射频模块。