CN102118434A - 数据包传输方法和设备 - Google Patents
数据包传输方法和设备 Download PDFInfo
- Publication number
- CN102118434A CN102118434A CN2010106231251A CN201010623125A CN102118434A CN 102118434 A CN102118434 A CN 102118434A CN 2010106231251 A CN2010106231251 A CN 2010106231251A CN 201010623125 A CN201010623125 A CN 201010623125A CN 102118434 A CN102118434 A CN 102118434A
- Authority
- CN
- China
- Prior art keywords
- end device
- data packet
- data
- packet
- sending
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000005540 biological transmission Effects 0.000 title claims abstract description 29
- 238000012545 processing Methods 0.000 claims abstract description 55
- 238000012790 confirmation Methods 0.000 claims abstract description 10
- 230000008569 process Effects 0.000 claims description 20
- 238000010586 diagram Methods 0.000 description 11
- WYDFSSCXUGNICP-UHFFFAOYSA-N 24-methylenecholesta-5,7-dien-3beta-ol Natural products C1C2(C)OC2(C)C(O)OC1C(C)C1C2(C)CCC3C4(C)C(=O)C=CCC4(O)C4OC4C3C2CC1 WYDFSSCXUGNICP-UHFFFAOYSA-N 0.000 description 8
- 101100388300 Arabidopsis thaliana DTX55 gene Proteins 0.000 description 8
- 101100294134 Arabidopsis thaliana NIC3 gene Proteins 0.000 description 8
- WYDFSSCXUGNICP-CDLQDMDJSA-N C[C@@H]([C@H]1CC[C@H]2[C@@H]3[C@@H]4O[C@@H]4[C@@]4(O)CC=CC(=O)[C@]4(C)[C@H]3CC[C@]12C)[C@H]1C[C@]2(C)O[C@]2(C)C(O)O1 Chemical compound C[C@@H]([C@H]1CC[C@H]2[C@@H]3[C@@H]4O[C@@H]4[C@@]4(O)CC=CC(=O)[C@]4(C)[C@H]3CC[C@]12C)[C@H]1C[C@]2(C)O[C@]2(C)C(O)O1 WYDFSSCXUGNICP-CDLQDMDJSA-N 0.000 description 8
- 101100388296 Arabidopsis thaliana DTX51 gene Proteins 0.000 description 6
- 238000001152 differential interference contrast microscopy Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- GWWNCLHJCFNTJA-UHFFFAOYSA-N nicandrenone-2 Natural products C12OC2C2(O)CC=CC(=O)C2(C)C(CCC23C)C1C3CCC2(O)C(C)C1OC(O)C2(C)OC2(C)C1 GWWNCLHJCFNTJA-UHFFFAOYSA-N 0.000 description 3
- 101100388291 Arabidopsis thaliana DTX49 gene Proteins 0.000 description 2
- 101100388299 Arabidopsis thaliana DTX54 gene Proteins 0.000 description 2
- 101100294133 Arabidopsis thaliana NIC2 gene Proteins 0.000 description 2
- 101100268840 Danio rerio chrna1 gene Proteins 0.000 description 2
- 101150065731 NIC1 gene Proteins 0.000 description 2
- PWHVEHULNLETOV-UHFFFAOYSA-N Nic-1 Natural products C12OC2C2(O)CC=CC(=O)C2(C)C(CCC2=C3)C1C2=CC=C3C(C)C1OC(O)C2(C)OC2(C)C1 PWHVEHULNLETOV-UHFFFAOYSA-N 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种数据包传输方法和设备,所述数据包传输方法包括:接收发送端设备通过所述发送端设备与接收端设备之间的至少两条路径发送的相同的数据包;对所述相同的数据包中的任意一个数据包进行处理。本发明实施例可以实现通过至少两条路径收发数据,提高存储可靠性;并且,本发明实施例中,发送端设备不需要等待接收端设备的确认,从而可以降低网络时延。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种数据包传输方法和设备。
背景技术
现在的网络存储协议,例如:因特网小型计算机接口(Internet Small Computer System Interface;以下简称:iSCSI)、网络文件系统(Network File System;以下简称:NFS)、公共因特网文件系统(Common Internet File System;以下简称:CIFS)等,都是基于传输控制协议(Transmission Control Protocol;以下简称:TCP)/因特网协议(Internet Protocol;以下简称:IP)的。因为网络存储需要保证数据确实可靠地传输到了远端存储设备,所以必须采用具有可靠传输机制的TCP/IP。
其中,iSCSI是基于IP的小型计算机接口(Small Computer System Interface;以下简称:SCSI)接口,对本地来说,相当于远端有一个SCSI接口的硬盘,是一个块设备。通常,块设备对延迟的要求很高,即对一个输入输出(Input Output;以下简称:IO)的完成时间有比较严格的限制。
同时,由于文件系统是建立在块设备之上的,文件系统要求每个块设备必须等前一个IO完成之后,才能执行下一个IO,因此文件系统要求IO路径必须采用可靠的传输机制。
采用TCP/IP传输数据包时,每个数据包都要等确认的响应,因此延迟较大。且对于最大传输单元(Maximum Transmission Unit;以下简称:MTU)较小的网络,一个大数据包需要拆分成若干个小数据包,以MTU=1500字节的以太网为例,一个64KB字节的数据包至少会被拆分成64K/1.5K=43个数据包,其中任意一个数据包的丢失都会导致全部数据包的重传,传输效率较低。并且目的端经过网络协议栈的处理后,还要等待所有拆分的包收齐后,才能回复确认的响应,从而导致时延增加。
在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:
对于普通的应用,TCP/IP的处理机制没有问题。但由于对网络质量的要求非常高的场景下(例如,iSCSI),并且还要求低丢包率和低网络时延,这时采用TCP/IP传输数据包无法满足上述要求。另外,虽然iSCSI目前的使用场景一般还是在局域网内,网络时延和丢包率有一定的保证,但对于高性能的iSCSI来说,仍然需要昂贵的交换机支持,成本较高。
发明内容
本发明实施例提供一种数据包传输方法和设备,以实现通过至少两条路径收发数据,提高存储可靠性。
本发明实施例提供一种数据包传输方法,包括:
接收发送端设备通过所述发送端设备与接收端设备之间的至少两条路径发送的相同的数据包;
对所述相同的数据包中的任意一个数据包进行处理。
本发明实施例提供一种接收端设备,包括:
接收模块,用于接收发送端设备通过所述发送端设备与所述接收端设备之间的至少两条路径发送的相同的数据包;
处理模块,用于对所述相同的数据包中的任意一个数据包进行处理。
通过本发明实施例,接收端设备接收发送端设备通过该发送端设备与该接收端设备之间的至少两条路径发送的相同的数据包,然后对上述相同的数据包中的任意一个数据包进行处理;从而可以实现通过至少两条路径收发数据,提高存储可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明数据包传输方法一个实施例的流程图;
图2为本发明应用场景一个实施例的示意图;
图3为本发明发送端设备向接收端设备发送数据包一个实施例的示意图;
图4为本发明发送端设备与接收端设备之间数据包交互一个实施例的示意图;
图5为本发明接收端设备一个实施例的结构示意图;
图6为本发明接收端设备另一个实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明数据包传输方法一个实施例的流程图,如图1所示,该数据包传输方法可以包括:
步骤101,接收发送端设备通过该发送端设备与接收端设备之间的至少两条路径发送的相同的数据包。
本实施例中,发送端设备将需要向接收端设备发送的数据包通过该发送端设备与接收端设备之间的至少两条路径,向接收端设备发送。
步骤102,对上述相同的数据包中的任意一个数据包进行处理。
进一步地,发送端设备和上述数据包的接收端设备分别包括至少两个网络接口卡,发送端设备和接收端设备通过各自的所述至少两个网络接口卡组成的至少两条路径收发数据包。
接收到发送端设备通过上述至少两条路径发送的相同的数据包之后,接收端设备可以按照预定的规则,从相同的数据包中选择一个数据包进行处理。本实施例中,该预定的规则可以为先到先处理的规则或其他规则,例如:按照上述至少两条路径的传输质量,选择传输质量最优的路径上传输的数据包等;本发明实施例对该预定的规则不作限定,只要可以从相同的数据包中选择一个数据包进行处理即可。
但本实施例以该预定的规则为先到先处理的规则为例进行说明。这样,接收端设备可以按照先到先处理的规则,从接收到的相同的数据包中选择最先接收到的数据包进行处理。当最先接收到的数据包不唯一时,任选一个最先接收到的数据包进行处理。
本实施例中,上述数据包可以携带标识,该标识可以标示数据包的发送顺序;其中,相同的数据包携带相同的标识,不同的数据包携带不同的标识。这样就可以通过数据包的标识判断数据包是否丢包;具体地,当接收到的数据包的标识连续时,可以确定没有发生丢包;或者,当接收到的数据包的标识不连续时,可以确定发生了丢包。
本实施例中,数据包的标识可以为数字、字母或字符串等可以标示数据包的发送顺序的标识,本发明实施例对数据包的标识的具体形式不作限定。
另外,由于相同的数据包具有相同的标识,因此接收端设备可以按照先到先处理的规则,从具有相同标识的数据包中选择最先接收到的数据包进行处理。
本实施例的一种实现方式中,上述数据包可以为读请求数据包,这时,接收端设备可以根据该读请求数据包携带的读数据请求,从本地存储系统中读取数据之后,通过该发送端设备与该接收端设备之间的至少两条路径将读取的数据发送给发送端设备。
本实施例中,接收端设备接收到发送端设备发送的读请求数据包之后,将读取的数据也从至少两条路径上发送给发送端设备,这样接收到接收端设备发送的数据之后,发送端设备就可以确认接收端设备接收到读请求数据包,并成功完成了读数据操作,因此,本实施例中,接收端设备在接收到发送端设备发送的读请求数据包之后,不需要向发送端设备发送对读请求数据包的确认,这时发送端设备也不需要等待接收端设备的确认,从而降低了网络时延。
本实施例的另一种实现方式中,上述数据包可以为写请求数据包,这时,接收端设备可以根据上述写请求数据包携带的写数据请求,将该写请求数据包中的待写入数据写入到本地存储系统中。在将写请求数据包中的待写入数据写入到本地存储系统中之后,接收端设备可以通过发送端设备与接收端设备之间的至少两条路径向发送端设备发送心跳包,该心跳包包括对写请求数据包的确认;或者,接收端设备可以在后续接收到发送端设备发送的读请求数据包之后,通过发送端设备与接收端设备之间的至少两条路径将读取的数据发送给发送端设备,并在发送的数据中携带对写请求数据包的确认。也就是说,本实施例中,接收到发送端设备发送的写请求数据包之后,接收端设备在完成将待写入数据写入到本地存储系统中的操作之后,可以在心跳包或后续需要向发送端设备发送的数据中携带对写请求数据包的确认,而不需单独向发送端设备返回对写请求数据包的确认,这时发送端设备也不需要等待接收端设备的确认,从而降低了网络时延。
上述实施例中,接收端设备接收发送端设备通过该发送端设备与该接收端设备之间的至少两条路径发送的相同的数据包,然后对上述相同的数据包中的任意一个数据包进行处理;并且接收端设备也会通过该发送端设备与该接收端设备之间的至少两条路径向发送端设备发送读取的数据或心跳包,从而可以实现通过至少两条路径收发数据,提高存储可靠性;另外,本实施例中,发送端设备不需要等待接收端设备的确认,从而可以降低网络时延。
下面通过一个具体事例对本发明实施例的实施过程进行介绍。
图2为本发明应用场景一个实施例的示意图,本实施例以发送端设备和接收端设备均包括两个网络接口卡(Network Interface Card;以下简称:NIC)为例进行说明。
如图2所示,本实施例中,发送端设备可以包括驱动程序(driver)1、NIC1和NIC2;接收端设备可以包括driver2、NIC3和NIC4。
本发明实施例中,发送端设备在向接收端设备发送数据包时,会将相同的数据包分别通过NIC1-NIC3和NIC2-NIC4这两条路径发送给接收端设备,发送端设备发送上述数据包时可以采用用户数据报协议(User Datagram Protocol;以下简称:UDP)等传输协议。接收端设备接收到发送端设备通过两条路径发送的相同的数据包之后,对该相同的数据包中的一个数据包进行处理即可,可以丢弃另外一个数据包,也可以缓存但不处理另外一个数据包,还可以对另外一个数据包不进行任何操作,本发明实施例对另外一个数据包的处理方式不作限定;但本发明以下实施例的描述中,以丢弃另外一个数据包为例进行说明。
通过双路径传输,在丢包率不是太大的局域网内,基本可以认为不会发生丢包,因此也就不需要对每条消息都发送确认的消息包,也就不存在偶然丢包导致的重传和确认时延。
图3为本发明发送端设备向接收端设备发送数据包一个实施例的示意图,如图3所示,发送端设备将相同的数据包,例如:“数据包1”在路径1和路径2上发送到接收端设备。接收端设备接收到两个“数据包1”之后,只需要对这两个“数据包1”中的一个进行处理即可。具体地,接收端设备可以按照预定的规则,从这两个“数据包1”中选择一个数据包进行处理。本实施例中,该预定的规则可以为先到先处理的规则或其他规则,例如:按照上述至少两条路径的传输质量,选择传输质量最优的路径上传输的数据包等;本发明实施例对该预定的规则不作限定,只要可以从相同的数据包中选择一个数据包进行处理即可。
但本实施例以该预定的规则为先到先处理的规则为例进行说明。这样,接收端设备可以按照先到先处理的规则,从接收到的两个“数据包1”中选择最先接收到的数据包进行处理。当接收端设备同时接收到这两个“数据包1”时,该接收端设备从这两个“数据包1”中任选一个进行处理即可,可以丢弃这两个“数据包1”中未被选择的数据包。另外,接收端设备也不需要向发送端设备发送对“数据包1”的确认,因此发送方也不需要等待接收端设备的确认。
假定丢包率是0.1%,网络时延是1毫秒。则在现有的TCP传输方式下,在千兆以太网(Gigabit Ethernet;以下简称:GE)上传输64KB字节的存储数据包时,平均时延为:(64K×8/1000M(传输时延)+1毫秒(命令发送)+1毫秒(确认时延))×99.9%+((64K×8/1000M(传输时延)+1毫秒+1毫秒(确认时延))×2)×(64K/1.5K)×0.1%=2.72毫秒;
而采用本发明实施例提供的方法后,平均时延为:(64K×8/1000M(传输时延)+1毫秒(命令发送))×99.9%+((64K×8/1000M(传输时延)+1毫秒(命令发送)+1毫秒(确认时延))×2)×(64K/1.5K)×(0.1%×0.1%)=1.51毫秒;
可见,本发明实施例提供的数据包处理方法不仅可以提高存储可靠性,还可以降低网络时延。
下面结合图4对本发明实施例发送端设备与接收端设备之间交互数据包的过程进行介绍,图4为本发明发送端设备与接收端设备之间数据包交互一个实施例的示意图。
(1)对于读请求数据包:发送端设备的drvier1发送读请求数据包给MC1和NIC2,然后两个相同的读请求数据包通过两条物理路径分别到达NIC3和NIC4,参考图3这两条物理路径分别为路径1(NIC1-NIC3)和路径2(NIC2-NIC4)。
本实施例中,上述读请求数据包可以携带标识,该标识可以标示读请求数据包的发送顺序;其中,相同的读请求数据包携带相同的标识,不同的读请求数据包携带不同的标识。本实施例中,该读请求数据包的标识可以为数字、字母或字符串等可以标示读请求数据包的发送顺序的标识,本发明实施例对读请求数据包的标识的具体形式不作限定,但本实施例以读请求数据包的标识为数字为例进行说明。
接收端设备的NIC3和NIC4接收到读请求数据包之后,分别将接收到的读请求数据包发送给接收端设备的driver2。driver2根据接收到的读请求数据包的标识,对该读请求数据包进行处理。本实施例中,接收端设备的driver2可以通过读请求数据包的标识判断读请求数据包是否发生丢包;具体地,当接收端设备接收到的读请求数据包的标识连续时,可以确定没有发生丢包;或者,当接收端设备接收到的读请求数据包的标识不连续时,可以确定发生了丢包。举例来说,假设driver2上次接收到的读请求数据包的标识是100,本次接收到的读请求数据包的标识是101,则driver2可以立即处理该标识为101的读请求数据包。而如果driver2接收到的读请求数据包的标识为102,则driver2还需要等待标识为101的读请求数据包到达。由于读请求数据包通过双路径传输,因此标识为101的读请求数据包也会很快到达。如果先后收到两个标识为101的读请求数据包,则仅对第一个接收到的标识为101的读请求数据包处理即可,可以丢弃第二个接收到的标识为101的读请求数据包。另外,假设路径1发生故障,driver2仅接收到从路径2传输的一个标识为101的读请求数据包,则driver2仍可以对接收到的这一个标识为101的读请求数据包进行处理。
本实施例中,driver2对接收到的读请求数据包的处理具体可以为:根据读请求数据包携带的读数据请求,从本地存储系统中读取数据之后,将读取的数据分别发送给NIC3和NIC4,然后读取的数据通过路径1和路径2分别到达NIC3和NIC4,再由NIC3和NIC4将读取的数据发送给driver1。同理,driver1接收到两份数据之后,可以仅对最先接收到的数据进行处理,丢弃后接收到的数据。
本实施例中,接收到接收端设备发送的数据之后,发送端设备就可以确认接收端设备接收到读请求数据包,并成功完成了读数据操作,因此,本实施例中,接收端设备在接收到发送端设备发送的读请求数据包之后,不需要向发送端设备发送对读请求数据包的确认,这时发送端设备也不需要等待接收端设备的确认,从而降低了网络时延。
(2)对于写请求数据包:发送端设备的driver1发送写请求数据包给NIC1和NIC2,然后两个相同的写请求数据包通过路径1和路径2分别到达NIC3和NIC4。同样,上述写请求数据包可以携带标识,该标识可以标示写请求数据包的发送顺序;其中,相同的写请求数据包携带相同的标识,不同的写请求数据包携带不同的标识。本实施例中,该写请求数据包的标识可以为数字、字母或字符串等可以标示写请求数据包的发送顺序的标识,本发明实施例对写请求数据包的标识的具体形式不作限定,但本实施例以写请求数据包的标识为数字为例进行说明。
接收端设备的NIC3和NIC4接收到写请求数据包之后,分别将接收到的写请求数据包发送给接收端设备的driver2。driver2根据接收到的写请求数据包的标识,对该写请求数据包进行处理。本实施例中,接收端设备的driver2可以通过写请求数据包的标识判断写请求数据包是否发生丢包,具体实现方式与通过读请求数据包的标识判断读请求数据包是否发生丢包的实现方式相同,在此不再赘述。
本实施例中,如果driver2先后接收到两个相同标识的写请求数据包,则仅对这两个相同标识的写请求数据包中第一个接收到的写请求数据包处理即可,可以丢弃这两个相同标识的写请求数据包中第二个接收到的写请求数据包。另外,假设路径1发生故障,driver2仍可以对从路径2接收到的写请求数据包进行处理。
本实施例中,driver2对接收到的写请求数据包的处理具体可以为:接收端设备的driver2可以根据上述写请求数据包携带的写数据请求,将该写请求数据包中的待写入数据写入到本地存储系统中。
在将写请求数据包中的待写入数据写入到本地存储系统中之后,接收端设备可以通过路径1和路径2向发送端设备发送心跳包,该心跳包包括对写请求数据包的确认;具体地,发送端设备和接收端设备可以每10毫秒发送一次心跳包,并在心跳包中携带对写请求数据包的确认。举例来说,假设发送端设备发送了标识为103、104和105的3个写请求数据包,在处理完标识为103、104和105的写请求数据包之后,接收端设备可在心跳包中携带对标识为103、104和105的写请求数据包的确认。
另外,接收端设备也可在正常的数据包中携带对写请求数据包的确认。仍以上述情形为例,假设发送端设备发送了标识为106、107和108的3个写请求数据包,同时又发送了标识为109的读请求数据包,则接收端设备可以在根据标识为109的读请求数据包中的读数据请求,在本次存储系统中读取数据之后,在向发送端设备发送的读取的数据中携带对标识为106、107和108的写请求数据包的确认。
本发明实施例提供的数据包处理方法大大降低了IO操作的时延,提高了每秒进行IO的次数。通过本发明实施例中的举例来看,对于64KB的数据包,在不考虑存储本身操作时延的情况下,IO性能提升了(2.72-1.51)/2.72=44%;在考虑存储本身操作时延的情况下(读、写操作的时延大约在10毫秒左右),IO性能提升了(2.72-1.51)/(10+2.72)=9.5%。考虑缓存命中率的影响,假定存储本身操作的缓存命中率为50%(即有50%的操作是在内存中完成的),则平均时延可以从7.72毫秒降低到6.51毫秒,IO性能提升15.6%;另外,本发明实施例对交换机的依赖大大降低,交换机的丢包率≤0.1%即可提供很高的可靠性和IO性能,为廉价网络存储系统的实现提供了可能。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图5为本发明接收端设备一个实施例的结构示意图,本实施例中的接收端设备可以实现本发明图1所示实施例的流程,如图5所示,该接收端设备可以包括:接收模块51和处理模块52;
其中,接收模块51,用于接收发送端设备通过该发送端设备与该接收端设备之间的至少两条路径发送的相同的数据包;
处理模块52,用于对上述相同的数据包中的任意一个数据包进行处理。
进一步地,本实施例中的接收端设备包括至少两个网络接口卡,通过该至少两个网络接口卡与发送端设备的至少两个网络接口卡组成至少两条路径,上述接收端设备与上述发送端设备通过上述至少两条路径收发数据包。
具体地,处理模块52可以按照预定的规则,从相同的数据包中选择一个数据包进行处理。本实施例中,该预定的规则可以为先到先处理的规则或其他规则,例如:按照上述至少两条路径的传输质量,选择传输质量最优的路径上传输的数据包等;本发明实施例对该预定的规则不作限定,只要可以从相同的数据包中选择一个数据包进行处理即可。但本实施例以该预定的规则为先到先处理的规则为例进行说明。这样,处理模块52可以按照先到先处理的规则,从相同的数据包中选择最先接收到的数据包进行处理,当最先接收到的数据包不唯一时,处理模块52可以任选一个最先接收到的数据包进行处理。
上述实施例中,接收模块51接收发送端设备通过该发送端设备与该接收端设备之间的至少两条路径发送的相同的数据包,然后处理模块52对上述相同的数据包中的任意一个数据包进行处理;并且接收端设备也会通过该发送端设备与该接收端设备之间的至少两条路径向发送端设备发送读取的数据或心跳包,从而可以实现通过至少两条路径收发数据,提高存储可靠性。
图6为本发明接收端设备另一个实施例的结构示意图,与图5所示的接收端设备相比,不同之处在于,图6所示的接收端设备还可以包括:
确定模块53,用于当接收到的数据包的标识连续时,确定没有丢包;或者,当接收到的数据包的标识不连续时,确定发生丢包。
进一步地,处理模块52可以按照先到先处理的规则,从具有相同标识的数据包中选择最先接收到的数据包进行处理。
进一步地,本实施例中,处理模块52可以包括:读请求处理子模块521和写请求处理子模块522;
其中,读请求处理子模块521,用于当数据包包括读请求数据包时,根据该读请求数据包携带的读数据请求,从本地存储系统中读取数据之后,通过该发送端设备与该接收端设备之间的至少两条路径将读取的数据发送给发送端设备。
写请求处理子模块522,用于当数据包包括写请求数据包时,根据该写请求数据包携带的写数据请求,将该写请求数据包中的待写入数据写入到本地存储系统中。
进一步地,处理模块52还包括以下模块之一或组合:
第一发送子模块523,用于在写请求处理子模块522将上述写请求数据包中的待写入数据写入到本地存储系统中之后,通过发送端设备与接收端设备之间的至少两条路径向发送端设备发送心跳包,该心跳包包括对上述写请求数据包的确认;
第二发送子模块524,用于在写请求处理子模块522将上述写请求数据包中的待写入数据写入到本地存储系统中之后,若后续接收到发送端设备发送的读请求数据包,则通过发送端设备与接收端设备之间的至少两条路径将读取的数据发送给发送端设备,并在发送的数据中携带对上述写请求数据包的确认。
本实施例中的接收端设备可以实现通过至少两条路径收发数据,提高存储可靠性;另外,本实施例中的接收端设备不需要向发送端设备发送对数据包的确认,从而发送端设备也不需要等待接收端设备的确认,可以降低网络时延。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (19)
1.一种数据包传输方法,其特征在于,包括:
接收发送端设备通过所述发送端设备与接收端设备之间的至少两条路径发送的相同的数据包;
对所述相同的数据包中的任意一个数据包进行处理。
2.根据权利要求1所述的方法,其特征在于,所述发送端设备和所述数据包的接收端设备分别包括至少两个网络接口卡,所述发送端设备和所述接收端设备通过各自的所述至少两个网络接口卡组成的至少两条路径收发数据包。
3.根据权利要求1所述的方法,其特征在于,所述对所述相同的数据包中的任意一个数据包进行处理包括:
按照预定的规则,从所述相同的数据包中选择一个数据包进行处理,所述预定的规则包括先到先处理的规则。
4.根据权利要求3所述的方法,其特征在于,还包括:
当最先接收到的数据包不唯一时,任选一个最先接收到的数据包进行处理。
5.根据权利要求3所述的方法,其特征在于,所述数据包携带标识,所述标识标示所述数据包的发送顺序;所述相同的数据包携带相同的标识,不同的数据包携带不同的标识。
6.根据权利要求5所述的方法,其特征在于,还包括:
当接收到的数据包的标识连续时,确定没有丢包;或者,
当接收到的数据包的标识不连续时,确定发生丢包。
7.根据权利要求5所述的方法,其特征在于,所述按照预定的规则,从所述相同的数据包中选择一个数据包进行处理,所述预定的规则包括先到先处理的规则包括:
按照所述先到先处理的规则,从具有相同标识的数据包中选择最先接收到的数据包进行处理。
8.根据权利要求7所述的方法,其特征在于,所述数据包包括读请求数据包;
所述对所述相同的数据包中的任意一个数据包进行处理包括:
根据所述读请求数据包携带的读数据请求,从本地存储系统中读取数据之后,通过所述发送端设备与所述接收端设备之间的至少两条路径将读取的数据发送给所述发送端设备。
9.根据权利要求7所述的方法,其特征在于,所述数据包包括写请求数据包;
所述对所述相同的数据包中的任意一个数据包进行处理包括:
根据所述写请求数据包携带的写数据请求,将所述写请求数据包中的待写入数据写入到本地存储系统中。
10.根据权利要求9所述的方法,其特征在于,所述将所述写请求数据包中的待写入数据写入到本地存储系统中之后,还包括:
通过所述发送端设备与接收端设备之间的至少两条路径向所述发送端设备发送心跳包,所述心跳包包括对所述写请求数据包的确认;或者,
接收到所述发送端设备发送的读请求数据包之后,通过所述发送端设备与所述接收端设备之间的至少两条路径将读取的数据发送给所述发送端设备,并在发送的数据中携带对所述写请求数据包的确认。
11.一种接收端设备,其特征在于,包括:
接收模块,用于接收发送端设备通过所述发送端设备与所述接收端设备之间的至少两条路径发送的相同的数据包;
处理模块,用于对所述相同的数据包中的任意一个数据包进行处理。
12.根据权利要求11所述的接收端设备,其特征在于,所述接收端设备包括至少两个网络接口卡,通过所述至少两个网络接口卡与所述发送端设备的至少两个网络接口卡组成至少两条路径,所述接收端设备与所述发送端设备通过所述至少两条路径收发数据包。
13.根据权利要求11所述的接收端设备,其特征在于,所述处理模块具体用于按照预定的规则,从所述相同的数据包中选择一个数据包进行处理,所述预定的规则包括先到先处理的规则。
14.根据权利要求13所述的接收端设备,其特征在于,
所述处理模块,还用于当最先接收到的数据包不唯一时,任选一个最先接收到的数据包进行处理。
15.根据权利要求14所述的接收端设备,其特征在于,还包括:
确定模块,用于当接收到的数据包的标识连续时,确定没有丢包;或者,当接收到的数据包的标识不连续时,确定发生丢包。
16.根据权利要求15所述的接收端设备,其特征在于,所述处理模块具体用于按照所述先到先处理的规则,从具有相同标识的数据包中选择最先接收到的数据包进行处理。
17.根据权利要求16所述的接收端设备,其特征在于,所述处理模块包括:
读请求处理子模块,用于当所述数据包包括读请求数据包时,根据所述读请求数据包携带的读数据请求,从本地存储系统中读取数据之后,通过所述发送端设备与所述接收端设备之间的至少两条路径将读取的数据发送给所述发送端设备。
18.根据权利要求16所述的接收端设备,其特征在于,所述处理模块包括:
写请求处理子模块,用于当所述数据包包括写请求数据包时,根据所述写请求数据包携带的写数据请求,将所述写请求数据包中的待写入数据写入到本地存储系统中。
19.根据权利要求18所述的接收端设备,其特征在于,所述处理模块还包括以下模块之一或组合:
第一发送子模块,用于在所述写请求处理子模块将所述写请求数据包中的待写入数据写入到本地存储系统中之后,通过所述发送端设备与接收端设备之间的至少两条路径向所述发送端设备发送心跳包,所述心跳包包括对所述写请求数据包的确认;
第二发送子模块,用于在所述写请求处理子模块将所述写请求数据包中的待写入数据写入到本地存储系统中之后,若后续接收到所述发送端设备发送的读请求数据包,则通过所述发送端设备与所述接收端设备之间的至少两条路径将读取的数据发送给所述发送端设备,并在发送的数据中携带对所述写请求数据包的确认。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010106231251A CN102118434A (zh) | 2010-12-28 | 2010-12-28 | 数据包传输方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010106231251A CN102118434A (zh) | 2010-12-28 | 2010-12-28 | 数据包传输方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102118434A true CN102118434A (zh) | 2011-07-06 |
Family
ID=44217023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010106231251A Pending CN102118434A (zh) | 2010-12-28 | 2010-12-28 | 数据包传输方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102118434A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243107A (zh) * | 2013-06-06 | 2014-12-24 | 深圳市腾讯计算机系统有限公司 | 数据传输方法、装置、终端、服务器及系统 |
CN104348722A (zh) * | 2013-07-31 | 2015-02-11 | 华为技术有限公司 | 确定内容获取路径、请求处理的方法、装置和系统 |
WO2016034041A1 (zh) * | 2014-09-01 | 2016-03-10 | 电信科学技术研究院 | 一种进行数据传输的方法和设备 |
CN105704197A (zh) * | 2014-11-28 | 2016-06-22 | 电信科学技术研究院 | 一种数据传输方法及系统 |
CN105703890A (zh) * | 2014-11-28 | 2016-06-22 | 电信科学技术研究院 | 一种进行数据传输的方法和设备 |
WO2016119620A1 (en) * | 2015-01-30 | 2016-08-04 | Huawei Technologies Co., Ltd. | Method for forwarding data packets in a network and programmable ingress and egress nodes therefore |
CN106254238A (zh) * | 2016-09-29 | 2016-12-21 | 胡汉强 | 一种数据传输方法、集中控制器和通信装置 |
CN107395499A (zh) * | 2017-07-24 | 2017-11-24 | 北京三快在线科技有限公司 | Pos机通信方法和pos终端 |
CN108449644A (zh) * | 2018-03-20 | 2018-08-24 | 上海爱友信息科技有限公司 | 多人同屏实时交互游戏中保持网络稳定的方法及系统 |
CN108965392A (zh) * | 2018-06-15 | 2018-12-07 | 武汉斑马快跑科技有限公司 | 服务器推送数据的接收方法、系统和设备 |
CN110445578A (zh) * | 2019-07-29 | 2019-11-12 | 广芯微电子(广州)股份有限公司 | 一种spi数据传输方法及装置 |
CN110557657A (zh) * | 2018-05-30 | 2019-12-10 | 视联动力信息技术股份有限公司 | 一种基于视联网的数据处理方法及系统 |
WO2021098640A1 (zh) * | 2019-11-18 | 2021-05-27 | 中兴通讯股份有限公司 | 一种数据包的发送、接收方法及装置 |
CN114978986A (zh) * | 2022-05-13 | 2022-08-30 | 中国联合网络通信集团有限公司 | 一种数据传输方法、装置及存储介质 |
CN115460157A (zh) * | 2022-07-26 | 2022-12-09 | 亿航智能设备(广州)有限公司 | 一种多网卡融合通信方法及通信系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1561062A (zh) * | 2004-03-09 | 2005-01-05 | �㽭�пؼ����ɷ�����˾ | 实现网络数据多路传输的方法 |
CN1571301A (zh) * | 2003-07-16 | 2005-01-26 | 深圳市中兴通讯股份有限公司 | 光网络中通过显示路由实现信令并发优收的装置及方法 |
US7388828B2 (en) * | 2003-10-29 | 2008-06-17 | Eci Telecom Ltd. | Method for rerouting MPLS traffic in ring networks |
CN101742554A (zh) * | 2010-01-15 | 2010-06-16 | 南京邮电大学 | 无线多媒体传感器网络多路径传输机制的拥塞控制方法 |
-
2010
- 2010-12-28 CN CN2010106231251A patent/CN102118434A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571301A (zh) * | 2003-07-16 | 2005-01-26 | 深圳市中兴通讯股份有限公司 | 光网络中通过显示路由实现信令并发优收的装置及方法 |
US7388828B2 (en) * | 2003-10-29 | 2008-06-17 | Eci Telecom Ltd. | Method for rerouting MPLS traffic in ring networks |
CN1561062A (zh) * | 2004-03-09 | 2005-01-05 | �㽭�пؼ����ɷ�����˾ | 实现网络数据多路传输的方法 |
CN101742554A (zh) * | 2010-01-15 | 2010-06-16 | 南京邮电大学 | 无线多媒体传感器网络多路径传输机制的拥塞控制方法 |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243107A (zh) * | 2013-06-06 | 2014-12-24 | 深圳市腾讯计算机系统有限公司 | 数据传输方法、装置、终端、服务器及系统 |
CN104348722B (zh) * | 2013-07-31 | 2017-12-12 | 华为技术有限公司 | 确定内容获取路径、请求处理的方法、装置和系统 |
CN104348722A (zh) * | 2013-07-31 | 2015-02-11 | 华为技术有限公司 | 确定内容获取路径、请求处理的方法、装置和系统 |
US10587513B2 (en) | 2013-07-31 | 2020-03-10 | Huawei Technologies Co., Ltd. | Method, apparatus and system for determining content acquisition path and processing request |
US10103986B2 (en) | 2013-07-31 | 2018-10-16 | Huawei Technologies Co., Ltd. | Method, apparatus and system for determining content acquisition path and processing request |
WO2016034041A1 (zh) * | 2014-09-01 | 2016-03-10 | 电信科学技术研究院 | 一种进行数据传输的方法和设备 |
CN105450367A (zh) * | 2014-09-01 | 2016-03-30 | 电信科学技术研究院 | 一种进行数据传输的方法和设备 |
CN105704197A (zh) * | 2014-11-28 | 2016-06-22 | 电信科学技术研究院 | 一种数据传输方法及系统 |
CN105703890A (zh) * | 2014-11-28 | 2016-06-22 | 电信科学技术研究院 | 一种进行数据传输的方法和设备 |
CN105704197B (zh) * | 2014-11-28 | 2020-04-10 | 电信科学技术研究院 | 一种数据传输方法及系统 |
WO2016119620A1 (en) * | 2015-01-30 | 2016-08-04 | Huawei Technologies Co., Ltd. | Method for forwarding data packets in a network and programmable ingress and egress nodes therefore |
US9894000B2 (en) | 2015-01-30 | 2018-02-13 | Huawei Technologies Co., Ltd | Method for forwarding data packets in a network and programmable ingress and egress nodes therefore |
CN107210976B (zh) * | 2015-01-30 | 2020-11-10 | 华为技术有限公司 | 用于在网络中转发数据分组的方法及其可编程入口和出口节点 |
CN107210976A (zh) * | 2015-01-30 | 2017-09-26 | 华为技术有限公司 | 用于在网络中转发数据分组的方法及其可编程入口和出口节点 |
CN106254238A (zh) * | 2016-09-29 | 2016-12-21 | 胡汉强 | 一种数据传输方法、集中控制器和通信装置 |
CN106254238B (zh) * | 2016-09-29 | 2018-12-28 | 胡汉强 | 一种数据传输方法、集中控制器和通信装置 |
CN107395499A (zh) * | 2017-07-24 | 2017-11-24 | 北京三快在线科技有限公司 | Pos机通信方法和pos终端 |
CN107395499B (zh) * | 2017-07-24 | 2021-01-15 | 北京三快在线科技有限公司 | Pos机通信方法和pos终端 |
CN108449644B (zh) * | 2018-03-20 | 2021-10-29 | 上海爱友信息科技有限公司 | 多人同屏实时交互游戏中保持网络稳定的方法及系统 |
CN108449644A (zh) * | 2018-03-20 | 2018-08-24 | 上海爱友信息科技有限公司 | 多人同屏实时交互游戏中保持网络稳定的方法及系统 |
CN110557657A (zh) * | 2018-05-30 | 2019-12-10 | 视联动力信息技术股份有限公司 | 一种基于视联网的数据处理方法及系统 |
CN108965392A (zh) * | 2018-06-15 | 2018-12-07 | 武汉斑马快跑科技有限公司 | 服务器推送数据的接收方法、系统和设备 |
CN108965392B (zh) * | 2018-06-15 | 2021-07-27 | 武汉斑马快跑科技有限公司 | 服务器推送数据的接收方法、系统和设备 |
CN110445578B (zh) * | 2019-07-29 | 2020-06-23 | 广芯微电子(广州)股份有限公司 | 一种spi数据传输方法及装置 |
CN110445578A (zh) * | 2019-07-29 | 2019-11-12 | 广芯微电子(广州)股份有限公司 | 一种spi数据传输方法及装置 |
WO2021098640A1 (zh) * | 2019-11-18 | 2021-05-27 | 中兴通讯股份有限公司 | 一种数据包的发送、接收方法及装置 |
CN114978986A (zh) * | 2022-05-13 | 2022-08-30 | 中国联合网络通信集团有限公司 | 一种数据传输方法、装置及存储介质 |
CN114978986B (zh) * | 2022-05-13 | 2024-05-14 | 中国联合网络通信集团有限公司 | 一种数据传输方法、装置及存储介质 |
CN115460157A (zh) * | 2022-07-26 | 2022-12-09 | 亿航智能设备(广州)有限公司 | 一种多网卡融合通信方法及通信系统 |
WO2024022022A1 (zh) * | 2022-07-26 | 2024-02-01 | 亿航智能设备(广州)有限公司 | 一种多网卡融合通信方法及通信系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102118434A (zh) | 数据包传输方法和设备 | |
US11792114B2 (en) | System and method for facilitating efficient management of non-idempotent operations in a network interface controller (NIC) | |
EP3707882B1 (en) | Multi-path rdma transmission | |
US10868767B2 (en) | Data transmission method and apparatus in optoelectronic hybrid network | |
CN108881008B (zh) | 一种数据传输的方法、装置和系统 | |
US10430374B2 (en) | Selective acknowledgement of RDMA packets | |
JP4156568B2 (ja) | 通信システムの制御方法、通信制御装置、プログラム | |
US7471681B2 (en) | Determining network path transmission unit | |
RU2540815C2 (ru) | Прерывание, по меньшей мере частичное, передачи кадра | |
CN102299899B (zh) | 一种恶劣信道下的tcp加速方法 | |
CN114401208B (zh) | 数据传输方法、装置、电子设备和存储介质 | |
US20040267960A1 (en) | Force master capability during multicast transfers | |
US10476919B2 (en) | System and method for reliable messaging between application sessions across volatile networking conditions | |
US20180287850A1 (en) | Techniques for network multicasting with buffering | |
CN109862297B (zh) | 窗口调整方法、装置及可读存储介质 | |
JP6268027B2 (ja) | 通信システム、送信装置、及び通信方法 | |
WO2023226918A1 (zh) | 一种冗余传输控制方法及相关设备 | |
CN116346722A (zh) | 一种报文处理方法及装置 | |
WO2016177055A1 (zh) | 文件的发送方法及装置 | |
Akzeybek et al. | Concurrent multi-path data transfer using modified SCTP |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110706 |