Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD, MODULE AND TERMINAL DEVICE FOR DEVICE-TO-DEVICE COMMUNICATION
Document Type and Number:
WIPO Patent Application WO/2014/101812
Kind Code:
A1
Abstract:
A method, module and terminal device for device-to-device communication are provided in the embodiment of the present invention. A communication module is set in a first terminal device and comprises: a routing support unit for generating an identification (ID) of a D2D communication module, discovering a neighbor D2D communication module, and maintaining the routing information between the D2D communication module and the neighbor D2D communication module, said neighbor D2D communication module being set in a second terminal device; a point-to-point communication unit for communicating with the neighbor D2D communication module according to the ID of the D2D communication module and the routing information maintained by the routing support unit. The problem of achieving D2D communication between terminal devices may be resolved by adopting the technical solution of the present invention.

Inventors:
WANG RUI (CN)
LIU SHENG (CN)
YU RONGDAO (CN)
DU YINGGANG (CN)
Application Number:
PCT/CN2013/090635
Publication Date:
July 03, 2014
Filing Date:
December 27, 2013
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
International Classes:
H04W76/02
Foreign References:
CN102244584A2011-11-16
CN102172093A2011-08-31
Other References:
See also references of EP 2928258A4
Download PDF:
Claims:
权利要求

1、 一种设备到设备 D2D通信模块, 其特征在于, 设置于第一终端设备 中, 所述 D2D通信模块包括:

路由支持单元, 用于生成所述 D2D通信模块的标识 ID, 发现邻居 D2D 通信模块获得与所述邻居 D2D通信模块之间的路由信息, 并根据所述路由 信息建立所述 D2D通信模块与所述邻居 D2D通信模块之间的通信链路, 所 述邻居 D2D通信模块设置于第二终端设备中;

点到点通信单元, 用于根据所述 D2D通信模块的 ID和所述通信链路, 与所述邻居 D2D通信模块进行通信。

2、 根据权利要求 1所述的 D2D通信模块, 其特征在于, 所述点到点通 信单元具体用于获得所述第一终端设备提供的第一网络数据,根据所述 D2D 通信模块的 ID和所述通信链路, 将所述第一网络数据发送至所述邻居 D2D 通信模块。

3、 根据权利要求 2所述的 D2D通信模块, 其特征在于, 所述路由支持 单元还用于通过发现机制获得所述邻居 D2D模块的 ID以及空口的端口号, 所述点到点通信单元具体用于接收所述第一终端设备上的第一应用程 序提供的所述第一网络数据, 为所述第一应用程序分配第一端口, 根据所述 D2D通信模块的 ID、所述第一端口的端口号、所述邻居 D2D通信模块的 ID 以及所述邻居 D2D通信模块为第二应用程序分配的第二端口的端口号, 对 所述第一网络数据进行封装获得数据包 ,通过所述通信链路将所述数据包发 送至所述邻居 D2D通信模块, 其中所述第二应用程序是所述第二终端设备 上与所述第一应用程序进行通信的应用程序。

4、 根据权利要求 1或 2或 3所述的 D2D通信模块, 其特征在于, 所述 点到点通信单元具体用于根据所述 D2D通信模块的 ID和所述路由信息,接 收所述邻居 D2D通信模块发送的第二网络数据。

5、 根据权利要求 1所述的 D2D通信模块, 其特征在于, 还包括: 公共緩存数据库单元, 用于获得所述第一终端设备提供的第一网络数据 并能够通过所述点到点通信单元发送至所述邻居 D2D通信单元。

6、 根据权利要求 5所述的 D2D通信模块, 其特征在于, 所述公共緩存 数据库还用于接收所述第一终端设备上的第一应用程序发送的请求查询第 三网络数据的第一查询请求,根据所述第一查询请求进行查询并向所述第一 应用程序返回第一查询结果, 所述第一查询请求包括所述第三网络数据的标 识信息。

7、 根据权利要求 6所述的 D2D通信模块, 其特征在于, 所述公共緩存 数据库具体用于接收所述第一应用程序发送的请求查询所述第三网络数据 的所述第一查询请求, 根据所述第三网络数据的标识信息在本地进行查询, 如果在本地查询到所述第三网络数据,将所述第三网络数据作为所述第一查 询结果返回给所述第一应用程序, 如果在本地未查询到所述第三网络数据, 则根据所述第三网络数据的标识信息查询所维护的邻居索引表,如果存在包 括所述第三网络数据的标识信息的邻居索引表,将包括所述第三网络数据的 标识信息的邻居索引表对应的第一邻居 D2D通信模块的 ID作为所述第一查 询结果返回给所述第一应用程序, 所述邻居索引表存储有所述邻居 D2D通 信模块所存储的网络数据的标识信息。

8、 根据权利要求 7所述的 D2D通信模块, 其特征在于,

所述点到点通信单元具体用于接收所述第一应用程序发送的第二查询 请求, 根据所述 D2D通信模块的 ID和所述路由信息, 将所述第二查询请求 发送给所述第一邻居 D2D通信模块并接收所述第一邻居 D2D通信模块根据 所述第二查询请求返回的第二查询结果, 然后将所述第二查询结果返回给所 述第一应用程序; 所述第二查询请求是所述第一应用程序在所述第一查询结 果为所述第一邻居 D2D通信模块的 ID时, 根据所述第一邻居 D2D通信模 块的 ID生成的, 所述第二查询请求包括所述 D2D通信模块的 ID、 所述点 到点通信单元为所述第一应用程序分配的第一端口的端口号、所述第一邻居 D2D通信模块的 ID、 所述第一邻居 D2D通信模块的点到点通信单元为所述 第一邻居 D2D通信模块的公共緩存数据库分配的第三端口的端口号和所述 第三网络数据的标识信息。

9、 根据权利要求 5任一项所述的 D2D通信模块, 其特征在于, 所述点到点通信单元具体用于根据所述 D2D通信模块的 ID和所述路由 信息, 接收所述邻居 D2D通信模块发送的第三查询请求并向所述邻居 D2D 通信模块返回第三查询结果, 所述第三查询请求包括所述 D2D通信模块的 ID、 所述点到点通信单元为所述公共緩存数据库分配的第四端口的端口号、 所述邻居 D2D通信模块的 ID、所述邻居 D2D通信模块的点到点通信单元为 所述第二终端设备上的第三应用程序分配的第五端口的端口号和所述第三 应用程序请求查询的第四网络数据的标识信息;

