首页> 中国专利> 一种支持协议无关数据包处理的实验平台及实验方法

一种支持协议无关数据包处理的实验平台及实验方法

摘要

本发明实施例提供了一种支持协议无关数据包处理的实验平台及实验方法,其中,该实验平台包括:控制模块、编译模块、发送模块、交换机组、接收模块、数据处理模块和GUI模块,通过本发明实施例提供的一种支持协议无关数据包处理的实验平台及实验方法,当用户需要进行仿真实验时,可以将预先编写的配置指令信息和交换机处理逻辑信息输入该实验平台,便可以方便的进行仿真实验,免除了重复、繁琐的配置实验环境的过程,可以满足对P4语言编写的处理逻辑进行仿真的需要,进一步的,该实验平台还可以用于对支持协议无关数据包处理的交换机的性能实验。

著录项

  • 公开/公告号CN107749802A

    专利类型发明专利

  • 公开/公告日2018-03-02

    原文格式PDF

  • 申请/专利权人 北京邮电大学;

    申请/专利号CN201710947804.6

  • 申请日2017-10-12

  • 分类号H04L12/24(20060101);H04L12/26(20060101);G06F8/41(20180101);G06F8/30(20180101);

  • 代理机构11413 北京柏杉松知识产权代理事务所(普通合伙);

  • 代理人项京;马敬

  • 地址 100876 北京市海淀区西土城路10号

  • 入库时间 2023-06-19 04:40:01

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-03

    授权

    授权

  • 2018-03-27

    实质审查的生效 IPC(主分类):H04L12/24 申请日:20171012

    实质审查的生效

  • 2018-03-02

    公开

    公开

说明书

技术领域

本发明涉及软件定义网络技术领域,特别是涉及一种支持协议无关数据包处理的实验平台及实验方法。

背景技术

随着云计算、虚拟化、大数据等新兴业务的出现以及网络规模的不断扩大,人们对网络中支持的协议类型和设备种类的要求越来越多。而现有的基于OpenFlow协议的SDN(Software Defined Network,软件定义网络)架构中,转发设备中的协议是在生产时,由生产商固化在转发设备中的,造成转发设备中的协议难以更改。

为了解决这一问题,人们提出了数据平面可编程技术,这项技术的代表有P4(Programming Protocol-independent Packet Processors,协议独立数据包处理编程)语言和POF(Protocol Oblivious Forwarding,协议无感知转发)技术。

其中,P4语言不仅可以指导数据包的转发,还可以对转发设备的处理逻辑进行编程定义,从而使得转发设备的底层更加白盒化,可以实现转发设备与协议无关的转发,使得转发设备的应用范围更广。另外,P4语言作为一门编程语言,支持设备无关特性,使得P4语言可以应用在不同生产商生产的转发设备上,更加扩大了P4语言的适用范围,因此,自P4语言诞生以来,得到了业界的广泛关注和认可。

然而,由于P4语言还处于发展初期,为了使P4语言的学习者更直观、清晰的了解P4语言,在学习过程中,需要对使用P4语言编写的处理逻辑进行仿真,但是,现有技术中并没有对P4语言编写的处理逻辑进行仿真的实验环境。

发明内容

本发明实施例的目的在于提供一种支持协议无关数据包处理的实验平台及实验方法,以满足对P4语言编写的处理逻辑进行仿真的需要。具体技术方案如下:

第一方面,本发明实施例提供了一种支持协议无关数据包处理的实验平台,该实验平台包括:控制模块、编译模块、发送模块、交换机组、接收模块、数据处理模块和GUI(Graphical User Interface,图形用户界面)模块;

控制模块,用于接收用户输入的配置指令信息和交换机处理逻辑信息,并分别发送配置指令信息至交换机组、交换机处理逻辑信息至编译模块,其中,配置指令信息包括:匹配-执行表操作信息和网络拓扑信息,交换机处理逻辑信息包括:数据包在实验平台中的转发信息;

编译模块,用于对交换机处理逻辑信息进行编译,并将编译后的交换机处理逻辑信息发送至交换机组;

发送模块,用于生成与交换机处理逻辑信息对应的测试数据包,并将测试数据包发送至交换机组;

交换机组,用于根据网络拓扑信息生成交换机网络拓扑,根据编译后的交换机处理逻辑信息和匹配-执行表操作信息,在交换机网络拓扑中对测试数据包进行转发;

接收模块,用于接收经交换机网络拓扑转发的测试数据包,对经交换机网络拓扑转发的测试数据包进行解析,并将经交换机网络拓扑转发的测试数据包的解析结果转发至数据处理模块;

数据处理模块,用于对经交换机网络拓扑转发的测试数据包的解析结果进行数据处理,得到处理后的数据信息;

GUI模块,用于对处理后的数据信息进行展示。

可选的,GUI模块,还用于接收用户输入的配置指令信息和交换机处理逻辑信息并转发至控制模块;

相应的,控制模块,具体用于接收GUI模块转发的,用户输入的配置指令信息和交换机处理逻辑信息。

可选的,发送模块,具体用于通过Iperf生成固定速率的测试数据包。

可选的,控制模块,还用于接收用户输入的路由信息,并将路由信息发送至发送模块;

相应的,发送模块,具体用于接收路由信息,并生成携带有INT(In-Band NetworkTelemetry,带内网络遥测)探针和路由信息的测试数据包;

相应的,交换机组,具体用于根据网络拓扑信息生成交换机网络拓扑,根据编译后的交换机处理逻辑信息和匹配-执行表操作信息,在交换机网络拓扑中,对携带有INT探针和路由信息的测试数据包进行转发。

可选的,本发明实施例的一种支持协议无关数据包处理的实验平台,还包括:数据库,用于存储经交换机网络拓扑转发的测试数据包的解析结果、配置指令信息和交换机处理逻辑信息。

