一种基于可编程网络硬件设备实现面向可靠组播的数据包过滤方法技术

技术编号:26693693 阅读:17 留言:0更新日期:2020-12-12 02:49
本发明专利技术涉及软件定义网络中可编程网络硬件设备的数据包处理领域,具体来说是一种基于可编程网络硬件设备的数据包处理能力,实现面向可靠组播的数据包过滤方法。接收端可以向SDN控制器发送过滤信息;SDN控制器控制可编程网络硬件设备的数据处理及转发行为,实现具有特定标签的数据包发送至特定接收端。为了支持上层的可靠组播协议,通过可编程网络硬件设备的打序列号功能,在可编程网络硬件设备实施过滤前后向数据包写入两个序列号,使接收端可以判断数据包缺失是由于过滤还是丢失,其优点在于:在网络传输过程中,实现了数据包的过滤操作,使每个接收端只收到过滤后的数据包,减少接收端的带宽占用。

【技术实现步骤摘要】
一种基于可编程网络硬件设备实现面向可靠组播的数据包过滤方法
本专利技术涉及可编程网络硬件设备(如软件定义网络中可编程网络硬件设备)的数据包处理领域,具体来说是一种基于可编程网络硬件设备的数据包处理能力,实现面向可靠组播的数据包过滤方法。
技术介绍
目前一种实际通用的可靠组播协议是PGM(ReliableMulticastProgramming)协议。其基本思想是接收端收到数据包时,根据数据包上的序列号判断是否有缺失:当发现没有缺失时,将数据包上传到上层应用;当发现有缺失时,向发送端发送NAK(NegativeAcknowledgement)数据包,指明所缺失数据包的序列号。发送端根据收到的NAK数据包中的缺失数据包的序列号,进行数据包的重传操作。该做法的好处是,在存在多个接收端的组播场景下,不会出现大量的Acknowledgement(ACK)数据包(即对每一个收到的数据包,接收端对发送端发送反馈,确认数据包的收到)在网络中的传输,避免ACK风暴。数据包过滤是通过数据包上的标签,对数据包进行过滤操作,其目的是使上层应用只收到并处理具有特定标签的数据包。在可靠组播场景中,由于发送端不存在对每一个接收端的连接,除非所有接收端指定的过滤标签都一致,否则无法在发送端进行过滤。目前普遍做法是接收端在收到所有数据包后,对数据包进行过滤。接收端通过底层可靠组播PGM协议保证收到所有数据包后,再根据上层应用设置的过滤策略,根据数据包的标签,对数据包进行过滤操作(即过滤操作实现在可靠组播协议之上)。然而,该方法的弊端是即使接收端的应用程序设置了过滤策略,全部的数据包也会传入该接收端,影响接收端系统性能:大量数据包占用带宽资源;数据包过滤操作占用计算资源(从而增加延时)。因此,出于对系统性能优化的考虑,需要把过滤操作实现在数据包在网络传输过程中,减少对接收端系统性能的影响。网络硬件设备(如交换机)的可编程性概念来源于软件定义网络(Software-DefinedNetworking,SDN)。SDN的思想是通过将控制逻辑从网络交换机(包括三层交换机)中分离,并集中于SDN控制器,使交换机专注于转发功能。SDN控制器可以基于全网状态及上层应用需求,通过其南向接口对底层交换机下发转发策略;交换机则基于转发策略对接收到的数据包进行转发、修改等操作。对比于传统网络中具有固定控制逻辑的三层交换机(如实现OSPF协议等),通过将控制逻辑从中分离,可以较大程度上提高其可编程能力,进而增加对网络中数据包处理的灵活性。可编程网络硬件设备对数据包处理的能力基于底层芯片的实现;由于芯片的差异性,可编程网络硬件设备处理数据包的能力并没有统一标准。本专利技术中考虑的可编程网络硬件设备具有的数据包处理能力包括:基于标签对数据包进行转发及对数据包打序列号。基于SDN可编程网络硬件设备可以灵活地实现在网络中对数据包的过滤操作。当接收端对数据包具有过滤需求时,接收端可以发送相应过滤请求信息至SDN控制器。SDN控制器收到请求后,向底层可编程网络硬件设备下发数据包处理策略,进而实现网络中对数据包的过滤操作。然而,基于可编程网络硬件设备实现的数据包过滤方法在可靠组播场景中需要解决如下问题:在可编程网络硬件设备中进行过滤的操作实现在可靠组播协议的下层,因此当接收端运行可靠组播协议的程序发现数据包缺失时,需要判断是由于网络中的过滤操作导致的缺失还是数据包在传输过程中的丢失。对于可靠组播协议,发现数据包的丢失,需要发送NAK数据包,触发发送端的重传;而对于数据包的过滤,则不需要采取任何行动。如对所有缺失数据包判断为过滤情况,会影响数据传输的可靠性;如对所有缺失数据包判断为丢失情况,会大幅度增加系统延时。如何让接收端收到足够信息可以判断数据包的缺失是丢失还是过滤,是实现基于可编程网络硬件设备及面向可靠组播的数据包过滤方法最主要的问题。
技术实现思路
本专利技术的目的在于解决现有技术的不足,提供一种在网络传输中基于可编程网络硬件设备对数据包进行过滤的方法,同事解决可靠组播场景中接收端对于数据包缺失的判断问题。为了实现上述目的,设计一种基于可编程网络硬件设备实现面向可靠组播的数据包过滤方法,其特征在于包括一个发送端和两个接收端,发送端和两个接收端通过可编程网络硬件设备连接,SDN控制器通过南向接口与可编程网络硬件设备相连,用于对其下发数据包处理策略,两个接收端与SDN控制器连接,用于向其发送过滤信息,具体方法如下:1.接收端向SDN控制器发送过滤信息;2.SDN控制器收到接收端的过滤信息后,通过其南向接口,向底层可编程网络硬件设备下发数据包处理策略;3.发送端在发送数据包时,根据上层应用策略,对不同的数据包添加不同的标签,并将具有标签的数据包发送到已配置完的可编程网络硬件设备;4.可编程网络硬件设备根据下发的数据包处理策略,对收到的数据包进行处理:第一步,在过滤前对每一个数据包写入过滤前序列号;第二步,根据数据包标签匹配不同的匹配项;第三步,通过匹配不同的匹配项向数据包写入不同的过滤后序列号;第四步,通过匹配不同的匹配项将数据包转发至不同的端口离开可编程网络硬件设备。接收端在收到数据包后进行数据包丢失的判断的步骤包括:1.当收到前后连续两个数据包i和j时,获取其原始序列号OS、过滤前序列号PFS、过滤后序列号AFS,即(OSi,PFSi,AFSi)和(OSj,PFSj,AFSj);2.计算AFSj-AFSi的值;3.若AFSj-AFSi的值不等于1,则说明过滤后有丢包,结束判断;4.计算(PFSj-PFSi)-(OSj-OSi)的值;5.若(PFSj-PFSi)-(OSj-OSi)的值不等于0,则说明过滤前有丢包,否则没有丢包,结束判断。发送端在发送数据包时,都将包含相应的原始序列号OS,即一个连续递增的数字,可编程网络硬件设备对每一个匹配项都维护一个计数器,代表有多少个数据包匹配了该项,由于随着数据包的匹配,该计数器的值会自动增加,具有连续递增的性质,因此通过将该值写入数据包中,可以实现对数据包打序列号的操作。可编程网络硬件设备对数据包标签匹配前,向数据包写入PFS,并通过接收端计算PFS之差和OS之差是否相等,使其可以判断过滤前是否有数据包丢失。可编程网络硬件设备对数据包标签匹配后,向数据包写入AFS,并通过接收端计算AFS是否连续递增,使其可以判断过滤后是否有数据包丢失。本专利技术与现有技术相比,其优点在于:1.能够减少带宽占用率及降低系统的延时;2.借助于可编程网络硬件设备对数据包打序列号功能,能够有效解决可靠组播场景中接收端对于数据包缺失的判断问题,因此不会对上层可靠组播协议的正常运行造成影响。附图说明图1是网络中进行数据包过滤的整体架构示意图;图2是可编程网络硬件设备内部转发策略基本示意图;图3是可编程网络硬件设备进行过滤及写入序列号的流程图;图4是接收端进行数据包丢失判断的流程图本文档来自技高网
...

【技术保护点】
1.一种基于可编程网络硬件设备实现面向可靠组播的数据包过滤方法,其特征在于包括一个发送端和两个接收端,发送端和两个接收端通过可编程网络硬件设备连接,SDN控制器通过南向接口与可编程网络硬件设备相连,用于对其下发数据包处理策略,两个接收端与SDN控制器连接,用于向其发送过滤信息,具体方法如下:/n(1)接收端向SDN控制器发送过滤信息;/n(2)SDN控制器收到接收端的过滤信息后,通过其南向接口,向底层可编程网络硬件设备下发数据包处理策略;/n(3)发送端在发送数据包时,根据上层应用策略,对不同的数据包添加不同的标签,并将具有标签的数据包发送到已配置完的可编程网络硬件设备;/n(4)可编程网络硬件设备根据下发的数据包处理策略,对收到的数据包进行处理:第一步,在过滤前对每一个数据包写入过滤前序列号;第二步,根据数据包标签匹配不同的匹配项;第三步,通过匹配不同的匹配项向数据包写入不同的过滤后序列号;第四步,通过匹配不同的匹配项将数据包转发至不同的端口离开可编程网络硬件设备。/n

【技术特征摘要】
1.一种基于可编程网络硬件设备实现面向可靠组播的数据包过滤方法,其特征在于包括一个发送端和两个接收端,发送端和两个接收端通过可编程网络硬件设备连接,SDN控制器通过南向接口与可编程网络硬件设备相连,用于对其下发数据包处理策略,两个接收端与SDN控制器连接,用于向其发送过滤信息,具体方法如下:
(1)接收端向SDN控制器发送过滤信息;
(2)SDN控制器收到接收端的过滤信息后,通过其南向接口,向底层可编程网络硬件设备下发数据包处理策略;
(3)发送端在发送数据包时,根据上层应用策略,对不同的数据包添加不同的标签,并将具有标签的数据包发送到已配置完的可编程网络硬件设备;
(4)可编程网络硬件设备根据下发的数据包处理策略,对收到的数据包进行处理:第一步,在过滤前对每一个数据包写入过滤前序列号;第二步,根据数据包标签匹配不同的匹配项;第三步,通过匹配不同的匹配项向数据包写入不同的过滤后序列号;第四步,通过匹配不同的匹配项将数据包转发至不同的端口离开可编程网络硬件设备。


2.如权利要求1所述的一种基于可编程网络硬件设备实现面向可靠组播的数据包过滤方法,其特征在于所述接收端在收到数据包后进行数据包丢失的判断的步骤包括:
(1)当收到前后连续两个数据包i和j时,获取其原始序列号OS、过滤前序列号PFS、过滤后序列号AFS,即(OSi,PFSi,AFSi)和(OSj,...

【专利技术属性】
技术研发人员:王昕朱宁朱立孙增
申请(专利权)人:上交所技术有限责任公司
类型:发明
国别省市:上海;31

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

1