通信方法、服务端设备、客户端设备、装置及系统与流程

文档序号:14393961阅读:162来源:国知局

本申请涉及网络通信技术领域,尤其涉及通信方法、服务端设备、客户端设备、装置及系统。



背景技术:

随着网络技术的不断发展,云技术的日益成熟,云计算网络得到了广泛的推广,使人们的生活和工作变得更加方便。目前,出于安全和性能的考虑,在云计算网络环境下不支持组播通信,因此,一些依赖组播通信的业务不能在云计算网络环境中运行,使得云计算网络的应用受到了限制。



技术实现要素:

为了解决上述技术问题,本申请提供了一种通信方法、服务端设备、客户端设备、装置及系统。

根据本申请实施例的第一方面,提供一种通信方法,应用于云计算网络,所述方法包括:

至少部分地响应于捕获到待发送的组播数据信息,将所述组播数据信息转换成单播数据信息;

以单播的方式向目标客户端发送所述单播数据信息,以供所述目标客户端将所述单播数据信息还原回所述组播数据信息后向对应的目标应用发送所述组播数据信息。

根据本申请实施例的第二方面,提供一种通信方法,应用于云计算网络,所述方法包括:

响应于接收到单播数据信息,判断所述单播数据信息是否是由发送所述单播数据信息的服务端将组播数据信息转换而生成的;

若是,将所述单播数据信息还原成所述组播数据信息;

将所述组播数据信息发送给对应的目标应用。

根据本申请实施例的第三方面,提供一种服务端设备,应用于云计算网络,所述服务端设备包括:控制器,转换器,发送器;

其中,所述控制器至少部分地响应于捕获到待发送的组播数据信息,控制所述转换器将所述组播数据信息转换成单播数据信息;

所述发送器以单播的方式向目标客户端发送由所述转换器转换的单播数据信息,以供所述目标客户端将所述单播数据信息还原回所述组播数据信息后向对应的目标应用发送所述组播数据信息。

根据本申请实施例的第四方面,提供一种客户端设备,应用于云计算网络,所述客户端设备包括:控制器,处理器,发送器;

其中,所述控制器响应于接收到单播数据信息,判断所述单播数据信息是否是由发送所述单播数据信息的服务端将组播数据信息转换而生成的,若是,控制所述处理器将所述单播数据信息还原成所述组播数据信息;

所述发送器将所述组播数据信息发送给对应的目标应用。

根据本申请实施例的第五方面,提供一种通信装置,应用于云计算网络,所述装置包括:

转换单元,用于至少部分地响应于捕获到待发送的组播数据信息,将所述组播数据信息转换成单播数据信息;

发送单元,用于以单播的方式向目标客户端发送所述单播数据信息,以供所述目标客户端将所述单播数据信息还原回所述组播数据信息后向对应的目标应用发送所述组播数据信息。

根据本申请实施例的第六方面,提供一种通信装置,应用于云计算网络,所述装置包括:

判断单元,用于响应于接收到单播数据信息,判断所述单播数据信息是否是由发送所述单播数据信息的服务端将组播数据信息转换而生成的;

转换单元,用于在所述单播数据信息是由发送所述单播数据信息的服务端将组播数据信息转换而生成时,将所述单播数据信息还原成所述组播数据信息;

发送单元,用于将所述组播数据信息发送给对应的目标应用。

根据本申请实施例的第七方面,提供一种系统,所述系统包括:服务端设备以及客户端设备,所述服务端设备与所述客户端设备通过云计算网络进行通信;

其中,所述服务端设备如第三方面所述的服务端设备,或包括第五方面所述的装置;

所述客户端设备如第四方面所述的客户端设备,或包括第六方面所述的装置。

应用本申请实施例,通过将待发送的组播数据信息转换成单播数据信息,并以单播的方式发送给目标客户端,从而使依赖组播通信的业务也可以在云计算网络环境中运行,拓展了云计算网络的应用范围。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1为应用本申请实施例的示例性系统架构示意图;

图2为本申请通信方法的一个示意图;

图3为本申请通信方法的一个实施例流程图;

图4为本申请通信方法的另一个实施例流程图;

图5为本申请通信装置所在设备的一种硬件结构图;

图6为本申请服务端设备的一个实施例框图;

图7为本申请客户端设备的一个实施例框图;

图8为本申请通信装置的一个实施例框图;

图9为本申请通信装置的另一个实施例框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

参见图1,为应用本申请实施例的示例性系统架构示意图:

如图1所示,系统架构100可以包括服务端设备101、云计算网络102、客户端设备103、104、105。

云计算网络102为应用于云计算平台的网络,用于在服务端设备101和客户端设备103、104、105之间提供通信链路的介质。云计算网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。需要说明的是,云计算网络102不支持以组播的方式传输数据信息,但可以支持以单播的方式传输数据信息。

服务端设备101为运行服务端程序的服务器,可以是各种类型的服务器(如可以是计算服务器,也可以是存储服务器等)。客户端设备103、104、105为运行客户端程序的服务器,也可以是各种类型的服务器(如可以是计算服务器,也可以是存储服务器等)。服务端程序和客户端程序均可以是运行于linux系统netfilter机制下的程序。其中,netfilter为linux内核中的一个软件框架,可以在网络流程的某些位置定义一些钩子点,以方便对网络中的数据信息进行处理。

应该理解,图1中的服务端设备、云计算网络和客户端设备的数目仅仅是示意性的。根据实现需要,可以具有任意数目的服务端设备、云计算网络和客户端设备。

基于图1示出的系统架构,在本申请实施例中,服务端设备101可以通过云计算网络102与客户端设备103、104、105进行交互,以接收或发送数据信息等。如图2所示,当服务端设备获取到待发送的组播数据信息时,可以将待发送数据信息转换成单播数据信息。然后,以单播的方式通过云计算网络向目标客户端设备发送该单播数据信息。目标客户端设备在接收到该单播数据信息时,若判断出该单播数据信息是由服务端设备将组播数据信息转换而生成的,则将该单播数据信息还原回原来的组播数据信息,并将该组播数据信息传输给对应的目标应用。

下面将结合具体的实施例对本申请进行详细描述。

参见图3,为本申请通信方法的一个实施例流程图,该实施例可以应用于云计算网络中的服务端设备中,包括如下步骤:

在步骤301中,至少部分地响应于捕获到待发送的组播数据信息,将该组播数据信息转换成单播数据信息。

在本实施例中,可以通过调用钩子函数捕获待发送的数据信息。具体来说,服务端设备可以是基于linux系统的设备。一般来说,在linux系统netfilter的机制下,整个网络流程的若干位置设置有一些钩子点,每个钩子点上可以注册一些钩子函数,这些钩子函数可以在数据信息流经协议栈到达钩子点的时候被调用。本实施例可以在数据信息被发送前,调用钩子函数捕获待发送的数据信息。

例如,以ipv4协议为例,预先设置有5个钩子点,分别为pre_routing,local_in,forward,local_out和post_routing。服务端可以在loacl_out钩子点处注册一个钩子函数,在数据信息将要被发送之前,会调用local_out对应的钩子函数,从而捕获到该数据信息。

在本实施例中,当捕获到待发送的数据信息后,需要确定该数据信息是否为组播数据信息。具体来说,首先,对待发送的数据信息进行解析,以获取该待发送的数据信息的目的地址。然后判断该目的地址是否为组播地址。若该目的地址为组播地址,则该待发送的数据信息为组播数据信息。一般来说,组播地址使用d类ip地址,d类ip地址的第一个字节以“1110”开始,是一个专门保留的地址,地址覆盖范围为224.0.0.0~239.255.255.255。因此,若目的地址在上述范围内,则说明该目的地址为组播地址。

在一种实现方式中,至少部分地响应于捕获到待发送的组播数据信息,将该组播数据信息转换成单播数据信息,可以是在捕获到待发送的组播数据信息时,直接将该组播数据信息转换成单播数据信息。

在另一种实现方式中,至少部分地响应于捕获到待发送的组播数据信息,将该组播数据信息转换成单播数据信息,还可以是在捕获到待发送的组播数据信息时,查找预存的散列表中是否记录有该组播数据信息的目的地址,若记录有该组播数据信息的目的地址,则再将该组播数据信息转换成单播数据信息。

