马明毅 冯楠 谭晓川 周伟 李少波 王碧瑶 张晓乐
摘要:针对国内对天地一体化的需求,提出一种基于NDP协议的IPv6 over AOS星间链路通信系统,将IPv6数据包封装在AOS帧中,通过激光在空间中传输,融合了地面网络与空间网络,满足了现阶段数据传输的高速、大容量需求。以FPGA作为网关,实现了网关及其子网之间的地址解析功能以及路由表的动态配置。结合MPLS技术,基于标签来进行路由决策,相比于原有基于IP路由进行转发的交换方式降低了组网成本,提升同样性能设备的转发效率,具有良好的可扩展性。
关键词:IPv6 over AOS;NDP协议;MPLS协议;地址解析
中图分类号:TN393文献标志码:A文章编号:1008-1739(2023)02-62-5
空天信息网络技术是当前世界各军事强国的热门研究方向,组建天地一体化信息网络更是各国研究的热门方向[1]。通过该网络提供的大范围、高精度信息在精确打击、指挥控制等领域发挥着关键的作用。我国在航天通信领域采用国际空间数据系统咨询委员会(Consultative Committee for Space Data Systems,CCSDS)协议架构[2],AOS协议属于CCSDS诸多空间通信协议的一种,是一种高级在轨系统,可用于大容量数据处理以及高速通信,以AOS协议为基础的体制方案在航空航天、卫星通信和深空探测等领域都有重要的应用。我国在AOS体制的使用上有许多成功案例,如神舟飞船、气象卫星、中继卫星和遥测科学等[3],但目前与发达国家相比,AOS体制还存在较大的缺陷,尚未形成完善的空间信息传输体制,我国在天地一体化信息网络建设上还有巨大的发展空间[4]。
AOS协议充分迎合了我国空天网络一体化的发展需求,在地面网络通信与深空通信等领域都具有重要的意义。通过AOS协议搭载IPv6报文是实现天地一体化的一种合理选择,实现了数据的实时、可靠传输,并且满足了不同速率信息处理需求。而邻居发现协议(Neighbor Discovery Protocol,NDP)作为IPv6的关键协议,具有地址解析、地址冲突检测、邻居不可达检测、重定向、路由器发现、前缀发现、地址自动配置、参数发现和下一跳地址确定等功能[5],解决了不同节点之间地址的自动配置问题,提高了路由选择的准确性,保证了链路的实时可用。
本文在数据链路层采用AOS协议,在网络层采用IPv6协议,改变了数据路由的静态查表方式,基于NDP实现路由表的动态配置和IP,MAC地址的动态获取,结合多协议标签交换(Multi-protocol Label Switching,MPLS)以FPGA作网关实现了IPv6数据包的收发、地址解析和协议转换等功能技术。
系统总体结构及硬件测试实物如图1所示,每个FPGA具备2路千兆电口、路万兆光口,千兆电口通过RJ45接口连接至主机,万兆光口通过光纤连接至万兆网卡,每块FPGA可连接4台设备,PHY芯片通过RGMII接口从主机发送以太网帧至FPGA,每个端口在FPGA内部通过协议栈的方式配置IP地址和MAC地址,转发信息表(FIB)和标签转发信息表(LFIB)通过RS232串口线下发至每一块FPGA板卡,数据包根据FIB和LFIB决定传输路径。为了模拟空间链路数据传输,减少信号之间的相互串扰以及外部噪声的干扰,数据包采用高速串行差分的方式通过TLK2711沿LVDS信号线进行传输,板卡共设计8路TLK2711,其中6路为SMA接口,2路为光模块接口。
本文采用ping包的方式模拟业务发送过程。在主机A发送业务之前,首先需要基于NDP完成地址解析[6],由主机发送NS报文,FPGA将主机的IP地址和MAC地址存储下来并回复NA报文,主机将所询问IPv6地址下的MAC地址存入路由表中,之后主机即可开始发送IPv6数据包。网口发送至FPGA的数据包通过适配模块,筛选出符合条件的ICMPv6数据包(以太网帧类型为0x86DD,下一头部为58,端口号为2020)后将其封装成AOS帧并基于MPLS技术根据标签在不同节点之间进行转发。AOS帧按照主机通过RS232下发的FIB表在源节点压入标签后,将AOS帧传送至中间节点,中间节点根据LFIB表经MPLS协议进行标签交换后,将其发送至目的节点。目的节点查询FIB表,将标签替换为16hFFFF(标签 16hFFFF代表到达目的节点),并发送至端口所连接的设备上。
本文所使用的AOS激光通信帧格式如图2所示,IPv6数据包包含在链路层的数据域内,AOS帧总长为1 024 Byte。为了实现帧同步,在激光通信帧前端加入4 Byte的同步头,用于定位帧到达的时间,定界数据单元。版本号和航天器标识构成主信道标识(MCID);虚拟信道标识(VCID)和主信道标识组成全局虚拟信道(GVCID)用于标定每一条虚拟信道[7]。信令字段由回放标志、虚拟信道帧使用标志、保留域和虚拟信道帧计数循环4部分组成,用于标定AOS帧的状态,0表示实时,1表示回放,可以对AOS帧进行存储并在链路恢复时进行帧的回放。标签域共6 Byte,其中标签占2 Byte用于标定数据包转发路径。DCN域占16个Byte,用于实現管控数据的封装、适配和连接,为网络单元设备提供管理和控制信息的通信功能,便于对网络单元进行管理与维护。OAM域用于实现运行、管理和维护等相关功能,包括OAM开销信息的提取与插入、OAM帧的生成与控制、故障和性能检测以及告警上报等功能。
NDP相比于ARP在许多方面都有了很大的改善。如NDP IPv6组播技术避免了网络拥塞[8],减少了所占用的带宽,从而极大地提高了地址解析效率;NDP工作在网络层与介质无关,因此可以在不同的网络媒介上运行;避免了信息被其他节点窃听,安全性得到了提升等。
NDP的地址解析过程如图3所示,主机A在发送之前,需获得主机B的链路层地址,为实现路由表的动态配置,可以通过NDP的地址解析功能动态获取设备的链路层地址。类似于ARP[9],首先主机A向所连接设备(以主机B为例)发送一个NS报文,报文以主机A的IPv6地址作为源地址,主机B的被请求节点组播地址作为目的地址,用以解析出主机B的IPv6地址所对应的MAC地址。当主机B接收到了NS报文之后,就会回应NA报文,NA报文的源地址为主机B的IPv6地址,目的地址为主机A的IPv6地址,不同于NS报文的组播,NA报文为单播,即完成了一个解析过程。
主机向FPGA发送IPv6数据包时,由于路由表中并没有目的IP对应的MAC地址,所以首先会发送NS报文,询问目的IP对应的MAC地址,由FPGA端回复端口的MAC地址后,主机开始发送数据包。另外,FPGA会定时发送NDP检测端口所连设备是否正常连接。基于FPGA的NDP地址解析过程如图4所示,假定主机A的IPv6地址为FE80:0:0:30::,MAC地址为C4-00-AD-74-96-C5,主机B的IPv6地址为FE80:0:0:10::,MAC地址为C4-00-AD-90-9F-76,主机A所连接FPGA1端口IPv6地址和M AC地址分别为FE80:0:0:01::和00-00-AD-90-9F-01,主机B所连接FPGA2端口IPv6地址和MAC地址分别为FE80:0:0:02::和00-00-AD-90-9F-02。首先主机A和主机B分别向FPGA1和FPGA2发送NS报文,当FPGA收到NS报文后,分别向主机A和主机B反馈NA报文,但在MAC地址字段填写FPGA1的端口号。相当于主机A和主机B在询问目的IP FE80:0:0:10::和FE80:0:0:30::所对应的M AC地址,由FPGA1和FPGA2分别回复端口的MAC地址。
主机A和主机B通过NDP存储的路由信息如图4所示。可以看出,通过NDP的地址解析功能,主机A和主机B的路由表中存储了目标IP地址以及其所连接FPGA端口的MAC地址,主机在获得路由信息后,即可开始发送IPv6数据包。
多协议标签交换(Multi-Protocol Label Switching,MPLS)即给每一个IP数据报打上固定长度的标记,然后通过硬件在链路层进行IP数据报转发。该技术具备流量控制、负载均衡、路径备份和故障恢复等优势,改变了传统IP网络可能出现的链路堵塞问题,通过灵活控制数据报的传输路径,实现了资源的合理分配,从而大大加快了数据报的转发速率。另外,可以配置2条或多条标签交换通道(LSP),选择其中几条作为备份,从而实现了业务流的合理分配,保证了业务的连续性[10]。
MPLS网络由标记交换路由器(Label Switching Router,LSR)和标记边缘路由器(Label Edge Router,LER)组成,如图5所示。LER位于边缘部分,负责标签的加入与去除LSR位于MPLS网络的核心部分,负责标签交换[11]。各LSR基于标记分配协议LDP传输数据包,并找出和特定标记相对应的路径,即标记交换路径LSP。当一个IP数据报进入MPLS域时,在入口结点(LER)压入标签,并按照转发表把它转发给下一个LSR,以后所有LSR都按照标签进行转发[12]。
MPLS协议包括LDP,LIB,FIB。LDP作为MPLS的核心技术,通过信令机制实现标签分配与转发,FIB负责普通的IP报文的转发,而LFIB负责转发带MPLS标签报文的转发。本文以IPv6地址作为转发等价类(Forwarding Equivalence Class,FEC),根据FIB和LFIB建立标签交换路径(Label Switching Path,LSP)采用双向对ping包的方式模拟数据转发,研究数据处理过程。
在通过NDP协议完成地址解析后,主机开始发送IPv6数据包并封装成AOS帧并在AOS帧的标签域插入标签,对应FIB表和LFIB表,当收到普通IP的报文时查找FIB表,添加标签,进行MPLS转发。当收到带有标签的报文时,查找LFIB表,如果對应的出标签是普通标签,则进行MPLS转发,如果对应的出标签是特殊标签(本文规定此标签为16hFFFF),则表明数据要发送至以太网口,将报文中的标签去掉,进行AOS帧解封装和IP转发,数据传输流程如图6所示。
实验所用FIB表和LFIB表如图7所示,其中FIB表分别下发至边界点LER,LFIB表下发至中间节点LSR。FIB表中规定了IP地址对应数据包应压入的标签以及传输路径,LFIB表规定了入标签、被替换的出标签以及转发路径。
测试过程中,业务到达中间节点时标签的替换情况如图8所示,实验采用第1路和第5路2711传送双向对ping的数据,可以看出数据包从主机A(IP地址为FE80:0:0:30::)经第一路2711到达中间节点时,标签为16h0001,经查询LFIB表,标签在通过中间节点后被替换16hFFFF,并通过第4路2711发往目的节点。同理,主机B(IP地址为FE80:0:0: 10::)在中间节点也完成了标签替换。经1h的测试,实验结果如图8所示。
当每块FPGA同时连接4台设备时,测试结果如图9所示,数据包传输过程中基本无丢包现象产生。经iperf測试,通信速率可达500 Mb/s。
本文以空天网络一体化为背景,给出了一种基于FPGA的IPv6 over AOS星间链路激光通信系统,并对系统所用的AOS帧结构进行了设计,研究了IPv6协议、IPv6组播技术、邻居发现协议以及CCSDS空间通信标准和IP over AOS协议的转换机制,基于MPLS技术改变了通过IP地址转发的方式,转而采用标签交换进行数据转发,根据FIB和LFIB查询标签对应的转发路径,实现了数据包在板间的快速传输,提高了网络性能。搭建了系统实验环境,对空间链路的传输进行了模拟,以FPGA作为网关,实现了网关和其所连设备之间的地址解析以及路由表的动态配置。测试了IP over AOS系统的协议转换功能,通过检测丢包率及通信速率对系统的性能进行了验证。
参考文献
[1]荣华为.基于IP over CCSDS的高速网关设计与实现[D].西安:西安电子科技大学,2017.
[2]王雪旸.TCP/IP协议族在相控阵时分卫星网络中的应用[D].北京:北京邮电大学,2015.
[3]董晓臣.基于FPGA的IPv6 overAOS网关的设计与实现[D].保定:河北大学,2021.
[4]沈荣骏.我国天地一体化航天互联网构想[J].中国科学工程, 2006, 8(10): 19-30.
[5]缪剑锋,管有庆.轻量级IPv6邻居发现协议及在网关中的实现[J].计算机技术与发展, 2014,24(10): 59-62.
[6]吴长瑞,徐建清,蒋景红.基于FPGA的千兆以太网接口应用研究与实现[J].现代电子技术, 2018, 41(9): 1-5.
[7] CCSDS. Space Data Link Protocols-Summary of Concept and Rationale: CCSDS 130.2-G-0.3[R]. Washington D. C.: CCSDS, 2005.
[8] MILIC D, BROGLE M, BRAUN T. Video Broadcasting Using Overlay Multicast[C]// 7thIEEE International Symposium on Multimedia(ISM). Irvine: IEEE, 2005: 1-8.
[9] DEERING S, HINDEN R. Internet Protocol, Version 6 (IPv6) Specification:RFC2460[S]. Washington D. C.:The Internet Society, 1998.
[10] BUENO A, VILA P, FABREGAT R. Multicast Extension of Unicast Charging for QoS Services[C]// 4th IEEE European Conference on Universal Multiservice Networks (ECUMN). Toulouse: IEEE, 2007: 119-126.
[11]冯径.多协议标签交换技术[M].北京:人民邮电出版社, 2002.
[12]杨军. LDP协议和LSP选路研究与实现[D].重庆:重庆大学,2012.