法律状态公告日
法律状态信息
法律状态
2020-08-25
授权
授权
2018-01-26
实质审查的生效 IPC(主分类):H04L29/08 申请日:20170930
实质审查的生效
2017-12-29
公开
公开
技术领域
本发明涉及计算机网络技术,特别是计算机网络中的数据传输技术,具体而言涉及一种支持TCP/IP协议簇的新型网络适配器及其数据传输方法。
背景技术
现阶段因为TCP/IP协议的广泛使用,使用TCP/IP协议进行数据通信是主机的主流配置。在网络的OSI七层模型中,常见的网络适配器是工作在链路层的网络组件,其覆盖了物理层和数据链路层,是局域网中连接计算机和传输介质的接口,实现与局域网传输介质之间的物理连接和电信号匹配,以及数据帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码以及数据缓存的功能等。随着云计算和云存储的普遍应用,网络数据的数据量急剧增加,网络数据与用户的关系越来越密切。未来,个人PC和云服务器绝大部分的数据来源于网络。
在电子制造技术越来越成熟的今天,硬件产品的更新速度越来越快,硬件制造成本却越来越低廉。这一切源于电子制造技术越来越成熟。现在好多家用PC的硬件配置都能达到一台中小型服务器的配置标准。从侧面也说明主机的处理速度越来越关乎用户的使用体验。
在这个背景下,高性能CPU+大内存提升主机处理速度的愿望将被操作系统搭载简单网络适配器的模式所拖累。图1示出了传统的网络适配器在主机上的工作模式,在当前这种模式下,网络适配器工作在数据链路层,数据报文解析/校验、数据报文封装/校验、用户数据报文加/解密(用户IPSec VPN接入场景)、用户报文压缩/解压缩、网络数据的深度解析与病毒识别等等这些操作需要消耗主机的很大一部分软硬件资源。同时这种“病态”模式下,只有通过不断升级CPU、内存甚至主板才能维持用户体验。这在世界范围内会是很大一种开销。
同时,由于操作系统在运行中存在任务的调度,对链路探测报文的应答很难像硬件一样做出快速响应。所以一旦发生链路中断或流量拥塞,主机无法及时对数据处理做出收敛就会造成数据丢失。必须经常借助通信消耗比较大的的面向连接的通信协议来确保通信数据不丢失。如果主机上有一个可以独立支持探测协议的硬件,主机的链路收敛速度就会大大提提升。
如果将以上开销从现有操作系统和硬件资源中剔除,交给一个独立的硬件单独去完成。操作系统和应用程序就只需负责处理元数据,那将极大地提升用户体验,云主机和分布式服务器也能将有更多的软硬件资源聚焦于数据业务处理。
因此,迫切希望具有一种支持TCP/IP协议簇的新型的网络适配器。
发明内容
发明目的:针对现有技术的不足,本发明提出一种网络适配器的数据传输方法以及网络适配器,能够实现基于TCP/IP协议簇的网络数据处理。
技术方案:本发明所述的一种网络适配器的数据传输方法,包括以下步骤:
应用程序根据模块ID或任务标识构造出一个本应用在本机的唯一标识;
应用程序通过目的IP地址、目的端口通知新型网络适配器对端的信息,然后发起会话;
应用程序向新型网络适配器注册一个报文接收处理接口,用于处理返程数据;
返程数据通过会话对应的报文接收处理接口,将数据交给应用程序,数据接收完成。
其中,数据发送方法包括以下步骤:
构造应用层向网络适配器发送数据所需要的信息,包括应用程序模块ID或任务标识、目的IP地址或目的IP地址加目的端口、报文接收处理接口;
应用层调用网络适配器提供的接口,传入构造好的数据;
网络适配器根据传入的数据信息查找对应的会话信息,对应用程序的元数据进行逐层封装,并向远端发起会话请求;
创建会话并建立会话表。
数据接收方法包括以下步骤:
从链路层获取数据,并将数据逐层解封装;
根据当前会话信息查询会话表;
会话表有效则调用相应的报文接收处理函数,将元数据交给应用程序处理;会话表不存在或无效,则丢弃数据。
一种网络适配器,包括:
硬件处理器,可以独立完成常见协议交互和数据处理;
独立的硬件内存或可以独立使用的主机内存,用于缓存协议交互的报文和数据;
独立的非易失性存储单元,保存其运行所需要的软件、用户配置及运行日志;
多个链路收发模块插槽,以支持多种物理层收发模块或灵活插卡的驱动和自动识别。
有益效果:本发明公开了一种支持TCP/IP协议簇的新型网络适配器及其数据传输方法,利用该网络适配器进行数据传输时,主机应用层不需要创建会话、不需要维护会话状态、不需要参与数据的封装和解封装。主机应用层发送和接收到的都是元数据。该新型网络适配器通过实现TCP/IP协议栈,可以独立完成一些协议协商,例如建立数据连接、网络数据的封装/解封装、数据加/解密、网络数据的压缩/解压缩、硬件防火墙、网络探测报文的应答、各种路由和链路检测机制、甚至PPP/DHCP用户拨号等功能。为操作系统和现有硬件只处理元数据提供了可能。大大提升了核心硬件的数据吞吐量。利用本发明可以形成一种新型主机架构,小到PC,大到各类服务器,适合广泛应用。
附图说明
图1为基于传统的网络适配器的主机工作模式。
图2为基于本发明所述的支持TCP/IP协议簇的新型网络适配器的主机工作模式。
图3为本发明所述的新型网络适配器进行数据发送的流程图。
图4为本发明所述的新型网络适配器进行报文接收的流程图。
图5为本发明所述的新型网络适配器的系统结构图。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明。
本发明公开了一种支持TCP/IP协议簇的新型网络适器。如图2所示,新型网络适配器覆盖了完整的TCP/IP协议栈,能独立完成网络数据的封装/解封装、数据加/解密、网络数据的压缩/解压缩、防火墙、网络探测报文的应答、各种路由和链路检测机制、甚至PPP/DHCP/L2TP用户拨号等功能。尽可能地减少了操作系统协议栈对报文的处理,通过硬件提升了网络数据的处理速度,节约了主机的CPU、内存等核心资源。
新型网络适配器的主要各项功能如下实现:
1)独立数据发送和接收
应用程序根据模块ID或任务标识构造出一个本应用在本机的唯一标识;
应用程序通过目的IP地址、目的端口来通知新型网络适配器对端的信息,然后才能发起会话;
同时,应用程序需要向新型网络适配器注册一个报文接收处理接口,处理返程数据;
返程数据会通过会话对应的报文接收处理接口,将数据交给应用程序,数据接收完成;
以上过程中,应用层不需要创建会话、不需要维护会话状态、不需要参与数据的封装和解封装。主机应用层发送和接收到的都是元数据。
2)在新型网络适配器的网络层处理中,增加防火墙和深度病毒解析的处理,有效防护主机安全。
3)新型网络适配器通过用户配置的拨号方式、用户名、密码等信息,可以完成PPP/DHCP/L2TP自主拨号,对用户屏蔽网络的维护。
4)新型网络适配器在IPSec VPN场景下,会对发送和接收的数据在网络层进行加密或解密。
5)支持常见的BFD、VRRP、STP等网络链路探测和维护协议,自主完成协议协商和应答。但是需要用户在协议状态变化事件中挂接对应的处理,才能通知到应用程序。
具体地,以下面数据发送和接收为例,详细描述本发明的网络适配器的工作过程。
如图3所示,通过新型网络是适配器进行数据发送包括以下步骤:
步骤301、构造应用层向新型网络适配器一次数据发送所需要的信息,包括但不限于:应用程序模块ID或任务标识、目的IP地址或目的IP地址加目的端口、报文接收处理接口。
其中,应用程序模块ID或任务标识用来在新型网络适配器内区分本机不同的应用程序;
目的IP地址或目的IP地址加目的端口用于网络适配器与远端建立会话;
报文接收处理接口负责将返程数据交给对应的应用层程序处理;
步骤302、应用层调用新型网络适配器提供的接口,传入构造好的数据,准备数据发送;
步骤303、网络适配器根据传入的应用程序ID或任务标识、目的IP地址或目的IP地址加目的端口作为Key值查询对应的会话信息;
步骤304、判断是否存在会话信息,如果会话信息不存在,则转312处理,如果会话存在,转305处理;
步骤305、判断查询到的会话表是否有效,如果会话表有效则转306处理,否则转310处理;
步骤306、获取会话对应的socket信息,并刷新会话表最后使用时间戳,该时间戳标明表项的最后一次使用时间,可供表项老化机制与当前时间对比,以确定表项是否超过了老化周期而要被删除回收;
步骤307、对应用程序的元数据进行TCP/UDP封装;
步骤308、对应用程序元数据或已经做过TCP/UDP封装过的数据帧进行IP层的封装;
步骤309、完成对数据帧的链路层封装;
步骤310、如果相对上次发起会话的时间已经超时,则转312处理,否则转310处理;这里连接超时时间是用来抑制发送数据请求频发触发连接建立请求,减少网络拥塞,这个超时时间是允许用户配置的;
步骤311、返回错误值给应用程序,告知应用程序当前不存在可用会话;
步骤312、根据目的IP地址或目的IP地址+目的端口向远端发起会话建立请求;
步骤313、如果新型网络适配器根据应用程序指定的信息发起会话成功,则转314处理,否则转315处理;
步骤314、根据模块ID或任务标识、IP地址或目的IP地址加目的端口组Key,建立一个伪会话表,保存会话失败标志、本次会话发起时间的时间戳等信息;
相对真正的会话表,伪会话表的特征在于失败标志是适能的,其作用在于记录第一次会话发起时间戳,确保该时间戳以后一段时间内不要频繁发起会话,减少不必要的系统消耗,超过规定时间后,方可再次尝试与远端取建立会话;
步骤315、根据模块ID或任务标识,查询出任务对应报文接收处理接口;
步骤316、会话创建成功后,根据模块ID或任务标识、IP地址或目的IP地址加目的端口组key建立会话表,并关联报文接收处理接口。如果存在伪会话表,则覆盖。
返程数据到达本端新型网络适配器后,会将数据逐层解封装。然后根据会话信息,查询到会话表和对应的报文接收处理接口,将数据交给应用程序处理。如图4所示,接收数据具体执行步骤如下:
步骤401、从链路层获取数据,并解除链路层封装;
步骤402、解析并检查IP层封装,然后剥掉IP层封装;
步骤403、解析并检查TCP/UDP封装,然后剥掉TCP/UDP层封装;
步骤404、根据当前会话信息获取到对应的会话信息;
步骤405、根据当前会话信息构造Key,查询出会话表;
步骤406、判断会话表是否存在且有效,如果会话表存在且有效,转408处理,否则转407处理;
步骤407、如果当前会话表不存在或会话表无效,则将当前数据丢弃;
步骤408、如果当前会话表存在且有效,则调用对应的报文接收处理函数,将元数据交给应用程序处理,然后更新会话表被使用的时间戳。
另外对于网络适配器还要有一套会话表/伪会话表老化机制。确保老化时间达到的会话表和伪会话表被删除回收。
与传统网络适配器相比,支持TCP/IP协议簇的新型网络适配器在硬件架构上需要做一定的扩展才能够实现上述功能,如图5所示,新型网络适配器包括但不局限于以下部件:
1)硬件处理器,可以独立完成常见协议交互和数据处理。此外,还可以包括协处理器,例如,TCP/UDP/IP首部checksum计算的协处理器或其他具备该功能的硬件单元;针对安全应用场景的网络适配器最好具备支持常见加/解密算法的协处理器或其他具备该功能的硬件单元。
3)独立的硬件内存或可以独立使用的主机内存,用于缓存协议交互的报文和数据。
4)独立的非易失性存储单元,保存其运行所需要的软件、用户配置及运行日志。确保主机开机或重启后,网络适配器可以自动恢复到正常工作状态且运行日志不丢失。
5)一定的业务数据处理能力和业务配置接口,以满足用户防火墙、病毒防御等业务需要。
6)多个链路收发模块插槽,以支持多种物理层收发模块或灵活插卡的驱动和自动识别。该网络适配器的工作模式类似一个独立的网络终端,其物理层链路连接模块可支持灵活插卡和自动识别,如ETH链路收发模块、无线链路收发模块、PPP链路收发模块、ATM链路收发模块,这样可以很大程度上增强其在不同链路场景下的实用性,而不必付出多个完整网络配器的代价。例如,在ETH链路场景,跟网络适配器配套使用的是ETH收发插卡或模块,转无线场景使用时,可以更换或增加一个无线收发插卡或模块,而网络适配器主体部分无需更换。这种硬件架构一定程度上降低了网络适配器的成本。
可维护性方面,新型网络适配器为用户提供简便的管理界面或接口,方便用户配置或升级,完成如网络适配器的网络上网方式、IP/DNS配置等。
机译: 使用网络适配器内存来服务数据请求的方法,网络适配器和计算机程序产品
机译: 移动通信网络中的网络适配器和数据传输方法
机译: 一种将4:2:2分量信号的数字样本的串行数据流转换为具有异步传输模式的通信网络适配器的输入数据格式的方法