可选的,控制模块,还用于获取发送模块的第一启闭信息,获取接收模块的第二启闭信息,并将第一启闭信息和第二启闭信息发送至数据库;

相应的,数据库,用于存储第一启闭信息和第二启闭信息。

可选的,GUI模块,还用于根据控制模块发送的查看指令,获取数据库中存储的配置指令信息、交换机处理逻辑信息、第一启闭信息和第二启闭信息,并展示。

可选的,GUI模块,还用于对数据库中存储的配置指令信息、交换机处理逻辑信息、第一启闭信息和第二启闭信息进行图表处理,并以图表形式展示。

可选的,本发明实施例的一种支持协议无关数据包处理的实验平台,还包括:负载均衡模块,用于根据用户发送的负载均衡策略,对交换机网络拓扑进行负载均衡。

第二方面,本发明实施例还提供了一种支持协议无关数据包处理的实验方法,该方法包括:

接收用户输入的配置指令信息和交换机处理逻辑信息,其中,配置指令信息包括:匹配-执行表操作信息和网络拓扑信息,交换机处理逻辑信息包括:数据包在实验平台中的转发信息;

对交换机处理逻辑信息进行编译,得到编译后的交换机处理逻辑信息;

生成与交换机处理逻辑信息对应的测试数据包;

根据网络拓扑信息生成交换机网络拓扑,根据编译后的交换机处理逻辑信息和匹配-执行表操作信息,在交换机网络拓扑中对测试数据包进行转发;

接收经交换机网络拓扑转发的测试数据包,对经转发交换机网络拓扑转发的测试数据包进行解析,得到经交换机网络拓扑转发的测试数据包的解析结果;

对经交换机网络拓扑转发的测试数据包的解析结果进行数据处理,得到处理后的数据信息,并展示数据信息。

第三方面,本发明实施例还提供了一种电子设备,该电子设备可以包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存储计算机程序;

处理器,用于在执行存储器上所存储的程序时,实现第二方面提供的一种支持协议无关数据包处理的实验方法步骤。

第四方面,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,实现第二方面提供的一种支持协议无关数据包处理的实验方法步骤。

本发明实施例提供的一种支持协议无关数据包处理的实验平台及实验方法,当用户需要进行仿真实验时,可以将预先编写的配置指令信息和交换机处理逻辑信息输入该实验平台,便可以方便的进行仿真实验,免除了重复、繁琐的配置实验环境的过程,可以满足对P4语言编写的处理逻辑进行仿真的需要,进一步的,该实验平台还可以用于对支持协议无关数据包处理的交换机的性能实验。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的一种支持协议无关数据包处理的实验平台的第一种实施方式的结构示意图;

图2为本发明实施例的一种支持协议无关数据包处理的实验平台的第二种实施方式的结构示意图;

图3为本发明实施例的一种支持协议无关数据包处理的实验方法的流程图;

图4为本发明实施例的一种支持协议无关数据包处理的实验方法应用于电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了解决现有技术存在的问题,本发明实施例提供了一种支持协议无关数据包处理的实验平台和实验方法,以满足对P4语言编写的处理逻辑进行仿真的需要。

下面,对本发明实施例的一种支持协议无关数据包处理的实验平台进行介绍,如图1所示,为本发明实施例的一种支持协议无关数据包处理的实验平台的第一种实施方法的结构示意图;该实验平台可以包括:控制模块100、编译模块110、发送模块120、交换机组130、接收模块140、数据处理模块150和图形用户界面GUI模块160。

控制模块100,用于接收用户输入的配置指令信息和交换机处理逻辑信息,并分别发送配置指令信息至交换机组130、交换机处理逻辑信息至编译模110。

其中,配置指令信息包括:匹配-执行表操作信息和网络拓扑信息,交换机处理逻辑信息包括:数据包在实验平台中的转发信息。

具体的,控制模块100可以通过北向应用程序接口接收用户输入的配置指令信息和交换机处理逻辑信息,该北向应用程序接口可以使用Rest API(RepresentationalState Transfer Application Programming Interface,表述性状态转移应用程序接口)实现,这样,控制模块100可以获取到用户远程发送的配置指令信息和交换机处理逻辑信息。

具体的,匹配-执行表操作信息可以包括:匹配-执行表默认执行行为设置信息、匹配-执行表中任一表项的添加信息、匹配-执行表中任一表项的删除信息、匹配-执行表中所有表项的清除信息等,网络拓扑信息可以包括:主机添加信息、主机删除信息、交换机添加信息、交换机删除信息、主机与交换机连接添加信息、主机与交换机连接删除信息、交换机之间连接添加信息、交换机之间连接删除信息等。

在一些示例中,本发明实施例还提供了控制模块100获取用户输入的配置指令信息和交换机处理逻辑信息的程序代码。例如:

POST/table/action/default{all|switch id(s)}&{table name}&{actionparameters},设置网络中某台交换机中的匹配-执行表的默认执行行为;

POST/table/action/add{all|switch id(s)}&{table name}&{action name}&{match fields:action parameters}&{none|priority},添加网络中某台交换机的匹配-执行表表项;

POST/table/action/delete{all|switch id(s)}&{entry handle},删除网络中某台交换机的匹配-执行表表项;

DELETE/table/clear{all|switch id(s)}/{table name},清除网络中某台交换机中的匹配-执行表的所有表项;

POST/table/load/file{all|switch id(s)}&{file},为网络中的某台交换机载入新的配置文件。