所述公共緩存数据库还用于接收所述点到点通信单元发送的所述第三 查询请求, 并根据所述第三查询请求在本地进行查询, 向所述点到点通信单 元返回所述第三查询结果。

10、 根据权利要求 3所述的 D2D通信模块, 其特征在于, 所述点到点 通信单元具体用于接收所述第一应用程序直接从网络服务器上下载的所述 第一网络数据, 为所述第一应用程序分配第一端口, 根据所述 D2D通信模 块的 ID、 所述第一端口的端口号、 所述邻居 D2D通信模块的 ID以及所述 邻居 D2D通信模块为第二应用程序分配的第二端口的端口号, 对所述第一 网络数据进行封装获得数据包,通过所述路由信息将所述数据包发送至所述 邻居 D2D通信模块, 其中所述第二应用程序是所述第二终端设备上与所述 第一应用程序进行通信的应用程序。

11、 一种设备到设备 D2D通信方法, 其特征在于, 包括:

设置于第一终端设备中的 D2D通信模块生成所述 D2D通信模块的标识

ID;

所述 D2D通信模块发现邻居 D2D通信模块, 与邻居所述 D2D通信模 块建立链接并维护所述 D2D通信模块与所述邻居 D2D通信模块之间的路由 信息, 所述邻居 D2D通信模块设置于第二终端设备中;

所述 D2D通信模块根据所述 D2D通信模块的 ID和所述路由信息, 与 所述邻居 D2D通信模块进行通信。

12、 根据权利要求 11所述的 D2D通信方法, 其特征在于, 所述 D2D 通信模块根据所述 D2D通信模块的 ID和所述路由信息, 与所述邻居 D2D 通信模块进行通信包括:

所述 D2D通信模块获得所述第一终端设备提供的第一网络数据, 根据 所述 D2D通信模块的 ID和所述路由信息 ,将所述第一网络数据发送至所述 邻居 D2D通信模块。

13、 根据权利要求 12所述的 D2D通信方法, 其特征在于, 所述 D2D 通信模块获得所述第一终端设备提供的第一网络数据, 根据所述 D2D通信 模块的 ID和所述路由信息,将所述第一网络数据发送至所述邻居 D2D通信 模块包括: 所述 D2D通信模块获得所述第一终端设备上的第一应用程序提供的所 述第一网络数据;

所述 D2D通信模块为所述第一应用程序分配端口, 根据所述 D2D通信 模块的 ID、 所述第一端口的端口号、 所述邻居 D2D通信模块的 ID以及所 述邻居 D2D通信模块为第二应用程序分配的第二端口的端口号, 对所述第 一网络数据进行封装获得数据包,通过所述路由信息将所述数据包发送至所 述邻居 D2D通信模块, 其中所述第二应用程序是所述第二终端设备上与所 述第一应用程序进行通信的应用程序。

14、 根据权利要求 12或 13所述的 D2D通信方法, 其特征在于, 所述 D2D通信模块根据所述 D2D通信模块的 ID和所述路由信息, 与所述邻居

D2D通信模块进行通信包括:

所述 D2D通信模块根据所述 D2D通信模块的 ID和所述路由信息, 接 收所述邻居 D2D通信模块发送的第二网络数据。

15、 根据权利要求 11所述的 D2D通信方法, 其特征在于, 还包括: 所述 D2D通信模块获得所述第一终端设备提供的第一网络数据并将所 述第一网络数据存储到公共緩存数据库中。

16、 根据权利要求 15所述的 D2D通信方法, 其特征在于, 还包括: 所述 D2D通信模块接收所述第一终端设备上的第一应用程序发送的请 求查询第三网络数据的第一查询请求,根据所述第一查询请求进行查询并向 所述第一应用程序返回第一查询结果, 所述第一查询请求包括所述第三网络 数据的标识信息。

17、 根据权利要求 16所述的 D2D通信方法, 其特征在于, 所述 D2D 通信模块根据所述第一查询请求进行查询并向所述第一应用程序返回第一 查询结果包括:

所述 D2D通信模块根据所述第三网络数据的标识信息在本地进行查询; 如果在本地查询到所述第三网络数据, 所述 D2D通信模块将所述第三 网络数据作为所述第一查询结果返回给所述第一应用程序;

如果在本地未查询到所述第三网络数据, 所述 D2D通信模块根据所述 第三网络数据的标识信息查询所维护的邻居索引表,如果存在包括所述第三 网络数据的标识信息的邻居索引表,将包括所述第三网络数据的标识信息的 邻居索引表对应的第一邻居 D2D通信模块的 ID作为所述第一查询结果返回 给所述第一应用程序, 其中, 所述邻居索引表存储有所述邻居 D2D通信模 块所存储的网络数据的标识信息。

18、 根据权利要求 17所述的 D2D通信方法, 其特征在于, 所述 D2D 通信模块根据所述 D2D通信模块的 ID和所述路由信息, 与所述邻居 D2D 通信模块进行通信包括:

所述 D2D通信模块接收所述第一应用程序发送的第二查询请求; 所述 第二查询请求是所述第一应用程序在所述第一查询结果为所述第一邻居

D2D通信模块的 ID时, 根据所述第一邻居 D2D通信模块的 ID生成的, 所 述第二查询请求包括所述 D2D通信模块的 ID、所述 D2D通信模块为所述第 一应用程序分配的第一端口的端口号、 所述第一邻居 D2D通信模块的 ID、 所述第一邻居 D2D通信模块为所述第一邻居 D2D通信模块上的公共緩存数 据库分配的第三端口的端口号和所述第三网络数据的标识信息;

所述 D2D通信模块根据所述 D2D通信模块的 ID和所述路由信息, 将 所述第二查询请求发送给所述第一邻居 D2D通信模块并接收所述第一邻居 D2D通信模块根据所述第二查询请求返回的第二查询结果;

