专利名称:基于sip的文件断点续传方法
技术领域:
本发明 涉及互联网通信技术领域,特别涉及一种基于SIP的文件断点续传方法。
背景技术:
在文件传输过程中,由于网络情况的不稳定,接收方很可能在文件接收完毕之前 出现网络断开的情形。当网络连接恢复正常,此时发送方有两种策略可以选择一种是从头 开始重新发送;另一种是只发送接收方没收到的部分(即所谓的断点续传),显然第二种方 案更好,不仅节约了网络资源更重要的是节省了传输时间。现在市面上关于断点续传已经提出了很多的解决方案,但是主要集中在非IP多 媒体子系统(IP Multimedia Subsystem, IMS)领域,IMS是基于会话初始协议(Session Initiation Protocol, SIP)的系统,其客户端可运行在多种终端上(如移动终端、固定终 端、PDA、台式机、笔记本电脑等)。而文件的断点续传在IMS领域还没有一个合适的解决方案。
发明内容
(一 )要解决的技术问题本发明要解决的技术问题是如何在IMS领域实现文件的断点续传,以提高传输效率。( 二 )技术方案—种基于SIP的文件断点续传方法,包括以下步骤Sl 文件接收方接收发送方的文件传输请求;S2 所述文件接收方构造应答,并将文件传输请求中包含的SIPURI和文件名称与 本地记录的发送方的SIP URI和文件名称进行匹配,若匹配上,则将上次断点产生时未接收 到的文件区块的位置信息添加到所述应答的SDP消息体中;S3:文件发送方接收所述应答,判断其中是否包含所述未接收到的文件区块的位 置信息,若未包含该区块的位置信息,则传输整个文件,否则只传输接收方未接收到的文件 区块。其中,若所述方法中使用UDP协议进行文件传输,所述步骤S2中的未接收到的文 件区块的位置信息包括没有收到的区块在文件中的起始地址和终止地址。其中,若所述方法中使用TCP协议进行文件传输,所述步骤S2中未接收到的文件 区块的位置信息为已接收到的部分文件的末尾地址。其中,在网络中断时,还包括所述文件接收方在本地记录断点信息的步骤,所述断 点信息包括发送方的SIP URI、正在发送的文件名称和未接收到的文件区块的位置信息。其中,若所述方法中使用UDP协议进行文件传输,则所述步骤S2和S3之间还包括 控制所述未接收到的文件区块的位置信息长度的步骤将未接收到的区块按在文件中的起始地址由小到大的顺序排序,并依次按字符串累加起始地址和终止地址,若累加到的长度过长时,则把最后一个区块的终止地址设为文 件的长度。(三)有益效果本发明通过SIP及SDP协议使发送方通过会话协商了解接收方当前未收到的文件 内容的准确位置,实现了 IMS领域的文件断点续传,使发送方再次发送文件时避免了重传 所有内容,从而节约了网络资源,提高了传输效率。
图1是本发明实施例的方法流程图。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施 例用于说明本发明,但不用来限制本发明的范围。本发明利用会话初始协议(Session Initiation Protocol,SIP)及会话描述协议 (Session Description Protocol, SDP)的扩展性给出了在IMS领域中文件断点续传的一个 新的解决方案。该方案通过会话协商使发送方了解接收方哪些文件内容没有收到,发送方 再次发送时只发送接收方没有收到的文件内容,避免了不必要的重传。具体步骤如图1所 示步骤S101,在网络恢复连接时,文件接收方收到发送方的文件传输请求,如一个 Invite请求,该请求的SDP消息体中包含了所述发送方的SIP通用资源标识符(Uniform Resource Identifier, URI)和发送的文件名称等信息。步骤S102,所述文件接收方构造应答,如2000K,并将Invite中包含的SIP URI和 文件名称与本地记录的发送方的SIP URI和文件名称进行匹配。在上次网络中断时,接收 方记录断点信息,包括发送方的SIP URI、正在发送的文件名称和未接收到的文件区块的位
直fe息。步骤S103,判断是否匹配,即判断断点信息中的SIP URI和文件名称是否和 Invite请求中的SIP URI和文件名称分别相同。若相同,则执行步骤S104,否则执行步骤 S105。步骤S104,将上次断点产生时未接收到的文件区块的位置信息添加到所述2000K 的SDP消息体中,具体地,在SDP消息体的字段中添加一个a行,该行用于记录未接收到的 文件区块的位置信息。该a行如表1中最后一行所示,以每个未接收到的区块的起始地址 和终止地址组成字符串来表示未收到的文件区块信息。如100-200表示位于文件的地址 为100到200之间的区块未收到。表1添加了未接收到的文件区块的位置信息的SDP UDP为不可靠传输协议,在传输过程中可能会丢包,而且发送的顺序和接收的顺序 不能保证完全一致,因此接收方接收到的文件有一些缺失的区块,接收方将这些缺失的区 块各自的起始地址和终止地址位置作为未接收到的文件区块的位置信息添加到2000K的 SDP消息体中。若缺失的区块过多,导致2000K的SDP中的所有区块信息长度过大,则需要对 该长度进行限制,减少区块信息的数量,如长度超过最大传输单元(Maximum Transmission Unit, MTU)的长度。限制的原则是对所有的区块按照起始地址由小到大的顺序进行排序, 并以字符串方式累加起始地址和终止地址,若累加的字符串长度超过比较大,超过定义的 限制,此时把最后一个区块的终止地址改为文件的长度。如,一个文件长度为800,接收方没 有接收到100-200、300-400和500-600的内容,若此时累加到前两个未接收到的区块的起 始和终止地址后写入a行的内容(100-200,300-400)超过其限制长度,则将写入a行的内 容改为 100-200,300-800。对于TCP传输来讲,由于发送的顺序和接收的顺序是完全一致的,所以如果出现 网络中断时,接收方只需记住中断发生时已经接收的文件位置,即已接收到的部分文件的 末尾地址,并将该末尾地址作为未接收到的文件区块的位置信息添加到所述2000K的SDP 消息体中。步骤S105,将上述2000K返回给文件发送方。步骤S106,发送方判断所述2000K中的SDP消息体中是否含有未接收到的文件区 块的位置信息,若不包含,则执行步骤S107,否则执行步骤S108。步骤S107,发送方按SIP消息体中的传输协议将整个文件传输给接收方。步骤S108,发送方按SIP消息体中的传输协议只发送未接收到的文件区块的位置 信息中指定的区块给文件接收方。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通 技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有 等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
权利要求
一种基于SIP的文件断点续传方法,其特征在于,包括以下步骤S1文件接收方接收发送方的文件传输请求;S2所述文件接收方构造应答,并将文件传输请求中包含的SIPURI和文件名称与本地记录的发送方的SIP URI和文件名称进行匹配,若匹配上,则将上次断点产生时未接收到的文件区块的位置信息添加到所述应答的SDP消息体中;S3文件发送方接收所述应答,判断其中是否包含所述未接收到的文件区块的位置信息,若未包含该区块的位置信息,则传输整个文件,否则只传输接收方未接收到的文件区块。
2.如权利要求1所述的基于SIP的文件断点续传方法,其特征在于,若所述方法中使 用UDP协议进行文件传输,所述步骤S2中的未接收到的文件区块的位置信息包括没有收 到的区块在文件中的起始地址和终止地址。
3.如权利要求1所述的基于SIP的文件断点续传方法,其特征在于,若所述方法中使用 TCP协议进行文件传输,所述步骤S2中未接收到的文件区块的位置信息为已接收到的部分 文件的末尾地址。
4.如权利要求2或3所述的基于SIP的文件断点续传方法,其特征在于,在网络中断 时,还包括所述文件接收方在本地记录断点信息的步骤,所述断点信息包括发送方的SIP URI、正在发送的文件名称和未接收到的文件区块的位置信息。
5.如权利要求2所述的基于SIP的文件断点续传方法,其特征在于,若所述方法中使 用UDP协议进行文件传输,则所述步骤S2和S3之间还包括控制所述未接收到的文件区块 的位置信息长度的步骤将未接收到的区块按在文件中的起始地址由小到大的顺序排序,并依次按字符串累加 起始地址和终止地址,若累加到的长度过长时,则把最后一个区块的终止地址设为文件的 长度。
全文摘要
本发明公开了一种基于SIP的文件断点续传方法,包括文件接收方接收发送方的文件传输请求;所述文件接收方构造应答,并将文件传输请求中包含的SIP URI和文件名称与本地记录的发送方的SIPURI和文件名称进行匹配,若匹配上,则将上次断点产生时未接收到的文件区块的位置信息添加到所述应答的SDP消息体中;文件发送方接收所述应答,判断其中是否包含所述区块的位置信息,若未包含区块的位置信息,则传输整个文件,否则只传输接收方未接收到的文件区块。本发明实现了IMS领域的文件断点续传方法,使发送方再次发送文件时避免了重传所有内容,从而节约了网络资源,提高了传输效率。
文档编号H04L29/06GK101883144SQ20101021318
公开日2010年11月10日 申请日期2010年6月30日 优先权日2010年6月30日
发明者刘克雄, 宋志远 申请人:北京神州泰岳软件股份有限公司