一种基于报头压缩的网络拓扑分析方法与流程

文档序号:12622706阅读:679来源:国知局
一种基于报头压缩的网络拓扑分析方法与流程

本发明属于网络拓扑分析技术领域,更为具体地讲,涉及一种卫星通信网中,基于网络层报头压缩的拓扑分析方法。



背景技术:

地面因特尔网的蓬勃发展促使卫星通信网络由以前的通信网络向着宽带网络发展,因其宽覆盖范围,优良的传播能力,可靠的抗灾性和不受地域条件限制等其他通信方式无法替代的优点成为无线Internet接入的重要途径,将地面网络与空间网络融合互联是宽带卫星发展重要趋势之一。

当然,空间网络也有着其固有的缺陷,如存在链路的高时延,高误码率,动态网络拓扑等。地面的TCP/IP协议的高效应用是以网络接口层的高可靠服务为前提的,如果直接将地面广泛应用的TCP/IP协议体系直接应用到空间网络,其通信效率相对地面网络严重下降。为此,CCSDS(Consultative Committee for Space Data System,空间数据系统咨询委员会)规范了一套空间通信协议SCPS(Space Communication Protocol Specification),在局部兼容Internet的基础上,为适应空间网络特性而进行了适当的裁剪域扩充,保证了与地面网络的融合与高效通信。

SCPS协议体系是以TCP/IP为参考指定,包含了SCPS-NP,SCPS-SP,SCPS-TP和SCPS-FP四个部分,在空间通信的协议栈中,除了传输层协议规范SCPS-TP是必须的以外,其他层协议都是可选的,也就是出传输层协议必须使用SCPS-TP,其他层即可用TCP/IP相应层次协议也可用SCPS相应层协议。

由于空间带宽资源的珍贵性,SCPS采用很多减少信息冗余的措施,其中网络层和传输层的包头可压缩性就是其中之一,这里主要介绍网络层的报头压缩情况。在地面与空间通信的数据流中,网络层的数据既可能有按SCPS-NP协议封装的报文,也可能有按IP协议封装的报文,其中,按SCPS-NP协议封装的报文又可能采用了包头压缩,按TCP/IP体系的网络拓扑分析方法很难处理这些情况。本文主要提出一种基于网络层报头压缩的拓扑分析方法,用以分析基于SCPS协议的卫星通信网网络拓扑结构,网络拓扑结构的分析,对于网络规模的监测、故障的排除和防范一些恶意网络攻击具有重要意义。

下面就拓扑常用分析方法和本文涉及的SCPS-NP报文和PCAP文件等相关知识作一定介绍。

拓扑结构的分析需要从网络里侦察获取一定的源数据来进行,获取的方式一般分为被动监测和主动探测两类。被动监测技术是通过在所观测的网络加入一个探测器,由它来采集信息,并发送到网络管理主机来形成网络的拓扑结构。这种技术的优点是本身除了向管理主机递交各个网络的拓扑信息,不产生额外的流量。所以产生的网络流量比较小,网络负担小。由于没有中间路由的返回信息,这种方式适合端到端的拓扑分析。主动探测技术是通过网络管理主机主动向所有管理网络发送探测包,并采集返回的信息,进行分析最终形成网络的拓扑。由于采用向网络里灌入探测数据,这种方式收到的反馈更多,但是需要的权限也更多,且占用一定网络带宽资源。鉴于我们的分析对象是卫星通信网络,带宽资源珍贵,故这里采用被动式监测对基于SCPS协议体系的卫星通信网进行端到端的拓扑分析。

这里有必要对SCPS-NP报文的报文头进行一些介绍。SCPS-NP的报头格式如图1所示。其中前三比特为版本号/协议标识域,第20比特开始的控制域可选长度为4bite,12比特或20比特。具体长度由控制域相应的特征字段控制。相应特征及含义如图2所示。

除了前面版本号/协议标识域,数据长度,传输协议,控制域和目的地址5个特征以外,后续的特征字段都是可选的(可压缩的),前5个特征最小长度为4个字节,故SCPS-NP最短的报头长度仅有4字节。相比IP报文最少的20字节报头减少了80%。

