APP下载

IP 卫星网络专用测试网桥设计与实现*

2021-08-30乔庐峰陈庆华王雷淘

通信技术 2021年8期
关键词:卫星网络哈希以太网

赵 伦,乔庐峰,陈庆华,王雷淘

(陆军工程大学,江苏 南京 210001)

0 引言

随着网络技术的高速发展,对卫星通信网络的网络架构、协议体制、关键技术的研究也在不断深入[1]。卫星通信网络利用地面网中成熟的网络互联协议(Internet Protocol,IP)技术,通过IP 统一承载,从而与地面网络连成一体[2]。然而,网络的应用范围越来越大,人们对网络服务质量的要求大大提高,于是更加关注网络设备的具体性能指标,如吞吐量、误码率、丢失率、延迟和抖动等RFC2544标准中的性能指标[3]。

目前,针对地面网测试技术的研究较多且已经较为成熟。此外,国外的Agilent、Spirent 和Adtech等公司研制出了多种通用的标准测试设备[4-5]。这些设备具有标准的以太网接口,支持丰富的协议类型,而且测试仪能够同时模拟成千上万个用户的操作行为,测试海量用户的交换抖动、交换延迟及丢包率等性能。但是卫星网络测试中,由于专用星载IP 交换机没有提供通用的以太网接口,地面网和卫星网的数据链路(Media Access Control,MAC)层协议也不同,并且卫星网还具有大量的专用协议,因此通用的标准测试设备不能直接测试卫星网络。

为了解决当前卫星网络测试中无法采用通用的标准测试设备直接测试的问题,本文设计并实现了一种IP 卫星网络专用测试网桥。专用的测试网桥在数据链路层实现协议转换,对业务的转发处理采用全硬件方案实现,并提供通用的以太网接口,从而能够采用通用测试设备对卫星网络直接测试。

1 卫星网络测试需求

人们对网络测试技术的研究随着网络技术的进步不断深入。初期,网络传输速率很低,针对网络的测试方法主要是进行网络协议一致性测试。当网络进一步发展后,网络承载的业务逐步增多,人们对网络设备的具体性能指标更加关注,如吞吐量、误码率、丢失率、延迟和抖动等,这时进行网络测试的的主要方法是对网络环境进行仿真模拟,并利用网络测试设备生成专门的测试流量来测量交换机、路由器和网桥等设备的性能。近几年,随着网络技术的进一步发展,网络设备的转发速率越来越高,并且使用了很多复杂的服务质量(Quality of Service,QoS)支持技术,网络流量的仿真和网络设备QoS 功能的测试也成为目前网络测试研究的热点[6]。IP 交换技术的发展已经相当成熟,国内对IP交换机进行测试的设备也有很多,但一般都采用通用的标准测试设备来测试。

目前,采用通用测试设备测试卫星网络时,往往需要接入带路由功能的专用卫星终端适配设备进行端口扩展和适配。图1 为采用带路由功能的终端适配器进行卫星网测试的场景。

图1 采用带路由功能的终端适配器进行测试

专用卫星终端适配设备通常需要完成MAC 层协议转换、路由查找处理和业务转发处理等功能。这种测试方法不仅增加了系统结构复杂度,而且测试得到的指标是经过了带路由功能的卫星终端适配器的测试结果,因此延迟和抖动难以预测并且难以精确测得被测交换机的实际指标。此外,使用该种方法进行测试时,较难实现模拟同时接入大量(如1 000 个以上)用户终端,这是因为一个端口适配终端只能接一个用户终端,不能对被测系统同时接入海量终端的行为进行模拟测试。

网络延迟和抖动控制、多用户接入模拟和MAC层协议转换等问题是卫星网络测试中需要重点解决的问题。延迟和抖动的控制可以确保交换指标的精确,多用户接入模拟可以确保同时接入1 000 个用户测试,MAC 层协议转换可以确保采用通用的标准测试设备直接测试卫星网络。

2 测试网桥结构设计