在一些示例中,控制模块100还可以包括南向接口,控制模块100可以通过该南向接口与交换机组中的每一台交换机进行数据交换。该南向接口可以是基于TCP(Transmission Control Protocol传输控制协议)协议的异步Thrift接口,也可以是采用与交换机组中每一台交换机对应的自定义协议的接口,其中,thrift是一个软件框架,用来进行可扩展且跨语言的应用程序的开发,该自定义协议为交换机生产厂商自定义通信协议。通过该南向接口,控制模块100还可以根据匹配-执行表操作信息对交换机组中130的任一交换机进行配置。

假设,交换机组130中包括第一交换机131、第二交换机132、第三交换机133和第四交换机134。控制模块100可以通过该南向接口,根据匹配-执行表操作信息对交换机组130中的第一交换机131、第二交换机132、第三交换机133和第四交换机134进行配置,例如,控制模块100可以通过该南向接口,根据匹配-执行表默认执行行为设置信息,设置第一交换机131的默认执行行为,其中,该默认执行行为可以为用户预先设置的默认执行行为;根据匹配-执行表中任一表项的添加信息,为第二交换机132添加一个匹配-执行表表项,根据匹配-执行表中任一表项的删除信息,删除第三交换机133的匹配执行表中的一个表项;根据匹配-执行表中所有表项的清除信息,清除第四交换机134的所有匹配-执行表表项。

在一些示例中,控制模块130在根据根据匹配-执行表操作信息对交换机组中130的任一交换机进行配置时,本发明实施还提供了进行配置的代码,例如:

table_set_default<table name><action name><action parameters>,设置匹配-执行表的默认执行行为;

table_add<table name><action name><match fields>=><action parameters>[priority],添加匹配-执行表的表项;

table_delete<table name><entry handle>,删除匹配-执行表的表项;

table_clear<table name>,清除匹配-执行表中的所有表项;

load_new_config_file<file path>,载入一个新的配置文件。

在一些示例中,控制模块100还可以包括网络拓扑生成接口,该网络拓扑生成接口用于控制模块100发送网络拓扑信息至交换机组130。控制模块100可以通过该网络拓扑生成接口发送网络拓扑信息至交换机组130。例如,控制模块100可以通过网络拓扑生成接口发送交换机添加信息至交换机组130中,添加第一交换机131、第二交换机132、第三交换机133和第四交换机134,还可以发送交换机之间连接添加信息至交换机130中,添加第一交换机131与第二交换机132之间的连接,添加第一交换机131与第三交换机133之间的连接,添加第二交换机132与第四交换机134之间的连接,添加第三交换机133与第四交换机134之间的连接。

为了更清楚的说明本发明实施例中的网络拓扑信息,本发明实施例还提供了一段网络拓扑信息的示例代码,如下:

class MyTopo(Topo):

def__init__(self):

Topo.__init__(self)

#添加交换机

switch1=self.addSwitch('s1')

switch2=self.addSwitch('s2')

switch3=self.addSwitch('s3')

switch4=self.addSwitch('s4')

#添加连接

self.addLink(switch1,switch2)

self.addLink(switch1,switch3)

self.addLink(switch2,switch4)

self.addLink(switch3,switch4)

上述的一段示例代码,首先定义了一个名称为MyTopo(Topo)的网络拓扑信息类的代码,这个网络拓扑信息类使用了Python代码,然后分别添加了四个交换机,最后,为该四个交换机分别添加链接。

具体的,本发明实施例还提供了添加发送模块120和接收模块140的示例代码,如下:

leftHost=self.addHost('h1')

rightHost=self.addHost('h2')

其中,h1可以是本发明实施例一种支持协议无关数据包处理的实验平台中的发送模块120,h2可以是本发明实施例一种支持协议无关数据包处理的实验平台中的接收模块140。

在一些示例中,发送模块120可以包括数据包生成子模块,接收模块140也可以包括数据包接收子模块,因此,可以分别为发送模块120添加一个数据包生成子模块,为接收模块140添加一个数据包接收子模块,下面为添加数据包生成子模块和添加数据包接收子模块的代码示例:

self.addGenerator(‘leftHost’)#添加数据包生成子模块

self.addReceiver(‘rightHost’)#添加数据包接收子模块

假设,该四个交换机中的“s1”为第一交换机131,“s2”为第二交换机132,“s3”为第三交换机133,“s4”为第四交换机134。上述的一段示例代码可以表示为:在交换机组130中添加第一交换机131、第二交换机132、第三交换机133和第四交换机134。然后为第一交换机131与第二交换机132添加连接,为第一交换机131与第三交换机133添加连接,为第二交换机132与第四交换机134添加连接,为第三交换机133与第四交换机134添加连接。

在一些示例中,上述的交换机处理逻辑信息可以是采用P4语言编写的逻辑信息,该交换机处理逻辑信息可以包括交换机转发数据包时采用的协议类型和交换机转发数据包时,读取数据包的方式,例如,读取数据包的包头。还可以包括交换机转发数据包时的转发路径等。

编译模块110,用于对交换机处理逻辑信息进行编译,并将编译后的交换机处理逻辑信息发送至交换机组130。

在一些示例中,当控制模块100发送交换机处理逻辑信息给编译模块110后,该编译模块110可以对该交换机处理逻辑信息进行编译,以使得该交换机处理逻辑信息可以被交换机组130识别。例如,该编译模块110可以将采用P4语言编写的交换机处理逻辑信息编译为JSON(JavaScript Object Notation,JS对象标记)语言的处理逻辑信息。在经过编译后,编译模块110可以将该编译后的交换机处理逻辑信息发送至交换机组130,以使得交换机组130中的各交换机能够识别该交换机处理逻辑信息,并且在后续步骤中,能够按照该交换机处理逻辑信息对数据包进行转发。

发送模块120,用于生成与交换机处理逻辑信息对应的测试数据包,并将测试数据包发送至交换机组130。

