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

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

Info

Publication number
CN107749802B
CN107749802B CN201710947804.6A CN201710947804A CN107749802B CN 107749802 B CN107749802 B CN 107749802B CN 201710947804 A CN201710947804 A CN 201710947804A CN 107749802 B CN107749802 B CN 107749802B
Authority
CN
China
Prior art keywords
information
switch
data packet
network topology
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710947804.6A
Other languages
English (en)
Other versions
CN107749802A (zh
Inventor
潘恬
黄韬
边子政
魏亮
张娇
杨帆
刘江
谢人超
刘韵洁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN201710947804.6A priority Critical patent/CN107749802B/zh
Publication of CN107749802A publication Critical patent/CN107749802A/zh
Application granted granted Critical
Publication of CN107749802B publication Critical patent/CN107749802B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • H04L43/045Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/14Arrangements for monitoring or testing data switching networks using software, i.e. software packages

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

一种支持协议无关数据包处理的实验平台及实验方法
技术领域
本发明涉及软件定义网络技术领域,特别是涉及一种支持协议无关数据包处理的实验平台及实验方法。
背景技术
随着云计算、虚拟化、大数据等新兴业务的出现以及网络规模的不断扩大,人们对网络中支持的协议类型和设备种类的要求越来越多。而现有的基于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-BandNetworkTelemetry,带内网络遥测)探针和路由信息的测试数据包;
相应的,交换机组,具体用于根据网络拓扑信息生成交换机网络拓扑,根据编译后的交换机处理逻辑信息和匹配-执行表操作信息,在交换机网络拓扑中,对携带有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测试数据包首部区域内容示意表
字段名称 占用比特 作用描述
SRVer 4 源路由版本
Routes 512 源路由信息表
Point 8 当前所在的比特
IsInt 1 是否为INT探针
SwitchId 6 添加数据至测试数据包的交换机标识信息
Ingress_port 9 测试数据包进入交换机时的端口
Egress_port 9 测试数据包走出交换机时的端口
Ingress_global_timestamp 48 测试数据包进入交换机时的时间
Enq_timestamp 48 测试数据包进入入口队列时的时间
Enq_qdepth 16 测试数据包进入入口队列时的队列深度
Deq_timedelta 32 测试数据包进入出口队列时的时延长度
Deq_qdepth 16 测试数据包进入出口队列时的队列深度
具体的,源路由版本表示发送模块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网络拓扑数据表
字段名称 字段类型 字段解释
Id PRIMARY KEY 自增主键
Node_id NUMERIC 交换机编号
Node_name TEXT 交换机名称
Node_type TEXT 交换机类型
Node_link JSON 交换机连接关系
如表3所示,为数据包解析表,这里以携带有INT探针和路由信息的测试数据包为例进行说明。在表3中,也可以包括字段名称、各字段对应字段类型,还可以包括各字段对应的字段解释。该字段解释用于解释各字段的用途。例如,字段“Timestamp”可以用于记录数据包解析表记录进行记录的时间。字段“Packet_id”可以用于记录测试数据包的标识号,字段“Ingress_port”可以用于记录测试数据包进入交换机的端口,字段“SwitchId”可以用于记录添加数据至测试数据包的交换机标识信息,其中,该交换机标识信息可以包括交换机的MAC地址,交换机在交换机组130中的编码等。
表3数据包解析表
字段名称 字段类型 字段解释
id Primary Key 数据表的自增主键
Timestamp Text 记录时间戳
Packet_id Text 测试数据包的标识号
Port Numeric 测试数据包的接收端口
SwitchId Text 添加数据至测试数据包的交换机标识信息
Ingress_port Text 测试数据包进入交换机的端口
Egress_port Text 测试数据包走出交换机时的端口
Ingress_global_timestamp Text 测试数据包进入交换机时的时间戳
Enq_timestamp Text 测试数据包进入入口队列时的时间戳
Enq_qdepth Text 测试数据包进入入口队列时的队列深度
Deq_timedelta Text 测试数据包在出口队列的时延长度
Deq_qdepth Text 测试数据包进入出口队列时的队列深度
如表4所示,为用户操作状态表,在表4中,也可以包括字段名称、各字段对应字段类型,还可以包括各字段对应的字段解释。例如,字段“Flag”可以用于记录用户操作的交换机/主机的标识信息,具体的,当用户发送的匹配-执行表是为一个交换机设置默认执行行为时,字段“Flag”可以对该交换机的标识信息进行记录。字段“Type”可以记录用户的操作类型,例如,该操作类型可以包括:添加、删除、修改等,字段“Content”可以记录与该操作类型对应的操作内容,例如,添加的内容、删除的内容或者修改的内容等,字段“Times tamp”可以记录与操作类型对应的操作时间,例如,为第一交换机131添加匹配-执行表表项的时间,删除第二交换机131匹配-执行表中任一表项的时间,或者修改第三交换机133匹配-执行表中任一表项的时间等。
该表4还可以记录用户发送交换机处理逻辑信息的时间,例如,当控制模块100接收到用户发送的交换机处理逻辑信息后,可以将接收到交换机处理逻辑信息的时间记录在与表4中字段“Timestamp”对应的表格中,这里,字段“Type”可以记录用户的操作类型为“下发”。字段“Content”可以记录该交换机处理逻辑信息。
表4用户操作状态表
字段名称 字段类型 字段解释
Id Primary Key 数据表的自增主键
Flag Text 交换机/主机的标识信息
Type Text 用户操作类型
Content JSON 用户操作内容
Times tamp TEXT 操作的时间戳
在本发明实施例的一种可能的实现方式中,上述的控制模块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)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,实现以下方法步骤:
接收用户输入的配置指令信息和交换机处理逻辑信息,其中,配置指令信息包括:匹配-执行表操作信息和网络拓扑信息,交换机处理逻辑信息包括:数据包在实验平台中的转发信息;
对交换机处理逻辑信息进行编译,得到编译后的交换机处理逻辑信息;
生成与交换机处理逻辑信息对应的测试数据包;
根据网络拓扑信息生成交换机网络拓扑,根据编译后的交换机处理逻辑信息和匹配-执行表操作信息,在交换机网络拓扑中对测试数据包进行转发;
接收经交换机网络拓扑转发的测试数据包,对经交换机网络拓扑转发的测试数据包进行解析,得到经交换机网络拓扑转发的测试数据包的解析结果;
对经交换机网络拓扑转发的测试数据包的解析结果进行数据处理,得到处理后的数据信息,并展示数据信息。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种支持协议无关数据包处理的实验平台,其特征在于,所述实验平台包括:控制模块、编译模块、发送模块、交换机组、接收模块、数据处理模块和图形用户界面GUI模块;
所述控制模块,用于接收用户输入的配置指令信息和交换机处理逻辑信息,并分别发送所述配置指令信息至所述交换机组、所述交换机处理逻辑信息至所述编译模块,其中,所述配置指令信息包括:匹配-执行表操作信息和网络拓扑信息,所述交换机处理逻辑信息包括:数据包在实验平台中的转发信息;
所述编译模块,用于对所述交换机处理逻辑信息进行编译,并将编译后的交换机处理逻辑信息发送至所述交换机组;
所述发送模块,用于生成与所述交换机处理逻辑信息对应的测试数据包,并将所述测试数据包发送至所述交换机组;
所述交换机组,用于根据所述网络拓扑信息生成交换机网络拓扑,根据所述编译后的交换机处理逻辑信息和所述匹配-执行表操作信息,在所述交换机网络拓扑中对所述测试数据包进行转发;
所述接收模块,用于接收经所述交换机网络拓扑转发的测试数据包,对所述经所述交换机网络拓扑转发的测试数据包进行解析,并将所述经所述交换机网络拓扑转发的测试数据包的解析结果转发至所述数据处理模块;
所述数据处理模块,用于对所述经所述交换机网络拓扑转发的测试数据包的解析结果进行数据处理,得到处理后的数据信息;
所述GUI模块,用于对所述处理后的数据信息进行展示。
2.根据权利要求1所述的实验平台,其特征在于,所述GUI模块,还用于接收所述用户输入的配置指令信息和交换机处理逻辑信息并转发至所述控制模块;
相应的,所述控制模块,具体用于接收所述GUI模块转发的,所述用户输入的配置指令信息和交换机处理逻辑信息。
3.根据权利要求1所述的实验平台,其特征在于,所述发送模块,具体用于通过Iperf生成固定速率的测试数据包。
4.根据权利要求1所述的实验平台,其特征在于,所述控制模块,还用于接收用户输入的路由信息,并将所述路由信息发送至所述发送模块;
相应的,所述发送模块,具体用于接收所述路由信息,并生成携带有带内网络遥测INT探针和所述路由信息的测试数据包;
相应的,所述交换机组,具体用于根据所述网络拓扑信息生成交换机网络拓扑,根据所述编译后的交换机处理逻辑信息和所述匹配-执行表操作信息,在所述交换机网络拓扑中,对所述携带有INT探针和路由信息的测试数据包进行转发。
5.根据权利要求1所述的实验平台,其特征在于,所述实验平台还包括:数据库,用于存储所述经所述交换机网络拓扑转发的测试数据包的解析结果、所述配置指令信息和所述交换机处理逻辑信息。
6.根据权利要求5所述的实验平台,其特征在于,所述控制模块,还用于获取所述发送模块的第一启闭信息,获取所述接收模块的第二启闭信息,并将所述第一启闭信息和所述第二启闭信息发送至所述数据库;
相应的,所述数据库,用于存储所述第一启闭信息和所述第二启闭信息。
7.根据权利要求6所述的实验平台,其特征在于,所述GUI模块,还用于根据控制模块发送的查看指令,获取所述数据库中存储的所述配置指令信息、所述交换机处理逻辑信息、所述第一启闭信息和所述第二启闭信息,并展示。
8.根据权利要求7所述的实验平台,其特征在于,所述GUI模块,还用于对所述数据库中存储的所述配置指令信息、所述交换机处理逻辑信息、所述第一启闭信息和所述第二启闭信息进行图表处理,并以图表形式展示。
9.根据权利要求1所述的实验平台,其特征在于,所述实验平台还包括:负载均衡模块,用于根据用户发送的负载均衡策略,对所述交换机网络拓扑进行负载均衡。
10.一种支持协议无关数据包处理的实验方法,其特征在于,所述方法包括:
接收用户输入的配置指令信息和交换机处理逻辑信息,其中,所述配置指令信息包括:匹配-执行表操作信息和网络拓扑信息,所述交换机处理逻辑信息包括:数据包在实验平台中的转发信息;
对所述交换机处理逻辑信息进行编译,得到编译后的交换机处理逻辑信息;
生成与所述交换机处理逻辑信息对应的测试数据包;
根据所述网络拓扑信息生成交换机网络拓扑,根据所述编译后的交换机处理逻辑信息和所述匹配-执行表操作信息,在所述交换机网络拓扑中对所述测试数据包进行转发;
接收经所述交换机网络拓扑转发的测试数据包,对所述经所述交换机网络拓扑转发的测试数据包进行解析,得到所述经所述交换机网络拓扑转发的测试数据包的解析结果;
对所述经所述交换机网络拓扑转发的测试数据包的解析结果进行数据处理,得到处理后的数据信息,并展示所述数据信息。
CN201710947804.6A 2017-10-12 2017-10-12 一种支持协议无关数据包处理的实验平台及实验方法 Active CN107749802B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710947804.6A CN107749802B (zh) 2017-10-12 2017-10-12 一种支持协议无关数据包处理的实验平台及实验方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710947804.6A CN107749802B (zh) 2017-10-12 2017-10-12 一种支持协议无关数据包处理的实验平台及实验方法