SCPS-NP地址包括4字节,w.x.y.z形式,每字节范围为0-255。包含两种格式:

扩展格式地址(Extended):w.x.y.z形式;

基本格式地址(Basic):z形式,忽略w.x.y(此w=10)

当数据报在传输过程中w.x.y被每个节点清楚的确定时,使用基本格式地址。

z为分配给每个进程(program)的地址字节。低位0-6bit用来构成终端系统标示符(End System Identifier(ES-ID))或者路径标示符(Path Identifier(P-ID))。范围为126,127保留给广播地址。高位第7bit标识多播地址/单播地址,称为M-Flag:‘1’表示多播,‘0’表示单播。0-127表示单播地址,128-254表示多播地址,255表示广播地址。

在一个卫星链路间传播的数据,第一个SCPS-NP报文源IP和目的IP具有完整的4个字节,及采用扩展地址格式,其他的都采用基本地址格式且只有一个字节以减少网络开销。

本文后续程序处理的数据是以PCAP文件保存的,PCAP文件的格式如图3所示。PCAP文件是网络抓包软件生成的一般文件格式。其中文件头有24字节,包含时间戳和文件长度等信息。文件头后面是数据报头,再后面是数据包,如此反复,数据包头包含邻接下一个数据包长度等信息,数据包里是从网络中抓取的数据帧信息。



技术实现要素:

本发明主要提出一种基于网络层报头压缩的网络拓扑分析方法,用于解决基于SCPS协议体系的空间网络拓扑分析。网络层以下的网络接口层默认已解封。

不同于地面网络只有单一网络层数据报文的拓扑分析数据处理,这里我们需要分析每个连接里的网络层报文为IP报文或者SCPS-NP报文,如果是IP报文,则按IP报文格式进行解析,提取源IP和目的IP地址对;如果是SCPS-NP报文,有压缩的SCPS-NP报文和非压缩的SCPS-NP报文两种情况,对非压缩的SCPS-NP报文,按相应报头格式读取报文头里的源IP地址和目的IP地址。对压缩的SCPS-NP报文,先提取报头中的目的地址信息,这里一般为一个字节,字节里低7位为用户连接的P-ID(Path-ID,路径标识符),再根据P-ID信息到卫星终端映射表中找到对应的源IP和目的IP地址对并存储,再对三类报文获得IP地址进行综合分析,得到网络拓扑结构对应的邻接矩阵,最后得出拓扑结构。

一种基于报头压缩的网络拓扑分析方法,具体步骤如下:

Step1:获取分析的源数据,这里采用wireshark抓包修改生成。

Step2:解析每对连接的网络层报文,读取网络层报文的协议版本,版本号为4的是IP报文,版本号为1的为SCPS-NP报文。

Step3:对IP报文按IP协议进行报文头解析,提取每个数据包的源IP地址和目的IP地址对。

Step4:对SCPS-NP报文处理,如果一个SCPS-NP报文的源IP地址存在,则其为非压缩的SCPS-NP报文,如果源IP地址不存在,则为压缩的SCPS-NP报文,据此找出SCPS-NP报文中,所有非压缩的SCPS-NP报文。

Step5:对非压缩的SCPS-NP报文进行分析,提取报文头中的源IP地址和目的IP地址并存储。

Step6:对每个压缩的SCPS-NP报文进行处理,由于终端里存有源IP和目的IP对与路径标识符(P-ID)映射,依据P-ID号信息找出此报文对应的源IP地址和目的IP地址对并存储。

Step7:对三类报文获得IP地址进行综合统计分析,获得整个网络通信的邻接矩阵。

Step8:由邻接矩阵生成网络拓扑图并返回。

本发明的有益效果是:

本方法在数据监听时间足够的情况下,能够针对混合型数据包进行处理得出网络拓扑结构,适应单双卫星或星座卫星通信系统。

附图说明

图1是SCPS-NP报文格式示意图;

图2是SCPS-NP报文头控制欲示意图;

图3是PCAP文件格式示意图;

图4是wireshark抓取源数据示意图;

图5是UltraEdit打开pcap文件数据注释图;

图6是连接对与对应P-ID符号的映射图;

图7是修改完的源数据示意图(UltraEdit打开)

图8是修改完的源数据示意图(wireshark打开)

图9是网络对应邻接矩阵示意图

图10是网络拓扑结构示意图。

具体实施方式

下面结合附图,对本发明作进一步地详细描述。

限于硬件条件的限制无法获得真实的卫星通信原始数据,按照SCPS协议标准来生成后续分析的源数据,一方面由于SCPS协议体系不涉及网络接口层,其次我们的拓扑分析也集中在网络层信息的处理,这里我们生成的数据是按网络接口层解封完成形成的网络层数据文件。先从具有一定拓扑结构的真实因特网中利用wireshark抓包工具抓取一定数据包作为基础数据,再对基础数据按照SCPS-NP一些标准进行修改得到我们的拓扑分析源数据。即卫星通信的网络数据。由于wireshark抓取的pacp文件具有链路层信息,这里我们在数据修改时要先删除链路层相关数据得到只有网络层的基础数据,其次,由于基于SCPS协议的网络层数据可能包含压缩的SCPS-NP报文,非压缩的SCPS-NP报文和IP报文三种,这里将pcap文件中奇数位置的报文保留原来的IP报文格式。将偶数位置的报文按SCPS-NP格式修改,其中,对第一次出现的IP地址对(源IP地址和目的IP地址)赋予一个P-ID(范围0-127)并存入映射表,并将这个报文改为非压缩的SCPS-NP报文作为一对用户回话的第一个报文,非第一次出现的报文修改为压缩报文格式,没有源地址,目的地址的只有一个字节,最高位设为‘0’代表单播报文,剩下7位设为第一个报文对应的P-ID号。

结合本发明提到的方法,整个拓扑分析的过程分为以下几个步骤进行:

Step1:如图4所示,用wireshark对固定通信网路抓包共220.7s,抓得数据包共62827个,滤除无数据的含控制管理信息的包后,得到数据包10224个。命名为basedata.pcap。文件用十六进制阅读器UltraEdit打开如图5所示。

Step2:源数据生成程序打开basedata.pcap文件,依次遍历每个pcap包,删除数据的链路帧的帧头和帧尾,并修改每个pcap包头的包长度信息,生成pro_data.pcap文件。

Step3:pro_data.pcap文件,从第一个数据包开始,所有奇数位置上的数据包不做处理跳过,即保留原有IP报文格式不变。

Step4:pro_data.pcap文件中,依次读取偶数位置上数据包报头,如果这个IP地址对第一次出现,则给这个IP地址对赋予一个路径标识符(P-ID)并记录这个映射,并将第一次出现的报文按非压缩的SCPS-NP报文进行修改,整个文件共产生11对映射,如图6所示。

Step5:对pro_data.pcap文件偶数位置上非第一次出现的IP地址对,这些报文按压缩的SCPS-NP报文格式修改,即报头无源IP地址,目的IP地址只有一个字节,高位第一位设为‘0’代表单播报文,剩余7位是路径标识符P-ID号。P-ID号依据此报文的IP地址到映射表中寻找得到,整个文件共处理报文5101个。

Step6:分别处理完数据包后,生成修改后的数据文件为sourcedata.pcap。此时用十六进制阅读器打开sourcedata.pcap文件如图7所示。用wireshark打开sourcedata.pcap文件如图8所示。

Step7:拓扑分析程序打开sourcedata.pcap文件。跳过24字节文件头,解析报文版本号,按版本号为4或者为1将网络层报文分为IP报文和SCPS-NP报文两类。

Step8:对IP报文,按IP报文格式读取IP报文头,存储其中的源IP地址和目的IP地址。

Step9:对SCPS-NP数据包,若为非压缩的完整的SCPS-NP报文,即源IP地址字段存在,跳过包头,按SCPS-NP报文格式读取源IP地址和目的IP地址并存储。

Step10:对压缩的SCPS-NP报文,读取报文头部目的IP地址字段,得到P-ID号,依据P-ID号在映射表中找到对应的源IP地址和目的IP地址对并存储。

Step11:对所有得到的IP地址对进行统计分析,得到网络拓扑对应的邻接矩阵,结果如图9所示。

Step12:根据邻接矩阵画出网络拓扑图,结果如图10所示。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1