其中,该测试数据包用于在本发明实施例的一种支持协议无关数据包处理的实验平台进行测试,可以为携带任何合法内容的数据包。

在一些示例中,本发明实施例的一种支持协议无关数据包处理的实验平台可以用于链路层实验和/或网络层实验,在进行链路层实验时,上述的测试数据包可以是数据帧;在进行网络层实验时,上述的测试数据包可以是报文。

在一些示例中,发送模块120在生成测试数据包时,为了使交换机组130中的各交换机能够识别该测试数据包,可以生成与交换机处理逻辑信息对应的测试数据包。具体的,可以生成与交换机处理逻辑信息中的交换机协议类型对应的测试数据包。

在一些示例中,发送模块120可以在交换机组130生成交换机网络拓扑,并且各交换机网络拓扑配置完成后,生成测试数据包,然后发送给测试数据包给交换机组130。

具体的,当交换机130生成交换机网络拓扑,并且各交换机网络拓扑配置完成后,交换机组130可以反馈一个交换机组准备就绪的反馈信息给控制模块100,控制模块100在接收到该反馈信息后,可以发送一个生成测试数据包的数据包生成指令给发送模块120,发送模块120在接收到该数据包生成指令后可以生成测试数据包。

在一些示例中,测试数据包的类型可以由用户预先确定,具体的,发送模块120在生成测试数据包时,可以根据用户发送的测试数据包类型生成指令,生成不同类型的测试数据包,例如,在用户测试数据包在交换机组130中的网络延迟时,发送模块120生成的测试数据包可以记录进入交换机的时间和出交换机的时间。

交换机组130,用于根据网络拓扑信息生成交换机网络拓扑,根据编译后的交换机处理逻辑信息和匹配-执行表操作信息,在交换机网络拓扑中对测试数据包进行转发。

其中,该交换机组130中的各交换机可以为支持协议无关数据包处理的交换机。该交换机组130中的各交换机可以是采用虚拟技术实现的虚拟交换机,也可以是物理交换机。

在一些示例中,交换机组130可以首先根据控制模块100发送的网络拓扑信息生成交换机网络拓扑,根据匹配-执行表操作信息配置交换机网络拓扑中交换机的匹配-执行表表项,再根据编译后的交换机处理逻辑信息和匹配-执行表表项,在交换机网络拓扑中对发送模块120发送的测试数据包进行转发。

具体的,网络拓扑中的交换机可以首先提取测试数据包的首部区域,然后将该首部区域传递到匹配-执行表,其中,该匹配-执行表包括入口表和出口表两部分,该匹配-执行表的入口表可以根据该首部区域的值,确定该测试数据包在交换机中的出口,该匹配-执行表的出口表,可以根据该首部区域的值,对该数据包执行相应的动作,例如:转发、复制、丢弃或触发流量控制等动作。这里,匹配-执行表的出口表可以执行转发动作、也可以更改数据包的信息。

在一些示例中,当该交换机组130中的各交换机为物理交换机时,控制模块100可以直接将上述的配置指令信息和交换机逻辑处理信息发送给该交换机组130中对应的各物理交换机。

当该交换机组130中的各交换机为虚拟交换机时,控制模块100可以将上述的配置指令信息和交换机逻辑处理信息发送给该交换机组130,该交换机组130然后将上述的配置指令信息和交换机逻辑处理信息发送给对应的各虚拟交换机。

在一些示例中,当该交换机组130中的各交换机为虚拟交换机时,该交换机组130还可以包括管理模块,用于对该交换机组130中的各虚拟交换机进行管理,以及发送上述的配置指令信息和交换机逻辑处理信息,给对应的各虚拟交换机。

在一些示例中,交换机网络拓扑中的各交换机在转发测试数据包时,可以将各交换机的标识信息添加至该测试数据包,还可以将接收到测试数据包的时间和发送该测试数据包的时间添加至该测试数据包中,从而使得测试数据包能够记录进入交换机的时间和出交换机的时间。

接收模块140,用于接收经交换机网络拓扑转发的测试数据包,对经交换机网络拓扑转发的测试数据包进行解析,并将经交换机网络拓扑转发的测试数据包的解析结果转发至数据处理模块150。

具体的,测试数据包在经过交换机网络拓扑中的各交换机转发之后,可以将测试数据包转发至接收模块140,其中,数据包的转发路径可以由用户预先设置。用户也可以仅设置测试数据包的目的地址为接收模块140,对数据包在交换机网络拓扑中的转发路径不进行设置。

接收模块140在接收到经过交换机网络拓扑转发的测试数据包后,可以对该经过交换机网络拓扑转发的测试数据包进行解析,得到经过交换机网络拓扑转发的测试数据包的解析结果,然后将该解析结果发送至数据处理模块150。

在一些示例中,在对测试数据包进行解析时,可以通过提取测试数据包中的二进制流的数据,然后将该二进制流的数据转换为二进制数组形式的数据,再将二进制数组形式的数据转化为字符串形式的数据。从而实现对测试数据包的解析。

在一些示例中,接收模块140在进行解析时,可以按照用户的要求进行解析,例如,用户需要查看测试数据包在交换机网络拓扑中的延迟时间,则接收模块140可以在进行解析时,仅提取测试数据包记录的进入交换机的时间和出交换机的时间。

数据处理模块150,用于对经交换机网络拓扑转发的测试数据包的解析结果进行数据处理,得到处理后的数据信息。

在通过接收模块140对经过交换机网络拓扑转发的测试数据包进行解析后,为了使用户能够直观的查看该解析结果,这里,可以通过该数据处理模块150对经过交换机网络拓扑转发的测试数据包的解析结果进行处理,例如,将上述的二进制数组形式的数据转化为十进制数字的形式,也可以统计测试数据包在交换机网络拓扑中转发时的平均时延、数据包在各交换机中的平均队列深度,以及超过预设数据包接收阈值的数据包的数量。

