一种消息传输方法、装置、设备及介质与流程

文档序号:16926330发布日期:2019-02-22 19:53阅读:168来源:国知局
一种消息传输方法、装置、设备及介质与流程

本发明涉及互联网技术领域,尤其涉及一种消息传输方法、装置、设备及介质。



背景技术:

随着互联网技术的快速发展,越来越多的网络应用出现,这些网络应用可以帮助我们解决很多日常的需求。这些网络应用通常分为客户端和服务器端,它们之间相互通信,如通过网络下发和应答相应的指令消息。这些指令消息的传输非常重要,如果指令消息的传输出现问题,网络应用后续的操作都无法进行。

为了保证消息传输的可靠性,目前多数应用的指令消息是根据传输控制协议(transmissioncontrolprotocol,tcp)来进行传输的。但是,直接采用tcp进行传输,在遇到高丢包、网络抖动时会出现拥堵和超大延时的问题,在网络带宽低时还往往会出现消息传输超时的问题,影响消息传输质量和传输效果。



技术实现要素:

有鉴于此,本发明实施例提供一种消息传输方法、装置、设备及介质,以基于用户数据报协议(userdatagramprotocol,udp)加强网络应用的消息传输质量,提高传输效果。

第一方面,本发明实施例提供了一种消息传输方法,包括:从网络应用的消息队列中提取待发送指令消息,其中,所述待发送指令消息为所述消息队列中优先级最高的原始指令消息;将所述待发送指令消息拆分为发送单元;依据所述发送单元生成单元数据包;依据预设的用户数据报协议udp,发送所述单元数据包。

可选地,上述消息传输方法应用于发送端中,所述发送端包含传输层和业务层;所述业务层,用于从网络应用的消息队列中提取待发送指令消息,并将所述待发送指令消息拆分为发送单元;所述传输层,用于依据所述发送单元生成单元数据包,并依据预设的用户数据报协议udp发送所述单元数据包;

其中,在所述业务层从网络应用的消息队列中提取待发送指令消息之前,该方法还包括:所述传输层检测重传队列是否为空队列;若所述重传队列存有重传序号,则从所述重传队列中提取目标重传序号,并从已发送队列中提取所述目标重传序号对应的已发送数据包,以及重发所述已发送数据包,所述目标重传序号为所述重传队列中优先级最高的重传序号;若所述重传队列为空队列,则触发所述业务层执行从所述消息队列中提取待发送指令消息的步骤;若所述重传队列存有重传序号,则从所述重传队列中提取目标重传序号。

可选地,所述检测重传队列是否为空队列之前,还包括:检测网络应用对应的瓶颈带宽和数据包的往返时延;依据所述瓶颈带宽和所述往返时延,确定可发送包数量;当所述可发送包数量为大于零的整数时,执行所述检测重传队列是否为空队列的步骤。

可选地,所述方法还包括:所述传输层接收确认数据包,其中,所述确认数据包携带有确认序号;依据所述确认序号确定丢包序号;将所述丢包序号添加到所述重传队列中,以作为重传序号。

可选地,在所述传输层发送所述单元数据包之后,还包括:将所述单元数据包添加到已发送队列中,以记录为已发送数据包。在所述传输层接收确认数据包之后,还包括:检测所述确认序号是否属于所述已发送数据包的连续序号;若所述确认序号属于连续序号,则从所述已发送队列中删除所述确认序号对应的已发送数据包;否则,执行依据所述确认序号确定丢包序号的步骤。

可选地,当所述确认序号属于连续序号,所述方法还包括:从所述重传队列中删除与所述确认序号相同的重传序号。

可选地,所述传输层在重发所述已发送数据包之前,还包括:检测当前时间是否在所述已发送数据包对应的发送时间范围内;若当前时间在所述发送时间范围内,则执行所述重发所述已发送数据包的步骤;若所述当前时间超出所发送时间范围,则从所述已发送队列中删除所述已发送数据包,并从所述重传队列中删除所述目标重传序号。

可选地,所述单元数据包携带有所述发送单元对应的指令信息和关联包信息,所述关联包信息用于确定所述单元数据包的关联数据包。

第二方面,本发明实施例还提供了另一种消息传输方法,包括:依据预设的用户数据报协议udp,接收单元数据包,其中,所述单元数据包为网络应用依据发送单元生成的,所述发送单元为所述网络应用通过拆分原始指令消息得到的;依据所述单元数据包合成所述原始指令消息。

可选地,第二方面所述的消息传输方法应用于接收端,所述接收端包含传输层和业务层;所述传输层,用于依据预设的用户数据报协议udp接收所述单元数据包;所述业务层,用于依据所述单元数据包合成所述原始指令消息;

其中,所述业务层依据所述单元数据包合成所述原始指令消息包括:读取所述单元数据包中携带的关联包信息;依据所述关联包信息确定所述单元数据包的关联数据包;基于所述单元数据包中携带的指令信息和所述关联数据包中携带的指令信息,合成所述原始指令消息。

可选地,在所述传输层接收单元数据包之后,还包括:将所述单元数据包中携带的序号作为确认序号;依据所述确认序号生成所述单元数据包对应的确认数据包;发送所述确认数据包。

第三方面,本发明实施例还提供了一种消息传输装置,包括:

指令消息提取模块,用于从网络应用的消息队列中提取待发送指令消息,其中,所述待发送指令消息为所述消息队列中优先级最高的原始指令消息;

指令消息拆分模块,用于将所述待发送指令消息拆分为发送单元;

数据包生成模块,用于依据所述发送单元生成单元数据包;

数据包发送模块,用于依据预设的用户数据报协议udp,发送所述单元数据包。

可选地,上述消息传输装置应用于发送端,所述发送端包含传输层和业务层;上述指令消息提取模块和指令消息拆分模块可以集成在业务层中,数据包生成模块和数据包发送模块可以集成在业务层中。此外,上述消息传输装置还包括:重传队列检测模块和重传模块,且该重传队列检测模块和重传模块均可以集成在传输层中。其中,重传队列检测模块,用于检测重传队列是否为空队列;若所述重传队列为空队列,则触发业务层中的指令消息提取模块执行从所述消息队列中提取待发送指令消息的步骤;若所述重传队列存有重传序号,则触发重传模块从所述重传队列中提取目标重传序号,所述目标重传序号为所述重传队列中优先级最高的重传序号。重传模块,用于从已发送队列中提取所述目标重传序号对应的已发送数据包;并触发所述数据包发送模块重发所述已发送数据包。

可选地,上述消息传输装置还包括如下模块:

网络检测模块,用于测检网络应用对应的瓶颈带宽和数据包的往返时延;

可发送包数量确定模块,用于依据所述瓶颈带宽和所述往返时延,确定可发送包数量;当所述可发送包数量为大于零的整数时,触发上述重传队列检测模块执行检测重传队列是否为空队列的步骤。

可选地,上述消息传输装置还可以包括:确认数据包接收模块、丢包序号确定模块和重传队列模块。确认数据包接收模块、丢包序号确定模块和重传队列模块均可以集成在在传输层中。确认数据包接收模块,用于接收确认数据包,其中,所述确认数据包携带有确认序号;丢包序号确定模块,用于依据所述确认序号确定丢包序号;重传队列模块,用于将所述丢包序号添加到重传队列中,以作为重传序号。

可选地,上述消息传输装置还可以包括:已发送队列模块和确认序号检测模块。已发送队列模块和确认序号检测模块也可以集成在传输层中。其中,已发送队列模块可以用于将所述数据包发送模块发送的单元数据包添加到已发送队列中,以记录为已发送数据包。确认序号检测模块可以用于检测所述确认序号是否属于所述已发送数据包的连续序号;若所述确认序号属于连续序号,则触发已发送队列模块从已发送队列中删除所述确认序号对应的已发送数据包;否则,可以触发丢包序号确定模块执行依据所述确认序号确定丢包序号的步骤。

可选地,当所述确认序号属于连续序号,重传队列模块还用于从所述重传队列中删除与所述确认序号相同的重传序号。

可选地,上述消息传输装置还可以包括:发送时间检测模块。该时间检测模块,可以集成在传输中,并可用于检测当前时间是否在已发送数据包对应的发送时间范围内;若当前时间在所述发送时间范围内,则可以触发数据包发送模块重发所述已发送数据包的步骤;若所述当前时间超出所发送时间范围,则触发已发送队列模块从所述已发送队列中删除所述已发送数据包,并可触发重传队列模块从所述重传队列中删除所述目标重传序号。

可选地,单元数据包携带有所述发送单元对应的指令信息和关联包信息,所述关联包信息可以用于确定所述单元数据包的关联数据包。

第四方面,本发明实施例还提供了一种设备,包括:处理器和存储器;所述存储器中存储有至少一条指令,所述指令由所述处理器执行,使得所述设备执行如第一方面所述的消息传输方法。

第五方面,本发明实施例还提供了一种计算机可读存储介质,所述存储介质中的指令由设备的处理器执行时,使得设备能够执行如第一方面所述的消息传输方法。

第六方面,本发明实施例还提供了另一种消息传输装置,包括:

数据包接收模块,用于依据预设的用户数据报协议udp,接收单元数据包,其中,所述单元数据包为网络应用依据发送单元生成的,所述发送单元为所述网络应用通过拆分原始指令消息得到的;

指令消息合成模块,用于依据所述单元数据包合成所述原始指令消息。

可选地,第六方面所述的消息传输装置应用于接收端,所述接收端包含传输层和业务层;其中,数据包接收模块可以集成在传输层中;指令消息合成模块可以集成在业务层。集成在业务层中的指令消息合成模块可以包括如下子模块:

数据包读取子模块,用于读取所述单元数据包中携带的关联包信息;

关联数据包确定子模块,用于依据所述关联包信息确定所述单元数据包的关联数据包;

消息合成子模块,用于基于所述单元数据包中携带的指令信息和所述关联数据包中携带的指令信息,合成所述原始指令消息。

可选地,应用于接收端中的消息传输装置还可以包括:确认序号模块、确认数据包生成模块以及确认数据包发送模块。确认序号模块、确认数据包生成模块以及确认数据包发送模块均可以集成在接收端的传输层中。其中,确认序号模块,用于将所述单元数据包中携带的序号作为确认序号;确认数据包生成模块,用于依据所述确认序号生成所述单元数据包对应的确认数据包;确认数据包发送模块,用于发送所述确认数据包。

第七方面,本发明实施例还提供了一种设备,包括:处理器和存储器;所述存储器中存储有至少一条指令,所述指令由所述处理器执行,使得所述设备执行如第二方面所述的消息传输方法。

第八方面,本发明实施例还提供了一种计算机可读存储介质,所述存储介质中的指令由设备的处理器执行时,使得设备能够执行如第二方面所述的消息传输方法。

采用本发明实施例,在从网络应用的消息队列中提取出优先级最高的原始指令消息,作为待发送指令消息后,可以在将网络应用的待发送指令消息拆分为发送单元,以保证优先级最高的消息能够尽快传输,随后可依据该发送单元生成单元数据包,以及依据udp发送该单元数据包,从而可以避免tcp遇到的问题,进而能够避免网络应用的传输出现异常导致网络应用后续的操作无法进行的问题,保证网络应用能够正常操作。

进一步而言,本发明实施例不仅能够避免tcp遇到高丢包、网络抖动和超大延时的问题,还能保证优先级高的指令消息能够尽快传输,提高传输质量。

附图说明

图1是本发明的一种消息传输方法实施例的步骤流程示意图;

图2是本发明实施例的一种消息传输方法中接收端的步骤流程示意图;

图3是本发明一个可选实施例中发送端的消息传输方法的步骤流程示意图;

图4是本发明一个可选实施例中接收端的消息传输方法的步骤流程示意图;

图5是本发明实施例中的发送端与接收端进行消息传输的示意图;

图6是本发明实施例中的一种消息传输装置的结构方框示意图;

图7是本发明一个示例中的一种设备的结构方框示意图;

图8是本发明实施例中的另一种消息传输装置实施例的结构方框示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构或组成。

发明人在实现本发明时发现,网络应用直接采用tcp来进行传输存在以下缺点:一是不可控,tcp多由操作系统内核实现,比较难根据自身业务做调整;二是tcp是顺序发送,前面的数据包传不到,后面的数据包就无法传输,出现拥堵问题;三是网络环境如果是高丢包网络环境,tcp的发送速率往往会受到丢包影响而变低。为了避免tcp遇到高丢包、网络抖动时会出现拥堵和超大延时的问题,现有网络应用通常采用另一种技术方案——用加了丢包重传的udp去传输,即通过udp来传输指令消息,加上丢包对抗技术,使本身不具备可靠性的udp变的可靠,但是这种技术方案的缺点就是没法根据网络环境调整发包速率,可能会造成网络拥堵,最终传输效果可能还不如用tcp来传输。

为了避免tcp遇到的问题和解决udp发送时的拥塞问题,本发明实施例基于udp提出了一种新的消息传输方法。

参照图1,示出了本发明的一种消息传输方法实施例的步骤流程示意图,具体可以包括如下步骤:

步骤110,从网络应用的消息队列中提取待发送指令消息,其中,所述待发送指令消息为所述消息队列中优先级最高的原始指令消息。

具体的,本发明实施例在确定出可发送数据包时,可以从网络应用的消息队列中提取出优先级最高的原始指令消息,以作为当前的待发送指令消息。其中,原始指令消息可以是指网络应用所需要发送的指令消息,具体可以包括网络应用依据操作生成的指令消息、携带指令参数的信令消息等,本发明实施例对此不作具体限制。

需要说明的是,本发明实施例中的网络应用可以将需要发送的指令消息,如依据输入操作生成的指令消息、携带有指令参数的信令消息等,添加到消息队列中,以等待发送。

步骤120,将所述待发送指令消息拆分为发送单元。

具体而言,本发明实施例在获取到待发送指令消息后,可以对待发送指令消息进行拆分,得到拆分后的发送单元,以按照发送单元为单元进行消息传输。其中,发送单元可以是指将待发送指令消息拆分后的一个部分。例如,在待发送指令消息包括三部分数据的情况下,可以将该待发送指令消息拆分为两个或两个以上的发送单元,如可以将该发送指令消息中的第一部分数据作为拆分后得到的第一个发送单元,将发送指令消息中的第二部分数据和第三部分数据作为拆分后得到的第二个发送单元;又如,可以将该发送指令消息中的第二部分数据和第一部分数据作为拆分后得到的第一个发送单元,将发送指令消息中的第三部分数据作为拆分后得到的第二个发送单元;或者,可以将该发送指令消息中的第一部分数据作为拆分后得到的第一个发送单元,将发送指令消息中的第二部分数据作为拆分后得到的第二个发送单元,以及,将发送指令消息中的第三部分数据作为拆分后得到的第三个发送单元等。

步骤130,依据所述发送单元生成单元数据包。

具体的,本发明实施例在拆分出待发送消息对应的发送单元后,可采用该发送单元生成对应的单元数据包,以采用数据包的形式对发送单元进行传输。

步骤140,依据预设的用户数据报协议udp,发送所述单元数据包。

具体的,本发明实施例可以按照用户数据报协议生成的发送数据包进行发送,以将该发送单元数据包传输给接收端,使得接收端可以接收到该单元数据包,达到传输目的。

在实际处理中,可以将传输消息的两端分为发送端和接收端。其中,发送端可以将需要发送的各种消息,如网络应用所需要发送的指令消息、信令消息、确认字符(acknowledgement,ack)等,发送给对端。对端作为接收端,在接收到发送端所发送的消息后,可以依据接收到的消息进行处理,如结合上述例子,作为接收端的对端在接收到发送端所发送的指令消息后,可以将指令消息上传给网络应用,以通过网络应用执行该指令消息所指定的指令操作。

在上述实施例的基础上,本发明实施例还提供应用于接收端的消息传输方法,如图2所述,该消息传输方法具体可以包括如下步骤:

步骤210,依据预设的用户数据报协议udp,接收单元数据包,其中,所述单元数据包为网络应用依据发送单元生成的,所述发送单元为所述网络应用通过拆分原始指令消息得到的。

在具体实现中,本发明实施例中的接收端可以按照数据报协议与发送端进行通讯,亦即可以按照数据报协议接收发送端所发送的各种数据包,如接收到发送端所发送的单元数据包。

步骤220,依据所述单元数据包合成所述原始指令消息。

具体的,本发明实施例中的接收端在接收到单元数据包后,可以依据接收到的单元数据包中所包含的数据生成该单元数据包所对应的原始指令消息,从可以依据原始指令消息触发接收端或该接收端所安装的网络应用执行相应的操作,保证网络应用的正常操作。

综上,采用本发明实施例提供的消息传输方法,可以从网络应用的消息队列中提取待发送指令消息,且该待发送指令消息可以为网络应用的消息队列中优先级最高的原始指令消息,从而可以保证优先级最高的消息能够尽快传输,提高传输质量;并在将网络应用的待发送指令消息拆分为发送单元后,可以依据该发送单元生成单元数据包,随后可依据udp发送该单元数据包,从而可以避免tcp遇到的问题。由此可见,本发明实施例不仅能够避免tcp遇到的问题的,还能保证优先级高的指令消息能够尽快传输,进而能够避免网络应用的传输出现异常导致网络应用后续的操作无法进行的问题,保证网络应用能够正常操作。

在具体实现中,可以将网络应用的消息传输分为两层,分别为上层a和下层b,其中,上层a可称为业务层,下层b可以称为传输层。业务层在获取到网络应用的数据后,可以先对获取到的数据进行处理,如在获取到网络应用中需要发送的原始指令消息后,可以按照消息发送的及时性划分获取到原始指令消息的优先级,并可以从优先级最高的原始指令消息中拆分出一个或多个发送单元,传输给传输层,以通过传输层对该发送单元进行传输。传输层可以用于传输数据包,如可以传输两种数据包,其中一种数据包可以是依据业务层发送的发送单元生成的单元数据包,以通过该单元数据包将发送单元发送出去;另一种数据包可以是确认数据包,该确认数据包携带有ack,使得发送端可以确认其所发送的数据包已成功传输到对端。若发送端在一定时间内没有接收到已发送的数据包对应的确认数据包,则可以认为在传输过程中丢失数据包,可以将该数据包添加到重传队列(resendlist)中,以便后续可以基于该重传队列实现丢失的数据包的重传。

在本发明一个可选实施例中,接收端和发送端可以均可以包含有传输层和业务层。其中,发送端的业务层,用于从网络应用的消息队列中提取待发送指令消息,并将所述待发送指令消息拆分为发送单元;发送端的传输层,用于依据所述发送单元生成单元数据包,并依据预设的用户数据报协议udp发送所述单元数据包;接收端的传输层用于依据预设的用户数据报协议udp接收所述单元数据包;以及,接收端的业务层用于依据所述单元数据包合成所述原始指令消息。

具体而言,发送端中的业务层可以从于从网络应用的消息队列中提取待发送指令消息,并将所述待发送指令消息拆分为发送单元,使得发送端中的传输层可以依据所述发送单元生成单元数据包。发送端中的传输层在生成单元数据包后,可以依据预设的用户数据报协议udp发送所述单元数据包,使得接收端的传输层可以接收到该单元数据包。接收端的传输层可以依据预设的用户数据报协议udp接收单元数据包,并可以将该单元数据包传输给接收端的业务层,使得接收端的业务层可以依据单元数据包合成所述原始指令消息,提供给网络应用,完成网络应用的消息传输。此外,接收端的传输层在接收到单元数据包后,可以将该单元数据包中携带的序号作为该单元数据包对应的确认序号,并将该确认序号返回给发送该单元数据包的发送端的传输层,使得发送端的传输层可以依据该确认序号确定已发送的数据包是否丢失。

基于上述划分的业务层和传输层,下文分别论述发送端和接收端的消息传输方法的步骤。

在实际处理中,发送端的传输层在确定出可发送数据包后,可以通过检测重传队列是否为空队列,即检测重传队列是否存放有重传序号,来确定是否需要重传。当重传队列存放有重传序号,可以确定当前需要重传该重传序号对应的数据包;当重传队列为空队列,即重传队列中没有存放有重传序号,可以确定当前不需要重传。因此,在本发明的一个可选实施例中,在业务层从网络应用的消息队列中提取待发送指令消息之前,发送端的传输层可以检测重传队列是否为空队列;若所述重传队列存有重传序号,则从所述重传队列中提取目标重传序号,并从已发送队列中提取所述目标重传序号对应的已发送数据包,以及重发所述已发送数据包,所述目标重传序号为所述重传队列中优先级最高的重传序号;若所述重传队列为空队列,则触发所述业务层执行所述从网络应用的消息队列中提取待发送指令消息的步骤。

参照图3,示出了本发明一个可选实施例中发送端的消息传输方法的步骤流程示意图。应用于发送端的消息传输方法,具体可以包括如下步骤:

步骤302,检测重传队列是否为空队列。

在实际处理中,发送端的传输层在发送单元数据包之前,可以通过检测网络的传输状态来确定是否可以发送数据包,如可以通过检测网络的瓶颈带宽(bottleneckbandwidth,btlbw)和一个数据包的往返时延(round-triptime,rtt)来确定当前的可发送数据包数量,若当前的可发送数据包数量为零,则可以确定当前不可以发送数据包;若当前可发送数据包数量为大于零的数值,则可以确定当前可以发送数据包,随后执行检测重传队列是否为空队列的步骤,以确定是否需要进行数据包的重传,并可依据该可发送数据包数量进行数据包的发送。具体而言,当重传队列为空队列,如在发送数据包数量为零时,则可以执行步骤306;否则,可以确定重传队列存放有重传序号,执行步骤304。其中,瓶颈带宽btlbw可以依据网络的传输速率(deliveryrate)确定,本发明实施例对此不作具体限制。

本发明实施例中,可选地,传输层在检测所述重传队列是否为空队列之前,还可以检测网络应用对应的瓶颈带宽和数据包的往返时延;随后,可依据所述瓶颈带宽和所述往返时延,确定可发送包数量;当所述可发送包数量为大于零的整数时,执行上述步骤302。例如,发送端可以依据预设的拥塞控制协议,如一种基于瓶颈带宽和往返时延测量的拥塞控制协议(bottleneckbandwidthandround-trippropagationtime,bbr),检测网络应用对应的瓶颈带宽和数据包的往返时延;随后,可按照该拥塞控制协议所规定的算法,采用检测到的瓶颈带宽btlbw和往返时延rtt,确定出该网络应用的可发送包数量。若可发送包数量为零或者是小于零的整数,则可以确定当前没有空闲网络资源,即不可继续发送数据包;若可发送包数量为大于零的整数,则确定当前具有空闲网络资源,即发送端的传输层可以发送数据包,随后可执行上述步骤302,以检测resendlist是否为空队列。当resendlist为空队列,即在resendlist未存放有重传序号的情况下,触发业务层执行步骤306;当resendlist不为空队列,即在resendlist存放有重传序号的情况下,执行步骤304,以在有重传序号的情况下优先发送该重传序号对应的数据包。

步骤304,从所述重传队列中提取目标重传序号,并从已发送队列中提取所述目标重传序号对应的已发送数据包,以及重发所述已发送数据包。

具体的,发送端的传输层可以依据可发送包数量从重传队列中提取一个或多个优先级最高的重传序号,以作为目标重传序号;随后可在已发送队列中查找出目标重传序号所对应的已发送数据包,并可以从该已发送队列中提取出查找到的已发送数据包,然后可以按照udp,重新对提取到的已发送数据包进行发送,以完成该已发送数据包的重传。在完成已发送数据包的重传后,传输层可以返回执行步骤302,以在重传完已发送数据包后发送业务层传输过来的发送单元对应的单元数据包。

步骤306,从网络应用的消息队列中提取待发送指令消息。

在具体实现中,发送端的业务层可以按照消息发送的实时性要求,将网络应用中每个发送的指令消息按照p0、p1、p2这三个优先级进行划分,以确定每个发送的指令消息对应的优先级。其中,p0可以为最高的优先级;p2可以为最低的优先级。在确定出可发送数据包后,且不需要重传数据包时,发送端的业务层可以从消息队列中提取优先级最高的原始指令消息,以作为待发送指令消息,然后执行步骤308。

需要说明的是,本发明实施例中的网络应用在需要发送消息的时候,可以将需要发送的消息提交给发送端的业务层提供的接口,使得发送端的业务层可以通过该接口获取到网络应用所需要发送的消息,从而可以通过发送端的业务层将拆分该消息,得到的发送单元,并将该发送单元传输到发送端的传输层,以通过该发送端的传输层传输该发送单元对应的单元数据包。

步骤308,将所述待发送指令消息拆分为发送单元。

具体的,发送端的业务层在获取到待发送指令消息后,可以将该发送指令消息拆分为发送单元,并可以将拆分后得到的发送单元传输给传输层,以通过传输层实现该发送单元的传输。

步骤310,依据所述发送单元生成单元数据包。

具体的,发送端的传输层在接收到业务层所传输的发送单元后,可以依据该发送单元中所包含的数据进行封装,得到作为单元数据包的数据包。可选的,该单元数据包可以携带有所述发送单元对应的指令信息和关联包信息;关联包信息可以用于确定所述单元数据包的关联数据包;指令信息可以用于确定发送单元数据包对应的操作指令。

例如,在待发送指令消息拆分为2个发送单元后,可以依据这2个中的一个发送单元生成第一单元数据包,依据另一个发送单元生成第二单元数据包,且第一单元数据包和第二单元数据包均携带有关联包信息。具体的,可以依据该第一单元数据包携带的关联包信息,确定出该第一单元数据包的关联数据包为第二单元数据包,如该第一单元数据包携带的关联包信息为第二单元数据包的序号、标识等。同理,可以依据该第二单元数据包携带的关联包信息,确定出该第二单元数据包的关联数据包为第一单元数据包,如该第二单元数据包携带的关联包信息为第一单元数据包的序号、标识等。

步骤312,依据udp发送所述单元数据包。

具体的,发送端的传输层在生成单元数据包后,可以按照udp发送该单元数据包,使得接收对端可以接收到该单元数据包。接收端的传输层在接收到单元数据包后,可以从接收到的单元数据包中提取序号,并可以将该提取到的序号作为确认序号,以依据该序号生成单元数据包对应的确认数据包,随后可将确认数据包发送给发送端,使得发送端可以依据该确认数据包中携带的确认序号确定是否存在丢包现象。

在本实施例中,可选地,在所述传输层发送单元数据包之后,可以将该单元数据包添加到已发送队列中,以记录为已发送数据包。具体而言,发送端的传输层可以在每次发送单元数据包后,将发送的单元数据包记录下来,即在每次发送单元数据包时,将发送到的单元数据包放入到sentlist中,以将当前发送的单元数据包记录为已发送数据包。接收端的传输层在接收到发送端所发送的单元数据包后,可以基于该单元数据包所携带的序号生成确认数据包,并可将该单元数据包所携带的序号作为确认序号,随后按照ack协议,将携带确认序号的确认数据包返回给发送端,使得发送端可以依据该确认序号确定已发送的数据包是否丢失。

步骤314,传输层接收确认数据包,其中,所述确认数据包携带有确认序号。

步骤316,依据所述确认序号确定丢包序号,并将所述丢包序号添加到所述重传队列中,以作为重传序号。

需要说明的是,本发明实施例中的重传队列可以在发送端中传输层中,亦即,发送端中传输层可以对该重传队列进行操作。

