数据传输方法、数据接收方法、及其装置与流程

文档序号:12477452阅读:283来源:国知局
数据传输方法、数据接收方法、及其装置与流程

本申请涉及通信技术领域,尤其涉及数据传输方法、数据接收方法、及其装置。



背景技术:

如图1所示,传统的无线网络数据传输中,发端用户设备UE 102(也可称为站(STA))与收端用户设备UE 110之间进行的可靠通信过程如下:发端UE 102向收端UE 110发送数据包,并缓存该数据包;该数据包经过至少一中间设备(包括但不限于:AP 104、路由器106、AP 108,等),由收端UE 110接收;收端UE 110接收到该数据包后,返回接收应答(ACK),接收应答仍通过中间设备的转发后返回到发端UE 102,发端UE 102接收到该接收应答后,继续发送下一数据包。在这样的过程中,发端设备只有收到目标设备的接收应答后才继续发送数据,这显然降低了发端设备的数据发送速率,且对于某些嵌入式设备,由于其硬件资源有限,若产生的数据迟迟发送不了,可能会导致数据丢失。随着无线通信技术的发展,对延时要求较高的业务越来越多,这样的传输机制严重影响了传输性能。



技术实现要素:

有鉴于此,本申请实施例的一个目的在于提供一种新的数据传输方案。

为实现上述目的,根据本申请实施例的第一方面,提供了一种数 据传输方法,所述方法包括:

响应于接收到来自第一设备的数据包,向所述第一设备发送一接收应答;

向第二设备发送所述数据包,所述第二设备为所述数据包的目标设备。

结合第一方面,在第一种可能的实现方式中,所述方法还包括:

缓存所述数据包。

结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:

生成与所述数据包相关联的第二标识信息;

向所述第二设备发送所述第二标识信息。

结合第一方面或第一方面的上述任一种可能的实现方式,在第三种可能的实现方式中,所述向所述第二设备发送与所述数据包相关联的第二标识信息包括:

将所述第二标识信息包含在所述数据包的包头中发送。

结合第一方面或第一方面的上述任一种可能的实现方式,在第四三种可能的实现方式中,所述第二标识信息包括与所述数据包的序列号和第二类型相关联的哈希值,所述第二类型为数据包发送。

结合第一方面或第一方面的上述任一种可能的实现方式,在第五种可能的实现方式中,所述方法还包括:

响应于接收到来自所述第二设备的与所述数据包相关联的接收应答,释放缓存所述数据包的存储空间。

结合第一方面或第一方面的上述任一种可能的实现方式,在第六种可能的实现方式中,所述方法还包括:

响应于接收到来自所述第二设备的与所述数据包相关联的未接收应答,向所述第二设备重传所述数据包。

结合第一方面或第一方面的上述任一种可能的实现方式,在第七 种可能的实现方式中,所述方法还包括:

响应于第一预设时间内未收到来自所述第二设备的与所述数据包相关联的接收应答,向所述第二设备重传所述数据包。

结合第一方面或第一方面的上述任一种可能的实现方式,在第八种可能的实现方式中,所述方法还包括:

响应于未正确接收来自所述第一设备的所述数据包,向所述第一设备发送一未接收应答。

结合第一方面或第一方面的上述任一种可能的实现方式,在第九种可能的实现方式中,所述接收应答为媒体访问控制MAC层消息或传输控制协议TCP层消息。

结合第一方面或第一方面的上述任一种可能的实现方式,在第十种可能的实现方式中,所述未接收应答为媒体访问控制MAC层消息或传输控制协议TCP层消息。

根据本申请实施例的第二方面,提供了一种数据接收方法,所述方法包括:

响应于接收到来自第一设备的数据包,向所述第一设备发送一接收应答;

向第二设备发送所述数据包,所述第二设备为所述数据包的目标设备。

结合第二方面,在第一种可能的实现方式中,所述方法还包括:

响应于未正确接收所述数据包,发送与所述数据包相关联的未接收应答以及与所述数据包相关联的第一标识信息。

结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:

接收与所述数据包相关联的第二标识信息;

基于所述第二标识信息生成所述第一标识信息。

结合第二方面或第二方面的上述任一种可能的实现方式,在第三 种可能的实现方式中,所述第二标识信息包括与所述数据包的序列号和第二类型相关联的哈希值,所述第二类型为数据包发送;

所述第一标识信息包括与所述序列号和第一类型相关联的哈希值,所述第一类型为接收应答。

结合第二方面或第二方面的上述任一种可能的实现方式,在第四种可能的实现方式中,所述发送与所述数据包相关联的接收应答以及与所述数据包相关联的第一标识信息还包括:

将所述第一标识信息包含在所述接收应答中发送。

结合第二方面或第二方面的上述任一种可能的实现方式,在第五种可能的实现方式中,所述接收应答为传输控制协议TCP层消息或媒体访问控制MAC层消息。

结合第二方面或第二方面的上述任一种可能的实现方式,在第六种可能的实现方式中,所述未接收应答为传输控制协议TCP层消息或媒体访问控制MAC层消息。

根据本申请的第三方面,提供了一种数据传输装置,所述装置包括:

一第一应答模块,用于响应于接收到来自第一设备的数据包,向所述第一设备发送一接收应答;

一第一发送模块,用于向第二设备发送所述数据包,所述第二设备为所述数据包的目标设备。

结合第三方面,在第一种可能的实现方式中,所述装置还包括:

一存储模块,用于缓存所述数据包。

结合第三方面或第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述装置还包括:

一第一生成模块,用于生成与所述数据包相关联的第二标识信息;

所述第一发送模块还用于向所述第二设备发送所述第二标识信 息。

结合第三方面或第三方面的上述任一种可能的实现方式,在第三种可能的实现方式中,所述第一发送模块用于将所述第二标识信息包含在所述数据包的包头中发送。

结合第三方面或第三方面的上述任一种可能的实现方式,在第四种可能的实现方式中,所述装置还包括:

一存储控制模块,用于响应于接收到来自所述第二设备的与所述数据包相关联的接收应答,释放缓存所述数据包的存储空间。

结合第三方面或第三方面的上述任一种可能的实现方式,在第五种可能的实现方式中,所述第一发送模块还用于响应于接收到来自所述第二设备的与所述数据包相关联的未接收应答,向所述第二设备重传所述数据包。

结合第三方面或第三方面的上述任一种可能的实现方式,在第六种可能的实现方式中,所述第一发送模块还用于响应于第一预设时间内未收到来自所述第二设备的与所述数据包相关联的接收应答,向所述第二设备重传所述数据包。

结合第三方面或第三方面的上述任一种可能的实现方式,在第七种可能的实现方式中,所述第一应答模块还用于响应于未正确接收来自所述第一设备的所述数据包,向所述第一设备发送一未接收应答。

根据本申请的第四方面,提供了一种数据接收装置,所述装置包括:

一接收模块,用于接收一数据包;

一第二发送模块,用于发送与所述数据包相关联的接收应答以及与所述数据包相关联的第一标识信息;

其中,所述第一标识信息用于指示不用转发所述接收应答。

结合第四方面,在第一种可能的实现方式中,所述第二发送模块还用于响应于未正确接收所述数据包,发送与所述数据包相关联的未 接收应答以及与所述数据包相关联的第一标识信息。

结合第四方面或第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述接收模块还用于接收与所述数据包相关联的第二标识信息;

所述装置还包括:

一第二生成模块,用于基于所述第二标识信息生成所述第一标识信息。

结合第四方面或第四方面的上述任一种可能的实现方式,在第三种可能的实现方式中,所述第二发送模块用于将所述第一标识信息包含在所述接收应答中发送。

根据本申请的第五方面,提供了一种数据传输装置,所述装置包括:

收发器,用于接收数据包,以及发送接收应答;

存储器,用于存放指令;

处理器,用于执行所述存储器存储的指令,所述指令使得所述处理器执行以下步骤:

响应于所述收发器接收到来自第一设备的数据包,通过所述收发器向所述第一设备发送一接收应答;以及

通过所述收发器向第二设备发送所述数据包,所述第二设备为所述数据包的目标设备。

根据本申请的第六方面,提供了一种数据接收装置,所述装置包括:

收发器,用于接收数据包,以及发送与所述数据包相关联的接收应答以及与所述数据包相关联的第一标识信息;

存储器,用于存放指令;

处理器,用于执行所述存储器存储的指令,所述指令使得所述处理器执行以下步骤:

通过所述收发器接收一数据包,以及发送与所述数据包相关联的接收应答以及与所述数据包相关联的第一标识信息。

本申请实施例的方法及装置通过由中间设备响应于数据包的接收向发端设备发送接收应答,使得发端设备不用等待通过较长的链路传输的来自收端设备的接收应答,即可进行下一数据包的发送,大大缩短了接收应答的传输距离,减少了发端发送数据包的延迟,提高了发端设备的数据发送速率,进而提高了数据传输性能。