所述 D2D通信模块将所述第二查询结果返回给所述第一应用程序。

19、根据权利要求 15-18任一项所述的 D2D通信方法, 其特征在于, 所 述 D2D通信模块根据所述 D2D通信模块的 ID和所述路由信息, 与所述邻 居 D2D通信模块进行通信包括:

所述 D2D通信模块根据所述 D2D通信模块的 ID和所述路由信息, 接 收所述邻居 D2D通信模块发送的第三查询请求, 所述第三查询请求包括所 述 D2D通信模块的 ID、所述 D2D通信模块为所述公共緩存数据库分配的第 四端口的端口号、所述邻居 D2D通信模块的 ID、所述邻居 D2D通信模块为 所述第二终端设备上的第三应用程序分配的第五端口的端口号和所述第三 应用程序请求查询的第四网络数据的标识信息;

所述 D2D通信模块根据所述第三查询请求在本地进行查询, 并向所述 邻居 D2D通信模块返回第三查询结果。

20、 根据权利要求 13所述的 D2D通信方法, 其特征在于, 所述 D2D 通信模块接收所述第一终端设备上的第一应用程序提供的所述第一网络数 据包括:

所述 D2D通信模块接收所述第一应用程序直接从网络服务器上下载的 所述第一网络数据。

21、 一种终端设备, 其特征在于, 包括: 如权利要求 1-10任一项所述 的设备到设备 D2D通信模块和至少一个 D2D空口;

所述 D2D通信模块通过所述至少一个 D2D空口与邻居 D2D通信模块 进行通信。

Description:
设备到设备通信方法、 模块及终端设备

技术领域

本发明涉及通信技术, 尤其涉及一种设备到设备通信方法、 模块及终端 设备。

背景技术

传统的蜂窝通信中, 空口方面只有两种通信方式, 即从终端设备到基站 的上行传输和从基站到终端设备的下行传输。 随着终端设备的发展, 终端设 备之间逐渐具备了相互通信的能力,例如终端 设备使用蓝牙、 WiFi等可以与 其他终端设备进行直接的数据传输。这种终端 设备之间直接通信的方式称为 设备到设备 ( Device-to-Device, 简称为 D2D )通信。

事实上, 终端设备之间的 D2D通信不仅可以用来共享终端设备本地产 生的数据,还可以用来协助终端设备更好地从 网络上获取数据并共享网络数 据, 这有利于降低蜂窝网络的负载和用户的上网成 本。 例如, 相互靠近的第 一终端设备和第二终端设备都要从互联网(Int ernet )上下载相同内容, 则可 以进行协商各自下载所需内容的一半, 然后通过两者之间的 D2D通信进行 下载内容的交换, 这样第一终端设备和第二终端设备即获得了所 需内容, 同 时降低了用户上网成本, 减轻了网络的负担。 现有技术仅给出了 D2D与蜂 窝联合传输的方案, 但并没有给出终端设备之间如何实现 D2D通信的解决 方案。

发明内容

本发明实施例提供一种设备到设备通信方法、 模块及终端设备, 用以解 决终端设备之间的 D2D通信的实现问题。

第一方面提供一种设备到设备 D2D通信模块, 设置于第一终端设备中, 所述 D2D通信模块包括:

路由支持单元, 用于生成所述 D2D通信模块的标识 ID, 发现邻居 D2D 通信模块, 并维护所述 D2D通信模块与所述邻居 D2D通信模块之间的路由 信息, 所述邻居 D2D通信模块设置于第二终端设备中;

点到点通信单元, 用于根据所述 D2D通信模块的 ID和所述路由信息, 与所述邻居 D2D通信模块进行通信。

第二方面提供一种设备到设备 D2D通信方法, 包括:

设置于第一终端设备中的 D2D通信模块生成所述 D2D通信模块的标识

ID, 发现邻居 D2D通信模块, 并维护所述 D2D通信模块与所述邻居 D2D 通信模块之间的路由信息, 所述邻居 D2D通信模块设置于第二终端设备中; 所述 D2D通信模块根据所述 D2D通信模块的 ID和所述路由信息, 与 所述邻居 D2D通信模块进行通信。

第三方面提供一种终端设备,包括第一方面提 供的任一设备到设备 D2D 通信模块和至少一个 D2D空口;所述 D2D通信模块通过所述至少一个 D2D 空口与邻居 D2D通信模块进行通信。

本发明实施例提供的设备到设备通信方法、 模块及终端设备, 各终端设 备均设置 D2D通信模块, 具体的, 各 D2D通信模块通过各自的路由支持单 元生成 D2D通信模块的 ID、 发现邻居 D2D通信模块并维护与邻居 D2D通 信模块之间的路由信息, 由点到点通信单元根据 D2D通信模块自身的 ID和 路由支持单元所维护的路由信息完成与邻居 D2D通信模块间的通信, 从而 实现终端设备之间的 D2D通信。

附图说明 为了更清楚地说明本发明实施例或现有技术中 的技术方案, 下面将对实 施例或现有技术描述中所需要使用的附图作一 简单地介绍, 显而易见地, 下 面描述中的附图是本发明的一些实施例, 对于本领域普通技术人员来讲, 在 不付出创造性劳动性的前提下, 还可以根据这些附图获得其他的附图。

图 1为本发明实施例提供的一种 D2D通信模块的结构示意图; 图 2为本发明实施例提供的另一种 D2D通信模块的结构示意图; 图 3为本发明实施例提供的一种终端设备的实现 构示意图;

图 4为本发明实施例提供的又一种 D2D通信模块的结构示意图; 图 5为本发明实施例提供的一种 D2D通信方法的流程图。 具体实施方式 为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本发 明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例是本发明一部分实施例, 而不是全部的实施例。 基于 本发明中的实施例, 本领域普通技术人员在没有作出创造性劳动前 提下所获 得的所有其他实施例, 都属于本发明保护的范围。

