一种异构链路多协议的自动识别系统和方法
【专利摘要】一种异构链路多协议的自动识别系统和方法,该系统承载在以可编程芯片为硬件平台的片上系统装置上,利用用户输入的不同协议的数据帧参数生成标准协议数据帧,再相应添加不同的协议识别标识流表和流表子数据域标识掩码,从而完成多协议的自动识别,无需解析该数据帧的具体内容。系统设有三个部件:执行生成数据帧的标准协议生成模块,添加用作识别依据的协议识别标识添加模块,以及检测数据帧协议类型的多协议自动识别模块,本发明能全自动实现异构链路下多协议数据帧的自动识别。在多种常用通信协议并存的通信系统中,不仅自动识别多种通信协议、且准确率高,能减少因错误识别协议而造成的数据帧丢失和不正确处理,提高网络灵活性和健壮性。
【专利说明】一种异构链路多协议的自动识别系统和方法
【技术领域】
[0001] 本发明涉及一种在异构链路下的多种协议并存的通信系统中,自动识别协议的系 统和方法,其应用场景为以可编程芯片作为硬件平台的片上系统,属于通信协议识别的技 术领域。
【背景技术】
[0002] 随着通信技术的高速发展及其应用范围的不断扩大,通信系统的规模变得越来越 大,其应用环境也变得越来越复杂。目前,在很多情况下,同一通信系统中可能存在和使用 多种不同的通信协议。在这样的通信系统中,不同的接入设备遵循不同的通信协议发送和 接收数据,它们产生的不同通信协议的数据都需要进行相应的数据处理。这样的通信需求, 使得异构链路通信协议识别技术的研究就变得十分迫切和必要。
[0003] 通信协议是信息系统的骨架和神经,也是维系信息正常传递的纽带。协议识别就 是采用设定算法和工具通过特征分析确定网络流量所采用的通信协议类型。针对通信协议 的识别问题,许多业内研究人员都在致力于这方面的工作。
[0004] 现有的协议识别技术主要应用于有线通信中,包括有:基于端口的、基于内容分析 的、基于静态特征匹配的、基于行为特征的、基于流量特征的、基于多模式匹配的和利用统 计特征识别应用层协议的识别方法等等,主要针对地面网络,且集中在应用层。
[0005] 早期基于传输控制协议TCP(TransmissionControl Protocol)流的网络应用协议 的分类,集中于利用网络应用的端口序号。这个方案非常简单,即对每个应用都赋予一个具 体的TCP端口序号。例如:文件传输协议FTP(File Transfer Protocol)的端口 20用来 上传文件到服务器,端口 21用来下载文件到客户端。由于许多协议利用动态端口来限制端 口协议的监督,并且随着实时的网络应用的发展,已经不再使用来自互联网地址指派机构 IANA (The Internet Assigned Numbers Authority)的端 口号进行通讯,也就是基于端口的 分类技术已过时了。
[0006] 在对基于端口的网络应用协议分类进行升级后,依靠对每个数据包的负载内容进 行检测的技术也得到了相应发展,促进了利用已知应用的特征匹配来识别应用的技术方 案。此技术方案的特点是:首先,当载荷不加密时,这个识别策略很精确。其次,就是根据实 际存在的应用的数量,可得到的成功匹配很少。基于这些原因,基于载荷的协议分类技术并 不能很好地改善流量分类结果。
[0007] 为了提高协议识别的准确性,2002年至2004年间有很多研究利用基于静态特征 匹配的算法来识别应用层协议。迄今为止,基于静态特征的协议识别技术的准确性仍然是 目前所有算法中最高效的。但是,其缺陷也非常明显:该类算法的时空复杂度比较高,识别 效率比较低,还需要不断地跟踪待识别协议的发展。当协议规范发生变化或者出现新协议 时,寻找特征的工作就必须重新进行,使得更新具有滞后性。且对于加密后的协议,该技术 的局限性更加显著。
[0008] 为了保护用户的隐私,加密技术变得越来越流行。加密条件下的协议识别技术就 得到了相应发展。研究人员提出了根据行为特征进行协议判别的技术。建立判决树识别器, 利用数据包的大小和数据包的到达时间间隔,分别对文件传输协议FTP和简单邮件传输协 议SMTP(Simple Mail Transfer Protocol)等应用层协议等进行判别。
[0009] 基于流量动态行为特征的协议识别方法的原理是从研究采用不同协议的应用服 务产生的网络流量的自身特有本质特征入手,基于对捕获到的大量网络数据流量进行统 计、分析和计算,总结归纳出不同协议类型的流量特征,作为对其进行分类识别的依据。流 量行为特征包含了网络用户数据请求与服务器响应发送数据帧过程中的各类行为要素,既 可以是通信报文特征,也可以是具体的行为特征,或者是一些统计特征。
[0010] 除了传统的常用协议,在新的通信环境中,还需要考虑空间链路的可能性。空间数 据系统咨询委员会 CCSDS (Consultative Committee for Space Data Systems)是一个各 国空间局的国际合作组织,它致力于建立有助于空间信息交换的数据系统标准,目标是建 立标准化的、开放的空间数据系统,以提供相互支持和提高效费比。
[0011] CCSDS关于遥测、遥控和高级在轨系统的建议或协议为卫星和地面数据流的处理 提供了一个统一、高效的机制,是航天器领域数据系统的发展方向和主流。CCSDS空间数据 系统的新体制得到了各主要空间国家和空间组织的广泛承认,采用CCSDS标准的空间任务 迅速增多,迄今为止,包括各种不同类型的航天器数量已经超过了 200个,如著名的国际空 间站、深空探测器、各种近地轨道卫星、以及以大学为主研制的实验小卫星等。随着人类对 外太空的探索,以国际合作形式进行空间探测的活动也日益频繁,合作中的数据标准化是 进行信息交换的基础。由于各合作方在相关协议标准实现上的差异,经常在信息交换时出 现差错,大大影响了合作进程和工作效率。
[0012] 另外,从空间信息对抗的角度,研究协议分析和数据帧识别算法也是提高未来战 场信息网络对抗能力的重要途径之一。
【发明内容】
[0013] 有鉴于此,本发明的目的是提供一种异构链路多协议的自动识别系统和方法,本 发明是在基于异构链路下的多种常用通信协议并存的通信系统中,自动识别多种通信协 议、并执行相应数据识别和处理的系统和方法。本发明能够有助于提高协议识别的准确率, 减少因错误识别协议而造成的数据帧丢失和不正确处理,进一步提高网络的灵活性和健壮 性。
[0014] 为了达到上述目的,本发明提供了一种异构链路多协议的自动识别系统,其特征 在于:所述系统承载在以可编程芯片作为硬件平台的片上系统装置上,利用用户输入的不 同协议的数据帧参数生成标准协议数据帧,然后相应添加不同的协议识别标识流表和流表 子数据域标识掩码,从而完成多协议的自动识别,且无需解析该数据帧的具体内容;设有顺 序连接的三个部件:标准协议生成模块,协议识别标识添加模块和多协议自动识别模块, 依次分别执行生成数据帧、添加用作识别依据的协议识别标识和检测数据帧协议类型的操 作,实现异构链路下多协议数据帧的自动识别操作;其中:
[0015] 标准协议生成模块,负责根据用户输入的数据帧长度及其协议类型参数,参照相 应协议标准分别生成空间数据系统咨询委员会CCSDS (Consultative Committee for Space Data Systems)协议数据巾贞、以太网Ethernet协议数据巾贞和无协议数据巾贞,再传递给协议 识别标识添加模块;设有两个单元:有效载荷生成单元和协议封装单元;
[0016] 协议识别标识添加模块,作为该系统的核心部件,负责将标准协议数据帧转换为 携带协议识别标识流表和流表子数据域标识掩码的数据帧,再传递给多协议自动识别模 块;设有顺序连接的三个单元:数据缓存单元、协议识别标识添加单元和数据发送单元;
[0017] 多协议自动识别模块,负责对接收到的数据帧进行分析,确定数据帧所归属的不 同协议类型,告知用户;设有数据缓存单元、掩码匹配单元和协议分析单元。
[0018] 为了达到上述目的,本发明还提供了一种异构链路多协议的自动识别系统的工作 方法,其特征在于:协议识别标识添加模块对来自标准协议生成模块的不同数据帧分别添 加不同的协议识别标识流表和流表子数据域标识掩码,然后将该处理后的不同的标准协议 数据帧送入多协议自动识别模块进行分析,只根据相应的协议识别标识流表和流表子数据 域标识掩码得到其所归属的协议,无需解析该数据帧的具体内容;该方法包括下列操作步 骤:
[0019] 步骤1,标准协议生成模块根据用户输入的包括数据帧长度和协议类型的协议数 据参数,生成不同的标准协议数据帧,并存入对应协议的发送缓存中;等待其后端的协议识 别标识添加模块空闲时,读取该完成封装的数据帧;
[0020] 步骤2,协议识别标识添加模块对读取的不同的标准协议数据帧分别添加不同的 协议识别标识流表:通过对多种协议的分析和特征提取,决定采用包括同步头、版本号、前 导码或无协议包头作为匹配区别各种不同协议数据帧的识别特征;其中,用同步头和版本 号匹配识别CCSDS TM协议和CCSDS A0S协议;用同步头匹配识别CCSDS TC协议和CCSDS proximity-Ι协议;用前导码匹配识别Ethernet协议;用包头"FF"匹配识别无协议数据;
[0021] 步骤3,协议识别标识添加模块添加流表子数据域标识掩码:为提高识别效率和 减少需要匹配的比特数,采用不同的流表子数据域标识掩码标明所需匹配的子数据域;
[0022] 步骤4,多协议自动识别模块接收到一个完整的数据帧时,同时接收到104bit的 协议识别标识流表和6bit的流表子数据域标识掩码,此时先提取相应的流表子数据域标 识掩码并进行匹配识别:即对该流表子数据域标识掩码为1的比特位对应的流表子数据域 进行匹配识别,如果匹配成功,则顺序执行步骤5 ;如果匹配不成功,则跳转执行步骤6 ;
[0023] 步骤5,多协议自动识别模块进行部分子数据域的匹配识别:将需要识别的子数 据域与协议识别标识流表中对应的子数据域的填充值进行匹配识别,如果匹配成功,则完 成一次协议识别,并判定为该协议的数据帧,结束全部流程;如果匹配不成功,则继续执行 步骤6,以便对因个别数据位跳变而使流表子数据域标识掩码发生差错的数据帧也能够实 现正确的协议识别;
[0024] 步骤6,为避免因个别数据位跳变而造成协议识别正确率低的缺陷,多协议自动识 别模块将接收到的协议识别标识流表的全部子数据域分别与协议识别标识标准流表的全 部子数据域逐项进行对应的模糊匹配识别,完成多协议自动匹配识别的全部流程。
[0025] 本发明与【背景技术】相比较的创新优点是:
[0026] 现有技术的协议识别方法本身单纯侧重于数据内容或者数据行为,其识别的特征 位短小、特征单一等不同协议的特点都会影响识别的效率和准确度。本发明系统和方法采 用添加多协议自动识别标识流表来增加协议识别可匹配的特征,又通过添加流表子数据域 标识掩码,以减少需要匹配的比特数,提高识别效率;还采用对多协议自动识别标识流表及 流表子数据域标识掩码的联合分析,提高了对传输比特差错的纠错处理能力;而且,本发明 系统的匹配识别操作更加集中化,对于整个网络而言,增强了可控制性和鲁棒性。因此,本 发明具有很好的推广应用前景。
【专利附图】
【附图说明】
[0027] 图1是本发明异构链路多协议自动识别系统的结构组成示意图。
[0028] 图2是本发明多协议自动识别系统中的标准协议生成模块结构组成示意图。
[0029] 图3是本发明多协议自动识别系统中的标准协议生成模块结构组成示意图。
[0030] 图4是本发明多协议自动识别系统中的多协议自动识别模块结构组成示意图。
[0031] 图5是多协议自动识别流表及其掩码的对应关系。
[0032] 图6是本发明异构链路多协议自动识别系统的工作方法操作步骤流程图。
【具体实施方式】
[0033] 为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步 的详细描述。
[0034] 本发明异构链路下的多协议自动识别的系统是在充分研究了协议识别的方法 和多种协议,例如空间数据系统咨询委员会CCSDS提出的空间数据链路协议、以太网 Ethernet协议和无协议数据等基础上提出的。其中,CCSDS空间数据链路协议还包括:下行 遥测TM(Telemetry)空间数据链路协议、遥控TC (Telecommand)空间数据链路协议、高级在 轨系统AOS (Advanced Orbiting Systems)空间数据链路协议、邻近proximity-Ι空间数据 链路协议。本发明系统是承载在以可编程芯片作为硬件平台的片上系统装置上,其设计的 核心思想是利用用户输入的不同协议的数据帧参数生成标准协议数据帧,然后相应添加不 同的协议识别标识流表和流表子数据域标识掩码,从而完成多协议的自动识别,且无需解 析该数据帧的具体内容。
[0035] 参见图1,具体介绍本发明系统的结构组成:设有顺序连接的三个部件:标准协议 生成模块,协议识别标识添加模块和多协议自动识别模块,依次分别执行生成数据帧、添加 用作识别依据的协议识别标识和检测数据帧协议类型的操作,实现异构链路下多协议数据 帧的自动识别操作;其中:
[0036] (1)标准协议生成模块(参见图2所示),负责根据用户输入的数据帧长度及其协 议类型参数,参照相应协议标准分别生成空间数据系统咨询委员会CCSDS协议数据帧、以 太网Ethernet协议数据帧和无协议数据帧,再传递给协议识别标识添加模块。设有两个单 元:有效载荷生成单元和协议封装单元。这两个单元功能如下:
[0037] 有效载荷生成单元:根据用户提供的不同数据帧长度和协议类型参数计算得到所 需生成的有效载荷长度,根据该有效载荷长度生成相应的有效载荷数据后,将其传递给协 议封装单元。
[0038] 协议封装单元,负责给有效载荷封装不同协议的数据帧头,生成对应的不同协议 的数据帧后,传递给协议识别标识添加模块中的相应协议数据缓存组件。设有下述六个组 件:TM协议封装组件、TC协议封装组件、A0S协议封装组件、proximity-Ι协议封装组件、 Ethernet协议封装组件和无协议封装组件,
[0039] 这六个协议封装组件的功能是:
[0040] (a) TM协议封装组件,用于给有效载荷添加TM协议帧导头,生成标准TM协议数据 帧,传递给TM数据缓存组件。
[0041] (b) TC协议封装组件,用于给有效载荷添加TC协议帧导头,生成标准TC协议数据 帧,传递给TC数据缓存组件。
[0042] (c) A0S协议封装组件,用于给有效载荷添加A0S协议帧导头,生成标准A0S协议数 据帧,传递给A0S数据缓存组件。
[0043] (d)proximity-l协议封装组件,用于给有效载荷添加proximity-Ι协议巾贞导头, 生成标准proximity-Ι协议数据巾贞,传递给proximity-1数据缓存组件。
[0044] (e) Ethernet协议封装组件,用于给有效载荷添加Ethernet协议巾贞导头,生成标 准Ethernet协议数据巾贞,传递给Ethernet数据缓存组件。
[0045] (f)无协议封装组件,用于给有效载荷添加无协议帧导头,生成标准无协议数据 帧,传递给无协议数据缓存组件。
[0046] (2)协议识别标识添加模块(参见图3所示),作为该系统的核心部件,负责将标 准协议数据帧转换为携带协议识别标识流表和流表子数据域标识掩码的数据帧,再传递给 多协议自动识别模块。设有顺序连接的三个单元:数据缓存单元、协议识别标识添加单元和 数据发送单元.。这三个单元功能如下:
[0047] 数据缓存单元,只负责将接收到的不同协议的数据帧进行缓存、不做任何数据处 理;然后传递给协议识别添加单元中的相应组件。设有六个组件:TM数据缓存组件、TC数 据缓存组件、A0S数据缓存组件、proximity-Ι数据缓存组件、Ethernet数据缓存组件和无 协议数据缓存组件;
[0048] 协议识别标识添加单元,根据生成的不同协议数据帧类型,分别设置相应的协议 识别标识流表和流表子数据域标识掩码,再将携带该协议识别标识流表和流表子数据域标 识掩码的数据帧传递给数据发送单元。也设有六个组件:TM协议识别标识添加组件、TC协 议识别标识添加组件、A0S协议识别标识添加组件、proximity-Ι协议识别标识添加组件、 Ethernet协议识别标识添加组件和无协议识别标识添加组件。其中:
[0049] (a) TM协议识别标识添加组件,用于将标准的TM协议数据帧转换为带有 lACFFClDh、0000h、000000h、0000h、00h、00b协议识别标识流表和100001b流表子数据域标 识掩码的数据帧,并将其传递给数据发送单元。
[0050] (b) TC协议识别标识添加组件,用于将标准的TC协议数据帧转换为带有 00000000h、EB90h、000000h、0000h、00h、00b协议识别标识流表和010000b流表子数据域标 识掩码的数据帧,并将其传递给数据发送单元。
[0051] (c) A0S协议识别标识添加组件,用于将标准的A0S协议数据帧转换为带有 lACFFClDh、0000h、000000h、0000h、00h、01b协议识别标识流表和100001b流表子数据域标 识掩码的数据帧,并将其传递给数据发送单元。
[0052] (d) proximity-Ι协议识别标识添加组件,用于将标准的proximity-Ι协议数据中贞 转换为带有00000000h、0000h、FAF320h、0000h、00h、00b协议识别标识流表和001000b流表 子数据域标识掩码的数据帧,并将其传递给数据发送单元。
[0053] (e) Ethernet协议识别标识添加组件,用于将标准的Ethernet协议数据帧转换为 带有00000000h、00000h、000000h、5ro5h、00h、00b协议识别标识流表和000100b流表子数 据域标识掩码的数据帧,并将其传递给数据发送单元。
[0054] (f)无协议识别标识添加组件,用于将标准的无协议数据帧转换为带有 00000000h、0000h、000000h、0000h、FFh、00b协议识别标识流表和000010b流表子数据域标 识掩码的数据帧,并将其传递给数据发送单元。
[0055] 数据发送单元,负责将完成处理、即已经添加相应协议识别标识流表和流表子数 据域标识掩码的不同协议数据帧发送给多协议自动识别模块。
[0056] (3)多协议自动识别模块(参见图4所示),负责对接收到的数据帧进行分析,确 定数据帧所归属的不同协议类型,并告知用户。设有数据缓存单元、掩码匹配单元和协议分 析单元。三个单元功能如下 :
[0057] 数据缓存单元,用于先对接收到的数据帧剔除协议识别标识流表和流表子数据域 标识掩码,然后进行缓存;且每次完成协议识别操作后,必须清空该数据缓存单元。
[0058] 掩码匹配单元,用于对接收到的流表子数据域标识掩码与所述六种标准流表子数 据域标识掩码进行匹配,确定是否继续执行匹配全部子数据域的操作,并将是否继续进行 全部子数据域匹配的信号传递给协议分析单元。
[0059] 协议分析单元,用于根据接收到的协议识别标识流表和是否继续进行全部子数据 域匹配的信号进行协议分析,再将分析结果:协议类型返回给用户;设有下述六个组件:TM 协议分析组件、TC协议分析组件、A0S协议分析组件、proximity-1协议分析组件、Ethernet 协议分析组件和无协议分析组件。这六个协议分析组件的功能是:
[0060] (a) TM协议分析组件,功能是根据接收的协议识别流表和是否进行全部流表匹配 的信号,分析数据帧是否为TM协议,返回给用户
[0061] (b)TC协议分析组件,功能是根据接收的协议识别流表和是否进行全部流表匹配 的信号,分析数据帧是否为TC协议,返回给用户
[0062] (c)AOS协议分析组件,功能是根据接收的协议识别流表和是否进行全部流表匹配 的信号,分析数据帧是否为A0S协议,返回给用户
[0063] (d) proximity-Ι协议分析组件,功能是根据接收的协议识别流表和是否进行全部 流表匹配的信号,分析数据帧是否为proximity-Ι协议,返回给用户
[0064] (e) Ethernet协议分析组件,功能是根据接收的协议识别流表和是否进行全部流 表匹配的信号,分析数据帧是否为Ethernet协议,返回给用户。
[0065] (f)无协议分析组件,功能是根据接收的协议识别流表和是否进行全部流表匹配 的信号,分析数据帧是否为无协议,返回给用户。
[0066] 本发明异构链路多协议的自动识别系统的工作方法的核心思路是:协议识别标识 添加模块对来自标准协议生成模块的不同数据帧分别添加不同的协议识别标识流表和流 表子数据域标识掩码,然后将该处理后的不同的标准协议数据帧送入多协议自动识别模块 进行自动分析和匹配识别,只根据相应的协议识别标识流表和流表子数据域标识掩码就能 够得到其所归属的协议,无需解析该数据帧的具体内容。
[0067] 参见图6,介绍本发明方法的具体操作步骤:
[0068] 步骤1,标准协议生成模块根据用户输入的包括数据帧长度和协议类型的协议数 据参数,生成不同的标准协议数据帧,并存入对应协议的发送缓存中;等待其后端的协议识 别标识添加模块空闲时,读取该完成封装的数据帧。
[0069] 步骤2,协议识别标识添加模块对读取的不同的标准协议数据帧分别添加不同的 协议识别标识流表:通过对多种协议的分析和特征提取,决定采用包括同步头、版本号、前 导码或无协议包头作为匹配区别各种不同协议数据帧的识别特征。其中,用同步头和版本 号匹配识别CCSDS TM协议和CCSDS A0S协议,用同步头匹配识别CCSDS TC协议和CCSDS proximity-Ι协议,用前导码匹配识别Ethernet协议,用包头"FF"匹配识别无协议数据,
[0070] 本发明所添加的协议识别标识流表是由下述六个子数据域的数据特征位依次所 组成:第一子数据域是CCSDS TM协议和CCSDS A0S协议的同步头,第二子数据域是CCSDS TC协议的同步头,第三子数据域为CCSDS proximity-1协议的同步头,第四子数据域为 Ethernet协议的前导码,第五子数据域为无协议的包头,第六子数据域为CCSDS版本号。其 中,lACFFClDh、EB90h或FAF320h分别作为同步头,00b/01b作为版本号、5?5h作为前导码 和FFh作为无协议数据的包头;而且,该六个子数据域的填充值依次为:lACFFClDh、EB90h、 FAF320h、55D5h、FFh、00b/01b。添加的协议识别标识流表的每个子数据域的含义都相同, 但是只在对应该协议的子数据域中填充相应数值,其余各个子数据域均置零。例如,在处理 CCSDS TC协议数据帧时,只给第二子数据域填充EB90h,其余子数据域均置零,所以添加的 协议识别标识流表为 OOOOOOOOh、EB90h、000000h、0000h、00h、00b。
[0071] 步骤3,协议识别标识添加模块添加流表子数据域标识掩码:为提高识别效率和 减少需要匹配的比特数,采用不同的流表子数据域标识掩码标明所需匹配的子数据域。
[0072] 因此,协议识别标识添加模块设置不同的流表子数据域标识掩码与其所需匹配的 子数据域对应关系如图5所示:设置流表子数据域标识掩码共6比特,每个比特都与步骤2 中的一个子数据域相对应:
[0073] 若需给该子数据域填充数值,则流表子数据域标识掩码对应比特设置为1,
[0074] 若不给该子数据域填充数值,则流表子数据域标识掩码对应比特设置为0。例如, TC协议使用第二子数据域,则流表子数据域标识掩码设置为010000b。
[0075] 步骤4,多协议自动识别模块接收到一个完整的数据帧时,同时接收到104bit的 协议识别标识流表和6bit的流表子数据域标识掩码,此时先提取相应的流表子数据域标 识掩码并进行匹配识别,也就是只对该流表子数据域标识掩码为1的比特位对应的流表子 数据域进行匹配识别,如果匹配成功,则顺序执行步骤5 ;如果匹配不成功,则跳转执行步 骤6。
[0076] 因本发明系统中,可能的流表子数据域标识掩码有下述六种:100001b,010000b, 001000b,000100b,000010b,000000b,分别与六个数据帧 CCSDS TM或 CCSDS A0S、CCSDS TC、 CCSDS proximity-1、Ethernet和无协议数据巾贞携带的流表子数据域标识掩码相对应。如 果接收到的流表子数据域标识掩码为上述六种流表子数据域标识掩码,就确定需要识别的 子数据域,进行部分子数据域匹配识别,即执行后续步骤5 ;如果接收到的数据不符合上述 流表子数据域标识掩码,则要进行全部子数据域的匹配识别,就跳转执行步骤6。
[0077] 步骤5,多协议自动识别模块进行部分子数据域的匹配识别:将需要识别的子数 据域与协议识别标识流表中对应的子数据域的填充值进行匹配识别,如果匹配成功,则完 成一次协议识别,并判定为该协议的数据帧,结束全部流程;如果匹配不成功,则继续执行 步骤6,以便对因个别数据位跳变而使流表子数据域标识掩码发生差错的数据帧也能够实 现正确的协议识别。
[0078] 步骤6,为避免因个别数据位跳变而造成协议识别正确率低的缺陷,多协议自动识 别模块将接收到的协议识别标识流表的全部子数据域分别与协议识别标识标准流表的全 部子数据域逐项进行对应的模糊匹配识别,完成多协议自动匹配识别的全部流程。该步骤 包括下列具体操作内容:
[0079] 如果能够成功匹配其中某个协议识别标识流表,则完成一次协议识别,并判定为 该协议的数据帧,结束全部流程;
[0080] 如果全部匹配都没有成功,则表明本次协议识别失败,同样结束全部流程。
[0081] 例如,标准协议识别标识流表CCSDS TM协议的同步头子数据域为lACFFCIDh,接 收到的协议识别标识流表TM协议同步头子数据域为OACFFCIDh或lACEECODh,即发生任意 一到三位跳变依然认为数据匹配。
[0082] 完成了上述6个操作步骤后,就完成了一次匹配识别,实现了多协议的自动识别 功能,并有一定的纠错能力。
[0083] 本发明系统和方法已经进行了多次实施试验,下面简要说明本发明方法操作步骤 的实施例情况。
[0084] (1)用户输入协议数据参数,包括数据帧字长和协议类型。例如,数据帧字长为 128字节,协议类型为TC数据帧,根据TC数据帧包头长度为5字节,所以需要生成的有效载 荷为123字节。
[0085] (2)标准协议生成模块生成128字节数据巾贞,并存入对应协议的发送缓存中。向后 端协议识别标识添加模块发送一个数据有效信号。
[0086] (3)协议识别标识添加模块接收到一个数据有效信号、且其处于空闲时,就向前 端发送一个数据读取信号。从前端读取封装好的128字节数据帧,设置相应的掩码和发送 协议识别标识流表,即OOOOOOOOh、EB90h、000000h、0000h、00h、00b协议识别标识流表和 010000b掩码,然后将1122比特数据帧传给发送接收模块。
[0087] (4)多协议自动识别模块收到一个完整的数据帧后,提取相应的掩码和协议识别 流表。先对掩码进行匹配。如果〇l〇〇〇〇b匹配成功,多协议自动识别模块将协议识别标识 标准流表和接收到流表的第二数据域进行比较分析,进入步骤(5);如果010000b匹配不成 功,多协议自动识别模块将协议识别标识标准流表和接收到流表的全部数据域进行比较分 析,进入步骤(6)。
[0088] (5)将接收到的协议识别流表的全部数据域与标准协议识别流表的部分数据域进 行模糊匹配,如果其中的第二数据域数据与EB90h模糊匹配,则完成一次协议识别,并认为 该协议为TC协议;如果不匹配,则进入步骤(6)。
[0089] (6)将接收到的协议识别流表的全部数据域与标准协议识别流表的全部数据域进 行模糊匹配,符合哪种协议流表,则判定为哪种协议。如果全部不符合,则本次协议识别失 败。
[0090] 本发明的实施例试验是成功的,实现了发明目的。
【权利要求】
1. 一种异构链路多协议的自动识别系统,其特征在于:所述系统承载在以可编程芯片 作为硬件平台的片上系统装置上,利用用户输入的不同协议的数据帧参数生成标准协议数 据帧,然后相应添加不同的协议识别标识流表和流表子数据域标识掩码,从而完成多协议 的自动识别,且无需解析该数据帧的具体内容;设有顺序连接的三个部件:标准协议生成 模块,协议识别标识添加模块和多协议自动识别模块,依次分别执行生成数据帧、添加用作 识别依据的协议识别标识和检测数据帧协议类型的操作,实现异构链路下多协议数据帧的 自动识别操作;其中: 标准协议生成模块,负责根据用户输入的数据帧长度及其协议类型参数,参照相应协 议标准分别生成空间数据系统咨询委员会CCSDS(Consultative Committee for Space Data Systems)协议数据巾贞、以太网Ethernet协议数据巾贞和无协议数据巾贞,再传递给协议 识别标识添加模块;设有两个单元:有效载荷生成单元和协议封装单元; 协议识别标识添加模块,作为该系统的核心部件,负责将标准协议数据帧转换为携带 协议识别标识流表和流表子数据域标识掩码的数据帧,再传递给多协议自动识别模块;设 有顺序连接的三个单元:数据缓存单元、协议识别标识添加单元和数据发送单元; 多协议自动识别模块,负责对接收到的数据帧进行分析,确定数据帧所归属的不同协 议类型,告知用户;设有数据缓存单元、掩码匹配单元和协议分析单元。
2. 根据权利要求1所述的系统,其特征在于:所述系统能够识别CCSDS的空间数据 链路协议、Ethernet协议和无协议数据,其中CCSDS空间数据链路协议包括:下行遥测 TM(Telemetry)空间数据链路协议、遥控TC(Telecommand)空间数据链路协议、高级在轨系 统AOS (Advanced Orbiting Systems)空间数据链路协议和邻近proximity-Ι空间数据链 路协议。
3. 根据权利要求1所述的系统,其特征在于:所述标准协议生成模块中的两个单元功 能如下: 有效载荷生成单元,根据用户提供的不同数据帧长度和协议类型参数计算得到所需生 成的有效载荷长度,根据该有效载荷长度生成相应的有效载荷数据后,将其传递给协议封 装单元; 协议封装单元,负责给有效载荷封装不同协议的数据帧头,生成对应的不同协议的 数据帧后,传递给协议识别标识添加模块中的相应协议数据缓存组件;设有下述六个组 件:TM协议封装组件、TC协议封装组件、A0S协议封装组件、proximity-Ι协议封装组件、 Ethernet协议封装组件和无协议封装组件,这六个协议封装组件的功能是:给不同的有 效载荷分别添加其对应协议的数据帧导头,生成相应的标准协议数据帧,再分别传递给协 议识别标识添加单元中对应的TM数据缓存组件、TC数据缓存组件、A0S数据缓存组件、 proximity-Ι数据缓存组件、Ethernet数据缓存组件和无协议数据缓存组件。
4. 根据权利要求1所述的系统,其特征在于:所述协议识别标识添加模块中的三个单 元功能如下: 数据缓存单元,只负责将接收到的不同协议的数据帧进行缓存、不做任何数据处理,然 后传递给协议识别添加单元中的相应组件;设有六个组件:TM数据缓存组件、TC数据缓存 组件、A0S数据缓存组件、proximity-Ι数据缓存组件、Ethernet数据缓存组件和无协议数 据缓存组件; 协议识别标识添加单元,根据生成的不同协议数据帧类型,分别设置相应的协议识别 标识流表和流表子数据域标识掩码,再将携带该协议识别标识流表和流表子数据域标识 掩码的数据帧传递给数据发送单元;也设有六个组件:TM协议识别标识添加组件、TC协 议识别标识添加组件、AOS协议识别标识添加组件、proximity-Ι协议识别标识添加组件、 Ethernet协议识别标识添加组件和无协议识别标识添加组件;其中, TM协议识别标识添加组件,用于将标准的TM协议数据帧转换为带有lACFFCIDh、 0000h、000000h、0000h、00h、00b协议识别标识流表和100001b流表子数据域标识掩码的数 据帧,并将其传递给数据发送单元; TC协议识别标识添加组件,用于将标准的TC协议数据帧转换为带有OOOOOOOOh、 EB90h、000000h、0000h、00h、00b协议识别标识流表和010000b流表子数据域标识掩码的数 据帧,并将其传递给数据发送单元; A0S协议识别标识添加组件,用于将标准的A0S协议数据帧转换为带有lACFFCIDh、 0000h、000000h、0000h、00h、01b协议识别标识流表和100001b流表子数据域标识掩码的数 据帧,并将其传递给数据发送单元; proximity-Ι协议识别标识添加组件,用于将标准的proximity-Ι协议数据巾贞转换为 带有00000000h、0000h、FAF320h、0000h、00h、00b协议识别标识流表和001000b流表子数据 域标识掩码的数据帧,并将其传递给数据发送单元; Ethernet协议识别标识添加组件,用于将标准的Ethernet协议数据巾贞转换为带有 00000000h、00000h、000000h、5ro5h、00h、00b协议识别标识流表和000100b流表子数据域 标识掩码的数据帧,并将其传递给数据发送单元; 无协议识别标识添加组件,用于将标准的无协议数据帧转换为带有00000000h、0000h、 000000h、0000h、FFh、00b协议识别标识流表和000010b流表子数据域标识掩码的数据帧, 并将其传递给数据发送单元; 数据发送单元,负责将完成处理、即已经添加相应协议识别标识流表和流表子数据域 标识掩码的不同协议数据帧发送给多协议自动识别模块。
5.根据权利要求1所述的系统,其特征在于:所述多协议自动识别模块中的三个单元 功能如下: 数据缓存单元,用于先对接收到的数据帧剔除协议识别标识流表和流表子数据域标识 掩码,然后进行缓存;且每次完成协议识别操作后,必须清空该数据缓存单元; 掩码匹配单元,用于对接收到的流表子数据域标识掩码与所述六种标准流表子数据域 标识掩码进行匹配,确定是否继续执行匹配全部子数据域的操作,并将是否继续进行全部 子数据域匹配的信号传递给协议分析单元; 协议分析单元,用于根据接收到的协议识别标识流表和是否继续进行全部子数据域匹 配的信号进行协议分析,再将分析结果:协议类型返回给用户;设有下述六个组件:TM协议 分析组件、TC协议分析组件、A0S协议分析组件、proximity-Ι协议分析组件、Ethernet协 议分析组件和无协议分析组件;这六个协议分析组件的功能是:根据接收的协议识别标识 流表以及是否进行全部子数据域匹配操作的信号,分析该数据帧是否分别归属于所述的TM 协议、TC协议、A0S协议、proximity-Ι协议、Ethernet协议和无协议的六种协议类型之一, 并将分析结果、即该数据帧所归属的不同协议类型返回给用户。
6. -种异构链路多协议的自动识别系统的工作方法,其特征在于:协议识别标识添加 模块对来自标准协议生成模块的不同数据帧分别添加不同的协议识别标识流表和流表子 数据域标识掩码,然后将该处理后的不同的标准协议数据帧送入多协议自动识别模块进行 分析,只根据相应的协议识别标识流表和流表子数据域标识掩码得到其所归属的协议,无 需解析该数据帧的具体内容;该方法包括下列操作步骤: 步骤1,标准协议生成模块根据用户输入的包括数据帧长度和协议类型的协议数据参 数,生成不同的标准协议数据帧,并存入对应协议的发送缓存中;等待其后端的协议识别标 识添加模块空闲时,读取该完成封装的数据帧; 步骤2,协议识别标识添加模块对读取的不同的标准协议数据帧分别添加不同的协 议识别标识流表:通过对多种协议的分析和特征提取,决定采用包括同步头、版本号、前导 码或无协议包头作为匹配区别各种不同协议数据帧的识别特征;其中,用同步头和版本号 匹配识别CCSDS TM协议和CCSDS AOS协议;用同步头匹配识别CCSDS TC协议和CCSDS proximity-Ι协议;用前导码匹配识别Ethernet协议;用包头"FF"匹配识别无协议数据; 步骤3,协议识别标识添加模块添加流表子数据域标识掩码:为提高识别效率和减少 需要匹配的比特数,采用不同的流表子数据域标识掩码标明所需匹配的子数据域; 步骤4,多协议自动识别模块接收到一个完整的数据帧时,同时接收到104bit的协议 识别标识流表和6bit的流表子数据域标识掩码,此时先提取相应的流表子数据域标识掩 码并进行匹配识别:即对该流表子数据域标识掩码为1的比特位对应的流表子数据域进行 匹配识别,如果匹配成功,则顺序执行步骤5 ;如果匹配不成功,则跳转执行步骤6 ; 步骤5,多协议自动识别模块进行部分子数据域的匹配识别:将需要识别的子数据域 与协议识别标识流表中对应的子数据域的填充值进行匹配识别,如果匹配成功,则完成一 次协议识别,并判定为该协议的数据帧,结束全部流程;如果匹配不成功,则继续执行步骤 6,以便对因个别数据位跳变而使流表子数据域标识掩码发生差错的数据帧也能够实现正 确的协议识别; 步骤6,为避免因个别数据位跳变而造成协议识别正确率低的缺陷,多协议自动识别模 块将接收到的协议识别标识流表的全部子数据域分别与协议识别标识标准流表的全部子 数据域逐项进行对应的模糊匹配识别,完成多协议自动匹配识别的全部流程。
7. 根据权利要求6所述的方法,其特征在于:所述协议识别标识流表是由下述六个子 数据域的数据特征位依次所组成:第一子数据域是CCSDS TM协议和CCSDS AOS协议的同步 头,第二子数据域是CCSDS TC协议的同步头,第三子数据域为CCSDS proximity-Ι协议的 同步头,第四子数据域为Ethernet协议的前导码,第五子数据域为无协议的包头,第六子 数据域为CCSDS版本号;其中,lACFFClDh、EB90h或FAF320h分别作为同步头,OOb/Olb作为 版本号、5?5h作为前导码和FFh作为无协议数据的包头,且该六个子数据域的填充值依次 为:lACFFClDh、EB90h、FAF320h、55D5h、FFh、00b/01b ;所述添加的协议识别标识流表的每 个子数据域的含义都相同,但只在对应该协议的子数据域中填充相应数值,其余各个子数 据域均置零。
8. 根据权利要求6所述的方法,其特征在于:所述步骤3中,协议识别标识添加模块设 置不同的流表子数据域标识掩码与其所需匹配的子数据域对应关系如下:设置流表子数据 域标识掩码共6比特,每个比特都与步骤2中的一个子数据域相对应: 若需给该子数据域填充数值,则流表子数据域标识掩码对应比特设置为1, 若不给该子数据域填充数值,则流表子数据域标识掩码对应比特设置为0。
9. 根据权利要求6所述的方法,其特征在于:所述步骤4包括下列操作内容: 因该系统有下述六种可能的流表子数据域标识掩码:10000 lb,010000b,001000b, 000100b,000010b 和 000000b,分别与六个数据帧 CCSDS TM 或 CCSDS AOS、CCSDS TC、CCSDS proximity-1、Ethernet和无协议数据巾贞携带的流表子数据域标识掩码相对应,如果接收 到的流表子数据域标识掩码为上述六种流表子数据域标识掩码,就确定需要识别的子数据 域,进行部分子数据域匹配识别,执行后续步骤5 ;如果接收到的数据不符合上述流表子数 据域标识掩码,则要进行全部子数据域的匹配识别,跳转执行步骤6。
10. 根据权利要求6所述的方法,其特征在于:所述步骤6包括下列操作内容: 如果能够成功匹配其中某个协议识别标识流表,则完成一次协议识别,并判定为该协 议的数据帧,结束全部流程; 如果全部匹配都没有成功,则表明本次协议识别失败,同样结束全部流程。
【文档编号】H04L1/00GK104158627SQ201410421079
【公开日】2014年11月19日 申请日期:2014年8月25日 优先权日:2014年8月25日
【发明者】胡鹤飞, 袁东明, 冉静, 刘元安, 王晶洋, 王康, 任容玮, 周宁桐 申请人:北京邮电大学