附图说明

图1为一种示例的数据传输场景;

图2为本申请实施例的数据传输方法的一种示例的流程图;

图3为本申请实施例的数据接受方法的一种示例的流程图;

图4(a)至图4(d)为本申请实施例的数据传输装置的多种示例的结构框图;

图5(a)至图5(b)为本申请实施例的数据接收装置的多种示例的结构框图;

图6(a)为依照本申请各实施例的方法及装置进行数据传输的一种示例的场景示意图;

图6(b)为图6(a)所示场景中数据传输的流程示意图;

图6(c)为IP数据包包头结构示意图;

图6(d)为依照本申请各实施例修改的IP数据包包头结构示意图;

图7为本申请实施例的数据传输装置的另一种示例的结构框图;

图8为本申请实施例的数据接收装置的另一种示例的结构框图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细说明。以下实施例用于说明本发明,但不用来限制本发明的范围。

本领域技术人员可以理解,本申请中的“第一”、“第二”等术语仅用于区别不同设备、模块或参数等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。

图2是本申请实施例的数据传输方法一种示例的流程图,该方法可由数据传输过程中的任一中间设备执行,这样的中间设备包括但不限于:接入点(Access Point,AP)设备、路由设备等任意能够将来自发端设备(也称第一设备)的数据包发送给收端设备(也称第二设备)的设备。且在本申请各实施例中,第一设备和第二设备均为具有无线收发功能的设备,包括但不限于:电话(例如,蜂窝电话或智能电话)、计算机(例如,笔记本电脑)、便携式通信设备、便携式计算设备(例如,个人数据助理)、娱乐设备(例如,音乐或视频设备、或卫星无线电设备)、全球定位系统GPS设备、或配置成经由无线介质通信的任意其它合适的设备。需要说明的是,中间设备、第一设备、第二设备可为同样的设备。

如图2所示,本申请实施例的数据传输方法包括:

S220.响应于接收到来自第一设备的数据包,向所述第一设备发送一接收应答。

S240.向第二设备发送所述数据包,所述第二设备为所述数据包的目标设备。

依照本实施例的方法所进行的数据传输可指数据包从源设备到目的设备的传输过程,也即,第一设备和第二设备分别为数据包的源设备和目的设备;也可发生在数据包从源设备到目的设备之间的任一传输阶段,且在依照本实施例的方法进行数据传输的过程中,来自第一设备的数据包仍将通过中间设备向第二设备转发,第二设备为所述数据包的目标设备,“目标设备”可以是数据包的最终目的设备,也可以是该数据包的下一跳或多跳设备。但是,与传统的通过从目标设备经过至少一中间设备再到第一设备的链路反馈接收应答不同的是, 在本实施例的方法中,执行本实施例的方法的中间设备将响应于接收到来自第一设备的数据包,直接向第一设备反馈一接收应答,例如,在正确接收到来自第一设备的数据包后,立即向第一设备反馈一接收应答,并向第二设备发送该数据包,该接收应答的传输链路为从中间设备到第一设备。

综上,本实施例的方法由中间设备响应于数据包的接收向发端设备发送接收应答,使得发端设备不用等待通过较长的链路传输的来自收端设备的接收应答,即可进行下一数据包的发送,大大缩短了接收应答的传输距离,减少了发端发送数据包的延迟,提高了发端设备的数据发送速率,进而提高了数据传输性能。

需要说明的是,根据中间设备与第一设备的连接方式的不同(有线或无线),在本实施例的方法中,所述接收应答可为媒体访问控制MAC层消息,也可为传输控制协议TCP层消息。例如,在图1所示场景中,第一设备为发端UE 102,若中间设备为AP 104,则AP 104向发端UE 102反馈的即为MAC层消息;若中间设备为AP 108,则AP 108向发端UE 102反馈的即为TCP层消息。且根据中间设备的不同,接收应答的传输链路长短不同,应用本实施例的方法能够提高的发端设备的数据发送速率也可能不同。

此外,数据包在经过至少一中间设备到第二设备的这段链路上,可能发生数据包的丢失或超时,因而需要重传该数据包。在一种可能的实现方式中,向第二设备发送数据包后,若接收到来自第二设备的未接收应答(NACK),可将该未接收应答反馈给第一设备,由第一设备重传相应的数据包。或者,向第二设备发送数据包后,若在第一预设时间内未接收到来自第二设备的接收应答,则以任何可能的方式通知第一设备重传相应的数据包。