Publications (2)

Publication Number Publication Date
CN107749802A CN107749802A (zh) 2018-03-02
CN107749802B true CN107749802B (zh) 2020-07-03

Family

ID=61252545

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710947804.6A Active CN107749802B (zh) 2017-10-12 2017-10-12 一种支持协议无关数据包处理的实验平台及实验方法

Country Status (1)

Country Link
CN (1) CN107749802B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108521371B (zh) * 2018-03-09 2020-12-25 新华三技术有限公司 报文转发方法及装置
CN108777646B (zh) * 2018-05-02 2020-08-11 新华三技术有限公司 流量监控方法及装置
US10880197B2 (en) 2018-07-13 2020-12-29 Keysight Technologies, Inc. Methods, systems, and computer readable media for testing a network node using source code for programming a packet forwarding plane of the network node
CN108989333B (zh) * 2018-08-16 2020-09-25 北京邮电大学 一种支持内容网络的可编程实验网络方法及装置
US10686671B1 (en) 2018-11-05 2020-06-16 Keysight Technologies, Inc. Methods, systems, and computer readable media for testing network elements of an in-band network telemetry capable network
CN109309605B (zh) * 2018-11-26 2020-08-25 北京邮电大学 带内网络遥测系统及方法
CN109672591B (zh) * 2019-01-21 2022-05-17 中国科学技术大学 实时可编程的抽样带内网络遥测的方法
US11032151B1 (en) 2019-02-06 2021-06-08 Keysight Technologies, Inc. Methods, systems, and computer readable media for providing dynamically configurable, distributed network visibility device
US10733088B1 (en) 2019-03-01 2020-08-04 Keysight Technologies, Inc. Methods, systems, and computer readable media for testing a network node or a related application programming interface using source code metadata
US11093376B2 (en) 2019-06-19 2021-08-17 Keysight Technologies, Inc. Methods, systems, and computer readable media for configuring a test system using source code of a device being tested
CN110601983A (zh) * 2019-10-15 2019-12-20 南京信息职业技术学院 一种协议无感知源路由转发方法及系统
CN111211977B (zh) * 2019-12-12 2022-02-08 鹏城实验室 一种支持外界多异构信道连接的舰船通信方法及系统
US11425020B2 (en) 2020-06-01 2022-08-23 Keysight Technologies, Inc. Methods, systems, and computer readable media for storage, retrieval, and use of programmable pipeline device profiles
US11474823B2 (en) 2020-06-15 2022-10-18 Keysight Technologies, Inc. Methods, systems, and computer readable media for on-demand, on-device compiling and use of programmable pipeline device profiles
CN111817884A (zh) * 2020-06-24 2020-10-23 浪潮思科网络科技有限公司 一种查看交换机配置的方法、装置、设备及介质
US11621908B2 (en) 2020-07-13 2023-04-04 Keysight Technologies, Inc. Methods, systems and computer readable media for stateless service traffic generation
US11258719B1 (en) 2020-08-24 2022-02-22 Keysight Technologies, Inc. Methods, systems and computer readable media for network congestion control tuning
CN114885047B (zh) * 2022-07-12 2022-10-25 之江实验室 一种可编程网络的协议解析方法、系统和可读存储介质
CN115334019B (zh) * 2022-08-03 2023-09-26 厦门大学 可编程交换机处理sat问题的数据处理方法及可编程交换机
CN115714725B (zh) * 2022-10-17 2023-09-12 江西科骏实业有限公司 一种面向教学应用的网络指令虚拟仿真实现方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105847031A (zh) * 2016-03-15 2016-08-10 中国石油天然气股份有限公司华北油田分公司 用于测试OpenFlow SDN控制器的网络拓扑构建系统和方法
CN105915407A (zh) * 2016-04-13 2016-08-31 重庆邮电大学 一种基于sdn的流量发生器虚拟化实现系统及方法
CN106452850A (zh) * 2016-09-23 2017-02-22 西安交通大学 一种sdn控制器性能测试方法及系统
CN107222353A (zh) * 2017-07-11 2017-09-29 中国科学技术大学 支持协议无关的软件定义网络虚拟化管理平台

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105847031A (zh) * 2016-03-15 2016-08-10 中国石油天然气股份有限公司华北油田分公司 用于测试OpenFlow SDN控制器的网络拓扑构建系统和方法
CN105915407A (zh) * 2016-04-13 2016-08-31 重庆邮电大学 一种基于sdn的流量发生器虚拟化实现系统及方法
CN106452850A (zh) * 2016-09-23 2017-02-22 西安交通大学 一种sdn控制器性能测试方法及系统
CN107222353A (zh) * 2017-07-11 2017-09-29 中国科学技术大学 支持协议无关的软件定义网络虚拟化管理平台

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
In‐band Network Telemetry (INT);Changhoon Kim, Parag Bhide, Ed Doe,等;《https://p4.org/assets/INT-current-spec.pdf》;20160630;第18页 *
P4 Programming Protocol-Independent Packet Processors;Pat Bossharty, Dan Daly,等;《ACM SIGCOMM Computer Communication Review》;20140731;第44卷(第3期);全文 *

Also Published As

Publication number Publication date
CN107749802A (zh) 2018-03-02

Similar Documents

Publication Publication Date Title
CN107749802B (zh) 一种支持协议无关数据包处理的实验平台及实验方法
US9444702B1 (en) System and method for visualization of NoC performance based on simulation output
CN112422498A (zh) 一种带内网络遥测方法、系统及计算机可读存储介质
US20130305091A1 (en) Drag and drop network topology editor for generating network test configurations
KR20170105582A (ko) Nfv 및 sdn과 연동하기 위한 sdt를 위한 시스템들 및 방법들
US10050853B2 (en) Neural network learning methods to identify network ports responsible for packet loss or delay
Costa et al. OpenFlow data planes performance evaluation
JP2011071989A (ja) トラフィック分散制御プロセス及び装置
CN105282057B (zh) 流表更新方法、控制器及流表分析设备
US10320660B2 (en) Method and device for transmitting forwarding parameter
CN105323109B (zh) 互连网络仿真器及用于仿真互连网络的方法
US10057148B2 (en) Data-driven estimation of network port delay
CN115695280A (zh) 基于边缘节点的路由方法及装置、电子设备、存储介质
Oujezsky et al. Case study and comparison of SimPy 3 and OMNeT++ Simulation
US9819571B2 (en) Control apparatus and method for supplying switch with entry
JP7363907B2 (ja) 情報処理装置、パケット生成方法、システム、及びプログラム
Patetta et al. A lightweight southbound interface for standalone P4-NetFPGA SmartNICs
Rygielski Flexible modeling of data center networks for capacity management
CN102843269A (zh) 一种模拟微码业务处理流程的方法及系统
Hawari et al. OP4T: Bringing Advanced Network Packet Timestamping into the Field
CN113055287B (zh) 数据包的处理方法、装置和计算机可读存储介质
EP3312728A1 (en) Service management system, service management method, and recording medium
CN115250254B (zh) Netflow报文分发处理方法及装置
US20200259934A1 (en) Network traffic marking and measurement methods and node
Li Low latency queuing control in extendable mobile ad-hoc network emulator (emane)

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant