发明名称 基于零拷贝方式的多应用程序报文接收方法和装置
摘要 本发明提供一种基于零拷贝方式的多应用程序报文接收方法和装置,其中接收方法包括以下步骤:在网卡驱动程序中申请连续内存空间作为报文接收的缓冲区队列;在网卡相关寄存器中设置一个缓冲区队列写指针寄存器和多个缓冲区队列读指针寄存器,每个缓冲区队列读指针寄存器对应一个应用程序;网卡接收报文,如果缓冲区队列未存储满则将报文存储在缓冲区队列,同时更新写指针寄存器;以及每个应用程序分别判断是否有要接收的报文存储在缓冲区队列中,如果有,则将报文从缓冲区队列中取走,同时网卡驱动程序更新应用程序对应的缓冲区队列读指针寄存器。本发明能够基于零拷贝方式,实现多个应用程序同时进行报文接收,明显降低了CPU的占有率。
申请公布号 CN101877666A 申请公布日期 2010.11.03
申请号 CN200910238009.5 申请日期 2009.11.13
申请人 曙光信息产业(北京)有限公司 发明人 邵宗有;聂华;历军;李永成
分类号 H04L12/54(2006.01)I;G06F13/28(2006.01)I 主分类号 H04L12/54(2006.01)I
代理机构 北京市德恒律师事务所 11306 代理人 梁永
主权项 一种基于零拷贝方式的多应用程序报文接收方法,其特征在于,包括下列步骤:在网卡驱动程序中申请连续内存空间作为报文接收的缓冲区队列;在网卡相关寄存器中设置一个缓冲区队列写指针寄存器和多个缓冲区队列读指针寄存器,每个所述缓冲区队列读指针寄存器对应一个应用程序;网卡接收报文并判断所述缓冲区队列是否已存储满,如果所述缓冲区队列未存储满则将报文存储在所述缓冲区队列,同时更新所述写指针寄存器;以及每个所述应用程序分别判断是否有要接收的报文存储在所述缓冲区队列中,如果有,则将报文从所述缓冲区队列中取走,同时所述网卡驱动程序更新所述应用程序对应的所述缓冲区队列读指针寄存器。
地址 100084 北京市海淀区中关村科学院南路6号