CN108989333A - 一种支持内容网络的可编程实验网络方法及装置 - Google Patents
一种支持内容网络的可编程实验网络方法及装置 Download PDFInfo
- Publication number
- CN108989333A CN108989333A CN201810932884.2A CN201810932884A CN108989333A CN 108989333 A CN108989333 A CN 108989333A CN 201810932884 A CN201810932884 A CN 201810932884A CN 108989333 A CN108989333 A CN 108989333A
- Authority
- CN
- China
- Prior art keywords
- field
- data packet
- length field
- variable
- fixed
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/02—Protocol performance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/03—Protocol definition or specification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种支持内容网络的可编程实验网络方法及装置,属于通信技术领域。该方法包括:接收第一数据包,其中,第一数据包由预设的实验用户的用户标识和预设字段组成,预设字段可以为定长字段、变长字段和混合长度字段中的一种,混合长度字段是由定长字段和变长字段拼接而成;通过实验用户的用户标识,确定实验用户对应的第一协议、第一协议对应的处理算法、以及实验用户对应的第一流表;通过处理算法,对第一数据包进行解析,得到目标字段;根据第一流表和目标字段,确定目标字段对应的动作标识,动作标识包括丢弃动作的标识或转发动作的标识;基于目标字段对应的动作标识,处理第一数据包。采用本申请,可以满足各种网络的实验需求。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种支持内容网络的可编程实验网络方法及装置。
背景技术
信息中心网络作为新型的网络架构,基于数据包的名称,而不是IP(Internetprotocol,网络之间互联的协议)地址进行数据包的传送,能够解决传统IP网络移动性差、以及数据包分发效率低的问题,受到了人们的强烈关注。然而信息中心网络的相关算法以及相关协议,在实际使用之前需要基于实验网络进行长期的实验验证。
能够满足实验验证需求的实验网络应该是协议无关的,即实验网络应该能够支持多种协议的运行,以实现对不同协议的实验。同时,实验网络应该是可编程的、可自定义的以及可定制的,可编程指实验网络应该支持调试人员根据自身需求,以编程的形式自定义新型协议或新型算法;可自定义指调试人员能够自定义数据包中的每一个字段,每个字段的长度既可以是固定的也可以是可变的;可定制指实验网络能够根据调试人员的需求,提供实验网络运行的相关信息(比如当前实验网络的网络拓扑信息、流表信息等)。此外,实验网络还应保证不同实验之间的独立性,即,实验网络能够保证各实验在运行过程中不被其他实验干扰。更进一步,实验网络应该能够同时支持通信网络以及信息中心网络,即,实验网络既能够识别信息中心网络中由变长字段组成的数据包,又能够识别通信网络中由定长字段组成的数据包。
对于处于理论阶段且需要大量实验验证的信息中心网络,亟需能够满足多种需求的实验网络。
发明内容
本申请实施例的目的在于提供一种支持内容网络的可编程实验网络方法及装置,以满足各种网络的实验需求。具体技术方案如下:
第一方面,提供了一种支持内容网络的可编程实验网络方法,所述方法包括:
接收第一数据包,其中,所述第一数据包由预设的实验用户的用户标识和预设字段组成,所述预设字段可以为定长字段、变长字段和混合长度字段中的一种,所述混合长度字段是由所述定长字段和所述变长字段拼接而成;
通过所述实验用户的用户标识,确定所述实验用户对应的第一协议、所述第一协议对应的处理算法、以及所述实验用户对应的第一流表,其中,所述处理算法包括定长字段处理算法、变长字段处理算法、以及混合长度字段处理算法;
通过所述处理算法,对所述第一数据包进行解析,得到目标字段,所述目标字段包括匹配字段;
根据所述第一流表和所述目标字段,确定所述目标字段对应的动作标识,动作标识包括丢弃动作的标识或转发动作的标识;
基于所述目标字段对应的动作标识,处理所述第一数据包。
可选的,所述接收第一数据包之前,还包括:
接收基于预设的数据包格式规范信息编写的所述第一协议,其中,所述数据包格式规范信息包括定长字段的编写格式、变长字段的编写格式、以及混合长度字段的编写格式,所述混合长度字段编写格式由所述定长字段的编写格式与所述变长字段的编写格式组合而成;
根据所述第一协议对应的数据包格式规范信息,对应存储所述实验用户的用户标识。
可选的,所述接收第一数据包之前,还包括:
发送所述第一协议至实验网络中的各交换机;
如果所述第一协议的数据包格式规范信息是变长字段的编写格式、或混合长度字段的编写格式,则生成多个第二数据包,并存储至交换机中,其中,所述第二数据包用于表示所述实验网络中存储的数据包;
获取所述实验网络的第一网络拓扑信息;
根据所述第一网络拓扑信息以及预先存储的路由算法或缓存算法,计算第一流表;
发送所述第一流表至所述各交换机。
可选的,所述通过所述处理算法,对所述第一数据包进行解析,得到目标字段,包括:
如果所述第一数据包的预设字段为定长字段,则根据所述定长字段处理算法,获取所述第一数据包的目标字段;
如果所述第一数据包的预设字段为变长字段,则根据所述变长字段处理算法,获取所述第一数据包的目标字段;
如果所述第一数据包的预设字段为混合长度字段,则根据所述定长字段处理算法,获取所述混合长度字段中定长字段对应的固定目标字段,根据所述变长字段处理算法,获取所述混合长度字段中变长字段对应的可变目标字段;
拼接所述固定目标字段和所述可变目标字段,得到所述第一数据包的目标字段。
可选的,所述方法还包括:
通过预先存储的图形用户界面,显示所述实验网络的基本信息,其中,所述基本信息包括第一网络拓扑信息、所述第一协议、以及所述第一流表;
基于所述图形用户界面,更改所述第一协议或所述第一流表,得到第二协议或第二流表;
发送所述第二协议或所述第二流表至所述实验网络中的各交换机。
第二方面,提供了一种支持内容网络的可编程实验网络装置,所述装置包括:
第一接收模块,用于接收第一数据包,其中,所述第一数据包由预设的实验用户的用户标识和预设字段组成,所述预设字段可以为定长字段、变长字段和混合长度字段中的一种,所述混合长度字段是由所述定长字段和所述变长字段拼接而成;
第一确定模块,用于通过所述实验用户的用户标识,确定所述实验用户对应的第一协议、所述第一协议对应的处理算法、以及所述实验用户对应的第一流表,其中,所述处理算法包括定长字段处理算法、变长字段处理算法、以及混合长度字段处理算法;
解析模块,用于通过所述处理算法,对所述第一数据包进行解析,得到目标字段,所述目标字段包括匹配字段;
第二确定模块,用于根据所述第一流表和所述目标字段,确定所述目标字段对应的动作标识,动作标识包括丢弃动作的标识或转发动作的标识;
处理模块,用于基于所述目标字段对应的动作标识,处理所述第一数据包。
可选的,所述装置还包括:
第二接收模块,用于接收基于预设的数据包格式规范信息编写的所述第一协议,其中,所述数据包格式规范信息包括定长字段的编写格式、变长字段的编写格式、以及混合长度字段的编写格式,所述混合长度字段编写格式由所述定长字段的编写格式与所述变长字段的编写格式组合而成;
存储模块,用于根据所述第一协议对应的数据包格式规范信息,对应存储所述实验用户的用户标识。
可选的,所述解析模块包括:
第一处理子模块,用于当所述第一数据包的预设字段为定长字段时,根据所述定长字段处理算法,获取所述第一数据包的目标字段;
第二处理子模块,用于当所述第一数据包的预设字段为变长字段时,根据所述变长字段处理算法,获取所述第一数据包的目标字段;
第三处理子模块,用于当所述第一数据包的预设字段为混合长度字段时,根据所述定长字段处理算法,获取所述混合长度字段中定长字段对应的固定目标字段,根据所述变长字段处理算法,获取所述混合长度字段中变长字段对应的可变目标字段;
拼接子模块,用于拼接所述固定目标字段和所述可变目标字段,得到所述第一数据包的目标字段。
第三方面,提供了一种服务器,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现第一方面所述的方法步骤。
第四方面,提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现第一方面所述的方法步骤。
本申请实施例提供了一种支持内容网络的可编程实验网络方法及装置,通过接收第一数据包,并根据第一数据包包含的实验用户的用户标识,确定实验用户对应的第一协议、第一协议对应的处理算法、以及实验用户对应的第一流表;之后,通过处理算法对第一数据包进行解析,得到目标字段,在第一流表中确定目标字段对应的动作标识;最后,基于该动作标识处理第一数据包。由于本方案通过用户标识确定实验用户对应的第一协议、第一流表、以及第一协议对应的处理算法,同时采用的处理算法包括定长字段处理算法、变长字段处理算法、以及混合长度字段处理算法,能够相应的处理由不同长度字段组成的第一数据包,进而能够满足各种网络的实验需求。
当然,实施本申请的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种支持内容网络的可编程实验网络方法的方法流程图;
图2为本申请实施例提供的一种支持内容网络的可编程实验网络方法的方法流程图;
图3为本申请实施例提供的一种支持内容网络的可编程实验网络方法的方法流程图;
图4为本申请实施例提供的一种支持内容网络的可编程实验网络装置的装置结构示意图;
图5为本申请实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种支持内容网络的可编程实验网络方法,该方法可以应用于服务器,该服务器可以通过预先存储的Openstack(开放栈)虚拟出虚拟控制器、虚拟交换机、以及虚拟终端主机等设备,从而组成实验网络。或者,该方法也可以应用于由服务器、交换机、以及终端主机组成的实验网络。
本申请实施例提供的一种支持内容网络的可编程实验网络方法,能够支持通信网络与信息中心网络,同时,该方法具有可编程性,因此,实验用户可以根据自身需求进行编程,以开发新型网络协议并通过实验网络验证新型网络协议具有的网络功能。比如,实验用户可以验证其自行设计的网络协议的可行性。同时,该方法具有协议无关转发性,因此可以实现对不同网络架构的协议、路由算法、以及缓存算法的实验。
需要说明的是,数据包中的字段包括匹配字段、类型字段、检验和字段、以及重计算长度字段。通信网络中,数据包包含的字段是定长字段;信息中心网络中,数据包包含的字段是变长字段;基于以太网构建数据命名网络时,以太网中的数据包包含的字段是混合长度字段。定长字段表示该字段的位长是固定不变的,变长字段表示该字段的位长是可变的,即不同变长字段的位长可以不同,混合长度字段表示该字段中一部分字段的位长是固定不变的,另一部分字段的位长是可变的。
本申请实施例以该方法应用于服务器,实验网络由虚拟控制器、虚拟交换机、以及虚拟终端主机组成,并且通过该方法验证新型协议为例,介绍该方法的具体处理流程。通过该方法验证新型路由算法、以及新型缓存算法的处理流程与之类似,不再赘述。
在通过本申请提出的支持内容网络的可编程实验网络方法对新型协议进行实验之前,需要先对新型协议进行预处理。为了便于理解,本申请实施例首先对预处理流程进行说明,具体可以包括以下步骤:
步骤一,接收基于预设的数据包格式规范信息编写的第一协议。
其中,数据包格式规范信息可以包括定长字段的编写格式、变长字段的编写格式、以及混合长度字段的编写格式,混合长度字段编写格式由定长字段的编写格式与变长字段的编写格式组合而成。
在实施中,服务器中存储有数据包格式规范信息,以便当实验用户想要验证某一种协议,或者某一种协议的网络功能时,获取该数据包格式规范信息,并基于该数据包格式规范信息,编写第一协议。该数据包格式规范信息可以由实验网络的管理人员预先设定,服务器可以根据接收到的更改指令对数据包格式规范信息进行更改。
实验用户获取数据包格式规范信息的方式是多种多样的,例如,实验用户可以通过在服务器预先存储的图形用户界面中,输入用于显示数据包格式规范信息的显示指令,从而获取该数据包格式规范信息。实验用户获取数据包格式规范信息后,可以通过图形用户界面编写第一协议。
然后,服务器通过虚拟控制器,接收实验用户编写的第一协议。
本申请实施例提供了一种定长字段的编写格式:特征域{type(类型),offset(偏移量),length(长度)}。特征域中type表示特征域的类型,特征域的类型由0和1两种情况,0代表该特征域包含的是业务数据,1代表该特征域包含的是元数据;offset表示特征域在定长字段中的起始位置,相对于预设的处理指针位置的偏移量。通过offset,虚拟交换机可以指定数据包中某一字段的起始位置;length代表特征域的长度,用于表示数据包中某一字段包含的字符数。offset和length的计量单位均为bit(比特)。
在由定长字段组成的数据包中,每个字段均由特征域表示,定长字段的编写格式规定了type的最大长度为4个字节,数据包内的各个字段长度均为8个字节,以保证虚拟交换机解析数据包的效率。在此基础上,实验用户可以通过编程自定义第一协议,协议定义灵活性高。
本申请实施例还提供了一种变长字段的编写格式:TLV(Type-Length-Value,类型-长度-值)嵌套格式,TLV嵌套格式中Type可以表示该数据包的类型,数据包的类型包括内容请求和数据响应;Length表示字段长度,即该字段包含的字符数;Value表示字段的具体值,即该字段包含的字符。需要说明的是,TLV的嵌套层数可由实验用户自定义。
在由变长字段组成的数据包中,每个字段均由TLV嵌套表示,类型Type的字段长度Length可以是1字节、2字节或4字节。TLV嵌套格式还包括类型Type的取值集合,取值集合包括正常值与特定值,正常值表示该变长字段包含的TLV嵌套层数为1,特定值表示该变长字段对应的Value包含下一层TLV结构,需要通过判断下一级TLV结构中的类型Type是否为正常值,确定该变长字段的TLV嵌套层数。类型Type的取值集合可由实验用户自行定义。
本申请实施例还提供了一种混合长度字段的编写格式:特征域与TLV嵌套格式拼接,例如特征域{type(类型),offset(偏移量),length(长度)}加TLV嵌套格式的TLV字段。其中特征域位于所有TLV字段之前。
步骤二,根据第一协议对应的数据包格式规范信息,对应存储实验用户的用户标识。
在实施中,服务器通过接收预设的选择指令,获取第一协议对应的数据包格式规范信息,预设的选择指令为预先存储的定长字段标识、变长字段标识、以及混合长度字段标识中的一种。然后,服务器根据该数据包格式规范信息,确定相应的字符范围,进而在确定出的字符范围内,为该用户分配用户标识,并将该用户标识存储在第一协议的头部位置。
例如,服务器将用户标识的字符长度设置为2个字节,如果数据包格式规范信息为定长字段的编写格式,则选取0x0000-0x03FF范围内未被选用的字符,作为实验用户的用户标识;如果数据包格式规范信息为变长字段的编写格式,则选取0x0400-0x07FF范围内未被选用的字符,作为实验用户的用户标识;如果数据包格式规范信息为混合长度字段的编写格式,则选取0x0800-0x0BFF范围内未被选用的字符,作为实验用户的用户标识。
此外,在通过本申请提出的支持内容网络的可编程实验网络方法对新型协议进行实验之前,还需要先对实验网络进行初始化。为了便于理解,本申请实施例首先对初始化流程进行说明,如图1所示,具体可以包括以下步骤:
步骤101,发送第一协议至实验网络中的各交换机。
在实施中,服务器通过虚拟控制器和预先存储的OpenFlow(开流)协议将接收到的第一协议封装为protocol-define(协议定义)消息,然后,将该第一协议发送至实验网络中的各虚拟交换机。
服务器通过各虚拟交换机接收到第一协议后,会根据预先存储的protocol-define协议对第一协议进行解析,解析成功后,向虚拟控制器发送确认消息,并将第一协议存储在该虚拟交换机内。如果封装有第一协议的数据包不完整,或者字段数目不匹配导致解析失败,则向虚拟控制器发送错误信息,以报告接收异常。
虚拟交换机有两种存储第一协议的方式,虚拟交换机可以根据第一协议头部位置对应的用户标识、以及预设的用户标识的取值范围,确定第一协议能够解析的数据包包含的字段的类型是定长字段、变长字段或者混合字段。当数据包由定长字段组成时,采用方式一;当数据包由变长字段组成时,采用方式二,具体如下:
方式一:服务器通过虚拟交换机接收到第一协议后,按照第一协议对应的用户标识确定对应的第一预设存储文件,然后在第一预设存储文件中,按照字段的类型,存储第一协议。字段的类型包括:类型字段、匹配字段、重计算长度字段以及检验和字段。
虚拟交换机中可以存储多个实验用户的协议,不同实验用户对应的用户标识不同,每个实验用户可以有多个协议,虚拟交换机将实验用户的多个协议作为该用户标识对应的子协议,每个子协议中,都会有一个或多个类型字段唯一标识该子协议,因此,虚拟服务器可以通过类型字段区分具有相同用户标识的不同子协议。一个类型字段由特征域唯一表示,类型字段的特征域中,偏移量指从第一协议的包头为起始点的偏移量。
方式二:服务器通过虚拟交换机接收到第一协议后,按照第一协议对应的用户标识,确定对应的第二预设存储文件,然后提取第一协议包含的各字段的类型Type的字符长度值,以及类型Type的取值集合中的特定值和正常值,将提取出的信息存储在第二预设存储文件中。
这样,服务器在根据第一协议解析数据包时,可以确定出数据包的第一层TLV的类型Type值以及TLV嵌套层数。
需要说明的是,当数据包由混合字段组成时,虚拟交换机采用方式一存储第一协议,不同的是,对于第一协议中变长协议字段的部分存储方式为方式二。
即,服务器通过虚拟交换机接收到第一协议后,按照第一协议对应的用户标识确定对应的第三预设存储文件,然后在第三预设存储文件中,按照字段的类型,存储第一协议中以特征域格式定义的字段,按照类型Type的字符长度值,以及类型Type的取值集合中的特定值和正常值,存储第一协议中以TLV嵌套格式定义的字段。
本申请实施例中,对于某一实验用户基于同一数据包格式规范信息,定义了多个第一协议的情况,在通信网络中,服务器为这些第一协议分配同一个用户标识,将多个第一协议作为该实验用户的多个子协议。服务器可以通过虚拟交换机,基于第一协议包含的多个类型字段区分各子协议。在信息中心网络以及基于以太网构建的数据命名网络中,服务器为某一实验用户的多个第一协议分配了不同的用户标识,即用户标识与第一协议一一对应。
步骤102,如果第一协议的数据包格式规范信息是变长字段的编写格式、或混合长度字段的编写格式,则生成多个第二数据包,并存储至交换机中,其中,第二数据包用于表示实验网络中存储的数据包。
在实施中,如果第一协议的数据包格式规范信息是变长字段的编写格式、或混合长度字段的编写格式,则服务器需要通过虚拟终端主机按照预设的时间间隔,生成并发送第二数据包至与其相连的虚拟交换机。
由于在初始化过程中,各虚拟交换机中没有流表,所以各虚拟交换机会将接收到的第二数据包存储在本地。
步骤103,获取实验网络的第一网络拓扑信息。
在实施中,服务器通过虚拟控制器和预先存储的LLDP(Link LayerDiscoveryProtocol,链路层发现协议),获取实验网络的第一网络拓扑信息。第一网络拓扑信息包括实验网络中各虚拟交换机的链路连接关系、以及内容缓存拓扑信息。内容缓存拓扑信息包括各虚拟交换机中存储的多个第二数据包的内容以及第二数据包的数量。
服务器可以在实验网络运行的每一时刻,通过LLDP协议,实时监控实验网络的链路连接状态,获取第一网络拓扑信息,以便及时发现链路故障并进行调整。
通过LLDP协议获取网络拓扑信息的过程为现有技术,此处不再赘述。
步骤104,根据第一网络拓扑信息以及预先存储的路由算法或缓存算法,计算第一流表。
在实施中,虚拟控制器中可以预先存储路由算法和缓存算法,与第一协议类似,路由算法和/或缓存算法可以由实验用户定义。
服务器通过虚拟控制器,基于第一网络拓扑信息、内容缓存拓扑信息、路由算法、以及缓存算法,计算第一流表。第一流表的具体计算过程为现有技术,此处不再赘述。
需要说明的是,第一流表也包含实验用户的用户标识。
步骤105,发送第一流表至各交换机。
在实施中,虚拟控制器将计算得到的第一流表发送至各虚拟交换机,各虚拟交换机根据第一流表的用户标识,在预设的流表文件库中对应存储该第一流表。
在完成实验网络的初始化后,可以通过本申请提出的支持内容网络的可编程实验网络方法对新型协议进行实验,如图2所示,本实施例所提供的一种支持内容网络的可编程实验网络方法的具体处理流程如下:
步骤201,接收第一数据包。
其中,第一数据包由预设的实验用户的用户标识和预设字段组成,预设字段可以为定长字段、变长字段和混合长度字段中的一种,混合长度字段是由定长字段和变长字段拼接而成。第一数据包由服务器通过虚拟终端主机按照预设的时间间隔生成。特别的,如果第一数据包包括变长字段,或者混合长度字段,则第一数据包还包括在初始化过程中,服务器通过虚拟终端主机生成的第二数据包。
在实施中,服务器通过虚拟交换机接收其他虚拟交换机,或者虚拟终端主机发送的第一数据包。
步骤202,通过实验用户的用户标识,确定实验用户对应的第一协议、第一协议对应的处理算法、以及实验用户对应的第一流表。
其中,处理算法包括定长字段处理算法、变长字段处理算法、以及混合长度字段处理算法。当用户标识的取值范围为0x0000-0x03FF时,处理算法为定长字段处理算法,相应的,当用户标识的取值范围为0x0400-0x07FF时,处理算法为变长字段处理算法,当用户标识的取值范围为0x0800-0x0BFF时,处理算法为混合长度字段处理算法。
在实施中,虚拟交换机中预先设置有处理算法以及预处理算法,预处理算法用于根据第一数据包的用户标识,确定用于处理第一数据包的处理算法。
服务器通过虚拟交换机接收到第一数据包后,先基于预处理算法获取第一数据包的前两个字节作为用户标识,在该虚拟交换机的存储文件中,确定具有同一用户标识的协议为第一协议。存储文件包括第一预设存储文件、第二预设存储文件、以及第三预设存储文件。
当第一数据包包含定长字段时,同一用户标识对应的协议可以是一个,也可以是多个,当用户标识对应的协议为一个时,将该协议作为第一协议。
当用户标识对应的协议为多个子协议时,针对每个子协议,服务器通过虚拟交换机依次按照该子协议中各类型字段的偏移量和长度,提取第一数据包对应位置的值,并与该子协议中该类型字段的值进行对比。如果不一致,则对下一个子协议进行相同处理。如果一致,则按照同一方式对比下一个类型字段,直至该子协议中所有的类型字段的值均能匹配上,说明该子协议符合该第一数据包,记录该子协议。当遍历该用户标识对应的所有子协议时,将与第一数据包匹配的类型字段数目最多的子协议作为第一协议。如果遍历所有子协议都找不到匹配的子协议,则认为第一数据包对应的协议还未被下发到虚拟交换机中,或第一数据包出现了错误,将第一数据包发送至虚拟控制器或者丢弃该第一数据包。
如果虚拟交换机匹配不到该用户标识,则直接丢弃该第一数据包。
然后,服务器通过虚拟交换机和第一协议的用户标识,确定该用户标识所属取值范围对应的处理算法,作为第一协议对应的处理算法。同时,在预设的流表文件库中,确定具有同一用户标识的流表为实验用户对应的第一流表。如果未找到具有同一用户标识的流表,则将第一数据包发送至虚拟控制器或者丢弃该第一数据包。
步骤203,通过处理算法,对第一数据包进行解析,得到目标字段。
在实施中,服务器通过虚拟交换机,基于确定出的第一数据包对应的处理算法,按照第一协议,对第一数据包进行解析,得到第一数据包包含的目标字段。
目标字段包括匹配字段、类型字段、检验和字段、以及重计算长度字段。
步骤204,根据第一流表和目标字段,确定目标字段对应的动作标识。
其中,动作标识包括丢弃动作的标识或转发动作的标识。丢弃动作的标识用于表示丢弃该数据包,转发动作的标识用于表示从虚拟交换机的某个端口转发该数据包。虚拟交换机预先存储的第一流表中,还包括很多其他动作的标识,例如,添加、或删除某一字段动作的标识。
在实施中,服务器通过虚拟交换机,在第一流表中,确定目标字段对应的动作标识。特别的,在信息中心网络中,服务器通过虚拟交换机、用户标识以及第一数据包的类型Type值,在第一流表中查找目标字段对应的动作标识,如果查找成功则执行动作标识对应的动作,如果查找失败,则根据类型Type值的不同,选择直接丢弃,或者跳转到下一个流表,或者发送预先存储的查找失败信息至虚拟控制器,以便虚拟控制器及时更新内容缓存拓扑信息。
步骤205,基于目标字段对应的动作标识,处理第一数据包。
在实施中,服务器通过虚拟交换机和目标字段对应的动作标识,对第一数据包执行动作标识对应的动作。例如,当目标字段对应的动作标识为丢弃动作的标识时,服务器通过虚拟交换机丢弃该第一数据包。
具体的,通过处理算法,对第一数据包进行解析,得到目标字段的具体处理过程分为三种情况,以下详细介绍三种情况的具体处理过程:
情况一、如果第一数据包的预设字段为定长字段,则根据定长字段处理算法,获取第一数据包的目标字段。
在实施中,如果第一数据包的预设字段为定长字段,服务器通过虚拟交换机和第一协议的协议字段,对第一数据包进行字段提取,得到目标字段。协议字段为组成第一协议的多个字段。
服务器通过虚拟交换机依次按照第一协议中各协议字段的偏移量和长度,提取第一数据包对应位置的值的过程为:服务器通过虚拟交换机根据第一数据包的特征域中的偏移量,确定预先存储的处理指针在第一数据包中的初始位置。然后,根据初始位置和特征域中的长度,确定处理指针在第一数据包中的终止位置,之后,确定第一数据包中初始位置与终止位置中间的字符为目标字段。
情况二、如果第一数据包的预设字段为变长字段,则根据变长字段处理算法,获取第一数据包的目标字段。
在实施中,如果第一数据包的预设字段为变长字段,虚拟交换机根据确定出的第一协议,获取第一数据包的类型长度值TLV,确定第一数据包的第一类型Type值,第一长度Length、以及第一值Value,其中,第一类型Type值包含第一数据包中类型长度值TLV层的嵌套层数,以及该第一数据包的数据类型。
服务器通过虚拟交换机判断第一类型Type值对应的嵌套层数是否为1,如果第一类型Type值对应的嵌套层数为1,则基于第一数据包的第一值Value,确定目标字段。如果第一类型Type值对应的嵌套层数不为1,则确定第一值Value中包含的第二类型Type值,第二长度Length、以及第二值Value。将第二类型Type值作为第一类型Type值,判断第一类型Type值对应的嵌套层数是否为1。
情况三、如果第一数据包的预设字段为混合长度字段,则根据定长字段处理算法,获取混合长度字段中定长字段对应的固定目标字段,根据变长字段处理算法,获取混合长度字段中变长字段对应的可变目标字段。
在实施中,如果第一数据包的预设字段为混合长度字段,即第一数据包由定长字段与变长字段拼接而成,服务器会通过虚拟交换机和混合长度处理算法,对第一数据包进行处理。具体过程为:首先,服务器通过虚拟交换机和定长字段处理算法,获取第一数据包中定长字段对应的固定目标字段,具体过程如情况一,此处不再赘述。然后,服务器通过虚拟交换机在第一数据包中确定除定长字段外的其他字段为变长字段,之后根据变长字段处理算法提取可变目标字段,具体过程如情况二,此处不再赘述。
服务器通过虚拟交换机在实验用户对应的第一流表中,确定固定目标字段对应的动作标识与可变目标字段对应的动作标识,具体过程此处不再赘述。
此外,如图3所示,本申请实施例提供的一种支持内容网络的可编程实验网络方法还可以执行以下操作:
步骤301,通过预先存储的图形用户界面,显示实验网络的基本信息。
其中,基本信息包括第一网络拓扑信息、第一协议、以及第一流表。
在实施中,服务器通过虚拟控制器预先存储多个应用程序,并将某一应用程序的显示界面作为图形用户界面。服务器可以在接收到预设显示指令时,显示实验网络的基本信息。例如,服务器可以在接收到显示指令时,通过图形用户界面显示数据包格式规范信息,以便服务器根据显示指令为实验用户分配用户标识。
实验用户还可以基于图形用户界面,实现实验网络的可视化管理。对虚拟控制器执行一些可视化操作,例如,图形用户界面可以将虚拟控制器获得的第一网络拓扑信息以拓扑图的形式展现出来。
本申请实施例中,图形用户界面可以由虚拟控制器提供的北向API(ApplicationProgramming Interface,应用程序编程接口)接口编程得到。
步骤302,基于图形用户界面,更改第一协议或第一流表,得到第二协议或第二流表。
在实施中,实验用户可以通过图形用户界面输入特定参数,从而对第一协议或第一流表进行删除、修改等操作。特定参数用于定义新的协议字段或者新的流表。
服务器可以通过图形用户界面,接收实验用户输入的特定参数,并基于特定参数更改第一协议或第一流表,得到第二协议或第二流表。
步骤303,发送第二协议或第二流表至实验网络中的各交换机。
在实施中,服务器通过虚拟控制器,将第二协议或第二流表发送至实验网络中的各虚拟交换机。
与其他控制器应用相比,实验用户可以在实验网络运行的任意时刻,通过图形用户界面进行协议定义、路由算法定义、以及缓存算法定义,来更新已有协议或增加新协议,或者对指定虚拟交换机直接下发特定流表指令,以实现特定的转发策略。
此外,图形用户界面可以作为控制器管理员管理整个控制器资源的操作界面,实现对虚拟控制器内部资源与运行情况的查看与调度,比如获取当前虚拟控制器开启应用的列表,并对应用进行开关的操作。图形用户界面可以展示各虚拟交换机的基本配置信息,存储的流表信息与信息中心网络中各虚拟交换机中数据包的缓存情况。
通过图形用户界面,实验网络系统为实验用户提供了清晰的实验网络全局视图,方便实验用户获悉实验网络的当前状态,发现问题,提供便捷的实验操作方式。
本申请实施例中,服务器为虚拟交换机设置了大容量缓存,以便在进行信息中心网络的相关实验时存储内容数据包。信息中心网络中,缓存算法可由实验用户自行设计,服务器基于用户自定义的缓存算法得到流表。服务器通过虚拟控制器下发的流表中都包含CS表(Content Store,内容存储表)。具体的,CS表中包含内容数据包的名称,因此,CS表项通过内容数据包的名称与缓存中的内容数据包相关联。当CS表中插入某一表项时,与该表项具有相同名称的内容数据包也将被添加到缓存中,相应的,当CS表中删除某一表项时,与该表项具有相同名称的内容数据包也将被从缓存中删除。内容数据包包括第二数据包。因此,CS表中的每条表项由内容名称以及内容名称对应的动作标识构成。
需要说明的是,本申请实施例增加了三个动作以表示虚拟交换机对缓存的操作:fetch_content(获取内容)、add_content(添加内容)和delete_content(删除内容)。当执行这三项动作时,虚拟交换机会对缓存内的内容数据包执行获取、添加或删除操作。
具体地,服务器通过虚拟交换机在CS表中查找与目标字段相匹配的动作标识时,会遵循以下流程:
如果查找到与目标字段相匹配的动作标识,则执行fetch_content动作,即获取匹配到的动作标识所属CS表项对应的内容数据包,并根据内容请求数据包进入虚拟交换机通过的端口返回该内容数据包;
如果未查找到与目标字段相匹配的动作标识,则执行goto_table(跳转表)动作,即根据实验用户预先定义的下一级流表号,将目标字段发送至下一级流表,以查找与目标字段相匹配的动作标识。
CS表中的每一条表项都包含一个定时器(content_timer),每一条表项的超时时间由实验用户设计的缓存策略设定,并通过虚拟控制器下发至各虚拟交换机,其中,超时时间包括每一条表项的存储时间。当某一条表项的定时器到期,即该条表项的存储时间到达预设的超时时间时,触发动作delete_content,此时虚拟交换机将删除定时器到期的CS表项,同时删除该CS表项对应的内容数据包。每当虚拟交换机中的CS表项因超时而被删除时,虚拟交换机向虚拟控制器发送更新后的本地内容数据包缓存情况。
实验用户可以通过设置CS表中每条表项的超时时间,控制信息中心网络中内容数据包的分布。
本申请实施例中,针对内容中心网络的实验需求,在虚拟交换机中还支持SR表(State Record,状态记录表)。实验用户在进行内容中心网络的相关实验时,可以选择使用或是不使用SR表。
SR表中的每条表项由内容数据包的名字和入端口号集合组成,入端口号集合可以包含某一虚拟交换机的多个端口号。
在使用SR表前,服务器需要通过虚拟控制器对SR表进行初始化,具体过程为:服务器通过虚拟控制器发送包含“虚拟”表项的预设初始化消息至各虚拟交换机,“虚拟”表项中携带有表号,各虚拟交换机存储接收到的“虚拟”表项,并根据接收到的“虚拟”表项建立初始化的SR表,同时确定各SR表的表号。预设初始化消息中的“虚拟”表项由虚拟控制器随机生成,只用于初始化SR表。由于初始化的SR表中各表项均由虚拟控制器随机生成,因此,在初始化的SR表中无法查找到与目标字段相匹配的SR表项。
本申请实施例中,在初始化的SR表项匹配失败时,虚拟交换机会执行跳转表动作和增加状态动作,跳转表动作的动作标识为goto_table(跳转表),增加状态动作的动作标识为add_state(增加状态),虚拟交换机执行跳转表动作时,跳转的表号由虚拟控制器确定,每当SR表中新添加的表项对应的动作标识为goto_table时,则虚拟交换机跳转到SR表初始化后获得的表号对应的表项。add_state是本申请实施例为实现SR表而增加的OpenFlow动作的动作标识,add_state用于在SR表中插入一条新的SR表项,该条表项由正在查找的内容数据包的表示内容名称的字段和该内容数据包进入虚拟交换机的端口号组成。
本申请实施例中,只有在初始化过程中,虚拟控制器可以修改SR表。服务器在通过虚拟交换机匹配目标字段的过程中,由于可以从SR表跳转到其他流表进行匹配表项的查找,因此,同虚拟控制器下发的其他流表一样,SR表的使用不会打断目标字段的匹配过程。
除add_state外,本申请实施例还增加了两个OpenFlow动作以实现对SR表的操作,两个OpenFlow动作对应的动作标识为:add_port(增加端口)和delete_state(删除状态)。add_port对应的动作用于在目标字段匹配成功时,将内容数据包进入虚拟交换机时的入端口号添加到与目标字段匹配的SR表项的入端口号集合中;delete_state对应的动作用于将与目标字段匹配的SR表项删除。
在内容中心网络中存在内容请求和数据响应两种数据包,以TLV嵌套格式表示第一数据包时,根据第一数据包类型的不同,对应的Type值也不同。因此,虚拟交换机中实际存在两个SR表,分别由两个Type值索引,即,一个内容数据包的名字在两个SR表中对应两套动作。下面说明两个SR表的具体查找匹配流程:
1、对应内容请求数据包的SR表项匹配流程
根据用户标识及类型Type值(此时类型Type值表示内容请求)在SR表中查找匹配的表项,当表项匹配成功时执行如下动作:add_port+drop,即先将第一数据包进入虚拟交换机通过的入端口添加到匹配到的SR表项的入端口集合中;之后将与第一数据包重复的内容请求直接丢弃。当表项匹配失败时执行如下动作:add_state+goto_table,即先添加一条新的SR表项,表项内容由执行查找的字段和第一数据包进入虚拟交换机通过的入端口号组成;之后跳转到指定的流表。对于本SR表的操作完成后,及时更新另一个SR表。
2、对应数据响应数据包的SR表项匹配流程
根据用户标识及类型Type值(此时类型Type值表示数据响应)在SR表中查找匹配的表项,当表项匹配成功时执行如下动作:delete_state+add_content+output,即先将匹配到的SR表项删除;再将正在匹配的目标字段插入CS表中,同时将该第一数据包缓存到虚拟交换机本地;最后根据匹配到的SR表项中的入端口集合,将本次到来的第一数据包通过单播或组播的方式转发出去。当表项匹配失败时执行如下动作:drop,即将本次到来的第一数据包直接丢弃。
实验用户可以自行选择是否使用SR表,SR表可以提高网络链路的利用率并且大幅减少冗余流量的产生。
本申请实施例提供了一种支持内容网络的可编程实验网络方法及装置,通过接收第一数据包,并根据第一数据包包含的实验用户的用户标识,确定实验用户对应的第一协议、第一协议对应的处理算法、以及实验用户对应的第一流表;之后,通过处理算法对第一数据包进行解析,得到目标字段,在第一流表中确定目标字段对应的动作标识;最后,基于该动作标识处理第一数据包。由于本方案通过用户标识确定实验用户对应的第一协议、第一流表、以及第一协议对应的处理算法,同时采用的处理算法包括定长字段处理算法、变长字段处理算法、以及混合长度字段处理算法,能够相应的处理由不同长度字段组成的第一数据包,进而能够满足各种网络的实验需求。
本申请实施例还提供了一种支持内容网络的可编程实验网络装置,如图4所示,所述装置包括:
第一接收模块410,用于接收第一数据包,其中,所述第一数据包由预设的实验用户的用户标识和预设字段组成,所述预设字段可以为定长字段、变长字段和混合长度字段中的一种,所述混合长度字段是由所述定长字段和所述变长字段拼接而成;
第一确定模块420,用于通过所述实验用户的用户标识,确定所述实验用户对应的第一协议、所述第一协议对应的处理算法、以及所述实验用户对应的第一流表,其中,所述处理算法包括定长字段处理算法、变长字段处理算法、以及混合长度字段处理算法;
解析模块430,用于通过所述处理算法,对所述第一数据包进行解析,得到目标字段,所述目标字段包括匹配字段;
第二确定模块440,用于根据所述第一流表和所述目标字段,确定所述目标字段对应的动作标识,动作标识包括丢弃动作的标识或转发动作的标识;
处理模块450,用于基于所述目标字段对应的动作标识,处理所述第一数据包。
可选的,所述装置还包括:
第二接收模块,用于接收基于预设的数据包格式规范信息编写的所述第一协议,其中,所述数据包格式规范信息包括定长字段的编写格式、变长字段的编写格式、以及混合长度字段的编写格式,所述混合长度字段编写格式由所述定长字段的编写格式与所述变长字段的编写格式组合而成;
存储模块,用于根据所述第一协议对应的数据包格式规范信息,对应存储所述实验用户的用户标识。
可选的,所述解析模块包括:
第一处理子模块,用于当所述第一数据包的预设字段为定长字段时,根据所述定长字段处理算法,获取所述第一数据包的目标字段;
第二处理子模块,用于当所述第一数据包的预设字段为变长字段时,根据所述变长字段处理算法,获取所述第一数据包的目标字段;
第三处理子模块,用于当所述第一数据包的预设字段为混合长度字段时,根据所述定长字段处理算法,获取所述混合长度字段中定长字段对应的固定目标字段,根据所述变长字段处理算法,获取所述混合长度字段中变长字段对应的可变目标字段;
拼接子模块,用于拼接所述固定目标字段和所述可变目标字段,得到所述第一数据包的目标字段。
本申请实施例提供了一种支持内容网络的可编程实验网络方法及装置,通过接收第一数据包,并根据第一数据包包含的实验用户的用户标识,确定实验用户对应的第一协议、第一协议对应的处理算法、以及实验用户对应的第一流表;之后,通过处理算法对第一数据包进行解析,得到目标字段,在第一流表中确定目标字段对应的动作标识;最后,基于该动作标识处理第一数据包。由于本方案通过用户标识确定实验用户对应的第一协议、第一流表、以及第一协议对应的处理算法,同时采用的处理算法包括定长字段处理算法、变长字段处理算法、以及混合长度字段处理算法,能够相应的处理由不同长度字段组成的第一数据包,进而能够满足各种网络的实验需求。
本申请实施例还提供了一种服务器,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,以使该节点设备执行如下步骤,该步骤包括:
接收第一数据包,其中,所述第一数据包由预设的实验用户的用户标识和预设字段组成,所述预设字段可以为定长字段、变长字段和混合长度字段中的一种,所述混合长度字段是由所述定长字段和所述变长字段拼接而成;
通过所述实验用户的用户标识,确定所述实验用户对应的第一协议、所述第一协议对应的处理算法、以及所述实验用户对应的第一流表,其中,所述处理算法包括定长字段处理算法、变长字段处理算法、以及混合长度字段处理算法;
通过所述处理算法,对所述第一数据包进行解析,得到目标字段,所述目标字段包括匹配字段;
根据所述第一流表和所述目标字段,确定所述目标字段对应的动作标识,动作标识包括丢弃动作的标识或转发动作的标识;
基于所述目标字段对应的动作标识,处理所述第一数据包。
可选的,所述接收第一数据包之前,还包括:
接收基于预设的数据包格式规范信息编写的所述第一协议,其中,所述数据包格式规范信息包括定长字段的编写格式、变长字段的编写格式、以及混合长度字段的编写格式,所述混合长度字段编写格式由所述定长字段的编写格式与所述变长字段的编写格式组合而成;
根据所述第一协议对应的数据包格式规范信息,对应存储所述实验用户的用户标识。
可选的,所述接收第一数据包之前,还包括:
发送所述第一协议至实验网络中的各交换机;
如果所述第一协议的数据包格式规范信息是变长字段的编写格式、或混合长度字段的编写格式,则生成多个第二数据包,并存储至交换机中,其中,所述第二数据包用于表示所述实验网络中存储的数据包;
获取所述实验网络的第一网络拓扑信息;
根据所述第一网络拓扑信息以及预先存储的路由算法或缓存算法,计算第一流表;
发送所述第一流表至所述各交换机。
可选的,所述通过所述处理算法,对所述第一数据包进行解析,得到目标字段,包括:
如果所述第一数据包的预设字段为定长字段,则根据所述定长字段处理算法,获取所述第一数据包的目标字段;
如果所述第一数据包的预设字段为变长字段,则根据所述变长字段处理算法,获取所述第一数据包的目标字段;
如果所述第一数据包的预设字段为混合长度字段,则根据所述定长字段处理算法,获取所述混合长度字段中定长字段对应的固定目标字段,根据所述变长字段处理算法,获取所述混合长度字段中变长字段对应的可变目标字段;
拼接所述固定目标字段和所述可变目标字段,得到所述第一数据包的目标字段。
可选的,所述方法还包括:
通过预先存储的图形用户界面,显示所述实验网络的基本信息,其中,所述基本信息包括第一网络拓扑信息、所述第一协议、以及所述第一流表;
基于所述图形用户界面,更改所述第一协议或所述第一流表,得到第二协议或第二流表;
发送所述第二协议或所述第二流表至所述实验网络中的各交换机。
机器可读存储介质可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。另外,机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processing,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例提供了一种支持内容网络的可编程实验网络方法及装置,通过接收第一数据包,并根据第一数据包包含的实验用户的用户标识,确定实验用户对应的第一协议、第一协议对应的处理算法、以及实验用户对应的第一流表;之后,通过处理算法对第一数据包进行解析,得到目标字段,在第一流表中确定目标字段对应的动作标识;最后,基于该动作标识处理第一数据包。由于本方案通过用户标识确定实验用户对应的第一协议、第一流表、以及第一协议对应的处理算法,同时采用的处理算法包括定长字段处理算法、变长字段处理算法、以及混合长度字段处理算法,能够相应的处理由不同长度字段组成的第一数据包,进而能够满足各种网络的实验需求。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (10)
1.一种支持内容网络的可编程实验网络方法,其特征在于,所述方法包括:
接收第一数据包,其中,所述第一数据包由预设的实验用户的用户标识和预设字段组成,所述预设字段可以为定长字段、变长字段和混合长度字段中的一种,所述混合长度字段是由所述定长字段和所述变长字段拼接而成;
通过所述实验用户的用户标识,确定所述实验用户对应的第一协议、所述第一协议对应的处理算法、以及所述实验用户对应的第一流表,其中,所述处理算法包括定长字段处理算法、变长字段处理算法、以及混合长度字段处理算法;
通过所述处理算法,对所述第一数据包进行解析,得到目标字段,所述目标字段包括匹配字段;
根据所述第一流表和所述目标字段,确定所述目标字段对应的动作标识,动作标识包括丢弃动作的标识或转发动作的标识;
基于所述目标字段对应的动作标识,处理所述第一数据包。
2.根据权利要求1所述的方法,其特征在于,所述接收第一数据包之前,还包括:
接收基于预设的数据包格式规范信息编写的所述第一协议,其中,所述数据包格式规范信息包括定长字段的编写格式、变长字段的编写格式、以及混合长度字段的编写格式,所述混合长度字段编写格式由所述定长字段的编写格式与所述变长字段的编写格式组合而成;
根据所述第一协议对应的数据包格式规范信息,对应存储所述实验用户的用户标识。
3.根据权利要求1所述的方法,其特征在于,所述接收第一数据包之前,还包括:
发送所述第一协议至实验网络中的各交换机;
如果所述第一协议的数据包格式规范信息是变长字段的编写格式、或混合长度字段的编写格式,则生成多个第二数据包,并存储至交换机中,其中,所述第二数据包用于表示所述实验网络中存储的数据包;
获取所述实验网络的第一网络拓扑信息;
根据所述第一网络拓扑信息以及预先存储的路由算法或缓存算法,计算第一流表;
发送所述第一流表至所述各交换机。
4.根据权利要求1所述的方法,其特征在于,所述通过所述处理算法,对所述第一数据包进行解析,得到目标字段,包括:
如果所述第一数据包的预设字段为定长字段,则根据所述定长字段处理算法,获取所述第一数据包的目标字段;
如果所述第一数据包的预设字段为变长字段,则根据所述变长字段处理算法,获取所述第一数据包的目标字段;
如果所述第一数据包的预设字段为混合长度字段,则根据所述定长字段处理算法,获取所述混合长度字段中定长字段对应的固定目标字段,根据所述变长字段处理算法,获取所述混合长度字段中变长字段对应的可变目标字段;
拼接所述固定目标字段和所述可变目标字段,得到所述第一数据包的目标字段。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过预先存储的图形用户界面,显示所述实验网络的基本信息,其中,所述基本信息包括第一网络拓扑信息、所述第一协议、以及所述第一流表;
基于所述图形用户界面,更改所述第一协议或所述第一流表,得到第二协议或第二流表;
发送所述第二协议或所述第二流表至所述实验网络中的各交换机。
6.一种支持内容网络的可编程实验网络装置,其特征在于,所述装置包括:
第一接收模块,用于接收第一数据包,其中,所述第一数据包由预设的实验用户的用户标识和预设字段组成,所述预设字段可以为定长字段、变长字段和混合长度字段中的一种,所述混合长度字段是由所述定长字段和所述变长字段拼接而成;
第一确定模块,用于通过所述实验用户的用户标识,确定所述实验用户对应的第一协议、所述第一协议对应的处理算法、以及所述实验用户对应的第一流表,其中,所述处理算法包括定长字段处理算法、变长字段处理算法、以及混合长度字段处理算法;
解析模块,用于通过所述处理算法,对所述第一数据包进行解析,得到目标字段,所述目标字段包括匹配字段;
第二确定模块,用于根据所述第一流表和所述目标字段,确定所述目标字段对应的动作标识,动作标识包括丢弃动作的标识或转发动作的标识;
处理模块,用于基于所述目标字段对应的动作标识,处理所述第一数据包。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收基于预设的数据包格式规范信息编写的所述第一协议,其中,所述数据包格式规范信息包括定长字段的编写格式、变长字段的编写格式、以及混合长度字段的编写格式,所述混合长度字段编写格式由所述定长字段的编写格式与所述变长字段的编写格式组合而成;
存储模块,用于根据所述第一协议对应的数据包格式规范信息,对应存储所述实验用户的用户标识。
8.根据权利要求6所述的装置,其特征在于,所述解析模块包括:
第一处理子模块,用于当所述第一数据包的预设字段为定长字段时,根据所述定长字段处理算法,获取所述第一数据包的目标字段;
第二处理子模块,用于当所述第一数据包的预设字段为变长字段时,根据所述变长字段处理算法,获取所述第一数据包的目标字段;
第三处理子模块,用于当所述第一数据包的预设字段为混合长度字段时,根据所述定长字段处理算法,获取所述混合长度字段中定长字段对应的固定目标字段,根据所述变长字段处理算法,获取所述混合长度字段中变长字段对应的可变目标字段;
拼接子模块,用于拼接所述固定目标字段和所述可变目标字段,得到所述第一数据包的目标字段。
9.一种服务器,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1-5任一所述的方法步骤。
10.一种机器可读存储介质,其特征在于,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现权利要求1-5任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810932884.2A CN108989333B (zh) | 2018-08-16 | 2018-08-16 | 一种支持内容网络的可编程实验网络方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810932884.2A CN108989333B (zh) | 2018-08-16 | 2018-08-16 | 一种支持内容网络的可编程实验网络方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108989333A true CN108989333A (zh) | 2018-12-11 |
CN108989333B CN108989333B (zh) | 2020-09-25 |
Family
ID=64553172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810932884.2A Active CN108989333B (zh) | 2018-08-16 | 2018-08-16 | 一种支持内容网络的可编程实验网络方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108989333B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959154A (zh) * | 2016-06-22 | 2016-09-21 | 中国科学技术大学 | 一种基于编程工具的协议无关网络的转发管理方法 |
CN106059921A (zh) * | 2016-05-06 | 2016-10-26 | 中国科学技术大学 | 一种基于sdn技术和ccn框架的网络层的内容路由系统及其工作方式 |
CN106656822A (zh) * | 2017-02-13 | 2017-05-10 | 北京邮电大学 | 一种软件定义网络流表更新的方法及装置 |
WO2017184528A2 (en) * | 2016-04-19 | 2017-10-26 | Cisco Technology, Inc. | Content routing in an ip network |
CN107749802A (zh) * | 2017-10-12 | 2018-03-02 | 北京邮电大学 | 一种支持协议无关数据包处理的实验平台及实验方法 |
CN107995032A (zh) * | 2017-11-29 | 2018-05-04 | 北京邮电大学 | 一种基于云数据中心搭建网络实验平台的方法及装置 |
-
2018
- 2018-08-16 CN CN201810932884.2A patent/CN108989333B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017184528A2 (en) * | 2016-04-19 | 2017-10-26 | Cisco Technology, Inc. | Content routing in an ip network |
CN106059921A (zh) * | 2016-05-06 | 2016-10-26 | 中国科学技术大学 | 一种基于sdn技术和ccn框架的网络层的内容路由系统及其工作方式 |
CN105959154A (zh) * | 2016-06-22 | 2016-09-21 | 中国科学技术大学 | 一种基于编程工具的协议无关网络的转发管理方法 |
CN106656822A (zh) * | 2017-02-13 | 2017-05-10 | 北京邮电大学 | 一种软件定义网络流表更新的方法及装置 |
CN107749802A (zh) * | 2017-10-12 | 2018-03-02 | 北京邮电大学 | 一种支持协议无关数据包处理的实验平台及实验方法 |
CN107995032A (zh) * | 2017-11-29 | 2018-05-04 | 北京邮电大学 | 一种基于云数据中心搭建网络实验平台的方法及装置 |
Non-Patent Citations (3)
Title |
---|
JOE MAMBRETTI: ""Openflow services for science: an international experimental research network demonstrating multi-domain automatic network topology discovery, direct dynamic path provisioning using edge signaling and control, integration with", 《2012 SC COMPANION: HIGH PERFORMANCE COMPUTING, NETWORKING STORAGE AND ANALYSIS》 * |
刘江,黄韬,张晨,张歌: "SDN试验床网络虚拟化切片机制综述", 《通信学报》 * |
汪强,葛俊强,常坤,王小东,田野: "基于协议无感知转发技术的信息中心网络:设计、实现与应用", 《计算机工程与科学》 * |
Also Published As
Publication number | Publication date |
---|---|
CN108989333B (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2181425C (en) | Link state routing device in atm communication system | |
US8826032B1 (en) | Systems and methods for network change discovery and host name resolution in storage network environments | |
CN103339887B (zh) | 用于优化网络前缀列表搜索的方法 | |
CN113542125B (zh) | 一种基于集成流表转发报文的方法及装置 | |
CN104104614B (zh) | 命名数据网络中的软件定义网络控制器系统及其方法 | |
CN107018165A (zh) | 控制物联网设备的方法及装置、服务器、移动设备 | |
CN105122748A (zh) | 实现链路聚合组的对话敏感收集的方法和系统 | |
US10122654B2 (en) | Divided hierarchical network system based on software-defined networks | |
US7187676B2 (en) | Apparatus and method for steering a communication to an open stream | |
CN108600107B (zh) | 一种可自定义内容字段的流匹配方法 | |
US20140270157A1 (en) | Internet protocol network mapper | |
CN107741859A (zh) | 基于国产cpu和os的软件包管理方法、装置及系统 | |
CN104509074A (zh) | 用于混合通信网络的地址解析机制 | |
CN106302021A (zh) | 一种网络流转发异常检测方法 | |
CN112235436A (zh) | 网络地址转换规则匹配方法及设备 | |
CN105637806B (zh) | 网络拓扑确定方法和装置、集中式网络状态信息存储设备 | |
CN107070719A (zh) | 一种设备管理方法和装置 | |
CN101145940A (zh) | 一种网管系统中搜索网元设备和建立拓扑连接的方法 | |
CN107529352A (zh) | 用于软件定义的数据中心网络的协议独立的可编程交换机(pips) | |
CN110851186B (zh) | 网络设备重启的方法、装置、电子设备及可读存储介质 | |
CN115865844B (zh) | 基于sdn与ndn的虚实结合动态流量调度方法及装置 | |
CN108989333A (zh) | 一种支持内容网络的可编程实验网络方法及装置 | |
CN101237412B (zh) | 一种分组的交付和路由选择的方法 | |
CN103891211A (zh) | 控制装置、通信系统、虚拟网络的管理方法以及程序 | |
CN104506440A (zh) | 路由器的数据包发送方法和路由表修改方法 |
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 |