CN102685105B - 一种会话发起协议头部的查找方法及装置 - Google Patents
一种会话发起协议头部的查找方法及装置 Download PDFInfo
- Publication number
- CN102685105B CN102685105B CN201210081949.XA CN201210081949A CN102685105B CN 102685105 B CN102685105 B CN 102685105B CN 201210081949 A CN201210081949 A CN 201210081949A CN 102685105 B CN102685105 B CN 102685105B
- Authority
- CN
- China
- Prior art keywords
- sip head
- head portion
- sip
- integer array
- checked
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种会话发起协议(SIP)头部的查找方法及装置,所述方法包括:查找与待查SIP头部长度相同的已知SIP头部分组;将所述待查SIP头部转换为整型数组;将所述待查SIP头部与已知SIP头部分组进行比较,当所述已知SIP头部分组中存在与所述待查SIP头部转换得到的整型数组相匹配的整型数组时,返回所述相匹配的整型数组对应的SIP头部索引。本发明通过查找与待查SIP头部长度相同的已知SIP头部分组,并将待查SIP头部和已知SIP头部分组的字符串转换为整型数组后进行比较,缩短了SIP协议栈查找SIP头部花费的时间,能够实现SIP头部的快速查找,提高了处理效率。
Description
技术领域
本发明涉及通讯技术领域,尤其涉及一种会话发起协议(Session InitiationProtocol,SIP)头部的查找方法及装置。
背景技术
SIP在近几年得到了快速发展,基于SIP协议的服务也日益增多,如可以使用SIP实现语音呼叫服务、远程视频服务、监控服务、即时通信服务等等。而在通讯系统中,对SIP协议的消息需要由SIP协议栈对消息进行编解码。当SIP协议栈收到SIP消息时,需要分离出SIP头部,并在已知的SIP头部列表中查找该头部。由于SIP头部的种类繁多,而每条SIP消息都带有一定数量的头部,所以SIP头部查找的工作量相当大。
目前通讯系统中一般采用的SIP头部查找方法是将待查SIP头部依次与每个已知SIP头部比较,直至匹配到相同的SIP头部,每次比较时需要比较SIP头部字符串中的每个字符,因此花费时间较长,而且效率不高。
发明内容
有鉴于此,本发明的主要目的在于提供一种SIP头部的查找方法及装置,能够实现SIP头部的快速查找。
为达到上述目的,本发明的技术方案是这样实现的:
一种会话发起协议(SIP)头部的查找方法,所述方法包括:
查找与待查SIP头部长度相同的已知SIP头部分组;
将所述待查SIP头部转换为整型数组;
将所述待查SIP头部与已知SIP头部分组进行比较,当所述已知SIP头部分组中存在与所述待查SIP头部转换得到的整型数组相匹配的整型数组时,返回所述相匹配的整型数组对应的SIP头部索引。
进一步地,所述方法还包括:
按照长度对已知SIP头部进行分组,并将得到的已知SIP头部分组中的SIP头部字符串转换为整型数组。
其中,所述按照长度对已知SIP头部进行分组为:
采用枚举类型对已知SIP头部按照长度进行分组,在每个分组的开始和结束位置设置开始和结束标记。
其中,所述将所述待查SIP头部与已知SIP头部分组进行比较为:
将待查SIP头部对应的整型数组与所述已知SIP头部分组的开始标记和结束标记之间的整型数组枚举值依次进行比较。
进一步地,所述查找与待查SIP头部长度相同的已知SIP头部分组之前,所述方法还包括:
对接收到的SIP消息进行分离,得到待查SIP头部。
一种SIP头部的查找装置,所述装置包括:查找模块、转换模块和比较模块;其中,
所述查找模块,用于查找与待查SIP头部长度相同的已知SIP头部分组;
所述转换模块,用于将所述待查SIP头部转换为整型数组;
所述比较模块,用于将所述待查SIP头部与已知SIP头部分组进行比较,当所述已知SIP头部分组中存在与所述待查SIP头部转换得到的整型数组相匹配的整型数组时,返回所述相匹配的整型数组对应的SIP头部索引。
进一步地,所述装置还包括分组模块,用于按照长度对已知SIP头部进行分组;
相应地,所述转换模块,还用于将得到的已知SIP头部分组中的SIP头部字符串转换为整型数组。
其中,所述分组模块,具体用于采用枚举类型对已知SIP头部按照长度进行分组,在每个分组的开始和结束位置设置开始和结束标记。
其中,所述比较模块,具体用于将待查SIP头部对应的整型数组与所述已知SIP头部分组的开始标记和结束标记之间的整型数组枚举值依次进行比较。
进一步地,所述装置还包括:分离模块,用于对接收到的SIP消息进行分离,得到待查SIP头部。
本发明通过查找与待查SIP头部长度相同的已知SIP头部分组,并将待查SIP头部和已知SIP头部分组的字符串转换为整型数组后进行比较,缩短了SIP协议栈查找SIP头部花费的时间,能够实现SIP头部的快速查找,提高了处理效率。
附图说明
图1为本发明SIP头部的查找方法的实现流程示意图;
图2为本发明SIP头部的查找方法实施例的实现流程示意图;
图3为本发明SIP头部的查找装置的结构示意图。
具体实施方式
本发明的基本思想为:查找与待查SIP头部长度相同的已知SIP头部分组;将所述待查SIP头部转换为整型数组;将所述待查SIP头部与已知SIP头部分组进行比较,当所述已知SIP头部分组中存在与所述待查SIP头部转换得到的整型数组相匹配的整型数组时,返回所述相匹配的整型数组对应的SIP头部索引。
为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照附图,对本发明进一步详细说明。
图1示出了本发明SIP头部的查找方法的实现流程,如图1所示,所述方法包括下述步骤:
步骤101,查找与待查SIP头部长度相同的已知SIP头部分组;
这里,在本步骤之前,所述方法还包括:按照长度对已知SIP头部进行分组,并将得到的已知SIP头部分组中的SIP头部字符串转换为整型数组。其中,具体可以采用枚举类型对已知SIP头部按照长度进行分组,在每个分组的开始和结束位置设置开始和结束标记。具体地,可以对已知SIP头部进行分组,如:组1:长度为2、组2:长度为3、组3:长度为4、组4:长度为3、组5……。各已知SIP头部分组中的包含的元素不需要自身的长度数据标识,而是利用已知SIP头部分组本身进行长度的标识。这里,所述已知SIP头部分组具体可以包括转换得到的整型数组以及各整型数组分别对应的SIP头部索引。
所述方法还包括:当接收到SIP消息时,对所述SIP消息进行分离,得到待查SIP头部。
步骤102,将所述待查SIP头部转换为整型数组;
具体地,在比较待查SIP头部时,可以先将所述待查SIP头部的字符串转换成一个整型数组,这里,具体为每四个字符转换成一个整型值,不足四个的以0补足。如当待查SIP头部为Abcdef-asxd时,可以进行如下转换:[Abcd]转换为一个整数1,[ef-as]转换为一个整数2,[xd]通过补0得到[xd00],并转换为整数3,组成整型数组123。
另外,还可以通过预先将已知SIP头部进行转换,把每个SIP头部按照上述方法转换成整型数组,并存储在表中。如此,当有查找要求时,可以直接通过该表,得到所述待查SIP头部对应的整型数组。
步骤103,将所述待查SIP头部与已知SIP头部分组进行比较,当所述已知SIP头部分组中存在与所述待查SIP头部转换得到的整型数组相匹配的整型数组时,返回所述相匹配的整型数组对应的SIP头部索引;
具体地,本步骤中,所述将所述待查SIP头部与已知SIP头部分组进行比较为:将待查SIP头部对应的整型数组与所述已知SIP头部分组的开始标记和结束标记之间的整型数组枚举值依次进行比较。
另外,当所述已知SIP头部分组中不存在与所述待查SIP头部转换得到的整型数组相匹配的整型数组时,可以判定所述待查SIP头部不能够被识别。
图2示出了本发明SIP头部的查找方法实施例的实现流程,如图2所示,所述实施例包括下述步骤:
步骤201,按照长度对已知SIP头部进行分组;
具体可以采用枚举类型对已知SIP头部按照长度进行分组,在每个分组的开始和结束位置设置开始和结束标记。这里,采用枚举类型进行分组,当存在新增的SIP头部时,只需向该枚举类型的对应分组中增加一个枚举值即可。
步骤202,将得到的已知SIP头部分组中的SIP头部字符串转换为整型数组;
步骤203,对接收到的SIP消息进行分离,得到待查SIP头部;
步骤204,根据待查SIP头部长度找到与自身相同长度的已知SIP头部分组;
步骤205,将待查SIP头部转换为整型数组;
步骤206,在步骤204查找的得到的已知SIP头部分组中比较待查SIP头部和已知SIP头部分别对应的整型数组;
具体地,将待查SIP头部对应的整型数组与所述已知SIP头部分组的开始标记和结束标记之间的整型数组枚举值依次进行比较。
步骤207,判断是否存在匹配的整型数组,若是,则执行步骤208,否则执行步骤209;
步骤208,返回与所述待查SIP头部相匹配的整型数组对应的已知SIP头部的SIP头部索引;
步骤209,报告所述待查SIP头部不能被识别。
应当理解,上述步骤201和步骤202可以在初始化阶段完成,不需要占用SIP头部查找时间。
图3示出了本发明SIP头部的查找装置的结构,如图3所示,所述装置包括:查找模块31、转换模块32和比较模块33;其中,
所述查找模块31,用于查找与待查SIP头部长度相同的已知SIP头部分组;
所述转换模块32,用于将所述待查SIP头部转换为整型数组;具体地,可以将所述待查SIP头部的字符串转换成一个整型数组,这里,具体为每四个字符转换成一个整型值,不足四个的以0补足。如当待查SIP头部为Abcdef-asxd时,可以进行如下转换:[Abcd]转换为一个整数1,[ef-as]转换为一个整数2,[xd]通过补0得到[xd00],并转换为整数3,组成整型数组123。另外,还可以通过预先将已知SIP头部进行转换,把每个SIP头部按照上述方法转换成整型数组,并存储在表中。如此,当有查找要求时,可以直接通过该表,得到所述待查SIP头部对应的整型数组。
所述比较模块33,用于将所述待查SIP头部与已知SIP头部分组进行比较,当所述已知SIP头部分组中存在与所述待查SIP头部转换得到的整型数组相匹配的整型数组时,返回所述相匹配的整型数组对应的SIP头部索引。
进一步地,所述装置还包括分组模块34,用于按照长度对已知SIP头部进行分组;具体地,可以对已知SIP头部进行分组,如:组1:长度为2、组2:长度为3、组3:长度为4、组4:长度为3、组5……。各已知SIP头部分组中的包含的元素不需要自身的长度数据标识,而是利用已知SIP头部分组本身进行长度的标识。这里,所述已知SIP头部分组具体可以包括转换得到的整型数组以及各整型数组分别对应的SIP头部索引。
相应地,所述转换模块32,还用于将得到的已知SIP头部分组中的SIP头部字符串转换为整型数组。
其中,所述分组模块34,具体用于采用枚举类型对已知SIP头部按照长度进行分组,在每个分组的开始和结束位置设置开始和结束标记。
其中,所述比较模块33,具体用于将待查SIP头部对应的整型数组与所述已知SIP头部分组的开始标记和结束标记之间的整型数组枚举值依次进行比较。
进一步地,所述装置还包括:分离模块35,用于对接收到的SIP消息进行分离,得到待查SIP头部。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (4)
1.一种会话发起协议SIP头部的查找方法,其特征在于,所述方法包括:
按照长度对已知SIP头部进行分组,并将得到的已知SIP头部分组中的SIP头部字符串转换为整型数组;所述按照长度对已知SIP头部进行分组为:采用枚举类型对已知SIP头部按照长度进行分组,在每个分组的开始和结束位置设置开始和结束标记;
查找与待查SIP头部长度相同的已知SIP头部分组;
将所述待查SIP头部转换为整型数组;
将所述待查SIP头部对应的整型数组与所述已知SIP头部分组的开始标记和结束标记之间的整型数组枚举值依次进行比较,当所述已知SIP头部分组中存在与所述待查SIP头部转换得到的整型数组相匹配的整型数组时,返回所述相匹配的整型数组对应的SIP头部索引。
2.根据权利要求1所述的方法,其特征在于,所述查找与待查SIP头部长度相同的已知SIP头部分组之前,所述方法还包括:
对接收到的SIP消息进行分离,得到待查SIP头部。
3.一种SIP头部的查找装置,其特征在于,所述装置包括:分组模块、查找模块、转换模块和比较模块;其中,
所述分组模块,用于按照长度对已知SIP头部进行分组,具体为:采用枚举类型对已知SIP头部按照长度进行分组,在每个分组的开始和结束位置设置开始和结束标记;
所述查找模块,用于查找与待查SIP头部长度相同的已知SIP头部分组;
所述转换模块,用于将得到的已知SIP头部分组中的SIP头部字符串转换为整型数组;还用于将所述待查SIP头部转换为整型数组;
所述比较模块,用于将所述待查SIP头部对应的整型数组与所述已知SIP头部分组的开始标记和结束标记之间的整型数组枚举值依次进行比较,当所述已知SIP头部分组中存在与所述待查SIP头部转换得到的整型数组相匹配的整型数组时,返回所述相匹配的整型数组对应的SIP头部索引。
4.根据权利要求3所述的装置,其特征在于,所述装置还包括:分离模块,用于对接收到的SIP消息进行分离,得到待查SIP头部。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210081949.XA CN102685105B (zh) | 2012-03-23 | 2012-03-23 | 一种会话发起协议头部的查找方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210081949.XA CN102685105B (zh) | 2012-03-23 | 2012-03-23 | 一种会话发起协议头部的查找方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102685105A CN102685105A (zh) | 2012-09-19 |
CN102685105B true CN102685105B (zh) | 2015-06-10 |
Family
ID=46816470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210081949.XA Active CN102685105B (zh) | 2012-03-23 | 2012-03-23 | 一种会话发起协议头部的查找方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102685105B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114844963B (zh) * | 2022-03-31 | 2023-02-17 | 慧之安信息技术股份有限公司 | 基于开源协议栈eXosip的扩展头部信息提取方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1921477A (zh) * | 2006-09-01 | 2007-02-28 | 华为数字技术有限公司 | 一种对分片报文进行复杂流分类的方法及系统 |
CN101459650A (zh) * | 2007-12-15 | 2009-06-17 | 华为技术有限公司 | 业务路由方法、业务路由器、客户端设备及业务网络系统 |
-
2012
- 2012-03-23 CN CN201210081949.XA patent/CN102685105B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1921477A (zh) * | 2006-09-01 | 2007-02-28 | 华为数字技术有限公司 | 一种对分片报文进行复杂流分类的方法及系统 |
CN101459650A (zh) * | 2007-12-15 | 2009-06-17 | 华为技术有限公司 | 业务路由方法、业务路由器、客户端设备及业务网络系统 |
Non-Patent Citations (1)
Title |
---|
SIP协议中消息解析的研究;姜秀玉等;《计算机工程与设计》;20101231;第31卷(第13期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN102685105A (zh) | 2012-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8255779B2 (en) | System and method for accelerated forward error correction (FEC) synchronization | |
WO2018082286A1 (zh) | 基于 SerDes 技术串行通信系统的编解码方法及装置 | |
WO2013107028A1 (en) | Methods and apparatuses of amvp simplification | |
CN105450712B (zh) | 一种数据传输方法及装置 | |
WO2018171641A1 (zh) | 网络管理信息的收发方法、装置、发送设备和接收设备 | |
EP2928101B1 (en) | Communication method, system and device for optical network system | |
CN102685105B (zh) | 一种会话发起协议头部的查找方法及装置 | |
RU2013150252A (ru) | Способ и система передачи данных от контроллера радиосети к пользовательскому устройству | |
US9141523B2 (en) | Control apparatus, control system, and communication method for controlling one or more motors in serial communication with a controller | |
US20140169386A1 (en) | System and Method for Enhanced Auto-Negotiation for NGBASE-T | |
WO2008108297A1 (ja) | 相同性検索システム | |
EP2854350B1 (en) | System and method for cross-network data storage | |
US9014214B2 (en) | Dynamic link adjustment method and link managing device | |
CN101588370A (zh) | 一种多速率通讯数据流格式的解析方法 | |
CN101146101A (zh) | 基于编解码数据业务的协议分析系统和方法 | |
CN105337850A (zh) | 一种物联网数据处理方法及物联网网关 | |
CN102394734A (zh) | 无极性连接的rs485通讯系统及其控制方法 | |
US20130156426A1 (en) | Low power optical network terminal and method of operating low power optical network terminal | |
US20230043889A1 (en) | Message Processing Method and Device, Storage Medium, and Electronic Device | |
CN106941450B (zh) | 一种路由同步方法、设备及通信系统 | |
CN101834810A (zh) | 对协议数据进行转换的方法及装置 | |
CN201628861U (zh) | 一种总线传输系统 | |
CN101378548A (zh) | At命令与业务消息的转换实现方法及装置 | |
JP4923780B2 (ja) | 通信装置、通信システム、および通信方法 | |
CN102769512A (zh) | 一种通用成帧规程帧定界的实现方法和装置 |
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 |