一种ICMP差错报文快速生成方法技术

技术编号:10600590 阅读:277 留言:0更新日期:2014-11-05 13:31
本发明专利技术公开了一种ICMP差错报文快速生成方法,在高速查表的交换网络中,需将不定长的IP数据报拆分为几个甚至几百个数量不等的定长信元数据进行高速查表,该方法针对查表失败的信元数据,通过直接提取及处理信元数据中的有效信息,生成ICMP差错报文,解决了信元数据查表失败生成ICMP差错报文时需进行信元重组的问题。采用本发明专利技术方法对查表失败的信元数据可以直接生成ICMP差错报文,从而达到快速响应的目的,对于一个IP数据报,最多只需处理其拆分得到的前两个信元数据,即可生成ICMP差错报文,从而降低了生成ICMP报文的处理复杂度,并节约了系统实现的软/硬件资源。

【技术实现步骤摘要】
一种ICMP差错报文快速生成方法
本专利技术涉及一种ICMP差错报文快速生成方法,属于卫星通信中差错报文生成的

技术介绍
IP提供了无连接、不可靠和无确认的数据报交付机制,在有效利用网络资源的同时也带来了两个问题,一是缺少差错控制机制;二是没有设计辅助的主机管理和查询机制。为了解决这两个问题,ICMP(InternetControlMessageProtocol,即Internet控制报文协议)被提出,用以对网络中的源路由器报告差错信息或提供需要查询的信息。ICMP是互联网控制报文协议,在发送方与接收方之间传递出错信息及查询报文信息,ICMP协议根据其功能可以分为两大类:一类是ICMP差错报文,一类是查询报文。其中ICMP差错报文是如果IP数据报文在互联网传输过程中出错,用以给发送方报告错误,在IP交换系统中,如果查表失败,则需要给发送方报告ICMP目的地不可达报文。在高速查表的交换网络中,需将不定长的IP数据报拆分为几个甚至几百个数量不等的定长信元数据进行高速查表,若信元数据查表失败,则需生成ICMP目的地不可达差错报文,按照现有的处理方法:一、将信元数据重组为拆分前的原始IP数据报,由IP数据报提取生成ICMP报文所需信息,按照ICMP目的地不可达报文格式生成ICMP报文,该方法额外增加了信元重组处理流程,不仅不能及时对错误报文进行响应,且需要较多的软硬件资源;二、由于ICMP目的地不可达报文仅需要原始IP数据报的部分信息,可以在IP数据报拆分前将IP数据报中生成ICMP报文所需信息单独存储,若查表失败可直接提取该信息,该方法可以快速响应,但在交换网络中,一般情况下IP数据报查表失败的概率不大,若每一个IP数据报都存储部分信息,所需缓存空间太大,降低了系统的资源利用率;三、将信元数据视作特殊IP数据报,对每个错误信元都生成ICMP报文,由于信元数据不一定包含原始IP数据报的全部信息,因此生成的ICMP报文无法准确反馈错误信息,且如果每个信元都生成ICMP报文,大大增加错误报文数量,使链路中正常通信的IP数据报传输效率降低,导致链路吞吐率下降。因此,在高速查表网络中需要研究一种针对查表异常情况快速生成ICMP差错报文的方法。
技术实现思路
本专利技术的技术解决问题:针对高速查表网络中信元数据查表失败生成ICMP差错报文时需进行信元重组的问题,提出一种ICMP差错报文快速生成方法,根据信元数据的首部信息直接进行判断,提取所需的信元数据载荷中的原始IP数据报信息,生成ICMP目的地不可达差错报文。本专利技术的技术解决方案:一种ICMP差错报文快速生成方法,步骤如下:(1)从IP交换网络中接收IP数据报;(2)对步骤(1)接收的IP数据报的首部信息进行判断,将步骤(1)中首部信息正确的IP数据报拆分为适用于高速查表的固定长度的信元数据;(3)根据高速查表网络的转发表信息,对步骤(2)所得到的信元数据进行查表,若在转发表中无法查找到信元数据中目的IP地址所对应的信息,转到步骤(4),若在转发表中可以查找到信元数据中目的IP地址所对应的信息,转到步骤(5);(4)对步骤(3)在转发表中无法查找到的信元数据进行路由表查表,若在路由表中无法查找到信元数据中目的IP地址所对应的信息,转到步骤(6),若在路由表中可以查找到信元数据中目的IP地址所对应的信息,转到步骤(5);(5)根据转发表或路由表中查找到信元数据中目的IP地址所对应的信息,将步骤(3)或步骤(4)中查表成功的信元数据输出(6)记录信元数据在步骤(4)中查找路由表失败的具体错误类型,将与该错误类型相应的ICMP错误类型字段及代码字段填充至该信元数据的第63、64字节,转到步骤(7);(7)接收步骤(6)中填充ICMP错误类型字段及代码字段后的信元数据,该信元数据包括首部信息、载荷及尾部信息,其中首部信息包括头标识、尾标识和拆分序号,对接收到的第1个信元数据首部信息进行判断,若该信元数据首部信息中头标识和尾标识同时为“1”,转到步骤(8),若信元数据首部信息中头标识和尾标识不同时为“1”,转到步骤(10);(8)接收步骤(7)中满足条件信元数据,提取该信元数据第63字节和第64字节中的ICMP错误类型字段及代码字段和信元数据载荷中的IP首部信息中的首部长度字段,转到步骤(9);(9)根据步骤(8)的首部长度字段,提取信元数据载荷中的IP首部信息、IP载荷前8字节信息,转到步骤(18);(10)接收步骤(7)中信元数据首部信息中头标识和尾标识不同时为“1”的信元数据,若接收到的第1个信元数据首部信息中的头标识为“1”,接收到的第2个信元数据首部信息中的拆分序号为“2”,表示这两个信元为原始IP数据报拆分得到的第1个信元数据和第2个信元数据,已经包含生成ICMP差错报文所需信息,转到步骤(11);若接收到的第1个信元数据首部信息中头标识不为“1”或第2个信元数据首部信息中的拆分序号不为“2”,转到步骤(13);(11)接收步骤(10)中满足条件信元数据,提取第1个信元数据的第63字节和第64字节中的ICMP错误类型字段及代码字段和第1个信元数据载荷中的IP首部信息中的首部长度,转到步骤(12);(12)接收步骤(10)中满足条件信元数据,将第1个信元数据的载荷和第2个信元数据的载荷依次组合后存储,根据步骤(11)所提取的IP首部信息中的首部长度,提取组合后存储的载荷中的IP首部信息、IP载荷前8字节信息,转到步骤(18);(13)接收步骤(10)中第1个信元数据首部信息的头标识不为“1”或第2个信元数据首部信息的拆分序号不为“2”的信元数据,若第1个信元数据首部信息中的头标识为“1”,第2个信元数据首部信息中的拆分序号不为“2”,转到步骤(14)处理第1个信元数据,转到步骤(17)处理第2个信元数据;若不满足第1个信元数据首部信息中的头标识为“1”,第2个信元数据首部信息中的拆分序号不为“2”,则该信元数据为拆分得到的中间信元或尾部信元,转到步骤(17);(14)接收步骤(13)中第1个信元数据首部信息中的头标识为“1”,第2个信元数据首部信息中的拆分序号不为“2”条件下的第1个信元数据,提取该信元数据的第63字节和第64字节中的ICMP错误类型字段及代码字段和该信元数据载荷中的IP首部信息中的首部长度字段,转到步骤(15);(15)判断步骤(14)接收到的信元数据载荷中的IP首部信息中的首部长度是否小于等于40,若是,则该信元数据已经包含生成ICMP差错报文所需信息,转到步骤(16),若该IP首部长度大于40,转到步骤(17);(16)根据步骤(15)接收到的信元数据载荷中的IP首部信息中的首部长度字段,提取该信元数据载荷中的IP首部信息、IP载荷前8字节信息,转到步骤(18);(17)接收步骤(13)中第1个信元数据首部信息中的头标识为“1”,第2个信元数据首部信息中的拆分序号不为“2”条件下的第2个信元数据,以及步骤(13)中不满足第1个信元数据首部信息中的头标识为“1”,第2个信元数据首部信息中的拆分序号不为“2”条件下的第1个信元数据和第2个信元数据,以及步骤(15)中IP首部长度大于40的信元数据,将接收到的信元数据置为“0”,并输出该数本文档来自技高网
...
一种ICMP差错报文快速生成方法