针对上述卫星网测试需求,本方案设计了卫星网专用测试网桥。在测试中,专用测试网桥自己不能独立和完整地构成测试系统,需要和通用网络测试仪等设备配合,才能对卫星网络进行全面的测试。如图2 所示,在卫星网络测试系统中,测试网桥提供以太网业务接口,可以与运行专用测试软件的PC 机、商用路由器及宽带网络测试仪相连,完成被测设备的协议、性能和业务交换等测试。

图2 卫星网络测试系统构成

专用测试网桥是具备完全检测功能的专用设备,主要用途是验证星载路由器的各项功能,包括数据转发能力(吞吐量、延迟和丢包率等)、路由处理能力(协议一致性、路由学习和路由收敛等)等[7]。

图3 为根据专用测试网桥功能需求设计的测试网桥总体框架。该框架主要由查表与分类模块、协议转换模块组成。查表与分类模块的主要功能是根据以太网MAC 帧的类型、目的MAC 地址、目的IP 地址、运输层数据包类型和运输层端口号等信息对数据帧进行分类。自动学习其源MAC 地址与源IP 地址的对应关系形成源IP 地址-源MAC地 址(Source Internet Protocol-Source Media Access Control,SIP-SMAC)映射表。协议转换模块主要功能是完成以太网MAC 层协议与卫星网MAC 层协议的转换,将标准的以太网帧格式转换为卫星链路帧格式。

图3 测试网桥总体框架

2.1 测试网桥数据处理流程

测试网桥数据处理流程如图4 所示。

图4 测试网桥数据处理流程

专用测试网桥中上行方向上,从以太网端口进来的MAC帧被接收后先进入一个查表与分类电路。该电路根据以太网MAC 帧的类型、目的MAC 地址、目的IP 地址、运输层数据包类型和运输层端口号等信息对数据帧进行分类。上行的MAC 帧被分为两类,一类是用户IP 帧,另一类是与专用协议测试有关的管控IP 帧。对于用户IP 帧,查表与分类电路自动学习其源MAC 地址与源IP 地址的对应关系,并存储在本地表格中,然后用户MAC 帧根据映射规则被转换成卫星网用户MAC 帧,如数据流①所示。对于管控IP 帧,其运输层是一个具有特殊用户数据报协议(User Datagram Protocol,UDP)端口的报文。UDP 中的净荷是一个完整的卫星网管控MAC 帧。该帧由运行在PC 机上的多用户模拟软件或网控中心模拟软件产生。对于管控IP 帧,现场可编程门阵列(Field-Programmable Gate Array,FPGA)将其以太网帧头、IP 头和UDP 头剥离,直接发出,如数据流②所示。测试网桥与被测交换机之间除了业务接口外,还有状态信息接口。测试网桥要模拟调制解调器向交换机发送状态帧。在测试网桥中,状态帧由测试网桥管理软件通过配置界面发出,沿着数据流③所示的路径发出。

下行方向上的流程与上行相反。用户IP 帧通过查找上行时建立的映射表获得目的IP 地址和目的MAC 地址的关系,使得网络测试仪或者PC 机可以正确地接收用户数据帧,如数据流④所示。管控卫星MAC 帧被封装在指定的UDP 连接之中并发送给相应的主机,由专用的测试软件进行解析处理,如数据流⑤所示。从交换机发给调制解调器的各种状态和配置帧通过数据流⑥进入嵌入式CPU,然后通过以太网口进入测试网桥管理程序加以分析和处理。

2.2 基于哈希散列的地址学习

以太网交换机中一般都有转发表查找电路。转发表查找电路进行地址查找时,线性查找是最简单的方法,但以太网的MAC 地址位宽为48 bits,使用线性查找时需要的存储深度为248,占用存储空间太大。哈希函数是一种压缩映射,可以把任意长度的输入通过散列算法转换成特定长度的输出。哈希散列既是一种存储方法也是一种查找方法,其本质是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)。基于哈希散列的查找算法一直是人们的研究重点,它能实现精确匹配查找,且具有查找速度快、更新简单且易于用硬件实现的优点[8]。因此,以太网交换机中转发表查找常用的方法之一是采用哈希散列查找。通过哈希散列查找可以把一个248的空间映射到一个较小的空间里。当哈希散列表的深度是1 kB 时,48 bits 的目的MAC 地址,经过哈希散列查找后,得到一个位宽为10 bits 的数值,可以节省存储空间。专用测试网桥中需要把从以太网接收的MAC 帧的源MAC 地址和源IP 地址的对应关系进行学习并存储在本地的哈希散列表里面。上行方向上,把MAC 帧的源IP 地址作为关键字key,把MAC 帧的源MAC 地址作为结果存储在哈希散列表里面。下行方向上以卫星链路帧收到的卫星链路帧的目的IP 地址作为关键字key,来检索哈希散列表,得到地面以太网中对应的MAC 地址,从而形成以太网数据帧。

本文中要实现模拟同时接入大量用户终端,如1 000 个以上的用户终端,需要10 bits 的索引值来对这1 000 条数据流进行查找。因此,需要将32 bits 的IP 地址映射成为10 bits 的索引值,并通过哈希函数建立从32 bits IP 地址集合到10 bits 哈希索引的映射关系。如图5 所示,IP 地址哈希散列查找电路中,采用CRC-16 函数作为哈希函数,把32 bits 的IP 地址进行散列运算,得到位宽为10 bits 的哈希散列值,然后去寻址哈希散列值。针对目的IP 地址进行CRC-16 运算得到16 bits 的散列值,然后将计算结果的低10 位映射到1 kB 的地址空间中,该值就是CRC-16 函数计算出的哈希值。

图5 IP 地址哈希散列查找电路

哈希查找中很重要的问题是解决哈希冲突,通常采用多桶哈希或者哈希链表。本方案采用哈希链表方法解决哈希冲突。以该哈希值为索引在哈希链表中进行精确匹配查找,当查找数据流较多,需要更大的地址空间时,比如说深度增大到2 kB 时,可以取CRC-16 计算结果的低11 位作为哈希值进行匹配查找。这样可以根据查找数据的数量进行灵活调整。

2.3 协议转换电路

地面网络MAC 协议和卫星网络的MAC 协议不同,所承载的业务也不同。使用通用网络测试仪无法直接对卫星网络进行测量,需要通过专用测试网桥实现MAC 层协议转换,完成以太网MAC 层协议与卫星自定义MAC 层协议的转换。上行方向,通过协议转换电路将以太网帧格式转换为卫星链路帧格式;下行方向,通过协议转换电路将卫星链路帧格式转换为以太网帧格式。

地面网中,标准的以太网帧格式如图6 所示。以太网帧格式中的数据部分是遵循网络层协议封装的数据包,可能是IP 包、地址解析协议(Address Resolution Protocol,ARP)包或反向地址转换协议包(Reverse Address Resolution Protocol,RARP)等。

图6 以太网帧格式

卫星链路帧格式如图7 所示,协议转换中需要增加配置的MAC 帧的头部信息来生成卫星链路的MAC 帧。

图7 卫星链路帧格式

本文采用FPGA 芯片作为核心芯片,对以太网MAC 帧的源MAC 地址和源IP 地址的对应关系进行学习等处理,并建立关系映射表,完成以太网协议与卫星链路协议之间的相互转换功能。根据系统功能需求将系统分为数据上行和数据下行两部分。

图8 为上行部分协议转换电路。上级查表与分类电路对接收的以太网数据包进行处理,提取源MAC 地址、目的MAC 地址、帧类型、源IP 地址和目的IP 地址等信息,并将其存入帧头缓存存储器中,其余数据信息存入数据缓存存储器中。协议转换模块查找网桥配置管理电路建立的哈希表,通过索引查找对应标签表,得到每个以太网帧对应卫星链路帧帧头中特定的字段内容(如图7 中的S-MPLS标签)。协议转换模块采用截取法,从以太网帧的6 Bytes 8 bits 的目的MAC 地址中,截取其中2 Bytes 16 bits 直接作为卫星链路帧的目的MAC 地址,形成卫星链路帧。将帧头、帧长、数据等相关信息分别存入相应的缓存中,供后级电路调用。

图8 上行部分协议转换电路

数据下行部分负责接收卫星链路数据包,对其完成对卫星链路协议与以太网协议的转换等功能,并通过网口发送出去。

图9 为下行部分协议转换电路。协议转换模块负责从上级输入电路中读取缓存存储器中的帧头、帧长和数据信息。根据帧头信息中的目的MAC 地址和目的IP 地址查找上行方向查表与分类电路自动学习建立的哈希表,得到对应的以太网帧目的MAC 地址和目的IP 地址,将卫星链路帧转换为以太网帧。

图9 下行部分协议转换电路

3 仿真结果与分析

专用测试网桥采用Xilinx 的xc6vlx240t FPGA实现,开发环境采用Xilinx 集成开发环境ISE14.7,电路核心模块采用Verilog HDL 编程实现,并用仿真软件Modelim SE10.6d 进行测试仿真。

3.1 ARP 地址学习仿真

上行方向上,从以太网端口向专用测试网桥发送ARP 帧,接收MAC 控制器接收该数据帧并交给后级电路。后级电路收到ARP 请求帧后将其源IP 和源MAC 存入采用哈希表实现的ARP 表内,此时的ARP源IP 地址(arp_sip)32’h12345678,源MAC 地址(arp_smac)为48’hbbbbbbbbbbbb,ack 信号拉高后说明地址学习完成。此后,以太网ARP 帧转换为卫星网ARP 帧,通过后续的专用接口发出,如图10 所示。

图10 ARP 地址学习仿真结果

3.2 上行方向发送用户帧仿真

图11 为以太网MAC 帧到卫星MAC 帧的转换过程。输入数据开始信号(sof)为高电平时,电路开始接收来自交换结构的地面数据帧,data_fifo_wr拉高将地面数据帧缓存。随后data_fifo_rd 拉高读出缓存的地面MAC 帧,为节省处理的时钟周期,边读取边进行格式转换,data_fifo_wr_0 拉高将转换后生成的卫星网专用MAC 帧存入发送FIFO 内等待发送。

图11 以太网MAC 帧到卫星MAC 帧的转换

3.3 下行方向发送用户帧仿真

图12 为从卫星网向以太网发送用户帧的仿真波形,卫星MAC 帧中承载的IP 包通过查找上行时建立的映射表获得目的IP 地址和目的MAC 地址的对应关系,将卫星网用户MAC 帧转换为标准的以太网帧发出的仿真过程。根据上行方向上ARP 学习获得的源IP地址和源MAC 地址的对应关系,在下行方向上使用从卫星MAC 帧中提取的目的IP 地址(search_ip),即32’h12345678,查找哈希表得到48 位目的MAC 地址(search_result_da),即48’hbbbbbbbbbbbb,然后就可以将卫星网用户帧转换为以太网用户帧发出。

图12 下行用户数据帧处理波形

4 结语

本文设计实现了一种IP 卫星网络专用测试网桥,并介绍了关键模块的功能结构。仿真结果表明该电路实现了对输入数据帧的地址学习、上行方向和下行方向以太网MAC 帧与卫星网MAC 帧之间的格式相互转换,满足了专用测试网桥测试功能需求。整个电路采用FPGA 以全硬件方式实现,额外引入的延迟和抖动小,可以满足卫星网测试需求。

猜你喜欢

卫星网络哈希以太网
全球低轨卫星网络最新态势研判
基于特征选择的局部敏感哈希位选择算法
哈希值处理 功能全面更易用
文件哈希值处理一条龙
卫星网络HTTP加速技术研究
三大因素驱动创新提速以太网快步迈入“灵活”时代
三大因素驱动创新提速 以太网快步迈入“灵活”时代
谈实时以太网EtherCAT技术在变电站自动化中的应用
基于NS2的多层卫星网络路由协议开发方案
卫星网络环境下TFRC与窗口协议的比较