文件的发送方法及装置与流程

文档序号:12068213阅读:271来源:国知局
文件的发送方法及装置与流程

本发明涉及通信领域,具体而言,涉及一种文件的发送方法及装置。



背景技术:

在基于IP多媒体子系统(IP Multimedia Subsystem,简称为IMS)网络的富通信套件(Rich Communication Suite,简称为RCS)业务中,文件传输采用会话初始协议(Session Initialization Protocol,简称为SIP)和消息会话中继协议(Message Session Relay Protocol,简称为MSRP)相结合的方法来实现,通过SIP进行信令协商,通过MSRP进行文件数据传输。协议规定MSRP发送消息可以不用等到收到响应才发送下一个MSRP消息,因为服务器的性能要好于终端,所以终端连续发送不会对应用服务器(Application Server,简称为AS)造成影响,但当AS向接收终端发送消息时,就不得不考虑接收终端的接收性能。对于小文件来说,MSRP一个分包或者很少的分包就可以传送完成,不会影响接收终端,但当文件很大时,MSRP需要传输成百上千个消息才能完成传输,如果AS持续的发送这么多消息,会让接收终端来不及接收导致传输失败。

针对相关技术中在文件很大时,AS持续的发送文件,会让接收终端来不及接收导致传输失败的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明的主要目的在于提供种一种文件的发送方法及装置,以至少解决相关技术中在文件很大时,AS持续的发送文件,会让接收终端来不及接收导致传输失败的问题。

根据本发明的一个方面,提供了一种文件的发送方法,包括;将待发送的目标文件拆分为多个子目标文件;在将所述多个子目标文件依次发送给终端时,比较已发送而未被所述终端处理的子目标文件数是否大于或等于预设阈值;在比较结果为是时,在所述终端处理未被处理的子目标文件预设时间后,再比较已发送而未被所述终端处理处理的子目标文件数是否大于或等于所述预设阈值;在比较结果为否时,继续发送所述子目标文件。

进一步地,比较已发送而为被所述终端处理的子目标文件树是否大于或等于预设阈值包括:获取已发送的所述子目标文件数与接收到的所述终端响应消息数;依据所述已发送的所述子目标文件数与所述响应消息数的差值确定已发送而未 被所述终端处理的子目标文件数,其中,所述响应消息是指所述终端每处理完一个子目标文件发送的消息;判断已发送而未被所述终端处理的子目标文件数是否大于或等于预设阈值。

进一步地,所述预设阈值小于或等于所述终端在指定时间内能处理所述子目标文件的最大值。

进一步地,在将待发送的目标文件拆分为多个子目标文件之前,所述方法还包括:判断当前待发的目标文件容量是否大于或等于第一容量;在判断结果为是时,将待发送的目标文件拆分为多个子目标文件,在判断结果为否时,直接向所述终端发送所述目标文件。

进一步地,所述目标文件采用基于消息会话中继协议MSRP的方式进行传输。

根据本发明的另一个方面,提供了一种文件的发送装置,包括;拆分模块,用于将待发送的目标文件拆分为多个子目标文件;第一比较模块,用于在将所述多个子目标文件依次发送给终端时,比较已发送而未被所述终端处理的子目标文件数是否大于或等于预设阈值;第二比较模块,用于在比较结果为是时,在所述终端处理未被处理的子目标文件预设时间后,再判断未处理的子目标文件数是否大于或等于所述预设阈值;第一发送模块,用于在判断结果为否时,继续发送所述子目标文件。

进一步地,所述第一比较模块包括:获取单元,用于获取已发送的所述子目标文件数与接收到的所述终端响应消息数;确定单元,用于依据所述已发送的所述子目标文件数与所述响应消息数的差值确定已发送而未被所述终端处理的子目标文件数,其中,所述响应消息用于指示所述终端每处理完一个子目标文件发送的消息;判断单元,用于判断已发送而未被所述终端处理的子目标文件数是否大于或等于预设阈值。

进一步地,所述预设阈值小于或等于所述终端在指定时间内能处理所述子目标文件的最大值。

进一步地,在将待发送的目标文件拆分为多个子目标文件之前,所述装置还包括:第一判断模块,用于判断当前待发的目标文件容量是否大于或等于第一容量;第二发送模块,用于在判断结果为是时,将待发送的目标文件拆分为多个子目标文件,在判断结果为否时,直接向所述终端发送所述目标文件。

进一步地,所述目标文件采用基于消息会话中继协议MSRP的方式进行传输。

在本发明中,采用将待发送的目标文件拆分为多个子目标文件,而在将多个 子目标文件依次发送给终端时,判断已发送而未被终端处理的子目标文件数是否大于或等于预设阈值,在比较结果为是时,在终端处理未被处理的子目标文件预设时间后,再比较已发送而未被终端处理处理的子目标文件数是否大于或等于预设阈值;在比较判断结果为否时,继续发送子目标文件的方式,使得已发送而未被终端处理的子目标文件数始终小于预设阈值,保证了终端不会再短时间内收到大量的文件,即终端能够及时处理收到的文件,解决了相关技术中在文件很大时,AS持续的发送文件,会让接收终端来不及接收导致传输失败的问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的风扇的文件的发送方法的流程图;

图2是根据本发明实施例的文件的发送装置结构框图;

图3是根据本发明实施例的文件的发送装置可选结构框图一;

图4是根据本发明实施例的文件的发送装置可选结构框图二;

图5是根据本可选实施例的大文件传输的系统交互图;

图6是根据本可选实施例的媒体传输MSRP模块的结构图;

图7是根据本发明可选实施例的AS向UE发送大文件的方法流程图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

本实施例提供了一种文件的发送方法,图1是根据本发明实施例的风扇的文件的发送方法的流程图,如图1所示,该方法的步骤包括:

步骤S102:将待发送的目标文件拆分为多个子目标文件;

步骤S104:在将多个子目标文件依次发送给终端时,比较已发送而未被终端处理的子目标文件数是否大于或等于预设阈值;

步骤S106:在比较判断结果为是时,在等待终端处理未被处理的子目标文件预设时间后,再比较已发送而未被终端处理的子目标文件数是否大于或等于预设阈值;

步骤S108:在比较结果为否时,继续发送子目标文件。

在本发明实施例的步骤S102至步骤S106中,采用将待发送的目标文件拆分为多个子目标文件,而在将多个子目标文件依次发送给终端时,比较已发送而未被终端处理的子目标文件数是否大于或等于预设阈值,在比较结果为是时,在等待终端处理未被处理的子目标文件预设时间后,再判断未处理的子目标文件数是否大于或等于预设阈值依次发送子目标文件;在比较判断结果为否时,继续发送子目标文件的方式,使得已发送而未被终端处理的子目标文件数始终小于预设阈值,保证了终端不会再短时间内收到大量的文件,即终端能够及时处理收到的文件,解决了相关技术中在文件很大时,AS持续的发送文件,会让接收终端来不及接收导致传输失败的问题。

对于本实施例中涉及到的步骤S104,比较已发送而为被终端处理的子目标文件树是否大于或等于预设阈值的方式,在本实施例的一个可选实施方式中,可以通过如下方式来实现:

步骤S11:获取已发送的子目标文件数与接收到的终端响应消息数,

步骤S12:依据已发送的子目标文件数与响应消息数的差值确定已发送而未被终端处理的子目标文件数,其中,响应消息用于指示终端每处理完一个子目标文件发送的消息;

步骤S13:判断已发送而未被终端处理的子目标文件树是否大于或等于预设阈值。

需要说明的是,该预设阈值小于或等于终端在指定时间内能处理子目标文件的最大值。也就是说,通过上述步骤S11至步骤S13,可以知道当前终端已经处理的子目标文件数,通过已发送与已处理的文件数的差值就能知道当前没有处理的子目标文件数,进而可以使得当前未被处理的文件数维持在一个相对稳定的数量,换言之是在终端能够处理的一个范围内。

在本实施例的另一个可选实施方式中,在将待发送的目标文件拆分为多个子目标文件之前,本实施例的方法还可以包括:

步骤S21:判断当前待发的目标文件容量是否大于或等于第一容量;

步骤S22:在判断结果为是时,将待发送的目标文件拆分为多个子目标文件,在判断结果为否时,直接向终端发送目标文件。

需要说明的是,本实施例涉及到的目标文件可选的采用基于消息会话中继协议MSRP的方式进行传输。

在本实施例中还提供了一种文件的发送装置,该装置用于实现上述实施例及 可选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图2是根据本发明实施例的文件的发送装置结构框图,如图2所示,该装置包括;拆分模块22,用于将待发送的目标文件拆分为多个子目标文件;第一比较模块24,与拆分模块22耦合连接,用于在将多个子目标文件依次发送给终端时,比较已发送而未被终端处理的子目标文件数是否大于或等于预设阈值;第二比较模块26,与第一比较模块24耦合连接,用于在比较结果为是时,在终端处理未被处理的子目标文件预设时间后,再比较已发送而未被终端处理的子目标文件数是否大于或等于预设阈值;第一发送模块28,与第一比较模块24和第二比较模块26耦合连接,用于在判断结果为否时,继续发送子目标文件。

图3是根据本发明实施例的文件的发送装置可选结构框图一,如图3所示,该第一比较模24块包括:获取单元32,用于获取已发送的子目标文件数与接收到的终端响应消息数;确定单元34,与获取单元32耦合连接,用于依据已发送的子目标文件数与响应消息数的差值确定已发送而未被终端处理的子目标文件数,其中,响应消息用于指示终端每处理完一个子目标文件发送的消息;判断单元36,与确定单元34耦合连接,用于判断已发送而未被终端处理的子目标文件树是否大于或等于预设阈值。

可选地,本实施例中涉及的预设阈值小于或等于终端在指定时间内能处理子目标文件的最大值。

图4是根据本发明实施例的文件的发送装置可选结构框图二,如图4所示,在将待发送的目标文件拆分为多个子目标文件之前,装置还包括:第一判断模块42,与第二发送模块44耦合连接,用于判断当前待发的目标文件容量是否大于或等于第一容量;第二发送模块44,与拆分模块22耦合连接,用于在判断结果为是时,将待发送的目标文件拆分为多个子目标文件,在判断结果为否时,直接向终端发送目标文件。

可选地,目标文件采用基于消息会话中继协议MSRP的方式进行传输。

下面结合本发明的可选实施例对本发明进行详细说明;

本可选实施例提供了一种基于MSRP协议的大文件传输的方法,该方法包括:接收终端发来的大文件,收一包消息,存储一包消息,或者减小IO的压力,收多包消息,待达到足够的消息量再存储,或者超时存储;将大文件拆分,每个MSRP消息发送一块,循环发送,直至发送完成。为了适应不同终端不同性能,或者网络状况,在循环发送消息时,提出一种发送指定数量的消息方法。AS发送指定数量的MSRP消息,待接收终端处理完成且AS收到接收终端的处理完成 响应,才继续发送后面的消息,保持到接收终端的TCP链路上有等量的消息个数在发送。的等量可以根据当前状态自适应的进行调整大小,以便适应不断变化的网络环境。

此外,本可选实施例提供了一种基于MSRP协议的大文件传输的系统,能够有效缓解接收终端的接收压力,该系统包括第一终端UE1、第一应用服务器AS1、第二应用服务器AS2和第二终端UE2。所有终端和服务器都设有SIP模块和MSRP模块;UE1和AS1通过SIP模块协商和MSRP模块数据传输;该AS1和该AS2通过SIP模块进行协商,不进行数据的传输;AS2和UE2通过SIP模块协商和MSRP模块数据传输。

其中,MSRP模块包括:接收模块,用于接收来自发送终端的消息;发送模块,用于发送消息到接收终端。

接收模块包括:接收单元,用于接收终端的MSRP消息;解码模块,用于解析MSRP消息;存储模块,将解码后的消息内容发送到云存储模块进行存储;云存储(可用所有的其它存储替代),用来在云端存储消息进行不同AS之间进行数据共享。

发送模块包括:云存储;读入单元,用于到云存储中读取数据;编码单元,用于将读取的内容编码到MSRP消息中;控制单元,用于自适应的控制向接收端发送的速率;发送模块,用于将MSRP消息发送到接收终端。

相对于相关技术中的系统模块组成,本可选实施例增加了控制单元,该控制模块用来控制AS服务器向终端发送大文件消息的速度。具体控制方法:统计发送MSRP请求消息数、接收MSRP响应消息数,计算当前可发送消息数,判断当前已发送消息是否大于发送窗口;如果大于则停止发送,继续等待响应,直到当前已发送消息小于等于发送窗口;如果小于等于则继续发送。当前可发送消息数:请求消息数-响应消息数-发送窗口的差值。其中,发送窗口=计算发出请求到接收到响应的时间差的平均值(计算方法包括但不只限于任何反应网络或者终端性能的计算方法),自适应调整发送窗口,值小给予大的窗口,值大给予小的窗口。

通过本可选实施例,解决了相关技术中对基于MSRP协议的大文件传输,能够自适应调整AS服务器向接收终端的发送速率,让AS服务器和接收终端有相同的传输性能。即能对不同性能的终端给予的不同的发送速率;能有效利用网络带宽,自适应的改变发送速率;能有效提高大文件的发送成功率,增强用户体验性。

下面结合附图对本发明可选实施例对本可选实施例进行详细说明;

图5是根据本可选实施例的大文件传输的系统交互图,如图5所示,UE1、UE2可以是PC、PDA或者手机等终端等设备,用来发送和接收文件;AS1和AS2是部署在云上的服务器,用来存储转发文件,将文件存储在云上,实现不同AS之间的数据共享,需要说明的是,图5中的虚线表示信令交互,蓝色表示媒体交互。

UE1和AS1先进行信令交互,完成媒体协商后,进行数据交互,AS1将收到的媒体数据存储在云上。AS1和AS2进行信令交互,因为AS1和AS2共享数据,所以就不在进行媒体交互,减少媒体传输。AS2和UE2也是先进行信令交互,然后在进行数据的传输。由此完成UE1到UE2的消息传输。

图6是根据本可选实施例的媒体传输MSRP模块的结构图,如图6所示,该模块包括:发送模块和接收模块;

其中,接收模块包括:接收单元、解码单元、存储单元、云存储。

接收单元,用来接收IP网络上的TCP消息,将收到的TCP消息发到到解码单元。解码单元将收到的TCP数据进行组包,解析出一个完整的MSRP消息,将解码信息发送到存储单元。存储单元将解码后的数据进行存储,这里采用缓存策略,将收到的数据进行缓存,当达到指定的大小或者超时后,才会将数据发送到云存储单元。云存储是一种分布式存储方式,能实现数据共享。

发送模块包括:发送单元、控制单元、编码单元、读入单元、云储存。

读入单元用于去云存储中读取数据,读取指定大小的数据放在内存缓冲中。编码单元,用于在缓冲中获取一定大小的数据,组成MSRP消息包,当缓冲中数据小于指定大小且云存储中还有数据时,再次让读入模块再次读取指定大小的数据。控制单元,用于计算发出请求到收到响应的平均值,获取当前系统的会话占用数,用它们来计算发送窗口的大小,用来控制是否继续发送MSRP消息。发送模块用来将MSRP发送到TCP链路中。

图7是根据本发明可选实施例的AS向UE发送大文件的方法流程图,如图7所示,该方法步骤包括:

步骤S702:开始下发大文件。

步骤S704:将大文件拆分成N个MSRP消息,同时设置TCP链路上可以同时存在MSRP消息的数M个。将N个MSRP消息一个一个的发送出去。

步骤S706:发送第C个MSRP消息;

步骤S708:判断C是否等于N,若C不等于N转到步骤S714;

步骤S710:判断C是否等于R;若等于R,则转到步骤S716,若不等于R 则执行步骤S712;

其中,R表示发送的C个MSRP消息之后收到的响应数;

步骤S712:继续接收响应,计算收到的响应数R,转到步骤S708;

步骤S714:判断C-R是否小于等于M,若是则转到步骤S706,若否则转到步骤S712;

步骤S716:下发大文件成功,流程结束。

在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例及可选实施方式中描述的技术方案。

在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。

显然,本领域的技术人员应该明白,上述本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

上述仅为本发明的可选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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