在另一种可能的实现方式中,可由执行本实施例的方法的中间设备在需要时实施数据包的重传。具体地,向第二设备发送数据包后, 若接收到来自第二设备的未接收应答(NACK),可直接重传相应的数据包,无需向第一设备反馈。或者,向第二设备发送数据包后,在第一预设时间内未接收到来自第二设备的接收应答,可直接重传相应的数据包,无需向第一设备反馈。为了实现这样的实现方式,本实施例的方法还包括:

S260.缓存所述数据包。

执行本实施例的方法的中间设备除了向第一设备返回接收应答,以及向第二设备发送来自第一设备的数据包之外,还可缓存来自第一设备的数据包,例如,将数据包存储在本地,从而在需要时能够实施重传,从而节省了向第一设备反馈未接收应答的时间、由第一设备通过较长的链路实施重传所需要的时间,从而进一步提高了数据传输性能,此外,对于第一设备来说,其接收到来自中间设备的接收应答之后即可释放缓存对应的数据包的存储空间,而不用等待来自第二设备的接收应答,从而一定程度上降低了对第一设备的存储空间的要求和压力。

为了中间设备能够在需要时实施重传,本实施例的方法在缓存数据包时可采用一定的标记机制,以在一种可能的实现方式中,本实施例的方法还包括:

S232.生成与所述数据包相关联的第二标识信息;

S234.向所述第二设备发送所述第二标识信息。

所述第二标识信息用于标记数据包,以使第二设备能够在反馈未接收应答时做相应的标记,以及中间设备能够根据与该第二标识信息相关的信息识别需要重传的数据包。

在一种可能的实现方式中,为了避免需要中间设备进行复杂的处理逻辑,可将第二标识信息包含在数据包中一并向第二设备发送。例如,将第二标识信息置于数据包的包头中。以基于IP层的重传方式为例,标准的IP数据包包头结构可如图6(c)所示,标准的IP数据 包包头结构如图6(c)所示。其中,IP数据包包头长度(Header Length),为4比特表示IP数据包包头的长度,Option字段表示可选字段。可将第二标识信息置于IP包头的可选字段(Option)中。且为了保证数据包的包头结构以及第二标识信息的唯一性,在一种可能的实现方式中,可使用中间设备和第二设备都已知的(例如,二者预先协商好的)哈希函数生成第二标识信息,具体地,第二标识信息可为包括与所述数据包的序列号和第二类型相关联的哈希值。其中,序列号可由中间设备生成,为数据包的唯一编号,且第二类型可为:数据包发送,用于指示数据包的发送行为,以供第二设备识别。

相应地,本实施例的方法还包括:

S282.响应于接收到来自所述第二设备的与所述数据包相关联的接收应答,基于所述第二标识信息,释放缓存所述数据包的存储空间。

S284.响应于接收到来自所述第二设备的与所述数据包相关联的未接收应答,基于所述第二标识信息,向所述第二设备重传所述数据包。

S286.响应于第一预设时间内未收到来自所述第二设备的与所述数据包相关联的接收应答,基于所述第二标识信息,向所述第二设备重传所述数据包。

上述从中间设备到收端设备之间的发送、重传、以及反馈等过程对于发端设备来说都是透明的,从而大幅提高了发端设备的数据传输速率,降低了丢包或超时带来的发端侧资源重新分配或数据重传的需要,此外,也降低了发端设备的存储压力。

需要说明的是,虽然本实施例的方法已消除了从发端设备向收端设备重传的需要。但是,发端设备和中间设备之间还存在着重传的可能。在这样的情况下,本实施例的方法还包括:

S290.响应于未正确接收来自所述第一设备的所述数据包,向所述第一设备发送一未接收应答。

与中间设备向第一设备反馈的接收应答类似的,所述未接收应答为MAC层消息或为TCP层消息。

综上,本实施例的方法具有较高的数据传输性能。

图3所示为本申请实施例的数据接收方法的一种示例的流程图。该方法可由任一收端设备执行。如图3所示,该方法包括:

S320.接收一数据包。

S340.发送与所述数据包相关联的接收应答以及与所述数据包相关联的第一标识信息。其中,所述第一标识信息用于指示不用转发所述接收应答。

在本实施例的方法中,收端设备(第二设备)正确接收来自任一中间设备的数据包后,可直接反馈与该数据包关联的接收应答,且对应于结合图2所描述的方法,由于中间设备已经向发端设备(第一设备)反馈了与该数据包关联的接收应答,为了使中间设备识别这样的数据包,避免中间设备二次向第一设备反馈接收应答,步骤S340中还向中间设备反馈与该数据包相关联的第一标识信息。与上述第二标识信息类似的,在一种可能的实现方式中,可使用哈希函数生成第一标识信息,第一标识信息也可为包括与所述数据包的序列号和第一类型相关联的哈希值。其中,序列号为数据包的唯一编号,可由中间设备生成,也可为执行本实施例方法的第二设备生成,且第一类型可为:数据包接收应答,用于指示反馈接收应答的行为。

需要说明的是,根据中间设备与第二设备的连接方式的不同,在本实施例的方法中,所述接收应答可为TCP层消息,也可为MAC层消息。例如,在图1所示场景中,第二设备为收端UE 110,若中间设备为AP 104,则收端UE 110向AP 104反馈的ACK即为TCP层消息;若中间设备为AP 108,则收端UE 110向AP 108反馈的ACK即为MAC层消息。

综上,本实施例的方法有助于通过中间设备直接反馈接收应答的 方式缩短传统的接收应答的传输距离,减少发端发送数据包的延迟,提高发端设备的数据发送速率,进而提高数据传输性能。

此外,本实施例的方法还包括:

S360.响应于未正确接收所述数据包,发送与所述数据包相关联的未接收应答以及与所述数据包相关联的第一标识信息,以使中间设备能够响应于接收到该未接收应答,根据与该第一标识信息相关的信息识别需要重传的数据包。

与向中间设备反馈的接收应答类似的,所述未接收应答也可为TCP层消息,或为MAC层消息。

仍如结合图2所描述的,在中间设备在发送数据包时也发送了与该数据包相关联的第二标识信息的实现方式中,本实施例的方法还可包括:

S332.接收与所述数据包相关联的第二标识信息;

S334.基于所述第二标识信息生成所述第一标识信息。

例如,可直接接收第二标识信息,或通过解析接收到的数据包的包头的方式获取该第二标识信息,并使用同样的序列号以及第一类型生成一哈希值,作为第一标识信息。

在一种可能的实现方式中,步骤S340可将所述第一标识信息包含在所述接收应答中一并发送。

综上,本实施例的方法可有助于通过结合图2所描述的方法来实现传输性能的提高。

本领域技术人员可以理解,在本申请具体实施方式的上述方法中,各步骤的序号大小并不意味着执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本申请具体实施方式的实施过程构成任何限定。

此外,本申请实施例还提供了一种计算机可读介质,包括在被执行时进行以下操作的计算机可读指令:执行上述图2中所示实施方式 中的方法的各步骤的操作。

此外,本申请实施例还提供了一种计算机可读介质,包括在被执行时进行以下操作的计算机可读指令:执行上述图3中所示实施方式中的方法的各步骤的操作。

图4(a)是本申请实施例的数据传输装置的一种示例的结构框图。该装置可为或属于数据传输过程中的任一中间设备执行,这样的中间设备包括但不限于:接入点(Access Point,AP)设备、路由设备等任意能够将来自发端设备(也称第一设备)的数据包发送给收端设备(也称第二设备)的设备。

如图4(a)所示,本申请实施例的数据传输装置400包括:

第一应答模块420,用于响应于接收到来自第一设备的数据包,向所述第一设备发送一接收应答。

第一发送模块440,用于向第二设备发送所述数据包,所述第二设备为所述数据包的目标设备。

使用本实施例的装置所进行的数据传输可指数据包从源设备到目的设备的传输过程,也即,第一设备和第二设备分别为数据包的源设备和目的设备;也可发生在数据包从源设备到目的设备之间的任一传输阶段,且在使用本实施例的装置进行数据传输的过程中,来自第一设备的数据包仍将通过中间设备向第二设备转发,第二设备为所述数据包的目标设备,“目标设备”可以是数据包的最终目的设备,也可以是该数据包的下一跳或多跳设备。但是,与传统的通过从目标设备经过至少一中间设备再到第一设备的链路反馈接收应答不同的是,在本实施例的装置中,将响应于接收到来自第一设备的数据包,直接向第一设备反馈一接收应答,例如,在正确接收到来自第一设备的数据包后,立即向第一设备反馈一接收应答,并向第二设备发送该数据包,该接收应答的传输链路为从中间设备到第一设备。

综上,本实施例的装置响应于数据包的接收向发端设备发送接收 应答,使得发端设备不用等待通过较长的链路传输的来自收端设备的接收应答,即可进行下一数据包的发送,大大缩短了接收应答的传输距离,减少了发端发送数据包的延迟,提高了发端设备的数据发送速率,进而提高了数据传输性能。

需要说明的是,根据本实施例的装置与第一设备的连接方式的不同(有线或无线),在本实施例的装置中,所述接收应答可为媒体访问控制MAC层消息,也可为传输控制协议TCP层消息。

此外,数据包在经过至少一中间设备到第二设备的这段链路上,可能发生数据包的丢失或超时,因而需要重传该数据包。在一种可能的实现方式中,本实施例的装置向第二设备发送数据包后,若接收到来自第二设备的未接收应答(NACK),可将该未接收应答反馈给第一设备,由第一设备重传相应的数据包。或者,本实施例的装置向第二设备发送数据包后,若在第一预设时间内未接收到来自第二设备的接收应答,则以任何可能的方式通知第一设备重传相应的数据包。

在另一种可能的实现方式中,可由本实施例的装置在需要时实施数据包的重传。具体地,本实施例的装置向第二设备发送数据包后,若接收到来自第二设备的未接收应答(NACK),可直接重传相应的数据包,无需向第一设备反馈。或者,本实施例的装置向第二设备发送数据包后,在第一预设时间内未接收到来自第二设备的接收应答,可直接重传相应的数据包,无需向第一设备反馈。为了实现这样的实现方式,如图4(b)所示,本实施例的装置400还包括:

存储模块460,用于缓存所述数据包。

本实施例的装置除了向第一设备返回接收应答,以及向第二设备发送来自第一设备的数据包之外,还可缓存来自第一设备的数据包,例如,将数据包存储在本地,从而在需要时能够实施重传,从而节省了向第一设备反馈未接收应答的时间、由第一设备通过较长的链路实施重传所需要的时间,从而进一步提高了数据传输性能,此外,对于 第一设备来说,其接收到来自中间设备的接收应答之后即可释放缓存对应的数据包的存储空间,而不用等待来自第二设备的接收应答,从而一定程度上降低了对第一设备的存储空间的要求和压力。

为了中间设备能够在需要时实施重传,本实施例的装置在缓存数据包时可采用一定的标记机制,以在一种可能的实现方式中,如图4(c)所示,本实施例的装置400还包括:

第一生成模块430,用于生成与所述数据包相关联的第二标识信息。

所述第一发送模块440还用于向所述第二设备发送所述第二标识信息。

所述第二标识信息用于标记数据包,以使第二设备能够在反馈未接收应答时做相应的标记,以及中间设备能够根据与该第二标识信息相关的信息识别需要重传的数据包。

在一种可能的实现方式中,为了避免需要中间设备进行复杂的处理逻辑,第一发送模块440可将第二标识信息包含在数据包中一并向第二设备发送。例如,将第二标识信息置于数据包的包头中。以基于IP层的重传方式为例,标准的IP数据包包头结构可如图6(c)所示,可将第二标识信息置于IP包头的可选字段(Option)中。且为了保证数据包的包头结构以及第二标识信息的唯一性,在一种可能的实现方式中,可使用中间设备和第二设备都已知的(例如,二者预先协商好的)哈希函数生成第二标识信息,具体地,第二标识信息可为包括与所述数据包的序列号和第二类型相关联的哈希值。其中,序列号可由中间设备生成,为数据包的唯一编号,且第二类型可为:数据包发送,用于指示数据包的发送行为,以供第二设备识别。

相应地,如图4(d)所示,本实施例的装置400还包括:

存储控制模块480,用于响应于接收到来自所述第二设备的与所述数据包相关联的接收应答,基于所述第一标识信息,释放缓存所述 数据包的存储空间。

所述第一发送模块440还用于响应于接收到来自所述第二设备的与所述数据包相关联的未接收应答,基于所述第一标识信息,向所述第二设备重传所述数据包;以及响应于第一预设时间内未收到来自所述第二设备的与所述数据包相关联的接收应答,基于所述第一标识信息,向所述第二设备重传所述数据包。

使用本实施例的装置,上述从中间设备到收端设备之间的发送、重传、以及反馈等过程对于发端设备来说都是透明的,从而大幅提高了发端设备的数据传输速率,降低了丢包或超时带来的发端侧资源重新分配或数据重传的需要,此外,也降低了发端设备的存储压力。