具体的,在本发明实施例的一种可能的实现方式中,该数据处理模块150还可以接收用户发送的数据处理指令,并根据该数据处理指令,对经过交换机网络拓扑转发的测试数据包的解析结果,进行相应的数据处理。

在一些示例中,该数据处理指令可以包括:对解析结果取整、去掉解析结果中任一解析结果或对解析结果进行分类等。

GUI模块160,用于对处理后的数据信息进行展示。

数据处理模块150在将解析结果进行处理后,可以得到处理后的数据信息,然后可以将该处理后的数据信息发送给GUI模块160。GUI模块160在接收到该处理后的数据信息后,可以将给处理后的数据信息展示给用户。

在本发明实施例的一种可能的实现方式中,该GUI模块160可以通过应用程序接口将该处理后的数据信息发送给用户的终端设备,在该终端设备上将处理后的数据信息展示给用户,用户可以通过该终端设备远程查看该处理后的数据信息。其中,该终端设备可以是个人计算机、工作站计算机等。

本发明实施例提供的一种支持协议无关数据包处理的实验平台,当用户需要进行仿真实验时,可以将预先编写的配置指令信息和交换机处理逻辑信息输入该实验平台,便可以方便的进行仿真实验,免除了重复、繁琐的配置实验环境的过程,可以满足对P4语言编写的处理逻辑进行仿真的需要,进一步的,该实验平台还可以用于对支持协议无关数据包处理的交换机的性能实验。

具体的,当该实验平台用户对支持协议无关数据包处理的交换机的性能实验时,上述的交换机处理逻辑信息和配置指令信息可以是预先设置的测试应用程序,上述的交换机组130中的各交换机可以是待测试交换机。

在本发明实施例的一种可能的实现方式中,本发明实施例的一种支持协议无关数据包处理的实验平台中的GUI模块160,可以通过终端设备与用户进行交互,因此,该GUI模块160可以接收用户输入的配置指令信息和交换机处理逻辑信息。在接收到用户输入的配置指令信息和交换机处理逻辑信息后,可以将该配置指令信息和交换机处理逻辑信息转发给控制模块100。

具体的,用户可以在终端设备上输入配置指令信息和交换机处理逻辑信息,然后通过应用程序接口发送给GUI模块160。该GUI模块160可以通过应用程序接口,远程接收用户输入的配置指令信息和交换机处理逻辑信息。

相对应的,控制模块100在接收用户输入的配置指令信息和交换机处理逻辑信息时,可以接收GUI模块转发的,用户输入的配置指令信息和交换机处理逻辑信息。

通过本发明实施例的一种支持协议无关数据包处理的实验平台,用户可以方便的在不同的终端设备上远程进行仿真实验,提高了用户使用该实验平台进行仿真实验的体验。

在本发明实施例的一种可能的实现方式中,当用户需要对本发明实施例的一种支持协议无关数据包处理的实验平台的网络性能进行测试时,上述的发送模块120可以通过Iperf生成固定速率的测试数据包。

其中,Iperf是一个网络性能测试工具,可以测试最大TCP和UDP带宽性能,还可以报告带宽、延迟抖动和数据包丢失等,该固定速率可以由用户预先设置。

通过上述的发送模块120,生成的各测试数据包的速率可以是固定的,并且可以是相等的。

当发送模块120生成固定速率的测试数据包后,经过交换机组130的交换机网络拓扑中各交换机的转发后,测试数据包的速率可能会发生变化,因此,接收模块140可以在接收到交换机网络拓扑转发的固定速率的测试数据包后,获取该测试数据包经过交换机网络拓扑转发后的速率,从而可以对实验平台的网络性能进行分析。因此,可以实现对上述实验平台的网络性能进行测试。

在本发明实施例的一种可能的实现方式中,控制模块100,还用于接收用户输入的路由信息,并将路由信息发送至发送模块。

其中,该路由信息可以由用户预先设置。该路由信息可以是测试数据包在交换机网络拓扑中的转发路径信息。

在一些示例中,发送模块在接收到该路由信息后,可以在生成测试数据包时,将上述的路由信息添加至测试数据包的首部区域中。

具体的,用户可以输入路由信息至控制模块100,控制模块100在接收到该路由信息后,可以将该路由信息转发至发送模块120。

在本发明实施例的另一种可能的实现方式中,测试数据包被交换机网络拓扑中各交换机转发时,为了记录各交换机的标识信息、测试数据包进入交换机的端口信息、测试数据包出交换机的端口信息等。本发明实施例的发送模块120,在接收到该路由信息后,生成测试数据包时,可以生成携带有INT探针和路由信息的测试数据包。

具体的,发送模块120在生成携带有INT探针和路由信息的测试数据包时,可以通过源路由技术与INT技术相互结合,将INT探针和路由信息添加至测试数据包的首部区域。

为了更清楚的说明发送模块120生成的携带有INT探针和路由信息的测试数据包的首部区域包含的内容,本发明实施例示例性的对首部区域包含的字段以及每个字段占用的比特数进行了说明,如表1所示,测试数据包首部区域内容示意表,在该表中,可以包括字段名称、每个字段占用的比特数,还包括每个字段的作用描述。

表1测试数据包首部区域内容示意表

字段名称占用比特作用描述SRVer4源路由版本Routes512源路由信息表Point8当前所在的比特IsInt1是否为INT探针SwitchId6添加数据至测试数据包的交换机标识信息Ingress_port9测试数据包进入交换机时的端口Egress_port9测试数据包走出交换机时的端口Ingress_global_timestamp48测试数据包进入交换机时的时间Enq_timestamp48测试数据包进入入口队列时的时间Enq_qdepth16测试数据包进入入口队列时的队列深度Deq_timedelta32测试数据包进入出口队列时的时延长度Deq_qdepth16测试数据包进入出口队列时的队列深度

