可靠IP数据传输的研究
2022-05-17颜浩洋王建兵
谢 明,崔 丹,瞿 辉,颜浩洋,王建兵
(1.中国人民解放军第93216部队,北京 100085;2.北京航天晨信科技有限责任公司,北京 100000;3.重庆金美通信有限责任公司,重庆 400030)
TCP/IP的概念产生于上世纪70年代,并在上世纪80年代得到了迅速的完善和发展。在上世纪90年代,TCP/IP协议已毫无争议地确立了在数据通信协议中的主导地位。至今,TCP/IP协议已经是数据通信标准的代名词,是唯一可以通达世界范围内Internet联接的通信协议,也是任何数据用户终端最先支持的协议标准。随着网络通信容量的不断增加和计算机信息处理能力的不断提高,TCP/IP协议正在成为“唯一”的选择,所谓“Everything Over IP”。
随着计算机网络技术的发展,整个社会都发生了质的改变。各项技术不断涌出,卫星网络、云计算、大数据相继出现,人们对互联网业务的需求也在不断增加,以互联网为代表的计算机行业在各个领域中都得到了广泛的应用,改变了人们的工作方式和生活方式。现代社会的发展已经离不开网络,互联网、大数据渗透在社会的各个角落,随之而来的是网络数据传输的可靠性得到了人们的重视。从IP协议的角度出发,分析IP协议与因特网可靠性之间存在的联系,探究其中存在的问题,并提出对应的策略。
IP协议为面向无连接且不可靠的传输数据,提供一种从源端到目的端的方法,按照用户的要求为用户提供从源端机到目的机的数据传输。IP的传输方式是尽力而为的逐跳转发,IP传输不能保证数据能到达目的地。IP数据的可靠传输一般是依靠数据终端之间建立TCP(Transmission Control Protocol,传输控制协议)连接,利用TCP的滑动窗口和数据重传机制来实现。
1 可靠传输数据的既有成果
解决UDP非连接类业务(包括视频、话音等实时数据流)的可靠传输一般依靠3类技术:
1.1 链路聚合
链路聚合技术在2000年IEEE802.3ad完成标准化,后由802.1AX标准对该技术的模型、操作、控制协议以及管理进行全面规范。该技术可以将数据终端设备之间的多条全双工点到点链路聚合起来形成一个链路聚合组(LAG)。上层功能模块则可以将链路聚合组当成一条逻辑链路使用,从而达到平滑扩展链路带宽的目的,同时LAG组的物理链路之间互为备份提高了链路可靠性[1]。
1.2 路径备份
相关技术为MSTP(Multi-Service Transport Platform,多业务传送平台)和PTN(Packet Transport Network,分组传送网)。MSTP设备间具有工作光纤和备用光纤两条通路,正常情况下在工作光纤传输业务数据,网管模块通过链路层的管理信息可及时发现工作光纤链路通断情况并及时(50 ms以内)切换到备用光纤[2]。PTN利用路由方法计算出源到目的的两条路径(工作路径和备份路径),利用标签转发的方式建立隧道通路,正常情况下在工作路径上传输业务数据,当工作路径故障时(50 ms以内)迅速切换到备份路径[3]。
1.3 链路备份
如ATM(异步传输模式)系统的APS(自动转换保护)备份,通过配置保护链路,提供工作链路和保护链路的故障检测和倒换机制,实现链路备份[4]。
分析此3类技术,技术1是基于单设备级,技术2是基于物理链路层级,都未实现跨越三层网络来实现网间的可靠数据传输。技术3是依靠ATM(异步传输模式)的特殊性,建立从源到目的的两条端到端链路,依靠APS协议实现路径切换。该技术必须依赖ATM(异步传输模式)有连接的特性,对于无连接的IP传输需要叠加更多的技术,例如MPLS(多协议标签交换)来实现备份路径,MPLS的标签交换与IP数据的依靠路由表(最长掩码匹配)交换也有本质的区别。
除了上述的3种技术之外,因为SDN(Software Define Network,软件定义网络)技术的兴起,有了更多的方法可以实现可靠IP数据传输。例如通过获取链路延迟,并在链路下游交换机利用时序数据预测进行故障检测,同时基于备用路径预先规划与故障信息广播的快速重路由方法来实现故障恢复[5]。SDN控制器计算路径时也必须依赖SPF(最短路径优先)算法进行路径计算,不能脱离路由协议或者路由算法单独形成备份路径的IP数据传输。
2 初步设想
2.1 设计要求
针对现有三层交换机的架构,形成如下的设计要求:
(1)基本要求:不改变现有设备的硬件状态,仅依靠更改三层交换机的软件(含业务板FPGA程序)来实现业务备份传输。
(2)路由要求:不改变路由机制及处理流程。
(3)信道要求:无线信道作为备份链路,扩大业务传输的距离。
2.2 数据复制位置的选择
数据需要复制后通过无线信道备份传输。在数据源的3个地方可以进行数据复制。
(1)业务单元:业务数据进入三层交换机的第一块单元板,需要业务单元FPGA增加读写操作,能完成线速转发,不影响传输性能。
(2)交换单元:业务数据进行交换及路由的单元板,需要利用交换单元的镜像功能,使用镜像功能配置复杂,该资源被占用后影响数据功能调试。
(3)主控单元:以软件转发的方式进行备份传输,传输时延指标将低于硬件转发的方式,同时因为要在内核态处理数据,增加了操作系统的不稳定性。
分析数据在中继节点进行复制的可行性。可以利用交换网络“COPY to CPU”的功能将转发数据复制给主控单元CPU,如果主控CPU将此数据进行备份传输,那么经过多少个中继节点,目的节点就会收到多少个复制的数据。即同一份数据在无线信道被多次发送,会超出无线信道的容量,也会超出终端节点冗余缓存的容量。
2.3 数据传输目的选择
如果节点之间无法直接形成无线邻居关系就需要无线信道具有ADHOC网络的中继功能,便于三层交换机选择备份数据仅经过一次无线信道进行传输,直接到达目的节点。
2.4 冗余处理
备份传输将产生多余的数据,需要在三层交换机内部进行冗余数据处理。冗余数据出现在业务单元。如图1所示,业务单元可能收到两份同样的数据,一份来自有线接口,一份来自无线接口。两份数据经过交换网络的三层转发后都将进入业务单元的FPGA进行处理。判断是否为同一个业务数据的依据是五元组:IP序号、IP协议类型、源IP地址、目的IP地址、UDP目的端口号。业务单元的FPGA根据五元组在缓存中进行检索,如果未匹配,该数据包可传输到上位机,同时缓存该五元组。如果匹配则不处理该数据。
图1 业务单元处理冗余数据
2.5 缓存大小的设定
数据从源头排队进行传输,有线信道传输速度快,无线信道传输速度慢,当从无线信道收到数据后业务单元FPGA需要查找缓存空间判断是否收到过数据,此段时间有线信道收到的数据个数n即为基本的缓存空间大小。
缓存大小的设定需要考虑两个因素:单位时间内数据业务的发送频次、无线信道传输一跳业务经过的时间。缓存大小的公式设定:单位时间内数据业务的发送频次*无线信道传输一跳业务经过的时间。
假如全网每秒业务传输320次,无线信道传输一跳经过的时间是600 ms,即全网环境下公式计算结果为:320次/s*600 ms=192次。考虑到留足保护空间,防止缓存溢出,一般取公式计算结果的3倍大小作为最终的缓存大小设定,即192*3=576。
因为业务报文五元组中的关键字段是IP报头中的序号,该字段占用2个字节共65 535的大小。如果缓存大小取得太大,会导致当序号翻转时被业务单元的FPGA误认为重复报文,因此缓存大小的最佳取值区间为576~6 500,占到IP序号的1/10以下。
3 数据乱序异常分析
如图2所示,当无线信道路由切换到有线信道路由时,因为此时路由是无缝切换,前面经过无线信道传输的数据包可能后于后面经过有线信道传输的数据包,导致数据乱序。乱序数据需要终端处理,否则将直接丢弃。
图2 乱序原因分析
4 执行方案
4.1 上行数据
数据除了正常的三层交换流程之外,需要在业务单元的FPGA复制一份,在以太网帧“类型”字段的前面加入4字节的“VLAN标签”字段,将VLAN标签赋值为0×8100 00FF。如图3所示,在交换网络侧配置交换策略,对此VLAN接口的数据进行二层转发到无线接口。
图3 单播业务上行执行方案
4.2 下行数据
下行数据需要在业务单元的FPGA进行冗余处理,处理方法如前文所述,取出数据的五元组作为索引进行查表,如果是新数据则对外发送并留存;如果查表成功,说明是已有数据,直接丢弃即可。
5 时间性能分析
数据经过有线信道传输,需要在目的节点的业务单元进行一次去冗余的查表处理。分析进行一次去冗余查表处理需要的时间。
检索一次需要512个时钟周期,加上读取信息的时间,处理一个数据包预计会增加530个时钟周期。业务单元板如果采用66 MHz时钟,即增加530*15.2 ns=8 056 ns。即数据经过冗余处理需要增加8μs。
6 结束语
通过这些方法的组合可以在无线信道一跳可达的范围内部署IP三层交换网络,使得IP数据可以通过无线信道进行备份传输达到可靠传输的目的,当有线信道路由变化时不会影响无线信道的IP数据传输,从而保证了IP数据的可达性可以不依赖于路由协议指定的路径。有线信道和无线信道互为备份关系,从而提高了整个IP数据传输系统的可靠性。