CN102761457B - 网络信令监测方法及设备 - Google Patents

网络信令监测方法及设备 Download PDF

Info

Publication number
CN102761457B
CN102761457B CN201110111444.9A CN201110111444A CN102761457B CN 102761457 B CN102761457 B CN 102761457B CN 201110111444 A CN201110111444 A CN 201110111444A CN 102761457 B CN102761457 B CN 102761457B
Authority
CN
China
Prior art keywords
pdu
tcp
data content
segment data
buffer memory
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
Application number
CN201110111444.9A
Other languages
English (en)
Other versions
CN102761457A (zh
Inventor
戴力
杨海龙
陈维新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Group Zhejiang Co Ltd
Original Assignee
China Mobile Group Zhejiang Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Mobile Group Zhejiang Co Ltd filed Critical China Mobile Group Zhejiang Co Ltd
Priority to CN201110111444.9A priority Critical patent/CN102761457B/zh
Publication of CN102761457A publication Critical patent/CN102761457A/zh
Application granted granted Critical
Publication of CN102761457B publication Critical patent/CN102761457B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Communication Control (AREA)

Abstract

本发明提供了网络信令监测方法及设备,其中,该方法包括:缓存传输控制协议TCP段数据内容;用包数据单元PDU特征逐字节去匹配缓存的TCP段数据内容,匹配成功则界定出PDU的起始点,确定出PDU;对确定出的PDU进行解码分析。本发明方案能够提高网络信令监测的准确性。

Description

网络信令监测方法及设备
技术领域
本发明涉及网络通信技术,尤其涉及网络信令监测方法及设备。
背景技术
IP多媒体子系统(IMS,IPMultimediaSubsystem)是下一代网络的核心技术,IMS域中所涉及到的应用层协议大部分都由传输控制协议(TCP,TransmissionControlProtocol)承载。
TCP是一个面向连接的传输层协议,虽然TCP不属于国际标准化组织(ISO,InternationalOrganizationforStandardization)制定的协议集,但由于其在商业界和工业界的成功应用,已成为事实上的网络标准,广泛应用于各种网络主机间的通信中。
通过网络信令监测方式对IMS各个接口的TCP流进行分析,以对IMS网络进行维护,是一种重要的手段。进行网络信令监测时:从IMS各个接口获取TCP流,从TCP流种界定出一个个完整的包数据单元(PDU,PacketDataUnit),对界定出的PDU进行解码分析。
对TCP流进行网络信令分析,须基于PDU进行解码分析,因此,需先从TCP流中界定出PDU。但是,由于TCP是一种面向字节流的协议,数据是以字节流进行传输的,没有消息边界,这给网络信令监测带来了不少困难。
为了从TCP流中确定出PDU,目前通常采用下述三种方法:
(1)进行网络信令监测时,获取的TCP流为一个一个的TCP包,也称为TCP段;TCP段包括TCP头和TCP段数据内容,每个TCP段承载的上层协议消息即TCP段数据内容部分,该方法假定每个TCP段数据内容上承载的上层协议消息都是完整的,也就是将每个TCP段数据内容视为一个PDU。这种做法虽然简单快捷,但常出现PDU界定错误的情况。
该方法中没有涉及到定界技术,很难准确地界定出PDU,从而导致网络信令监测的准确性较低。
(2)本方法将PDU的定界过程和解码分析过程放在一个分析模块中实现。TCP上的承载的协议数据都送往该模块,该模块进行TCP流分析,跟踪TCP流的建立过程,跟踪到连接建立成功消息,便可将该连接建立成功消息后数据内容中的第一个字节界定为PDU的起始点,然后将数据流缓存起来,根据ProtoA协议的规范,找出一个ProtoA的PDU的结束位置,ProtoA为TCP上承载的需要进行信令监测的上层协议,建立成功消息位于TCP头中;然后,再以当前PDU的结束位置作为下一个PDU的开始点,并根据规范找出下一个PDU的结束点,若缓存的数据不够长,则继续接收下一个TCP段,获取其数据内容,如此下去便可逐个界定出各PDU。
该方法引入了PDU界定技术,但只适合TCP连接是短连接或者能监测到TCP连接建立初始阶段的情况。对于TCP短连接的情况,如果没有监测到某个短连接的初始阶段,至多丢弃这个短连接中所传递的PDU(通常一个短连接中的PDU数量不多),待到下一个短连接的开始便可界定出PDU;虽然如此,该方法还是丢弃了一些本可定界出来的PDU。而对于TCP长连接或不能监测到TCP连接建立初始阶段的情况,一旦错过了连接建立初始阶段的TCP段,就无法定界开始点,从而无法准确确定出PDU。可见,方法二具有局限性,其准确性不高,也导致了网络信令监测的准确性较低。
(3)本方法把PDU的定界过程和解码分析过程放在一个分析模块中实现。该方法以接收到的TCP段作为判定单位,分析每个收到的TCP段,根据ProtoA的协议规范,判断当前TCP段数据内容开始部分的特征是否恰好符合ProtoA的PDU的特征,如果是,则以当前TCP段数据内容作为界定的开始,从而将当前TCP段数据内容及后续的各TCP段数据内容分别界定成一个PDU;如果不是,则忽略当前TCP段,接收下一个TCP段,继续上述分析,直到找到符合ProtoAPDU特征的TCP段为止。
为了适应更广泛的范围,该方法以TCP段作为判定粒度进行PDU界定,但该方法过于粗糙;因为获取的TCP段数据内容的开始部分很少有刚好是PDU开始部分的情况,并且,即使找到某个TCP段数据内容的开始部分正好是PDU的开始部分,也会丢掉不少TCP段,丢失的TCP段将影响网络信令监测的准确性。
发明内容
本发明提供了一种网络信令监测方法,该方法能够提高网络信令监测的准确性。
本发明提供了一种网络信令监测设备,该设备能够
一种网络信令监测方法,该方法包括:
缓存传输控制协议TCP段数据内容;
用包数据单元PDU特征逐字节去匹配缓存的TCP段数据内容,匹配成功则界定出PDU的起始点,确定出PDU;
对确定出的PDU进行解码分析。
一种网络信令监测设备,该设备包括界定模块和主分析模块;
所述界定模块,用于缓存TCP段数据内容,用PDU特征逐字节去匹配缓存的TCP段数据内容,匹配成功则界定出PDU的起始点,确定出PDU,传送给所述主分析模块;
所述主分析模块,用于对确定出的PDU进行解码分析。
从上述方案可以看出,本发明用PDU特征逐字节去匹配缓存的TCP段数据内容,细化了判定粒度,如果与TCP段数据内容中的部分字节匹配上,便可界定出PDU的起始点,进而确定出PDU,使PDU界定更加准确,从而提高了网络信令监测的准确性;并且,采用本发明方案,因未匹配上而丢失的数据较少,进一步提高了网络信令监测准确性。
附图说明
图1为本发明网络信令监测方法的示意性流程图;
图2为本发明网络信令监测设备的结构示意图;
图3为本发明网络信令监测方法的流程图实例。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
为了描述方面,同样地,将基于TCP承载的当前被分析的上层协议用ProtoA表示。本发明基于ProtoAPDU结构特点,用ProtoAPDU特征对TCP段数据内容逐字节进行匹配,细化了判定粒度。参见图1,为本发明网络信令监测方法的示意性流程图,该方法包括以下步骤:
步骤101,缓存TCP段数据内容。
接收待分析的TCP段后,可直接缓存TCP段数据内容;也可以跟踪TCP流的建立过程,先监测该TCP段中是否包含连接建立成功消息,具体地:判断接收的TCP段中是否包含连接建立成功消息,如果是,如果有,则将该连接建立完成消息后数据内容中的第一个字节界定为PDU起始点;如果没有,则执行所述缓存TCP段数据内容的步骤。
步骤102,用PDU特征逐字节去匹配缓存的TCP段数据内容,匹配成功则界定出PDU的起始点,确定出PDU。
基于ProtoAPDU结构特点,将PDU中比较特殊的部分,尤其是开头部分或结尾部分等作为PDU特征;PDU特征例如为:位于PDU起始点的头部特殊标识、位于PDU中指定位置的版本信息字段、长度字段等。
一般地,ProtoAPDU的结构中都有一些显著的头部特殊标识,该头部特殊标识在PDU的其它部分不会出现,将头部特殊标识作为PDU特征,则可大大提高PDU判定的准确性。以ProtoA是会话初始化协议(SIP,SessionInitiationProtocol)为例,其PDU以Invite、200OK等字符作为开始,只要监测到这些字符,便可将这些字符作为PDU的起始点,而PDU的长度是已知的,进而便可确定出PDU的结束点,进而确定出一个完整的PDU。
版本信息字段、长度字段也是ProtoAPDU结构中一些显著的特殊标识,位于PDU中的指定位置,若以版本信息字段或长度字段作为PDU特征,监测到缓存的TCP段数据内容中包含版本信息字段或长度字段,根据其在PDU中所处的位置便可确定出PDU的起始点,确定出起始点之后,再根据PDU的长度确定出PDU的结束点,进而确定出一个完整的PDU。
用于匹配判定的PDU特征可以是一个,为了提高准确性,PDU特征也可以是两个以上。
同样以ProtoA是SIP为例进行说明,对SIPPDU进行结构分析后获知:其PDU的开始部分为:INVITE、ACK、OPTIONS、BYE、CANCEL或REGISTER等字符,跟一个空格符,再跟版本信息;或者,其PDU的开始部分为:版本信息接一个空格,再跟3个数字表示的状态码。因此,可以将上述的两个开始部分作为SIPPDU的特征,对TCP段数据内容进行判定时,只要与其中一个特征匹配,便可将相应的字节界定为PDU的起始点,进而确定出PDU。
用ProtoAPDU特征去匹配缓存的TCP段数据内容中的第一个字节,如果匹配成功,则可以界定出PDU的起始点,确定出第一个PDU,后续PDU便可相应定界出来,这样,被监测的TCP流就被定位成功;如果没有匹配成功,则用ProtoAPDU特征去匹配第二个字节,若仍匹配未成功,则用ProtoAPDU特征去匹配下一字节,以此类推,直到匹配成功为止。
本步骤中,也可以待缓存的TCP段数据内容的数据长度达到设定长度时,才触发匹配判定,具体地:判断缓存的TCP段数据内容的数据长度是否达到设定长度,如果是,则执行所述用PDU特征逐字节去匹配缓存的TCP段数据内容的步骤。所述设定长度可根据需要设置,一般地,可将设定长度设置为ProtoAPDU的2倍,因为ProtoAPDU2倍长度的TCP流中通常包含至少一个完整的PDU。
从缓存的TCP段数据内容中的第一个字节开始去匹配,可能碰巧成功,但接下来的剩余数据又可能匹配不上,这时通常出现了误判;为了防止误判,也可以将设定长度设置为更大的值,以足够容纳两个以上完整的PDU,比如将其设置为ProtoAPDU的5倍;这样,匹配成功一次后,在此基础上继续匹配后续的数据,看是否也能匹配成功,一般地,如果接连两次匹配成功后再界定PDU的起始点,将大大减小误判的可能性。
步骤103,对确定出的PDU进行解码分析。
参见图2,为本发明网络信令监测设备的结构示意图,其包括界定模块和主分析模块;
所述界定模块,用于缓存TCP段数据内容,用PDU特征逐字节去匹配缓存的TCP段数据内容,匹配成功则界定出PDU的起始点,确定出PDU,传送给所述主分析模块;
所述主分析模块,用于对确定出的PDU进行解码分析。
可选地,所述界定模块包括缓存区和界定子单元;
所述缓存区,用于缓存TCP段数据内容;
所述界定子单元,用PDU特征逐字节去匹配缓存的TCP段数据内容,匹配成功则界定出PDU的起始点,确定出PDU,传送给所述主分析模块。
可选地,所述界定模块还包括连接建立判定子单元,用于判断接收的TCP段中是否包含连接建立成功消息,如果是,则将该连接建立完成消息后数据内容中的第一个字节界定为PDU起始点,确定出PDU,传送给所述主分析模块;否则,将接收的TCP传送到缓存区。
可选地,所述缓存区中还包括长度判定子单元,用于判断缓存的TCP段数据内容的数据长度是否达到设定长度,如果是,则向所述界定子单元发送启动指令;所述界定子单元接收所述启动指令后,用PDU特征逐字节去匹配缓存的TCP段数据内容。
这里将网络信令监测设备分成界定模块和主分析模块两部分,而不是像现有技术都在主分析模块完成网络信令监测。首先是因为进行PDU定界的工作逻辑本身就比较复杂,涉及到TCP流跟踪、缓冲区管理、PDU定界、PDU确定提交等,PDU确定提交也就是,将缓冲区里的若干连续字节合在一起形成PDU提交给主分析模块;而基于完整PDU的解码分析工作也有可能很复杂,其复杂度依业务分析功能需求而定;这两类工作分开在不同的模块中逻辑会更清晰。其次,是因为ProtoA协议通常也可以由其他承载协议承载,如UDP等;在基于PDU的前提下,无论哪种承载,其主体分析逻辑,即PDU界定的工作逻辑几乎是一样的,将PDU界定与解码分析区分开来,可提高主分析模块的复用度。
不同的TCP流具有不同的方向性,根据接收的待分析的TCP段中的方向性信息,便可获知TCP流方向,所述方向性信息包括:源IP地址、源端口、目的IP地址和目的端口。所述网络信令监测设备中可以包括多个界定模块,所述界定模块为多个,每个对应不同方向的TCP流,该设备还包括方向获取单元,用于从接收的TCP段中的方向性信息获取TCP流方向,将接收的TCP传送给对应的界定模块。
具体运用软件程序实现时,每个界定模块可基于一个TCP流对象完成,方向获取单元可基于一个ProtoAFix对象实现,每个TCP流对象都有一个状态:是否定位,即是否界定出PDU;ProtoAFix对象的主要功能是管理各个TCP流对象,应用这些TCP流对象进行PDU定界。
图3是ProtoAFix对象的主控函数的处理流程,其包括以下步骤:
步骤301,从接收的TCP段中的方向性信息获取TCP流方向。
步骤302,根据获取的TCP流方向,判断是否存在相应的TCP流处理对象,如果是,则执行步骤304;否则执行步骤303。
步骤303,依据获取的方向性信息创建一个TCP流处理对象,并将其初始化为未定位状态,并加入到ProtoAFix的TCP流对象组中,执行步骤304。
步骤304,将接收的TCP段传给相应的TCP流对象进行界定处理。
相应的TCP流对象用PDU特征逐字节去匹配缓存的TCP段数据内容,以界定出完整的PDU。具体地,TCP流对象主函数的处理包括:
判断本TCP流是否处于定位状态,如果是,则直接将当前接收的TCP段的数据内容置入缓存区,进行PDU合成,若数据长度不够,则继续接收下一个TCP段,直至能够合成一个完整的PDU,然后等待下一个TCP段的到来,继续下一个PDU的合成;
如果本TCP流不是处于定位状态,则先判断当前接收的TCP段中是否包含连接建立成功消息,如果是,则将该连接建立完成消息后数据内容中的第一个字节界定为PDU起始点,确定出PDU;否则将当前接收的TCP段数据内容置入缓存区,判断缓存的TCP段数据内容的数据长度是否达到设定长度,如果是,则用PDU特征逐字节去匹配缓存的TCP段数据内容,如果缓存的TCP段数据内容的数据长度小于设定长度,则继续接收下一个TCP段。
步骤305,如果TCP流对象处理失败,则结束流程;如果TCP流对象处理成功,则循环弹出PDU,提交给主分析模块。
本发明不仅适用于IMS信令监测,也适用于其它进行IP网络监测的情形。
采用本发明方案,判定粒度更细,使PDU界定更加准确,从而提高了网络信令监测的准确性;也使丢失的数据仅限于字节级,也减少了丢失的数据量,进一步提高了网络信令监测准确性。
并且,本发明方案的适用范围广,既适用于TCP连接是短连接以及能监测到TCP连接建立初始阶段的情况,也适用于TCP连接是长连接以及没有检测到TCP连接建立初始阶段的情况。因为即使没有监测到TCP连接建立初始阶段的数据,也可以用PDU特征逐字匹配的方法进行流定位,以从残缺流中界定出一个个完整的PDU。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (6)

1.一种网络信令监测方法,其特征在于,该方法包括:
从接收的传输控制协议TCP段中的方向性信息获取TCP流方向;
对应不同的TCP流方向分别缓存TCP段数据内容;
判断缓存的TCP段数据内容的数据长度是否达到设置的设定长度,如果是,则用包数据单元PDU特征逐字节去匹配缓存的TCP段数据内容,匹配成功则界定出PDU的起始点,确定出PDU;
对确定出的PDU进行解码分析。
2.如权利要求1所述的方法,其特征在于,所述缓存TCP段数据内容之前,该方法还包括:
判断接收的TCP段中是否包含连接建立成功消息,如果是,则将该连接建立成功消息后数据内容中的第一个字节界定为PDU起始点,确定出PDU,并执行所述对确定出的PDU进行解码分析的步骤;如果没有,则执行所述缓存TCP段数据内容的步骤。
3.如权利要求1所述的方法,其特征在于,所述PDU特征包含位于PDU开始部分的头部特殊标识;或者,所述PDU特征包含位于PDU中指定位置的版本信息字段或长度字段。
4.如权利要求1至3中任一项所述的方法,其特征在于,所述PDU特征为至少一个。
5.一种网络信令监测设备,其特征在于,该设备包括界定模块和主分析模块;
所述界定模块,用于缓存TCP段数据内容,用PDU特征逐字节去匹配缓存的TCP段数据内容,匹配成功则界定出PDU的起始点,确定出PDU,传送给所述主分析模块;所述界定模块包括缓存区和界定子单元;所述缓存区,用于缓存TCP段数据内容;所述界定子单元,用PDU特征逐字节去匹配缓存的TCP段数据内容,匹配成功则界定出PDU的起始点,确定出PDU,传送给所述主分析模块;
所述主分析模块,用于对确定出的PDU进行解码分析;
所述缓存区中还包括长度判定子单元,用于判断缓存的TCP段数据内容的数据长度是否达到设置的设定长度,如果是,则向所述界定子单元发送启动指令;所述界定子单元接收所述启动指令后,用PDU特征逐字节去匹配缓存的TCP段数据内容;
所述界定模块为多个,每个对应不同方向的TCP流,该设备还包括方向获取单元,用于从接收的TCP段中的方向性信息获取TCP流方向,将接收的TCP段传送给对应的界定模块。
6.如权利要求5所述的设备,其特征在于,所述界定模块还包括连接建立判定子单元,用于判断接收的TCP段中是否包含连接建立成功消息,如果是,则将该连接建立成功消息后数据内容中的第一个字节界定为PDU起始点,确定出PDU,传送给所述主分析模块;否则,将接收的TCP段数据内容传送到缓存区。
CN201110111444.9A 2011-04-29 2011-04-29 网络信令监测方法及设备 Active CN102761457B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110111444.9A CN102761457B (zh) 2011-04-29 2011-04-29 网络信令监测方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110111444.9A CN102761457B (zh) 2011-04-29 2011-04-29 网络信令监测方法及设备

Publications (2)

Publication Number Publication Date
CN102761457A CN102761457A (zh) 2012-10-31
CN102761457B true CN102761457B (zh) 2016-03-30

Family

ID=47055783

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110111444.9A Active CN102761457B (zh) 2011-04-29 2011-04-29 网络信令监测方法及设备

Country Status (1)

Country Link
CN (1) CN102761457B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106506402B (zh) * 2016-10-21 2019-08-23 中国科学院声学研究所 一种协议无关转发流缓存方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1180869A2 (en) * 2000-08-18 2002-02-20 Tsinghua University A TCP aware local retransmission scheme for unreliable transmission network
CN1885856A (zh) * 2005-06-20 2006-12-27 华为技术有限公司 在网络中识别rtp媒体流的实现方法
CN102006304A (zh) * 2010-12-06 2011-04-06 北京中创信测科技股份有限公司 Tcp承载的上层协议数据单元的自动定界方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1180869A2 (en) * 2000-08-18 2002-02-20 Tsinghua University A TCP aware local retransmission scheme for unreliable transmission network
CN1885856A (zh) * 2005-06-20 2006-12-27 华为技术有限公司 在网络中识别rtp媒体流的实现方法
CN102006304A (zh) * 2010-12-06 2011-04-06 北京中创信测科技股份有限公司 Tcp承载的上层协议数据单元的自动定界方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TCP ULP Framing Protocol (TUF);Transport Area Working Group;《draft-ietf-tsvwg-tcp-ulp-frame-01》;20011115;第1-5、11-13页 *

Also Published As

Publication number Publication date
CN102761457A (zh) 2012-10-31

Similar Documents

Publication Publication Date Title
CN107147657B (zh) 适用于多机可靠通信的编解码方法及通讯设备
CN107147620B (zh) 一种消息交互处理方法、客户端和服务端
CN104144106B (zh) 一种消息转发方法、装置及系统
CN112583878B (zh) 车辆信息校验方法、装置、设备和介质
CN110830442A (zh) 报文处理方法、装置及网关
CN105897652A (zh) 一种基于标准协议的异构终端动态接入方法
CN112235302B (zh) 一种适用于多种总线的协议解析方法
EP3720075A1 (en) Data transmission method and virtual switch
US10033842B2 (en) GRE message encapsulation method, decapsulation method, and corresponding devices
CN110704356A (zh) 一种通用的解析串口数据方法
CN109669787B (zh) 数据传输方法及装置、存储介质、电子设备
CN112737935A (zh) 基于网关的数据处理方法、数据处理方法、边缘网关及控制系统
US10430364B2 (en) Packet forwarding
CN102497297A (zh) 基于多核多线程的深度报文检测技术的实现系统和方法
US9992311B2 (en) Correct port identification in a network host connection
CN102761457B (zh) 网络信令监测方法及设备
US10574392B2 (en) System. methods and devices for transmitting and/or receiving data using an inter communication link
CN106911530B (zh) 一种基于串口冗余策略的关键测试指令传输系统及方法
CN111726260B (zh) 一种网络请求回复信息格式转换的测试方法、装置和系统
CN104796426B (zh) 网页后门的检测方法
CN116132550A (zh) 一种数据传输方法、装置、电子设备及存储介质
CN115348320B (zh) 一种通信数据的转换方法、装置、及电子设备
CN115967575A (zh) Http请求夹带检测方法、装置、电子设备及存储介质
CN102447597B (zh) 一种实现ip有效性检测的方法及装置
CN113177011B (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