发明名称 一种网络数据包的解析方法
摘要 本发明公开了一种网络数据包的解析方法与装置,属于网络通信领域。本方法为:1)将所需协议解析子模块串联成一数据解析链;2)数据解析链的第一协议解析子模块根据设定的协议类型连续地对当前数据包进行处理,提取当前层负载的协议类型等信息;3)协议解析子模块连续地对输入数据进行处理,即判断输入的协议类型与本层的解析协议类型是否一致,若一致则对接收数据包进行处理后输出到下子模块;若不一致则将接收数据直接输出到下一子模块。本装置包括一数据解析链,其为依次串联的数据链路层协议解析子模块、MPLS协议解析子模块、网络层协议解析子模块、传输层协议解析子模块。本发明可实现线速解析,支持多种类型数据包,可实现无缝升级。
申请公布号 CN101958902B 申请公布日期 2013.11.27
申请号 CN201010500546.5 申请日期 2010.09.30
申请人 北京锐安科技有限公司 发明人 李亚峰
分类号 H04L29/06(2006.01)I;H04L12/70(2013.01)I 主分类号 H04L29/06(2006.01)I
代理机构 北京君尚知识产权代理事务所(普通合伙) 11200 代理人 余功勋
主权项 一种网络数据包的解析方法,其步骤为:1)根据当前网络环境,将所需协议解析子模块串联成一数据解析链;并设定所述数据解析链的第一个协议解析子模块的协议类型;其中,所述数据解析链包括依次串联的数据链路层协议解析子模块、多协议标签交换层协议解析子模块、网络层协议解析子模块、传输层协议解析子模块;2)通过ASIC对网络数据包的物理层进行解析,将网络上的串行比特数据流分离成数据链路层的数据包,以并行数据流的形式送入数据包解析装置,将数据链路层的数据包接入数据解析链,根据配置得到当前数据链路层的协议类型,根据数据链路层协议类型,将数据包体进行处理寄存后输出;同时根据数据链路层协议,提取当前数据包位于数据链路层包头内的相关信息,与经过数据链路层解析后的数据包体同步输出;3)将数据链路层解析后的数据包体进行多协议标签交换协议层(MPLS层)解析后输出;同时根据多协议标签交换协议(MPLS)提取MPLS层包头内的相关信息,并且经过解析获得数据包当前层的相关信息,与经过MPLS层解析后的数据包体同步输出;4)网络层解析,根据网络层协议对数据包进行网络层的协议解析,根据网络层的协议对数据包体进行处理后输出;同时根据网络层协议,提取当前数据包位于网络层包头内的相关信息,并且经过解析获得出当前层的数据包信息,与经过网络层解析后的数据包体同步输出;5)传输层解析,根据传输层协议对数据包进行传输层的协议解析,根据传输层的协议对数据包体进行处理后输出;同时根据传输层协议,提取当前数据包位于传输层包头内的相关信息,并且经过解析获得出当前层的数据包信息,与经过传输层解析后的数据包体同步输出;其中,所述包头内的相关信息包括:当前层包头准确长度,当前层负载的协议类型;所述对数据包体进行处理包括:所述各层协议解析模块根据协议对数据包的处理,若输入数据包当前的层的协议与解析协议一致,则根据当前协议标准提取当前层包头内的部分信息,同时找出当前层负载,即上一层的在原数据包体的准确起始位置,若输入数据包当前层的协议与解析协议不符,不会解析数据包,只是将相关信息仅作寄存后输出;所述各层协议解析模块经过解析获得当前层的数据包信息,包括当前层负载的准确起始时间,当前层负载的在并行数据包体内的准确起始位置,当前层负载的具体协议。
地址 100044 北京市海淀区中关村南大街乙56号方圆大厦9层