具体来说,可以预先存储一份散列表,该散列表中记录有需要处理的业务对应的数据信息目的地址。可以以上述待发送的数据信息的目的地址为关键值,从该预存的散列表中查找是否记录有该目的地址。若从预存的散列表中查找出该目的地址,则说明需要进一步将该待发送的数据信息由组播数据信息转换成单播数据信息。若从预存的散列表中未查找出该目的地址,则可以忽略该待发送的数据信息。

在本实施例中,将上述待发送的数据信息由组播数据信息转换成单播数据信息。具体来说,首先可以获取目标客户端的ip地址,其中,目标客户端即为接收上述数据信息的客户端。将目标客户端的ip地址作为对应的单播地址,用上述单播地址替换上述组播数据信息的目的地址位上的组播地址,然后重新计算校验和(校验和相当于数据信息的签名,数据信息的字段变了,校验和也要跟着变,如果校验和不正确,会导致丢失数据信息,所以需要重新计算校验和),以转换成单播数据信息。由于目标客户端可以有多个,因此,可以将组播地址换成多个单播数据信息,每个单播数据信息对应一个目标客户端的单播地址。

在本实施例中,预存的ip列表中记录有组播数据信息的目的地址与关联的组播组成员的ip地址的映射关系。可以从预存的ip列表中查找与上述目的地址关联的组播组成员的ip地址,每个组播组成员的ip地址即为每个目标客户端的ip地址。

在步骤302中,以单播的方式向目标客户端发送该单播数据信息。

在本实施例中,服务端可以通过云计算网络以单播的方式向目标客户端发送该单播数据信息。该目标客户端接收到该单播数据信息后,将该单播数据信息还原回组播数据信息,并向对应的目标应用发送该组播数据信息。

应用上述实施例,通过将待发送的组播数据信息转换成单播数据信息,并以单播的方式发送给目标客户端,从而使依赖组播通信的业务也可以在云计算网络环境中运行,拓展了云计算网络的应用范围。

参见图4,为本申请通信方法的另一个实施例流程图,该实施例可以应用于云计算网络中的客户端设备中,包括如下步骤:

在步骤401中,响应于接收到单播数据信息,判断该单播数据信息是否是由发送所述单播数据信息的服务端将组播数据信息转换而生成的。

在步骤402中,若是,将该单播数据信息还原成所述组播数据信息。

在本实施例中,当客户端接收到单播数据信息时,需要判断该单播数据信息是否是由发送上述单播数据信息的服务端将组播数据信息转换而生成的。如果是由该服务端将组播数据信息转换而生成的,则需要将该单播数据信息还原成原来的组播数据信息。因为,原来的组播数据信息对应的业务在应用层默认只支持组播数据信息,如果在应用层接收到的是单播数据信息,就有可能导致丢失数据信息或出错,因此,需要将单播数据信息还原成原来的组播数据信息。如果不是由该服务端将组播数据信息转换而生成的,则可以按照该单播数据信息的目的地址继续将该单播数据信息发送到对应的应用。

在本实施例中,可以通过如下方式判断单播数据信息是否是由上述服务端将组播数据信息转换而生成的。首先,可以判断单播数据信息是否为遵从预定传输层协议的数据信息,该预定传输层协议支持组播。具体来说,可以由客户端在pre_routing钩子点注册一个钩子函数,当数据信息刚被接收到时,会调用pre_routing的钩子函数捕获该单播数据信息。然后,从该单播数据信息中解析出单播数据信息的传输层协议。判断该单播数据信息的传输层协议是否为预定传输层协议。若该单播数据信息的传输层协议为预定传输层协议,则该单播数据信息为遵从预定传输层协议的数据信息。其中,该预定传输层协议可以是udp(userdatagramprotocol,用户数据报协议)协议。

接着,如果确定该单播数据信息为遵从预定传输层协议的数据信息,则从该单播数据信息中解析出单播数据信息对应的单播地址及目的端口号。然后,从预存的散列表中查找是否记录有与上述单播地址及目的端口号关联的组播地址。若记录有与上述单播地址及目的端口号关联的组播地址,则确定该单播数据信息是由发送上述单播数据信息的服务端将组播数据信息转换而生成的。因为,如果该单播数据信息是由组播数据信息转换生成的,则在预存的散列表中会记录有该单播数据信息对应的组播地址,并且,其对应的组播地址与其对应的单播地址及目的端口号相关联。

在本实施例中,可以通过如下方式将该单播数据信息还原成对应的组播数据信息。首先,从预存的散列表中获取与上述单播地址及目的端口号关联的组播地址。然后,用上述组播地址替换上述单播数据信息的目的地址位上的单播地址,再重新计算校验和,以将上述单播数据信息还原成对应的组播数据信息。

在步骤403中,将该组播数据信息发送给对应的目标应用。

应用上述实施例,通过将待发送的组播数据信息转换成单播数据信息,并以单播的方式发送给目标客户端,从而使依赖组播通信的业务也可以在云计算网络环境中运行,拓展了云计算网络的应用范围。

应当注意,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

下面结合一个完整的通信方法应用实例,对本申请方案进行示意性说明。

应用场景可以为:服务端设备a通过云计算网络向客户端设备b发送组播数据信息的过程。

具体来说,首先,可以在服务端设备a中预先注册一个钩子函数,在待发送的数据信息被发送之前,可以调用钩子函数捕获到该数据信息。获取该数据信息的目的地址,判断该目的地址是否为组播地址。若该目的地址为组播地址,则确定该待发送的数据信息为组播数据信息。

接着,服务端设备a可以查找预存的散列表中记录的信息,如果该散列表中记录有上述组播数据信息的目的地址,则可以将该组播数据信息转换成单播数据信息。具体地,可以从预存的ip列表中查找与上述组播数据信息的目的地址关联的组播组成员的ip地址,作为对应的单播地址,用单播地址替换组播数据信息的目的地址位上的组播地址,以转换成单播数据信息。

继而,服务端设备a可以通过云计算网络以单播的方式向客户端设备b发送该单播数据信息。可以在客户端设备b中预先注册一个钩子函数,在接收到服务端设备a发送的单播数据信息时,可以调用该钩子函数捕获到该单播数据信息。

最后,从该单播数据信息中解析出传输层协议,若确定该传输层协议为预定传输层协议(如,udp协议),则从该单播数据信息中解析出对应的单播地址及目的端口号。如果预存的散列表中记录有与上述单播地址及目的端口号关联的组播地址,则说明该单播数据信息是由服务端设备a将组播数据信息转换而生成的。将该单播数据信息还原成上述组播数据信息,并将该组播数据信息发送给对应的目标应用。

可见,应用上述方案,对于上层的组播业务来说整个通信过程是透明的,感知不到组播数据信息与单播数据信息的相互转换。因此,依赖组播通信的业务也可以在云计算网络环境中运行,就像运行在支持组播的网络环境中,拓展了云计算网络的应用范围。

与本申请通信方法的实施例相对应,本申请还提供了服务端设备、客户端设备及通信装置的实施例。

本申请通信装置的实施例可以应用在设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本申请通信装置501所在设备500的一种硬件结构图,设备500包括处理器502、内存503、网络接口504、非易失性存储器505以及内部总线506,其中,处理器502、内存503、网络接口504以及非易失性存储器505相互之间可以通过内部总线506进行通信。除了图5所示的处理器502、内存503、网络接口504、非易失性存储器505以及内部总线506之外,实施例中装置所在的设备500通常根据该设备的实际功能,还可以包括其他硬件,图5中不再一一示出。

参见图6,为本申请服务端设备的一个实施例框图。

该服务端设备应用于云计算网络,包括:控制器601,转换器602和发送器603。

其中,控制器601至少部分地响应于捕获到待发送的组播数据信息,控制转换器602将组播数据信息转换成单播数据信息。

发送器603以单播的方式向目标客户端发送由转换器602转换的单播数据信息,以供目标客户端将单播数据信息还原回组播数据信息后向对应的目标应用发送该组播数据信息。

在一个可选的实现方式中,服务端设备还可以包括:中央处理器(图6中未示出)。其中,中央处理器调用钩子函数捕获所述待发送的组播数据信息。

在另一个可选的实现方式中,控制器601配置用于:响应于捕获到待发送的组播数据信息,查找预存的散列表中是否记录有上述组播数据信息的目的地址。若是,则控制转换器602将该组播数据信息转换成单播数据信息。

在另一个可选的实现方式中,转换器602配置用于:获取目标客户端的ip地址,作为对应的单播地址。用上述单播地址替换组播数据信息的目的地址位上的组播地址,以转换成单播数据信息。

在另一个可选的实现方式中,转换器602从预存的ip列表中查找与上述组播数据信息的目的地址关联的组播组成员的ip地址,作为对应的单播地址。其中,该组播组成员的ip地址为目标客户端的ip地址。

参见图7,为本申请客户端设备的一个实施例框图。

该客户端设备应用于云计算网络,包括:控制器701,处理器702和发送器703。

其中,控制器701响应于接收到单播数据信息,判断该单播数据信息是否是由发送该单播数据信息的服务端将组播数据信息转换而生成的,若是,控制处理器702将该单播数据信息还原成上述组播数据信息。发送器703将该组播数据信息发送给对应的目标应用。

在一个可选的实现方式中,控制器701配置用于:判断上述单播数据信息是否为遵从预定传输层协议的数据信息,该预定传输层协议支持组播。若是,从该单播数据信息中解析出对应的单播地址及目的端口号。查找预存的散列表中是否记录有与该单播地址及目的端口号关联的组播地址。若是,则该单播数据信息是由发送该单播数据信息的服务端将组播数据信息转换而生成的。

在另一个可选的实现方式中,控制器701通过如下方式判断单播数据信息是否为遵从预定传输层协议的数据信息:调用钩子函数捕获单播数据信息。从单播数据信息中解析出对应的传输层协议。判断该单播数据信息的传输层协议是否为预定传输层协议,若是,则该单播数据信息为遵从预定传输层协议的数据信息。

在另一个可选的实现方式中,预定传输层协议包括用户数据报协议udp。

在另一个可选的实现方式中,处理器702配置用于:从预存的散列表中获取与单播地址及目的端口号关联的组播地址。用该组播地址替换上述单播数据信息的目的地址位上的单播地址,以将该单播数据信息还原成上述组播数据信息。

参见图8,为本申请一种通信装置的一个实施例框图。

该装置应用于云计算网络,包括:转换单元801和发送单元802。

其中,转换单元801,用于至少部分地响应于捕获到待发送的组播数据信息,将该组播数据信息转换成单播数据信息。

发送单元802,用于以单播的方式向目标客户端发送该单播数据信息,以供该目标客户端将该单播数据信息还原回上述组播数据信息后向对应的目标应用发送该组播数据信息。

在一个可选的实现方式中,该装置还包括:捕获单元(图8中未示出)。

其中,捕获单元,用于调用钩子函数捕获待发送的组播数据信息。

应当理解,上述装置可以预先设置在服务端设备中,也可以通过下载等方式而加载到服务端设备中。上述装置中的相应模块单元可以与服务端设备中的模块单元相互配合以实现本申请的通信方案。

参见图9,为本申请另一种通信装置的一个实施例框图。

该装置应用于云计算网络,包括:判断单元901,转换单元902和发送单元903。

其中,判断单元901,用于响应于接收到单播数据信息,判断单播数据信息是否是由发送该单播数据信息的服务端将组播数据信息转换而生成的。

转换单元902,用于在单播数据信息由发送该单播数据信息的服务端将组播数据信息转换而生成时,将单播数据信息还原成上述组播数据信息。

发送单元903,用于将该组播数据信息发送给对应的目标应用。

应当理解,上述装置可以预先设置在客户端设备中,也可以通过下载等方式而加载到客户端设备中。上述装置中的相应模块单元可以与客户端设备中的模块单元相互配合以实现本申请的通信方案。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

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