一种识别网络电话流量的方法和装置
技术领域 本发明涉及通信领域, 尤其涉及一种识别网络电话流量的方法和装置。
背景技术
随着互联网技术的不断进步,出现了 IP承载语音的网络电话(Voice over IP, VoIP )技术。 VoIP技术自产生后发展迅速。 随着用户的迅速增长, VoIP 的流量在网络上也迅速增长, 所以如何通过 VoIP流量识别媒体连接成为需 要解决的问题。 目前, 现有技术中给出对于会话发起协议(Session Initiation Protocol, SIP ) 的 VoIP流量识别媒体连接方法。 该方法包括: 步骤 1、 通信双方建立媒体控制连接, 其中所述通信双方为媒体网关, 即所述媒体网关代替用户建立所述媒体控制连接; 步骤 2、 在基于 SIP的控制连接上进行媒体连接的协商; 步骤 3、 用于进行媒体流识别的深度报文检测装置获取通信双方的协商 结果, 如果协商成功, 则记录所述通信双方的媒体连接协商信息; 步骤 4、 根据所述通信双方的媒体连接协商信息, 识别所述通信双方的 媒体连接。 在实现上述过程中, 深度报文检测装置获取基于 SIP的控制连接上的媒 体连接协商信息, 对媒体连接进行识别。 上述方法只适用于基于 SIP协议的 控制连接为一对用户进行媒体协商的情况。 对于两个媒体网关之间通过媒体 网关控制协议(Media Gateway Control Protocol, MGCP ) , 在一个控制连接 上为多对用户同时协商的情况时, 上述方法将无法应用, 从而无法进行媒体 连接的识别。
发明内容 本发明提供的一种识别网络电话流量的方法和装置, 能够识别基于媒体 网关控制协议(MGCP ) 的 VoIP流量。 一种识别 VoIP流量的方法, 基于 MGCP, 该方法包括: 根据 MGCP的识别规则,通过匹配关键字,识别与控制连接相关的报文; 从所述与控制连接相关的报文中提取用于建立媒体连接的媒体连接协商 信息; 根据所述媒体连接协商信息中的事务标识(ID ) , 对所述媒体连接协商 信息进行匹配; 以及 根据匹配结果, 对基于 MGCP的 VoIP流量进行识别。 所述与控制连接相关的报文包括控制连接报文和媒体连接协商报文, 所 述 MGCP 的识别规则包括控制连接报文的识别规则和媒体连接协商报文的 识别规则; 所述控制连接报文的识别规则为: 报文的载荷区内前 4个字母为 MGCP 命令字符, 且在所述 MGCP命令字符之后有 "MGCP" 关键字, 其中所述 MGCP命令字包括" EPCF" 、 "RQNT" 、 "NTFY" 、 "CRCX,,、 "MDCX" 、 "DLCX" 、 "AUEP" 、 "AUCX" 以及 "RSIP"; 所述媒体连接协商报文的识别规则为报文的载荷区内包括关键字 "v=" 、 "c=IN" 和 "m=" „ 所述媒体连接协商信息是从媒体连接协商报文中提取的, 其中所述媒体 连接协商信息包括 IP地址、 端口号和媒体类型; 从所述与控制连接相关的报文中提取用于建立媒体连接的媒体连接协商 信息的步骤包括: 如果所述媒体连接协商报文载荷区首 4字节为字母, 从载荷区第 6字节 开始提取事务 ID, 到出现空格为止; 如果所述媒体连接协商报文载荷区首 3 字节为数字, 从载荷区第 5字节开始提取事务 ID, 到出现空格为止;
从字符串" c=IN,,后第 6字节开始提取媒体连接的 IP地址,至出现 ASCII 码<0 >和<1^>符号为止; 从字符串 "m=,,后的第一个空格开始提取媒体连接的端口号, 至出现空 格终止; 以及 从字符串 "m="后开始提取媒体连接的媒体类型, 至出现空格终止。 对基于 MGCP协议的 VoIP流量进行识别的步骤包括:
如果所述媒体连接协商信息在所述控制连接对端匹配到具有相同事务 ID的媒体连接协商信息, 则根据具有相同事务 ID的媒体连接协商信息中的 IP地址、 端口号以及媒体类型, 建立媒体连接, 并将所述媒体连接增加到预 先配置的连接表中。 对基于 MGCP的 VoIP流量进行识别的步骤之后, 所述方法还包括: 为建立的媒体连接配置老化时间; 在建立的媒体连接的老化时间内, 如果所述媒体链接没有报文传输, 则 删除所述已建立的媒体连接。 所述方法还包括: 如果所述媒体连接协商信息在所述控制连接对端未匹配到具有相同事务 ID的媒体连接协商信息, 保存所述匹配失败的媒体连接协商信息, 并配置所 述匹配失败的媒体连接协商信息的老化时间; 在所述协商失败用户的媒体连接协商信息的老化时间内, 如果匹配到具 有相同事务 ID的媒体连接协商信息, 则根据具有相同事务 ID的媒体连接协 商信息中的 IP地址、 端口号以及媒体类型, 建立媒体连接, 并将所述媒体连 接增加到预先配置的连接表中。 所述匹配失败的媒体连接协商信息是通过动态内存进行存储的。 一种识别 VoIP流量的装置, 基于媒体网关控制协议(MGCP ) , 所述装 置包括: 第一识别模块, 其设置为: 根据 MGCP的识别规则, 通过匹配关键字,
识别与控制连接相关的报文; 提取模块, 其设置为: 从所述与控制连接相关的报文中提取用于建立媒 体连接的媒体连接协商信息; 匹配模块, 其设置为: 根据所述媒体连接协商信息中的事务标识(ID ) , 对所述媒体连接协商信息进行匹配; 以及 第二识别模块, 其设置为: 根据匹配结果, 对基于 MGCP的 VoIP流量 进行识别。 所述提取模块是设置为按如下方式从所述与控制连接相关的报文中提取 用于建立媒体连接的媒体连接协商信息: 如果所述媒体连接协商报文载荷区首 4字节为字母, 从载荷区第 6字节 开始提取事务 ID, 到出现空格为止; 如果所述媒体连接协商报文载荷区首 3 字节为数字, 从载荷区第 5字节开始提取事务 ID, 到出现空格为止; 从字符串" c=IN,,后第 6字节开始提取媒体连接的 IP地址,至出现 ASCII 码<0 >和<1^>符号为止; 从字符串 "m=,,后的第一个空格开始提取媒体连接的端口号, 至出现空 格终止; 以及 从字符串 "m="后开始提取媒体连接的媒体类型, 至出现空格终止。 第二识别模块是设置为按如下方式根据匹配结果,对基于 MGCP的 VoIP 流量进行识别: 如果所述媒体连接协商信息在所述控制连接对端匹配到具有 相同事务 ID的媒体连接协商信息, 则根据具有相同事务 ID的媒体连接协商 信息中的 IP地址、 端口号以及媒体类型, 建立媒体连接, 并将所述媒体连接 增加到预先配置的连接表中。 所述装置还包括: 第一配置模块, 其设置为: 为建立的媒体连接配置老化时间; 第一管理模块, 其设置为: 在建立的媒体连接的老化时间内, 如果所述 媒体链接没有报文传输, 则删除所述已建立的媒体连接。
所述装置还包括: 第二配置模块, 其设置为: 如果所述媒体连接协商信息在所述控制连接 对端未匹配到具有相同事务 ID 的媒体连接协商信息, 保存所述匹配失败的 媒体连接协商信息, 并配置所述匹配失败的媒体连接协商信息的老化时间; 第二管理模块, 其设置为: 在所述协商失败用户的媒体连接协商信息的 老化时间内, 如果匹配到具有相同事务 ID 的媒体连接协商信息, 则根据具 有相同事务 ID的媒体连接协商信息中的 IP地址、 端口号以及媒体类型, 建 立媒体连接, 并将所述媒体连接增加到预先配置的连接表中。 本发明提供的技术方案, 在釆用媒体网关控制协议条件下, 一个控制连 接上同时进行多个媒体连接协商,能够识别出基于媒体网关控制协议的 VoIP 流量, 且对深度报文检测设备的部署位置没有特殊要求。
附图概述 图 1为本发明实施例提供的一种网络系统结构示意图; 图 2为本发明实施例提供的一种基于媒体网关控制识别网络电话流量的 方法流程图; 图 3为本发明实施例提供的一种基于媒体网关控制识别网络电话流量的 装置的结构示意图; 图 4为图 3所示实施例中所述装置的另一结构示意图; 图 5为图 3所示实施例中所述装置的又一结构示意图;
本发明的较佳实施方式
下面结合附图对本发明提供的技术方案作进一步介绍: 如图 1所示, 所述网络系统中包括两个媒体网关, 每个媒体网关管理多 个用户, 当用户需要建立媒体连接与对端用户进行通信时, 例如用户 1需要 与用户 4进行通信, 所述媒体网关与网络中的媒体网关控制设备建立控制连
接, 如图 1所示, 媒体网关 A与媒体网关控制设备建立控制连接 A, 在所述 控制连接上进行媒体连接的协商过程。 如果协商成功, 在所述两个媒体网关 之间建立媒体连接进行通信。 下面对基于媒体网关控制识别网络电话流量的方法作进行介绍, 如图 2 所示: 步骤 201、 接收控制连接; 步骤 202、 查找该控制连接是否为新连接, 如果为是, 执行步骤 203 , 如 果为否, 执行步骤 204。 在本步骤中, 从预先设置的连接表中, 查找是否有该控制连接的记录, 如果没有, 表示该控制连接是新连接, 执行步骤 203; 如果有, 表示该控制 连接不是新连接, 执行步骤 204。 其中, 所述连接表用于记录成功协商媒体连接的用户的媒体连接协商信 息。 在本发明中, 所述连接表包括连接扩展信息存储表项, 用于暂存控制连 接上的媒体连接协商信息。 优选地, 可以釆用为连接表的每一项设立一个链表头, 获取到媒体连接 协商信息后申请动态内存, 添加到连接扩展信息链表上, 其中所述扩展信息 存储表项釆用固定大小进行管理。 由于一个控制连接上协商信息的数目是不 确定的, 使用动态内存来存储, 可以减小内存资源的消耗。 步骤 203、 在连接表中建立该新连接; 在步骤 203执行完成后, 执行步骤 205。 步骤 204、获取所述控制连接的应用类型,如果未获取到,执行步骤 205。 步骤 205、 判断所述控制连接是否为 MGCP控制连接; 具体的, 判断所述该控制连接上的控制连接报文是否具有如下特征: 载 荷前 4个字母为 MGCP命令字符且在该 MGCP命令字符之后包括 MGCP的 字符串, 所述 MGCP命令字符包括 EPCF、 RQNT、 NTFY CRCX、 MDCX、
DLCX、 AUEP、 AUCX以及 RSIP。 优选地, 在判断过程中, 可设置一计数器, 当一段时间内所述控制连接 上多个控制连接报文均出现该特征时, 才确定连接为 MGCP控制连接, 可降 低误命中率。 如果是 MGCP控制连接, 则执行步骤 206; 否则, 流程结束。 步骤 206、 从所述控制连接的媒体连接协商报文中获取媒体连接协商信 息;
其中,所述媒体连接协商报文含有顺序的 3串字符串,即 "v=" 、 "c=IN" 和 "m=" , 且可以分为命令报文和响应报文; 如果所述控制连接上没有如上特征的报文, 则流程结束。 其中, 所述媒体连接协商报文中携带的媒体连接协商信息包括 IP地址、 端口号和媒体类型,且所述媒体连接协商信息是通过事务标识( Identification, ID ) 。 下面对获取上述媒体连接协商信息的过程作以说明: 如果报文载荷区的首 4字节为字母, 则确定为命令报文, 从载荷第 6字 节开始提取 MGCP的事务 ID, 至所述报文载荷区第一次出现空格为止。 如 果载荷的首 3 字节为数字, 则确定为响应报文, 从载荷第 5 字节开始提取 MGCP的事务 ID, 至报文载荷区第一次出现空格为止; 从报文载荷区 "c=IN,,关键字后第 6字节开始提取媒体连接的 IP地址, 至所述才艮文载荷区出现 ASCII码 ¾>和<1^>符号为止; 从报文载荷区 "m="关键字后第一个空格后开始提取媒体连接的端口号, 至所述报文载荷区第一次出现空格终止; 从报文载荷区 "m=,,关键字开始提取媒体连接的媒体类型, 至第一次出 现空格为止; 其中空格前的内容长度不固定。 执行完步骤 206后, 执行步骤 207。
步骤 207、 判断来自不同方向的媒体连接协商报文中是否有相同的 MGCP事务 ID; 如果有, 表示媒体连接协商成功, 执行步骤 208; 如果没有, 表示媒体 连接协商失败, 执行步骤 209。 步骤 208、 建立媒体连接, 执行步骤 210; 在本步骤中, 根据媒体连接协商信息中 IP地址、 端口和媒体类型, 建立 媒体连接, 并将建立的媒体连接添加到连接表中。 例如, 如果所述媒体连接的媒体类型为实时传送协议 (Real-time Transport Protocol, RTP ) , 以所述媒体连接协商信息中的 IP地址和端口号 建立实时传输控制协议( Realtime Transport Control Protocol , RTCP )连接; 以所述媒体连接协商信息中的 IP和(端口号 +1 )建立 RTP连接。 优选的, 配置所述已建立的媒体连接的老化时间; 例如, 在连接表中添 加所述已建立的媒体连接的记录, 并配置对应的定时器。 在所述媒体连接的老化时间内, 如果所述已建立的媒体连接上没有报文 传输, 则删除所述已建立的媒体连接。 例如, 当定时器到时后, 查看所述已 建立的媒体连接上是否有报文传输的记录, 如果没有, 表示所述已建立的媒 体未被使用, 则删除所述已建立的媒体连接。 通过配置已建立的媒体连接的老化时间,合理控制媒体连接资源的使用, 提高媒体连接资源的利用率。 步骤 209、 保存所述协商失败的媒体连接协商信息, 流程结束。 向连接表申请动态内存, 在所述连接表中扩展信息存储表项保存所述用 户的媒体连接协商信息。 优选的, 配置所述协商失败用户的媒体连接协商信息的老化时间; 在所述协商失败用户的媒体连接协商信息的老化时间内, 如果接收到新 的控制连接, 且在所述新的控制连接中协商成功, 则记录所述协商成功媒体 连接协商信息。
通过配置所述协商失败用户的媒体连接协商信息的老化时间, 合理控制 对存储空间的使用, 提高存储空间的利用率。 步骤 210、 对所述媒体连接上传输的报文进行识别, 流程结束。 识别的结果可以用于计算报文的流量以及计算通话的质量等 。 本发明提供的技术方案, 在釆用媒体网关控制协议条件下, 一个控制连 接上同时进行多个媒体连接协商,能够识别出基于媒体网关控制协议的 VoIP 流量, 且对深度报文检测设备的部署位置没有特殊要求。 如图 3所示, 一种基于媒体网关控制识别网络电话流量的装置, 包括: 第一识别模块 301 , 其设置为: 根据 MGCP的识别规则, 通过匹配关键 字, 识别与控制连接相关的报文, 其中所述与控制连接相关的报文包括控制 连接报文和媒体连接协商报文; 提取模块 302, 其设置为: 从所述与控制连接相关的报文中提取用于建 立媒体连接的媒体连接协商信息; 匹配模块 303 , 其设置为: 根据所述媒体连接协商信息中的事务 ID, 对 所述媒体连接协商信息进行匹配; 第二识别模块 304, 其设置为: 根据匹配结果, 对基于 MGCP的 VoIP 流量进行识别。 其中所述 MGCP协议的识别规则包括控制连接报文的识别规则和媒体 连接协商报文的识别规则; 所述控制连接报文的识别规则为: 报文的载荷区内前 4个字母为 MGCP 命令字符, 且在所述 MGCP命令字符之后有 "MGCP" 关键字; 所述 MGCP 命令字符包括"端点配置命令 ( Endpoint Configuration, EPCF ) " 、 "通报请 求(Notification Request, RQNT ),, 、 "通知(Notify, NTFY ),, 、 "创建连 接( Create Connection, CRCX ),,、 "修改连接( Modify Connection, MDCX ),, 、 "删除连接 ( Delete Connection, DLCX ) " 、 "监看端点 (Audit Endpoints, AUEP ) " 、 "监看连接 ( Audit Connection, AUCX ) " 和 "重启动(Restart In Process, RSIP ) ";
所述媒体连接协商报文的识别规则为: 报文的载荷区内包括关键字
"v=" 、 "c=IN" 和 "m=" „ 其中所述提取模块 302是设置为按如下方式从所述与控制连接相关的报 文中提取用于建立媒体连接的媒体连接协商信息: 如果所述媒体连接协商报文载荷区首 4字节为字母, 从载荷区第 6字节 开始提取事务 ID, 到出现空格为止; 如果所述媒体连接协商报文载荷区首 3 字节为数字, 从载荷区第 5字节开始提取事务 ID, 到出现空格为止; 从字符串 "c=IN,,后第 6字节开始提取媒体连接的 IP地址,至出现 ASSCII 码<0 >和<1^>符号为止; 从字符串 "m=,,后的第一个空格开始提取媒体连接的端口号, 至出现空 格终止; 从字符串 "m="后开始提取媒体连接的媒体类型, 至出现空格终止。 其中所述第二识别模块 301是设置为按如下方式对基于 MGCP的 VoIP 流量进行识别: 如果所述媒体连接协商信息在所述控制连接对端匹配到具有相同事务
ID的媒体连接协商信息, 则根据具有相同事务 ID的媒体连接协商信息中的 IP地址、 端口号以及媒体类型, 建立媒体连接, 并将所述媒体连接增加到预 先配置的连接表中。 可选的, 如图 4所示, 所述装置还可以进一步包括: 第一配置模块 401 , 其设置为: 为所述已建立的媒体连接配置老化时间; 第一管理模块 402, 其设置为: 在所述已建立的媒体连接的老化时间内, 如果所述媒体链接没有报文传输, 则删除所述已建立的媒体连接。 可选的, 如图 5所示, 所述装置还可以进一步包括: 第二配置模块 501 , 其设置为: 如果所述媒体连接协商信息在所述控制 连接对端未匹配到具有相同事务 ID 的媒体连接协商信息, 保存所述匹配失 败的媒体连接协商信息, 并配置所述匹配失败的媒体连接协商信息的老化时
间; 第二管理模块 502, 其设置为: 在所述协商失败用户的媒体连接协商信 息的老化时间内, 如果匹配到具有相同事务 ID 的媒体连接协商信息, 则根 据具有相同事务 ID的媒体连接协商信息中的 IP地址、端口号以及媒体类型, 建立媒体连接, 并将所述媒体连接增加到预先配置的连接表中。 本发明提供的技术方案, 在釆用媒体网关控制协议条件下, 一个控制连 接上同时进行多个媒体连接协商,能够识别出基于媒体网关控制协议的 VoIP 流量, 且对深度报文检测设备的部署位置没有特殊要求。 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤是可以 通过程序来指令相关的硬件完成, 所述的程序可以存储于一种计算机可读存 储介质中, 该程序在执行时, 包括方法实施例的步骤之一或其组合。 另外, 在本发明各个实施例中的各功能单元可以釆用硬件的形式实现, 也可以釆用软件功能模块的形式实现。 所述集成的模块如果以软件功能模块 的形式实现并作为独立的产品销售或使用时, 也可以存储在一个计算机可读 取存储介质中。 上述提到的存储介质可以是只读存储器, 磁盘或光盘等。 以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局限 于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可轻易 想到变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发明的保护 范围应以权利要求所述的保护范围为准。
工业实用性 本发明提供的技术方案, 在釆用媒体网关控制协议条件下, 一个控制连 接上同时进行多个媒体连接协商,能够识别出基于媒体网关控制协议的 VoIP 流量, 且对深度报文检测设备的部署位置没有特殊要求。