CN113572582B - 数据发送、重传控制方法及系统、存储介质及电子设备 - Google Patents
数据发送、重传控制方法及系统、存储介质及电子设备 Download PDFInfo
- Publication number
- CN113572582B CN113572582B CN202110799123.6A CN202110799123A CN113572582B CN 113572582 B CN113572582 B CN 113572582B CN 202110799123 A CN202110799123 A CN 202110799123A CN 113572582 B CN113572582 B CN 113572582B
- Authority
- CN
- China
- Prior art keywords
- module
- network
- data packet
- network data
- buffer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1848—Time-out mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1874—Buffer management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种数据发送控制方法,包括以下步骤:步骤1、发送控制模块通过系统总线模块从内存模块中读取待发送数据,并将所述待发送数据封装为网络数据包;步骤2、所述发送控制模块从元数据模块中获取缓冲区模块的当前状态来判断所述缓冲区模块的存储空间是否已满,若是,则执行步骤3;否则,执行步骤4;步骤3、根据替换算法用所述网络数据包将所述缓冲区模块的数据换出;步骤4、将所述网络数据包写入所述缓冲区模块;步骤5、将所述网络数据包推送到网络中。
Description
技术领域
本发明涉及网络通信技术领域,特别是涉及一种数据发送、重传控制方法及系统、存储介质及电子设备。
背景技术
在当代数据中心内部,分布式应用承载了绝大多数核心业务,各种各样的分布式应用被用于满足用户多样化的需求。而这些应用在运行过程中会进行大量的网络通信,一旦出现数据包丢失将对应用性能造成严重的影响。因此,如何为应用提供可靠性网络传输保障是一个至关重要的问题。
目前保障可靠性网络传输的方法有两类:一类通过软件实现数据包重传算法,其主要优势是对传输层协议能够进行灵活的改动,能够适配不同的网络环境,但是由于数据重传过程由处理器全程参与,其重传延迟较高,且会消耗大量处理器资源;另一类是在网卡芯片上实现数据重传算法,以降低重传的延迟开销,其主要优势是重传算法被实现为特定的硬件模块,处理延迟低于处理器,同时,处理器不再参与数据传输的处理,能够有效提高处理器的使用效率。
下面分析两种传统基于专用硬件的重传系统中存在的问题。
第一种,当处理器准备好待发送的网络数据后,网卡发送控制器从内存中读取数据,进行数据包封装,并将其推送到网络当中。当数据接收方收到网络数据包后,将返回一个响应包,以通知发送方数据已经成功接收。当发送方的接收控制器收到一个响应包后,将通过中断的方式告知处理器当前数据包已经处理完成,其占用的内存缓冲区可以被释放。当发送方的接收控制器在一段时间内没有收到响应包,将触发重传机制,其将重传最早发出的未被确认的数据包。此种系统存在的问题如下:当需要进行数据包重传时,网卡需要通过系统总线从主机内存中获取数据进行重传,增加了重传延迟。
第二种,当处理器准备好待发送的网络数据后,网卡发送控制器从内存中读取数据,同时将数据写入网卡的内存缓存中,并对数据进行数据包封装,将其推送到网络当中,一旦数据包进入网络,内存中的数据缓冲区就可以进行释放。当数据接收方收到网络数据包后,将返回一个响应包,以通知发送方数据已经成功接收。当发送方的接收控制器收到一个响应包后,将网卡上的缓冲区进行释放。当发送方的接收控制器在一段时间内没有收到响应包,将触发重传机制,其将从网卡内部缓冲区中读取最早发送的未被确认的数据包,并重置定时器。此种系统存在的问题如下:网卡上的缓冲区释放依赖于响应包的到达,当网络延迟较高,确认包无法及时到达,缓冲区将不能有效释放,从而阻塞后续数据包的发送。
发明内容
为了解决上述问题,本发明的主要目的在于提供一种数据发送、重传方法及数据发送与重传系统、存储介质及电子设备。
为了实现上述目的,本发明提供了一种数据发送方法,包括以下步骤:
步骤1、发送控制模块通过系统总线模块从内存模块中读取待发送数据,并将所述待发送数据封装为网络数据包;
步骤2、所述发送控制模块从元数据模块中获取缓冲区模块的当前状态来判断所述缓冲区模块的存储空间是否已满,若是,则执行步骤3;否则,执行步骤4;
步骤3、根据替换算法用所述网络数据包将所述缓冲区模块的数据换出;
步骤4、将所述网络数据包写入所述缓冲区模块;
步骤5、将所述网络数据包推送到网络中。
为了实现上述目的,本发明还提供了一种数据重传方法,包括以下步骤:
步骤6、接收控制模块接收到定时器超时事件;
步骤7、根据所述定时器超时事件中携带的连接信息从元数据模块中获取当前连接占用的缓冲区模块信息,并获取所述缓冲区模块中队首网络数据包的序列号,以及当前未确认的网络数据包的序列号N。
步骤8、发送控制模块读取所述缓冲区模块中的队首网络数据包并获取其序列号M,比较所述队首网络数据包的序列号和所述未确认的网络数据包的序列号大小,若M>N,执行步骤9,若M<=N,执行步骤10;
步骤9、由所述未确认的网络数据包的序列号计算出所述未确认的网络数据包在内存模块中的位置,并从内存模块中读取所述未确认的网络数据包重新推送到网络中;
步骤10、从缓冲区模块读取所述队首网络数据包推送到网络中。
为了实现上述目的,本发明还提供了一种网卡设备,包括:缓冲区模块、发送控制模块、接收控制模块、及元数据模块;
其中,所述缓冲区模块用于缓存已经注入网络但尚未被确认的网络数据包;所述发送控制模块用于从一内存模块中读取及封装待发送数据为所述网络数据包,并将所述网络数据包写入所述缓冲区模块,及将所述网络数据包推送到网络中;所述接收控制模块内含一定时器,用于当出现定时器超时事件,将生成重传信息通知所述发送控制模块进行所述网络数据包重传;所述元数据模块用于所述网络数据包对所述缓冲区模块的使用信息,及未被确认的所述网络数据包在所述内存模块中的起始地址。
为了实现上述目的,本发明还提供了一种数据发送与重传系统,用于实现上述的数据发送方法和/或上述的数据重传方法,包括:
内存模块、系统总线模块及上述的网卡设备;
其中,所述内存模块用于存储待发送数据;所述发送控制模块通过所述系统总线模块从所述内存模块中读取及封装所述待发送数据为所述网络数据包,并将所述网络数据包写入所述缓冲区模块。
为了实现上述目的,本发明还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,实现上述的数据发送方法和/或上述的数据重传方法。
为了实现上述目的,本发明还提供了一种电子设备,包括:处理器和存储器,所述存储器内存储有可在所述处理器运行的计算机程序,当所述计算机程序被所述处理器执行时,实现上述的数据发送方法和/或上述的数据重传方法。
本发明的有益效果为:
第一,网卡设备上的缓冲区模块的空间被占满后仍然能够无阻塞地继续发送网络数据包,能够有效避免由于网络延迟太高导致缓冲区模块的空间被占满,而导致网络数据包阻塞的问题发生;
第二,同时在网卡设备上和内存模块中维护数据缓冲区,确保了如果出现网络数据包丢失,且网络数据包暂存在网卡设备上的缓冲区模块中,能够尽快对网络数据包进行重传,可以有效减少重传延迟。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1为本发明一实施例的数据发送与重传控制系统的模块图。
图2为本发明一实施例的数据发送控制方法的流程图。
图3为本发明一实施例的数据重传控制方法的流程图。
具体实施方式
下面结合附图对本发明的结构原理和工作原理作具体的描述:
本发明的目的是解决现有技术中的可靠性网络数据发送与重传技术的问题,提出了一种加速可靠性的数据发送与重传方法和系统。所述数据发送与重传控制系统100整体如图1所示,包括:网卡设备10(内含缓冲区模块11、发送控制模块12、接收控制模块13及元数据模块14)、内存模块20及系统总线模块30。其中,内存模块20中包含待发送数据缓冲区21,用于存储待发送数据,即待发送的网络数据。
本发明的实施例中,缓冲区模块11,其可以是独立于主机的内存模块20之外的存储模块,位于网卡设备10和主机的内存模块20之间,也可以是网卡设备19上附带的缓存模块,也可以是一个独立的新增的存储模块。缓冲区模块11的功能在于缓存已经注入网络但尚未被接收方确认的网络数据包,在网络检测到数据包丢失时,可以从缓冲区模块11或者内存模块20(待发送数据缓冲区21)中重新获取数据进行重传。另外,同一个连接的网络数据包在缓冲区模块11中在逻辑上以队列的形式进行管理,先入队的网络数据包注入网络的时间先于后入队的网络数据包。本发明的实施例不对队列占用缓冲区模块11空间的方式进行限定,可以采用连续分配或者离散分配。与背景技术中第二种系统中的缓冲区模块不同,本发明的实施例所提系统中的缓冲区模块11具有可替换的能力,即当缓存空间已满而有新数据需要写入时,缓冲区模块11可以将部分数据清除,以获取新的空间进行使用。
发送控制模块12,其功能在于,当主机的内存模块20中有待发送数据需要发送时,从内存模块20中获取待发送数据,并按照链路层最大消息传输单元进行数据切分,为切分后的数据段添加相应的包头,将待发送数据写入缓冲区模块11。如果缓冲区模块11的空间已经被写满,则根据替换算法将缓冲区模块11中的部分数据进行换出,然后将待发送数据写入缓冲区模块11中并推送到网络当中。当出现丢包需要重传数据包时,发送控制模块根据元数据模块14中的元数据信息从主机的内存模块20或网卡设备10的缓冲区模块11中选择合适的网络数据包进行重传。本发明并不对网络传输协议的类型进行限定,可以是InfiniBand,以太网或者Fibre Channel等。
接收控制模块13,其功能在于,对接收到的网络数据包进行处理,并检测网络传输过程中是否出现了丢包,从而通知发送控制模块进行缓冲区模块11进行空间释放或网络数据包重传。其内部为每个通信连接维护了一个定时器。在初始状态下,定时器被置为关闭状态。当发送控制模块12将网络数据包推送到网络后,定时器被激活。之后每当接收控制模块13收到一个网络数据包的确认包后,其都将通知定时器进行重置。当出现定时器超时事件,说明接收控制模块13已经长时间未收到确认包,此时接收控制模块13将生成重传信息通知发送控制模块12进行网络数据包重传。如果接收控制模块13收到一个有效的确认包,代表当前网络请求中的一部分网络数据包已经被通信对端确认,此时接收控制模块13将生成完成事件或中断,以通知处理器网络数据包处理完成,通知发送控制模块12对已经确认的网络数据包进行缓冲区模块11释放,并更新连接的元数据信息。
元数据模块14,其功能在于,保存每个连接当前对缓冲区模块11的使用状态。对于每个可靠连接,该模块维护两类元数据信息:
1.缓冲区模块11的空间使用信息。由于网卡设备10上的缓冲区模块11由多个连接共享使用,因此,需要记录每个连接对缓冲区模块11的空间使用情况,以便发送控制模块12对缓冲区模块的空间进行申请使用和释放;
2.主机的内存模块20中未被确认的网络数据包信息。由于缓冲区模块11中的网络数据包可能被新发送的网络数据包替换掉,因此,需要记录每个连接未被确认的网络数据包在内存模块20中的起始地址,以便发送控制模块12无法从网卡设备10的缓冲区模块11中获取网络数据包进行重传时,能够从主机的内存模块20中获取到进行重传的数据。
系统总线模块30,其功能在于,连接节点内部各个功能模块,其自身具备路由功能,能够根据所承载网络数据包中相关的总线协议字段,转发系统中不同模块之间的控制信息和数据信息。本发明并不对系统总线的类型进行限定,可以是PCI,PCI-X,PCIe,AXI等。
内存模块20,其功能在于,存储待发送的网络数据。
本发明的实施例还提出一种数据发送控制方法、及一种数据重传控制方法,上述方法可以通过上述实施例的数据发送与重传控制系统来实现。
如图2所示,在本实施例中,一种数据发送控制方法包括:
步骤S1、发送控制模块12通过系统总线模块30从内存模块20中读取待发送数据,并将待发送数据封装为网络数据包。其中,发送控制模块12将待发送数据切分为多个数据段,并分别对多个数据段添加网络包头以对应得到多个网络数据包。
步骤S2、发送控制模块从元数据模块中获取缓冲区模块的当前状态来判断缓冲区模块的存储空间是否已满,若是,则执行步骤S3;否则,执行步骤S4。
步骤S3、根据替换算法用网络数据包将缓冲区模块的数据换出。其中,从元数据模块获取当前连接的占用的缓冲区模块信息,将新的网络数据包写入缓冲区模块的队列队首,原有队列队首数据将被覆盖,新的网络数据包成为新的队尾,原有队列中的第二个网络数据包成为新的队列队首,同时更新缓冲区模块中队列的队首及队尾信息。
步骤S4、将网络数据包写入缓冲区模块。其中,将网络数据包写入缓冲区模块中队列的队尾,并更新缓冲区模块中队列的队尾信息。
步骤S5、将网络数据包推送到网络中。
如图3所示,在本实施例中,一种数据重传控制方法包括:
步骤S6、接收控制模块13接收到定时器超时事件;
步骤S7、根据定时器超时事件中携带的连接信息从元数据模块14中获取当前连接占用的缓冲区模块11信息,并获取缓冲区模块11中队首网络数据包的序列号,记为M,以及当前未确认的网络数据包的序列号,记为N。
步骤S8、比较队首网络数据包的序列号M和未确认的网络数据包的序列号N的大小,若M>N,执行步骤S9,若M<=N,执行步骤S10;
步骤S9、由未确认的网络数据包的序列号计算出未确认的网络数据包在内存模块20中的位置,并从内存模块20中读取未确认的网络数据包重新推送到网络中;
步骤10、从缓冲区模块11读取队首网络数据包推送到网络中。
综上,当发送控制模块12需要发送网络数据包时,首先判定当前缓冲区模块11是否有空余空间,如果有空余空间,则将待发送的网络数据包写入缓冲区模块11,并将网络数据包推送到网络当中;如果当前缓冲区模块11的空间已经被写满,则根据元数据模块14中保存的连接状态信息从缓冲区模块11中选择部分网络数据包进行剔除以释放部分空间,从而将待发送的网络数据包写入。当发送控制模块12需要对网络数据包进行重传时,根据其维护的未确认的网络数据包的序列号,判定当前网络数据包的位置,如果该网络数据包位于主机的内存模块20中,则从内存模块20中获取该网络数据包进行重传;如果该网络数据包位于缓冲区模块11中,则从缓冲区模块11中进行读取及重传。
以下以一个具体实施例对上述内容进一步说明。上述实施例的数据发送与重传控制系统包括:网卡设备10(内含缓冲区模块11、发送控制模块12、接收控制模块13及元数据模块14)、内存模块20及系统总线模块30。
其中,网卡设备10包括RDMA(Remote Direct Memory Access,远程内存访问)网卡实现,是一个标准PCIe设备;
缓冲区模块11,由网卡设备10的片上Block RAM实现,其它模块可以通过高速AXI接口对该模块的内容进行读写。为最大化缓冲区模块的空间利用效率,缓冲区模块的空间的申请采用离散式分配策略,不同的缓冲区模块通过链表进行组织,逻辑上每个连接的网络数据包构成一个队列,每个队列拥有自己的头指针和尾指针信息。可以使用的空闲的缓冲区模块信息通过一个队列保存,队列深度表征当前缓冲区模块的可用空间的大小。
发送控制模块12,可以对待发送数据进行分段,为其添加网络包头,并在发生丢包时进行数据包重传。其可以是网卡设备10中的一个硬件模块或是运行在网卡设备10上的嵌入式处理器上的一段控制程序。在本实施例中,发送控制模块12例如采用硬件模块;
接收控制模块13,其可以对丢包进行检测。其可以是网卡设备10中的一个硬件模块或是运行在网卡设备10上的嵌入式处理器上的一段控制程序。在本实施例中,接收控制模块13例如采用硬件模块;
元数据模块14,用于保存每个连接的相关元数据信息,由网卡设备10的片上BlockRAM实现,其它模块可以通过高速AXI接口对该模块的内容进行读写。元数据模块14保存的元数据信息包括:每个连接的队列头指针和尾指针信息,每个连接的未确认数据包的序列号信息,每个连接的发送网络数据包在内存模块20中的起始地址信息。
内存模块20,用于存储待发送的网络数据,具体而言,在RDMA网络中,每段待发送数据都属于一个或多个内存区域;
系统总线模块30,其采用PCIe总线;
以下为一种可靠性传输的数据发送控制方法的具体实施例,其包括以下步骤:
1.发送控制模块12通过PCIe总线(总线模块30)从内存模块20的待发送数据缓冲区21中读取待发送数据,并将待发送数据封装为RDMA网络数据包,其中每个RDMA网络数据包的包头携带通信对端地址信息、长度信息、以及序列号信息;
2.发送控制模块12发起AXI数据读请求,从元数据模块14中读取当前缓冲区模块11的状态,如果缓冲区模块11空间已满,则执行步骤3;否则,执行步骤4;
3.将新的RDMA网络数据包写入头指针指向的缓冲区,原有队首RDMA网络数据包将被覆盖。同时,将头指针赋给当前尾指针,并将头指针指向原先头指针指向的下一个数据元素;
4.将RDMA网络数据包写入缓冲区模块11的队列队尾中,并更新尾指针指向新写入的RDMA网络数据包。
5.将RDMA网络数据包推送到网络中。
以下为一种可靠性传输的数据重传控制方法的具体实施例,其包括以下步骤:
1.接收控制模块13收到定时器超时事件;
2.根据事件中携带的队列对(Queue Pair,QP)信息(连接信息)从元数据模块14中获取当前连接占用的缓冲区模块11信息,并获取缓冲区模块11的队首RDMA网络数据包的序列号(Packet Sequence Number,PSN),以及当前尚未确认的RDMA网络数据包的序列号,并将重传控制信息传递给发送控制模块12。
3.发送控制模块12接收到重传控制信息,根据QP信息从缓冲区模块11中读取队首RDMA网络数据包,获取其序列号信息。比较队首RDMA网络数据包的序列号和未确认的RDMA网络数据包的序列号大小。记队首RDMA网络数据包的序列号大小为M,未确认的RDMA网络数据包的序列号大小为N。若M>N,转步骤4;若M<=N,转步骤5;
4.由RDMA网路数据包的序列号计算出其在主机的内存模块20中的位置,并从主机的内存模块20中读取需要重传的数据并生成RDMA网络数据包发向网络;
5.从缓冲区模块11读取队首RDMA网络数据包发向网络。
基于相同的发明构思,本发明的实施例还提出一种电子设备,在本实施例中,电子设备包括处理器和存储器;处理器与存储器为直接或间接地电性连接,以实现数据的传输或交互。所述存储器内存储有可在所述处理器运行的计算机程序,当所述计算机程序被所述处理器执行时,实现上述实施例中提出的数据发送控制方法或者数据重传控制方法。
基于相同的发明构思,本发明的实施例还提出一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被处理器执行时,实现上述实施例中提出的数据发送控制方法或者数据重传控制方法。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (9)
1.一种数据发送与重传控制方法,其特征在于,包括:
步骤1、网卡发送控制模块通过系统总线模块从内存模块中读取待发送数据,并将所述待发送数据封装为网络数据包;
步骤2、所述网卡发送控制模块从元数据模块中获取缓冲区模块的当前状态来判断所述缓冲区模块的存储空间是否已满,若是,则执行步骤3;否则,执行步骤4;
步骤3、根据替换算法用所述网络数据包将所述缓冲区模块的数据换出;
步骤4、将所述网络数据包写入所述缓冲区模块;
步骤5、将所述网络数据包推送到网络中;
步骤6、接收控制模块接收到定时器超时事件;
步骤7、所述接收控制模块根据所述定时器超时事件中携带的连接信息从元数据模块中获取当前连接占用的缓冲区模块信息,并获取所述缓冲区模块中队首网络数据包的序列号M,以及当前未确认的网络数据包的序列号N;
步骤8、所述网卡发送控制模块比较所述队首网络数据包的序列号M和所述未确认的网络数据包的序列号N的大小,若M>N,执行步骤9,若M<=N,执行步骤10;
步骤9、由所述未确认的网络数据包的序列号计算出所述未确认的网络数据包在内存模块中的位置,并从所述内存模块中读取所述未确认的网络数据包重新推送到网络中;
步骤10、从缓冲区模块读取所述队首网络数据包推送到网络中;
所述数据发送与重传控制方法适用的网络传输协议的类型包括InfiniBand、以太网及Fibre Channel。
2.如权利要求1所述的数据发送与重传控制方法,其特征在于,所述步骤1中的将所述待发送数据封装为网络数据包包括:
所述网卡发送控制模块将所述待发送数据切分为多个数据段,并分别对所述多个数据段添加网络包头以对应得到多个所述网络数据包。
3.如权利要求1所述的数据发送与重传控制方法,其特征在于,所述步骤3包括:从元数据模块获取当前连接的占用的所述缓冲区模块信息,将新的所述网络数据包写入缓冲区模块的队列队首,原有所述队列队首数据将被覆盖,新的所述网络数据包成为新的队尾,原有所述队列中的第二个网络数据包成为新的队列队首,同时更新缓冲区模块中所述队列的队首及队尾信息。
4.如权利要求1所述的数据发送与重传控制方法,其特征在于,所述步骤4包括:将所述网络数据包写入所述缓冲区模块中队列的队尾,并更新所述缓冲区模块中所述队列的队尾信息。
5.如权利要求1-4任一所述的数据发送与重传控制方法,其特征在于,所述网络数据包占用所述缓冲区模块的方式采用连续分配或者离散分配。
6.一种网卡设备,其特征在于,包括:缓冲区模块、网卡发送控制模块、接收控制模块、及元数据模块;
其中,所述缓冲区模块用于缓存已经注入网络但尚未被确认的网络数据包;所述网卡发送控制模块用于从一内存模块中读取及封装待发送数据为所述网络数据包,并将所述网络数据包写入所述缓冲区模块,及将所述网络数据包推送到网络中;所述接收控制模块内含一定时器,用于当出现定时器超时事件,将生成重传信息通知所述网卡发送控制模块进行所述网络数据包重传;所述元数据模块用于所述网络数据包对所述缓冲区模块的使用信息,及未被确认的所述网络数据包在所述内存模块中的起始地址;
所述接收控制模块根据所述定时器超时事件中携带的连接信息从元数据模块中获取当前连接占用的缓冲区模块信息,并获取所述缓冲区模块中队首网络数据包的序列号M,以及当前未确认的网络数据包的序列号N;
所述网卡发送控制模块比较所述队首网络数据包的序列号M和所述未确认的网络数据包的序列号N的大小,若M>N,则由所述未确认的网络数据包的序列号计算出所述未确认的网络数据包在内存模块中的位置,并从所述内存模块中读取所述未确认的网络数据包重新推送到网络中,若M<=N,则从缓冲区模块读取所述队首网络数据包推送到网络中;
所述网卡设备适用的网络传输协议的类型包括InfiniBand、以太网及Fibre Channel。
7.一种数据发送与重传控制系统,用于实现如权利要求1-5任一所述的数据发送与重传控制方法,其特征在于,包括:
内存模块、系统总线模块及如权利要求6所述的网卡设备;
其中,所述内存模块用于存储待发送数据;所述网卡发送控制模块通过所述系统总线模块从所述内存模块中读取及封装所述待发送数据为所述网络数据包,并将所述网络数据包写入所述缓冲区模块。
8.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-5任一所述的数据发送与重传控制方法。
9.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器内存储有可在所述处理器运行的计算机程序,当所述计算机程序被所述处理器执行时,实现如权利要求1-5任一所述的数据发送与重传控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110799123.6A CN113572582B (zh) | 2021-07-15 | 2021-07-15 | 数据发送、重传控制方法及系统、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110799123.6A CN113572582B (zh) | 2021-07-15 | 2021-07-15 | 数据发送、重传控制方法及系统、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113572582A CN113572582A (zh) | 2021-10-29 |
CN113572582B true CN113572582B (zh) | 2022-11-22 |
Family
ID=78164973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110799123.6A Active CN113572582B (zh) | 2021-07-15 | 2021-07-15 | 数据发送、重传控制方法及系统、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113572582B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114375019A (zh) * | 2022-01-18 | 2022-04-19 | 北京智联安科技有限公司 | 一种NB-IoT移动状态数据重传方法及系统 |
CN114928573B (zh) * | 2022-05-20 | 2024-09-24 | 中国科学院计算技术研究所 | 一种数据的传输方法及系统 |
CN117692109A (zh) * | 2023-12-21 | 2024-03-12 | 中国电信股份有限公司技术创新中心 | 远程直接内存访问的数据重传方法及相关设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425977A (zh) * | 2008-11-25 | 2009-05-06 | 北京航空航天大学 | 一种空地数据通信控制系统 |
CN102075436A (zh) * | 2011-02-10 | 2011-05-25 | 成都市华为赛门铁克科技有限公司 | 以太网络及其数据传输方法和装置 |
CN103647625A (zh) * | 2013-11-19 | 2014-03-19 | 中国科学院计算技术研究所 | 一种基于链路的数据可靠传输方法 |
CN104883335A (zh) * | 2014-02-27 | 2015-09-02 | 王磊 | 一种全硬件tcp协议栈实现方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002023778A2 (en) * | 2000-09-12 | 2002-03-21 | Innovative Communications Technologies, Inc. | Bit synchronizer and internetworking system and method |
CN100442755C (zh) * | 2003-11-14 | 2008-12-10 | 华为技术有限公司 | 一种保证通用路由封装隧道传输可靠的方法 |
CN101409715B (zh) * | 2008-10-22 | 2012-04-18 | 中国科学院计算技术研究所 | 一种利用InfiniBand网络进行通信的方法及系统 |
CN101867972B (zh) * | 2010-06-29 | 2012-12-12 | 中国科学院计算技术研究所 | 无线链路控制层非确认模式下的数据传输方法 |
JP2012085244A (ja) * | 2010-10-15 | 2012-04-26 | Fujitsu Ltd | シリアル伝送装置、情報処理装置、及びシリアル伝送方法 |
US9436651B2 (en) * | 2010-12-09 | 2016-09-06 | Intel Corporation | Method and apparatus for managing application state in a network interface controller in a high performance computing system |
CN104484295B (zh) * | 2014-12-16 | 2017-03-22 | 中国人民解放军国防科学技术大学 | 并行计算机系统中基于接收方滑动窗口的数据传输方法 |
US10069727B2 (en) * | 2015-04-17 | 2018-09-04 | International Business Machines Corporation | Data packet retransmission processing |
CN109327288B (zh) * | 2015-12-14 | 2023-11-10 | 华为技术有限公司 | 数据传输加速方法、装置及系统 |
CN108073527B (zh) * | 2016-11-07 | 2020-02-14 | 华为技术有限公司 | 一种缓存替换的方法和设备 |
US11172016B2 (en) * | 2017-03-30 | 2021-11-09 | Intel Corporation | Device, method and system to enforce concurrency limits of a target node within a network fabric |
CN110661723B (zh) * | 2018-06-29 | 2023-08-22 | 华为技术有限公司 | 一种数据传输方法、计算设备、网络设备及数据传输系统 |
CN109117386B (zh) * | 2018-07-12 | 2021-03-09 | 中国科学院计算技术研究所 | 一种网络远程读写二级存储的系统及方法 |
CN112559436B (zh) * | 2020-12-16 | 2023-11-03 | 中国科学院计算技术研究所 | 一种rdma通信设备的上下文访问方法及系统 |
-
2021
- 2021-07-15 CN CN202110799123.6A patent/CN113572582B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425977A (zh) * | 2008-11-25 | 2009-05-06 | 北京航空航天大学 | 一种空地数据通信控制系统 |
CN102075436A (zh) * | 2011-02-10 | 2011-05-25 | 成都市华为赛门铁克科技有限公司 | 以太网络及其数据传输方法和装置 |
CN103647625A (zh) * | 2013-11-19 | 2014-03-19 | 中国科学院计算技术研究所 | 一种基于链路的数据可靠传输方法 |
CN104883335A (zh) * | 2014-02-27 | 2015-09-02 | 王磊 | 一种全硬件tcp协议栈实现方法 |
Non-Patent Citations (1)
Title |
---|
"C1-198173_TS 24.5xy rel16 DS-TT initiated exchange of port management capabilities v2".《3GPP tsg_ct\wg1_mm-cc-sm_ex-cn1》.2019, * |
Also Published As
Publication number | Publication date |
---|---|
CN113572582A (zh) | 2021-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113572582B (zh) | 数据发送、重传控制方法及系统、存储介质及电子设备 | |
US20240160584A1 (en) | System and method for facilitating dynamic command management in a network interface controller (nic) | |
CN109936510B (zh) | 多路径rdma传输 | |
CN111786748B (zh) | 数据重传方法和系统、网卡、装置、服务器和存储介质 | |
CN103141050B (zh) | 快速通道互联系统中数据包重传方法、节点 | |
CN104484295A (zh) | 并行计算机系统中基于接收方滑动窗口的数据传输方法 | |
CN111459417A (zh) | 一种面向NVMeoF存储网络的无锁传输方法及系统 | |
CN113452591A (zh) | 基于can总线连续数据帧的回路控制方法及装置 | |
CN203590259U (zh) | 万兆以太网与RapidIO网络转换控制器 | |
CN112261142B (zh) | 一种rdma网络的数据重传方法、装置及fpga | |
CN111970092B (zh) | 一种支持可靠性调节的多协议冗余网络异步通信方法 | |
CN110781104A (zh) | 一种数据处理系统、方法和装置 | |
US9544401B2 (en) | Device and method for data communication using a transmission ring buffer | |
US9450706B2 (en) | Communication apparatus and packet transfer method | |
CN114827300B (zh) | 硬件保障的数据可靠传输系统、控制方法、设备及终端 | |
CN115344405A (zh) | 一种数据处理方法、网络接口卡、电子设备及存储介质 | |
CN116471242A (zh) | 基于rdma的发送端、接收端、数据传输系统及方法 | |
CN117176809B (zh) | 一种数据交互方法及系统 | |
US6711179B1 (en) | Signal processing apparatus with three layer processing sections, and signal processing system with said two signal processing apparatuses | |
CN116915370B (zh) | 基于远程直接数据存取的数据重传方法、装置及系统 | |
US20060067311A1 (en) | Method of processing packet data at a high speed | |
CN117873920A (zh) | 一种rdma的内存翻译表应用方法及系统 | |
CN108255770B (zh) | 基于1394总线事件消息响应机制的处理方法 | |
JP3818381B2 (ja) | パケット転送制御装置、送信装置、通信システムおよびパケット転送制御方法 | |
CN109327402B (zh) | 拥塞管理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |