一种基于sip的断点续传的可靠数据传输方法和系统的制作方法

文档序号:7819311阅读:236来源:国知局
一种基于sip的断点续传的可靠数据传输方法和系统的制作方法
【专利摘要】本发明提供了一种基于SIP的断点续传的可靠数据传输方法和系统,流数据接收客户端向SIP信令服务器发送申请数据流命令,SIP信令服务器把消息转发到流数据发送服务器,流数据发送服务器返回消息,里面包含是否支持断点续传的标志,流数据接收客户端可以根据此标志判断是否需要走断点续传流程;需要断点续传功能的话,流数据接收客户端向SIP信令服务器申请分段信息,SIP信令服务器转发到流数据发送服务器上,流数据发送服务器根据流的情况计算分段信息,返回给流数据接收客户端;流数据接收客户端根据自身的设置和需要,可以同时向SIP信令服务器发送多个断点续传的数据流,必要包含的数据包括段号、序号、接收端口号。
【专利说明】一种基于SIP的断点续传的可靠数据传输方法和系统

【技术领域】
[0001]本发明涉及通信【技术领域】,具体地,涉及一种基于SIP的断点续传的可靠数据传输方法和系统。

【背景技术】
[0002]近年来SIP协议越来越得到重视和发展,尤其是随着安防视频技术的发展,为了解决视频系统的互联互通、信息共享,公安部推动国标GB/T 28181标准的制定,而该国标是基于SIP协议的,各大安防厂家都争相推出各自的基于SIP的产品。
[0003]SIP (Sess1n Initiat1n Protocol)是一个应用层的信令控制协议。用于创建、修改和释放一个或多个参与者的会话。SIP的一个重要特点是它不定义要建立的会话的类型,而只定义应该如何管理会话。有了这种灵活性,也就意味着SIP可以用于众多应用和服务中,包括交互式游戏、音乐和视频点播以及语音、视频和Web会议。SIP消息是基于文本的,因而易于读取和调试。SIP较为灵活,可扩展,而且是开放的。
[0004]目前采用基于SIP的国标中,传输数据是在UDP上的,UDP本身是一种无连接的协议,它只管发送,而不需要知道发送的包是不是准确的到达了目的地,所以它具有发送效率高、速度快、占用资源少等优点,在传输实时数据中可以提高系统传输数据的效率,但是也存在一些问题:不具备保障可靠传送数据的传输机制,不能满足应用程序传输数据、消息的可靠性要求;而且没有断点续传的机制,遇到网络故障时,数据传输必须重头开始,由此造成了大量时间的浪费。


【发明内容】