需要说明的是,虽然本实施例的装置已消除了从发端设备向收端设备重传的需要。但是,发端设备和中间设备之间还存在着重传的可能。在这样的情况下,第一应答模块420还用于响应于未正确接收来自所述第一设备的所述数据包,向所述第一设备发送一未接收应答。

与中间设备向第一设备反馈的接收应答类似的,所述未接收应答为MAC层消息或为TCP层消息。

需要说明的是,上述接收应答、未接收应答、以及来自第一设备的接收可由独立于本实施例的装置,但属于中间设备的接收单元实现。或者,本实施例的装置还可包括实现这样的接收单元。

综上,本实施例的装置具有较高的数据传输性能。

图5(a)为本申请实施例的数据接收装置的一种示例的结构框图。该装置可为或可属于任一收端设备。如图5(a)所示,该装置500包括:

接收模块520,用于接收一数据包。

第二应答模块540,用于发送与所述数据包相关联的接收应答以及与所述数据包相关联的第一标识信息。其中,所述第一标识信息用 于指示不用转发所述接收应答。

在本实施例的装置中,收端设备(第二设备)正确接收来自任一中间设备的数据包后,可直接反馈与该数据包关联的接收应答,且对应于结合图4(a)至图4(d)所描述的装置,由于中间设备已经向发端设备(第一设备)反馈了与该数据包关联的接收应答,为了使中间设备识别这样的数据包,避免中间设备二次向第一设备反馈接收应答,第二应答模块540还向中间设备反馈与该数据包相关联的第一标识信息。与上述第二标识信息类似的,在一种可能的实现方式中,可使用哈希函数生成第一标识信息,第一标识信息也可为包括与所述数据包的序列号和第一类型相关联的哈希值。其中,序列号为数据包的唯一编号,可由中间设备生成,也可为本实施例的装置生成,且第一类型可为:数据包接收应答,用于指示反馈接收应答的行为。

需要说明的是,根据中间设备与本实施例的装置的连接方式的不同,在本实施例的装置中,所述接收应答可为TCP层消息,也可为MAC层消息。例如,在图1所示场景中,第二设备为收端UE 110,若中间设备为AP 104,则收端UE 110向AP 104反馈的ACK即为TCP层消息;若中间设备为AP 108,则收端UE 110向AP 108反馈的ACK即为MAC层消息。

综上,本实施例的装置有助于通过中间设备直接反馈接收应答的方式缩短传统的接收应答的传输距离,减少发端发送数据包的延迟,提高发端设备的数据发送速率,进而提高数据传输性能。

此外,所述应答模块520还用于响应于未正确接收所述数据包,发送与所述数据包相关联的未接收应答以及与所述数据包相关联的第一标识信息,以使中间设备能够响应于接收到该未接收应答,根据与该第一标识信息相关的信息识别需要重传的数据包。

与向中间设备反馈的接收应答类似的,所述未接收应答也可为TCP层消息,或为MAC层消息。

仍如结合图4(a)至图4(d)所描述的装置所描述的,在中间设备在发送数据包时也发送了与该数据包相关联的第二标识信息的实现方式中,所述接收模块520还用于接收与所述数据包相关联的第二标识信息。且如图5(b)所示,本实施例的装置500还可包括:

第二生成模块530,用于基于所述第二标识信息生成所述第一标识信息。

例如,接收模块520可直接接收第二标识信息,或通过解析接收到的数据包的包头的方式获取该第二标识信息,第二生成模块530使用同样的序列号以及第一类型生成一哈希值,作为第一标识信息。

在一种可能的实现方式中,第二应答模块540可将所述第一标识信息包含在所述接收应答中一并发送。

综上,本实施例的装置可有助于通过结合图4(a)至图4(d)所描述的装置来实现传输性能的提高。

下面以图6(a)中所示场景为例,通过具体实例进一步说明本申请各实施例的方法及装置。

在图6(a)所示场景中,发端设备(第一设备)为站(STA)602,收端设备(第二设备)为目标主机(target host)606,中间设备为接入点AP 604,STA 602通过AP 604接入网络,并向其目标主机606发送数据。依照本申请各实施例的方法进行数据传输的流程如6(b)所示:

(1)STA 602向AP 604发送目的地为目标主机606的数据包,并缓存该数据包。

(2)AP 604接收到来自STA 602的数据包之后,向STA 602反馈ACK。

(3)STA 602收到该ACK后,认为目标主机606已经收到该数据包,便可以释放该数据包的缓存,并发送下一个数据包;

