CN103546258A - 一种数据传输方法及装置 - Google Patents
一种数据传输方法及装置 Download PDFInfo
- Publication number
- CN103546258A CN103546258A CN201310522673.9A CN201310522673A CN103546258A CN 103546258 A CN103546258 A CN 103546258A CN 201310522673 A CN201310522673 A CN 201310522673A CN 103546258 A CN103546258 A CN 103546258A
- Authority
- CN
- China
- Prior art keywords
- data package
- request data
- nic
- sequence number
- request
- 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.)
- Granted
Links
Images
Landscapes
- Communication Control (AREA)
Abstract
本发明涉及通信技术领域,尤其涉及一种数据传输方法及装置,用以解决在RDMA数据传输过程中,一旦出现丢包,后续数据包都需要重传,导致出现雪崩效应,严重影响传输效率的问题;本发明实施例中,第一网卡NIC接收第二NIC发送的请求数据包;所述第一NIC在确定当前接收的所述请求数据包为之前未接收的、后续待处理的请求数据包后,将当前接收的所述请求数据包缓存在所述第一NIC中,并回复ACK数据包;采用这种方法,在RDMA数据传输过程中,若其中一个数据包被丢弃,接收方仍然可以处理接收到的后续数据包,使后续数据包可以正常传输,从而提高传输效率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种数据传输方法及装置。
背景技术
远程直接数据存取(Remote Direct Memory Access,RDMA)技术是为了解决网络传输中服务器端数据处理的延迟而产生的数据传输技术;它不需要对操作系统造成任何影响,就可以通过网络把资料直接传入计算机的存储区,将数据从一个应用系统快速移动到远程应用系统存储器中,采用这项技术,可以减少传统以太网数据传输过程中对数据的内存拷贝、内核处理以及系统调用切换等过程,从而降低数据传输的时延,提高业务处理能力。如图1所示,为传统以太网数据传输中资源消耗分布图,从图中可以看出,传统的数据传输方式中,内存拷贝、内核处理以及系统调用切换过程占用了整个数据传输中资源消耗的绝大部分。因此,相比传统方式,采用RDMA技术进行数据传输可以极大地降低对存储器带宽和处理器开销的需求。
RDMA的工作过程为:在不执行任何数据复制,不需要任何内核内存参与的条件下,通过RDMA请求,将数据从运行在用户空间中的应用中发送到本地网卡(Network Interface Card,NIC);本地NIC将数据通过网络传送到远程目标NIC;目标NIC在接收到该数据后,确认内存钥匙,直接将数据写入应用缓存中。
在RDMA技术的应用中,RDMA数据的传输依赖于具有数据中心桥接(Data Center Bridging,DCB)特性的交换机,采用具有DCB特性的交换机传输数据可以保证RDMA数据传输过程中不丢包,但是,在当前的存储领域中,很多数据交换场景中并没有采用具备DCB特性的交换机进行数据传输,在这种情况下,上述RDMA技术的应用就会存在很大限制,因为在RDMA数据传输过程中,若其中一个数据包被丢弃,因接收方无法处理后续数据包,导致后续数据包都会传输失败,如图2所示,在RDMA数据传输过程中,一旦出现丢包,后续数据包都会传输失败,导致出现雪崩效应,严重影响传输效率。
发明内容
本发明实施例提供一种数据传输方法,用以解决在RDMA数据传输过程中,一旦出现丢包,后续数据包都会传输失败,导致出现雪崩效应,严重影响传输效率的问题。
第一方面,提供一种数据传输方法,包括:
第一网卡NIC接收第二NIC发送的请求数据包;
所述第一NIC根据当前接收的所述请求数据包的序列号、之前已接收的所有请求数据包的序列号集合及当前正在处理的请求数据包的序列号,确定当前接收的所述请求数据包是否为之前未接收的、后续待处理的请求数据包;其中,所述之前未接收的、后续待处理的请求数据包的序列号不属于所述之前已接收的所有请求数据包的序列号集合、且与所述当前正在处理的请求数据包的序列号不相邻;
若所述第一NIC确定当前接收的所述请求数据包为之前未接收的、后续待处理的请求数据包,则将当前接收的所述请求数据包缓存在所述第一NIC中,并向所述第二NIC回复确认ACK数据包,以确认接收到所述请求数据包。
结合第一方面,在第一种可能的实现方式中,所述第一NIC接收第二NIC发送的请求数据包之后,还包括:
所述第一NIC根据当前接收的所述请求数据包的序列号、之前已接收的所有请求数据包的序列号集合及当前正在处理的请求数据包的序列号,确定当前接收的所述请求数据包是否为之前未接收的、当前待处理的请求数据包;其中,所述之前未接收的、当前待处理的请求数据包的序列号不属于所述之前已接收的请求数据包的序列号集合、且与所述当前正在处理的请求数据包的序列号相邻;
若所述第一NIC确定当前接收的所述请求数据包为之前未接收的、当前待处理的请求数据包,则将当前接收的所述请求数据包写入目标存储地址中,并向所述第二NIC回复ACK数据包,以确认接收到所述请求数据包。
结合第一方面,在第二种可能的实现方式中,所述第一NIC接收第二NIC发送的请求数据包之后,还包括:
所述第一NIC根据当前接收的所述请求数据包的序列号、之前已接收的所有请求数据包的序列号集合及当前正在处理的请求数据包的序列号,确定当前接收的请求数据包是否为之前已接收的请求数据包;其中,所述之前已接收的请求数据包的序列号属于所述之前已接收的所有请求数据包的序列号集合;
若所述第一NIC确定当前接收的所述请求数据包为之前已接收的请求数据包,则丢弃当前接收的所述请求数据包,并向所述第二NIC回复ACK数据包,以确认接收到所述请求数据包。
结合第一方面,在第三种可能的实现方式中,所述第一NIC将当前接收的所述请求数据包缓存在所述第一NIC中之后,还包括:
所述第一NIC从自身缓存中查找当前待处理的请求数据包;
若所述第一NIC查找到当前待处理的请求数据包,则将所述查找到的请求数据包写入目标存储地址中。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第一NIC从自身缓存中查找当前待处理的请求数据包,包括:
所述第一NIC在将当前正在处理的请求数据包写入目标存储地址后,从自身缓存中查找当前待处理的请求数据包。
第二方面,提供一种数据传输方法,包括:
第二网卡NIC接收第一NIC发送的确认ACK数据包;
第二网卡NIC从已发送的请求数据包中,确定该ACK数据包所确认接收的请求数据包;其中,所述ACK数据包的序列号与该ACK数据包所确认接收的请求数据包的序列号相同;
所述第二NIC将所述ACK数据包所确认接收的请求数据包确定为不需要重传的请求数据包;所述不需要重传的请求数据包的序列号大于至少一个所述第二NIC发送的请求数据包中未被确认接收的请求数据包的序列号。
结合第二方面,在第一种可能的实现方式中,所述方法还包括:
所述第二NIC在向所述第一NIC发送请求数据包之后,若在设定时间内没有接收到所述第一NIC确认该请求数据包已接收的ACK数据包,则向所述第一NIC重传所述请求数据包。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第二NIC向所述第一NIC重传所述请求数据包之后,还包括:
若所述第二NIC接收到所述第一NIC确认首次发送的请求数据包已接收的ACK数据包,则所述第二NIC根据首次发送所述请求数据包的时间与接收到该ACK数据包的时间之差,减小所述设定时间;其中,所述首次发送的请求数据包为重传所述请求数据包之前首次发送的、与重传的所述请求数据包中的数据一致的请求数据包。
第三方面,提供一种数据传输装置,该装置设置于第一网卡NIC中,包括:
接收模块,用于接收第二NIC发送的请求数据包,并将接收的所述请求数据包传输至确定模块;
确定模块,用于根据当前接收的所述请求数据包的序列号、之前已接收的所有请求数据包的序列号集合及当前正在处理的请求数据包的序列号,确定当前接收的所述请求数据包是否为之前未接收的、后续待处理的请求数据包;其中,所述之前未接收的、后续待处理的请求数据包的序列号不属于所述之前已接收的所有请求数据包的序列号集合、且与所述当前正在处理的请求数据包的序列号不相邻;
处理模块,用于在所述确定模块确定当前接收的所述请求数据包为之前未接收的、后续待处理的请求数据包时,则将当前接收的所述请求数据包缓存在所述第一NIC中,并向所述第二NIC回复确认ACK数据包,以确认接收到所述请求数据包。
结合第三方面,在第一种可能的实现方式中,所述确定模块还用于,根据当前接收的所述请求数据包的序列号、之前已接收的所有请求数据包的序列号集合及当前正在处理的请求数据包的序列号,确定当前接收的所述请求数据包是否为之前未接收的、当前待处理的请求数据包;其中,所述之前未接收的、当前待处理的请求数据包的序列号不属于所述之前已接收的请求数据包的序列号集合、且与所述当前正在处理的请求数据包的序列号相邻;
所述处理模块还用于,若所述确定模块确定当前接收的所述请求数据包为之前未接收的、当前待处理的请求数据包,则将当前接收的所述请求数据包写入目标存储地址中,并向所述第二NIC回复ACK数据包,以确认接收到所述请求数据包。
结合第三方面,在第二种可能的实现方式中,所述确定模块还用于,根据当前接收的所述请求数据包的序列号、之前已接收的所有请求数据包的序列号集合及当前正在处理的请求数据包的序列号,确定当前接收的请求数据包是否为之前已接收的请求数据包;其中,所述之前已接收的请求数据包的序列号属于所述之前已接收的所有请求数据包的序列号集合;
所述处理模块还用于,若所述确定模块确定当前接收的所述请求数据包为之前已接收的请求数据包,则丢弃当前接收的所述请求数据包,并向所述第二NIC回复ACK数据包,以确认接收到所述请求数据包。
结合第三方面,在第三种可能的实现方式中,所述处理模块还用于,从所述第一NIC的缓存中查找当前待处理的请求数据包,若查找到当前待处理的请求数据包,则将所述查找到的请求数据包写入目标存储地址中。
结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述处理模块具体用于,在将当前正在处理的请求数据包写入目标存储地址后,从所述第一NIC的缓存中查找当前待处理的请求数据包。
第四方面,提供一种数据传输装置,该装置设置于第二NIC中,包括:
接收模块,用于接收第一NIC发送的确认ACK数据包,并将接收的所述ACK数据包传输至第一确定模块;
第一确定模块,用于从已发送的请求数据包中,确定所述ACK数据包所确认接收的请求数据包,并将确定的请求数据包传输至第二确定模块;其中,所述ACK数据包的序列号与该ACK数据包所确认接收的请求数据包的序列号相同;
第二确定模块,用于将所述ACK数据包所确认接收的请求数据包确定为不需要重传的请求数据包;所述不需要重传的请求数据包的序列号大于至少一个所述第二NIC发送的请求数据包中未被确认接收的请求数据包的序列号。
结合第四方面,在第一种可能的实现方式中,所述装置还包括:
发送模块,用于在向所述第一NIC发送请求数据包之后,若在设定时间内没有接收到所述第一NIC确认该请求数据包已接收的ACK数据包,则向所述第一NIC重传所述请求数据包。
结合第四方面,在第一种可能的实现方式中,所述发送模块还用于,在向所述第一NIC重传所述请求数据包之后,若确定接收到所述第一NIC确认首次发送的请求数据包已接收的ACK数据包,则根据首次发送所述请求数据包的时间与接收到该ACK数据包的时间之差,减小所述设定时间;其中,所述首次发送的请求数据包为重传所述请求数据包之前首次发送的、与重传的所述请求数据包中的数据一致的请求数据包。
根据上述第一方面提供的数据传输方法,第一NIC在确定接收的请求数据包为之前未接收的、且为后续待处理的请求数据包时,将接收的请求数据包先缓存在所述第一NIC中,并发送与所述接收的请求数据包对应的ACK数据包,采用这种方法,第一NIC可以在接收到后续待处理的请求数据包时,先将该请求数据包缓存,并回复ACK数据包,以告知发送方该请求数据包已收到,因此,采用这种方法,在其中一个请求数据包被丢弃后,后续请求数据包可以正常传输,不需要重传,从而提高传输效率;
根据上述第二方面提供的数据传输方法,第二NIC在接收到确认所述第二NIC发送的请求数据包已接收的ACK数据包后,便不再重传该请求数据包,只重传未被确认接收的请求数据包,这样,既保证了丢失数据的重传,又提高了数据传输效率。
附图说明
图1为传统以太网数据传输中资源消耗分布图;
图2为背景技术中RDMA数据传输过程示意图;
图3为本发明实施例一提供的数据传输方法流程图;
图4为本发明实施例中NIC接收请求数据包的示意图;
图5为本发明实施例二提供的数据传输方法流程图;
图6为本发明实施例进行请求数据包重传的示意图;
图7为本发明实施例中请求数据包和ACK数据包传输示意图;
图8为本发明实施例提供的请求数据包的接收方法流程图;
图9为本发明实施例提供的ACK数据包的接收方法流程图;
图10为本发明实施例提供的发送请求数据包的方法流程图;
图11为本发明实施例一提供的数据传输装置示意图;
图12为本发明实施例二提供的数据传输装置示意图;
图13为本发明实施例一提供的NIC结构示意图;
图14为本发明实施例二提供的NIC结构示意图。
具体实施方式
下面结合说明书附图对本发明实施例作进一步详细描述。
如图3所示,为本发明实施例一提供的一种数据传输方法流程图,包括以下步骤:
S301:第一网卡NIC接收第二NIC发送的请求数据包;
S302:所述第一NIC根据当前接收的所述请求数据包的序列号、之前已接收的所有请求数据包的序列号集合及当前正在处理的请求数据包的序列号,确定当前接收的所述请求数据包是否为之前未接收的、后续待处理的请求数据包;其中,所述之前未接收的、后续待处理的请求数据包的序列号不属于所述之前已接收的所有请求数据包的序列号集合、且与所述当前正在处理的请求数据包的序列号不相邻;
S303:若所述第一NIC确定当前接收的所述请求数据包为之前未接收的、后续待处理的请求数据包,则将当前接收的所述请求数据包缓存在所述第一NIC中,并向所述第二NIC回复确认ACK数据包,以确认接收到所述请求数据包。
采用本发明实施例的方法,第一NIC可以在确定接收的请求数据包为之前未接收的、且为后续待处理的请求数据包时,先将该数据包存入NIC的缓存,并向发送方发送ACK数据包,以告知发送方该请求数据包已收到,这样,可以避免发送方因为没有收到ACK数据包而重传该请求数据包,因此,采用这种方法,在其中一个请求数据包被丢弃后,后续请求数据包仍可以正常传输,不需要重传,从而提高传输效率。
采用本发明实施例,无需将现有以太网数据交换环境升级为DCB交换环境,也即,本发明实施例支持RDMA远程内存访问技术在传统以太网交换环境上的应用,从而可以节约应用RDMA技术的成本。
可选地,步骤S301之后,还包括:
所述第一NIC根据当前接收的所述请求数据包的序列号、之前已接收的所有请求数据包的序列号集合及当前正在处理的请求数据包的序列号,确定当前接收的所述请求数据包是否为之前未接收的、当前待处理的请求数据包;其中,所述之前未接收的、当前待处理的请求数据包的序列号不属于所述之前已接收的请求数据包的序列号集合、且与所述当前正在处理的请求数据包的序列号相邻;
若所述第一NIC确定当前接收的所述请求数据包为之前未接收的、当前待处理的请求数据包,则将当前接收的所述请求数据包写入目标存储地址中,并向所述第二NIC回复ACK数据包,以确认接收到所述请求数据包。
可选地,步骤S301之后,还包括:
所述第一NIC根据当前接收的所述请求数据包的序列号、之前已接收的所有请求数据包的序列号集合及当前正在处理的请求数据包的序列号,确定当前接收的请求数据包是否为之前已接收的请求数据包;其中,所述之前已接收的请求数据包的序列号属于所述之前已接收的所有请求数据包的序列号集合;
若所述第一NIC确定当前接收的所述请求数据包为之前已接收的请求数据包,则丢弃当前接收的所述请求数据包,并向所述第二NIC回复ACK数据包,以确认接收到所述请求数据包。
在本发明实施例中,第一NIC接收的请求数据包的类型有多种,有可能是之前已接收的请求数据包,也有可能是之前未接收的、当前待处理的请求数据包,也有可能是之前未接收的、后续待处理的请求数据包,第一NIC具体可以根据接收的请求数据包的序列号来判断接收的该数据包的类型,如图4所示,为本发明实施例中第一NIC接收请求数据包的示意图;假设第一NIC当前已接收的请求数据包的序列号包括已处理过的序列号小于等于i+2的请求数据包,及后续待处理的序列号为i+4的请求数据包,当前待处理的请求数据包的序列号为i+3;此时,第一NIC接收到序列号为k的请求数据包,则第一NIC在k≤i+2,或k=i+4时,确定该请求数据包为已接收的请求数据包,在k=i+3时,确定该请求数据包为之前未接收的、当前待处理的请求数据包,若k≥i+5,则确定该请求数据包为之前未接收的、后续待处理的请求数据包。
在具体实施过程中,第一NIC在接收到请求数据包之后,根据该请求数据包的序列号,判断接收的请求数据包是否为之前已经接收过的请求数据包,若是之前已经接收过的请求数据包,则可以将该请求数据包丢弃,同时,可以回复确认(ACK)数据包,若不是之前已经接收过的请求数据包,则可以判断接收的请求数据包是否为当前待处理的请求数据包,如果是,则直接将该请求数据包写入目标存储地址,并回复ACK数据包,否则,确定接收的数据包为后续待处理的请求数据包,可以将该后续待处理的请求数据包存入第一NIC中的缓存队列,并回复ACK数据包。
可选地,步骤S303之后,还包括:
所述第一NIC从自身缓存中查找当前待处理的请求数据包;
若所述第一NIC查找到当前待处理的请求数据包,则将所述查找到的请求数据包写入目标存储地址中。
可选地,所述第一NIC从自身缓存中查找当前待处理的请求数据包,包括:
所述第一NIC在将当前正在处理的请求数据包写入目标存储地址后,从自身缓存中查找当前待处理的请求数据包。
在具体实施过程中,第一NIC将接收的请求数据包缓存在所述第一NIC中之后,可以在处理数据的过程中,从该缓存队列中查找序列号与当前正在处理的请求数据包的序列号相邻的请求数据包,也即序列号比当前正在处理的请求数据包的序列号大1的请求数据包,将查找到的请求数据包作为当前待处理的请求数据包写入目标存储地址中。
与上述数据传输中接收方处理接收到的请求数据包的方法相对应,本发明实施例还提供了下列数据传输中发送方处理需要发送的请求数据包的方法;
如图5所示,为本发明实施例二提供的一种数据传输方法流程图,包括:
S501:第二网卡NIC接收第一NIC发送的确认ACK数据包;
S502:第二网卡NIC从已发送的请求数据包中,确定该ACK数据包所确认接收的请求数据包;其中,所述ACK数据包的序列号与该ACK数据包所确认接收的请求数据包的序列号相同;
S503:所述第二NIC将所述ACK数据包所确认接收的请求数据包确定为不需要重传的请求数据包;所述不需要重传的请求数据包的序列号大于至少一个所述第二NIC发送的请求数据包中未被确认接收的请求数据包的序列号。
采用本发明实施例,第二NIC在确定接收到第一NIC确认发送的请求数据包已接收的确认数据包后,便不再重传该请求数据包,只重传未收到对应的确认数据包的请求数据包,这样,既保证了丢失数据的重传,又提高了数据传输效率。
采用本发明实施例,在交换机没有DCB特性的条件下,可以通过上述选择性重传提高传输效率,在具体实施中,可通过设置使能开关,选择是否采用上述选择性重传机制,使交换机兼容多种组网环境。
如图6所示,为本发明实施例进行请求数据包重传的示意图,本发明实施例中,若其中一个数据包丢失,后续数据包仍可以正常传输,第二NIC只需发送需要重传的请求数据包即可。
如图7所示,为本发明实施例中请求数据包和ACK数据包传输示意图,在实施中,第二NIC根据已发送的请求数据包及接收的ACK数据包,确认传输成功的请求数据包和传输失败的请求数据包,针对已发送的请求数据包中的任意一个请求数据包,若没有接收到第一NIC确认该请求数据包已接收的ACK数据包,则确定该请求数据包传输失败;可见,第二NIC确定传输失败的请求数据包中可能包括本身没有到达到第一NIC的请求数据包,也有可能包括已经到达第一NIC,但第一NIC回复的ACK数据包没有到达该第二NIC的请求数据包,如图7所示,请求数据包P2在传输过程中没有到达第一NIC,第二NIC确定需要重传P2;请求数据包P4成功到达第一NIC,但是第一NIC回复的ACK数据包A4没有到达该第二NIC,该第二NIC确定需要重传P4;其它请求数据包P1、P3、P5、P6及对应的ACK数据包传输成功,该第二NIC确定这些请求数据包传输成功。
可选地,所述方法还包括:
所述第二NIC在向所述第一NIC发送请求数据包之后,若在设定时间内没有接收到所述第一NIC确认该请求数据包已接收的ACK数据包,则向所述第一NIC重传所述请求数据包。
在具体实施过程中,可以通过设置定时器,在发送请求数据包的同时启动定时器,若在定时器超时时间内,没有接收到确认某请求数据包已接收的ACK数据包,则确定需要重传该请求数据包,在重传该请求数据包的同时,可以增大定时器的超时时间,并再次启动定时器;还可以设置重传阈值,在重传次数大于设定阈值时,确定数据连接断开,这时,可以启动报警器,通知相关人员进行故障分析等。
可选地,所述第二NIC向所述第一NIC重传所述请求数据包之后,还包括:
若所述第二NIC接收到所述第一NIC确认首次发送的请求数据包已接收的ACK数据包,则所述第二NIC根据首次发送所述请求数据包的时间与接收到该ACK数据包的时间之差,减小所述设定时间;其中,所述首次发送的请求数据包为重传所述请求数据包之前首次发送的、与重传的所述请求数据包中的数据一致的请求数据包。
在具体实施过程中,在第二NIC发送需要重传的请求数据包之后,有可能接收到第一NIC确认之前的请求数据包已接收的ACK数据包,这说明之前设置的定时器的超时时间短了,可以增大定时器的超时时间,以减少不必要的重传,节省开销。
可选地,所述方法还包括:
所述第二NIC在当前正在发送的请求数据包的序列号与序列号最小的待确认的请求数据包的序列号之差大于设定阈值时,停止发送除需要重传的请求数据包之外的其它请求数据包;
在具体实施过程中,当传输过程中出现断点的时候,第二NIC发送的后续请求数据包在第一NIC是先被缓存的,会消耗第一NIC的存储空间。因此,在需要重传的请求数据包较多时,需要中断(Backlog)机制,降低该第二NIC发送请求数据包的速度,以免过多地消耗第一NIC的缓存资源最终引起传输效率降低。
为了进一步说明本发明实施例进行数据传输的方法,下面分别介绍本发明实施例中接收请求数据包、接收确认数据包、及发送请求数据包的过程;
如图8所示,为本发明实施例提供的请求数据包的接收方法流程图,本发明实施例的执行主体为NIC,包括:
S801:接收请求数据包;
S802:根据接收的请求数据包的序列号,判断该请求数据包的类型是已接收过的请求数据包,还是没有接收过的、当前待处理的请求数据包,还是没有接收过的、后续待处理的请求数据包,若为已接收过的请求数据包,则进入步骤S803,若为没有接收过的、当前待处理的请求数据包,则进入步骤S804,若为没有接收过的、后续待处理的请求数据包,则进入步骤S805;
具体地,NIC可以根据接收的请求数据包的序列号判断该请求数据包的类型,具体判断方式可参见上述与图4相关的描述,这里不再赘述。
S803:丢弃该请求数据包,并回复ACK数据包;
这里,NIC接收的重复的请求数据包应该是接收到重传的请求数据包之前对端发送的请求数据包,这时,NIC仍然需要回复ACK数据包,以使对端根据该回复,调整重传超时时间,以避免不必要的重传,节省系统开销。
S804:压入接收协议栈进行处理,并回复ACK数据包,进入步骤S806;
在具体实施中,NIC在接收到当前待处理的请求数据包后,将接收的请求数据包压入接收协议栈进行处理,也即将接收的请求数据包写入目标存储地址中,并回复ACK数据包;
S805:对接收的后续待处理的请求数据包进行校验后缓存在NIC中,并回复ACK数据包;
S806:从NIC的缓存中查找当前待处理的请求数据包,并在查找到当前待处理的请求数据包后,进入步骤S804。
如图9所示,为本发明实施例提供的ACK数据包的接收方法流程图,本发明实施例的执行主体为NIC,包括:
S901:接收ACK数据包;
S902:从待确认的请求数据包中,查找是否存在该ACK数据包确认接收的请求数据包,若存在,则进入步骤S903,否则,进入步骤S904;
在具体实施过程中,可以设置待确认的请求数据包重传链,用于存储待确认的请求数据包,在接收到确认其中一个待确认的请求数据包已接收的ACK数据包后,将该请求数据包从上述重传链中删除。
S903:从待确认的请求数据包中删除将该ACK数据包确认接收的请求数据包,并记录从发送请求数据包到接收到确认该请求数据包已接收的ACK数据包的时间长度;所述记录的时间长度用于调整超时重传时间;
S904:丢弃该ACK数据包。
如图10所示,为本发明实施例提供的发送请求数据包的方法流程图,本发明实施例的执行主体为NIC,包括:
S1001:发送请求数据包,并同时启动超时定时器;
S1002:将发送的请求数据包加入待确认的请求数据包重传链;
S1003:判断当前正在发送的请求数据包的序列号与序列号最小的待确认的请求数据包的序列号之差是否大于设定阈值,若是,则进入步骤S1004,否则返回步骤S1001;
S1004:停止发送除需要重传的请求数据包之外的其它请求数据包,只发送需重传的请求数据包。
基于同一发明构思,本发明实施例中还提供了一种与数据传输方法对应的数据传输装置,由于该装置解决问题的原理与本发明实施例数据传输方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
如图11所示,为本发明实施例一提供的数据传输装置示意图,该装置设置于第一NIC中,包括:
接收模块111,用于接收第二NIC发送的请求数据包,并将接收的所述请求数据包传输至确定模块112;
确定模块112,用于根据当前接收的所述请求数据包的序列号、之前已接收的所有请求数据包的序列号集合及当前正在处理的请求数据包的序列号,确定当前接收的所述请求数据包是否为之前未接收的、后续待处理的请求数据包;其中,所述之前未接收的、后续待处理的请求数据包的序列号不属于所述之前已接收的所有请求数据包的序列号集合、且与所述当前正在处理的请求数据包的序列号不相邻;
处理模块113,用于在所述确定模块112确定当前接收的所述请求数据包为之前未接收的、后续待处理的请求数据包时,则将当前接收的所述请求数据包缓存在所述第一NIC中,并向所述第二NIC回复确认ACK数据包,以确认接收到所述请求数据包。
可选地,所述确定模块112还用于,根据当前接收的所述请求数据包的序列号、之前已接收的所有请求数据包的序列号集合及当前正在处理的请求数据包的序列号,确定当前接收的所述请求数据包是否为之前未接收的、当前待处理的请求数据包;其中,所述之前未接收的、当前待处理的请求数据包的序列号不属于所述之前已接收的请求数据包的序列号集合、且与所述当前正在处理的请求数据包的序列号相邻;
所述处理模块113还用于,若所述确定模块112确定当前接收的所述请求数据包为之前未接收的、当前待处理的请求数据包,则将当前接收的所述请求数据包写入目标存储地址中,并向所述第二NIC回复ACK数据包,以确认接收到所述请求数据包。
可选地,所述确定模块112还用于,根据当前接收的所述请求数据包的序列号、之前已接收的所有请求数据包的序列号集合及当前正在处理的请求数据包的序列号,确定当前接收的请求数据包是否为之前已接收的请求数据包;其中,所述之前已接收的请求数据包的序列号属于所述之前已接收的所有请求数据包的序列号集合;
所述处理模块113还用于,若所述确定模块确定当前接收的所述请求数据包为之前已接收的请求数据包,则丢弃当前接收的所述请求数据包,并向所述第二NIC回复ACK数据包,以确认接收到所述请求数据包。
可选地,所述处理模块113还用于,从所述第一NIC的缓存中查找当前待处理的请求数据包,若查找到当前待处理的请求数据包,则将所述查找到的请求数据包写入目标存储地址中。
可选地,所述处理模块113具体用于,在将当前正在处理的请求数据包写入目标存储地址后,从所述第一NIC的缓存中查找当前待处理的请求数据包。
如图12所示,为本发明实施例二提供的数据传输装置示意图,该装置设置于第二NIC中,包括:
接收模块121,用于接收第一NIC发送的确认ACK数据包,并将接收的所述ACK数据包传输至第一确定模块122;
第一确定模块122,用于从已发送的请求数据包中,确定所述ACK数据包所确认接收的请求数据包,并将确定的请求数据包传输至第二确定模块123;其中,所述ACK数据包的序列号与该ACK数据包所确认接收的请求数据包的序列号相同;
第二确定模块123,用于将所述ACK数据包所确认接收的请求数据包确定为不需要重传的请求数据包;所述不需要重传的请求数据包的序列号大于至少一个所述第二NIC发送的请求数据包中未被确认接收的请求数据包的序列号。
可选地,所述装置还包括:
发送模块124,用于在向所述第一NIC发送请求数据包之后,若在设定时间内没有接收到所述第一NIC确认该请求数据包已接收的ACK数据包,则向所述第一NIC重传所述请求数据包。
可选地,所述发送模块124还用于,在向所述第一NIC重传所述请求数据包之后,若确定接收到所述第一NIC确认首次发送的请求数据包已接收的ACK数据包,则根据首次发送所述请求数据包的时间与接收到该ACK数据包的时间之差,减小所述设定时间;其中,所述首次发送的请求数据包为重传所述请求数据包之前首次发送的、与重传的所述请求数据包中的数据一致的请求数据包。
如图13所示,为本发明实施例一提供的NIC结构示意图,包括:
输入输出(Input/Output,I/O)装置131,用于接收发送方发送的请求数据包,并将接收的所述请求数据包传输至处理器132;
处理器132,用于根据当前接收的所述请求数据包的序列号、之前已接收的所有请求数据包的序列号集合及当前正在处理的请求数据包的序列号,确定当前接收的所述请求数据包是否为之前未接收的、后续待处理的请求数据包;其中,所述之前未接收的、后续待处理的请求数据包的序列号不属于所述之前已接收的所有请求数据包的序列号集合、且与所述当前正在处理的请求数据包的序列号不相邻;若确定当前接收的所述请求数据包为之前未接收的、后续待处理的请求数据包,则将当前接收的所述请求数据包缓存在所述NIC中,并向所述发送方回复确认ACK数据包,以确认接收到所述请求数据包。
可选地,所述处理器132还用于,根据当前接收的所述请求数据包的序列号、之前已接收的所有请求数据包的序列号集合及当前正在处理的请求数据包的序列号,确定当前接收的所述请求数据包是否为之前未接收的、当前待处理的请求数据包;其中,所述之前未接收的、当前待处理的请求数据包的序列号不属于所述之前已接收的请求数据包的序列号集合、且与所述当前正在处理的请求数据包的序列号相邻;若确定当前接收的所述请求数据包为之前未接收的、当前待处理的请求数据包,则将当前接收的所述请求数据包写入目标存储地址中,并向所述发送方回复ACK数据包,以确认接收到所述请求数据包。
可选地,所述处理器132还用于,根据当前接收的所述请求数据包的序列号、之前已接收的所有请求数据包的序列号集合及当前正在处理的请求数据包的序列号,确定当前接收的请求数据包是否为之前已接收的请求数据包;其中,所述之前已接收的请求数据包的序列号属于所述之前已接收的所有请求数据包的序列号集合;若所述确定模块确定当前接收的所述请求数据包为之前已接收的请求数据包,则丢弃当前接收的所述请求数据包,并向所述发送方回复ACK数据包,以确认接收到所述请求数据包。
可选地,所述处理器132还用于,从所述NIC的缓存中查找当前待处理的请求数据包,若查找到当前待处理的请求数据包,则将所述查找到的请求数据包写入目标存储地址中。
可选地,所述处理器132还用于,在将当前正在处理的请求数据包写入目标存储地址后,从所述NIC的缓存中查找当前待处理的请求数据包。
如图14所示,为本发明实施例二提供的NIC示意图,包括:
输入输出(Input/Output,I/O)装置141,用于接收请求数据包接收方发送的确认ACK数据包,并将接收的所述ACK数据包传输至处理器142;
处理器142,用于从已发送的请求数据包中,确定所述ACK数据包所确认接收的请求数据包,并将所述ACK数据包所确认接收的请求数据包确定为不需要重传的请求数据包;其中,所述ACK数据包的序列号与该ACK数据包所确认接收的请求数据包的序列号相同;所述不需要重传的请求数据包的序列号大于至少一个所述NIC发送的请求数据包中未被确认接收的请求数据包的序列号。
可选地,所述I/O装置141还用于:
在向所述接收方发送请求数据包之后,若在设定时间内没有接收到所述接收方确认该请求数据包已接收的ACK数据包,则向所述接收方重传所述请求数据包。
可选地,所述处理器142还用于,在所述I/O装置141向所述接收方重传所述请求数据包之后,若确定接收到所述接收方确认首次发送的请求数据包已接收的ACK数据包,则根据首次发送所述请求数据包的时间与接收到该ACK数据包的时间之差,减小所述设定时间;其中,所述首次发送的请求数据包为重传所述请求数据包之前首次发送的、与重传的所述请求数据包中的数据一致的请求数据包。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种数据传输方法,其特征在于,该方法包括:
第一网卡NIC接收第二NIC发送的请求数据包;
所述第一NIC根据当前接收的所述请求数据包的序列号、之前已接收的所有请求数据包的序列号集合及当前正在处理的请求数据包的序列号,确定当前接收的所述请求数据包是否为之前未接收的、后续待处理的请求数据包;其中,所述之前未接收的、后续待处理的请求数据包的序列号不属于所述之前已接收的所有请求数据包的序列号集合、且与所述当前正在处理的请求数据包的序列号不相邻;
若所述第一NIC确定当前接收的所述请求数据包为之前未接收的、后续待处理的请求数据包,则将当前接收的所述请求数据包缓存在所述第一NIC中,并向所述第二NIC回复确认ACK数据包,以确认接收到所述请求数据包。
2.如权利要求1所述的方法,其特征在于,所述第一NIC接收第二NIC发送的请求数据包之后,还包括:
所述第一NIC根据当前接收的所述请求数据包的序列号、之前已接收的所有请求数据包的序列号集合及当前正在处理的请求数据包的序列号,确定当前接收的所述请求数据包是否为之前未接收的、当前待处理的请求数据包;其中,所述之前未接收的、当前待处理的请求数据包的序列号不属于所述之前已接收的请求数据包的序列号集合、且与所述当前正在处理的请求数据包的序列号相邻;
若所述第一NIC确定当前接收的所述请求数据包为之前未接收的、当前待处理的请求数据包,则将当前接收的所述请求数据包写入目标存储地址中,并向所述第二NIC回复ACK数据包,以确认接收到所述请求数据包。
3.如权利要求1所述的方法,其特征在于,所述第一NIC接收第二NIC发送的请求数据包之后,还包括:
所述第一NIC根据当前接收的所述请求数据包的序列号、之前已接收的所有请求数据包的序列号集合及当前正在处理的请求数据包的序列号,确定当前接收的请求数据包是否为之前已接收的请求数据包;其中,所述之前已接收的请求数据包的序列号属于所述之前已接收的所有请求数据包的序列号集合;
若所述第一NIC确定当前接收的所述请求数据包为之前已接收的请求数据包,则丢弃当前接收的所述请求数据包,并向所述第二NIC回复ACK数据包,以确认接收到所述请求数据包。
4.如权利要求1所述的方法,其特征在于,所述第一NIC将当前接收的所述请求数据包缓存在所述第一NIC中之后,还包括:
所述第一NIC从自身缓存中查找当前待处理的请求数据包;
若所述第一NIC查找到当前待处理的请求数据包,则将所述查找到的请求数据包写入目标存储地址中。
5.如权利要求4所述的方法,其特征在于,所述第一NIC从自身缓存中查找当前待处理的请求数据包,包括:
所述第一NIC在将当前正在处理的请求数据包写入目标存储地址后,从自身缓存中查找当前待处理的请求数据包。
6.一种数据传输方法,其特征在于,该方法包括:
第二网卡NIC接收第一NIC发送的确认ACK数据包;
第二网卡NIC从已发送的请求数据包中,确定该ACK数据包所确认接收的请求数据包;其中,所述ACK数据包的序列号与该ACK数据包所确认接收的请求数据包的序列号相同;
所述第二NIC将所述ACK数据包所确认接收的请求数据包确定为不需要重传的请求数据包;所述不需要重传的请求数据包的序列号大于至少一个所述第二NIC发送的请求数据包中未被确认接收的请求数据包的序列号。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
所述第二NIC在向所述第一NIC发送请求数据包之后,若在设定时间内没有接收到所述第一NIC确认该请求数据包已接收的ACK数据包,则向所述第一NIC重传所述请求数据包。
8.如权利要求7所述的方法,其特征在于,所述第二NIC向所述第一NIC重传所述请求数据包之后,还包括:
若所述第二NIC接收到所述第一NIC确认首次发送的请求数据包已接收的ACK数据包,则所述第二NIC根据首次发送所述请求数据包的时间与接收到该ACK数据包的时间之差,减小所述设定时间;其中,所述首次发送的请求数据包为重传所述请求数据包之前首次发送的、与重传的所述请求数据包中的数据一致的请求数据包。
9.一种数据传输装置,其特征在于,该装置设置于第一网卡NIC中,包括:
接收模块,用于接收第二NIC发送的请求数据包,并将接收的所述请求数据包传输至确定模块;
确定模块,用于根据当前接收的所述请求数据包的序列号、之前已接收的所有请求数据包的序列号集合及当前正在处理的请求数据包的序列号,确定当前接收的所述请求数据包是否为之前未接收的、后续待处理的请求数据包;其中,所述之前未接收的、后续待处理的请求数据包的序列号不属于所述之前已接收的所有请求数据包的序列号集合、且与所述当前正在处理的请求数据包的序列号不相邻;
处理模块,用于在所述确定模块确定当前接收的所述请求数据包为之前未接收的、后续待处理的请求数据包时,则将当前接收的所述请求数据包缓存在所述第一NIC中,并向所述第二NIC回复确认ACK数据包,以确认接收到所述请求数据包。
10.如权利要求9所述的装置,其特征在于,所述确定模块还用于,根据当前接收的所述请求数据包的序列号、之前已接收的所有请求数据包的序列号集合及当前正在处理的请求数据包的序列号,确定当前接收的所述请求数据包是否为之前未接收的、当前待处理的请求数据包;其中,所述之前未接收的、当前待处理的请求数据包的序列号不属于所述之前已接收的请求数据包的序列号集合、且与所述当前正在处理的请求数据包的序列号相邻;
所述处理模块还用于,若所述确定模块确定当前接收的所述请求数据包为之前未接收的、当前待处理的请求数据包,则将当前接收的所述请求数据包写入目标存储地址中,并向所述第二NIC回复ACK数据包,以确认接收到所述请求数据包。
11.如权利要求9所述的装置,其特征在于,所述确定模块还用于,根据当前接收的所述请求数据包的序列号、之前已接收的所有请求数据包的序列号集合及当前正在处理的请求数据包的序列号,确定当前接收的请求数据包是否为之前已接收的请求数据包;其中,所述之前已接收的请求数据包的序列号属于所述之前已接收的所有请求数据包的序列号集合;
所述处理模块还用于,若所述确定模块确定当前接收的所述请求数据包为之前已接收的请求数据包,则丢弃当前接收的所述请求数据包,并向所述第二NIC回复ACK数据包,以确认接收到所述请求数据包。
12.如权利要求9所述的装置,其特征在于,所述处理模块还用于,从所述第一NIC的缓存中查找当前待处理的请求数据包,若查找到当前待处理的请求数据包,则将所述查找到的请求数据包写入目标存储地址中。
13.如权利要求12所述的装置,其特征在于,所述处理模块具体用于,在将当前正在处理的请求数据包写入目标存储地址后,从所述第一NIC的缓存中查找当前待处理的请求数据包。
14.一种数据传输装置,其特征在于,该装置设置于第二NIC中,包括:
接收模块,用于接收第一NIC发送的确认ACK数据包,并将接收的所述ACK数据包传输至第一确定模块;
第一确定模块,用于从已发送的请求数据包中,确定所述ACK数据包所确认接收的请求数据包,并将确定的请求数据包传输至第二确定模块;其中,所述ACK数据包的序列号与该ACK数据包所确认接收的请求数据包的序列号相同;
第二确定模块,用于将所述ACK数据包所确认接收的请求数据包确定为不需要重传的请求数据包;所述不需要重传的请求数据包的序列号大于至少一个所述第二NIC发送的请求数据包中未被确认接收的请求数据包的序列号。
15.如权利要求14所述的装置,其特征在于,所述装置还包括:
发送模块,用于在向所述第一NIC发送请求数据包之后,若在设定时间内没有接收到所述第一NIC确认该请求数据包已接收的ACK数据包,则向所述第一NIC重传所述请求数据包。
16.如权利要求15所述的装置,其特征在于,所述发送模块还用于,在向所述第一NIC重传所述请求数据包之后,若确定接收到所述第一NIC确认首次发送的请求数据包已接收的ACK数据包,则根据首次发送所述请求数据包的时间与接收到该ACK数据包的时间之差,减小所述设定时间;其中,所述首次发送的请求数据包为重传所述请求数据包之前首次发送的、与重传的所述请求数据包中的数据一致的请求数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310522673.9A CN103546258B (zh) | 2013-10-29 | 2013-10-29 | 一种数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310522673.9A CN103546258B (zh) | 2013-10-29 | 2013-10-29 | 一种数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103546258A true CN103546258A (zh) | 2014-01-29 |
CN103546258B CN103546258B (zh) | 2017-01-18 |
Family
ID=49969346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310522673.9A Active CN103546258B (zh) | 2013-10-29 | 2013-10-29 | 一种数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103546258B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102605A (zh) * | 2014-06-25 | 2014-10-15 | 华为技术有限公司 | 一种数据传输方法、装置和系统 |
CN106372013A (zh) * | 2015-07-24 | 2017-02-01 | 华为技术有限公司 | 远程内存访问方法、装置和系统 |
CN106797281A (zh) * | 2014-12-24 | 2017-05-31 | 柏思科技有限公司 | 用于通过聚合连接传输数据的方法和系统 |
CN107766261A (zh) * | 2017-09-22 | 2018-03-06 | 华为技术有限公司 | 数据校验的方法、装置以及网卡 |
US11005685B2 (en) | 2009-12-23 | 2021-05-11 | Pismo Labs Technology Limited | Methods and systems for transmitting packets through aggregated end-to-end connection |
US11201699B2 (en) | 2009-12-23 | 2021-12-14 | Pismo Labs Technology Limited | Methods and systems for transmitting error correction packets |
CN114520711A (zh) * | 2020-11-19 | 2022-05-20 | 迈络思科技有限公司 | 数据包的选择性重传 |
US11412078B2 (en) | 2017-12-27 | 2022-08-09 | Huawei Technologies Co., Ltd. | Data transmission method and first device |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1983911A (zh) * | 2005-12-12 | 2007-06-20 | 国际商业机器公司 | 更快速检测和重传丢失的传输控制协议段的方法和系统 |
CN101090338A (zh) * | 2006-06-14 | 2007-12-19 | 国际商业机器公司 | 用于对确认进行过滤的方法、系统和设备 |
CN101132230A (zh) * | 2006-08-24 | 2008-02-27 | 中兴通讯股份有限公司 | 时分码分多址系统高速上行分组接入数据及信令传输方法 |
US20130194933A1 (en) * | 2012-01-27 | 2013-08-01 | Zahide Ozlem Celik | Selecting a data unit for retransmission |
-
2013
- 2013-10-29 CN CN201310522673.9A patent/CN103546258B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1983911A (zh) * | 2005-12-12 | 2007-06-20 | 国际商业机器公司 | 更快速检测和重传丢失的传输控制协议段的方法和系统 |
CN101090338A (zh) * | 2006-06-14 | 2007-12-19 | 国际商业机器公司 | 用于对确认进行过滤的方法、系统和设备 |
CN101132230A (zh) * | 2006-08-24 | 2008-02-27 | 中兴通讯股份有限公司 | 时分码分多址系统高速上行分组接入数据及信令传输方法 |
US20130194933A1 (en) * | 2012-01-27 | 2013-08-01 | Zahide Ozlem Celik | Selecting a data unit for retransmission |
Non-Patent Citations (1)
Title |
---|
王绍伟: "ATP无线传输协议报文重传机制的研究与实现", 《万方数据企业知识服务平台》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11677510B2 (en) | 2009-12-23 | 2023-06-13 | Pismo Labs Technology Limited | Methods and systems for transmitting error correction packets |
US11005685B2 (en) | 2009-12-23 | 2021-05-11 | Pismo Labs Technology Limited | Methods and systems for transmitting packets through aggregated end-to-end connection |
US11201699B2 (en) | 2009-12-23 | 2021-12-14 | Pismo Labs Technology Limited | Methods and systems for transmitting error correction packets |
US11943060B2 (en) | 2009-12-23 | 2024-03-26 | Pismo Labs Technology Limited | Methods and systems for transmitting packets |
CN104102605A (zh) * | 2014-06-25 | 2014-10-15 | 华为技术有限公司 | 一种数据传输方法、装置和系统 |
CN104102605B (zh) * | 2014-06-25 | 2018-03-09 | 华为技术有限公司 | 一种数据传输方法、装置和系统 |
CN106797281A (zh) * | 2014-12-24 | 2017-05-31 | 柏思科技有限公司 | 用于通过聚合连接传输数据的方法和系统 |
CN111314199A (zh) * | 2014-12-24 | 2020-06-19 | 柏思科技有限公司 | 用于管理误差校正模式的方法和系统 |
CN106372013A (zh) * | 2015-07-24 | 2017-02-01 | 华为技术有限公司 | 远程内存访问方法、装置和系统 |
CN106372013B (zh) * | 2015-07-24 | 2019-11-12 | 华为技术有限公司 | 远程内存访问方法、装置和系统 |
CN107766261A (zh) * | 2017-09-22 | 2018-03-06 | 华为技术有限公司 | 数据校验的方法、装置以及网卡 |
US11412078B2 (en) | 2017-12-27 | 2022-08-09 | Huawei Technologies Co., Ltd. | Data transmission method and first device |
US11870590B2 (en) | 2020-11-19 | 2024-01-09 | Mellanox Technologies, Ltd. | Selective retransmission of packets |
CN114520711A (zh) * | 2020-11-19 | 2022-05-20 | 迈络思科技有限公司 | 数据包的选择性重传 |
CN114520711B (zh) * | 2020-11-19 | 2024-05-03 | 迈络思科技有限公司 | 数据包的选择性重传 |
Also Published As
Publication number | Publication date |
---|---|
CN103546258B (zh) | 2017-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103546258A (zh) | 一种数据传输方法及装置 | |
CN102217258B (zh) | 探测处理方法、数据发送端、数据接收端以及通信系统 | |
WO2018205688A1 (zh) | 一种数据传输的方法、装置和系统 | |
EP3352431B1 (en) | Network load balance processing system, method, and apparatus | |
CN103944691B (zh) | 一种协同业务传输中的数据重传方法及接入网网关 | |
CN108023683A (zh) | 一种发送报文的方法、装置、芯片及终端 | |
US20110188377A1 (en) | Method and apparatus for flow control between rlc and pdcp in a communication | |
CN109327288A (zh) | 数据传输加速方法、装置及系统 | |
CN104484295A (zh) | 并行计算机系统中基于接收方滑动窗口的数据传输方法 | |
KR20130065619A (ko) | 송신 노드로부터 목적지 노드로의 데이터 전송 방법 | |
CN102868609A (zh) | 一种最大传输单元协商方法及数据终端 | |
CN101977358A (zh) | 一种数据短信的传输方法、装置及设备 | |
CN103326831A (zh) | 在多路传输控制协议中的链路处理方法和移动终端 | |
CN104468509A (zh) | 手机网络游戏数据传输的方法、系统和手机用户端 | |
CN105245442A (zh) | 一种即时通讯im消息的传输方法及装置、系统 | |
CN103684707A (zh) | 服务端、用户端消息传输处理方法、消息传输方法及系统 | |
CN104980257A (zh) | 物联网通讯方法及装置 | |
CN109889312A (zh) | 多链路数据传输方法、装置及计算机可读存储介质 | |
CN105743951A (zh) | 一种数据发送、接收的方法及装置 | |
CN103338158A (zh) | 一种goose报文传输时延抖动抑制方法 | |
US11115474B2 (en) | Data transmission and network interface controller | |
CN104066128A (zh) | 一种数据发送方法及装置 | |
US20120063463A1 (en) | Packet aligning apparatus and packet aligning method | |
US9544401B2 (en) | Device and method for data communication using a transmission ring buffer | |
CN110266446B (zh) | 一种基于sack模式调整乱序时长的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |