CN103368923B - 消息传输处理方法及装置 - Google Patents
消息传输处理方法及装置 Download PDFInfo
- Publication number
- CN103368923B CN103368923B CN201210101766.XA CN201210101766A CN103368923B CN 103368923 B CN103368923 B CN 103368923B CN 201210101766 A CN201210101766 A CN 201210101766A CN 103368923 B CN103368923 B CN 103368923B
- Authority
- CN
- China
- Prior art keywords
- message
- terminal
- msrp
- tcp
- session
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种消息传输处理方法及装置,该方法包括以下步骤:接收第一终端发送的MSRP消息,判断MSRP消息容量是否超过预置消息容量;若是,则将第一终端TCP链路的接收状态置为接收超大消息状态,将MSRP消息进行超大消息传输处理后转发至与第一终端相关联的第二终端;解除所述会话双方的关联关系,重置第一终端TCP链路接收状态为正常状态。本发明通过识别MSRP消息容量超过预置消息容量并在会话双方间建立会话关联链路、在整个转发过程中对异常情况实时处理的方法,实现AS对超大MSRP消息传输时快速处理和转发的有益效果,避免超大消息传递带来的系统资源占用和性能影响,提高系统性能。
Description
技术领域
本发明涉及网络技术领域,尤其涉及一种消息传输处理方法及装置。
背景技术
现有的NGN(NextGenerationNetwork,下一代网络)或IMS(IPMultimediaSystem,IP(InternetProtocol,互联网协议)多媒体系统)网络中,MSRP(MessageSessionRelayProtocol,消息会话中继协议)AS(ApplicationServer,应用服务器)基于MSRP协议进行会话模式的大消息传输,管理终端之间的会话,并向上层业务开放能力以实现复杂的业务功能,如点对点聊天,群组聊天和文件传输等。
对于会话间传输的每一包的消息大小,在IETF(InternetEngineeringTaskForce,互联网工程任务组)文档中并没有规定MSRP协议允许传输的上限,只是建议在消息大小超过2048字节时进行分包传输;因此MSRPAS需要具备接收并传输超过单包2048字节的MSRP消息的能力。在终端之间进行基于会话的消息传输时,MSRPAS是作为B2BUA(Back-to-BackUserAgent,反面对反面相叠的用户代理)向终端提供各种服务的。当两个终端需要传输消息时,MSRPAS需要分别跟两个终端建立MSRP会话,并维护两个会话之间的关联关系。
现有技术中,终端A如果向终端B发送超大的单包MSPR消息,MSRPAS在TCP(TransmissionControlProtocol,传输控制协议)链路上接收完该消息内容后,先将该消息缓存,并进行编解码操作后再转发给B。现有技术的这种处理方式占用了服务器的大量内存,并且由于需要针对整个消息内容进行编解码,导致系统整个运行效率低下。如果同时存在多个会话进行超大消息的传输,那么MSRPAS的性能将急剧下降,无法满足数据传输时的性能要求。
发明内容
本发明的主要目的是提供一种消息传输处理方法,旨在实现MSRPAS对超大MSRP消息传输时快速处理和转发,避免超大消息传递带来的系统资源占用和性能影响,提高系统性能。
本发明提供了一种消息传输处理方法,包括以下步骤:
接收第一终端发送的消息会话中继协议MSRP消息,判断所述MSRP消息容量是否超过预置消息容量;
若是,则将所述第一终端传输控制协议TCP链路的接收状态置为接收超大消息状态,将所述MSRP消息进行超大消息传输处理后转发至与所述第一终端相关联的第二终端;
解除所述第一终端与所述第二终端的关联关系,重置所述第一终端TCP链路的接收状态为正常状态。
优选地,所述判断MSRP消息容量是否超过预置消息容量的步骤具体包括:
判断所述MSRP消息的第一包TCP信息中是否包含MSRP消息结束行;
若否,则解析所述MSRP消息的头域,获取所述MSRP消息的字节范围;
判断所述MSRP消息的字节范围是否大于或等于预置最大缓存值;若是,则表示所述MSRP消息超过预置消息容量。
优选地,所述将所述MSRP消息进行超大消息传输处理后转发至与所述第一终端相关联的第二终端的步骤具体包括:
将所述MSRP消息上报会话管理层,并对所述MSRP消息中的第一包TCP信息进行解码;
将解码后的TCP信息进行编码,并将编码后的TCP信息转发至与所述第一终端相关联的第二终端;
根据所述TCP信息,构造MSRP消息事务识别码ID并保存在所述第二终端,同时建立所述第一终端与所述第二终端的会话关联TCP链路;
将接收的所述MSRP消息中后续的TCP信息通过所述会话关联TCP链路发送至所述第二终端。
优选地所述对TCP信息进行编码和解码时忽略所述TCP信息中的结束行。
优选地,所述消息传输处理方法还包括:
在MSRP消息传输过程中对异常情况进行处理。
本发明还提供了一种消息传输处理装置,包括:
MSRP消息识别模块,用于接收第一终端发送的MSRP消息,判断所述MSRP消息容量是否超过预置消息容量;
MSRP消息处理模块,用于在所述MSRP消息容量超过预置消息容量时,将所述第一终端TCP链路的接收状态置为接收超大消息状态,将所述MSRP消息进行超大消息传输处理后转发至与所述第一终端相关联的第二终端;
MSRP消息处理结束模块,用于解除所述第一终端与所述第二终端的关联关系,重置所述第一终端TCP链路的接收状态为正常状态。
优选地,所述MSRP消息识别模块具体包括:
结束行识别单元,用于判断所述MSRP消息的第一包TCP信息中是否包含MSRP消息结束行;
头域解析单元,用于在所述MSRP消息的第一包TCP信息中不包含MSRP消息结束行时,解析所述MSRP消息的头域,获取所述MSRP消息的字节范围;
消息判断单元,用于判断所述MSRP消息的字节范围是否大于或等于预置最大缓存值;若是,则表示所述MSRP消息容量超过预置消息容量。
优选地,所述MSRP消息处理模块具体包括:
信息解码单元,用于将所述MSRP消息上报会话管理层,并对所述MSRP消息中的第一包TCP信息进行解码;
信息编码单元,用于将解码后的TCP信息进行编码,并将编码后的TCP信息转发至与所述第一终端相关联的第二终端;
链路建立单元,用于根据所述TCP信息,构造MSRP消息事务ID并保存在所述第二终端,同时建立所述第一终端与所述第二终端的会话关联TCP链路;
信息发送单元,用于将接收的所述MSRP消息中后续的TCP信息通过所述会话关联TCP链路发送至所述第二终端。
优选地,所述对TCP信息进行编码和解码时忽略所述TCP信息中的结束行。
优选地,所述消息传输处理装置还包括:
异常处理模块,用于在MSRP消息传输过程中对异常情况进行处理。
本发明通过识别所传输的信息为超大MSRP消息并在会话双方间建立会话关联链路、将超大MSRP消息通过会话关联链路直接转发、同时在整个转发过程中能够对异常情况进行实时处理的方法,实现了MSRPAS对超大MSRP消息传输时快速处理和转发的有益效果,避免了超大消息传递带来的系统资源占用和性能影响,提高了系统性能。
附图说明
图1是本发明消息传输处理方法一实施例流程示意图;
图2是本发明消息传输处理方法中,基于MSRPAS的消息传输系统一实施例构架图;
图3是本发明消息传输处理方法中,终端A与终端B基于MSRPAS传输消息一实施例信令流程图;
图4是本发明消息传输处理方法中,超过预置消息容量的MSRP消息传输一实施例信令流程图;
图5是本发明消息传输处理方法中,判断MSRP消息容量是否超过预置消息容量一实施例流程示意图;
图6是本发明消息传输处理方法中,将MSRP消息进行超大消息传输处理后转发至与所述第一终端相关联的第二终端一实施例流程示意图;
图7是本发明消息传输处理装置第一实施例结构示意图;
图8是本发明消息传输处理装置中MSRP消息识别模块一实施例结构示意图;
图9是本发明消息传输处理装置中MSRP消息处理模块一实施例结构示意图;
图10是本发明消息传输处理装置第二实施例结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
以下结合说明书附图及具体实施例进一步说明本发明的技术方案。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明实施例中所述超大MSRP消息均指MSRP消息容量超过预置消息容量的MSRP消息;在文中出现所述超大MSRP消息时,将不再一一赘述。
参照图1,图1是本发明消息传输处理方法一实施例流程示意图。如图1所示,本发明消息传输处理方法具体包括以下步骤:
步骤S01、接收第一终端发送的MSRP消息;
在一优选的实施例中,本发明是基于MSRP协议的AS实现。终端A通过AS向终端B发起会话邀请,终端B接受邀请后,AS分别于终端A和终端B建立MSRP会话,并将两个会话进行关联。参照图2,图2是本发明消息传输处理方法中,基于MSRPAS的消息传输系统一实施例构架图。如图2所示,终端A与MSRPAS之间建立MSRP会话,终端B也与MSRPAS之间创建MSRP会话。终端A发送给终端B的MSRP消息通过MSRPAS处理,与业务交互后再转发给终端B。
步骤S02、判断所述MSRP消息容量是否超过预置消息容量;若是,则执行步骤S03;若否,则执行步骤S04;
MSRPAS接收到MSRP消息后,首先根据所述MSRP消息中的第一包TCP信息,判断所述MSRP消息容量是否超过预置消息容量;
步骤S03、将所述第一终端TCP链路的接收状态置为接收超大消息状态,将所述MSRP消息进行超大消息传输处理后转发至与所述第一终端相关联的第二终端;
若MSRPAS所接收的MSRP消息的容量超过预置消息容量,则将所述第一终端(终端A)TCP链路的接收状态置为接收超大消息状态,并将所述MSRP消息进行超大消息传输处理后转发至第二终端(终端B)。所述终端A与终端B是互相关联的。参照图3,图3是本发明消息传输处理方法中,终端A与终端B基于MSRPAS传输消息一实施例信令流程图。如图3所示,在一优选的实施例中,本发明消息传输处理方法中,终端A终端B发出消息传输请求,SIP(SessionInitiationProtocol,会话发起协议)的INVITE(邀请信令)请求到达MSRPAS,SDP(SessionDescriptionProtocol,会话描述协议)中携带MSRP会话协商信息。MSRPAS外呼终端B,INVITE请求的SDP中携带AS的MSRP会话协商信息。终端B收到INVITE请求后,回复200OK响应,SDP中携带终端B的MSRP会话协商信息。MSRPAS向终端A发送200OK(确认)响应,SDP中携带AS的MSRP会话协商信息。终端A收到200OK响应后,回复ACK(acknowledgementcharacter,确认字符),并根据SDP中的MSRP会话协商信息向AS发送TCP建立链路请求,与AS建立TCP链路。此时,终端A与AS之间的MSRP会话建立完成。AS收到终端A的ACK请求后向终端B发送ACK请求。终端B收到ACK请求后,根据收到的SDP中AS的MSRP会话协商信息向AS发送TCP建立链路请求,与AS建立TCP链路。此时,终端B与AS之间的MSRP会话建立完成。MSRPAS将终端A的会话和终端B的会话关联起来。终端A向AS发送MSRPSEND(发送)请求,所述MSRPSEND请求的消息体为终端A需要发送给终端B的消息。AS收到所述MSRPSEND请求后,对所述MSRP消息进行解码并通过会话管理层转发给关联的终端B会话,并将再次编码后的MSRP消息转发给终端B。终端B收到MSRPSEND请求后,回复200OK响应。AS收到200OK响应后,转发给终端A,完成该MSRP消息的传输。之后终端A可以继续给终端B发送多个MSRP消息直至全部发送完毕。
步骤S04、按照传统的方法进行信息传输;
若MSRPAS所接收的MSRP消息不是超大MSRP消息,则按照传统的方法进行信息传输:缓存所述MSRP消息并继续接收后续TCP信息包,直至所述MSRP消息全部接收完毕,随后进行解码并上报会话管理层再后,转发给相关联的终端B会话,最终完成该MSRP消息的传输。
步骤S05、解除所述第一终端与所述第二终端的关联关系,重置所述第一终端TCP链路的接收状态为正常状态。
终端A完成全部消息传输后,发送SIP的终端BYE(结束)请求给MSRP终端AS,终端AS转发给终端B。终端B收到后,回复200OK响应,终端AS再转发给终端A。此时终端A与终端B的会话结束。AS解除终端A与终端B的关联关系,将终端A的TCP链路接收状态重置为正常状态。
在一优选的实施例中,本发明消息传输处理方法完整的信令流程图如图4所示。参照图4,图4是本发明消息传输处理方法中,超大MSRP消息传输一实施例信令流程图。如图4所示,终端A与终端B按照图3所示流程分别于AS建立MSRP会话后,终端A通过AS向终端B发送单包超大MSRP消息。MSRP收到该MSRP消息的第1包TCP后,判断所述MSRP消息是否符合超大MSRP消息条件;若是,则置终端A的TCP链路接收状态为接收超大消息状态,将消息解码上报会话管理层并转发给终端B。消息解码和编码时忽略所述MSRP消息中的endline(结束行)。MSRPAS建立终端A会话和终端B会话的TCP链路关联关系,使终端A和终端B之间的TCP链路形成直接的通路。MSRPAS接收到终端A的后续TCP包后,直接通过关联的TCP链路转发给终端B,不进行缓存且不上报会话管理层。MSRPAS收到最后1包TCP消息后,修改所述MSRP消息中(endline)的消息事务ID作为终端B会话中的消息事务ID,然后再转发给终端B。MSRPAS解除终端A和终端B之间的TCP链路关联关系,并重置终端A会话TCP链路的接收状态为正常状态。终端B收到超大MSRP消息的最后1包TCP后,回复200OK响应。MSRPAS收到200OK响应后转发给终端A。终端A发送完消息后向AS发送BYE结束会话。MSRPAS转发BYE给终端B。此时终端A与终端B的会话结束。
本发明消息传输处理方法还包括在MSRP信息传输过程中,对异常情况的处理。在一优选的实施例中,在MSRP信息传输过程中,对异常情况的处理具体包括:
若AS收到终端A发送的超大MSRP消息的第1包TCP信息之后的TCP信息时,关联的终端B的TCP链路还未建立,则AS将缓存当前收到的所有TCP包直到终端B的TCP链路建立成功后,再转发所有TCP消息。若接收缓存填满后,终端B的TCP链路还未建立,则丢弃缓存中的全部消息,重置终端A的TCP链路的接收状态为正常状态。
若超大MSRP消息还未全部接收完成时,又收到新的MSRP消息,则AS将终端A的TCP链路的接收状态置为正常状态,同时解除终端A和终端B之间会话关联TCP链路的关联关系。
若超大MSRP消息还未全部接收完成时,终端A或终端B的会话被关闭,则AS将释放终端A和终端B双方的会话。
若超大MSRP消息的最后包含结束行的一包TCP信息中,结束行事务ID与所述MSRP消息第一包TCP信息中的事务ID不一致,则AS将认为传输出现错误,向终端A回复403响应(IETF制定的RFC4975中的信令),并释放终端A和终端B的会话。
若超大MSRP消息传输时间超过AS设置的事务超时时间,导致事务超时,则AS向终端A回复403响应,并释放终端A和终端B的会话。
本发明消息传输处理方法通过识别所传输的信息容量超过预置消息容量并在会话双方间建立会话关联链路、将超大MSRP消息通过会话关联链路直接转发、同时在整个转发过程中能够对异常情况进行实时处理的方法,实现了MSRPAS对超大MSRP消息传输时快速处理和转发的有益效果,避免了超大消息传递带来的系统资源占用和性能影响,提高了系统性能。
参照图5,图5是本发明消息传输处理方法中,判断MSRP消息容量是否超过预置消息容量一实施例流程示意图。如图5所示,本发明消息传输处理方法中,判断MSRP消息容量是否超过预置消息容量的步骤具体包括:
步骤S11、判断所述MSRP消息的第一包TCP信息中是否包含MSRP消息结束行;若是,则执行步骤S12;若否,则执行步骤S13;
步骤S12、所述MSRP消息为普通消息;
终端A通过MSRPAS向终端B传输单包超大MSRP消息。MSRPAS通过TCP链路接收到该消息的第1包TCP后,若在该包消息中找到MSRP消息结束行,则AS将该MSRP消息按照传统方法处理,缓存该消息并继续接收后续TCP包直至该包MSRP消息全部接收完毕,随后进行解码并上报会话管理层再转发给相关联的终端B会话,最终完成该MSRP消息的传输。
步骤S13、解析所述MSRP消息的头域,获取所述MSRP消息的字节范围;
若未在该包消息中找到MSRP消息结束行,则首先解析该MSRP消息的头域,获取到Byte-Range即停止解析。然后,分析Byte-Range头域的值。在一优选的实施例中,所述Byte-Range头域值形如“n-m/t”,其中n表示该包消息的起始字节位置,m表示该包消息的结束字节位置,t表示全部消息的大小,m减去n的值即表示该包消息的大小,单位Byte(字节)。根据RFC4975协议(IETF规定的一种协议),m可以取值为“*”,表示结束位置以收到的字节数为准。例如有一包MSRP消息的Byte-Range头域内容为1-3000/10000,那么就表示该包MSRP消息的内容为总大小为10000B的消息里第1B到3000B范围的内容。
步骤S14、判断所述MSRP消息的字节范围是否大于或等于预置最大缓存值;若是,则执行步骤S15;若否,则返回执行步骤S12、所述MSRP消息为普通消息;
步骤S15、所述MSRP消息容量超过预置消息容量。
判断所述MSRP消息的字节范围是否大于或等于预置最大缓存值。在一优选的实施例中,假设AS针对单包MSRP消息所允许的预置最大缓存为hB,若m-n小于或等于h,或者m为“*”且t-n小于或等于h,即所述MSRP消息的字节范围是小于预置最大缓存值,则AS将该MSRP消息按照传统方法处理,在此不再赘述传统的MSRP消息处理方法。若m-n的值大于或等于h,或者m为“*”且t-n的值大于h,即所述MSRP消息的字节范围是大于或等于预置最大缓存值,则AS将该MSRP消息视为超大MSRP消息,置该TCP链路接收状态为接收超大消息状态。
本发明消息传输处理方法通过判断所述MSRP消息容量是否超过预置消息容量的方法,实现了MSRPAS对超大MSRP消息传输时快速处理和转发的有益效果,避免了超大消息传递带来的系统资源占用和性能影响,提高了系统性能。
参照图6,图6是本发明消息传输处理方法中,将MSRP消息进行超大消息传输处理后转发至与所述第一终端相关联的第二终端一实施例流程示意图。如图6所示,本发明消息传输处理方法中,将MSRP消息进行超大消息传输处理后转发至与所述第一终端相关联的第二终端的步骤具体包括:
步骤S21、将所述MSRP消息上报会话管理层,并对所述MSRP消息中的第一包TCP信息进行解码;
当所述MSRP消息为超大MSRP消息时,AS接收到所述MSRP消息的第一包TCP信息后,将所述TCP信息上报会话管理层;会话管理层收到该TCP包内容后,对所述MSRP消息中的第一包TCP信息进行解码。对于TCP链路接收状态为接收超大消息状态的,会话管理层在进行MSRP消息解码时,忽略结束行的解析。
步骤S22、将解码后的TCP信息进行编码,并将编码后的TCP信息转发至与所述第一终端相关联的第二终端;
在将所述TCP信息转发给与终端A相关联的终端B之前,AS要对解码后的TCP信息进行编码后,再发送给终端B;在一优选的实施例中,对所述TCP信息进行编码时,同样忽略对结束行的编码。
步骤S23、根据所述TCP信息,构造MSRP消息事务ID并保存在所述第二终端,同时建立所述第一终端与所述第二终端的会话关联TCP链路;
根据所述TCP信息,构造新的MSRP消息事务ID,并在终端B的TCP链路数据区将所述新的消息事务ID进行保存,所述新的消息事务ID用于所述MSRP消息最后一包TCP消息的转发;同时建立终端A与终端B的会话关联TCP链路,将终端A与终端B的TCP链路数据区进行关联。
步骤S24、将接收的所述MSRP消息中后续的TCP信息通过所述会话关联TCP链路发送至所述第二终端。
终端A与终端B的会话关联TCP链路建立完成后,AS后续接收到所述MSRP消息中的TCP信息时,可以将所述TCP信息通过所述会话关联TCP链路直接发送给终端B。
本发明消息传输处理方法通过将所述MSRP消息进行超大消息传输处理后转发至与所述第一终端相关联的第二终端的方法,实现了MSRPAS对超大MSRP消息传输时快速处理和转发的有益效果,避免了超大消息传递带来的系统资源占用和性能影响,提高了系统性能。
参照图7,图7是本发明消息传输处理装置第一实施例结构示意图。如图7所示,本发明消息传输处理装置包括:
MSRP消息识别模块01,用于接收第一终端发送的MSRP消息,判断所述MSRP消息容量是否超过预置消息容量;
终端A通过AS向终端B发起会话邀请,终端B接受邀请后,AS分别于终端A和终端B建立MSRP会话,并将两个会话进行关联。终端A与MSRPAS之间建立MSRP会话,终端B也与MSRPAS之间创建MSRP会话。终端A发送给终端B的MSRP消息通过MSRPAS处理,与业务交互后再转发给终端B。MSRPAS接收到MSRP消息后,MSRP消息识别模块01首先根据所述MSRP消息中的第一包TCP信息,判断所述MSRP消息容量是否超过预置消息容量。
MSRP消息处理模块02,用于在所述MSRP消息容量超过预置消息容量时,将所述第一终端TCP链路的接收状态置为接收超大消息状态,将所述MSRP消息进行超大消息传输处理后转发至与所述第一终端相关联的第二终端;
若MSRP消息识别模块01识别出MSRPAS所接收的MSRP消息容量超过预置消息容量,则MSRP消息处理模块02将所述终端A的TCP链路的接收状态置为接收超大消息状态,并将所述MSRP消息进行超大消息传输处理后转发至终端B。所述终端A与终端B是互相关联的。
MSRP消息结束模块03,用于解除所述第一终端与所述第二终端的关联关系,重置所述第一终端TCP链路的接收状态为正常状态。
终端A完成全部消息传输后,发送SIP的终端BYE(结束)请求给MSRP终端AS,终端AS中的MSRP消息结束模块03将所述BYE请求转发给终端B。终端B收到后,回复200OK响应,终端AS再转发给终端A。此时终端A与终端B的会话结束。MSRP消息结束模块03解除终端A与终端B的关联关系,将终端A的TCP链路接收状态重置为正常状态。
本发明消息传输处理装置通过识别所传输的信息容量超过预置消息容量并在会话双方间建立会话关联链路、将所述MSRP消息通过会话关联链路直接转发、同时在整个转发过程中能够对异常情况进行实时处理的方法,实现了MSRPAS对超大MSRP消息传输时快速处理和转发的有益效果,避免了超大消息传递带来的系统资源占用和性能影响,提高了系统性能。
参照图8,图8是本发明消息传输处理装置中MSRP消息识别模块一实施例结构示意图。如图8所示,本发明消息传输处理装置中,MSRP消息识别模块01具体包括:
结束行识别单元011,用于判断所述MSRP消息的第一包TCP信息中是否包含MSRP消息结束行;
终端A通过MSRPAS向终端B传输单包MSRP消息时,MSRPAS通过TCP链路接收到该消息的第1包TCP后,若结束行识别单元011在该包消息中找到MSRP消息结束行,则结束行识别单元011通知AS将该MSRP消息按照传统方法处理。传统的处理方法为:缓存该消息并继续接收后续TCP包直至该包MSRP消息全部接收完毕,随后进行解码并上报会话管理层再转发给相关联的终端B会话,最终完成该MSRP消息的传输。
头域解析单元012,用于在所述MSRP消息的第一包TCP信息中不包含MSRP消息结束行时,解析所述MSRP消息的头域,获取所述MSRP的字节范围;
若结束行识别单元011未在该包消息中找到MSRP消息结束行,则头域解析单元012首先解析该MSRP消息的头域,获取到Byte-Range即停止解析。然后,头域解析单元012分析Byte-Range头域的值。在一优选的实施例中,所述Byte-Range头域值形如“n-m/t”,其中n表示该包消息的起始字节位置,m表示该包消息的结束字节位置,t表示全部消息的大小,m减去n的值即表示该包消息的大小,单位Byte(字节)。根据RFC4975协议(IETF规定的一种协议),m可以取值为“*”,表示结束位置以收到的字节数为准。例如有一包MSRP消息的Byte-Range头域内容为1-3000/10000,那么就表示该包MSRP消息的内容为总大小为10000B的消息里第1B到3000B范围的内容。
消息判断单元013,用于判断所述MSRP消息的字节范围是否大于或等于预置最大缓存值;若是,则表示所述MSRP消息为超大MSRP消息。
消息判断单元013判断所述MSRP消息的字节范围是否大于或等于预置最大缓存值。在一优选的实施例中,假设AS针对单包MSRP消息所允许的预置最大缓存为hB,若m-n小于或等于h,或者m为“*”且t-n小于或等于h,即所述MSRP消息的字节范围是小于预置最大缓存值,则超大消息判断单元013将该MSRP消息按照传统方法处理,在此不再赘述传统的MSRP消息处理方法。若m-n的值大于或等于h,或者m为“*”且t-n的值大于h,即所述MSRP消息的字节范围是大于或等于预置最大缓存值,则超大消息判断单元013将该MSRP消息视为超大MSRP消息,置该TCP链路接收状态为接收超大消息状态。
本发明消息传输处理装置通过判断所述MSRP消息是否为超大MSRP消息的方法,实现了MSRPAS对超大MSRP消息传输时快速处理和转发的有益效果,避免了超大消息传递带来的系统资源占用和性能影响,提高了系统性能。
参照图9,图9是本发明消息传输处理装置中超大MSRP消息处理模块一实施例结构示意图。如图9所示,本发明消息传输处理装置中,MSRP消息处理模块02具体包括:
信息解码单元021,用于将所述MSRP消息上报会话管理层,并对所述MSRP消息中的第一包TCP信息进行解码;
当所述MSRP消息为超大MSRP消息时,AS接收到所述MSRP消息的第一包TCP信息后,信息解码单元021将所述TCP信息上报会话管理层;会话管理层收到该TCP包内容后,信息解码单元021对所述MSRP消息中的第一包TCP信息进行解码。对于TCP链路接收状态为接收超大消息状态的,会话管理层的信息解码单元021在进行MSRP消息解码时,忽略结束行的解析。
信息编码单元022,用于将解码后的TCP信息进行编码,并将编码后的TCP信息转发至与所述第一终端相关联的第二终端;
在将所述TCP信息转发给与终端A相关联的终端B之前,信息编码单元022要对解码后的TCP信息进行编码后,再发送给终端B;在一优选的实施例中,信息编码单元022对所述TCP信息进行编码时,同样忽略对结束行的编码。
链路建立单元023,用于根据所述TCP信息,构造MSRP消息事务ID并保存在所述第二终端,同时建立所述第一终端与所述第二终端的会话关联TCP链路;
链路建立单元023根据所述TCP信息,构造新的MSRP消息事务ID,并在终端B的TCP链路数据区将所述新的MSRP消息事务ID进行保存,所述新的MSRP消息事物ID用于所述MSRP消息最后一包TCP消息的转发;同时链路建立单元023建立终端A与终端B的会话关联TCP链路,将终端A与终端B的TCP链路数据区进行关联。
信息发送单元024,用于将接收的所述MSRP消息中后续的TCP信息通过所述会话关联TCP链路发送至所述第二终端。
终端A与终端B的会话关联TCP链路建立完成后,AS后续接收到所述MSRP消息中的TCP信息时,信息发送单元024可以将所述TCP信息通过所述会话关联TCP链路直接发送给终端B。
本发明消息传输处理装置通过将所述MSRP消息进行超大消息传输处理后转发至与所述第一终端相关联的第二终端的方法,实现了MSRPAS对超大MSRP消息传输时快速处理和转发的有益效果,避免了超大消息传递带来的系统资源占用和性能影响,提高了系统性能。
参照图10,图10是本发明消息传输处理装置第二实施例结构示意图。如图10所示,本发明消息传输处理装置还包括:
异常处理模块04,用于在MSRP消息传输过程中对异常情况进行处理。
本发明消息传输处理装置还包括在MSRP信息传输过程中,异常处理模块04对异常情况的处理。
在一优选的实施例中,MSRP信息传输过程中,异常处理模块04对异常情况的处理具体包括:
若AS收到终端A发送的超大MSRP消息的第1包TCP信息之后的TCP信息时,关联的终端B的TCP链路还未建立,则异常处理模块04将缓存当前收到的所有TCP包直到终端B的TCP链路建立成功后,再转发所有TCP消息。若接收缓存填满后,终端B的TCP链路还未建立,则丢弃缓存中的全部消息,重置终端A的TCP链路的接收状态为正常状态。
若超大MSRP消息还未全部接收完成时,又收到新的MSRP消息,则异常处理模块04将终端A的TCP链路的接收状态置为正常状态,同时解除终端A和终端B之间会话关联TCP链路的关联关系。
若超大MSRP消息还未全部接收完成时,终端A或终端B的会话被关闭,则异常处理模块04将释放终端A和终端B双方的会话。
若超大MSRP消息的最后包含结束行的一包TCP信息中,结束行事务ID与所述MSRP消息第一包TCP信息中的事务ID不一致,则异常处理模块04将认为传输出现错误,向终端A回复403响应(IETF制定的RFC4975中的信令),并释放终端A和终端B的会话。
若超大MSRP消息传输时间超过AS设置的事务超时时间,导致事务超时,则异常处理模块04向终端A回复403响应,并释放终端A和终端B的会话。
本发明消息传输处理装置通过在MSRP消息传输过程中对异常情况进行处理的方法,实现了MSRPAS对超大MSRP消息传输时快速处理和转发的有益效果,避免了超大消息传递带来的系统资源占用和性能影响,提高了系统性能。
以上所述仅为本发明的优选实施例,并非因此限制其专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种消息传输处理方法,其特征在于,包括以下步骤:
接收第一终端发送的消息会话中继协议MSRP消息,判断所述MSRP消息容量是否超过预置消息容量;
若是,则将所述第一终端传输控制协议TCP链路的接收状态置为接收超大消息状态,将所述MSRP消息上报会话管理层,并对所述MSRP消息中的第一包TCP信息进行解码;
将解码后的TCP信息进行编码,并将编码后的TCP信息转发至与所述第一终端相关联的第二终端;
根据所述TCP信息,构造MSRP消息事务识别码ID并保存在所述第二终端,同时建立所述第一终端与所述第二终端的会话关联TCP链路;
将接收的所述MSRP消息中后续的TCP信息通过所述会话关联TCP链路发送至所述第二终端;
解除所述第一终端与所述第二终端的关联关系,重置所述第一终端TCP链路的接收状态为正常状态。
2.根据权利要求1所述的消息传输处理方法,其特征在于,所述判断MSRP消息容量是否超过预置消息容量的步骤具体包括:
判断所述MSRP消息的第一包TCP信息中是否包含MSRP消息结束行;
若否,则解析所述MSRP消息的头域,获取所述MSRP消息的字节范围;
判断所述MSRP消息的字节范围是否大于或等于预置最大缓存值;若是,则表示所述MSRP消息超过预置消息容量。
3.根据权利要求1所述的消息传输处理方法,其特征在于,所述对TCP信息进行编码和解码时忽略所述TCP信息中的结束行。
4.根据权利要求1所述的消息传输处理方法,其特征在于,还包括:
在MSRP消息传输过程中对异常情况进行处理。
5.一种消息传输处理装置,其特征在于,包括:
MSRP消息识别模块,用于接收第一终端发送的MSRP消息,判断所述MSRP消息容量是否超过预置消息容量;
MSRP消息处理模块,用于在所述MSRP消息容量超过预置消息容量时,将所述第一终端TCP链路的接收状态置为接收超大消息状态;
所述MSRP消息处理模块具体包括:
信息解码单元,用于将所述MSRP消息上报会话管理层,并对所述MSRP消息中的第一包TCP信息进行解码;
信息编码单元,用于将解码后的TCP信息进行编码,并将编码后的TCP信息转发至与所述第一终端相关联的第二终端;
链路建立单元,用于根据所述TCP信息,构造MSRP消息事务ID并保存在所述第二终端,同时建立所述第一终端与所述第二终端的会话关联TCP链路;
信息发送单元,用于将接收的所述MSRP消息中后续的TCP信息通过所述会话关联TCP链路发送至所述第二终端;
MSRP消息处理结束模块,用于解除所述第一终端与所述第二终端的关联关系,重置所述第一终端TCP链路的接收状态为正常状态。
6.根据权利要求5所述的消息传输处理装置,其特征在于,所述MSRP消息识别模块具体包括:
结束行识别单元,用于判断所述MSRP消息的第一包TCP信息中是否包含MSRP消息结束行;
头域解析单元,用于在所述MSRP消息的第一包TCP信息中不包含MSRP消息结束行时,解析所述MSRP消息的头域,获取所述MSRP消息的字节范围;
消息判断单元,用于判断所述MSRP消息的字节范围是否大于或等于预置最大缓存值;若是,则表示所述MSRP消息容量超过预置消息容量。
7.根据权利要求5所述的消息传输处理装置,其特征在于,所述对TCP信息进行编码和解码时忽略所述TCP信息中的结束行。
8.根据权利要求5至7任一项所述的消息传输处理装置,其特征在于,还包括:
异常处理模块,用于在MSRP消息传输过程中对异常情况进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210101766.XA CN103368923B (zh) | 2012-04-09 | 2012-04-09 | 消息传输处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210101766.XA CN103368923B (zh) | 2012-04-09 | 2012-04-09 | 消息传输处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103368923A CN103368923A (zh) | 2013-10-23 |
CN103368923B true CN103368923B (zh) | 2016-07-06 |
Family
ID=49369473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210101766.XA Active CN103368923B (zh) | 2012-04-09 | 2012-04-09 | 消息传输处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103368923B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103812762B (zh) * | 2013-11-27 | 2017-12-01 | 大唐移动通信设备有限公司 | 一种发送即时消息的方法和系统 |
CN106209662B (zh) * | 2016-06-17 | 2019-04-23 | 浙江万朋教育科技股份有限公司 | 一种网络实时互动系统中高并发动态速率数据传输的方法 |
CN106385409B (zh) * | 2016-09-08 | 2019-07-09 | 杭州迪普科技股份有限公司 | 一种tcp报文的处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1859321A (zh) * | 2005-12-15 | 2006-11-08 | 华为技术有限公司 | 发送即时消息的方法和设备 |
CN101207577A (zh) * | 2006-12-19 | 2008-06-25 | 华为技术有限公司 | 消息系统间的互连方法及消息互连网关 |
WO2010145121A1 (zh) * | 2009-06-17 | 2010-12-23 | 中兴通讯股份有限公司 | 一种大消息模式融合ip消息的传送方法和系统 |
-
2012
- 2012-04-09 CN CN201210101766.XA patent/CN103368923B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1859321A (zh) * | 2005-12-15 | 2006-11-08 | 华为技术有限公司 | 发送即时消息的方法和设备 |
CN101207577A (zh) * | 2006-12-19 | 2008-06-25 | 华为技术有限公司 | 消息系统间的互连方法及消息互连网关 |
WO2010145121A1 (zh) * | 2009-06-17 | 2010-12-23 | 中兴通讯股份有限公司 | 一种大消息模式融合ip消息的传送方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103368923A (zh) | 2013-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8051208B2 (en) | Method, system and apparatus for transferring short messages in an IMS | |
US8170590B2 (en) | Method, system and apparatus for forking transmission of short message service | |
KR20090112735A (ko) | 단문 메시지 세션 설정 프로토콜에서의 제출 리포트 처리 방법 및 장치와 컴퓨터 판독가능한 매체 | |
CN101577884B (zh) | 一种ip多媒体链路的媒体协商方法 | |
CN109510690B (zh) | 传输报文的方法、网络组件和计算机可读存储介质 | |
US9350695B2 (en) | Method for transferring and storing CPM service message and service thereof | |
CN103368923B (zh) | 消息传输处理方法及装置 | |
KR100966047B1 (ko) | 통신시스템에서 미디어 송신 방법 및 장치 | |
CN103618747B (zh) | 一种实现sip信息服务的方法及系统 | |
KR101224225B1 (ko) | 단문 메시지 세션 개시 프로토콜에서의 제출 리포트 처리 방법 및 장치와 컴퓨터 판독가능한 매체 | |
US9444649B2 (en) | Method for sending and receiving session history in a communications system | |
CN105072121B (zh) | 一种ims终端自组网的方法及装置 | |
CN109120578B (zh) | 一种实现链路连接处理的方法及装置 | |
WO2008120885A1 (en) | Method for transmitting messages through inter-working of different type messages | |
CN102026112B (zh) | 一种融合ip消息的发送方法及系统 | |
CN102487495A (zh) | Hss异常时实现呼叫的方法及cscf | |
EP2640029A1 (en) | System and method for transmitting multipage multimedia messages, session initiation protocol terminal and multimedia message proxy server | |
Moon | Fast and secure session mobility in IMS-based vertical handover scenario | |
US8688848B2 (en) | Method of establishing a media link for transmitting a large message mode CPM message to a group | |
US20100054177A1 (en) | Method and system of using ip multimedia system for call setup in mobile satellite systems | |
KR101128912B1 (ko) | 인터넷 망을 이용하여 음성을 전송하는 시스템에서의 메세지 데이터 구조 | |
KR101612772B1 (ko) | 미디어 보안 방법 및 장치 | |
JP2008072466A (ja) | 通信システムおよび端末 | |
KR20080090250A (ko) | 이종 메시지의 상호 연동을 통한 메시지 전송 방법 | |
EP1672867A1 (en) | Method to the fast and reliable transfer of large amount of data between mobile radio users involved in a SIP session |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |