基于零拷贝方式的多队列报文发送和接收方法和装置制造方法及图纸

技术编号:4269767 阅读:358 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种基于零拷贝方式的多队列报文发送和接收方法和装置,其中,该方法包括:网卡驱动程序申请用于发送和接收报文的多个报文缓冲区队列;当网卡接收报文时,采用零拷贝方式接收报文,并将所接收的报文存储到多个报文缓冲区队列中相应的报文缓冲区队列中;以及当网卡发送报文时,指定报文存储到多个报文缓冲区队列中的哪个报文缓冲区队列中,然后采用零拷贝方式进行报文发送。本发明专利技术充分利用了多核CPU的处理能力,保证了多个应用程序接收的报文都同源同宿,不采用互斥操作,提高了报文的处理效率。

【技术实现步骤摘要】

本专利技术涉及通信领域,尤其涉及一种基于零拷贝方式的多队列报文发送和接收方法方法和装置。
技术介绍
目前,相关技术进行报文发送和接收的方法存在以下缺点 (1)只能基于零拷贝方式在单个数据队列进行报文发送、接收操作; (2)当多个应用程序同时进行报文发送、接收操作时,需要采用互斥操作,维护缓冲区队列的同步; (3)无法充分利用多核CPU的处理能力; (4)应用程序利用TCP/IP网络协议栈进行报文接收,无法保证报文的同源同宿 (相同的源、目的IP地址或相反方向的报文)。
技术实现思路
针对相关技术中存在的的问题,本专利技术的目的在于提供一种,以解决上述问题中 的至少之一。 为实现上述目的,根据本专利技术的一个方面,提供了一种基于零拷贝方式的多队列报文发送和接收方法,该方法包括网卡驱动程序申请用于发送和接收报文的多个报文缓冲区队列;当网卡接收报文时,采用零拷贝方式接收报文,并将所接收的报文存储到多个报文缓冲区队列中相应的报文缓冲区队列中;以及当网卡发送报文时,指定报文存储到多个报文缓冲区队列中的哪个报文缓冲区队列中,然后采用零拷贝方式进行报文发送。 优选地,当网卡接收报文时,根本文档来自技高网...

【技术保护点】
一种基于零拷贝方式的多队列报文发送和接收方法,其特征在于,所述方法包括:网卡驱动程序申请用于发送和接收报文的多个报文缓冲区队列;当网卡接收报文时,采用零拷贝方式接收报文,并将所接收的报文存储到所述多个报文缓冲区队列中相应的报文缓冲区队列中;以及当网卡发送报文时,指定所述报文存储到所述多个报文缓冲区队列中的哪个报文缓冲区队列中,然后采用零拷贝方式进行报文发送。

【技术特征摘要】
一种基于零拷贝方式的多队列报文发送和接收方法,其特征在于,所述方法包括网卡驱动程序申请用于发送和接收报文的多个报文缓冲区队列;当网卡接收报文时,采用零拷贝方式接收报文,并将所接收的报文存储到所述多个报文缓冲区队列中相应的报文缓冲区队列中;以及当网卡发送报文时,指定所述报文存储到所述多个报文缓冲区队列中的哪个报文缓冲区队列中,然后采用零拷贝方式进行报文发送。2. 根据权利要求1所述的方法,其特征在于,当所述网卡接收报文时,根据所接收的报 文头中的源IP地址和目的IP地址进行哈希运算。3. 根据权利要求l所述的方法,其特征在于,当所述网卡发送报文时,能够同时运行一 个或多个应用程序进行发送操作,每个所述应用程序使用不同的报文缓冲区队列。4. 一种基于零拷贝方...

【专利技术属性】
技术研发人员:邵宗有聂华历军李永成
申请(专利权)人:曙光信息产业北京有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1