具体而言,发送端中的传输层在接收到接收端所返回的确认数据包后,可以将该确认数据包所携带的确认序号与之前接收到的确认序号进行比较,以确定当前接收到的确认序号是否是历史接收到的确认序号对应的连续序号。若当前接收到的确认序号是历史接收到的确认序号对应的连续序号,则可以确定没有发生丢包现象,并可以将当前接收到的确认序号对应的数据包从已发送队列(sentlist)中删除。其中,sentlist可以用于确定发送端中已发送数据包,如在sentlist中存放是序号时,该在sentlist中存放的序号可以是发送端中已发送数据包的序号,如已发送的单元数据包的序号;又如,在sentlist中存放是数据包时,该在sentlist中存放的数据包可以是发送端中已发送数据包,如已发送的单元数据包等等。若当前接收到的确认序号不是历史接收到的确认序号对应的连续序号,则可以确定发生丢包现象,并可以基于该当前接收到的确认序号和历史接收到的确认序号,确定出丢包序号,该丢包序号可以是指丢失的数据包的序号,随后可将丢包序号添加到重传队列中,以将确定出的丢包序号作为重传序号,进而可以依据该丢包序号实现丢失数据包的重传,保证传输质量。

进一步而言,本实施例在传输层接收确认数据包之后,可以检测该确认数据包携带的确认序号是否属于所述已发送数据包的连续序号;若所述确认序号属于连续序号,则从所述已发送队列中删除所述确认序号对应的已发送数据包;否则,执行依据所述确认序号确定丢包序号的步骤。具体而言,发送端的传输层在接收到确认数据包后,可以通过解析该确认数据包,得到该确认数据所携带的确认序号,随后检测确认序号是否属于已发送数据包的连续序号,如可以基于已发送队列中存放的已发送数据包的序号确定当前接收到的确认序号是否属于已发送数据包的连续序号;或者,可以基于上一次接收到确认数据包所携带的确认序号,来确定本次接收到的确认数据包所携带的确认序号是否属于已发送数据包的连续序号。若本次接收到的确认序号属于已发送数据包的连续序号,则可以删除该确认序号对应的以发送数据包,以节省发送端资源。

作为本发明的一个示例,在上一次接收到确认数据包所携带的确认序号为2,而本次接收到的确认数据包所携带的确认序号为3时,可以确定本次接收到的确认数据包所携带的确认序号3属于已发送数据包的连续序号,进而可以确定本次接收到的确认序号所对应的已发送数据包已传输到接收端,随后基于可从已发送队列中删除本次接收到确认序号所对应的已发送数据包或者该已发送数据包的序号,如在sentlist中存放的是序号时,将sentlist中存放的与本次接收到确认序号相同的序号删除;又如,在sentlist中存放的是数据包时,按照本次接收到确认序号从sentlist中查找出对应的已发送数据并删除等。

若本次接收到的确认序号不属于已发送数据包的连续序号,如在上一次接收到确认数据包所携带的确认序号为2,而本次接收到的确认数据包所携带的确认序号为4或6,即在确定本次接收到的确认数据包所携带的确认序号2不属于已发送数据包的连续序号时,则可以基于该本次接收到的确认序号和上一次接收到确认序号确定出丢包序号,随后可将该丢包序号放入到重传队列中,作为重传序号,以便后续可以依据该丢包序号实现对丢失数据包的重传。其中,丢包序号可以用于表征丢失数据包,如可以是丢失的单元数据包的序号。

可选的,当所述确认序号属于连续序号,发送端可以从所述重传队列中删除与所述确认序号相同的重传序号。例如,发送端的传输层在重传数据包时,可以从重传队列resendlist中提取优先级最高的重传序号,随后可从已发送队列sendlist中提取该重传序号对应的单元数据包,以及在该单元数据对应的发送时间内重传该单元数据包,直到接收到该单元数据包对应的确认数据包。

可见,本发明实施例中发送端的传输层也可以从重传系列中删除与该确认序号相同的重传序号,以避免重复发送已传输到接收端的数据包,节省网络传输资源。

在实际处理中,本发明实施例中的接收端在所述传输层接收单元数据包之后,可以通过该传输层将接收到的单元数据包中携带的序号作为确认序号,并返回给发送端,使得发送端可以依据该确认序号确定是否存在丢包现象。可选地,接收端在所述传输层接收单元数据包之后,可以通过传输层,将该单元数据包中携带的序号作为确认序号;随后可依据所述确认序号生成所述单元数据包对应的确认数据包,并发送确认数据包。

参照图4,示出了本发明一个可选实施例中接收端的消息传输方法的步骤流程示意图。应用于接收端的消息传输方法,具体可以包括如下步骤:

步骤402,依据udp接收单元数据包。

具体的,在发送端的传输层按照udp发送单元数据包后,接收端的传输层可以按照udp接收到该单元数据包。该单元数据包可以为网络应用依据发送单元生成的,具体可以包括发送单元对应的指令信息和关联包信息等。

步骤404,将所述单元数据包中携带的序号作为确认序号,并依据所述确认序号生成所述单元数据包对应的确认数据包。

具体的,接收端的传输层在接收到单元数据包后,可以从接收到的单元数据包中提取该单元数据包所携带的序号,并可以将该提取到的序号作为确认序号,以依据该序号生成单元数据包对应的确认数据包。

步骤406,发送所述确认数据包。

接收端的传输层在生成确认数据包后,可将确认数据包发送给发送端,使得发送端可以依据该确认数据包中携带的确认序号确定是否存在丢包现象。

步骤408,依据所述单元数据包合成所述原始指令消息。

本发明实施例中,接收端的传输层可以将接收到的单元数据包传输给业务层,使得业务层可以依据该单元数据包合成原始指令消息。具体的,接收端的业务层可对该单元数据包进行解析,得到该单元数据包所携带的各种信息,如单元数据包中所包含的关联包信息、指令消息、该单元数据包携带的序号等,进而可以依据该关联包信息确定出与该单元数据包关联的数据包,即确定出该单元数据包的关联数据包,随后可依据该关联数据包所携带的信息和该单元数据包携带的信息还原出发送端所需要发送的原始指令消息。

进一步而言,业务层依据所述单元数据包合成所述原始指令消息具体可以包括:读取所述单元数据包中携带的关联包信息;依据所述关联包信息确定所述单元数据包的关联数据包;基于所述单元数据包中携带的指令信息和所述关联数据包中携带的指令信息,合成所述原始指令消息。

具体的,接收端的传输层在接收到单元数据包后,可以将该单元数据包传输给接收端的业务层,使得接收端的业务层可以依据该单元数据包合成原始指令消息。接收端的业务层在接收到传输层所传输的单元数据包后,可以从该单元数据包读取出关联包信息,以依据该关联包信息确定出该单元数据包的关联数据包,随后可分别读取关联数据包携带的指令消息和该单元数据包携带的指令信息,以采用读取出的指令消息合成网络应用的原始指令消息,以及将该原始指令消息提供给网络应用,使得网页应用可以依据该原始指令消息执行相应的指令操作,保证网络应用能够正常操作。

可见,本发明实施例中接收端的业务层能够依据单元数据包中携带的信息尽可能合成原始信令消息,不需要保持每个单元数据包的连续性,从而能够避免丢失的单元数据包对其不关联的单元数据包所造成的影响,提高传输质量。

参照图5,示出了本发明实施例中的发送端与接收端进行消息传输的示意图。如图5所示,本发明实施例提供的消息传输方法可以包括如下步骤:

步骤502,检测重传队列是否为空队列。

在实际处理中,发送端的传输层在确定出当前可以发送数据包后,可以检测重传队列是否为空队列的步骤,以确定是否需要进行数据包的重传。当重传队列为空队列,即在重传队列未存放有重传序号的情况下,执行步骤510;当重传队列不为空队列,即在重传队列存放有重传序号的情况下,执行步骤504。

步骤504,从所述重传队列中提取目标重传序号。

其中,目标重传序号可以为重传队列中优先级最高的重传序号。例如,在可发送包数量为大于零的数值时,发送端的传输层可以依据该可发送包数量从重传队列中提取一个或多个优先级最高的重传序号,以作为目标重传序号。

步骤506,从已发送队列中提取所述目标重传序号对应的已发送数据包。

具体的,发送端的传输层在提取出目标重传序号后,可以依据目标重传序号,在已发送队列中查找出该目标重传序号所对应的已发送数据包,并可以从该已发送队列中提取出查找到的已发送数据包,以作为需要重传的数据包。

步骤508,重发所述已发送数据包。

具体的,发送端的传输层在提取出需要重传的已发送数据包后,可以按照udp,重新对该已发送数据包进行发送,以完成该已发送数据包的重传。

在实际处理中,发送端中的每一个业务层拆出来发送单元对应的单元数据包可以设置有超时时间;当发送的该单元数据包当前时间超过了这个单元数据包的超时时间,可以不再发送这个单元数据包,并从sendlist里移除该单元数据包,以避免在到达该单元数据包的超时时间后重传该单元数据包;当发送的该单元数据包当前时间未超过这个单元数据包的超时时间,则可以按照预设的数据包重传规则一直重传该单元数据包,直到收到高单元数据包对应的确认数据包。

进一步而言,发送端在传输层重发已发送数据包之前,可以检测当前时间是否在所述已发送数据包对应的发送时间范围内;若当前时间在所述发送时间范围内,则执行所述重传所述已发送数据包的步骤;若所述当前时间超出所发送时间范围,则从所述已发送队列中删除所述已发送数据包,并从所述重传队列中删除所述目标重传序号。其中,发送时间范围可以用于表征数据包发送的超时时间,如在该数据包的发送时间范围内可以发送该数据包,而在该数据包的发送时间范围外就可以不发该数据包。

具体的,发送端的传输层在确定出需要重传的已发送数据包后,可以检测当前时间是否超过已发送数据包对应的发送时间范围;若当前时间在该已发送数据包对应的发送时间范围内,则可以执行步骤508,以实现该已发送数据包的重传,使得接收端可以接收到该数据包,即接收端执行步骤518;若当前时间超出该已发送数据包对应的发送时间范围,则可以从所述已发送队列中删除已发送数据包,并可以从重传队列中删除该已发送数据包对应的重传序号,即将目标重传序号从重传队列中移除,随后可返还执行步骤502,以确定是否有需要重传的数据包。

步骤510,从消息队列中提取待发送指令消息。

具体的,在发送端的传输层确定出可发送数据包后,且不需要重传数据包时,可以触发发送端的业务层从消息队列中提取优先级最高的原始指令消息,以作为待发送指令消息,然后执行步骤512。

步骤512,将所述待发送指令消息拆分为发送单元。

具体的,发送端的业务层在提取到待发送指令消息后,可以将该发送指令消息拆分为发送单元,并可以将拆分后得到的发送单元传输给传输层,以通过传输层实现该发送单元的传输。

步骤514,依据所述发送单元生成单元数据包。

具体的,发送端的传输层在接收到业务层所传输的发送单元后,可以依据该发送单元中所包含的数据进行封装,得到作为单元数据包的数据包。该单元数据包可以携带有所述发送单元对应的指令信息和关联包信息;关联包信息可以用于确定所述单元数据包的关联数据包;指令信息可以用于确定发送单元数据包对应的操作指令。

步骤516,依据udp发送所述单元数据包。

具体的,发送端的传输层按照udp发送该单元数据包,使得接收对端可以接收到该单元数据包。

步骤518,依据udp接收单元数据包。

具体的,在发送端的传输层按照udp发送单元数据包后,接收端的传输层可以按照udp接收到该单元数据包,并可将接收到单元数据传输给接收端的业务层。随后,接收端的业务层可以依据该单元数据包合成所述原始指令消息,如可依据udp对该单元数据包进行解析,得到该单元数据包所携带的各种信息,如单元数据包中所包含的关联包信息、指令消息、该单元数据包携带的序号等,进而可以依据该关联包信息确定出与该单元数据包关联的数据包,即确定出该单元数据包的关联数据包,随后可依据该关联数据包所携带的信息和该单元数据包携带的信息还原出发送端所需要发送的原始指令消息。

步骤520,发送确认数据包。

具体而言,接收端的传输层在接收到单元数据包后,可以该单元数据包的序号作为确认序号,随后可按照ack协议生成包含该确认序号的确认数据包,然后执行步骤520,以将生成的确认数据包返回给发送该单元数据包的发送端。其中,确定序号可以用于表征接收端接收到单元数据包后所发送的确认字符,使得发送端依据该确认数据包确定该单元数据包已成功发送。

步骤522,接收确认数据包。

其中,所述确认数据包携带有确认序号。具体的,发送端的传输层在接收到确认数据包后,可以按照ack协议对该确认数据包进行解析,得到该确认数据包中所携带的确认序号。

步骤524,依据所述确认序号确定丢包序号。

具体的,发送端的传输层在得到确认数据包所携带的确认序号后,可以检测所述确认序号是否属于所述已发送数据包的连续序号。若该确认序号不属于连续序号,则可以依据所述确认序号确定丢包序号,并可将确定出的丢包序号添加到重传队列中,以作为重传序号,如在接收到的ack包里的序号不连续时,可以认为缺掉的序号对应的单元数据包丢了,并可将缺掉的序号作为重传序号放入resendlist中,以便后续可以依据该重传序号实现单元数据包的重传。若该确认序号属于连续序号,则从所述已发送队列中删除所述确认序号对应的已发送数据包,如在发送端接收到的ack包里的序号连续时,将该序号对应的单元数据包从已发送队列sendlist里删掉,然后返回执行步骤502或步骤506,以继续传输该发送端所需要发送的原始指令消息对应的数据包。当然,在接收到的确认序号为数据包重传时所携带的序号时,发送端也可以从重传系列中删除与该确认序号相同的重传序号,以避免重复发送已传输到接收端的数据包。

例如,发送端的传输层在接收到确认数据包后,可以从该确认数据包提取出包序号,作为确认序号,并检测确认序号是否属于已发送数据包对应的连续序号;若确认序号属于连续序号,则可以将该确认序号对应的单元数据包从已发送队列sendlist里删掉,以及,将确认序号从重传队列resendlist中删掉;如果检测到收到的确认序号不连续,则可以认为缺掉的序号对应的单元数据包丢了,进可以基于重传队列resendlist继续重传该单元数据包,指导接收到该单元数据包对应的确认序号。

综上,本发明实施例将拥塞控制算法(congestion-basedcongestioncontrol)纳入消息传输方法中,以指导发送端的发送速度,从而使得发送端在每次计算出可发包时,可以先从resendlist里找出最高优先级的重传序号,以根据该重传序号在sendlist里找到需要重传的数据包发送,实现重传。如果resendlist里没有需要重传的序号了,则可以从业务层获取一个发送单元对应的单元数据包来发送。

可见,本发明实施例通过引入拥塞控制算法和自主设计的丢包重传逻辑,避免出现网络拥堵和超大延时的问题,将udp的发送变的更加高效和可靠,从而可以在恶略网络条件下保证传输效率;并可通过分层概念实现优先级和传输的分离,进而可以尽快地完成优先级最高的指令消息的传输,保证更重要的消息能够尽快传输,进而提升传输质量。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。

参照图6,示出了本发明实施例中的一种消息传输装置的结构框图,该消息传输装置具体可以包括如下模块:

指令消息提取模块610,用于从网络应用的消息队列中提取待发送指令消息,其中,所述待发送指令消息为所述消息队列中优先级最高的原始指令消息;

指令消息拆分模块620,用于将所述待发送指令消息拆分为发送单元;

数据包生成模块630,用于依据所述发送单元生成单元数据包;

数据包发送模块640,用于依据预设的用户数据报协议udp,发送所述单元数据包。

在上述实施例的基础上,可选地,上述消息传输装置应用于发送端,所述发送端包含传输层和业务层;上述指令消息提取模块和指令消息拆分模块可以集成在业务层中,数据包生成模块和数据包发送模块可以集成在业务层中。此外,上述消息传输装置还包括模块:重传队列检测模块和重传模块,且该重传队列检测模块和重传模块均可以集成在传输层中。其中,重传队列检测模块,用于检测重传队列是否为空队列;若所述重传队列为空队列,则触发业务层中的指令消息提取模块610执行所述从网络应用的消息队列中提取待发送指令消息的步骤;若所述重传队列存有重传序号,则触发重传模块从所述重传队列中提取目标重传序号,所述目标重传序号为所述重传队列中优先级最高的重传序号。重传模块,用于从已发送队列中,提取所述目标重传序号对应的已发送数据包;并触发所述数据包发送模块重发所述已发送数据包。

例如,重传队列检测模块可以在指令消息提取模块610从消息队列中提取待发送指令消息之前,检测重传队列是否为空队列;当重传队列为空队列时,可以触发指令消息提取模块610执行从消息队列中提取优先级最高的待发送指令消息,以实现优先级最高的指令消息的快速传输;若重传队列存有重传序号,即在重传队列不是空队列时,可以触发重传模块从该重传队列中提取优先级最高的目标重传序号,以便能够快速实现优先级最高的消息的重传,从而保证最重要的消息能尽快传输,提高传输效果。

在上述实施例的基础上,可选地,上述消息传输装置还包括如下模块:

网络检测模块,用于测检网络应用对应的瓶颈带宽和数据包的往返时延;

可发送包数量确定模块,用于依据所述瓶颈带宽和所述往返时延,确定可发送包数量;当所述可发送包数量为大于零的整数时,触发上述重传队列检测模块执行检测所述重传队列是否为空队列的步骤。

例如,重传队列检测模块检测重传队列是否为空队列之前,网络检测模块可以测检网络应用对应的瓶颈带宽和数据包的往返时延,使得可发送包数量确定模块可以依据该网络检测模块检测到网络应用当前对应的瓶颈带宽和数据包的往返时延,确定网络应用的可发送包数量,并可在可发送包数量为大于零的整数时触发重传队列检测模块执行检测重传队列是否为空队列,以在重传队列为空队列时依据网络应用的待发送指令消息进行消息传输,或者,依据该重传队列中存放的重传序号进行消息传输。

可选地,本发明实施例的消息传输装置还可以包括:确认数据包接收模块、丢包序号确定模块和重传队列模块。确认数据包接收模块、丢包序号确定模块和重传队列模块均可以集成在在传输层中。在具体实现中,确认数据包接收模块,用于接收确认数据包,其中,所述确认数据包携带有确认序号;丢包序号确定模块,用于依据所述确认序号确定丢包序号;重传队列模块,用于将所述丢包序号添加到所述重传队列中,以作为重传序号。

在本发明的一个可选实施例中,上述消息传输装置还可以包括:已发送队列模块和确认序号检测模块。已发送队列模块和确认序号检测模块也可以集成在传输层中。其中,已发送队列模块可以用于将所述单元数据包添加到已发送队列中,以记录为已发送数据包,如可以在数据包发送模块640发送单元数据包之后,将该数据包发送模块640发送的单元数据包添加到已发送队列中,以记录为已发送数据包。确认序号检测模块可以用于检测所述确认序号是否属于所述已发送数据包的连续序号;若所述确认序号属于连续序号,则触发已发送队列模块从已发送队列中删除所述确认序号对应的已发送数据包;否则,可以触发丢包序号确定模块执行依据所述确认序号确定丢包序号的步骤。例如,在确认数据包接收模块接收确认数据包之后,确认序号检测模块可以检测该确认数据包接收模块当前所接收到确认序号是否属于已发送数据包的连续序号;若所述确认序号属于连续序号,则可以触发已发送队列模块从已发送队列中删除所述确认序号对应的已发送数据包;若确认序号属于非连续序号,则触发丢包序号确定模块执行依据所述确认序号确定丢包序号的步骤。

本发明实施例中,可选地,当所述确认序号属于连续序号,重传队列模块还用于从所述重传队列中删除与所述确认序号相同的重传序号。

在本发明的一个可选实施例中,上述消息传输装置还可以包括:发送时间检测模块。该时间检测模块,可以集成在传输中,并可用于检测当前时间是否在已发送数据包对应的发送时间范围内;若当前时间在所述发送时间范围内,则可以触发数据包发送模块重发所述已发送数据包的步骤;若所述当前时间超出所发送时间范围,则触发已发送队列模块从所述已发送队列中删除所述已发送数据包,并可触发重传队列模块从所述重传队列中删除所述目标重传序号。

例如,在数据包发送模块重发所述已发送数据包之前,时间检测模块可以检测当前时间是否在所述已发送数据包对应的发送时间范围内;若当前时间在所述发送时间范围内,则可以触发数据包发送模块重发所述已发送数据包的步骤;若所述当前时间超出所发送时间范围,则触发已发送队列模块从所述已发送队列中删除所述已发送数据包,并可触发重传队列模块从所述重传队列中删除所述目标重传序号。

可选地,本发明实施例的单元数据包携带有所述发送单元对应的指令信息和关联包信息,所述关联包信息可以用于确定所述单元数据包的关联数据包。

在具体实现中,上述消息传输装置可以集成在作为发送端的设备中。该设备可以是两个或多个物理实体构成,也可以是一个物理实体构成,如设备可以是个人计算机(personalcomputer,pc)、电脑、手机、平板设备、个人数字助理、服务器、消息收发设备、游戏控制台等。

进一步的,本发明实施例还提供一种设备,包括:处理器和存储器。存储器中存储有至少一条指令,且指令由所述处理器执行,使得所述设备执行如上述方法实施例中发送端的消息传输方法。

参照图7,示出了本发明一个示例中的一种设备的结构示意图。如图7所示,该设备具体可以包括:处理器70、存储器71、具有触摸功能的显示屏72、输入装置73、输出装置74以及通信装置75。该设备中处理器70的数量可以是一个或者多个,图7中以一个处理器70为例。该设备中存储器71的数量可以是一个或者多个,图7中以一个存储器71为例。该设备的处理器70、存储器71、显示屏72、输入装置73、输出装置74以及通信装置75可以通过总线或者其他方式连接,图7中以通过总线连接为例。

存储器71作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明任意实施例所述的消息传输方法对应的程序指令/模块(例如,上述消息传输装置中的指令消息提取模块610、指令消息拆分模块620、数据包生成模块630以及数据包发送模块640等)。存储器71可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器71可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器71可进一步包括相对于处理器70远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

显示屏72为具有触摸功能的显示屏72,其可以是电容屏、电磁屏或者红外屏。一般而言,显示屏72用于根据处理器70的指示显示数据,还用于接收作用于显示屏72的触摸操作,并将相应的信号发送至处理器70或其他装置。可选的,当显示屏72为红外屏时,其还包括红外触摸框,该红外触摸框设置在显示屏72的四周,其还可以用于接收红外信号,并将该红外信号发送至处理器70或者其他设备。

通信装置75,用于与其他设备建立通信连接,其可以是有线通信装置和/或无线通信装置。

输入装置73可用于接收输入的数字或者字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入,还可以是用于获取图像的摄像头以及获取音频数据的拾音设备。输出装置74可以包括扬声器等音频设备。需要说明的是,输入装置73和输出装置74的具体组成可以根据实际情况设定。

处理器70通过运行存储在存储器71中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,以实现上述消息传输方法。

具体的,实施例中,处理器70执行存储器71中存储的一个或多个程序时,具体实现如下操作:从网络应用的消息队列中提取待发送指令消息,其中,所述待发送指令消息为所述消息队列中优先级最高的原始指令消息;将所述待发送指令消息拆分为发送单元;依据所述发送单元生成单元数据包;依据预设的用户数据报协议udp,发送所述单元数据包。

本发明实施例还提供一种计算机可读存储介质,所述存储介质中的指令由设备的处理器执行时,使得设备能够执行如上述方法实施例所述的消息传输方法。示例性的,该消息传输方法包括:从网络应用的消息队列中提取待发送指令消息,其中,所述待发送指令消息为所述消息队列中优先级最高的原始指令消息;将所述待发送指令消息拆分为发送单元;依据所述发送单元生成单元数据包;依据预设的用户数据报协议udp,发送所述单元数据包。

参照图8,示出了本发明实施例中的另一种消息传输装置的结构框图。该消息传输装置具体可以包括如下模块:

数据包接收模块810,用于依据预设的用户数据报协议udp,接收单元数据包,其中,所述单元数据包为网络应用依据发送单元生成的,所述发送单元为所述网络应用通过拆分原始指令消息得到的;

指令消息合成模块820,用于依据所述单元数据包合成所述原始指令消息。

在本发明的一个可选实施例中,上述另一种消息传输装置可以应用于接收端中,所述接收端包含传输层和业务层;其中,数据包接收模块810可以集成在传输层中;指令消息合成模块820可以集成在业务层。此外,集成在业务层中的指令消息合成模块820可以包括如下子模块:

数据包读取子模块,用于读取所述单元数据包中携带的关联包信息;

关联数据包确定子模块,用于依据所述关联包信息确定所述单元数据包的关联数据包;

消息合成子模块,用于基于所述单元数据包中携带的指令信息和所述关联数据包中携带的指令信息,合成所述原始指令消息。

可选地,应用于接收端中的消息传输装置还可以包括:确认序号模块、确认数据包生成模块以及确认数据包发送模块。确认序号模块、确认数据包生成模块以及确认数据包发送模块均可以集成在接收端的传输层中。其中,确认序号模块,用于将所述单元数据包中携带的序号作为确认序号;确认数据包生成模块,用于依据所述确认序号生成所述单元数据包对应的确认数据包;确认数据包发送模块,用于发送所述确认数据包。

例如,在数据包接收模块810接收单元数据包之后,确认序号模块可以将该数据包接收模块810接收到的单元数据包所携带的序号作为确认序号,使得确认数据包生成模块可以依据确认序号生成对应的确认数据包,随后可以通过确认数据包发送模块将确认数据包发送给发送端,以通知发送端该单元数据包已成功发送。

在具体实现中,本发明实施例提供的消息传输装置可以集成在作为接收端的设备中。该设备可以是两个或多个物理实体构成,也可以是一个物理实体构成,如设备可以是个人计算机(personalcomputer,pc)、电脑、手机、平板设备、个人数字助理、服务器、消息收发设备、游戏控制台等。

进一步的,本发明实施例还提供一种设备,包括:处理器和存储器。存储器中存储有至少一条指令,且指令由所述处理器执行,使得所述设备执行如上述方法实施例中接收端的消息传输方法。示例性的,处理器执行存储器中存储的一个或多个程序时,具体实现如下操作:依据预设的用户数据报协议udp,接收单元数据包,其中,所述单元数据包为网络应用依据发送单元生成的,所述发送单元为所述网络应用通过拆分原始指令消息得到的;依据所述单元数据包合成所述原始指令消息。

本发明实施例还提供一种计算机可读存储介质,所述存储介质中的指令由设备的处理器执行时,使得设备能够执行如上述方法实施例中接收端的消息传输方法。示例性的,依据预设的用户数据报协议udp,接收单元数据包,其中,所述单元数据包为网络应用依据发送单元生成的,所述发送单元为所述网络应用通过拆分原始指令消息得到的;依据所述单元数据包合成所述原始指令消息。

可见,本发明实施例提供的设备、装置执行本发明任意实施例所提供的消息传输方法,具备执行方法相应的功能和有益效果。

需要说明的是,对于装置、设备、存储介质实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是机器人,个人计算机,服务器,或者网络设备等)执行本发明任意实施例所述的消息传输方法。

值得注意的是,上述消息传输装置中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行装置执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

应当说明的是,上述仅为本发明的较佳实施例及本发明所运用技术原理。本领域技术人员可以理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然以上实施例对本发明进行了较为详细的说明,但是本发明不局限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由权利要求范围决定。

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