【技术保护点】
一种ICMP差错报文快速生成方法,其特征在于步骤如下:(1)从IP交换网络中接收IP数据报;(2)对步骤(1)接收的IP数据报的首部信息进行判断,将步骤(1)中首部信息正确的IP数据报拆分为适用于高速查表的固定长度的信元数据;(3)根据高速查表网络的转发表信息,对步骤(2)所得到的信元数据进行查表,若在转发表中无法查找到信元数据中目的IP地址所对应的信息,转到步骤(4),若在转发表中可以查找到信元数据中目的IP地址所对应的信息,转到步骤(5);(4)对步骤(3)在转发表中无法查找到的信元数据进行路由表查表,若在路由表中无法查找到信元数据中目的IP地址所对应的信息,转到步骤(6),若在路由表中可以查找到信元数据中目的IP地址所对应的信息,转到步骤(5);(5)根据转发表或路由表中查找到信元数据中目的IP地址所对应的信息,将步骤(3)或步骤(4)中查表成功的信元数据输出;(6)记录信元数据在步骤(4)中查找路由表失败的具体错误类型,将与该错误类型相应的ICMP错误类型字段及代码字段填充至该信元数据的第63、64字节,转到步骤(7);(7)接收步骤(6)中填充ICMP错误类型字段及代码字段后的信元数据,该信元数据包括首部信息、载荷及尾部信息,其中首部信息包括头标识、尾标识和拆分序号,对接收到的第1个信元数据首部信息进行判断,若该信元数据首部信息中头标识和尾标识同时为“1”,转到步骤(8),若信元数据首部信息中头标识和尾标识不同时为“1”,转到步骤(10);(8)接收步骤(7)中满足条件信元数据,提取该信元数据第63字节和第64字节中的ICMP错误类型字段及代码字段和信元数据载荷中的IP首部信息中的首部长度字段,转到步骤(9);(9)根据步骤(8)的首部长度字段,提取信元数据载荷中的IP首部信息、IP载荷前8字节信息,转到步骤(18);(10)接收步骤(7)中信元数据首部信息中头标识和尾标识不同时为“1”的信元数据,若接收到的第1个信元数据首部信息中的头标识为“1”,接收到的第2个信元数据首部信息中的拆分序号为“2”,表示这两个信元为原始IP数据报拆分得到的第1个信元数据和第2个信元数据,已经包含生成ICMP差错报文所需信息,转到步骤(11);若接收到的第1个信元数据首部信息中头标识不为“1”或第2个信元数据首部信息中的拆分序号不为“2”,转到步骤(13);(11)接收步骤(10)中满足条件信元数据,提取第1个信元数据的第63字节和第64字节中的ICMP错误类型字段及代码字段和第1个信元数据载荷中的IP首部信息中的首部长度,转到步骤(12);(12)接收步骤(10)中满足条件信元数据,将第1个信元数据的载荷和第2个信元数据的载荷依次组合后存储,根据步骤(11)所提取的IP首部信息中的首部长度,提取组合后存储的载荷中的IP首部信息、IP载荷前8字节信息,转到步骤(18);(13)接收步骤(10)中第1个信元数据首部信息的头标识不为“1”或第2个信元数据首部信息的拆分序号不为“2”的信元数据,若第1个信元数据首部信息中的头标识为“1”,第2个信元数据首部信息中的拆分序号不为“2”,转到步骤(14)处理第1个信元数据,转到步骤(17)处理第2个信元数据;若不满足第1个信元数据首部信息中的头标识为“1”,第2个信元数据首部信息中的拆分序号不为“2”,则该信元数据为拆分得到的中间信元或尾部信元,转到步骤(17);(14)接收步骤(13)中第1个信元数据首部信息中的头标识为“1”,第2个信元数据首部信息中的拆分序号不为“2”条件下的第1个信元数据,提取该信元数据的第63字节和第64字节中的ICMP错误类型字段及代码字段和该信元数据载荷中的IP首部信息中的首部长度字段,转到步骤(15);(15)判断步骤(14)接收到的信元数据载荷中的IP首部信息中的首部长度是否小于等于40,若是,则该信元数据已经包含生成ICMP差错报文所需信息,转到步骤(16),若该IP首部长度大于40,转到步骤(17);(16)根据步骤(15)接收到的信元数据载荷中的IP首部信息中的首部长度字段,提取该信元数据载荷中的IP首部信息、IP载荷前8字节信息,转到步骤(18);(17)接收步骤(13)中第1个信元数据首部信息中的头标识为“1”,第2个信元数据首部信息中的拆分序号不为“2”条件下的第2个信元数据,以及步骤(13)中不满足第1个信元数据首部信息中的头标识为“1”,第2个信元数据首部信息中的拆分序号不为“2”条件下的第1个信元数据和第2个信元数据,以及步骤(15)中IP首部长度大于40的信元数据,将接收到的信元数据置为“0”,并输出该数据;(18)ICMP目的地不可达差错报文包括错误类型字段、代码字段、检验和字段及原始IP数据报的首部信息及IP载荷前8字节信息,根据ICMP...

【技术特征摘要】
1.一种ICMP差错报文快速生成方法,其特征在于步骤如下:(1)从IP交换网络中接收IP数据报;(2)对步骤(1)接收的IP数据报的首部信息进行判断,将步骤(1)中首部信息正确的IP数据报拆分为适用于高速查表的固定长度的信元数据;(3)根据高速查表网络的转发表信息,对步骤(2)所得到的信元数据进行查表,若在转发表中无法查找到信元数据中目的IP地址所对应的信息,转到步骤(4),若在转发表中可以查找到信元数据中目的IP地址所对应的信息,转到步骤(5);(4)对步骤(3)在转发表中无法查找到的信元数据进行路由表查表,若在路由表中无法查找到信元数据中目的IP地址所对应的信息,转到步骤(6),若在路由表中可以查找到信元数据中目的IP地址所对应的信息,转到步骤(5);(5)根据转发表或路由表中查找到信元数据中目的IP地址所对应的信息,将步骤(3)或步骤(4)中查表成功的信元数据输出;(6)记录信元数据在步骤(4)中查找路由表失败的具体错误类型,将与该错误类型相应的ICMP错误类型字段及代码字段填充至该信元数据的第63、64字节,转到步骤(7);(7)接收步骤(6)中填充ICMP错误类型字段及代码字段后的信元数据,该信元数据包括首部信息、载荷及尾部信息,其中首部信息包括头标识、尾标识和拆分序号,对接收到的第1个信元数据首部信息进行判断,若该信元数据首部信息中头标识和尾标识同时为“1”,转到步骤(8),若信元数据首部信息中头标识和尾标识不同时为“1”,转到步骤(10);(8)接收步骤(7)中满足条件信元数据,提取该信元数据第63字节和第64字节中的ICMP错误类型字段及代码字段和信元数据载荷中的IP首部信息中的首部长度字段,转到步骤(9);(9)根据步骤(8)的首部长度字段,提取信元数据载荷中的IP首部信息、IP载荷前8字节信息,转到步骤(18);(10)接收步骤(7)中信元数据首部信息中头标识和尾标识不同时为“1”的信元数据,若接收到的第1个信元数据首部信息中的头标识为“1”,接收到的第2个信元数据首部信息中的拆分序号为“2”,表示这两个信元为原始IP数据报拆分得到的第1个信元数据和第2个信元数据,已经包含生成ICMP差错报文所需信息,转到步骤(11);若接收到的第1个信元数据首部信息中头标识不为“1”或第2个信元数据首部信息中的拆分序号不为“2”,转到步骤(13);(11)接收步骤(10)中满足条件信元数据,提取第1个信元数据的第63字节和第64字节中的ICMP错误类型字段及代码字段和第1个信元数据载荷中的IP首部信息中的首部长度,转到步骤(12);(12)接收步骤(10)中满足条件信元数据,将第1个信元数据的载荷和第2个信元数据的载荷依次组合后存储,根据步骤(11)所提取的IP首部信息中的首部长度,提取组合后存储的载荷中的IP首部信息、IP载荷前8字节信息,转到步骤(18);(13)接收步骤(10)中第1个信元数据首部信息的头标识不为“1”或第2个信元数据首部信息的拆分序号不为“2”的信元数据,若第1个信元数据首部信息中的头标识为“1”,第2个信元数据首部信息中的拆分序号不为“2”,转到步骤(14)处理第1个信元数据,转到步骤(17)处理第2个信元数据;若不满足第1...

【专利技术属性】
技术研发人员:李静玲周诠黎军呼延烺张怡崔涛魏佳圆粱薇
申请(专利权)人:西安空间无线电技术研究所
类型:发明
国别省市:陕西;61

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

1