CN110351028B - 一种数据处理方法及装置、以及电子设备 - Google Patents
一种数据处理方法及装置、以及电子设备 Download PDFInfo
- Publication number
- CN110351028B CN110351028B CN201910639515.9A CN201910639515A CN110351028B CN 110351028 B CN110351028 B CN 110351028B CN 201910639515 A CN201910639515 A CN 201910639515A CN 110351028 B CN110351028 B CN 110351028B
- Authority
- CN
- China
- Prior art keywords
- packet
- data
- sequence number
- packet sequence
- minimum
- 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/1607—Details of the supervisory signal
- H04L1/1621—Group acknowledgement, i.e. the acknowledgement message defining a range of identifiers, e.g. of sequence numbers
-
- 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/1806—Go-back-N protocols
-
- 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/1832—Details of sliding window management
-
- 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/187—Details of sliding window management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种由第一端执行的数据处理方法,该第一端通过网闸与第二端通信连接,该方法包括:通过网闸向第二端发送至少一个数据包,该至少一个数据包中每个数据包包括包序号;接收第二端通过网闸发送的反馈数据,该反馈数据用于表征第二端未接收到的数据包的包序号中最小包序号;以及重发至少一个数据包中包序号大于等于最小包序号的数据包。其中,通过网闸发送的多个数据包的包序号依次递增。本公开还提供了一种由第二端执行的数据处理方法、设置于第一端的数据处理装置、设置于第二端的数据处理装置及电子设备。
Description
技术领域
本公开涉及一种数据处理方法及装置、以及电子设备。
背景技术
随着电子设备的快速发展,为了提高网络安全性,安全隔离与信息交换系统(网闸,GAP(air gap))应运而生。该网闸是通过专用的隔离芯片在电路上切断内外网连接的设备,其能够在网络间进行安全适度的应用数据交换。
在正向传输的网闸中,在使用TCP协议(Transmission Control Protocol,传输控制协议)时,只能允许内网数据发出,而不允许接收由外网发往内网的数据。此种情况无法实现内网与外网的间接交互。在使用UDP协议(User Datagram Protocol,用户数据报协议)时,发送后返回数据时只能允许一个字节的数据通过。由于使用UDP协议进行网络传输是不可靠传输,可能丢失数据报文,从而导致UDP传输信息不完整。因此通常在使用UDP协议串行发送UDP报文时,在发送当前UDP报文后,需要在接收到返回数据后才发送下一个UDP报文,以确保数据传输的完整性。但该数据传输方式效率低下,无法适用于大数据量传输。
发明内容
本公开的一个方面提供了一种由第一端执行的数据处理方法,该第一端通过网闸与第二端通信连接。该方法包括:通过网闸向第二端发送至少一个数据包,该至少一个数据包中每个数据包包括包序号;接收第二端通过网闸发送的反馈数据,该反馈数据用于表征第二端未接收到的数据包的包序号中最小包序号;以及重发至少一个数据包中包序号大于等于最小包序号的数据包。其中,通过网闸发送的多个数据包的包序号依次递增。
可选地,所述第一端设置有发送窗口,上述由第一端执行的数据处理方法还包括在重发包序号大于等于所述最小包序号的数据包之前:根据反馈数据及发送窗口的最小边界值,确定是否更改发送窗口的最小边界值。其中,在确定不更改发送窗口的最小边界值的连续次数满足预定次数和/或不更改所述发送窗口的最小边界值的持续时间大于等于预定时间的情况下,重发包序号大于等于最小包序号的数据包。
可选地,确定是否更改发送窗口的最小边界值包括:在最小包序号大于发送窗口的最小边界值表征的包序号的情况下,确定更改发送窗口的最小边界值。上述由第一端执行的数据处理方法还包括:在确定更改发送窗口的最小边界值的情况下,将发送窗口的最小边界值表征的包序号更改为最小包序号。
可选地,上述反馈数据包括序号标识数据和进位标识数据;反馈数据表征的最小包序号为进位标识数据表征的进位值与第一预定值的乘积与序号标识数据表征的序号的和。其中,序号标识数据表征的序号包括:最小包序号与第一预定值通过取余运算得到的余数;进位标识数据与根据最小包序号及第一预定值的比值取整得到的数值相匹配;第一预定值与网闸的传输协议相匹配。
可选地,上述由第一端执行的数据处理方法还包括在发送所述至少一个数据包之前:根据预定规则,将第一端的待发送报文分片得到至少一个数据分片;向至少一个数据分片分配包序号;以及根据包序号,将至少一个数据分片中每个数据分片打包为与网闸的传输协议匹配的数据包,得到至少一个数据包。
本公开的另一方面提供了一种由第二端执行的数据处理方法,该第二端通过网闸与第一端通信连接。该方法包括:接收第一端通过网闸发送的至少一个数据包,该至少一个数据包中每个数据包包括包序号;响应于接收到第一数据包,根据第一数据包的包序号,确定未接收到的数据包的包序号中最小包序号;以及通过网闸向第一端发送反馈数据,该反馈数据用于表征所述最小包序号。其中,通过网闸发送的多个数据包的包序号依次递增。
可选地,所述第二端设置有接收窗口,由第二端执行的数据处理方法还包括在确定最小包序号之前:根据第一数据包的包序号,确定是否更改接收窗口的最小边界值。其中,在确定更改接收窗口的最小边界值的情况下,确定最小包序号为接收窗口的更改后最小边界值表征的包序号;在确定不更改接收窗口的最小边界值的情况下,确定最小包序号为接收窗口的最小边界值表征的包序号。
可选地,确定是否更改所述接收窗口的最小边界值包括:在第一数据包的包序号等于接收窗口的最小边界值表征的包序号的情况下,确定更改接收窗口的最小边界值。上述由第二端执行的数据处理方法还包括:在确定更改接收窗口的最小边界值的情况下,确定是否接收到包序号大于第一数据包的包序号的第二数据包;在确定未接收到第二数据包的情况下,将接收窗口的最小边界值表征的包序号更改为第一数据包的包序号与第二预定值的和。
可选地,上述由第二端执行的数据处理方法还包括在确定接收到第二数据包的情况下:在第二数据包的包序号中最小包序号与第一数据包的包序号大于第二预定值的情况下,将接收窗口的最小边界值表征的包序号更改为第一数据包的包序号与第二预定值的和;在第二数据包的包序号中最小包序号与第一数据包的包序号等于第二预定值、且第二数据包为一个的情况下,将接收窗口的最小边界值表征的包序号更改为第二数据包的包序号与第二预定值的和;在第二数据包的包序号中最小包序号与第一数据包的包序号等于第二预定值、且第二数据包为多个的情况下,根据多个第二数据包的包序号,更改接收窗口的最小边界值。
可选地,根据多个第二数据包的包序号,更改接收窗口的最小边界值包括:将多个第二数据包根据包序号自小至大排序,得到第二数据包组;确定第二数据包组中是否存在包序号差值大于第二预定值的相邻两个数据包;在存在相邻两个数据包的情况下,将接收窗口的最小边界值表征的包序号更改为相邻两个数据包的两个包序号中较小包序号与第二预定值的和;在不存在相邻两个数据包的情况下,将接收窗口的最小边界值表征的包序号更改为多个第二数据包的包序号中最大包序号与第二预定值的和。
可选地,上述反馈数据包括序号标识数据和进位标识数据,上述由第二端执行的数据处理方法还包括在通过网闸向第一端发送反馈数据之前:根据最小包序号与第一预定值通过取余运算得到的余数,确定序号标识数据;以及根据最小包序号与第一预定值的比值取整得到的数值,确定进位标识数据。其中,第一预定值与网闸的传输协议相匹配。
本公开的另一方面提供了一种设置于第一端的数据处理装置,所述第一端通过网闸与第二端通信连接。该装置包括:数据包发送模块,用于通过网闸向第二端发送至少一个数据包,该至少一个数据包中每个数据包包括包序号;反馈数据接收模块,用于接收第二端通过网闸发送的反馈数据,该反馈数据用于表征第二端未接收到的数据包的包序号中最小包序号;以及数据包发送模块还用于重发至少一个数据包中包序号大于等于最小包序号的数据包。其中,通过网闸发送的多个数据包的包序号依次递增。
可选地,上述第一端设置有发送窗口,上述设置于第一端的数据处理装置还包括:第一更改确定模块,用于在数据包发送模块重发包序号大于等于最小包序号的数据包之前,根据反馈数据及发送窗口的最小边界值,确定是否更改发送窗口的最小边界值。其中,数据包发送模块在确定不更改发送窗口的最小边界值的次数满足预定次数和/或不更改发送窗口的最小边界值的持续时间大于等于预定时间的情况下,重发包序号大于等于最小包序号的数据包。
可选地,上述第一更改确定模块具体用于在最小包序号大于发送窗口的最小边界值表征的包序号的情况下,确定更改发送窗口的最小边界值。上述设置于第一端的数据处理装置还包括第一边界值更改模块,用于在确定更改发送窗口的最小边界值的情况下,将发送窗口的最小边界值表征的包序号更改为最小包序号。
可选地,上述反馈数据包括序号标识数据和进位标识数据;上述反馈数据表征的最小包序号为进位标识数据表征的进位值与第一预定值的乘积与序号标识数据表征的序号的和。其中,序号标识数据表征的序号包括:最小包序号与第一预定值通过取余运算得到的余数;进位标识数据与根据最小包序号与第一预定值的比值取整得到的数值相匹配。第一预定值与网闸的传输协议相匹配。
可选地,上述设置于第一端的数据处理装置还包括:报文分片模块,用于根据预定规则,将第一端的待发送报文分片得到至少一个数据分片;包序号分配模块,用于向至少一个数据分片分配包序号;以及数据分片打包模块,用于根据包序号,将至少一个数据分片中每个数据分片打包为与网闸的传输协议匹配的数据包,得到至少一个数据包。
本公开的另一方面提供了一种设置于第二端的数据处理装置,第二端通过网闸与第一端通信连接。该装置包括:数据包接收模块,用于接收第一端通过网闸发送的至少一个数据包,该至少一个数据包中每个数据包包括包序号;最小包序号确定模块,用于响应于接收到第一数据包,根据第一数据包的包序号,确定未接收到的数据包的包序号中最小包序号;以及反馈数据发送模块,用于通过网闸向第一端发送反馈数据,该反馈数据用于表征最小包序号。其中,通过网闸发送的多个数据包的包序号依次递增。
可选地,上述第二端设置有接收窗口,上述设置于第二端的数据处理装置还包括:第二更改确定模块,用于在最小包序号确定模块确定最小包序号之前,根据第一数据包的包序号,确定是否更改接收窗口的最小边界值。其中,在确定更改接收窗口的最小边界值的情况下,最小包序号确定模块确定最小包序号为接收窗口的更改后最小边界值表征的包序号。在确定不更改接收窗口的最小边界值的情况下,最小包序号确定模块确定最小包序号为接收窗口的最小边界值表征的包序号。
可选地,上述第二更改确定模块具体用于在第一数据包的包序号等于接收窗口的最小边界值表征的包序号的情况下,确定更改接收窗口的最小边界值。上述设置于第二端的数据处理装置还包括:数据包确定模块,用于在确定更改接收窗口的最小边界值的情况下,确定是否接收到包序号大于第一数据包的包序号的第二数据包;以及第二边界值更改模块,用于在确定未接收到第二数据包的情况下,将接收窗口的最小边界值表征的包序号更改为第一数据包的包序号与第二预定值的和。
可选地,上述第二边界值更改模块还用于在确定接收到第二数据包、且第二数据包的包序号中最小包序号与第一数据包的包序号大于第二预定值的情况下,将接收窗口的最小边界值表征的包序号更改为第一数据包的包序号与第二预定值的和。并且/或者,上述第二边界值更改模块还用于在第二数据包的包序号中最小包序号与第一数据包的包序号等于第二预定值、且第二数据包为一个的情况下,将接收窗口的最小边界值表征的包序号更改为第二数据包的包序号与第二预定值的和。并且/或者,上述第二边界值更改模块还用于在第二数据包的包序号中最小包序号与第一数据包的包序号等于第二预定值、且第二数据包为多个的情况下,根据多个第二数据包的包序号,更改接收窗口的最小边界值。
可选地,上述第二边界值更改模块具体包括:排序子模块,用于在存在多个第二数据包的情况下,将多个述第二数据包根据包序号自小至大排序,得到第二数据包组;相邻数据包确定子模块,用于确定第二数据包组中是否存在包序号差值大于第二预定值的相邻两个数据包;以及更改子模块,用于在存在相邻两个数据包的情况下,将接收窗口的最小边界值表征的包序号更改为相邻两个数据包的两个包序号中较小包序号与第二预定值的和。上述更改子模块还用于在不存在相邻两个数据包的情况下,将接收窗口的最小边界值表征的包序号更改为多个第二数据包的包序号中最大包序号与第二预定值的和。
可选地,上述反馈数据包括序号标识数据和进位标识数据,上述设置于第二端的数据处理装置还包括:序号标识数据确定模块,用于根据最小包序号与第一预定值通过取余运算得到的余数,确定序号标识数据;以及进位标识数据确定模块,用于根据最小包序号与第一预定值的比值取整得到的数值,确定进位标识数据。其中,第一预定值与网闸的传输协议相匹配。
本公开的另一方面提供了一种电子设备,包括一个或多个处理器;以及存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行上述的由第一端和/或第二端执行的数据处理方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,该指令被处理器执行时使处理器执行上述的由第一端和/或第二端执行的数据处理方法。
本公开的另一个方面提供了一种计算机程序,该计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的由第一端和/或第二端执行的数据处理方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的由第一端和/或第二端执行的数据处理方法及设置于第一端和/或第二端的数据处理装置、以及电子设备的应用场景图;
图2示意性示出了根据本公开第一实施例的由第一端执行的数据处理方法的流程图;
图3A示意性示出了根据本公开第二实施例的由第一端执行的数据处理方法的流程图;
图3B示意性示出了根据本公开实施例的确定是否更改发送窗口的最小边界值的流程图;
图4示意性示出了根据本公开第三实施例的由第一端执行的数据处理方法的部分流程图;
图5示意性示出了根据本公开第一实施例的由第二端执行的数据处理方法的流程图;
图6示意性示出了根据本公开第二实施例的由第二端执行的数据处理方法的部分流程图;
图7示意性示出了根据本公开第三实施例的由第二端执行的数据处理方法的部分流程图;
图8A示意性示出了根据本公开实施例的更改接收窗口的最小边界值的流程图;
图8B示意性示出了根据本公开实施例的根据多个第二数据包的包序号更改接收窗口的最小边界值的流程图;
图9示意性示出了根据本公开实施例的通过网闸传输数据的流程图;
图10示意性示出了根据本公开实施例的设置于第一端的数据处理装置的结构框图;
图11示意性示出了根据本公开实施例的设置于第二端的数据处理装置的结构框图;以及
图12示意性示出了根据本公开实施例的适于执行由第一端和/或第二端执行的数据处理方法的电子设备的结构框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
本公开的实施例提供了一种由第一端执行的数据处理方法,第一端通过网闸与第二端通信连接,该方法包括:通过网闸向第二端发送至少一个数据包,该至少一个数据包中每个数据包包括包序号;接收第二端通过网闸发送的反馈数据,该反馈数据用于表征第二端未接收到的数据包的包序号中最小包序号;以及重发至少一个数据包中包序号大于等于最小包序号的数据包。其中,通过网闸发送的多个数据包的包序号依次递增。
本公开的实施例还提供了一种由第二端执行的数据处理方法,第二端通过网闸与第一端通信连接,该方法包括:接收第一端通过网闸发送的至少一个数据包,该至少一个数据包中每个数据包包括包序号;响应于接收到第一数据包,根据第一数据包的包序号,确定未接收到的数据包的包序号中最小包序号;以及通过网闸向第一端发送反馈数据,该反馈数据用于表征最小包序号。其中,通过网闸发送的多个数据包的包序号依次递增。
本公开的由第一端执行的数据处理方法和由第二端执行的数据处理方法,在第一端与第二端进行通信时,通过为第一端发送的数据包分配依次递增的包序号,能够根据第二端反馈的最小包序号确定丢失的数据包,并对丢失的数据包进行重发,因此可以提高通过网闸传送数据包时传送的可靠性。由于第一端无需等待第二端反馈数据包已接收信息即可继续发送数据包,因此可以提高第一端发送数据包的发送效率,从而可以适用于大数据量的传输场景中。
图1示意性示出了根据本公开实施例的由第一端和/或第二端执行的数据处理方法及设置于第一端和/或第二端的数据处理装置、以及电子设备的应用场景图。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据本公开实施例的应用场景100包括第一电子设备110、网闸120和第二电子设备130。第一电子设备110可以通过网闸120与第二电子设备130通信。
其中,第一电子设备110例如可以为设置于学校、政府部门等对网络安全要求较高的第一场所140的电子设备,具体可以为设置于内网的电子设备。该第一电子设备110通过网络与网闸120连接。该第一电子设备110具有数据处理功能,以通过网闸120向第二电子设备130发送数据包。具体地,该第一电子设备110可以是具有处理功能的各种电子设备,包括但不限于服务器、智能手机、平板电脑、膝上型便携计算机和台式计算机等。
其中,第二电子设备130例如可以为设置于城市、城镇等对网络安全要求一般的第二场所150的电子设备,具体可以为设置于外网的电子设备。该第二电子设备130通过网络与网闸120连接。该第二电子设备130同样应具有数据处理功能,以通过网闸120接收第一电子设备110发送数据包,并响应于接收到数据包,通过网闸120向第一电子设备110发送反馈信息。具体地,该第二电子设备130可以是具有处理功能的各种电子设备,包括但不限于服务器、智能手机、平板电脑、膝上型便携计算机和台式计算机等。
其中,网闸120即为安全隔离与信息交换系统,其为一种由带有多种控制功能专用硬件在电路上切断网络之间的链路层连接。第一电子设备110与第二电子设备130之间通过网闸120通信时例如可以采用UDP协议,以实现信息的双向传输。
需要说明的是,本公开实施例所提供的由第一端执行的数据处理方法一般可以由第一电子设备110执行。相应地,设置于第一端的数据处理装置一般可以设置于第一电子设备110中。本公开实施例所提供的由第二端执行的数据处理方法一般可以由第二电子设备130执行。相应地,设置于第二端的数据处理装置一般可以设置于第二电子设备130中。
应该理解,图1中的第一电子设备、第二电子设备的类型及该第一电子设备、第二电子设备的应用场景仅仅是示意性的。根据实现需要,可以具有任意类型的第一电子设备、第二电子设备及任意的应用场景。
图2示意性示出了根据本公开第一实施例的由第一端执行的数据处理方法的流程图。
根据本公开的实施例,该第一端例如可以为图1中的第一电子设备110,该第一端通过网闸120与第二端通信连接。如图2所示,该由第一端执行的数据处理方法包括操作S201~操作S203。
在操作S201,通过网闸向第二端发送至少一个数据包,该至少一个数据包中每个数据包包括包序号。
其中,为了便于第二端确定是否成功接收至少一个数据包中的所有数据包,该第一端发送的数据包例如可以具有依次递增的包序号。因此,操作S201在发送至少一个数据包时,可以将数据包根据包序号自小至大依次发送。
根据本公开的实施例,操作S201中发送的数据包可以是根据图4描述的操作S406~操作S408得到的数据包,在此不再详述。
在操作S202,接收第二端通过网闸发送的反馈数据,该反馈数据用于表征第二端未接收到的数据包的包序号中最小包序号。
由于操作S201中发送数据包时是根据包序号自小至大发送的,在第二端接收到第一端发送的至少一个数据包中任意一个数据包时,即可根据该接收的任意一个数据包的包序号、已接收的数据包的包序号及包序号的递增值确定未接收到的数据包的包序号中最小包序号。该最小包序号具体可以根据图7描述的方法确定,在此不再详述。
根据本公开的实施例,为了表征最小包序号,该反馈数据例如可以包括该最小包序号。
根据本公开的实施例,在第一端发送的数据包总量较小时,该反馈数据例如可以仅包括序号标识数据,该序号标识数据表征的序号即为最小包序号,序号标识数据例如可以是其表征的序号的二进制值。
根据本公开的实施例,为了避免因最小包序号过大而导致序号标识数据所占字节超过可通过网闸向第一端发送的数据的最大字节。该反馈数据例如还可以包括进位标识数据。例如,该进位标识数据可以与根据最小包序号与第一预定值的比值取整得到的数值相匹配,相应地,序号标识数据表征的序号为小于第一预定值的序号。其中,第一预定值与网闸的传输协议相匹配,进位标识数据所占位数与序号标识数据所占位数之和与网闸的传输协议规定的返回数据的字节数相对应。例如,在网闸的传输协议规定外网只能返回一个字节的数据时,进位标识数据所占位数与序号标识数据所占位数之和即为8。在网闸的传输协议规定外网能返回两个字节的数据时,进位标识数据所占位数与序号标识数据所占位数之和即为16。具体地,第一预定值与序号标识数据所占位数相匹配。当序号标识数据所占位数为n时,该第一预定值即为2n+1。例如,在n为7时,该第一预定值为128。其中,n为正整数。
根据本公开的实施例,上述进位标识数据例如可以用于表征进位值,该进位值为最小包序号与第一预定值的比值取整得到的数值。相应地,序号标识数据表征的序号为最小包序号与第一预定值通过取余运算得到的余数。根据本公开的实施例,网闸的传输协议例如可以为UDP协议,进位标识数据所占位数与序号标识数据所占位数之和即为8,在最小包序号为220,第一预定值为128时,该序号标识数据表征的序号例如可以为220%128=92,进位标识数据表征的进位值可以为1,其中,%为取余运算符号。
根据本公开的实施例,该进位标识数据例如可以为其表征的进位值的二进制值。相应地,反馈数据表征的最小包序号为进位标识数据表征的进位值与第一预定值的乘积与序号标识数据表征的序号的和。
根据本公开的实施例,为了避免第二端接收数据的延迟较大,应为序号标识数据留较多的位数,该进位标识数据可以仅占一个位数。例如,在最小包序号与第一预定值的比值取整得到的数值为偶数时,该进位标识数据的取值为0;在最小包序号与第一预定值的比值取整得到的数值为奇数时,该进位标识数据的取值为1。
根据本公开的实施例,在进位标识数据仅占一个位数时,反馈数据表征的最小包序号例如可以根据以下方法确定:确定当前接收的反馈数据的进位标识数据是否与前一次接收的反馈数据的进位标识数据相同。若相同,当前反馈数据表征的最小包序号为:当前反馈数据的序号标识数据与前一次接收的反馈数据的序号标识数据的差值与前一次接收的反馈数据表征的最小包序号的和。若不同,当前反馈数据表征的最小包序号的确定方法可以包括:先根据前一次反馈数据表征的包序号确定前一次反馈数据的进位值;然后再计算前一次反馈数据的进位值与第一预定值的乘积,得到乘积值;最后确定当前反馈数据表征的最小包序号为该乘积值、第一预定值及当前反馈数据的序号标识数据表征的序号的和。
根据本公开的实施例,在第一端根据反馈数据确定重发数据包时,可以先根据反馈数据确定最小包序号。其中,为了在第二端发送的反馈数据因长期丢失导致第一端连续接收的两个反馈数据的进位标识数据表征的序号相同的情况下,能够准确确定该连续接收的两个反馈数据表征的最小包序号是否相同,该进位标识数据例如还可以用于表征是否需要进位。第一端在通过操作S202接收到反馈数据,并确定当前反馈数据的序号标识数据表征的序号与前一次接收到的反馈数据的序号标识数据表征的序号相同时,可以根据当前反馈数据的进位标识数据与前一次收到的反馈数据的进位标识数据来确定是否需要进位。在当前反馈数据的进位标识数据与前一次收到的反馈数据的进位标识一致时,则无需进位。此时当前反馈数据表征的最小包序号即为前一次接收到的反馈数据表征的最小包序号。在当前反馈数据的进位标识数据与前一次收到的反馈数据的进位标识不一致时,则需要进位。此种情况下,通过将前一次接收到的反馈数据表征的最小包序号与第一预定值求和,得到当前反馈数据表征的最小包序号。
在操作S203,重发至少一个数据包中包序号大于等于最小包序号的数据包。
其中,由于最小包序号为第二端未接收到的数据包的包序号中最小包序号,且至少一个数据包为第一端已经发送的数据包。因此,该至少个数据包中包序号等于最小包序号的数据包可能因丢失而未被第二端接收。为了保证第二端能够接收到该最小包序号对应的数据包,并进一步保证已发送的数据包中包序号大于该最小包序号的数据包被第二端接收,则重发至少一个数据包中包序号大于等于最小包序号的数据包。
综上可知,本公开实施例的由第一端执行的数据处理方法,能够根据第二端发送的最小包序号确定因可能丢失而需要重发的数据包,并对可能丢失的数据包进行重发,从而可以保证数据传输的完整性。再者,由于仅根据最小包序号即可确定重发的数据包,而无需在发送每个数据包后等待第二端反馈接收到该每个数据包的反馈信息,因此该数据处理方法在通过网闸发送数据包时,能够批量发送数据包。从而使得该数据处理方法可以高效的发送数据,可以应用于大数据量传输的场景。
图3A示意性示出了根据本公开第二实施例的由第一端执行的数据处理方法的流程图,图3B示意性示出了根据本公开实施例的确定是否更改发送窗口的最小边界值的流程图。
根据本公开的实施例,为了准确确定已发送的数据包中还未被第二端接收的包序号最小的数据包,该第一端例如可以设置有发送窗口。该发送窗口的最小边界值用于表征根据反馈数据确定的还未被第二端接收的数据包的包序号中最小包序号,该发送窗口的最大边界值例如可以根据最小边界值与预定差值的和确定。其中,所述预定差值例如可以根据实际需求进行设定,或者根据第一预定值来确定,该预定差值的取值应小于所述第一预定值,例如,在第一预定值为128时,该预定差值可以为127。
为了根据第二端接收数据包的情况同步更新发送窗口,如图3A所示,由第一端执行的数据处理方法除了操作S201~操作S203外,还可以包括操作S304,根据反馈数据及发送窗口的最小边界值,确定是否更改发送窗口的最小边界值。
如图3B所示,该操作S304具体可以通过操作S314~操作S334来执行。在操作S314,判断反馈数据表征的最小包序号是否大于发送窗口的最小边界值表征的包序号。在最小包序号大于发送窗口的最小边界值表征的包序号时,说明该发送窗口记录的未被接收的包序号最小的数据包已被接收,则执行操作S324,确定更改所述发送窗口的最小边界值。此种情况下,本公开实施例的由第一端执行的数据处理方法还包括操作S307,将发送窗口的最小边界值表征的包序号更改为最小包序号。在最小包序号等于发送窗口的最小边界值表征的最小包序号时,说明该发送窗口记录的未被接收的包序号最小的数据包仍未被接收则执行操作S334,确定不更改发送窗口的最小边界值。
根据本公开的实施例,该发送窗口的最小边界值例如可以为还未被第二端接收的包序号最小的数据包的包序号,发送窗口的最大边界值则为发送窗口的最小边界值与预定差值的和。此时,在确定需要更改发送窗口的最小边界值的情况下,操作S307即为直接将发送窗口的最下边界值更改为所述最小包序号。
根据本公开的实施例,在最小包序号的进位标识数据仅占一个位数时,该发送窗口的最小边界值例如可以为还未被第二端接收的包序号最小的数据包的包序号与第一预定值通过取余运算得到的值,该发送窗口的最大边界值则为发送窗口的最小边界值与预定差值的和再减去所述第一预定值得到的值。此时,确定包序号小于发送窗口的最小边界值表征的包序号的数据包个数与第一预定值的比例取整得到的值为周期值,发送窗口的最小边界值表征的包序号可以确定为:周期值与第一预定值的乘积与该发送窗口的最小边界值的和。
根据本公开的实施例,为了在因第二端发送的反馈数据长期丢失导致第一端的发送窗口的最小边界值较长时间未更新的情况下,进一步便于第二端确定发送的反馈数据中进位标识数据的取值。在操作S201发送至少一个数据包中每个数据包时,还可以通过网闸向第二端同时发送该发送窗口的最小边界值。由此第二端在根据接收的数据包的包序号确定的序号标识数据表征的序号小于该发送窗口的最小边界值的取值的情况下,可以确定需要向第一端反馈进位信息,则将进位标识数据的取值设定为1。此种情况下,操作S307在更改发送窗口的最小边界值时,更改后发送窗口的最小边界值表征的包序号即为通过以下方法确定的最小包序号:先根据前一次反馈数据表征的包序号确定前一次反馈数据的进位值;然后再计算前一次反馈数据的进位值与第一预定值的乘积,得到乘积值;最后确定当前反馈数据表征的最小包序号为该乘积值、第一预定值及当前反馈数据的序号标识数据表征的序号的和。
根据本公开的实施例,考虑到在因第二端接收包序号小的数据包存在延迟而先接收到包序号较大的数据包的情况下,若直接根据操作S203重发包序号小的数据包会导致不必要资源的消耗。为了避免该不必要资源的消耗,如图3A所示,在确定不更改发送窗口的最小边界值的情况下,由第一端执行的数据处理方法还可以包括操作S305~操作S306,该操作S305~操作S306在操作S202与操作S203之间执行。
在操作S305,确定不更改发送窗口的最小边界值的连续次数和/或不更改发送窗口的最小边界值的持续时间。在操作S306,判断连续次数是否满足预定次数和/或持续时间是否大于等于预定时间。在连续次数满足预定次数和/或持续时间大于等于预定时间的情况下,执行操作S203。在连续次数不满足预定次数和/或持续时间小于预定时间的情况下,则返回继续接收第二端通过网闸发送的反馈数据。
其中,为了便于确定是否重发数据包,每执行一次操作S304,则进行一次记录,以记录确定结果和确定时间。操作S305可根据记录的操作S304的确定结果和确定时间,来确定不更改发送窗口的最小边界值的连续次数和/或不更改发送窗口的最小边界值的持续时间。其中,连续次数可以为确定的结果均为不更改发送窗口的最小边界值的连续执行操作S304的次数。
根据本公开的实施例,该操作S305例如可以仅根据记录的确定结果和确定时间来确定不更改发送窗口的最小边界值的连续次数,操作S306即为判断连续次数是否满足预定次数。在连续次数满足预定次数的情况下,则说明该发送窗口的最小边界值表征的包序号对应的数据包持续未被第二端接收,则该数据包存在被丢失的可能性较大,则执行操作S203。
根据本公开的实施例,该操作S305例如可以仅根据记录的确定结果和确定时间来确定不更改发送窗口的最小边界值的持续时间,操作S306即为判断该持续时间是否大于等于预定时间。在持续时间大于等于预定时间的情况下,则说明该发送窗口的最小边界值表征的包序号对应的数据包在该预定时间内未被第二端接收,则该数据包存在被丢失的可能性较大,则执行操作S203。
根据本公开的实施例,为了进一步提高确定的重发数据包的准确性,该操作S305还可以根据记录的确定结果和确定时间来确定不更改发送窗口的最小边界值的连续次数和不更改发送窗口的最小边界值的持续时间。操作S306即为判断连续次数是否满足预定次数及持续时间是否大于等于预定时间。仅在判断结果为连续次数满足预定次数及持续时间大于等于预定时间的情况下,才执行操作S203。
根据本公开的实施例,所述的预定次数和/或预定时间例如可以根据网闸传输数据包的速率及第二端接收数据包的速率进行确定,也可以根据实际需求进行设定,本公开对此不作限定。
综上可知,本公开实施例的由第一端执行的数据处理方法,通过发送窗口的设置,及对发送窗口的最小边界值表征的包序号的更改,可以精准确定未被接收的包序号最小的数据包。通过对准确确定的包序号最小的数据包进行重发,可以进一步提高数据发送的完整性。再者,通过判断发送窗口的最小边界值不更改的连续次数及持续时间,可以避免因传输延迟导致的不必要数据包的重发,从而避免不必要资源的消耗。
图4示意性示出了根据本公开第三实施例的由第一端执行的数据处理方法的部分流程图。
根据本公开的实施例,考虑到在发送的数据包大于网闸的传输能力时,发送的数据包可能会被分包,从而使得第二端接收的多个数据包具有相同的包序号,并因此无法准确确定数据包是否发送完整。
为了解决上述问题,可以在发送报文之前先将报文根据网闸的传输能力进行分片处理,得到大小适当的数据包,以避免数据包在传输过程中被分包。因此如图4所示,本公开实施例的由第一端执行的数据处理方法还可以包括操作S408,根据预定规则,将第一端的待发送报文分片得到至少一个数据分片。
其中,预定规则例如可以根据网闸的传输能力及传输协议进行确定。例如,在网闸采用UDP协议发送数据包时,所述预定规则例如可以为:数据分片的数据量小于UDP协议的数据报文内容的最大容量去掉UDP头之后的有效载荷量。在UDP协议的数据报文内容的最大容量为1500字节时,去掉UDP头所占的40字节,则预定规则可以为:数据分片的大小小于等于1460字节。根据本公开的实施例,该操作S408具体可以是将待发送报文根据MTU(MaximumTransmission Unit,最大传输单元)大小进行分片。
根据本公开的实施例,为了使得发送的数据包具有包序号,以及为了使得发送的数据包符合网闸的传输协议,如图4所示,本公开实施例的由第一端执行的数据处理方法还可以包括以下操作S409~操作S410。
在操作S409,向至少一个数据分片分配包序号。
根据本公开的实施例,为了便于第二端确定未接收的最小包序号,操作S409例如可以是向至少一个数据分片依次分配形成等差数列的包序号,所述等差数列的公差例如可以取第二预定值。该第二预定值可以根据实际需求进行设定,例如,该等差数列的公差可以取1、2或3等大于0的自然数。
在操作S410,根据包序号,将至少一个数据分片中每个数据分片打包为与网闸的传输协议匹配的数据包,得到至少一个数据包。
根据本公开的实施例,在网闸的传输协议为UDP协议时,该操作S410可以包括:根据传输协议对至少一个数据分片中的每个数据分片进行打包,得到与至少一个数据分片一一对应的至少一个UDP数据包。其中,每个数据分片的包序号例如可以写入UDP数据包的包头。
图5示意性示出了根据本公开第一实施例的由第二端执行的数据处理方法的流程图。
根据本公开的实施例,该第二端例如可以为图1中的第二电子设备130,该第二端通过网闸120与第一端通信连接。如图5所示,该由第二端执行的数据处理方法包括操作S501~操作S503,以用于接收第一端发送的数据包,并通过网闸向第一端发送反馈数据。
在操作S501,接收第一端通过网闸发送的至少一个数据包,该至少一个数据包中每个数据包包括包序号。
根据本公开的实施例,该操作S501具体可以为逐个数据包的接收网闸发送成功的数据包,该网闸发送成功的数据包为第一端通过图2中的操作S201发送的至少一个数据包中的数据包。操作S201通过网闸发送的多个数据包的包序号是依次递增的。其中,考虑到网闸发送至少一个数据包时,可能存在发送某些数据包有延迟的情况,因此,在第二端通过操作S501接收数据包时,依次接收的数据包的包序号并不一定是依次递增的。
在操作S502,响应于接收到第一数据包,根据第一数据包的包序号,确定未接收到的数据包的包序号中最小包序号。
根据本公开的实施例,该操作S502可以是在通过操作S501接收到一个数据包的情况下就开始执行。确定未接收到的数据包的包序号中最小包序号可以包括:通过判断操作S501中接收到的数据包的包序号与其他已接收到的数据包的包序号中最大包序号的大小关系确定。在操作S501中接收到的数据包的包序号大于所述最大包序号,且两者的差值为第二预定值的情况下,则确定最小包序号为操作S501中接收到的数据包的包序号与第二预定值的和。在操作S501中接收到的数据包的包序号大于所述最大包序号,且两者的差值大于第二预定值的情况下,则确定最小包序号为最大包序号与所述第二预定值的和。在操作S501中接收到的数据包的包序号小于等于所述最大包序号,则说明该操作S501中接收到的数据包为重发数据包,则确定最小包序号为最大包序号与所述第二预定值的和。其中,第二预定值例如可以为通过操作S409分配包序号时等差数列的公差,在此不再赘述。
根据本公开的实施例,操作S502还可以通过图7中描述的操作S5021~操作S5022来确定,在此不再详述。
在操作S503,通过网闸向第一端发送反馈数据,该反馈数据用于表征最小包序号。
根据本公开的实施例,在操作S503发送反馈数据之前,例如还可以包括根据操作S502确定的最小包序号生成反馈数据的操作,以使得该反馈数据能够表征最小包序号。其中,生成反馈数据的操作例如可以包括图6描述的操作S604~操作S605,在此不再详述。在通过操作S503向第一端发送反馈数据后,第一端即可根据反馈数据通过图2中的操作S203来重发可能丢失的数据包。
综上可知,本公开实施例的由第二端执行的数据处理方法,通过根据当前接收到的数据包的包序号与已接收的数据包的包序号确定最小包序号,并通过向第一端发送表征该最小包序号的反馈数据,可以便于第一端确定需要重新发送的数据包。并因此保证网闸传输数据的完整性,实现第一端与第二端的完整交互。
图6示意性示出了根据本公开第二实施例的由第二端执行的数据处理方法的部分流程图。
根据本公开的实施例,操作S503中发送的反馈数据例如可以包括序号标识数据和进位标识数据,第一端可以根据接收的反馈数据中的序号标识数据和进位标识数据,得到最小包序号。因此在发送反馈数据之前,还需要根据最小包序号生成反馈数据的序号标识数据和进位标识数据。如图6所示,本公开实施例的由第二端执行的数据处理方法还包括操作S604~操作S605。该操作S604~操作S605在操作S503之前执行。
在操作S604,根据最小包序号与第一预定值通过取余运算得到的余数,确定序号标识数据。该操作S604例如可以为:将最小包序号与第一预定值通过取余运算得到的余数作为序号标识数据表征的序号,并将该表征的序号的二进制码作为序号标识数据。通过将序号标识数据转换为十进制码即可得到该序号标识数据表征的序号。
在操作S605,根据最小包序号与第一预定值的比值取整得到的数值,确定进位标识数据。
根据本公开的实施例,第一预定值与网闸的传输协议相匹配,该第一预定值例如可以为前述的第一预定值,在此不再赘述。其中,该操作S605具体例如可以为:先将最小包序号与第一预定值的比值取整得到的数值作为进位标识数据表征的进位值,再采用二进制码表示该进位值,得到所述进位标识数据。
根据本公开的实施例,该操作S605具体例如可以为:先将最小包序号与第一预定值的比值取整得到的数值作为进位标识数据表征的进位值,再在进位值为偶数时,确定进位标识数据的取值为0;在进位值为奇数时,确定进位标识数据的取值为1。
图7示意性示出了根据本公开第三实施例的由第二端执行的数据处理方法的部分流程图。
根据本公开的实施例,为了便于确定最小包序号,该第二端例如还可以设置有接收窗口。该接收窗口的最小边界值表征的包序号即为最小包序号,而该接收窗口的最大边界值可以根据网闸的传输协议来确定。该接收窗口的最大边界值与前述发送窗口的最大边界值的设置原理类似,在此不再赘述。
为了便于操作S502能够直接根据接收窗口的最小边界值确定最小包序号。如图7所示,本公开实施例的由第二端执行的数据处理方法还包括操作S706,该操作S706在操作S502之前执行。
在操作S706,根据第一数据包的包序号,确定是否更改接收窗口的最小边界值。具体地,在第一数据包的包序号等于接收窗口的最小边界值表征的包序号时,则更改接收窗口的最小边界值。该更改方法详见图8A~图8B描述的操作,在此不再详述。
相应地,在确定更改接收窗口的最小边界值的情况下,操作S502则通过图7中的操作S5021来实现。在确定不更改所述接收窗口的最小边界值的情况下,操作S502则通过图7中的操作S5022来实现。在操作S5021,确定最小包序号为接收窗口的更改后最小边界值表征的包序号。在操作S5022,确定最小包序号为接收窗口的最小边界值表征的包序号。
根据本公开的实施例,为了便于确定反馈数据中的序号标识数据,该接收窗口的最小边界值例如可以为其表征的最下包序号与第一预定值通过取余运算得到的值。相应地,该接收窗口的最大边界值则为接收窗口的最小边界值与预定差值的和再减去所述第一预定值得到的值。此时,确定包序号小于接收窗口的最小边界值表征的包序号的数据包个数与第一预定值的比例取整得到的值为周期值,接收窗口的最小边界值表征的包序号可以确定为:周期值与第一预定值的乘积与该接收窗口的最小边界值的和。
根据本公开的实施例,在第二端接收到数据包的同时接收到发送窗口的最小边界值的情况下,反馈数据的进位标识数据还可通过以下操作确定:在确定需要更改接收窗口的最小边界值、且更改后的最小边界值小于等于发送窗口的最小边界值的情况下,确定进位标识数据的取值为1。在更改后的最小边界值大于发送窗口的最小边界值的情况下,则确定仅为标识数据的取值为0。在确定不需要更改接收窗口的最小边界值、且接收窗口的最小边界值小于发送窗口的最小边界值的情况下,确定进位标识数据的取值为1。在确定不需要更改接收窗口的最小边界值、且接收窗口的最小边界值大于等于发送窗口的最小边界值的情况下,确定仅为标识数据的取值为0。
图8A示意性示出了根据本公开实施例的更改接收窗口的最小边界值的流程图。
根据本公开的实施例,如图8A所示,图7中的操作S706具体可以通过操作S806来确定更改接收窗口的最小边界值。在操作S806,在第一数据包的包序号等于接收窗口的最小边界值表征的包序号的情况下,确定更改接收窗口的最小边界值。
在确定更改发送窗口的最小边界值的情况下,为了避免因已接收到包序号大于该发送窗口的最小边界值表征的包序号的数据包,而导致的无法准确更改发送窗口的最小边界值的问题,如图8A所示,本公开实施例还可以包括操作S807~操作S812。即在更改发送窗口的最小边界值之前,先确定已接收的包序号大于发送窗口的最小边界值表征的包序号的第二数据包的个数及各个第二数据包的包序号,然后再根据该各个第二数据包的包序号与第二预定值的关系,确定更改后的发送窗口表征的包序号。
具体地,在操作S807,判断是否接收到包序号大于第一数据包的包序号的第二数据包。在未接收到第二数据包的情况下,则说明第二端接下来需要接收包序号与第一数据包的包序号连续、且大于第一数据包的包序号的数据包。因此执行操作S808,在确定未接收到第二数据包的情况下,将接收窗口的最小边界值表征的包序号更改为第一数据包的包序号与第二预定值的和。
在操作S807判断结果为接收到第二数据包的情况下,为了准确更改接收窗口的最小边界值,还需要确定第二数据包的包序号是否与第一数据包的包序号连续。因此执行操作S809,判断第二数据包的包序号中最小包序号与第一数据包的包序号的差值是否大于第二预定值。若大于第二预定值,则说明包序号与第一数据包的包序号连续、且大于第一数据包的包序号的数据包还未被接收,则执行操作S808,即将接收窗口的最小边界值表征的包序号更改为第一数据包的包序号与第二预定值的和。
在第二数据包的包序号中最小包序号与第一数据包的包序号的差值不大于第二预定值时,考虑到第二数据包的包序号均大于第一数据包的包序号,则第二数据包的包序号中最小包序号与第一数据包的包序号的差值应等于第二预定值,说明包序号与第一数据包的包序号连续、且大于第一数据包的包序号的数据包已被接收。需要继续执行操作S810,来判断第二数据包的个数是否大于1。在第二数据包的个数不大于1的情况下,则说明包序号大于第二数据包的包序号的数据包还未被接收,则执行操作S811,将接收窗口的最小边界值表征的包序号更改为第二数据包的包序号与第二预定值的和。在第二数据包的个数大于1的情况下,则说明接收到了包序号大于第二数据包的包序号的数据包,则执行操作S812,根据多个第二数据包的包序号,更改接收窗口的最小边界值。
图8B示意性示出了根据本公开实施例的根据多个第二数据包的包序号更改接收窗口的最下边界值的流程图。
根据本公开的实施例,在第二数据包的个数大于1的情况下,若多个第二数据包为第一端连续发送的数据包,则说明未接收的包序号最小的数据包为包序号与多个第二数据包连续、且大于多个第二数据包的数据包。若多个第二数据包不是第一端连续发送的数据包,则应该根据多个第二数据包的包序号,确定包序号介于多个第二数据包的包序号中最大包序号与最小包序号之间的、且未被第二端接收的数据包,并根据该数据包的包序号更改接收窗口的最小边界值。
因此,如图8B所示,操作S812例如可以包括操作S8121~操作S8124。在操作S8121,将多个所述第二数据包根据包序号自小至大排序,得到第二数据包组。在操作S8122,确定第二数据包组中是否存在包序号差值大于第二预定值的相邻两个数据包。通过该操作S8122即可以确定是否存在包序号介于多个第二数据包的包序号中最大包序号与最小包序号之间的、且未被第二端接收的数据包。
在存在包序号介于多个第二数据包的包序号中最大包序号与最小包序号之间的、且未被第二端接收的数据包的情况下,即存在包序号差值大于第二预定值的相邻两个数据包的情况下,则执行操作S8123,将接收窗口的最小边界值表征的包序号更改为相邻两个数据包的两个包序号中较小包序号与所述第二预定值的和。根据本公开的实施例,若通过操作S8122确定存在多个相邻两个数据包时,操作S8123则需要首先确定包序号最小的相邻两个数据包,并将接收窗口的最小边界值表征的包序号更改为包序号最小的相邻两个数据包的两个包序号中较小包序号与所述第二预定值的和。
在不存在包序号介于多个第二数据包的包序号中最大包序号与最小包序号之间的、且未被第二端接收的数据包的情况下,即在不存在相邻两个数据包的情况下,说明多个第二数据包为第一端连续发送的数据包。此时,第二端未接收的数据包中包序号最小的数据包为与多个第二数据包中包序号最大的数据包连续的数据包,则通过操作S8124来更改接收窗口的最小边界值。在操作S8124,将接收窗口的最小边界值表征的包序号更改为多个第二数据包的包序号中最大包序号与第二预定值的和。
图9示意性示出了根据本公开实施例的通过网闸传输数据的流程图。
如图9所示,在内网910中设置的第一电子设备110例如可以设置有发送缓冲区,该发送缓冲区缓存有所有已发送的数据包的包序号。其中,该发送缓冲区例如可以设置有发送窗口,该发送窗口用于限定根据正常发送效率应该已经被外网接收、但实际还未被接收的数据包的最小包序号。在外网930中设置的第二电子设备130相应地设置有接收缓冲区,该接收缓冲区根据等差数列的数据包的包序号的公差、以及第一电子设备110应该已经发送的数据包的包序号。该接收缓冲区设置有接收窗口,该接收窗口用于限定根据正常接收效率应该已经被接收,但还未被接收的数据包的最小包序号。内网910中设置的第一电子设备110通过网闸920向外网930中设置的第二电子设备130发送数据包的完整流程可以包括:
首先,第一电子设备110自发送缓冲区获取维护的发送窗口的最小边界值,并将该发送窗口的最小边界值及分配有包序号的数据包通过网闸920发送(操作S201)。然后外网的第二电子设备130接收通过网闸920发送数据包及发送窗口的最小边界值(操作S501)。然后第二电子设备130根据接收到的数据包的包序号更新接收缓冲区的接收窗口的最小边界值(操作S706及操作S5021,或操作S706及操作S5022)。再根据获取的更新后的接收窗口的最小边界值及发送窗口的最小边界值,来生成反馈数据(操作S604~操作S605)。然后通过网闸920发送生成的反馈数据。在内网910中设置的第一电子设备110接收到反馈数据后,即可根据反馈数据更新发送窗口(操作S314~操作S334,及操作S307)。
图]0示意性示出了根据本公开实施例的设置于第一端的数据处理装置的结构框图。
如图10所示,本公开实施例的设置于第一端的数据处理装置1000可以包括数据包发送模块1010及反馈数据接收模块1020。该第一端通过网闸与第二端通信连接。
数据包发送模块1010用于通过网闸向第二端发送至少一个数据包,该至少一个数据包中每个数据包包括包序号(操作S201)。反馈数据接收模块1020用于接收第二端通过网闸发送的反馈数据,该反馈数据用于表征第二端未接收到的数据包的包序号中最小包序号(操作S202)。其中,数据包发送模块1010还用于重发至少一个数据包中包序号大于等于最小包序号的数据包(操作S203)。其中,通过网闸发送的多个数据包的包序号依次递增。
根据本公开的实施例,上述第一端设置有发送窗口,如图10所示,设置于第一端的数据处理装置1000例如还可以包括第一更改确定模块1030,用于在数据包发送模块1010重发包序号大于等于最小包序号的数据包之前,根据反馈数据及发送窗口的最小边界值,确定是否更改发送窗口的最小边界值(操作S304)。其中,数据包发送模块1010在确定不更改发送窗口的最小边界值的次数满足预定次数和/或不更改发送窗口的最小边界值的持续时间大于等于预定时间的情况下,重发包序号大于等于最小包序号的数据包。
根据本公开的实施例,上述第一更改确定模块1030具体用于在最小包序号大于发送窗口的最小边界值表征的包序号的情况下,确定更改发送窗口的最小边界值(操作S324)。如图10所示,上述设置于第一端的数据处理装置1000还可以包括第一边界值更改模块1040,用于在确定更改发送窗口的最小边界值的情况下,将发送窗口的最小边界值表征的包序号更改为最小包序号(操作S307)。
根据本公开的实施例,上述反馈数据包括序号标识数据和进位标识数据;上述反馈数据表征的最小包序号为进位标识数据表征的进位值与第一预定值的乘积与序号标识数据表征的序号的和。其中,序号标识数据表征的序号包括:最小包序号与第一预定值通过取余运算得到的余数;进位标识数据与根据最小包序号与第一预定值的比值取整得到的数值相匹配。第一预定值与网闸的传输协议相匹配。
根据本公开的实施例,如图10所示,上述设置于第一端的数据处理装置1000还包括:报文分片模块1050,用于根据预定规则,将第一端的待发送报文分片得到至少一个数据分片(操作S408);包序号分配模块1060,用于向至少一个数据分片分配包序号(操作S409);以及数据分片打包模块1070,用于根据包序号,将至少一个数据分片中每个数据分片打包为与网闸的传输协议匹配的数据包,得到至少一个数据包(操作S410)。
图11示意性示出了根据本公开实施例的设置于第二端的数据处理装置的结构框图。
如图11所示,本公开实施例的设置于第二端的数据处理装置1100可以包括数据包接收模块1110、最小包序号确定模块1120及反馈数据发送模块1130。该第二端通过网闸与第一端通信连接。
数据包接收模块1110用于接收第一端通过网闸发送的至少一个数据包,该至少一个数据包中每个数据包包括包序号(操作S501)。最小包序号确定模块1120用于响应于接收到第一数据包,根据第一数据包的包序号,确定未接收到的数据包的包序号中最小包序号(操作S502)。反馈数据发送模块1130用于通过网闸向第一端发送反馈数据,该反馈数据用于表征最小包序号(操作S503)。其中,通过网闸发送的多个数据包的包序号依次递增。
根据本公开的实施例,上述第二端设置有接收窗口,如图11所示,上述设置于第二端的数据处理装置1100还包括第二更改确定模块1140,用于在最小包序号确定模块1120确定最小包序号之前,根据第一数据包的包序号,确定是否更改接收窗口的最小边界值(操作S706)。其中,在确定更改接收窗口的最小边界值的情况下,最小包序号确定模块1120确定最小包序号为接收窗口的更改后最小边界值表征的包序号(操作S5021)。在确定不更改接收窗口的最小边界值的情况下,最小包序号确定模块1120确定最小包序号为接收窗口的最小边界值表征的包序号(操作S5022)。
根据本公开的实施例,上述第二更改确定模块1140具体用于在第一数据包的包序号等于接收窗口的最小边界值表征的包序号的情况下,确定更改接收窗口的最小边界值(操作S806)。如图11所示,上述设置于第二端的数据处理装置1100还包括:数据包确定模块1150,用于在确定更改接收窗口的最小边界值的情况下,确定是否接收到包序号大于第一数据包的包序号的第二数据包(操作S807);以及第二边界值更改模块1160,用于在确定未接收到第二数据包的情况下,将接收窗口的最小边界值表征的包序号更改为第一数据包的包序号与第二预定值的和(操作S808)。
根据本公开的实施例,上述第二边界值更改模块1160还用于在确定接收到第二数据包、且第二数据包的包序号中最小包序号与第一数据包的包序号大于第二预定值的情况下,将接收窗口的最小边界值表征的包序号更改为第一数据包的包序号与第二预定值的和。并且/或者,上述第二边界值更改模块1160还用于在第二数据包的包序号中最小包序号与第一数据包的包序号等于第二预定值、且第二数据包为一个的情况下,将接收窗口的最小边界值表征的包序号更改为第二数据包的包序号与第二预定值的和(操作S811)。并且/或者,上述第二边界值更改模块1160还用于在第二数据包的包序号中最小包序号与第一数据包的包序号等于第二预定值、且第二数据包为多个的情况下,根据多个第二数据包的包序号,更改接收窗口的最小边界值(操作S812)。
根据本公开实施例,如图11所示,上述第二边界值更改模块1160例如可以包括:排序子模块1161,用于在存在多个第二数据包的情况下,将多个述第二数据包根据包序号自小至大排序,得到第二数据包组(操作S8121);相邻数据包确定子模块1162,用于确定第二数据包组中是否存在包序号差值大于第二预定值的相邻两个数据包(操作S8122);以及更改子模块1163,用于在存在相邻两个数据包的情况下,将接收窗口的最小边界值表征的包序号更改为相邻两个数据包的两个包序号中较小包序号与第二预定值的和(操作S8123)。上述更改子模块1163还用于在不存在相邻两个数据包的情况下,将接收窗口的最小边界值表征的包序号更改为多个第二数据包的包序号中最大包序号与第二预定值的和(操作S8124)。
根据本公开的实施例,上述反馈数据包括序号标识数据和进位标识数据,如图11所示,上述设置于第二端的数据处理装置1100还包括:序号标识数据确定模块1170,用于根据最小包序号与第一预定值通过取余运算得到的余数,确定序号标识数据(操作S604);以及进位标识数据确定模块1180,用于根据最小包序号与第一预定值的比值取整得到的数值,确定进位标识数据(操作S605)。其中,第一预定值与网闸的传输协议相匹配。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,设置于第一端的数据处理装置1000中的多个模块中任意多个或设置于第二端的数据处理装置1100中的多个模块及子模块中任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,设置于第一端的数据处理装置1000中的多个模块中的至少一个或设置于第二端的数据处理装置1100中的多个模块及子模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,设置于第一端的数据处理装置1000中的多个模块中的至少一个或设置于第二端的数据处理装置1100中的多个模块及子模块中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图12示意性示出了根据本公开实施例的适于执行由第一端和/或第二端执行的数据处理方法的电子设备的结构框图。
如图12所示,电子设备1200包括处理器1210和计算机可读存储介质1220。该电子设备1200可以执行根据本公开实施例的方法。
具体地,处理器1210例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1210还可以包括用于缓存用途的板载存储器。处理器1210可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质1220,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;等等。
计算机可读存储介质1220可以包括计算机程序1221,该计算机程序1221可以包括代码/计算机可执行指令,其在由处理器1210执行时使得处理器1210执行根据本公开实施例的方法或其任何变形。
计算机程序1221可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序1221中的代码可以包括一个或多个程序模块,例如包括模块1221A、模块1221B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器1210执行时,使得处理器1210可以执行根据本公开实施例的方法或其任何变形。
根据本发明的实施例,设置于第一端的数据处理装置1000中的多个模块中的至少一个或设置于第二端的数据处理装置1100中的多个模块及子模块中的至少一个可以实现为参考图12描述的计算机程序模块,其在被处理器1210执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (12)
1.一种由第一端执行的数据处理方法,所述第一端通过网闸与第二端通信连接,所述方法包括:
通过所述网闸向所述第二端发送至少一个数据包,所述至少一个数据包中每个数据包包括包序号;
接收所述第二端通过所述网闸发送的反馈数据,所述反馈数据用于表征所述第二端未接收到的数据包的包序号中最小包序号;以及
重发所述至少一个数据包中包序号大于等于所述最小包序号的数据包,
其中,通过所述网闸发送的多个数据包的包序号依次递增;
其中,所述第一端设置有发送窗口,所述方法还包括在重发包序号大于等于所述最小包序号的数据包之前:
根据所述反馈数据及所述发送窗口的最小边界值,确定是否更改所述发送窗口的最小边界值,
其中,在确定不更改所述发送窗口的最小边界值的连续次数满足预定次数和/或不更改所述发送窗口的最小边界值的持续时间大于等于预定时间的情况下,重发所述包序号大于等于所述最小包序号的数据包。
2.根据权利要求1所述的方法,其中:
确定是否更改所述发送窗口的最小边界值包括:在所述最小包序号大于所述发送窗口的最小边界值表征的包序号的情况下,确定更改所述发送窗口的最小边界值;
所述方法还包括:在确定更改所述发送窗口的最小边界值的情况下,将所述发送窗口的最小边界值表征的包序号更改为所述最小包序号。
3.根据权利要求1所述的方法,其中:
所述反馈数据包括序号标识数据和进位标识数据;
所述反馈数据表征的最小包序号为所述进位标识数据表征的进位值与第一预定值的乘积与所述序号标识数据表征的序号的和,
其中,所述序号标识数据表征的序号包括:所述最小包序号与所述第一预定值通过取余运算得到的余数;所述进位标识数据与根据所述最小包序号及所述第一预定值的比值取整得到的数值相匹配;所述第一预定值与所述网闸的传输协议相匹配,进位标识数据所占位数与序号标识数据所占位数之和与网闸的传输协议规定的返回数据的字节数相对应。
4.根据权利要求1所述的方法,还包括在发送所述至少一个数据包之前:
根据预定规则,将所述第一端的待发送报文分片得到至少一个数据分片;
向所述至少一个数据分片分配包序号;以及
根据所述包序号,将所述至少一个数据分片中每个数据分片打包为与所述网闸的传输协议匹配的数据包,得到所述至少一个数据包。
5.一种由第二端执行的数据处理方法,所述第二端通过网闸与第一端通信连接,所述方法包括:
接收所述第一端通过所述网闸发送的至少一个数据包,所述至少一个数据包中每个数据包包括包序号;
响应于接收到第一数据包,根据所述第一数据包的包序号,确定未接收到的数据包的包序号中最小包序号;以及
通过所述网闸向所述第一端发送反馈数据,所述反馈数据用于表征所述最小包序号,
重新接收所述至少一个数据包中包序号大于等于所述最小包序号的数据包;
其中,通过所述网闸发送的多个数据包的包序号依次递增;
其中,所述第二端设置有接收窗口,所述方法还包括在确定所述最小包序号之前:
根据所述第一数据包的包序号,确定是否更改所述接收窗口的最小边界值,
其中,在确定更改所述接收窗口的最小边界值的情况下,确定所述最小包序号为所述接收窗口的更改后最小边界值表征的包序号;在确定不更改所述接收窗口的最小边界值的情况下,确定所述最小包序号为所述接收窗口的最小边界值表征的包序号。
6.根据权利要求5所述的方法,其中:
确定是否更改所述接收窗口的最小边界值包括:在所述第一数据包的包序号等于所述接收窗口的最小边界值表征的包序号的情况下,确定更改所述接收窗口的最小边界值;
所述方法还包括:
在确定更改所述接收窗口的最小边界值的情况下,确定是否接收到包序号大于所述第一数据包的包序号的第二数据包;
在确定未接收到所述第二数据包的情况下,将所述接收窗口的最小边界值表征的包序号更改为所述第一数据包的包序号与第二预定值的和;其中,所述第二预定值根据分配包序号时规则而设定。
7.根据权利要求6所述的方法,还包括在确定接收到所述第二数据包的情况下:
在所述第二数据包的包序号中最小包序号与所述第一数据包的包序号大于第二预定值的情况下,将所述接收窗口的最小边界值表征的包序号更改为所述第一数据包的包序号与所述第二预定值的和;
在所述第二数据包的包序号中最小包序号与所述第一数据包的包序号等于所述第二预定值、且所述第二数据包为一个的情况下,将所述接收窗口的最小边界值表征的包序号更改为所述第二数据包的包序号与所述第二预定值的和;
在所述第二数据包的包序号中最小包序号与所述第一数据包的包序号等于所述第二预定值、且所述第二数据包为多个的情况下,根据多个所述第二数据包的包序号,更改所述接收窗口的最小边界值。
8.根据权利要求7所述的方法,其中,根据多个所述第二数据包的包序号,更改所述接收窗口的最小边界值包括:
将多个所述第二数据包根据包序号自小至大排序,得到第二数据包组;
确定所述第二数据包组中是否存在包序号差值大于所述第二预定值的相邻两个数据包;
在存在所述相邻两个数据包的情况下,将所述接收窗口的最小边界值表征的包序号更改为所述相邻两个数据包的两个包序号中较小包序号与所述第二预定值的和;
在不存在所述相邻两个数据包的情况下,将所述接收窗口的最小边界值表征的包序号更改为所述多个第二数据包的包序号中最大包序号与所述第二预定值的和。
9.根据权利要求5所述的方法,其中,所述反馈数据包括序号标识数据和进位标识数据,所述方法还包括在通过所述网闸向所述第一端发送反馈数据之前:
根据所述最小包序号与第一预定值通过取余运算得到的余数,确定所述序号标识数据;以及
根据所述最小包序号与所述第一预定值的比值取整得到的数值,确定所述进位标识数据,
其中,所述第一预定值与所述网闸的传输协议相匹配,进位标识数据所占位数与序号标识数据所占位数之和与网闸的传输协议规定的返回数据的字节数相对应。
10.一种设置于第一端的数据处理装置,所述第一端通过网闸与第二端通信连接,所述装置包括:
数据包发送模块,用于通过所述网闸向所述第二端发送至少一个数据包,所述至少一个数据包中每个数据包包括包序号;
反馈数据接收模块,用于接收所述第二端通过所述网闸发送的反馈数据,所述反馈数据用于表征所述第二端未接收到的数据包的包序号中最小包序号;以及
所述数据包发送模块还用于重发所述至少一个数据包中包序号大于等于所述最小包序号的数据包,
其中,通过所述网闸发送的多个数据包的包序号依次递增;
其中,所述第一端设置有发送窗口,用于在重发包序号大于等于所述最小包序号的数据包之前:
根据所述反馈数据及所述发送窗口的最小边界值,确定是否更改所述发送窗口的最小边界值,
其中,在确定不更改所述发送窗口的最小边界值的连续次数满足预定次数和/或不更改所述发送窗口的最小边界值的持续时间大于等于预定时间的情况下,重发所述包序号大于等于所述最小包序号的数据包。
11.一种设置于第二端的数据处理装置,所述第二端通过网闸与第一端通信连接,所述装置包括:
数据包接收模块,用于接收所述第一端通过所述网闸发送的至少一个数据包,所述至少一个数据包中每个数据包包括包序号;还用于重新接收所述至少一个数据包中包序号大于等于最小包序号的数据包;
最小包序号确定模块,用于响应于接收到第一数据包,根据所述第一数据包的包序号,确定未接收到的数据包的包序号中最小包序号;以及
反馈数据发送模块,用于通过所述网闸向所述第一端发送反馈数据,所述反馈数据用于表征所述最小包序号,
其中,通过所述网闸发送的多个数据包的包序号依次递增;
其中,所述第二端设置有接收窗口,用于在确定所述最小包序号之前:
根据所述第一数据包的包序号,确定是否更改所述接收窗口的最小边界值,
其中,在确定更改所述接收窗口的最小边界值的情况下,确定所述最小包序号为所述接收窗口的更改后最小边界值表征的包序号;在确定不更改所述接收窗口的最小边界值的情况下,确定所述最小包序号为所述接收窗口的最小边界值表征的包序号。
12.一种电子设备,包括:
一个或多个处理器;以及
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行:
根据权利要求1~4中任一项所述的方法;并且/或者
根据权利要求5~9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910639515.9A CN110351028B (zh) | 2019-07-15 | 2019-07-15 | 一种数据处理方法及装置、以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910639515.9A CN110351028B (zh) | 2019-07-15 | 2019-07-15 | 一种数据处理方法及装置、以及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110351028A CN110351028A (zh) | 2019-10-18 |
CN110351028B true CN110351028B (zh) | 2020-11-20 |
Family
ID=68176492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910639515.9A Active CN110351028B (zh) | 2019-07-15 | 2019-07-15 | 一种数据处理方法及装置、以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110351028B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111083158B (zh) * | 2019-12-26 | 2022-03-08 | 深圳市东晟数据有限公司 | 一种通过两单向网闸进行双向报文传输的处理方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102055571A (zh) * | 2009-11-05 | 2011-05-11 | 华为技术有限公司 | 一种数据包的传输方法、通信设备和通信系统 |
CN103036904A (zh) * | 2012-12-27 | 2013-04-10 | 东方通信股份有限公司 | 一种在通信网络中使用udp协议进行数据可靠传输的方法 |
CN106130693A (zh) * | 2016-07-08 | 2016-11-16 | 浙江工业大学 | 一种基于udp的可靠传输方法 |
CN107634823A (zh) * | 2017-07-19 | 2018-01-26 | 西南交通大学 | 基于网络编码的传输控制协议的数据传输方法 |
CN108111434A (zh) * | 2017-12-14 | 2018-06-01 | 四川大学 | 一种基于可靠udp和喷泉码的航空自组网可靠传输方法 |
CN108270523A (zh) * | 2017-12-27 | 2018-07-10 | 成都卫士通信息产业股份有限公司 | 带内密钥协商传输方法及传输系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101119300B1 (ko) * | 2005-06-01 | 2012-03-15 | 삼성전자주식회사 | 슈퍼 프레임의 시작을 엄격히 지키는 레지덴셜 이더넷 노드장치 및 그 프레임 처리 방법 |
CN104283650A (zh) * | 2014-11-05 | 2015-01-14 | 株洲南车时代电气股份有限公司 | 一种高级数据链路控制数据发送方法 |
CN107592329B (zh) * | 2016-07-08 | 2021-01-22 | 电信科学技术研究院 | 一种数据处理方法及装置 |
CN109887112B (zh) * | 2019-03-28 | 2021-05-07 | 深圳市腾讯计算机系统有限公司 | 数据处理方法、装置及电子设备 |
-
2019
- 2019-07-15 CN CN201910639515.9A patent/CN110351028B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102055571A (zh) * | 2009-11-05 | 2011-05-11 | 华为技术有限公司 | 一种数据包的传输方法、通信设备和通信系统 |
CN103036904A (zh) * | 2012-12-27 | 2013-04-10 | 东方通信股份有限公司 | 一种在通信网络中使用udp协议进行数据可靠传输的方法 |
CN106130693A (zh) * | 2016-07-08 | 2016-11-16 | 浙江工业大学 | 一种基于udp的可靠传输方法 |
CN107634823A (zh) * | 2017-07-19 | 2018-01-26 | 西南交通大学 | 基于网络编码的传输控制协议的数据传输方法 |
CN108111434A (zh) * | 2017-12-14 | 2018-06-01 | 四川大学 | 一种基于可靠udp和喷泉码的航空自组网可靠传输方法 |
CN108270523A (zh) * | 2017-12-27 | 2018-07-10 | 成都卫士通信息产业股份有限公司 | 带内密钥协商传输方法及传输系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110351028A (zh) | 2019-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111512603B (zh) | 一种数据传输方法及第一设备 | |
US10831408B2 (en) | High-speed data packet capture and storage with playback capabilities | |
JP7029471B2 (ja) | アップリンクデータ解凍、圧縮方法および装置 | |
US7953093B2 (en) | TCP/IP reordering | |
US10291482B2 (en) | ECU for transmitting large data in HiL test environment, system including the same and method thereof | |
US20180067893A1 (en) | Multicast apparatuses and methods for distributing data to multiple receivers in high-performance computing and cloud-based networks | |
CN1710880A (zh) | 探索路径最大传输单元的方法和设备 | |
CN1816014A (zh) | 用于通过网络通信相关消息的排队会话 | |
US11681470B2 (en) | High-speed replay of captured data packets | |
US10601722B2 (en) | Method and device for dynamically managing the message retransmission delay on an interconnection network | |
CN103647759A (zh) | 一种mss的协商方法及装置 | |
US20120327847A1 (en) | Multi-streaming multi-homing delay tolerant network protocol | |
CN110351028B (zh) | 一种数据处理方法及装置、以及电子设备 | |
CN111404872A (zh) | 一种报文处理方法、装置及系统 | |
US20190104077A1 (en) | Managing data compression | |
US8711851B1 (en) | Multi-protocol data transfers | |
US8769137B2 (en) | Systems and methods for negotiated accelerated block option for trivial file transfer protocol (TFTP) | |
EP3672189B1 (en) | Data transmission method, device and system | |
US8837289B2 (en) | Terminated transmission control protocol tunnel | |
CN104426866A (zh) | 一种数据传输方法及装置 | |
US20120072520A1 (en) | System and Method for Establishing Reliable Communication in a Connection-Less Environment | |
CN114337938A (zh) | 一种数据传输方法、数据重传方法、装置和相关设备 | |
US10762017B2 (en) | USB transmission system, USB device, and host capable of USB transmission | |
CN111865884B (zh) | 一种报文处理方法、装置及设备 | |
US7532644B1 (en) | Method and system for associating multiple payload buffers with multidata message |
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 |