具体的,源路由版本表示发送模块120采用的源路由技术的版本号,源路由信息表中为发送模块120接收的路由信息。字段“isInt”在该测试数据包中可以为标识符,用于标识该测试数据包是否为携带有INT探针和路由信息的测试数据包,交换机网络拓扑中的各交换机在接收到测试数据包后,可以根据该字段“isInt”判断测试数据包是否携带有INT探针和路由信息。

应当理解的是,每个交换机可以设置有入口队列和出口队列,入口队列可以用于接收测试数据包,出口队列可以用于转发测试数据包给其他交换机。因此,在表1中,可以通过不同的字段使测试数据包记录进入交换机入口队列的时间,进入出口队列时的时延长度、进入入口队列时的队列深度。其中,该队列深度可以表示入口队列中数据包的多少,队列深度越大,则可以表示该入口队列中的测试数据包越多。

相对应的,交换机组130,具体用于根据网络拓扑信息生成交换机网络拓扑,根据编译后的交换机处理逻辑信息和匹配-执行表操作信息,在交换机网络拓扑中,对携带有INT探针和路由信息的测试数据包进行转发。

具体的,交换机130的交换机网络拓扑中的各交换机在转发携带有INT探针和路由信息的测试数据包时,可以按照该测试数据包中的路由信息对测试数据包进行转发,还可以根据表1所示的各字段,将与各字段对应的信息添加至测试数据包中。

假设,路由信息表示的转发路径为第一交换机131、第二交换机132和第四交换机134。则携带有INT探针和路由信息的测试数据包可以被第一交换机131转发至第二交换机132,第二交换机接收到该测试数据包后,转发至第四交换机134,最后,第四交换机134将该数据包发送至接收模块140。

具体的,上述的测试数据包在被第一交换机131转发时,第一交换机可以按照表1所示的各字段,将与每个字段对应的内容添加至上述的测试数据包中,然后将上述的测试数据包转发至第二交换机132,同样,第二交换机132也可以按照表1所示的各字段,将与每个字段对应的内容添加至上述的测试数据包中,再转发至第四交换机134。第四交换机134按照表1所示的各字段,将与每个字段对应的内容添加至上述的测试数据包后,发送给接收模块140。

通过生成携带有INT探针和路由信息的测试数据包,可以使该测试数据包记录各交换机的标识信息、测试数据包进入交换机的端口信息、测试数据包出交换机的端口信息等,在通过数据处理模块150处理后,可以展示给用户更详细、更全面的数据信息。

用户在使用上述的一种支持协议无关数据包处理的实验平台进行仿真实验后,可能在一段时间后,还希望查看该仿真实验的数据,为此,本发明实施例还提供了一种可能的实现方式,如图2所示,为本发明实施例的一种支持协议无关数据包处理的实验平台的第二种实施方式的结构示意图,该实验平台还可以包括:数据库170,可以用于存储经交换机网络拓扑转发的测试数据包的解析结果、配置指令信息和交换机处理逻辑信息。

其中,该数据库170可以支持不同类型的数据存储,例如,可以支持二进制数组形式的数据存储,或者支持字符串形式的数据存储等。

具体的,接收模块140在接收到经交换机网络拓扑转发的测试数据包,并对经交换机网络拓扑转发的测试数据包进行解析后,可以将经交换机网络拓扑转发的测试数据包的解析结果以二进制数组的形式存储在该数据库170中,还可以以字符串形式存储在该数据库170中。

在一些示例中,数据库170可以以不同的数据表存储经交换机网络拓扑转发的测试数据包的解析结果、配置指令信息和交换机处理逻辑信息。例如,以网络拓扑数据表存储网络拓扑信息,以数据包解析表存储测试数据包经过解析后的解析结果,以用户操作状态表存储匹配-执行表操作信息和交换机处理逻辑信息等。

例如,如表2所示,为网络拓扑数据表,在该表中,可以包括自增主键的字段,该字段用来增加网络拓扑数据表存储的内容。还可以包括交换机编号对应的字段、交换机名称对应的字段、交换机类型对应的字段、交换机连接关系对应的字段,以及每个字段对应的字段类型等。

表2网络拓扑数据表

字段名称字段类型字段解释IdPRIMARY KEY自增主键Node_idNUMERIC交换机编号Node_nameTEXT交换机名称Node_typeTEXT交换机类型Node_linkJSON交换机连接关系

如表3所示,为数据包解析表,这里以携带有INT探针和路由信息的测试数据包为例进行说明。在表3中,也可以包括字段名称、各字段对应字段类型,还可以包括各字段对应的字段解释。该字段解释用于解释各字段的用途。例如,字段“Timestamp”可以用于记录数据包解析表记录进行记录的时间。字段“Packet_id”可以用于记录测试数据包的标识号,字段“Ingress_port”可以用于记录测试数据包进入交换机的端口,字段“SwitchId”可以用于记录添加数据至测试数据包的交换机标识信息,其中,该交换机标识信息可以包括交换机的MAC地址,交换机在交换机组130中的编码等。

表3数据包解析表

字段名称字段类型字段解释idPrimary Key数据表的自增主键TimestampText记录时间戳Packet_idText测试数据包的标识号PortNumeric测试数据包的接收端口SwitchIdText添加数据至测试数据包的交换机标识信息Ingress_portText测试数据包进入交换机的端口Egress_portText测试数据包走出交换机时的端口Ingress_global_timestampText测试数据包进入交换机时的时间戳Enq_timestampText测试数据包进入入口队列时的时间戳Enq_qdepthText测试数据包进入入口队列时的队列深度Deq_timedeltaText测试数据包在出口队列的时延长度Deq_qdepthText测试数据包进入出口队列时的队列深度

如表4所示,为用户操作状态表,在表4中,也可以包括字段名称、各字段对应字段类型,还可以包括各字段对应的字段解释。例如,字段“Flag”可以用于记录用户操作的交换机/主机的标识信息,具体的,当用户发送的匹配-执行表是为一个交换机设置默认执行行为时,字段“Flag”可以对该交换机的标识信息进行记录。字段“Type”可以记录用户的操作类型,例如,该操作类型可以包括:添加、删除、修改等,字段“Content”可以记录与该操作类型对应的操作内容,例如,添加的内容、删除的内容或者修改的内容等,字段“Times tamp”可以记录与操作类型对应的操作时间,例如,为第一交换机131添加匹配-执行表表项的时间,删除第二交换机131匹配-执行表中任一表项的时间,或者修改第三交换机133匹配-执行表中任一表项的时间等。

该表4还可以记录用户发送交换机处理逻辑信息的时间,例如,当控制模块100接收到用户发送的交换机处理逻辑信息后,可以将接收到交换机处理逻辑信息的时间记录在与表4中字段“Timestamp”对应的表格中,这里,字段“Type”可以记录用户的操作类型为“下发”。字段“Content”可以记录该交换机处理逻辑信息。

表4用户操作状态表

字段名称字段类型字段解释IdPrimary Key数据表的自增主键FlagText交换机/主机的标识信息TypeText用户操作类型ContentJSON用户操作内容Times tampTEXT操作的时间戳

在本发明实施例的一种可能的实现方式中,上述的控制模块100还可以用于获取发送模块120的第一启闭信息,获取接收模块140的第二启闭信息,并将第一启闭信息和第二启闭信息发送至数据库170。

具体的,当发送模块120在生成测试数据包时,需要首先开启,才可以生成测试数据包,因此,当发送模块120开启后,控制模块100可以获取发送模块120的开启信息,例如,当发送模块120开启后,发送模块120的状态值可以由“0”变为“1”,控制模块100可以获取该变为“1”的状态值,还可以获取发送模块120开启的时间。

当发送模块120关闭后,状态值可以由“1”变为“0”的状态值,因此,控制模块可以获取该变为“0”的状态值,还可以获取发送模块120关闭的时间。

在一些示例中,当测试数据包经过交换机网络拓扑转发至接收模块140时,可以开启接收模块140,以接收经过交换机网络拓扑转发的测试数据包。因此,控制模块100可以获取接收模块140变为“1”的状态值和开启时间。当交换机网络拓扑中没有数据包时,可以关闭该接收模块140,因此,控制模块100获取接收模块140变为“0”的状态值和关闭时间。

当控制模块100获取到第一启闭信息和第二启闭信息后,可以发送至数据库170。相应的,数据库170,可以用于存储第一启闭信息和第二启闭信息。

本发明实施例的一种支持协议无关数据包处理的实验平台,还提供了一种可能的实现方式,用户可以发送查看指令对实验仿真过程进行查看。

具体的,用户可以通过北向应用程序接口发送查看指令至控制模块100,控制模块100在接收到用户发送的查看指令后,可以将该查看指令发送至GUI模块160,相应的,GUI模块160,还可以用于根据控制模块100发送的查看指令,获取数据库170中存储的配置指令信息、交换机处理逻辑信息、第一启闭信息和第二启闭信息,并展示。

具体的,GUI模块160在接收到该查看指令后,可以从数据库170中获取配置指令信息、交换机处理逻辑信息、第一启闭信息和第二启闭信息,然后通过应用程序接口发送至终端设备,在终端设备上进行展示。

在一些示例中,本发明实施例还提供了该查看指令的一些示例代码,例如:

switch_info获取交换机的基本信息;

show_tables获取交换机中所有匹配-执行表的名称和匹配-执行表表项信息;

table_num_entries<table name>获取任一个匹配-执行表中的表项数目;

GET/status/topo获取交换机网络拓扑的信息;

GET/status/latency/{all|switch id}获取交换机网络拓扑中每台交换机的时延;

GET/status/sequence/{all|switch id}/{all|port id}获取交换机网络拓扑每台交换机入口队列和出口队列;

GET/status/switch/{all|switch id}获取交换机网络拓扑中任一台交换机的标识信息;

GET/table/info/{all|switch id}获取交换机网络拓扑中任一台交换机的匹配-执行表的基本信息;

GET/table/dump/{all|switch id}获取交换机网络拓扑中任一台交换机中的匹配-执行表表项;

GET/table/entries/num/{all|switch id}获取交换机网络拓扑中任一台交换机中的任一个匹配+执行表的表项数目。

通过本发明实施例提供的一种支持协议无关数据包处理的实验平台,可以为存储用户的实验仿真数据,用户可以在进行仿真实验后的任一时间,查看该仿真实验过程,避免实验仿真数据的丢失。

在本发明实施例的一种可能的实现方式中,为了更直观、更形象的展示用户进行仿真实验数据,还可以对仿真实验数据进行图表处理。具体的,在本发明实施例提供的一种支持协议无关数据包处理的实验平台中,可以由GUI模块160对仿真实验数据进行图表处理。

具体的,GUI模块160,还可以用于对数据库170中存储的配置指令信息、交换机处理逻辑信息、第一启闭信息和第二启闭信息进行图表处理,并以图表形式展示。

在一些示例中,GUI模块160中可以预先设置多种展示形式,用户可以选择任一种展示形式,GUI模块160在接收到用户选择的展示形式后,可以按照用户选择的展示形式,对数据库170中存储的配置指令信息、交换机处理逻辑信息、第一启闭信息和第二启闭信息进行图表处理,然后以用户选择的展示形式对处理后的数据信息进行展示。

