跨层数据处理方法及系统与流程

专利2022-06-30  71


本发明涉及网络技术领域,特别是涉及一种跨层数据处理方法及系统。



背景技术:

存储系统是指计算机中由存放程序和数据的各种存储设备、控制部件及管理信息调度的设备(硬件)和算法(软件)所组成的系统。从外挂式磁盘存储的角度,存储技术分为三种:直接连接存储(das)、网络连接存储(nas)和存储区域网络(san)。其中nas和san被称为网络存储。网络存储就是通过网络将存储设备连接到应用服务器,为用户提供文件级别的数据访问和共享服务。而网络存储在原存储io堆栈的基础上,又加入了网络模块的io传输。随着存储介质速度的提升,存储网络层逐渐成为了io链路的瓶颈。

目前,市场上主流网络存储产品的软件系统底层都是用类linux内核来实现的,相应的存储网络层使用的是集成到内核里的tcp/ip协议栈。其严格按照tcp/ip五层协议,即应用层、传输层、网络层、数据链路层、物理层,来进行模块划分和代码实现的。这样tcp/ip的每一层是一个单独进程。这样的好处是网络协议的每一层都非常清晰,代码的调试和理解都非常容易。数据包经过每一层来处理协议头,最终实现数据的传输。

现有技术存在如下缺点:

1、针对存储系统,linux内核集成的tcp/ip栈过于复杂,对于内存及cpu资源的消耗比较大,很多功能并不需要。

2、按照标准的tcp/ip协议栈这种严格的分层思想,在数据传输的时候就需要层层拷贝,因为各层之间的内存都不是共用的,在链路层递交到ip层需要拷贝,在ip层递交到传输层需要拷贝,反之亦然,这样子每当收到或者发送一个数据的时候都要cpu去拷贝数据。

3、linux内核集成的tcp/ip栈需要层层剥离、封装协议头,时间开销较大。



技术实现要素:

本发明要解决的技术问题是提供一种跨层数据处理方法及系统,避免了网络数据的跨层拷贝、包头剥离、包头封装的操作,降低空间和时间开销。

为解决上述技术问题,本发明提供了一种跨层数据处理方法,所述方法包括:通过统一的跨层线程,利用分别属于不同层的指针偏移量,对网络数据包的载荷内容进行处理。

在一些实施方式中,指针偏移量包括:协议头偏移量,以及载荷内容偏移量。

在一些实施方式中,通过统一的跨层线程,利用分别属于不同层的指针偏移量,对网络数据包的载荷内容进行处理,包括:通过当前层的协议头偏移量,确定当前层载荷内容的起始点;通过当前层的载荷内容偏移量,确定当前层载荷内容的终止点;根据起始点及终止点,对网络数据包的载荷内容进行处理。

在一些实施方式中,处理包括:载荷内容读取、载荷内容写入。

在一些实施方式中,协议头偏移量通过协议头指针确定。

在一些实施方式中,载荷内容偏移量通过载荷内容指针确定。

此外,本发明还提供了一种跨层数据处理系统,所述系统包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现根据前文所述的跨层数据处理方法。

采用这样的设计后,本发明至少具有以下优点:

提高了网络数据包的处理速度,包括降低时间和空间的开销。

附图说明

上述仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,以下结合附图与具体实施方式对本发明作进一步的详细说明。

图1是本发明实施例提供的跨层数据处理方法应用场景的示意图;

图2是本发明实施例提供的跨层数据处理方法的原理示意图;

图3是本发明实施例提供的跨层数据处理系统的结构图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1示出了本发明提供的跨层数据处理方法的应用场景。参见图1,在应用场景,文件系统要访问硬件/固件,需要通过tcp/ip协议栈访问。本领域技术人员应当知晓,tcp/ip协议栈包括多个不同的协议层。典型的,tcp/ip协议栈包括数据链路层、网络层、传输层和应用层。对于一个具体的数据分组或者数据包,相对于一个确定的协议层,其中都可以找到对应于该层的协议头和载荷内容。

图2示出了本发明提供的跨层数据处理方法的原理。参见图2,现有技术中访问一个数据分组,通常会涉及到在不同的协议层之间进行数据拷贝。数据拷贝之后,还会进一步的涉及剥离或者封装协议头的操作。显然,这些操作都会耗费相当的时间或者空间开销。

而且,在现有技术中,在不同的协议层中进行数据操作时,都需要使用一个独立的线程。也就是说,访问传输层数据,需要使用传输层对应的线程;访问网络层数据,需要使用网络层对应的线程。这无疑是一种资源上的浪费。

