一种按照给定字段值进行判断的快速数据包分组路由方法技术

技术编号:31579253 阅读:13 留言:0更新日期:2021-12-25 11:22
本发明专利技术属于航天测控与信息处理领域,公开了一种按照给定字段值进行判断的快速数据包分组路由方法。包括如下7个步骤:步骤一,定义分组路由条件(GRC)的格式;步骤二,定义分组路由规则和分组路由规则文件的格式;步骤三,编写分组路由规则文件;步骤四,根据路由规则文件,建立基准值对象列表;步骤五,生成字段判断表达式对象列表;步骤六,生成分组路由规则对象列表;步骤七,使用分组路由规则对象列表分组路由数据。本发明专利技术与其他方法相比,优点在于把用户给义的分组路由条件使用表达式树技术提前编译为直接比较的方法,减少了根据判断符号进行逐个比较的操作的分支判断语句,使分组路由速度更快,更适应于航天发射这种高实时性任务。任务。任务。

【技术实现步骤摘要】
一种按照给定字段值进行判断的快速数据包分组路由方法


[0001]本专利技术属于航天测控与信息处理领域,涉及一种按照数据包中用户给定位置字段值进行判断的快速数据包分组路由方法。

技术介绍

[0002]在航天发射试验任务中,多种传感器对目标飞行过程进行实时跟踪测量,包括多种型号的雷达设备、光学设备、遥测设备、多测速系统、导航星测量设备等。这些传感器获取的多源、多类型测量数据通过各种网络实时传送至各数据处理中心和飞行控制中心。
[0003]数据处理中心和飞行控制中心由多种处理分系统组成,各处理分系统需要不同的测量数据,比如外弹道处理分系统只需要雷达设备和多测速系统的测量数据,遥测处理分系统只需要遥测设备测量数据等。
[0004]在航天试验任务中,测量设备为了能同时向多个处理中心、控制中心实时发送数据,一般不能采用点播的方式点对点发送数据,而是采用组播方式统一向各中心发送数据,各类型测量传感器向相同的组播组发送数据,各中心加入同一个组播组同时接收数据。因而传统基于IP的路由,不能有效区分数据类型,从而不能按照处理系统需求有效分组路由数据包。这导致所有处理设备接收所有类型的数据包,然后再丢弃不需要(或不能处理)的数据包,极大增加了基础网络设施的流量与处理压力,尤其是中心内网的压力,也提高了数据处理系统网络接收模块的工作量与压力。甚至,当峰值流量发生时,会导致接收模块的阻塞、缓存区溢出等,从而导致丢失有用数据包或严重情况下导致系统异常退出。
[0005]如何在航天任务中,复杂网络传输环境下多源、多类型测量数据按照处理设备需求实时快速分组路由是亟待解决的问题。

技术实现思路

[0006]本专利技术的目的是提供一种按照给定字段值进行判断的快速数据包分组路由方法,解决了在航天任务中,复杂网络传输环境下多源、多类型测量数据按照用户需求实时快速路由的问题。
[0007]为实现上述目的,本专利技术的技术方案如下:
[0008]一种按照给定字段值进行判断的快速数据包分组路由方法,该方法包括如下步骤:
[0009]步骤一:定义分组路由条件GRC的格式;
[0010]步骤二:基于分组路由条件GRC定义分组路由规则GRR和分组路由规则文件;
[0011]步骤三:编写分组路由规则文件;
[0012]步骤四:根据分组路由规则文件,建立基准值对象列表;
[0013]步骤五:根据分组路由规则文件和基准值对象列表,生成字段判断表达式对象列表。
[0014]步骤六、生成分组路由规则对象列表;
[0015]步骤七、使用分组路由规则对象列表分组路由数据。
[0016]进一步地,所述步骤一进一步包括:
[0017]分组路由条件GRC由一个或多个字段判断表达式组成,多个字段判断表达式用分号(;)分割,如:
[0018]FCE1;FCE2;

[0019]字段判断表达式由字段起始位置、类型、判断符号及判断基准值组成,其中,字段起始位置指用户想检查的字段在数据包中的位置,记为P;字段的数值类型记为Type,Type表示数据包中从P开始的字段的类型;判断基准值记为BaseValue,指用来和检查字段的值进行比较的基准数值,根据判断方法,判断基准值BaseValue可以为单个数值a,两个数值a、b,或多个数值a,b,c,d,

;判断符号指表示判断方法的记号,记为S,有等于、不等于、大于、小于、大于等于、小于等于、两者之间、多个值之一等比较操作;
[0020]一个字段判断表达式FCE表示如下:
[0021]P:Type:[S]BaseValue
[0022]上式中,当S为“=”时,可以S省略不写。
[0023]进一步地,所述步骤二进一步包括:
[0024]根据步骤一定义的分组路由条件GRC的格式,按照下式定义分组路由规则GRR:
[0025]GRC IP:Port
[0026]其中,IP:Port表示路由目的地,由目的主机IP地址和目的端口Port组成,用分号(:)分割;
[0027]分组路由规则文件由多行GRR形成,用来实现对不同的数据包按照规则进行分组路由。
[0028]进一步地,所述步骤三进一步包括:
[0029]3.1确定用于分组的每个字段在数据包中的位置P及数据类型Type;
[0030]3.2对每个用于分组的字段,按照分组需要,确定用于分组的基准值BaseValue和判断方法S;
[0031]3.3根据步骤一定义的字段判断表达式格式P:Type:[S]BaseValue,对每个关键字段编写字段判断表达式FCE;
[0032]3.4根据步骤一定义的分组路由条件格式,将字段判断表达式FCE组合形成分组路由条件GRC;
[0033]3.5确定路由目的地IP地址和端口Port,形成分组路由规则GRR:
[0034]GRCIP:Port
[0035]3.6对每个要分组路由的数据包,执行步骤3.1至步骤3.5,逐行添加路由规则至文件中,形成最终的分组路由规则文件。
[0036]进一步地,所述步骤四进一步包括:
[0037]4.0创建空的基准值对象列表baseValueList,用于存储创建的IOpValue对象。
[0038]4.1从分组路由规则文件中读取一条路由规则GRR;
[0039]4.2使用空格分割GRR,取分割后字符串数组前半部分得分组路由条件GRC;
[0040]4.3使用分号(;)分割GRC形成字段判断表达式数组FCEs;
[0041]4.4针对数组FCEs,取第一个元素,得到一个字段判断表达式FCE;
[0042]4.5从P:Type:[S]BaseValue的FCE中,获取类型Type;
[0043]4.6从FCE中,取得[S]BaseValue部分;
[0044]4.8判断S是否是“~”、
“‑”
或“,”之一,如果是,执行4.9,否则执行4.10;
[0045]4.9根据S、Type和BaseValue创建表示多个数值组成的基准值对象MultiValue;
[0046]4.9.1以逗号(,)分割BaseValue并把结果字符串转换为数值,得到数值V1,V2,

,V
n

[0047]4.9.2以S、Type和V1,V2,

,V
n
为参数,调用构造函数创建MultiValue对象;
[0048]4.9.3构建MultiValue的判断方法表达式树:
[0049]Expression<Func<T1,bool>>CheckExpression<T1>(string op)
[0050]式中,形参op表示判断方法,取值本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种按照给定字段值进行判断的快速数据包分组路由方法,其特征在于,该方法包括如下步骤:步骤一:定义分组路由条件GRC的格式;步骤二:基于分组路由条件GRC定义分组路由规则GRR和分组路由规则文件;步骤三:编写分组路由规则文件;步骤四:根据分组路由规则文件,建立基准值对象列表;步骤五:根据分组路由规则文件和基准值对象列表,生成字段判断表达式对象列表。步骤六、生成分组路由规则对象列表;步骤七、使用分组路由规则对象列表分组路由数据。2.如权利要求1所述的按照给定字段值进行判断的快速数据包分组路由方法,其特征在于,所述步骤一进一步包括:分组路由条件GRC由一个或多个字段判断表达式组成,多个字段判断表达式用分号(;)分割,如:FCE1;FCE2;

字段判断表达式由字段起始位置、类型、判断符号及判断基准值组成,其中,字段起始位置指用户想检查的字段在数据包中的位置,记为P;字段的数值类型记为Type,Type表示数据包中从P开始的字段的类型;判断基准值记为BaseValue,指用来和检查字段的值进行比较的基准数值,根据判断方法,判断基准值BaseValue可以为单个数值a,两个数值a、b,或多个数值a,b,c,d,