为了解决终端设备之间的 D2D通信的实现问题, 本发明实施例给出了 解决方案,在该解决方案中,每个终端设备中 设置有 D2D通信模块,该 D2D 通信模块负责实现终端设备之间的 D2D通信。 其中, 设置于任何一个终端 设备中的 D2D通信模块都具有相同的功能。 为便于描述, 本发明以下各实 施例以设置于第一终端设备中的 D2D通信模块为例进行说明, 而将可以作 为第一终端设备的邻居的其他终端设备中的 D2D通信模块称为邻居 D2D通 信模块, 并将邻居 D2D通信模块所在的终端设备称为第二终端设备 。 在此 说明, 邻居 D2D通信模块的个数与第二终端设备的个数相同 , 可能是一个, 也可能是多个。

图 1为本发明实施例提供的一种 D2D通信模块的结构示意图。 本实施 例的 D2D通信模块设置于第一终端设备中, 如图 1所示, 本实施例的 D2D 通信模块包括: 路由支持单元 11和点到点通信单元 12。

路由支持单元 11 , 用于生成本实施例 D2D通信模块的标识(ID ) , 发 现邻居 D2D通信模块, 并维护本实施例 D2D通信模块与邻居 D2D通信模 块之间的路由信息, 在本实施例中, 邻居 D2D通信模块设置于第二终端设 备中。

点到点通信单元 12,用于根据本实施例的 D2D通信模块的 ID和路由支 持单元 11所维护的本实施例的 D2D通信模块与邻居 D2D通信模块之间的 路由信息, 与邻居 D2D通信模块进行通信。

在本实施例中, 第一终端设备以及第二终端设备具备 D2D通信能力, 同时还具备除 D2D通信能力之外的其他通信能力, 例如蜂窝通信能力, 以 尽可能发挥 D2D通信能力与其他通信能力 (例如蜂窝通信能力 )联合传输 的优势。 每一个具有 D2D通信能力的终端设备都需要与尽可能多的其 他具 有 D2D通信能力的终端设备进行通信, 以便能够提高进行联合传输的可能 性。 基于上述, 本实施例的路由支持单元 11会驱动 D2D通信模块的空口尽 可能发现周边的第二终端设备, 以便更多的维护本实施例 D2D通信模块与 邻居 D2D通信模块之间的路由信息。 在本实施例中, D2D通信模块的空口 称为 D2D空口。 本实施例对 D2D空口的实现形式不 #丈限定, 例如 D2D空 口可以是但不限于: WiFi Direct, 蓝牙, 未来蜂窝通信的带内 D2D通信空口 等等。

对于不同的 D2D空口, 路由支持单元 11维护与邻居 D2D通信模块之 间的路由信息的方式可能不同。 下面以 WiFi Direct空口为例说明路由支持 单元 11如何维护本实施例的 D2D通信模块与邻居 D2D通信模块之间的路 由信息。 具体的, WiFi Direct空口在进行终端设备之间的通信之前, 首先形 成一个个的组( Group ) , 每个 Group有一个组长( Group Owner )起到类似 接入点 (Access Point, 简称为 AP ) 的功能。 在每个 Group内, 各个终端设 备可以进行直接通信。 基于 WiFi Direct空口的特性, 本实施例的路由支持 单元 11 需要驱动第一终端设备加入更多的第二终端设 备所在的 Group, 并 且驱动不同的 Group之间能够有终端设备进行数据中转,使得 们可以通过 WiFi Direct协议进行单跳或者多跳的通信。

例如, 一种路由支持单元 11驱动第一终端设备加入更多的第二终端设 备所在的 Group的具体实施方式包括: 第一终端设备中的路由支持单元 11 通过 WiFi Direct空口寻找周围的 Group。 如果周围存在已经形成的 Group, 则路由支持单元 11驱动第一终端设备尝试加入这些 Group,加入这些 Group 之后, 路由支持单元 11尝试发现这些 Group中的 Group Owner上是否具有 D2D通信模块, 如果这些 Group中的 Group Owner上具有 D2D通信模块, 则将这些 Group中的终端设备作为第二终端设备,则这些 端设备上的 D2D 通信模块即为本实施例的 D2D通信模块的邻居 D2D通信模块。 可选的, 路 由支持单元 11可以通过广播邻居列表来维护本实施例的 D2D通信模块与邻 居 D2D通信模块之间的邻居关系。 则在发现邻居 D2D通信模块时, 路由支 持单元 11更新邻居列表, 即将新发现的 D2D通信模块的信息加入到邻居列 表中。 如果周围不存在 Group, 或者路由支持单元 11 无法驱动第一终端设 备加入已形成的 Group,或者发现周围还有其他可能具有 D2D通信模块的终 端设备没有加入已形成的 Group, 则路由支持单元 11驱动第一终端设备自 己形成一个 Group, 并且作为 Group Owner, 当有新的终端设备加入时, 尝 试发现这些新终端设备上是否有 D2D通信模块运行, 如果新终端设备上有 D2D通信模块, 则将新终端设备作为第二终端设备, 新终端设备上的 D2D 通信模块即为本实施例的 D2D通信模块的邻居 D2D通信模块, 这里的第二 终端设备可以是一个或多个。 这样不同终端设备的 D2D通信模块就构成了 一个 Ad Hoc网络, 这样路由支持单元 11可利用 Ad Hoc网络的各种现有算 法建立邻居 D2D通信模块的路由表。 在该路由表中, 对于单跳的邻居 D2D 通信模块, 维护的路由信息包括该单跳邻居 D2D通信模块的 ID和本实施例 的 D2D通信模块到达该邻居 D2D通信模块所使用的 D2D空口; 对于多跳 的邻居 D2D通信模块,维护的路由信息包括该多跳邻居 D2D通信模块的 ID, 下一跳邻居 D2D通信模块的 ID和下一跳邻居 D2D通信模块所使用的 D2D 空口。

通过上述方式路由支持单元 11不仅可以维护本实施例的 D2D通信模块 与邻居 D2D通信模块之间的路由信息, 而且还可以驱动本实施例的 D2D通 信模块发现更多的邻居 D2D通信模块。

另外, 由于本实施例支持多种类型的 D2D 空口, 当第一终端设备上的 应用程序通过点到点通信单元调用 D2D空口 (例如通过 D2D空口接收或发 送网络数据) 时, 点到点通信单元 12会对调用 D2D 空口的应用程序封装 D2D空口的差异性, 即应用程序不需要关心 D2D空口的使用细节, 这些细 节由点到点通信单元 12负责。

在本实施例中, 每个终端设备上的 D2D通信模块都拥有一个 ID, 用于 唯一标识一个 D2D通信模块。 D2D通信模块的 ID可以由路由支持单元 11 根据 D2D通信模块所在终端设备的介质访问控制 ( Medium Access Control, 简称为 MAC )地址产生, 从而保证不会出现不同终端设备的 D2D通信模块 有相同 ID的情况。 另外, D2D通信模块的 ID还会由路由支持单元 11来维 护。

点通信单元 12实现本实施例的 D2D通信模块与邻居 D2D通信模块之 间的通信可以采用以下方式: 类似传输控制协议 ( Transmission Control Protocol , 简称为 TCP )和用户数据包协议( User Datagram Protocol , 简称为 UDP )服务, 点到点通信单元 12可以提供从第一终端设备的一个进程到第 二终端设备的一个进程间的两种通信链路:面 向连接的通信链路(类似 TCP ) 和面向非连接的通信链路 (类似 UDP )。 同理, 类似 TCP或 UDP协议, 点 到点通信单元 12给使用其进行数据发送或者接收的应用程序 配端口。 第 一终端设备上的一个数据发射端或者接收端可 以用本实施例的 D2D通信模 块的 ID和对应的应用程序的端口号来唯一标识。 当应用程序使用面向非连 接的通信模式进行数据发送时, 发送端 D2D通信模块中的点到点通信单元 12事先不需要告知接收端 D2D通信模块中的点到点通信单元 12, 而是直接 把数据发送给接收端 D2D通信模块中的点到点通信单元 12。 当应用程序使 用面向连接的通信模式进行数据发送时, 发送端 D2D通信模块中的点到点 通信单元 12需要事先通知接收端 D2D通信模块中的点到点通信单元 12,建 立从发射端 D2D通信模块的 ID和发射端应用程序的端口到接收端 D2D通 信模块的 ID和接收端应用程序的端口之间的连接, 以后上述接收端应用程 序的端口只接收来自上述发射端应用程度的端 口的数据。

当使用面向连接的通信方式时, 发送端 D2D通信模块中的点到点通信 单元 12需要保证可靠有序的数据传输, 基于此发射端 D2D通信模块中的点 到点通信单元 12把要发送的数据按照一个固定的大小进行分 , 每一个数 据段用一个数据包封装, 该数据包至少包括如下信息: 发送端 D2D通信模 块的 ID和发送端应用程序的端口号, 接收端 D2D通信模块的 ID和接收端 应用程序的端口号和数据包的序号,该序号用 于接收端的点到点通信单元 12 对数据包进行排序。 相应地, 接收端的 D2D通信模块中的点到点通信单元 12需要对发射端 D2D通信模块中的点到点通信单元 12发送的数据包进行接 收确认(Acknowledge ) 。 发送和接收确认的算法可以参照 TCP的滑动窗口 协议, 在此不再贅述。

基于上述各种通信方式, 点到点通信单元 12用于根据本实施例的 D2D 通信模块的 ID和路由支持单元 11所维护的本实施例的 D2D通信模块与邻 居 D2D通信模块之间的路由信息, 与邻居 D2D通信模块进行通信的一种情 况包括:

点到点通信单元 12具体用于接收第一终端设备提供的第一网络 据, 根据本实施例的 D2D通信模块的 ID和路由支持单元 11所维护的路由信息, 将第一网络数据发送至邻居 D2D通信模块。

进一步, 点到点通信单元 12具体用于接收第一终端设备上的第一应用 程序提供的第一网络数据, 为第一应用程序分配第一端口, 根据本实施例的 D2D通信模块的 ID、 第一端口的端口号、 邻居 D2D通信模块的 ID以及邻 居 D2D通信模块为第二应用程序分配的第二端口的 端口号, 对第一网络数 据进行封装获得数据包, 通过路由支持单元 11 所维护的路由信息将封装出 的数据包发送至邻居 D2D通信模块, 其中, 第二应用程序是邻居 D2D通信 模块所在的第二终端设备上与第一应用程序进 行通信的应用程序。 在此说 模块实现相互间的 D2D通信。

可选的, 第一应用程序提供的第一网络数据可以是第一 应用程序直接从 网络服务器上下载的。 基于此, 点到点通信单元 12具体可用于接收第一终 端设备上的第一应用程序直接从网络服务器上 下载的第一网络数据。

可选的, 点到点通信单元 12用于根据本实施例的 D2D通信模块的 ID 和路由支持单元 11所维护的本实施例的 D2D通信模块与邻居 D2D通信模 块之间的路由信息, 与邻居 D2D通信模块进行通信的一种情况包括:

点到点通信单元 12具体用于根据本实施例的 D2D通信模块的 ID和路 由支持单元 11所维护的路由信息, 接收邻居 D2D通信模块发送的第二网络 数据。 其中, 邻居 D2D通信模块发送的第二网络数据可以是邻居 D2D通信 模块所在第二终端设备上的第二应用程序通过 该邻居 D2D通信模块发送的。

由上述可见, 在本实施例中, 各终端设备均设置 D2D通信模块, 具体 的,各 D2D通信模块通过各自的路由支持单元生成 D2D通信模块的 ID,发 现邻居 D2D通信模块并维护与邻居 D2D通信模块之间的路由信息, 由点到 点通信单元根据 D2D通信模块自身的 ID和路由支持单元所维护的路由信息 完成与邻居 D2D通信模块间的通信, 从而实现终端设备之间的 D2D通信。 进一步, 通过本实施例的 D2D通信模块, 终端设备之间可以实现数据共享, 如果与蜂窝通信联合传输, 会使蜂窝通信的负担大大降低, 用户的体验和上 网成本也将大大降低。 再者, 只需在终端设备上部署本实施例的 D2D通信 模块即可, 不需要对现有的无线通信系统进行修改, 易于实现, 且部署成本 较低。

图 2为本发明实施例提供的另一种 D2D通信模块的结构示意图。 本实 施例基于图 1所示实施例实现, 如图 2所示, 本实施例的 D2D通信模块还 包括: 公共緩存数据库 13。

公共緩存数据库 13 , 用于接收第一终端设备提供的第一网络数据并 存 储。 在此说明, 公共緩存数据库 13 可以存储第一终端设备上的各应用程序 发送的网络数据, 本实施例以第一终端设备上的第一应用程序为 例进行说 明, 则公共緩存数据库 13具体用于接收第一终端设备上的第一应用程 发 送的第一网络数据并存储。 第一应用程序向公共緩存数据库 13提交第一网 络数据的同时, 还需要将第一网络数据的标识信息提供给公共 緩存数据库 13。 第一网络数据的标识信息可以是但不限于第一 网络数据的网络地址, 用 于唯一标识该第一网络数据。 例如: 如果该第一网络数据是从某个网站上下 载的文件, 则第一网络数据的标识信息为这个文件在网络 上的具体地址。 例 如, 第一网络数据的标识信息还可以是第一网络数 据的名称等。

可选的, 第一应用程序向公共緩存数据库 13提交第一网络数据的同时, 还可以向公共緩存数据库 13提交第一网络数据的有效期, 这样, 当第一网 络数据超过有效期后, 公共緩存数据库 13可以将第一网络数据删除, 有利 于提高公共緩存数据库 13的利用率。

本实施例的公共緩存数据库 13还可用于向第一终端设备或第二终端设 备上的应用程序提供所存储的网络数据。在本 实施例中, 点到点通信单元 12 会为公共緩存数据库 13分配一个端口, 以便于公共緩存数据库 13向第一终 端设备或第二终端设备上的应用程序提供所存 储的网络数据。 为了便于区分 本发明各实施例中使用到的端口, 将点到点通信单元 12分配给公共緩存数 据库 13的端口记为第四端口。

以第一终端设备上的第一应用程序向公共緩存 数据库 13请求获取第三 网络数据为例, 则公共緩存数据库 13还用于接收第一应用程序发送的请求 查询第三网络数据的第一查询请求,根据第一 查询请求进行查询并向第一应 用程序返回第一查询结果, 其中, 第一查询请求包括第三网络数据的标识信 息。

在此说明, 当第一应用程序查询本地的公共緩存数据库 13 时, 第一应 用程序发送的第一查询请求可以携带发送端 D2D通信模块的 ID (这里发送 端 D2D通信模块的 ID是本实施例的 D2D通信模块的 ID ) 、 点到点通信单 元 12为第一应用程序分配的第一端口的端口号、 收端 D2D通信模块的 ID (这里接收端 D2D通信模块的 ID也是本实施例的 D2D通信模块的 ID ) 以 及点到点通信单元 12为公共緩存数据库 13分配的第四端口的端口号,也可 以不携带这些 ID和端口号信息。

进一步, 公共緩存数据库 13还用于维护邻居索引表, 邻居索引表存储 有邻居 D2D通信模块所存储的网络数据的标识信息。 也就是说, 各 D2D通 信模块上的公共緩存数据库 13可以以邻居索引表的形式交互所存储的网络 数据的标识信息, 这样应用程序不仅可以查询本地公共緩存数据 库 13所存 储的网络数据, 还可以在本地查询远端公共緩存数据库 13所存储的网络数 据的信息。

基于上述, 公共緩存数据库 13具体用于接收第一应用程序发送的请求 查询第三网络数据的第一查询请求,根据第三 网络数据的标识信息在本地进 行查询, 如果在本地查询到第三网络数据, 将第三网络数据作为第一查询结 果返回给第一应用程序; 如果在本地未查询到第三网络数据, 则根据第三网 络数据的标识信息查询所维护的邻居索引表, 如果存在包括第三网络数据的 标识信息的邻居索引表,将包括第三网络数据 的标识信息的邻居索引表对应 的第一邻居 D2D通信模块的 ID作为第一查询结果返回给第一应用程序。在 本实施例中, 为了便于描述, 将包括第三网络数据的标识信息的邻居索引表 对应的邻居 D2D通信模块称为第一邻居 D2D通信模块。 其中, 第一邻居 D2D通信模块是本实施例的 D2D通信模块的邻居 D2D通信模块中的一个。

基于上述,点到点通信单元 12用于根据本实施例的 D2D通信模块的 ID 和路由支持单元 11所维护的本实施例的 D2D通信模块与邻居 D2D通信模 块之间的路由信息, 与邻居 D2D通信模块进行通信的又一种情况包括: 点到点通信单元 12具体用于接收第一应用程序发送的第二查询 求, 根据本实施例 D2D通信模块的 ID和路由支持单元 11所维护的路由信息, 将第二查询请求发送给第一邻居 D2D通信模块并接收第一邻居 D2D通信模 块根据第二查询请求返回的第二查询结果, 然后将第二查询结果返回给第一 应用程序。 其中, 第二查询请求是第一应用程序在第一查询结果 为第一邻居 D2D通信模块的 ID时, 根据第一邻居 D2D通信模块的 ID生成的, 该第二 查询请求包括本实施例的 D2D通信模块的 ID、本实施例的 D2D通信模块中 的点到点通信单元 12为第一应用程序分配的第一端口的端口号、 第一邻居 D2D通信模块的 ID、 第一邻居 D2D通信模块的点到点通信单元 12为第一 邻居 D2D通信模块的公共緩存数据库分配的第三端口 的端口号和第三网络 数据的标识信息。

基于公共緩存数据库 13 , 点到点通信单元 12用于根据本实施例的 D2D 通信模块的 ID和路由支持单元 11所维护的本实施例的 D2D通信模块与邻 居 D2D通信模块之间的路由信息, 与邻居 D2D通信模块进行通信的又一种 情况包括:

点到点通信单元 12具体用于根据本实施例的 D2D通信模块的 ID和路 由支持单元 11所维护的路由信息, 接收邻居 D2D通信模块发送的第三查询 请求并向邻居 D2D通信模块返回第三查询结果。 其中, 第三查询请求包括 本实施例的 D2D通信模块的 ID、本实施例的 D2D通信模块中的点到点通信 单元 12为本实施例的 D2D通信模块的公共緩存数据库 13分配的第四端口 的端口号、邻居 D2D通信模块的 ID、邻居 D2D通信模块的点到点通信单元 12 为第二终端设备上的第三应用程序分配的第五 端口的端口号和第三应用 程序请求查询的第四网络数据的标识信息。

相应地,公共緩存数据库 13还用于接收点到点通信单元 12发送的第三 查询请求, 并根据第三查询请求在本地进行查询, 向点到点通信单元 12返 回第三查询结果。 这里的第三查询结果可能是查询到的第四网络 数据, 也可 能是一个查询失败结果。

可选的, 为了便于本地或远端应用程序进行查询, 公共緩存数据库 13 可以在点到点通信单元 12分配的第四端口上监听查询请求, 以便于能够及 时向各应用程序提供查询结果。 其中, 公共緩存数据库 13使用的第四端口 的端口号为所有应用程序所公知。

由上述可见, 本实施例的公共緩存数据库可以供本地第一终 端设备上的 应用程序进行查询, 并返回查询结果, 另外, 还可以接收第二终端设备上的 应用程序通过第二终端设备的点到点通信单元 发送的查询请求, 支持远程查 询, 为终端设备之间相互协作提供了条件。 另外, 由于本实施例的 D2D通 信模块提供了公共緩存数据库存储网络数据 ,使得在相同或者不同终端设备 的不同应用程序之间可以共享网络数据, 这些不同的应用程序之间不需要具 备直接相互通信的能力, 而是通过公共緩存数据库共享网络数据, 不再受限 于必须是相同应用程序之间才能共享网络数据 。

基于本实施例的 D2D通信模块, 图 3给出一种同时具备蜂窝通信能力 和 D2D通信能力的终端设备的实现结构示意图。 如图 3所示, 该终端设备 包括: 各应用程序、 D2D通信模块、 蜂窝通道、 操作系统、 蜂窝驱动器、 蜂 窝空口、 D2D驱动器和 D2D空口。 其中, 各对象之间的层次关系如图 3所 示, 不再伴述。 本发明实施例提供一种终端设备, 包括上述实施例提供的 D2D通信模 块和至少一个 D2D空口; 其中, 所述 D2D通信模块通过所述至少一个 D2D 空口与邻居 D2D通信模块进行通信。 具体的, D2D通信模块可以同时管理 至少一个 D2D空口, 而且上层应用程序对这些 D2D空口的操作与具体的空 口无关, D2D通信模块可以实现对 D2D空口的差异性的屏蔽, 具体可参见 上述实施例中的描述。

图 4为本发明实施例提供的又一种 D2D通信模块的结构示意图。 本实 施例的 D2D通信模块设置于第一终端设备中,如图 4所述,本实施例的 D2D 通信模块包括: 处理器 41、 存储器 42和通信接口 43。

存储器 42, 用于存放程序。 具体地, 程序可以包括程序代码, 所述程序 代码包括计算机操作指令。存储器 42可能包含高速 RAM存储器,也可能还 包括非易失性存储器( non- volatile memory ) , 例如至少一个磁盘存储器。

处理器 41 ,用于执行存储器 42存放的程序,以用于:生成本实施例 D2D 通信模块的标识 ID,发现邻居 D2D通信模块, 并维护本实施例 D2D通信模 块与邻居 D2D通信模块之间的路由信息, 在本实施例中, 邻居 D2D通信模 块设置于第二终端设备中。

处理器 41 可能是一个中央处理器 (Central Processing Unit, 简称为 CPU ) , 或者是特定集成电路(Application Specific Integrated Circuit, 简称 为 ASIC ) , 或者是被配置成实施本发明实施例的一个或多 个集成电路。

通信接口 43 , 用于根据本实施例 D2D通信模块的 ID和处理器 41所维 护的路由信息, 与邻居 D2D通信模块进行通信。

本实施例提供的 D2D通信模块的处理器 41和通信接口 43还可以通过 相互配合, 实现图 1和图 2所示实施例中 D2D通信模块的其他功能, 在此 不再赘述。

可选的, 在具体实现上, 如果处理器 41、存储器 42和通信接口 43独立 实现, 则处理器 41、 存储器 42和通信接口 43可以通过总线 44相互连接并 完成相互间的通信。 总线 44 可以是工业标准体系结构 (Industry Standard Architecture, 简称为 ISA )总线、 夕卜部设备互连 ( Peripheral Component, 简 称为 PCI ) 总线或扩展工业标准体系结构 ( Extended Industry Standard Architecture, 简称为 EISA )总线等。 总线 44可以分为地址总线、数据总线、 控制总线等。 为便于表示, 图 4中仅用一条粗线表示, 但并不表示仅有一根 总线或一种类型的总线。

可选的, 在具体实现上, 如果处理器 41、存储器 42和通信接口 43集成 在一块芯片上实现,则处理器 41、存储器 42和通信接口 43可以通过内部接 口完成相同间的通信。

在本实施例中, 各终端设备均设置 D2D通信模块, 具体的, 各 D2D通 信模块通过各自的处理器生成 D2D通信模块的 ID,发现邻居 D2D通信模块 并维护与邻居 D2D通信模块之间的路由信息, 由通信接口根据 D2D通信模 块自身的 ID和处理器所维护的路由信息完成与邻居 D2D通信模块间的通 信, 从而实现终端设备之间的 D2D通信。

图 5为本发明实施例提供的一种 D2D通信方法的流程图。 本实施例的 方法可由上述实施例提供的 D2D通信模块实现。 如图 5所示, 本实施例的 方法包括:

步骤 501、 设置于第一终端设备中的 D2D通信模块生成所述 D2D通信 模块的标识 ID,发现邻居 D2D通信模块, 并维护所述 D2D通信模块与所述 邻居 D2D通信模块的连接,所述邻居 D2D通信模块设置于第二终端设备中; 步骤 502、所述 D2D通信模块根据所述 D2D通信模块的 ID和所述路由 信息, 与所述邻居 D2D通信模块进行通信。

在一可选实施方式中, 步骤 502的一种实施过程包括: D2D通信模块接 收所述第一终端设备提供的第一网络数据,根 据所述 D2D通信模块的 ID和 所述路由信息, 将所述第一网络数据发送至所述邻居 D2D通信模块。

具体的, 所述 D2D通信模块接收所述第一终端设备上的第一应 用程序 提供的第一网络数据; D2D通信模块为所述第一应用程序分配端口,根 据所 述 D2D通信模块的 ID、所述第一端口的端口号、所述邻居 D2D通信模块的 ID以及所述邻居 D2D通信模块为第二应用程序分配的第二端口的 端口号, 对所述第一网络数据进行封装获得数据包,通 过所述路由信息将所述数据包 发送至所述邻居 D2D通信模块, 其中所述第二应用程序是所述第二终端设 备上与所述第一应用程序进行通信的应用程序 。可选的, D2D通信模块可以 接收所述第一终端设备上的第一应用程序直接 从网络服务器上下载的所述 第一网络数据。

在一可选实施方式中, 步骤 502的另一种实施过程包括: 所述 D2D通 信模块根据所述 D2D通信模块的 ID和所述路由信息, 接收所述邻居 D2D 通信模块发送的第二网络数据。

在一可选实施方式中, 本实施例的 D2D方法还包括: 所述 D2D通信模 块接收所述第一终端设备提供的第一网络数据 并将所述第一网络数据存储 到公共緩存数据库中。

基于此, 本实施例的 D2D方法还包括: 所述 D2D通信模块接收所述第 一终端设备上的第一应用程序发送的请求查询 第三网络数据的第一查询请 求,根据所述第一查询请求进行查询并向所述 第一应用程序返回第一查询结 果, 所述第一查询请求包括所述第三网络数据的标 识信息。

进一步, 所述 D2D通信模块根据所述第一查询请求进行查询并 向所述 第一应用程序返回第一查询结果包括:

所述 D2D通信模块根据所述第三网络数据的标识信息 在本地进行查询; 如果在本地查询到所述第三网络数据, 所述 D2D通信模块将所述第三网络 数据作为所述第一查询结果返回给所述第一应 用程序; 如果在本地未查询到 所述第三网络数据, 所述 D2D通信模块根据所述第三网络数据的标识信息 查询所维护的邻居索引表,如果存在包括所述 第三网络数据的标识信息的邻 居索引表,将包括所述第三网络数据的标识信 息的邻居索引表对应的第一邻 居 D2D通信模块的 ID作为所述第一查询结果返回给所述第一应用 序, 其 中, 所述邻居索引表存储有所述邻居 D2D通信模块所存储的网络数据的标 识信息。

基于上述, 步骤 502的又一种实施方式包括: D2D通信模块接收所述第 一应用程序发送的第二查询请求; 所述第二查询请求是所述第一应用程序在 所述第一查询结果为所述第一邻居 D2D通信模块的 ID时,根据所述第一邻 居 D2D通信模块的 ID生成的, 所述第二查询请求包括所述 D2D通信模块 的 ID、 所述 D2D通信模块为所述第一应用程序分配的第一端 口的端口号、 所述第一邻居 D2D通信模块的 ID、所述第一邻居 D2D通信模块为所述第一 邻居 D2D通信模块上的公共緩存数据库分配的第三端 口的端口号和所述第 三网络数据的标识信息; 所述 D2D通信模块根据所述 D2D通信模块的 ID 和所述路由信息, 将所述第二查询请求发送给所述第一邻居 D2D通信模块 并接收所述第一邻居 D2D通信模块根据所述第二查询请求返回的第二 查询 结果; 所述 D2D通信模块将所述第二查询结果返回给所述第 一应用程序。

在一可选实施方式中, 步骤 502的又一种实施过程包括: 所述 D2D通 信模块根据所述 D2D通信模块的 ID和所述路由信息, 接收所述邻居 D2D 通信模块发送的第三查询请求, 所述第三查询请求包括所述 D2D通信模块 的 ID、所述 D2D通信模块为所述公共緩存数据库分配的第四 端口的端口号、 所述邻居 D2D通信模块的 ID、所述邻居 D2D通信模块为所述第二终端设备 上的第三应用程序分配的第五端口的端口号和 所述第三应用程序请求查询 的第四网络数据的标识信息; 所述 D2D通信模块根据所述第三查询请求在 本地进行查询, 并向所述邻居 D2D通信模块返回第三查询结果。

由上述可见, 在本实施例中, 各终端设备均设置 D2D通信模块, 具体 的,各 D2D通信模块通过各自的路由支持单元生成 D2D通信模块的 ID、发 现邻居 D2D通信模块并维护与邻居 D2D通信模块之间的路由信息, 由点到 点通信单元根据 D2D通信模块自身的 ID和路由支持单元所维护的路由信息 完成与邻居 D2D通信模块间的通信, 从而实现终端设备之间的 D2D通信。 进一步, 在本实施例中, 各终端设备通过设置的 D2D通信模块可以实现数 据共享, 如果与蜂窝通信联合传输, 会使蜂窝通信的负担大大降低, 用户的 体验和上网成本也将大大降低。 再者, 在本实施例中, 终端设备上只需部署 D2D通信模块即可, 不需要对现有的无线通信系统进行修改, 易于实现, 且 部署成本较低。

本领域普通技术人员可以理解: 实现上述各方法实施例的全部或部分步 骤可以通过程序指令相关的硬件来完成。前述 的程序可以存储于一计算机可 读取存储介质中。 该程序在执行时, 执行包括上述各方法实施例的步骤; 而 前述的存储介质包括: ROM、 RAM, 磁碟或者光盘等各种可以存储程序代 码的介质。 最后应说明的是: 以上各实施例仅用以说明本发明的技术方案, 而非对 其限制; 尽管参照前述各实施例对本发明进行了详细的 说明, 本领域的普通 技术人员应当理解: 其依然可以对前述各实施例所记载的技术方案 进行修 改,或者对其中部分或者全部技术特征进行等 同替换;而这些修改或者替换, 并不使相应技术方案的本质脱离本发明各实施 例技术方案的范围。