[0005]针对现有技术中的缺陷,本发明的目的是提供一种基于SIP的断点续传的可靠数据传输方法和系统。
[0006]根据本发明提供的一种基于SIP的断点续传的可靠数据传输方法,其特征在于,包括:
步骤S001:流数据接收客户端通过SIP信令服务器向流数据发送服务器发送一数据申请请求;
步骤S002:流数据发送服务器接收到所述数据申请请求后,通过SIP信令服务器向流数据接收客户端返回一第一反馈消息,所述第一反馈消息包含是否支持断点续传的标志;步骤S003:若支持断点续传,则流数据接收客户端通过SIP信令服务器向流数据发送服务器发送一分段请求;
步骤S004:流数据发送服务器根据需要传输的流数据计算分段信息,进而通过SIP信令服务器将所述分段信息发送给流数据接收客户端;
步骤S005:流数据接收客户端响应所述分段信息自动根据自身的设置和需要,通过SIP信令服务器向流数据发送服务器发送一流数据预接收信息,所述流数据预接收信息包含请求传输的该段流数据所对应的段号、序号、流数据接收客户端的接收端口号; 步骤S006:流数据发送服务器接收到所述流数据预接收信息后,然后通过SIP信令服务器向流数据接收客户端发送确认信息。
[0007]步骤S007:流数据接收客户端接收所述确认信息后,通过SIP信令服务器向流数据发送服务器发送最终请求消息,表示准备接收;
步骤S008:进行该段流数据的传输;
在步骤S008数据传输过程中,若发生网络中断或者系统认为中断,流数据接收客户端保存当前正在传输的流数据的中断点信息,所述中断点信息包含被中断传输的流数据的段号、序号、流数据接收客户端的接收端口号,网络恢复时流数据接收客户端根据从文件中读取的所述中断点信息返回步骤S005重新申请流数据。
[0008]步骤S009:流数据接收客户端接收完整的一段流数据后,重复步骤S005至S008,直至所有流数据传输完整为止。
[0009]进一步地,所述步骤SOOl的流数据发送服务器与SIP信令服务器一一对应。
[0010]进一步地,多个流数据发送服务器对应一个SIP信令服务器,步骤SOOl还包括: 步骤SI 1: SIP信令服务器根据配置或者动态资源占用情况分配资源给流数据服务器; 步骤S12:流数据接收客户端发送数据申请请求时,根据步骤Sll分配的情况,选择流数据服务器,申请请求指定的流数据。
[0011]进一步地,在所述步骤S006中,流数据发送服务器接收到所述流数据预接收信息后:
流数据发送服务器判断该段数据流是否有数据;
是,则通过SIP信令服务器向流数据接收客户端发送确认信息;
否,则暂不做反馈,直至收到新的数据。
[0012]进一步地,所述步骤S005中还包含流数据接收客户端为接收该段流数据创建一接收端口,开辟相应的接收线程,所述自身的设置包含所述接收端口和接收线程,所述自身需要包含流数据接收客户端预接收的该段流数据。
[0013]进一步地,步骤S004所述分段信息包含段的数量、每个段的大小、段的起始段号、每个段按MTU分配的小段,小段对应的序号。
[0014]一种基于SIP的断点续传的可靠数据传输系统,其特征在于,包含:
流数据接收客户端用于:
通过SIP信令服务器向流数据发送服务器发送一数据申请请求,
根据自流数据发送服务器接收到的第一反馈消息中所包含的是否支持断点续传的标志,自动判断是否断点续传,是,则通过SIP信令服务器向流数据发送服务器发送分段请求,
响应自流数据发送服务器接收到分段信息自动根据自身的设置和需要,通过SIP信令服务器向流数据发送服务器发送一流数据预接收信息,所述流数据预接收信息包含请求传输的该段流数据所对应的段号、序号、流数据接收客户端的接收端口号,
根据自流数据发送服务器接收到的确认信息,通过SIP信令服务器向流数据发送服务器发送最终请求消息,
若发生网络中断或者系统认为中断,保存当前正在传输的流数据的中断点信息,所述中断点信息包含被中断传输的流数据的段号、序号、流数据接收客户端的接收端口号,网络恢复时根据从文件中读取的所述中断点信息重新申请流数据;
流数据发送服务器用于:
根据自流数据接收客户端接收到的数据申请请求,通过SIP信令服务器向流数据接收客户端返回第一反馈消息,所述第一反馈消息包含是否支持断点续传的标志,
根据自流数据接收客户端接收到的分段请求以及流数据接收客户端申请的需要传输的流数据计算分段信息,进而通过SIP信令服务器将所述分段信息发送给流数据接收客户端,
根据自流数据接收客户端接收到的流数据预接收信息,通过SIP信令服务器向流数据接收客户端发送确认信息,
SIP信令服务器用于:
流数据接收客户端和流数据发送服务器之间的消息转发。
[0015]与现有技术相比,本发明具有如下的有益效果:
本发明的提供一种基于SIP的断点续传的可靠数据传输方法,该方法基于SIP的流数据分块算法、利用SIP协议描述分块信息、重传依据,实现流断点续传的可靠数据传输方法。

【专利附图】

【附图说明】
[0016]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图中:
图1为基于SIP的断点续传的可靠数据传输方法的信令控制流序列图;
图2为基于SIP的断点续传的可靠数据传输方法的断点续传信令控制流序列图;
图3为基于SIP的断点续传的可靠数据传输方法的申请断点续传流的流程;
图4为基于SIP的断点续传的可靠数据传输方法的断点续传流程。

【具体实施方式】
[0017]下面结合附图以具体实施例的方式对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
[0018]本发明提供的基于SIP的断点续传的可靠数据传输方法,其流程如图3所示,包括:
步骤S1:流数据接收客户端注册到SIP信令服务器,获取必要信息。
[0019]步骤S2:流数据接收客户端通过SIP信令服务器向流数据发送服务器发送一数据申请请求。
[0020]步骤S3:流数据发送服务器接收到所述数据申请请求后,通过SIP信令服务器向流数据接收客户端返回一第一反馈消息,所述第一反馈消息包含是否支持断点续传的标
O
[0021]步骤S4:若支持断点续传,则流数据接收客户端通过SIP信令服务器向流数据发送服务器发送一分段请求,若不支持,则转入其他SIP流程。
[0022]步骤S5:流数据发送服务器根据需要传输的流数据计算分段信息,进而通过SIP信令服务器将所述分段信息发送给流数据接收客户端。分段信息包含段的数量、每个段的大小、段的起始段号、每个段按MTU(最大传输单元)分配的小段,小段对应的所有序号。
[0023]TCP/IP协议中最大传输单元,需要根据网络情况设置,一般设置在1400字节以下步骤S6:流数据接收客户端响应所述分段信息自动根据自身的设置和需要,通过SIP
信令服务器向流数据发送服务器发送一流数据预接收信息,所述流数据预接收信息包含请求传输的该段流数据所对应的段号、序号、流数据接收客户端的接收端口号;
其中,流数据接收客户端为接收该段流数据创建一接收端口,开辟相应的接收线程,所述自身的设置包含所述接收端口和接收线程,所述自身需要包含流数据接收客户端预接收的该段流数据。
[0024]步骤S7:流数据发送服务器接收到所述流数据预接收信息后,通过SIP信令服务器向流数据接收客户端发送确认信息,表示请求已处理。
[0025]步骤S8:流数据接收客户端接收所述确认信息后,通过SIP信令服务器向流数据发送服务器发送最终请求消息,表示准备接收。
[0026]步骤S9:进行该段流数据的传输。
[0027]步骤SlO:流数据接收客户端接收完整的一段流数据后,重复步骤S6至S9,直至所有流数据传输完整为止。
[0028]流数据接收客户端按段接收数据,并根据所述分段信息对接收到的分段流数据进行排序。
[0029]本发明所述步骤S2的流数据发送服务器可以与SIP信令服务器一一对应,也可以多个流数据发送服务器对应一个SIP信令服务器。
[0030]当流数据发送服务器与SIP信令服务器一一对应时,基于SIP的断点续传的可靠数据传输方法如步骤SI至步骤S6。
[0031]当多个流数据发送服务器对应一个SIP信令服务器时,步骤S2还包括:
步骤1:流数据发送服务器向SIP信令服务器注册;
步骤2: SIP信令服务器根据配置或者动态资源占用情况分配资源给流数据服务器;步骤3:流数据接收客户端发送数据申请请求时,根据步骤2分配的情况,选择选择流数据服务器,申请请求指定的流数据,如某个视频资源。
[0032]流数据接收客户端根据步骤S5中获得的分段信息中的序号将接收到的分段的流数据重新排列,按序号顺序组合每个段的数据包。流数据接收客户端在每当一个段的数据接收完整后,为当前记录的段号自增I。
[0033]自增段号操作完成后,流数据接收客户端重复步骤S6重新向流数据发送服务器申请新的后继段号的流数据,流数据接收客户端维护正在接收的段号的唯一性,当重新申请时,保证当前的段号是加锁保护的,即段号在自增操作前,先进行锁定操作,自增操作完成后,释放锁定操作,保证在该自增过程中,接收完完整数据的该段号不会被其他可能的地方修改。
[0034]在所述步骤S7中,流数据发送服务器接收到所述流数据预接收信息后: 流数据发送服务器判断该段数据流是否有数据;
是,则通过SIP信令服务器向流数据接收客户端发送确认信息;
否,则暂不做反馈,直至收到新的数据。
[0035]在数据传输过程中,若发生网络中断或者系统认为中断,流数据接收客户端保存当前正在传输的流数据的分段信息以及中断点信息,所述中断点信息包含被中断传输的数据段的段号、序号等信息。网络恢复时流数据接收客户端重新申请流数据,从文件中读取所述存储的分段信息和中断点信息,重新按照段号、序号向流数据发送服务器申请流数据。每个段拆分成很多按照序号区分的小段,可以大大减少重传的数据。
[0036]由于本发明是基于流数据的,流数据发送服务器端并不能长期保持数据,所以本实施例在服务器端做断点续传时,把流数据设计成缓冲数据,保存一定量的流数据,缓冲的大小根据实际内存的容量设定,一般不会超过内存的80%,当缓冲大小达到设定的大小后,会根据先进先出的原则,释放掉最早的数据。所以,如果发生当前缓冲数据超过设定的大小时,最早的数据会给丢弃,而此时如果流数据库客户端正好在丢弃的数据段断点,由于数据已经在流数据发送服务器端丢弃,流数据接收客户端将不能重新申请该段的数据。
[0037]本实施例还包括一种基于SIP的断点续传的可靠数据传输系统,其特征在于,包含:
流数据接收客户端用于:
通过SIP信令服务器向流数据发送服务器发送一数据申请请求,
根据自流数据发送服务器接收到的第一反馈消息中所包含的是否支持断点续传的标志,自动判断是否断点续传,是,则通过SIP信令服务器向流数据发送服务器发送分段请求,
响应自流数据发送服务器接收到分段信息自动根据自身的设置和需要,通过SIP信令服务器向流数据发送服务器发送一流数据预接收信息,所述流数据预接收信息包含请求传输的该段流数据所对应的段号、序号、流数据接收客户端的接收端口号,
根据自流数据发送服务器接收到的确认信息,通过SIP信令服务器向流数据发送服务器发送最终请求消息,
若发生网络中断或者系统认为中断,保存当前正在传输的流数据的中断点信息,所述中断点信息包含被中断传输的流数据的段号、序号、流数据接收客户端的接收端口号,网络恢复时根据从文件中读取的所述中断点信息重新申请流数据;
流数据发送服务器用于:
根据自流数据接收客户端接收到的数据申请请求,通过SIP信令服务器向流数据接收客户端返回第一反馈消息,所述第一反馈消息包含是否支持断点续传的标志,
根据自流数据接收客户端接收到的分段请求以及流数据接收客户端申请的需要传输的流数据计算分段信息,进而通过SIP信令服务器将所述分段信息发送给流数据接收客户端,
根据自流数据接收客户端接收到的流数据预接收信息,通过SIP信令服务器向流数据接收客户端发送确认信息,
SIP信令服务器用于:
流数据接收客户端和流数据发送服务器之前的消息转发。
[0038]由于是基于流的数据,传输的时候并不知道流的大小,故流数据发送服务器在拆分数据的时候采用固定大小的数据包,流数据发送服务器与流数据接收客户端通信并协商,采用基于SIP协议的MESSAGE来描述。数据封包结构包括:段号、序号、长度等。其中段号是把流拆分成若干个段,由流数据发送服务器处理维护管理;序号是每段内按MTU的大小拆分成各个小数据,序号自增。接收端接收到流数据后按段号和序号进行排序,具体流如图1和图3所示。
[0039]本实施例中MTU的值在操作系统中设定,该拆分数据大小通过流数据发送服务器与流数据接收客户端通信并协商确定。
[0040]本实施例流数据分段传输的具体步骤流程如下:
1、流数据接收客户端发送SIP的INVITE申请流数据,如步骤S2;
2、信令服务端接收后,向流数据发送服务器转发INVITE消息;
3、流数据发送服务器发回2000K,包括扩充字段EX,EX为是否支持断点续传的标志,流数据接收客户端可解析出该扩充字段并根据该标志判断是否申请断点续传流,本实施例该标志设为支持断点续传,如步骤S3 ;
4、信令服务端返回2000K,包含扩充字段EX ;
5、流数据接收客户端接收到支持断点续传的标志后,向SIP信令服务器发送MESSAGE消息,包含XML,XML定义了消息为分段请求,表示流数据接收客户端向流数据发送服务器申请分段,如步骤S4;
6、SIP信令服务器向流数据发送服务器转发MESSAGE消息,包含XML,定义了消息为分段请求;
7、流数据发送服务器返回2000K,包含XML,XML定义了流数据发送服务器根据流数据接收客户端所申请的流数据计算出的分段信息,分段信息包含段的数量、每个段的大小、段的起始段号、每个段按MTU分配的小段,小段对应的序号起始号等数据,如步骤S5 ;
8、服务端返回2000K,包含XML,XML定义了分段信息;
9、流数据接收客户端接收到分段信息后,根据用户需要以及流数据接收客户端自身设置,创建一接收端口,开辟相应的接收线程,再次向信令服务发送一 MESSAGE请求,XML定义了包括命令字段、申请的分段号、序号、接收端口在内的数据,如步骤S6 ;
10、信令服务向流数据发送服务器发送MESSAGE,XML定义了包括命令字段、申请的分段号、序号、接收端口在内的数据;
11、流数据发送服务器返回2000K,表示请求已经处理成功,如步骤S7 ;
12、信令服务返回2000K,表示请求已经处理成功;
13、流数据接收客户端完成接收准备后,发送ACK消息给信令服务,表示INVITE被最终请求,如步骤S8 ;
14、信令服务发送ACK消息给流数据发送服务器;
15、流数据接收客户端开始按段接收数据。
[0041]16、流数据接收客户端在每一个段内接收到分段后,按照每段序号排序数据,各个段的数据接收完成后,由专门负责模块合并数据,如步骤S9 ;
17、流数据接收客户端完成一段数据后,重新申请新的段号数据,重复5以后的过程。
[0042]18、服务接收到段号,会判断后续是否有数据,如果没有,会暂停,直到有流数据为止。
[0043]19、当流数据接收客户端需要结束接收数据时,向信令服务发送BYE ;
20、信令服务返回200OK ;
21、信令服务向流数据发送服务器发送BYE;
22、流数据发送服务器返回2000K,整个接收过程结束。
[0044]断点续传方法描述:
流数据接收客户端在本地文件中记录每个段已经接收完成的数据,包括段号、序号、数据大小等信息。
[0045]如图2和图4所示,当发送网络中断或认为中断后,流数据接收客户端申请重传所对应的断点续传流程如下:
1、流数据接收客户端从记录文件中读出当前最新接收的段号、序号、数据大小信息;
2、向信令服务发送MESSAGE,XML包含段号、序号、接收端口等数据;
3、信令服务向流数据发送服务器发送MESSAGE,XML包含段号、序号等数据;
4、流数据发送服务器向信令服务发送2000K;
5、信令服务向流数据接收客户端发送2000K;
6、流数据接收客户端做好接收准备后,向信令服务发送ACK;
7、信令服务向流数据发送服务器发送ACK;
8、流数据发送服务器开始往端口上发送请求的分段的制定的序号的数据。
[0046]以上所述仅为本发明的较佳实施例,本领域技术人员知悉,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等同替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求范围内的实施例都属于本发明的保护范围。
【权利要求】
1.一种基于SIP的断点续传的可靠数据传输方法,其特征在于,包括: 步骤S001:流数据接收客户端通过SIP信令服务器向流数据发送服务器发送一数据申请请求; 步骤S002:流数据发送服务器接收到所述数据申请请求后,通过SIP信令服务器向客户端返回一第一反馈消息,所述第一反馈消息包含是否支持断点续传的标志; 步骤S003:若支持断点续传,则流数据接收客户端通过SIP信令服务器向流数据发送服务器发送一分段请求; 步骤S004:流数据发送服务器根据需要传输的流数据计算分段信息,进而通过SIP信令服务器将所述分段信息发送给流数据接收客户端; 步骤S005:流数据接收客户端响应所述分段信息自动根据自身的设置和需要,通过SIP信令服务器向流数据发送服务器发送一流数据预接收信息,所述流数据预接收信息包含请求传输的该段流数据所对应的段号、序号、流数据接收客户端的接收端口号; 步骤S006:流数据发送服务器接收到所述流数据预接收信息后,通过SIP信令服务器向流数据接收客户端发送确认信息; 步骤S007:流数据接收客户端接收所述确认信息后,通过SIP信令服务器向流数据发送服务器发送最终请求消息,表示准备接收; 步骤S008:进行该段流数据的传输; 在步骤S008数据传输过程中,若发生网络中断或者系统认为中断,流数据接收客户端保存当前正在传输的流数据的中断点信息,所述中断点信息包含被中断传输的流数据的段号、序号、流数据接收客户端的接收端口号,网络恢复时流数据接收客户端根据从文件中读取的所述中断点信息返回步骤S005重新申请流数据; 步骤S009:流数据接收客户端接收完整的一段流数据后,重复步骤S005至S008,直至所有流数据传输完整为止。
2.根据权利要求1所述的方法,其特征在于,所述步骤S001的流数据发送服务器与SIP信令服务器 对应。
3.根据权利要求1所述的方法,其特征在于,多个流数据发送服务器对应一个SIP信令服务器,步骤S001还包括: 步骤S11:SIP信令服务器根据配置或者动态资源占用情况分配资源给流数据服务器;步骤S12:流数据接收客户端发送数据申请请求时,根据步骤S11分配的情况,选择该申请请求指定的流数据。
4.根据权利要求1所述的方法,其特征在于,在所述步骤S006中,流数据发送服务器接收到所述流数据预接收信息后: 流数据发送服务器判断该段数据流是否有数据; 是,则通过SIP信令服务器向流数据接收客户端发送确认信息; 否,则暂不做反馈,直至收到新的数据。
5.根据权利要求1或4所述的方法,其特征在于,所述步骤S005中还包含流数据接收客户端为接收该段流数据创建一接收端口,开辟相应的接收线程,所述自身的设置包含所述接收端口和接收线程,所述自身需要包含流数据接收客户端预接收的该段流数据。
6.根据权利要求5所述的方法,其特征在于,步骤S004所述分段信息包含段的数量、每个段的大小、段的起始段号、每个段按MTU分配的小段,小段对应的所有序号。
7.一种基于SIP的断点续传的可靠数据传输系统,其特征在于,包含: 流数据接收客户端用于: 通过SIP信令服务器向流数据发送服务器发送一数据申请请求, 根据自流数据发送服务器接收到的第一反馈消息中所包含的是否支持断点续传的标志,自动判断是否断点续传,是,则通过SIP信令服务器向流数据发送服务器发送分段请求, 响应自流数据发送服务器接收到分段信息自动根据自身的设置和需要,通过SIP信令服务器向流数据发送服务器发送一流数据预接收信息,所述流数据预接收信息包含请求传输的该段流数据所对应的段号、序号、流数据接收客户端的接收端口号, 根据自流数据发送服务器接收到的确认信息,通过SIP信令服务器向流数据发送服务器发送最终请求消息, 若发生网络中断或者系统认为中断,保存当前正在传输的流数据的中断点信息,所述中断点信息包含被中断传输的流数据的段号、序号、流数据接收客户端的接收端口号,网络恢复时根据从文件中读取的所述中断点信息重新申请流数据; 流数据发送服务器用于: 根据自流数据接收客户端接收到的数据申请请求,通过SIP信令服务器向流数据接收客户端返回第一反馈消息,所述第一反馈消息包含是否支持断点续传的标志, 根据自流数据接收客户端接收到的分段请求以及流数据接收客户端申请的需要传输的流数据计算分段信息,进而通过SIP信令服务器将所述分段信息发送给流数据接收客户端, 根据自流数据接收客户端接收到的流数据预接收信息,通过SIP信令服务器向流数据接收客户端发送确认信息, SIP信令服务器用于: 流数据接收客户端和流数据发送服务器之前间的消息转发。
【文档编号】H04L29/08GK104320490SQ201410633882
【公开日】2015年1月28日 申请日期:2014年11月12日 优先权日:2014年11月12日
【发明者】谭永锐, 林建锐 申请人:深圳市博康系统工程有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1