;判断符号指表示判断方法的记号,记为S,有等于、不等于、大于、小于、大于等于、小于等于、两者之间、多个值之一等比较操作;一个字段判断表达式FCE表示如下:P:Type:[S]BaseValue上式中,当S为“=”时,可以S省略不写。3.如权利要求2所述的按照给定字段值进行判断的快速数据包分组路由方法,其特征在于,所述步骤二进一步包括:根据步骤一定义的分组路由条件GRC的格式,按照下式定义分组路由规则GRR:GRC IP:Port其中,IP:Port表示路由目的地,由目的主机IP地址和目的端口Port组成,用分号(:)分割;分组路由规则文件由多行GRR形成,用来实现对不同的数据包按照规则进行分组路由。4.如权利要求3所述的按照给定字段值进行判断的快速数据包分组路由方法,其特征在于,所述步骤三进一步包括:3.1确定用于分组的每个字段在数据包中的位置P及数据类型Type;3.2对每个用于分组的字段,按照分组需要,确定用于分组的基准值BaseValue和判断方法S;3.3根据步骤一定义的字段判断表达式格式P:Type:[S]BaseValue,对每个关键字段编写字段判断表达式FCE;3.4根据步骤一定义的分组路由条件格式,将字段判断表达式FCE组合形成分组路由条件GRC;
3.5确定路由目的地IP地址和端口Port,形成分组路由规则GRR:GRCIP:Port3.6对每个要分组路由的数据包,执行步骤3.1至步骤3.5,逐行添加路由规则至文件中,形成最终的分组路由规则文件。5.如权利要求4所述的按照给定字段值进行判断的快速数据包分组路由方法,其特征在于,所述步骤四进一步包括:4.0创建空的基准值对象列表baseValueList,用于存储创建的IOpValue对象。4.1从分组路由规则文件中读取一条路由规则GRR;4.2使用空格分割GRR,取分割后字符串数组前半部分得分组路由条件GRC;4.3使用分号(;)分割GRC形成字段判断表达式数组FCEs;4.4针对数组FCEs,取第一个元素,得到一个字段判断表达式FCE;4.5从P:Type:[S]BaseValue的FCE中,获取类型Type;4.6从FCE中,取得[S]BaseValue部分;4.8判断S是否是“~”、
“‑”
或“,”之一,如果是,执行4.9,否则执行4.10;4.9根据S、Type和BaseValue创建表示多个数值组成的基准值对象MultiValue;4.9.1以逗号(,)分割BaseValue并把结果字符串转换为数值,得到数值V1,V2,

,V
n
;4.9.2以S、Type和V1,V2,

,V
n
为参数,调用构造函数创建MultiValue对象;4.9.3构建MultiValue的判断方法表达式树:Expression<Func<T1,bool>>CheckExpression<T1>(string op)式中,形参op表示判断方法,取值范围见表2。在MultiValue对象中,其取值只能是“~”、
“‑”
或“,”之一,即介于两者之间或多个数据中的一个。4.10根据S、Type和BaseValue创建表示单个数值组成的基准值对象SingleValue;4.10.1对BaseValue字符串进行数值转化,得判断基准的数值V;4.10.2以S、Type和V为参数,调用构造函数创建SingleValue对象;4.10.3构建SingleValue的判断方法表达式树:Expression<Func<T1,bool>>CheckExpression<T1>(string op)式中形参op表示判断方法;在SingleValue对象中,其取值为“=”、“!=”、“>”、“<”、“>=”、“<=”之一;4.11把创建好的基准值对象MultiValue或SingleValue对象添加到baseValueList列表尾部。4.12从数组FCEs,取下一个元素,得到一个新的字段判断表达式FCE;4.13循环执行步骤4.5到4.12,直至当前分组路由条件GRC处理完毕;4.14从分组路由规则文件中读取下一条路由规则GRR,循环执行4.2至4.13,直至文件全部处理完毕。6.如权利要求5所述的按照给定字段值进行判断的快速数据包分组路由方法,其特征在于,构建判断方法表达式树的具体步骤如下:(1)判断op的值,如果是“~”或
“‑”
,执行步骤(2)至(9),如果是“,”,则执行步骤(10)至(14)。(2)创建代表输入参数的表达式树节点v,v代表要比较的数据,类型为T1;
(3)从V1,V2中取小的一个,创建常数表达式min;(4)从V1,V2中取大的一个,创建常数表达式max;(5)创建大于等于比较表达式greatExp,参数分别为v和min,用来比较输入参数v是否大于等于基准值min;(6)创建小于比较表达式lessExp,参数分别为v和max,用来比较输入参数v是否小于基准值max;(7)创建逻辑与And表达式betweenExp连接greatExp和lessExp,表示输入v要同时满足大于等于基准值min且小于基准值max;(8)创建函数表达式func,参数为betweenExp,输入参数为v,返回值为布尔性,表示对输入参数v进行大于等于和小于检查,即完成v是否介于两者之间的检查;(9)返回func,判断方法表达式树构建完毕;(10)创建零时变量表达式p和v,其中v代表以后要输入的参数,p是零时变量;(11)创建等于比较表达式equalExp,参数分别为p和v,用于检查p是否与v相等;(12)创建方法调用表达式exists,调用数组的方法“Exists”,参数为equalExp,表示用方法equalExp检查数组中是否有一个与p相等的数据;(13)创建函数表达式func,参数为exists,返回值为布尔性,输入参数为v,表示对输入参数v执行exis...

【专利技术属性】
技术研发人员:张立民王婷婷张华唐志强张墨陈永健路远程刘裕贵李立洁赵征宇
申请(专利权)人:中国人民解放军六三六二零部队
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1