[发明专利]一种TCP/IP协议栈实现方法在审
| 申请号: | 201811518907.1 | 申请日: | 2018-12-12 |
| 公开(公告)号: | CN109413106A | 公开(公告)日: | 2019-03-01 |
| 发明(设计)人: | 黎小玉;田泽 | 申请(专利权)人: | 中国航空工业集团公司西安航空计算技术研究所 |
| 主分类号: | H04L29/06 | 分类号: | H04L29/06 |
| 代理公司: | 中国航空专利中心 11008 | 代理人: | 王迪 |
| 地址: | 710000 *** | 国省代码: | 陕西;61 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 数据通过 协同处理 分配处理器资源 计算机技术领域 软件协议栈 缓冲区 处理效率 传输过程 内核空间 数据发送 数据接收 协议处理 协议栈 网卡 拷贝 内存 分担 | ||
本发明属于计算机技术领域,提供一种TCP/IP协议栈实现方法,给出了行之有效的提高TCP/IP协议处理效率的实施方法,包括:硬件分担软件协议栈处理部分工作,通过协同处理的方式,达到协议栈的实现。技术方案包括:步骤一、是将传输过程中的数据通过软件和硬件协同处理的方式,分配处理器资源,达到数据接收;步骤二、是将数据通过网卡缓冲区拷贝到内核空间内存,通过协议处理,完成数据发送。
技术领域
本发明属于计算机技术领域,涉及一种TCP/IP协议栈实现方法。
背景技术
TCP/IP协议是实现网络通信最基本的协议,对网络数据的可靠、高效传输具有很大的影响。随着网络技术的发展,将嵌入式系统中引入TCP/IP协议具有深远的意义。传统的TCP/IP协议对接收到的数据大都是通过软件进行解析,处理,在处理网络数据传输的过程中,要占用大量的主机资源。或是完全依靠硬件资源对数据进行处理,通过硬件实现及多种加速技术复用的研究,其基本思想是:分担CPU对TCP/IP协议栈的处理,利用硬件处理速度快的优势,将部分处理过程放到高速网卡等硬件上完成。传统的处理方法对于软件和硬件的资源没有进行合理分配,加重了处理器的负荷,大大降低了数据处理的效率。
发明内容
发明目的:
本发明提供一种TCP/IP协议栈实现方法,给出了行之有效的提高TCP/IP协议处理效率的实施方法。
技术方案:
一种TCP/IP协议栈实现方法,包括:
硬件分担软件协议栈处理部分工作,通过协同处理的方式,达到协议栈的实现。
包括:
步骤一、是将传输过程中的数据通过软件和硬件协同处理的方式,分配处理器资源,达到数据接收;
步骤二、是将数据通过网卡缓冲区拷贝到内核空间内存,通过协议处理,完成数据发送。
步骤一包括:
(11)当网络中有数据包传输到设备时,接收来自MII接口的数据并将其转存在FIFO队列中;
(12)通过逻辑检测接收数据包的奇偶错误和最大最小数据包长度,检测帧类型并回写到接收回写描述符中,根据具体应用选择过滤掉与应用没有关联的类型的帧;
(13)交由软件执行TCP/IP协议处理,之后就得到了应用程序使用的数据,接着按照TCP/IP协议栈卸载的数据处理流程,把数据由网卡缓冲拷贝到内核空间内存,也就是主存,最后通过一次数据拷贝,将数据拷贝到用户空间交给应用程序使用;
(14)执行完TCP/IP协议,得到数据时,开始使用零拷贝技术,即将内核空间和用户空间通过映射进行共享,消除数据从内核空间拷贝到用户空间的过程。
步骤二包括:
(21)发送的数据先存储在网卡缓冲区;
(22)用户数据由用户空间拷贝到内核空间内存,再从内核空间内存拷贝到网卡缓冲区中;
(23)在网卡上经过TCP/IP协议处理,最后发送出去。
有益效果:
该方法通过软件优化和逻辑设计。这种方式使操作系统进程切换次数与协议栈层数无关,大大减少了系统开销,另外,协议栈中各层不需要单独占用缓冲区,只为协议栈分配一个公用的缓冲区,层级之间传输数据不需要将数据从一个缓冲区拷贝到另一个缓冲区,逻辑分担软件处理的工作,将硬件资源得到合理利用,减轻了处理器的负荷,大大提高了数据处理的效率。
附图说明
图1是本发明架构示意图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航空工业集团公司西安航空计算技术研究所,未经中国航空工业集团公司西安航空计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811518907.1/2.html,转载请声明来源钻瓜专利网。