(4)使用哈希安全算法(Secure Hash Algorithm)-1,利用该数 据包的序列号(由AP 604生成,表示该数据包的编号)及第二类型(SEND)生成一个160位的消息摘要(哈希值),并将该哈希值写到IP数据包的可选字段,如图6(d)所示,一个IP数据包包头的长度最长为“1111”,即15*4=60个字节。IP数据包包头最小长度为20字节。对于标准IPv4数据包包头,Header Length字段的值是1010。缓存修改了包头的数据包并向目标主机606发送该数据包。

(5)目标主机606接收到数据包之后,解析数据包包头,如果Header Length字段为“1010”,则表明该数据包中包含了第二标识信息,表示应将ACK发送给AP 604而无需AP 604向STA 602转发;否则,表示该数据包不是依照本申请实施例的方法发送的数据包,按传统的应答机制处理。

对于依照本申请实施例的方法发送的数据包,目标主机606依照第二标识信息生成第一标志信息:利用该数据包的序列号(同第二标识信息)及第一类型(ACK)生成一哈希值,并随ACK一同反馈给AP 604。

(6)AP 604接收到目标主机606反馈的ACK后,根据第一标识信息,释放缓存对应的数据包的存储空间。

(7)若该数据包在传输过程中丢包,或超时,AP 604会重新传输该数据包,直至收到针对该数据包的ACK。此过程对于STA 602是透明的。

图7为本申请实施例提供的数据传输装置的又一种示例的结构示意图,本申请具体实施例并不对数据传输装置的具体实现做限定。如图7所示,该数据传输装置700可以包括:

处理器(processor)710、通信接口(Communications Interface)720、存储器(memory)730、以及通信总线740。其中:

处理器710、通信接口720、以及存储器730通过通信总线740完成相互间的通信。

通信接口720,用于与比如客户端等的网元通信。

处理器710,用于执行程序732,具体可以执行上述方法实施例中的相关步骤。

具体地,程序732可以包括程序代码,所述程序代码包括计算机操作指令。

处理器710可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。

存储器730,用于存放程序732。存储器730可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序732具体可以用于使得所述数据传输装置700执行以下步骤:

响应于接收到来自第一设备的数据包,向所述第一设备发送一接收应答;

向第二设备发送所述数据包,所述第二设备为所述数据包的目标设备。

程序732中各步骤的具体实现可以参见上述实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述装置实施例中的对应描述,在此不再赘述。

图8为本申请实施例提供的数据接收装置的又一种示例的结构示意图,本申请具体实施例并不对数据接收装置的具体实现做限定。如图8所示,该数据接收装置800可以包括:

处理器(processor)810、通信接口(Communications Interface)820、 存储器(memory)830、以及通信总线840。其中:

处理器810、通信接口820、以及存储器830通过通信总线840完成相互间的通信。

通信接口820,用于与比如客户端等的网元通信。

处理器810,用于执行程序832,具体可以执行上述方法实施例中的相关步骤。

具体地,程序832可以包括程序代码,所述程序代码包括计算机操作指令。

处理器810可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。

存储器830,用于存放程序832。存储器830可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序832具体可以用于使得所述数据接收装置800执行以下步骤:

接收一数据包;

发送与所述数据包相关联的接收应答以及与所述数据包相关联的第一标识信息;

其中,所述第一标识信息用于指示不用转发所述接收应答。

程序832中各步骤的具体实现可以参见上述实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。

尽管此处所述的主题是在结合操作系统和应用程序在计算机系统上的执行而执行的一般上下文中提供的,但本领域技术人员可以认识到,还可结合其他类型的程序模块来执行其他实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组 件、数据结构和其他类型的结构。本领域技术人员可以理解,此处所述的本主题可以使用其他计算机系统配置来实践,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、小型计算机、大型计算机等,也可使用在其中任务由通过通信网络连接的远程处理设备执行的分布式计算环境中。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备的两者中。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对原有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的计算机可读取存储介质包括以存储如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方式或技术来实现的物理易失性和非易失性、可移动和不可因东介质。计算机可读取存储介质具体包括,但不限于,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、可擦除可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、闪存或其他固态存储器技术、CD-ROM、数字多功能盘(DVD)、HD-DVD、蓝光(Blue-Ray)或其他光存储设备、磁带、磁盘存储或其他磁性存储设备、或能用于存 储所需信息且可以由计算机访问的任何其他介质。

以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1