硬件保障的数据可靠传输系统、控制方法、设备及终端

文档序号:30958541发布日期:2022-07-30 11:24阅读:162来源:国知局
硬件保障的数据可靠传输系统、控制方法、设备及终端

1.本发明属于硬件可靠传输技术领域,尤其涉及一种硬件保障的数据可靠传输系统、控制方法、设备及终端。


背景技术:

2.目前,数据中心网络瓶颈愈发突出,具有网络卸载引擎的智能网卡得到规模部署。卸载引擎网卡需要通过硬件来保证数据的可靠传输,为了保存数据的传输状态,需要消耗较多的片内存储器资源,因此现有的卸载引擎网卡通常采用go-bank-n的重传机制,即在检测到丢帧后,将丢帧的的数据包后所有的数据进行重传输。由于网络中的路径节点和网络转发单元的延迟,数据流有可能乱序到达,采用go-bank-n的重传机制不能支持数据乱序重组,并且存在在丢包时效率低下问题,在1%丢包率时会导致卸载引擎吞吐量接近于0。
3.现有的硬件可靠传输方案大都仅采用数据包序列号机制和确认应答机制。硬件维护有一个数据发送窗口,窗口大小决定了发送节点可以连续发送的未确认的数据包数量,在窗口最早的数据包得到确认后,窗口可以滑动以回收旧的序列号和分配新的可用数据包序列号。现有的应答机制采用显式应答机制,即每个数据包都必须得到一个显式的确认响应。此外,硬件资源中会记录首个未确认的包序列号,在检测到该数据包丢失后,通过pcie链路重新访问主存储器,将后续的所有数据包进行重传输。
4.同时,现有的硬件保障可靠传输机制仅通过定时器和确认应答机制的配合来检测数据包丢失,在网络中不够灵活,并且由于定时器存在的时延,在丢包时会进一步增大网络的时延,而基于硬件的可靠传输一般面向时间敏感网络。应用的请求数据量可能较大,可以跨多个数据包,现有的硬件保障可靠传输机制需要为每一个数据包进行确认应答,在一定程度上浪费了网络的带宽利用率。
5.现有的硬件保障可靠传输机制受片内存储器资源限制,在检测到丢帧时采用go-bank-n的重传机制,这在丢帧时会引起严重的性能下降。现有的硬件保障可靠传输机制不支持网络数据包的乱序重组。收到网络路径和网络节点转发单元的影响,网络数据有可能乱序到达,但是应用是循序使用数据的,因此必须在硬件上进行乱序包重组。现有的一些机制是对乱序的数据包进行重传输,这会导致性能和延迟的恶化。现有的硬件保障可靠传输机制没有针对发送数据进行备份,在收到重传输请求时,需要通过pcie链路重新读取主存储器,这会占用一定的pcie带宽,同时导致时间延迟变大。现有的硬件保障可靠传输机制受限制与硬件资源,仅能支持一千个左右的连接。
6.通过上述分析,现有技术存在的问题及缺陷为:
7.(1)由于网络中的路径节点和网络转发单元的延迟,数据流有可能乱序到达,采用go-bank-n的重传机制不能支持数据乱序重组,并且存在在丢包时效率低下问题,在1%丢包率时会导致卸载引擎吞吐量接近于0。
8.(2)现有的硬件保障可靠传输机制仅通过定时器和确认应答机制的配合来检测数据包丢失,在网络中不够灵活,并且由于定时器存在的时延,在丢包时会进一步增大网络的
时延,而基于硬件的可靠传输一般面向时间敏感网络。
9.(3)现有的硬件保障可靠传输机制应用的请求数据量可能较大,需要为每一个数据包进行确认应答,浪费了网络的带宽利用率;同时不支持网络数据包的乱序重组;或是对乱序的数据包进行重传输,这会导致性能和延迟的恶化。
10.(4)现有的硬件保障可靠传输机制没有针对发送数据进行备份,在收到重传输请求时需要通过pcie链路重新读取主存储器,会占用pcie带宽,导致时间延迟变大;同时受限制与硬件资源,仅能支持一千个左右的连接。