例如,用户可以发送一个将配置指令信息、交换机处理逻辑信息、第一启闭信息和第二启闭信息处理为表的数据处理指令,则该GUI模块160在接收到该数据处理指令后,可以将配置指令信息、交换机处理逻辑信息、第一启闭信息和第二启闭信息转化为表的形式,通过应用程序接口发送至终端设备,在该终端设备上以表的形式展示给用户。

通过本发明实施例提供的一种支持协议无关数据包处理的实验平台,用户在进行仿真试验后,可以对处理后的数据信息提供多种展示方式,并且,可以按照用户的使用习惯,对处理后的数据信息进行展示,更符合用户的使用习惯。

本发明实施例的一种支持协议无关数据包处理的实验平台,还提供了一种负载均衡模块,该负载均衡模块可以用于根据用户发送的负载均衡策略,对交换机网络拓扑进行负载均衡。

例如,当用户通过GUI模块160查看时,发现测试数据包在第二交换机132的延迟较大,可以发送负载均衡策略至控制模块100,控制模块100在接收到该负载均衡策略后,可以发送至负载均衡模块,负载均衡模块可以根据该负载均衡策略,对后续的测试数据包的转发路径进行调整,调整为第三交换机133。其中,该负载均衡策略可以是:将发送模块120发送的测试数据包中,一定比例的测试数据包的转发路径改变为第三交换机133。

通过本发明实施例提供的一种支持协议无关数据包处理的实验平台,用户可以使用不同的负载均衡策略进行仿真实验,从而可以查看不同的负载均衡策略对仿真实验的影响。

相应于上述的装置实施例,本发明实施例还提供了一种支持协议无关数据包处理的实验方法,如图3所示,为本发明实施例的一种支持协议无关数据包处理的实验方法的流程图,该方法可以包括:

S301,接收用户输入的配置指令信息和交换机处理逻辑信息,其中,配置指令信息包括:匹配-执行表操作信息和网络拓扑信息,交换机处理逻辑信息包括:数据包在实验平台中的转发信息;

S302,对交换机处理逻辑信息进行编译,得到编译后的交换机处理逻辑信息;

S303,生成与交换机处理逻辑信息对应的测试数据包;

S304,根据网络拓扑信息生成交换机网络拓扑,根据编译后的交换机处理逻辑信息和匹配-执行表操作信息,在交换机网络拓扑中对测试数据包进行转发;

S305,接收经交换机网络拓扑转发的测试数据包,对经转发交换机网络拓扑转发的测试数据包进行解析,得到经交换机网络拓扑转发的测试数据包的解析结果;

S306,对经交换机网络拓扑转发的测试数据包的解析结果进行数据处理,得到处理后的数据信息,并展示数据信息。

通过本发明实施例提供的一种支持协议无关数据包处理的实验方法,当用户需要进行仿真实验时,可以将预先编写的配置指令信息和交换机处理逻辑信息输入该实验平台,便可以方便的进行仿真实验,免除了重复、繁琐的配置实验环境的过程,可以满足对P4语言编写的处理逻辑进行仿真的需要,进一步的,该实验方法还可以用于对支持协议无关数据包处理的交换机的性能实验。

本发明实施例还提供了一种电子设备,如图4所示,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信,

存储器403,用于存放计算机程序;

处理器401,用于执行存储器403上所存放的程序时,实现如下步骤:

接收用户输入的配置指令信息和交换机处理逻辑信息,其中,配置指令信息包括:匹配-执行表操作信息和网络拓扑信息,交换机处理逻辑信息包括:数据包在实验平台中的转发信息;

对交换机处理逻辑信息进行编译,得到编译后的交换机处理逻辑信息;

生成与交换机处理逻辑信息对应的测试数据包;

根据网络拓扑信息生成交换机网络拓扑,根据编译后的交换机处理逻辑信息和匹配-执行表操作信息,在交换机网络拓扑中对测试数据包进行转发;

接收经交换机网络拓扑转发的测试数据包,对经转发交换机网络拓扑转发的测试数据包进行解析,得到经交换机网络拓扑转发的测试数据包的解析结果;

对经交换机网络拓扑转发的测试数据包的解析结果进行数据处理,得到处理后的数据信息,并展示数据信息。

本发明实施例提供的一种支持协议无关数据包处理的电子设备,当用户需要进行仿真实验时,可以将预先编写的配置指令信息和交换机处理逻辑信息输入该实验平台,便可以方便的进行仿真实验,免除了重复、繁琐的配置实验环境的过程,可以满足对P4语言编写的处理逻辑进行仿真的需要,进一步的,该电子设备还可以用于对支持协议无关数据包处理的交换机的性能实验。

上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,实现以下方法步骤:

接收用户输入的配置指令信息和交换机处理逻辑信息,其中,配置指令信息包括:匹配-执行表操作信息和网络拓扑信息,交换机处理逻辑信息包括:数据包在实验平台中的转发信息;

对交换机处理逻辑信息进行编译,得到编译后的交换机处理逻辑信息;

生成与交换机处理逻辑信息对应的测试数据包;

根据网络拓扑信息生成交换机网络拓扑,根据编译后的交换机处理逻辑信息和匹配-执行表操作信息,在交换机网络拓扑中对测试数据包进行转发;

接收经交换机网络拓扑转发的测试数据包,对经转发交换机网络拓扑转发的测试数据包进行解析,得到经交换机网络拓扑转发的测试数据包的解析结果;

对经交换机网络拓扑转发的测试数据包的解析结果进行数据处理,得到处理后的数据信息,并展示数据信息。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号