[发明专利]完成事件中包括描述符队列空事件有效
申请号: | 200680011384.0 | 申请日: | 2006-01-31 |
公开(公告)号: | CN101198924A | 公开(公告)日: | 2008-06-11 |
发明(设计)人: | 斯蒂夫·蒲柏;戴维·里多克;秦玉;德瑞克·罗伯茨 | 申请(专利权)人: | LEVEL5网络有限公司 |
主分类号: | G06F3/00 | 分类号: | G06F3/00 |
代理公司: | 北京英特普罗知识产权代理有限公司 | 代理人: | 齐永红 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 完成 事件 包括 描述 队列 | ||
背景
1.发明的技术领域
本发明涉及网络接口,尤其是最佳化性能的基于队列的网络传送和接收机制。
2.相关技术的描述
当通过数据通道,例如,网络,在两个设备之间传输数据时,每个设备都必须具有适合的网络接口,以允许其通过通道进行通信。通常这些网络是基于以太网技术的。为将要通过网络通信的设备配备网络接口,该网络接口能够支持网络协议的物理和逻辑要求。将网络接口的物理硬件部分称为网络接口卡(NIC),尽管它们不一定采用卡的形式:例如,它们可以采用直接安装在主板上的集成电路(IC)和连接器的形式,或者是与计算机系统的其他部分一起被装配在单个集成电路芯片上的宏单元的形式。
大多数计算机系统包括操作系统(OS),用户级应用通过其与网络通信。操作系统的一部分,已知为内核,包括协议栈,这些协议栈用于翻译在应用和指定到NIC的设备驱动器间的命令和数据,以及直接控制NIC的设备驱动器。通过在操作系统的内核中提供这些功能,可以从用户级应用中隐藏网络接口卡的复杂性和差异。另外,可以由多个应用安全地共享网络硬件和其它系统资源(例如存储器),并且保护系统安全,预防故障或者恶意的应用。
在典型的内核栈系统的操作中,硬件网络接口卡是在网络和内核间的接口。在内核中,设备驱动器层直接与NIC通信,而协议层与系统的应用级通信。
NIC存储指向主机存储器中用来输入提供给内核的数据和输出应用于网络的数据的缓冲区的指针。它们称为RX数据环和TX数据环。NIC对指示RX缓冲区环上的内核要读取的下一个数据的缓冲区指针进行更新。TX数据环通过直接存储器存取(DMA)来提供,并且NIC对指示已发送的输出数据的缓冲区指针进行更新。NIC可以利用中断向内核发送信号。
通过内核从RX数据环中摘掉输入数据,依次对其处理。通常由内核本身处理带外数据。通过指向应用专用端口的专用的缓冲区队列的指针来添加要到该应用专用端口的数据,该缓冲区队列驻留在内核的私有地址空间中。
在用于数据接收的系统操作时,会发生以下步骤:
1、在系统初始化期间,操作系统设备驱动器创建内核缓冲区,并对NIC的RX环初始化,以指向这些缓冲区。OS还接收到来自配置脚本的OS的IP主机地址的通知。
2、一应用希望接收网络包并且典型地创建一套接字(a socket),该套接字被绑定到一端口,该套接字是驻留在操作系统内的队列状数据结构。对于给定的网络协议,该端口具有在主机内的唯一的编号,以这样的一种方式,使得可以将寻址到<主机:端口>的网络包传送到正确的端口的队列。
3、一包到达网络接口卡(NIC)。该NIC通过主机I/O总线(例如PCI总线),将该包复制到由下一个有效RX DMA环指针值指向的存储器地址。
4、要么没有可用的剩余DMA指针,要么达到预指定超时,NIC断言I/O总线中断,以通知主机已传送了数据。
5、响应于中断,设备驱动器检查所传送的缓冲区,如果该缓冲区包含有效地址信息,例如有效的主机地址,则将指向该缓冲区的指针传递给适当的协议栈(例如TCP/IP)。在某些系统中,设备驱动器能够切换至轮询有限的时段,以试图减少中断次数。
6、协议栈确定是否存在有效目的地端口,如果存在,则执行网络协议处理(例如,生成对所接收到的数据的确认),并使包在端口的队列中排队。
7、OS可以指示应用(例如通过再调度并设置“选择”位掩码中的位)一包已到达所述端口绑定到的网络端点上(通过将该应用标记为可运行的并调用一调度程序)。
8、应用从OS请求数据,例如通过执行一recv()系统调用(提供缓冲区的地址和大小),同时在OS内核中,将数据从内核缓冲区复制到应用的缓冲区。在从系统调用返回时,应用可以从应用缓冲区访问该数据。
9、在复制后(其通常发生在软中断的环境下),内核将内核缓冲区返回给空闲存储器的OS库。而且,在中断过程中,设备驱动器分配一新缓冲区并向DMA环添加一指针。按此方式,具有一个从空闲库到应用的端口队列的缓冲区的循环,并且周而复始。
10、典型地,内核缓冲区位于物理RAM中,并且永远不会被虚拟存储器(VM)系统调页出去。然而,可以将空闲库共享为所有应用的公共资源。
对于数据发送,发生以下步骤:
1、操作系统设备驱动器创建用于进行发送的内核缓冲区,并初始化NIC的TX环。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于LEVEL5网络有限公司,未经LEVEL5网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200680011384.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:层序列及制造层序列的方法
- 下一篇:超声波装置