参见图2,本发明提供的技术方案在访问分属于不同层的数据时,均使用同一个线程。而且,访问数据时,不再执行数据拷贝、协议头剥离、协议头封装。而是使用对应的指针偏移量,直接跳过协议头,访问数据载荷内容。

换言之,访问数据分组的载荷数据时,不再执行数据的跨层拷贝,而是执行偏移指针的传递。

以访问网络层数据为例,首先根据网络层协议头偏移指针确定网络层载荷数据的数据起点,在根据网络层载荷偏移指针确定网络层载荷数据的数据终点,在确定了数据起点和数据终点之后,就可以根据确定了数据起点和数据终点的数据区段来执行相应的数据访问。

这样一来,数据分组的访问就不必再执行数据拷贝、协议头剥离、协议头封装的操作,直接根据数据偏移量就可以直接确定需要被访问的数据在何处,从而有效的降低了时间和空间开销。

图3示出了跨层数据处理系统的典型结构。例如,所述跨层数据处理系统300可以用于充当存储设备等的存储设备。如本文所述,跨层数据处理系统300可以用于在网络设备中实现跨层数据处理的功能,节约时间和空间开销。跨层数据处理系统300可以在单个节点中实现,或者跨层数据处理系统300的功能可以在网络中的多个节点中实现。本领域的技术人员应意识到,术语跨层数据处理系统包括广泛意义上的设备,图3中示出的跨层数据处理系统300仅是其中一个示例。包括跨层数据处理系统300是为了表述清楚,并不旨在将本发明的应用限制为特定的跨层数据处理系统实施例或某一类跨层数据处理系统实施例。本发明所述的至少部分特征/方法可以在网络装置或组件,例如,跨层数据处理系统300,中实现。例如,本发明中的特征/方法可以采用硬件、固件和/或在硬件上安装运行的软件实现。跨层数据处理系统300可以是任何通过网络处理,存储和/或转发数据帧的设备,例如,服务器,客户端,数据源等。如图3所示,跨层数据处理系统300可以包括收发器(tx/rx)310,其可以是发射器,接收器,或其组合。tx/rx310可以耦合到多个端口350(例如上行接口和/或下行接口),用于从其他节点发送和/或接收帧。处理器330可耦合至tx/rx310,以处理帧和/或确定向哪些节点发送帧。处理器330可以包括一个或多个多核处理器和/或存储器设备332,其可以用作数据存储器,缓冲区等。处理器330可以被实现为通用处理器,或者可以是一个或多个专用集成电路(applicationspecificintegratedcircuit,简称asic)和/或数字信号处理器(digitalsignalprocessor,简称dsp)的一部分。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,本领域技术人员利用上述揭示的技术内容做出些许简单修改、等同变化或修饰,均落在本发明的保护范围内。


技术特征:

1.一种跨层数据处理方法,其特征在于,包括:

通过统一的跨层线程,利用分别属于不同层的指针偏移量,对网络数据包的载荷内容进行处理。

2.根据权利要求1所述的跨层数据处理方法,其特征在于,指针偏移量包括:协议头偏移量,以及载荷内容偏移量。

3.根据权利要求2所述的跨层数据处理方法,其特征在于,通过统一的跨层线程,利用分别属于不同层的指针偏移量,对网络数据包的载荷内容进行处理,包括:

通过当前层的协议头偏移量,确定当前层载荷内容的起始点;

通过当前层的载荷内容偏移量,确定当前层载荷内容的终止点;

根据起始点及终止点,对网络数据包的载荷内容进行处理。

4.根据权利要求3所述的跨层数据处理方法,其特征在于,处理包括:载荷内容读取、载荷内容写入。

5.根据权利要求3所述的跨层数据处理方法,其特征在于,协议头偏移量通过协议头指针确定。

6.根据权利要求3所述的跨层数据处理方法,其特征在于,载荷内容偏移量通过载荷内容指针确定。

7.一种跨层数据处理系统,其特征在于,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现根据权利要求1至6任意一项所述的跨层数据处理方法。

技术总结
本发明提供了一种跨层数据处理方法及系统。所述方法包括:通过统一的跨层线程,利用分别属于不同层的指针偏移量,对网络数据包的载荷内容进行处理。本发明提供的跨层数据处理方法及系统避免了网络数据的跨层拷贝、包头剥离、包头封装的操作,降低空间和时间开销。

技术研发人员:于召鑫;王道邦;王爽;段舒文;陈凯余;谭建华;周泽湘;罗华;仇悦;文中领
受保护的技术使用者:北京同有飞骥科技股份有限公司
技术研发日:2020.01.07
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-55886.html

最新回复(0)