技术实现要素:

11.针对现有技术存在的问题,本发明提供了一种硬件保障的数据可靠传输系统、控制方法、设备及终端。
12.本发明是这样实现的,一种硬件保障的数据可靠传输系统,所述硬件保障的数据可靠传输系统包括存储在片内的元数据和缓存数据的片外存储器,并通过bitmap建立映射关系。
13.其中,所述元数据在发送端与接收端独立维护,用于记录数据的读写类型,读标记数据从远端传输到本地,写标记数据从本地传输到远端;
14.所述发送端与接收端个持有一片大容量片外储存器,用于数据备份和乱序重组;当对应序列号标记为读时,数据源在远端,对应存储器的缓存单元用于数据包缓存和包重组;当对应序列号标记为写时,数据源在本地,对应存储器的缓存单元用于数据包备份。
15.进一步,所述元数据用于维护滑动窗口中每个序列号对应的元数据包状态,包括确认响应标识、读写标识、首帧标识和末帧标识四个状态;每组元数据记录一个连接状态,通过维护多组元数据,进而实现在一台主机上与不同远程主机建立多个连接;所述元数据的索引通过数据包序列号(psn)和滑动窗口大小求余数获得,即psn mod(滑动窗口的值),其中psn是数据的包序列号,滑动窗口大小是一个可配置的值,mod是求余数操作。
16.进一步,所述储存器地址空间被分为多个组,每个组对应元数据的一个组;存储器上的每个组被分为多个缓存单元,每个缓存单元大小等于网络的pmtu,每个组内持有的缓存单元数目等于连接的滑动窗口数目;
17.所述片外储存器的每个缓存单元与所述元数据中的每个数据包一一对应,缓存单元在片外存储器中的索引根据数据包序列号和滑动窗口求余获得。
18.进一步,所述元数据检测到丢帧的方法包括:数据帧在脉冲定时器到来时仍未得到确认标识;在确认标识上产生“缝隙”,表示后发送的数据已经到达,之前的数据可能已经丢失。
19.进一步,所述元数据在收到请求时,为远端返回确认;对于跨越多个数据包的写请求,通过分组码和序列号的组合确认合并;其中数据包中可以携带四种标记首帧标记、中间帧标记、尾帧标记和单帧标记,将四种标记命名为分组码,元数据中只记录首帧标识和末帧标识。
20.进一步,所述元数据在检测到丢帧时,通过nak请求远端重传输数据包,nak消息携带丢失数据帧的序列号;远端的片外存储器通过序列号索引到数据的备份地址,并发起重传输。
21.本发明的另一目的在于提供一种应用所述的硬件保障的数据可靠传输系统的硬件保障的数据可靠传输系统的控制方法,所述硬件保障的数据可靠传输系统的控制方法包括以下步骤:
22.步骤一,通过bitmap建立存储在片内的元数据和缓存数据的片外存储器的映射关系;
23.步骤二,利用元数据在发送端与接收端独立维护,并记录数据的读写类型,读标记数据从远端传输到本地,写标记数据从本地传输到远端;
24.步骤三,利用发送端与接收端个持有的大容量片外储存器进行数据备份和乱序重组;
25.步骤四,当对应序列号标记为读时,数据源在远端,对应存储器的缓存单元用于数据包缓存和包重组;
26.步骤五,当对应序列号标记为写时,数据源在本地,对应存储器的缓存单元用于数据包备份。
27.本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
28.通过bitmap建立存储在片内的元数据和缓存数据的片外存储器的映射关系;利用元数据在发送端与接收端独立维护,并记录数据的读写类型,读标记数据从远端传输到本地,写标记数据从本地传输到远端;利用发送端与接收端个持有的大容量片外储存器进行数据备份和乱序重组;当对应序列号标记为读时,数据源在远端,对应存储器的缓存单元用于数据包缓存和包重组;当对应序列号标记为写时,数据源在本地,对应存储器的缓存单元用于数据包备份。
29.本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
30.通过bitmap建立存储在片内的元数据和缓存数据的片外存储器的映射关系;利用元数据在发送端与接收端独立维护,并记录数据的读写类型,读标记数据从远端传输到本地,写标记数据从本地传输到远端;利用发送端与接收端个持有的大容量片外储存器进行数据备份和乱序重组;当对应序列号标记为读时,数据源在远端,对应存储器的缓存单元用于数据包缓存和包重组;当对应序列号标记为写时,数据源在本地,对应存储器的缓存单元用于数据包备份。
31.本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述的硬件保障的数据可靠传输系统。
32.结合上述的技术方案和解决的技术问题,请从以下几方面分析本发明所要保护的技术方案所具备的优点及积极效果为:
33.第一、针对上述现有技术存在的技术问题以及解决该问题的难度,紧密结合本发明的所要保护的技术方案以及研发过程中结果和数据等,详细、深刻地分析本发明技术方案如何解决的技术问题,解决问题之后带来的一些具备创造性的技术效果。具体描述如下:
34.(1)本发明提供的硬件保障的数据可靠传输服务对网络的传输延迟特别敏感,现有的硬件可靠传输服务通过定时器来检测数据包丢失,当数据丢失时,需要等待定时器周
期结束后才能被检测到,这会导致后续的处理叠加在之前的延时上,对网络的延迟带来较差的影响。而本发明除了基于定时器检测确认响应外,还结合了数据包序列号中的“缝隙”,由于数据包序列号是按序发送,在一个稳定的链路中,当出现确认包的“缝隙”时,可以将其判断为数据包丢失。
35.(2)当请求跨多个数据包时,本发明将多个写请求传输的确认合并到最后一次数据包的确认响应上,这是通过分组码(首帧标记、中间帧标记、尾帧标记和单帧标记)和序列号的组合来实现的。在网络上大包较多时,可以提高链路的带宽利用率。
36.(3)本发明中制定了一套基于元数据和nak机制的选择重传输机制,元数据特定的存储结构决定了其可以找到丢失数据包的psn号,并通过nak消息携带丢失的psn号来进行选择重传。即使在丢包率较高的网络中,也不会带来性能的明显下降。
37.(4)现有的重传方案都在主机的主存储器中备份数据,本发明提出了一种片内存储空制信息,片外存储有效数据的管理方法。通过片内和片外建立映射关系,片外数据可以基于控制信息,被选择性的用于数据备份和乱序包的重组。在发生重传时,降低了pcie链路的带宽占用和延迟。
38.如上述第四点,本发明的片外存储器可以用于接收数据包的缓存,通过psn和缓存单元的特殊映射关系,数据包可以快速存储到片外存储器,当元数据中确认请求的数据包全部到达,可以从片外存储器中提取多个连续的缓存单元数据,实际上,这完成了数据包的乱序重组和缓存。
39.因为元数据和片外存储器的联合,本发明在片内可以高效的支持数千个连接的控制信息存储,而在片外,又可以利用片外存储器的大容量特点,因此,本发明可以支持更多的连接数量。
40.第二,把技术方案看做一个整体或者从产品的角度,本发明所要保护的技术方案具备的技术效果和优点,具体描述如下:
41.本发明提出了一种基于硬件实现的数据帧丢帧检测和重传机制及其控制方法。本发明的技术优点在于:1)提出了一种新的丢帧检测机制,可以降低检测丢帧带来的时间延迟;2)合并多个数据包的响应,提高网络带宽利用率;3)基于元数据结构提出一种选择重传机制,在丢包时,不会引起严重的性能下降;
42.4)引入片内片外联合管理,片内存储控制信息,片外备份数据,在重传输时降低pcie链路访问带宽占用和降低时延;5)支持多个连接的大包乱序重组;6)可以支持较大的连接数,可以在数千个左右。
43.第三,作为本发明的权利要求的创造性辅助证据,还体现在以下几个重要方面:
44.本发明的技术方案转化后的预期收益和商业价值为:本发明属于在网络协议卸载引擎领域的一个关键专利。网络协议卸载引擎通常需要硬件来提供可靠传输服务,传统的卸载引擎无法执行有状态卸载,或者需要嵌入式处理器才能执行完整的卸载方案。本发明通过元数据特殊的存储结构,仅通过硬件来执行数据包的有状态卸载。
附图说明
45.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于
本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
46.图1是本发明实施例提供的硬件保障的数据可靠传输系统控制方法流程图;
47.图2是本发明实施例提供的元数据组织示意图;
48.图3是本发明实施例提供的片外存储器组织示意图;
49.图4是本发明实施例提供的数据包检测丢失的机制(1)示意图;
50.图5是本发明实施例提供的数据包检测丢失的机制(2)示意图;
51.图6是本发明实施例提供的元数据产生“空洞”示意图;
52.图7是本发明实施例提供的元数据预留序列号“空洞”示意图。
具体实施方式
53.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
54.针对现有技术存在的问题,本发明提供了一种硬件保障的数据可靠传输系统、控制方法、设备及终端,下面结合附图对本发明作详细的描述。
55.一、解释说明实施例。为了使本领域技术人员充分了解本发明如何具体实现,该部分是对权利要求技术方案进行展开说明的解释说明实施例。
56.术语解释:rdma:远程内存直接访问;连接:网络中两个端点的通信;mod:求余。
57.实施例1
58.本发明实施例提供的基于硬件实现的数据帧丢帧检测和重传机制及其控制方法,是一种基于fpga或专用定制芯片开发的数据在网络中的可靠传输机制,支持对网络中任意两台建立连接的节点之间的数据进行可靠传输,包括在丢失数据时能够检测到并进行重传输。
59.如图1所示,本发明实施例提供的硬件保障的数据可靠传输系统的控制方法包括以下步骤:
60.s101,通过bitmap建立存储在片内的元数据和缓存数据的片外存储器的映射关系;
61.s102,利用元数据在发送端与接收端独立维护,并记录数据的读写类型,读标记数据从远端传输到本地,写标记数据从本地传输到远端;
62.s103,利用发送端与接收端个持有的大容量片外储存器进行数据备份和乱序重组;
63.s104,当对应序列号标记为读时,数据源在远端,对应存储器的缓存单元用于数据包缓存和包重组;
64.s105,当对应序列号标记为写时,数据源在本地,对应存储器的缓存单元用于数据包备份。
65.本发明实施例提供的硬件保障的数据可靠传输机制及控制方法,包括存储在片内的元数据和缓存数据的片外存储器,并通过bitmap建立映射关系。
66.所述元数据在发送端与接收端独立维护。其中,通过元数据维护了滑动窗口中每
个序列号对应的数据包状态,包括确认响应标识、读写标识、首帧标识和末帧标识四个状态。每组元数据记录一个连接的状态,通过维护多组元数据,可以在一台主机上与不同远程主机建立多个连接。所述元数据的索引通过数据包序列号和滑动窗口大小求余操作获得。
67.所述发送端与接收端个持有一片大容量片外储存器,储存器地址空间被分为多个组,每个组对应元数据的一个组。存储器上的每个组又被分为多个缓存单元,每个缓存单元大小等于网络的pmtu,每个组内持有的缓存单元数目等于连接的滑动窗口数目。所述片外储存器的每个缓存单元与所述元数据中的每个数据包一一对应,缓存单元在片外存储器中的索引通过数据包序列号和滑动窗口大小求余操作获得。
68.所述元数据可以记录数据的读写类型,读标记数据从远端传输到本地,写标记数据从本地传输到远端。所述片外存储器可以用于数据备份和乱序重组,当对应序列号标记为读时,数据源在远端,对应存储器的缓存单元用于数据包缓存、包重组;当对应序列号标记为写时,数据源在本地,对应存储器的缓存单元用于数据包备份。
69.所述元数据有两种方式可以检测到丢帧,一种是数据帧在脉冲定时器到来时仍未得到确认标识;第二种是在确认标识上产生了“缝隙”,这意味着后发送的数据已经到达,之前的数据可能已经丢失。
70.所述元数据在收到请求时,为远端返回确认。对于跨越多个数据包的写请求,确认可以合并,这是通过分组码(首帧标记、中间帧标记、尾帧标记和单帧标记)和序列号的组合来实现的。
71.所述元数据在检测到丢帧时,通过nak请求远端重传输数据包,nak消息携带丢失数据帧的序列号。远端的片外存储器通过序列号索引到数据的备份地址,并发起重传输。
72.实施例2
73.本发明实施例提供的基于硬件实现的数据帧丢帧检测和重传机制及其控制方法,是一种基于fpga或专用定制芯片开发的数据在网络中的可靠传输机制,支持对网络中任意两台建立连接的节点之间的数据进行可靠传输,包括在丢失数据时能够检测到并进行重传输。
74.本发明实施例提供的基于硬件实现的数据帧丢帧检测和重传机制及其控制方法被实现为两个部分,元数据和片外存储器,并通过bitmap建立映射关系。
75.元数据被实现为片内存储器,它维护着一个序列号对应数据包的四个标识:确认响应标识、读写标识、首帧标识和末帧标识,如图2所示。一个连接的元数据仅需要存储一个滑动窗口的数据包状态,每个包消耗4bit,以256大小的滑动窗口为例,仅需要消耗256*4bit=1kb的硬件资源。因此,通过通过增加多个元数据组,可以支持数千个连接。每个数据包在连接内的索引通过psn号mod256即可获得,元数据在最大程度上减小了资源的消耗。
76.片外存储器以pmtu(路径最大传输单元,最长帧长度)为单位,被组织为多个标准单元,每个标准单元对应到一个连接内的一个psn序列号,一个连接所拥有的标准单元等于滑动窗口的大小,该标准单元的集合被称为一个组。一个组只能被一个连接所使用,组内的单元只能被对应psn的数据包使用,由于psn的滑动窗口机制,该单元被所有psn mod(滑动窗口大小)相同的数据包共用。图3展示了片外存储器的标准单元和组的组织形式,其中,pmtu=8kb。
77.元数据维护数据包序列号的分配和确保得到请求得到确认应答。当应用请求读写
数据时,元数据为其在滑动窗口中分配新的数据包序列号,并标记为未得到确认。由于网络pmtu的限制,一个请求可能会消耗多个序列号,元数据通过首帧标识和末帧标识来确定一个数据包跨越的数据包序列号范围。读写标识用于标记数据源在本地或在远端。读标识用于标识卸载引擎从远端读取数据到本地,反之,写标识用于标识卸载引擎从本地读取数据传输到远端。
78.元数据有两种机制检测到数据丢帧,当一个数据包在定时器脉冲到来时仍未得到响应,那么确认数据包丢失,如图4所示;当序列号之间产生“缝隙”,也可以认为数据包丢失。如图5所示。对应的元数据行为如图6所示,在psn为14的地方产生了一个“空洞”。
79.读响应携带有数据,被视为显式响应。需要注意的时,一个读请求可以对应有多个读响应,元数据需要为这些响应预留下数据包的空洞,如图7所示。
80.对于跨越多个数据包的写请求,响应可以合并为一次,即ack消息携带最后一个数据包的序列号,元数据通过首帧标识、末帧标识和序列号的组合,即可确认一个请求得到完整的响应。
81.在检测到数据丢失后,元数据触发nak请求,nak请求携带有丢失数据包的序列号,远端的卸载引擎在收到nak后,通过连接号和数据包的序列号即可找到原数据在片外存储器中的备份地址,通过读取片外存储器,将原数据进行重传。这要求,所有的数据持有者在第一次发送数据时,将数据备份到片外存储器中。在收到重传请求时,nak中的连接对应于片外存储器的组,而(数据包序列号)mod(滑动窗口大小)就是缓存单元在组内的索引。
82.片外存储器还用于接收数据包的乱序重组。对于接收的数据包,会被存储到以连接号和数据包序列号组合索引的缓存单元。数据包序列号被交叉用于读和写请求,片外存储器单元与元数据和序列号一一对应,也被交叉用于发送数据的备份和接收数据的乱序重组、缓存。当元数据中确认一个请求对应的多个数据包得到完整请求后,即可回收序列号并从片外存储器中读取重组后的数据。bitmap中的元数据保证了有效数据不会发生覆盖,当元数据失效后,对应的缓存失效,可以被重新申请用于数据备份或数据缓存。
83.二、应用实施例。为了证明本发明的技术方案的创造性和技术价值,该部分是对权利要求技术方案进行具体产品上或相关技术上的应用实施例。
84.本发明的一个具体应用实例为:应用在tcp卸载引擎网卡中。tcp卸载引擎网卡在建立连接时,初始化一个bitmap做为该连接的私有资源。bitmap中为连接预分配了新的序列号,tcp卸载引擎使用新的序列号数据包与远端进行通信,bitmap中的对应于序列号的元数据记录下数据包的响应状态,在得到确认响应才会释放该元数据资源。同时,根据定时器和元数据中的响应状态的“空洞”,bitmap单元可以发现数据丢失,并在数据丢失时请求数据持有者进行重传输。
85.由于链路的时延,tcp卸载引擎需要采用滑动窗口机制进行数据传输,在bitmap中,每个连接被分配的元数据资源是有限的,且等于滑动窗口大小,这样就实现了通过配置元数据组的大小来调整窗口大小,进而实现tcp的窗口流控机制。
86.tcp卸载引擎需要实现数据分片功能,本发明中的分组码可以指示一个数据包的多个分片,这是通过指示一个数据包是首帧、中间帧或末帧来实现的。通过分组码和序列号的组合,元数据可以确认属于一个数据包的多个数据分片全部得到响应,进而回收数据或者释放对应的存储资源。
87.本发明中的大容量存储器也可用于tcp卸载引擎的发送数据备份和接收数据的乱序重组。当tcp卸载引擎发送数据时,在元数据中标记为“写”,并将数据备份在大容量存储器的缓存单元中;当tcp卸载引擎接收数据时,在元数据中标记为“读”,此时数据在大容量存储器中进行重组包。
88.tcp卸载引擎在丢失数据时可以使用nak请求数据重传输,nak请求携带丢失的数据包序列号,数据持有者通过数据包序列号可以索引到大容量存储器中的数据,并进行重传输操作。
89.三、实施例相关效果的证据。本发明实施例在研发或者使用过程中取得了一些积极效果,和现有技术相比的确具备很大的优势,下面内容结合试验过程的数据、图表等进行描述。
90.本发明通过将元数据与有效数据包分离,并在元数据和数据缓存单元之间建立映射关系,可以在仅消耗很少片内硬件资源的前提下,支持数千个网络连接数。通过元数据和包序列号的组织方式,元数据仅需要4比特位就可以高效的存储每个数据包的所有状态。通过分组码和数据包序列号的组合,元数据可以快速检测到数据丢失,并请求重传输。大容量存储器的地址空间按照连接和数据包序列号进行组织,可以方便的进行发送数据的备份和重传输,同时,也可以为接收数据进行快速的重组包。
91.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1