CN114244919A - 一种基于协议无感知转发的ndn模态实现方法及ndn控制器应用程序 - Google Patents
一种基于协议无感知转发的ndn模态实现方法及ndn控制器应用程序 Download PDFInfo
- Publication number
- CN114244919A CN114244919A CN202111549823.6A CN202111549823A CN114244919A CN 114244919 A CN114244919 A CN 114244919A CN 202111549823 A CN202111549823 A CN 202111549823A CN 114244919 A CN114244919 A CN 114244919A
- Authority
- CN
- China
- Prior art keywords
- ndn
- message
- forwarding
- packet
- modal
- 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
- 238000000034 method Methods 0.000 title claims abstract description 87
- 230000008447 perception Effects 0.000 title abstract description 4
- 230000008569 process Effects 0.000 claims abstract description 44
- 238000012545 processing Methods 0.000 claims description 44
- 238000006243 chemical reaction Methods 0.000 claims description 18
- 230000007246 mechanism Effects 0.000 claims description 12
- 230000006855 networking Effects 0.000 claims description 4
- 239000000725 suspension Substances 0.000 claims description 2
- 238000007689 inspection Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 9
- 230000006399 behavior Effects 0.000 description 7
- 230000003993 interaction Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
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/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种基于协议无感知转发的NDN模态实现方法及NDN控制器应用程序,涉及NDN模态实现技术领域,用以解决现有POF不能直接支撑NDN的有状态转发需求且不能对TLV结构报文进行字段检查和操作的问题。本发明的技术要点包括:一个主机将NDN报文转换为NDN模态报文,NDN模态报文为NDN报文附加NDN前置头后形成的报文;多模态网络转发NDN模态报文,转发过程经过一个或多个POF交换机,在每个POF交换机中由流表流水线和有状态转发模块协同对NDN模态报文进行处理并向多模态网络发出,直至到达另一个主机;另一个主机将NDN模态报文转换为NDN报文。本发明提高了多模态网络的通用性、NDN转发的效率和NDN路由与转发策略管理的便捷性。本发明可应用于在多模态网络中运行NDN。
Description
技术领域
本发明涉及NDN模态实现技术领域,具体涉及一种基于协议无感知转发的NDN模态实现方法及NDN控制器应用程序。
背景技术
软件定义网络(Software Defined Network,SDN)是一种新型网络技术。该技术通过分离网络设备中的控制面和数据面,将各设备的控制面集中整合为可编程控制器,使网络设备的转发行为可以由控制器上的软件所定义。多模态网络是一种新型网络架构,支持多种不同的网络层协议以不同模态的形式在同一网络中同时运行。网络模态可以基于协议无感知转发(Protocol Oblivious Forwarding,POF)这一软件定义网络技术构建。
POF是当前主流SDN实现技术OpenFlow的一种改进版本。该技术通过实现一套协议无关的数据面指令集及并定义相应的南向协议,使数据面的转发工作与具体网络协议无关,赋予数据面可编程能力,从而支持新型网络协议数据的转发。
命名数据网络(Named Data Networking,NDN)是一种有状态网络层协议。该协议要求转发器实现挂起兴趣表(Pending Interest Table,PIT)和网内缓存(Content Store,CS)等有状态转发功能,即能够跨转发行为地维护数据。同时,该协议的报文格式为TLV结构,影响转发的关键子结构(名字字段等)存在起始位置不固定、结构长度不固定和结构数量不固定等特征。
基于POF实现NDN模态是困难的。主要问题如下:第一,现有SDN技术(如POF等)主要面向IP等无状态网络层协议设计,其数据面设备不具备维护数据的功能,不能直接支撑NDN的有状态转发需求。第二,现有SDN技术(如POF等)主要面向IP等固定报文结构的网络层协议设计,其数据面设备不具备对TLV结构报文的字段检查和操作功能。
发明内容
鉴于以上问题,本发明提出一种基于协议无感知转发的NDN模态实现方法及NDN控制器应用程序,用以解决现有POF不能直接支撑NDN的有状态转发需求且不能对TLV结构报文进行字段检查和操作的问题。
根据本发明一方面,提出一种基于协议无感知转发的NDN模态实现方法,该方法包括以下步骤:
步骤1.主机中的前置头处理模块接收NDN报文并对所述NDN报文执行正向转换,将NDN报文转换为NDN模态报文,并向多模态网络发出NDN模态报文;其中,所述主机是多模态网络用户使用的网络设备;所述NDN模态报文为NDN报文附加NDN前置头后形成的报文;
步骤2.多模态网络按照NDN协议转发NDN模态报文,转发过程经过一个或多个POF交换机,在每个POF交换机中由流表流水线和有状态转发模块协同对NDN模态报文进行处理并将处理后的NDN模态报文向多模态网络发出,直至到达另一个主机;
步骤3.另一个主机中的前置头处理模块接收NDN模态报文并对所述NDN模态报文执行反向转换,将NDN模态报文转换为NDN报文并发送。
进一步地,步骤1中所述NDN前置头是根据NDN报文内容生成,包括以下字段:type字段、data_out_ports字段、packet_in_port字段和name_hash字段;所述type字段用于表示NDN模态报文类型,所述data_out_ports字段用于表示NDN模态报文在被POF交换机向多模态网络转发时的转发接口编号集合;所述packet_in_port字段用于表示NDN模态报文从多模态网络输入POF交换机时的接收接口编号;所述name_hash字段有一个或多个,用于表示NDN模态报文名字组件的哈希值。
进一步地,所述NDN模态报文类型包括:未被有状态转发模块处理的NDN模态报文、已被有状态转发模块处理的NDN Interest包、已被有状态转发模块处理的普通NDN Data包、已被有状态转发模块处理的控制性NDN Data包;其中,所述控制性NDN Data包为与控制面转发策略相关的NDN Data包。
进一步地,步骤2中在每个POF交换机中由流表流水线和有状态转发模块协同对NDN模态报文按照下述步骤进行处理:流表流水线接收NDN模态报文,检查NDN前置头中的type字段:
a.当type字段表示的NDN模态报文类型为未被有状态转发模块处理的NDN模态报文,则将NDN前置头中的packet_in_port字段设置为该NDN模态报文输入POF交换机的接口编号,并向同一POF交换机上的有状态转发模块转发;有状态转发模块对所述NDN模态报文进行处理,将处理后的NDN模态报文返回给流表流水线;
b.当type字段表示的NDN模态报文类型为已被有状态转发模块处理的NDNInterest包,则将NDN前置头中的type字段设置为未被有状态转发模块处理的NDN模态报文,并在FIB表中查找该NDN模态报文对应的条目,如果FIB表存在对应的条目,则按照该条目指示的接口编号转发该NDN模态报文,否则按照POF规定的方法与POF控制器交互,使得POF控制器下发对应FIB表条目以确定转发方向;其中,FIB表为NDN转发逻辑中的转发信息表;
c.当type字段表示的NDN模态报文类型为已被有状态转发模块处理的普通NDNData包,则将NDN前置头中的type字段设置为未被有状态转发模块处理的NDN模态报文,并按照NDN前置头中data_out_ports字段表示的接口编号集转发该NDN模态报文;
d.当type字段表示的NDN模态报文类型为已被有状态转发模块处理的控制性NDNData包,则使用PacketIn消息将该NDN模态报文及其输入POF交换机的接口编号上传至POF控制器处理,同时将NDN前置头中的type字段设置为未被有状态转发模块处理的NDN模态报文,并按照NDN前置头中的data_out_ports字段指示的接口编号集转发该NDN模态报文。
进一步地,步骤2中有状态转发模块对所述NDN模态报文进行处理的步骤包括:
步骤21.对所述NDN模态报文进行解析,识别NDN数据包是NDN Data包还是NDNInterest包,若为NDN Interest包执行步骤22,若为NDN Data包执行步骤23;其中,对NDNData包进一步识别是普通NDN Data包还是控制性NDN Data包;
步骤22.查询CS中是否存在能够满足所述NDN Interest包的Data包:如果存在能够满足所述NDN Interest包的Data包则取出该Data包并丢弃原报文,将Data包转换为NDN模态报文,type字段设置为已被有状态转发模块处理的普通NDN Data包,data_out_ports字段设置为仅包含packet_in_port字段对应的接口的集合,并将处理后的NDN模态报文发送给同一POF交换机的流表流水线;其中,CS表示NDN转发逻辑中的网内缓存;
如果不存在能够满足所述NDN Interest包的Data包则查询PIT中是否存在所述NDN Interest包对应的条目,若存在对应的条目则将NDN前置头中packet_in_port对应的接口添加到上述条目的挂起接口集中并丢弃原报文,不发出任何报文;若不存在对应的条目则向PIT中添加所述NDN Interest包对应的条目,其中,挂起接口集仅包含NDN前置头中packet_in_port对应的接口;将原报文的NDN前置头中的type字段设置为已被有状态转发模块处理的NDN Interest包,并将处理后的NDN模态报文发送给同一POF交换机的流表流水线;其中,PIT表示NDN转发逻辑中的挂起兴趣表;
步骤23.将NDN Data包存储至CS,并查询PIT中是否存在所述NDN Data包对应的条目,如果不存在对应的条目则丢弃原报文,不发出任何报文;如果存在对应的条目则取出并删除PIT中所述NDN Data包对应的所有条目;将上述所有条目的挂起接口集取并集作为转发出口集合;若NDN Data包为控制性NDN Data包,则将原报文NDN前置头中的type字段设置为已被有状态转发模块处理的控制性NDN Data包,若NDN Data包为普通NDN Data包则将原报文NDN前置头中的type字段设置为已被有状态转发模块处理的普通NDN Data包;data_out_ports字段设置为转发出口集合,并将处理后的NDN模态报文发送给同一POF交换机的流表流水线。
进一步地,步骤1中对所述NDN报文执行正向转换,将NDN报文转换为NDN模态报文的过程包括:在以太网帧头与NDN报文间添加NDN前置头数据结构,形成NDN模态报文;解析所述NDN报文,获取一个或多个名字组件,计算所述名字组件的哈希值并按顺序写入NDN前置头中的name_hash字段;并将NDN前置头中的type字段设置为未被有状态转发模块处理的NDN模态报文。
进一步地,步骤3中对所述NDN模态报文执行反向转换,将NDN模态报文转换为NDN报文的过程包括:将在以太网帧头与NDN报文间的NDN前置头数据结构删除,形成NDN报文。
根据本发明另一方面,提出一种NDN控制器应用程序,所述程序运行在POF控制器中以实现NDN控制面机制并控制所述流表流水线的转发行为,具体包括:通过POF交换机向POF控制器发出的PacketIn消息获取NDN控制面机制所需的报文信息,根据所述报文信息调用网络算法,根据网络算法生成流表,通过POF控制器向POF交换机发出的PacketOut消息修改流表流水线中的流表,从而控制流表流水线的转发行为。
进一步地,所述网络算法包括三部分:流表流水线模式逻辑算法、FIB表生成逻辑算法和控制性NDN Data包处理逻辑算法。
进一步地,所述流表流水线模式逻辑算法的流程包括:调用POP API进入下层协议头;调用POP API读取协议头类型,判断是否是NDN前置头,如果不是则输出空路径,否则调用POP API读取type字段:
a.若type字段被设置为未被有状态转发模块处理的NDN模态报文,则调用POP API获取当前报文传入POF交换机的接口编号,调用POP API将packet_in_port字段的值修改为该接口编号;生成一条包含2条边的路径,其第1条边为“从NULL设备的0号接口到当前交换机的传入接口”,第2条边为“从当前交换机的指向有状态转发模块的接口到NULL设备的0号接口”;输出该路径,流程结束;
b.若type字段被设置为已被有状态转发模块处理的NDN Interest包,则调用POPAPI将type字段的值设置为未被有状态转发模块处理的NDN模态报文;调用FIB表生成逻辑算法获取该报文的转发方向;若FIB表生成逻辑算法要求丢弃该报文,则输出空路径,流程结束;否则设FIB表生成逻辑算法输出的转发方向包含i个接口,生成一条包含i+1条边的路径,其第1条边为“从NULL设备的0号接口到当前交换机的传入接口”,其余边分别为“从当前交换机的各个转发方向接口到NULL设备的0号接口”;输出该路径,流程结束;
c.若type字段被设置为已被有状态转发模块处理的普通NDN Data包,则调用POPAPI将type字段的值设置为未被有状态转发模块处理的NDN模态报文;调用POP API读取data_out_ports字段的值,分析得到该字段值所代表的接口集合;设该接口集合包含i个接口,生成一条包含i+1条边的路径,其第1条边为“从NULL设备的0号接口到当前交换机的传入接口”,其余边分别为“从当前交换机的各个集合元素接口到NULL设备的0号接口”;输出该路径,流程结束;
d.若type字段被设置为已被有状态转发模块处理的控制性NDN Data包,则调用POP API声明向控制器发送PacketIn消息;调用控制性Data包处理逻辑算法;调用POP API将type字段的值设置为未被有状态转发模块处理的NDN模态报文;调用POP API读取data_out_ports字段的值,分析得到该字段值所代表的接口集合;设该接口集合包含i个接口,生成一条包含i+1条边的路径,其第1条边为“从NULL设备的0号接口到当前交换机的传入接口”,其余边分别为“从当前交换机的各个集合元素接口到NULL设备的0号接口”;输出该路径,流程结束。
根据本发明另一方面,还提出一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如上所述的NDN模态实现方法。
根据本发明另一方面,还提出一种计算机可读存储介质,为非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现如上所述的NDN模态实现方法。
根据本发明另一方面,还提出一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行实现如上所述的NDN模态实现方法。
本发明的有益技术效果是:
本发明通过为POF数据面扩展有状态转发能力,提高了多模态网络的通用性,提高了NDN的普适性;通过将NDN转发信息存入固定结构头部,提高了NDN报文的硬件友好性,降低了NDN转发的复杂性,提高了NDN转发的效率;通过SDN实现NDN路由和转发策略,提高了NDN路由和转发策略的灵活性,提高了NDN路由和转发策略管理的便捷性。
附图说明
本发明可以通过参考下文中结合附图所给出的描述而得到更好的理解,所述附图连同下面的详细说明一起包含在本说明书中并且形成本说明书的一部分,而且用来进一步举例说明本发明的优选实施例和解释本发明的原理和优点。
图1是本发明实施例一种NDN模态实现方法的流程示意图;
图2是本发明实施例中NDN模态报文结构示意图;
图3是本发明实施例中POF交换机流表流水线转发流程示意图;
图4是本发明实施例中有状态转发模块流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,在下文中将结合附图对本发明的示范性实施方式或实施例进行描述。显然,所描述的实施方式或实施例仅仅是本发明一部分的实施方式或实施例,而不是全部的。基于本发明中的实施方式或实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式或实施例,都应当属于本发明保护的范围。
本发明实施例提供一种基于协议无感知转发的NDN模态实现方法,通过让POF架构内的交换机和控制器与本发明设计的前置头处理模块和有状态转发模块协同工作,使NDN可以在多模态网络中运行。
一种基于协议无感知转发的NDN模态实现方法实际上是一种在POF架构上实现NDN报文转发的方法,主要包括:1.一种名为NDN前置头的NDN报文扩展结构;2.一种名为前置头处理模块的扩展模块的功能描述及其参与转发过程的方法;3.一种POF交换机流表流水线设计方案;4.一种名为有状态转发模块的扩展模块的功能描述及其与流表流水线的交互方案;对应的还包括一种NDN控制器应用程序的设计方案。
在POF架构上实现NDN报文转发的方法如图1所示,其中概念解释如下:主机是指多模态网络用户使用的网络设备;POF交换机是指多模态网络转发设备;POF控制器是指多模态网络控制器程序及其运行所依附的设备;流表流水线是指POF交换机中由流表构成的用于转发数据包的程序;NDN控制器应用程序是指POF控制器中用于实现NDN控制面机制并下发流表的程序;NDN报文是指《NDN Packet Format Specification version 0.3》(https://named-data.net/doc/NDN-packet-spec/current/)所规定的NDN报文格式;NDN模态报文是指一种为NDN报文附加NDN前置头后形成的报文;前置头处理模块是指主机中一种能够将NDN报文和NDN模态报文互相转换的程序;有状态转发模块是指POF交换机中一种配合流表流水线共同完成NDN模态报文转发的程序。
本发明方法的具体流程如下:
步骤1.主机上的前置头处理模块收到NDN报文(通常情况下该NDN报文来自同主机上的NDN转发器程序)。前置头处理模块执行正向转换功能,将NDN报文转换为NDN模态报文,并向多模态网络发出NDN模态报文。
步骤2.多模态网络对该报文按NDN协议进行转发。转发过程经过若干POF交换机,最终到达某个主机或在途中终止转发。若下一跳是POF交换机则执行步骤3,若下一跳是主机则执行步骤6。
步骤3.进入POF交换机的NDN模态报文由POF交换机中的流表流水线进行处理(期间可能与POF控制器发生交互),并最终将该NDN模态报文转发给同一POF交换机中的有状态转发模块。
步骤4.有状态转发模块收到NDN模态报文后对其进行处理,并最终将一个NDN模态报文转发给同一POF交换机中的流表流水线。
步骤5.流表流水线收到NDN模态报文后对其进行处理(期间可能与POF控制器发生交互),并最终向多模态网络发出该NDN模态报文。若下一跳是POF交换机则执行步骤3,若下一跳是主机则执行步骤6。
步骤6.进入主机的NDN模态报文由主机中的前置头处理模块进行处理。前置头处理模块执行反向转换功能,将NDN模态报文转换为NDN报文并发送(通常情况下该NDN报文将发给同主机上的NDN转发器程序)。
本发明设计了一种名为NDN前置头的NDN报文扩展结构,用于实现两方面功能:
1.流表流水线识别NDN报文字段。NDN报文采用TLV格式,其特点在于字段的长度和子结构数量不固定。具体而言,TLV结构由若干包含Type、Length和Value的TLV子结构嵌套或并列构成,NDN报文中字段的类型和长度取决于对应TLV子结构的Type和Length部分,而其位置(指字段的第一个位距离报文开头的相对位置)取决于其他TLV子结构的具体情况。流表流水线的基本运行模式为“匹配-动作”模式,其特点在于只能识别固定位置上固定长度的字段。具体而言,流表流水线的处理流程由若干“匹配-动作”子流程构成,每个“匹配-动作”子流程表示“当报文头部内容符合某些匹配条件时执行某动作”,其中匹配条件由(偏移量,匹配长度,期望内容)三元组定义,即当与报文头部开始处距离为“偏移量”的长度为“匹配长度”的报文内容与“期望内容”相同时匹配成功。因此流表流水线不能直接识别NDN报文字段。
2.流表流水线和有状态转发模块间传递数据。流表流水线和有状态转发模块通过互相转发NDN模态报文实现交互,然而方法要求二者传递“报文输入接口”等额外信息,因此需要在NDN模态报文中预留二者均能识别和修改的字段以实现二者间的数据传递。
如图2所示,NDN前置头包括以下字段:
1.type字段。该字段代表本NDN模态报文的类型,可能存在4种取值:
UNPROCESSED:未被有状态转发模块处理的NDN模态报文;
INTEREST:已被有状态转发模块处理的NDN Interest包;
DATA:已被有状态转发模块处理的普通NDN Data包;
CONTROL_DATA:已被有状态转发模块处理的控制性NDN Data包。
该字段长度不低于2个二进制位。一种可行的编码方案是使用分配编号(并编码为二进制)的方式表示4种取值,例如将UNPROCESSED编号为0,INTEREST编号为1;DATA编号为2;CONTROL_DATA编号为3。
需要说明的是,NDN数据包是指NDN协议使用的数据包,分为NDN Data包和NDNInterest包,NDN报文或NDN模态报文是NDN协议的两种不同具体实现中使用的NDN数据包格式。
2.data_out_ports字段。该字段代表NDN Data包在被POF交换机向多模态网络转发时的转发接口编号集合,NDN Interest包中该字段无意义。其取值范围是POF交换机能够提供转发功能的接口的集合的幂集,例如当POF交换机有8个能够提供转发功能的接口时,该字段只能取值为一个由所述8个接口中的若干接口组成的集合。该字段长度不低于描述POF交换机最大接口数量个接口编号的最小长度。一种可行的编码方案是将该字段长度设置为POF交换机能够提供转发功能的接口数量个二进制位,其中第i位二进制置为1时代表集合中包含第i号接口,否则不包含第i号接口,例如当POF交换机有8个能够提供转发功能的接口且所编码集合由第1、2、4号接口构成时,集合可编码为11010000(二进制)。
3.packet_in_port字段。该字段代表NDN模态报文从多模态网络输入POF交换机时的接收接口编号。其取值范围是POF交换机能够提供接收功能的接口的集合,例如当POF交换机有8个能够提供接收功能的接口时,该字段只能取值为所述8个接口之一。该字段长度不低于描述1个接口编号的最小长度。一种可行的编码方法是将该字段长度设置为POF交换机能够提供接收功能的接口数量的二进制位数相同,并使用分配编号的方式表示各个接口,例如将第i个接口编号为i。
4.若干name_hash字段。该类字段分别称为name_hash_a、name_hash_b等(以此类推),分别代表NDN模态报文名字中靠前的若干名字组件的哈希值(或该名字组件不存在),即name_hash_a代表第1个名字组件的哈希值、name_hash_b代表第2个名字组件的哈希值等(以此类推)。该类字段的取值范围是所采用哈希算法的值域和一个代表该名字组件不存在的固定值的并集。该字段长度不低于区分所采用哈希算法的各种结果值和代表该名字组件不存在的固定值的最小长度。一种可行的编码方法是先确定字段长度为i个二进制位并确定代表该名字组件不存在的固定值为2i-1,而后以将任意经典哈希算法的结果对2i-1取模作为所采用的哈希算法。在所述经典哈希算法的结果长度不小于字段长度时,确定的字段长度越长,字段的抗碰撞性能越好,因此需要根据多模态网络实际需求确定字段长度。该类字段的数量不低于1,当该类字段数量低于NDN报文名字中的名字组件数量时可能会影响转发功能的正确性,因此需要根据多模态网络实际需求确定该类字段数量。后文描述以NDN前置头包含4个name_hash字段,且各个字段长度均为8个二进制位为例。
本发明设计了一种名为前置头处理模块的扩展模块,用于实现NDN报文和NDN模态报文的互相转换。NDN模态报文是本发明为基于POF实现NDN模态而提出的新型NDN报文格式,仅在多模态网络内部使用,并于进入多模态网络前和离开多模态网络后在主机上与NDN报文互相转换。NDN模态报文和NDN报文的区别在于NDN模态报文额外包含一个根据NDN报文内容生成的NDN前置头,该前置头位于以太网帧头后和NDN报文前。
前置头处理模块包含正向转换和反向转换两种功能。正向转换指将NDN报文转换为NDN模态报文,反向转换指将NDN模态报文转换为NDN报文。
正向转换的具体流程如下:
1.收到NDN报文,在以太网帧头与NDN报文间添加NDN前置头数据结构,形成NDN模态报文。2.解析该NDN报文,获取其名字的前4个名字组件,分别计算哈希值并按从前至后的顺序分别写入NDN前置头中的name_hash_a、name_hash_b、name_hash_c和name_hash_d字段。若该NDN报文的名字组件少于4个,则在不能覆盖到的name_hash字段中填入代表该名字组件不存在的固定值。3.将NDN前置头中的type字段置为UNPROCESSED。4.向多模态网络发出该NDN模态报文。
上述正向转换的流程中第2步与第3步的执行顺序是任意的。
反向转换的具体流程如下:
1.从多模态网络中收到NDN模态报文,将在以太网帧头与NDN报文间的NDN前置头数据结构删除,形成NDN报文。2.发出该NDN报文。
本发明设计了一种流表流水线,用于实现转发信息表(Forwarding InformationBase,FIB)等NDN转发逻辑并控制转发流程。流表流水线是POF交换机中用于转发报文的程序,可以从接口接受报文输入、确定报文输出接口并实施转发(或丢弃),其具体转发行为由POF控制器向POF交换机下发的流表所定义,具备一定的编程能力。FIB表与NDN技术中的同名概念意义相同,是NDN转发逻辑的一部分。
多模态网络内所有POF交换机的流表流水线(NDN模态部分)均使用同一模式,如图3所示,其转发流程如下:
步骤1.报文从多模态网络或同一POF交换机上的有状态转发模块输入流表流水线。
步骤2.按照多模态网络规定的方法对报文进行模态分流,如果报文为NDN模态报文则进入步骤3。
步骤3.检查NDN前置头中的type字段,可能有以下情况:
3.a.若type字段的值为UNPROCESSED,则进入步骤4。
3.b.若type字段的值为INTEREST,则进入步骤5。
3.c.若type字段的值为DATA,则进入步骤7。
3.d.若type字段的值为CONTROL_DATA,则进入步骤6。
步骤4.将NDN前置头中的packet_in_port字段设置为该报文输入POF交换机的接口编号,然后向同一POF交换机上的有状态转发模块转发该报文,流程结束。有状态转发模块对该报文进行处理,并可能向流表流水线发出一个NDN模态报文,当流表流水线收到该NDN模态报文后进入步骤1。
步骤5.将NDN前置头中的type字段设置为UNPROCESSED,然后在FIB表中查找该NDN报文对应的条目。如果FIB表存在对应的条目,则按照该条目指示的接口编号转发该数据包(或按照该条目的指示进行丢弃),流程结束;如果FIB表不存在本数据包对应的条目,则按照POF规定的方法与POF控制器交互,要求POF控制器下发对应FIB表条目以指示转发方向(或进行丢弃)。
步骤6.使用PacketIn消息将该报文及其输入POF交换机的接口编号上传至POF控制器,由POF控制器中的NDN控制器应用程序对报文进行处理;在发出PacketIn消息后立刻进入步骤7执行后续转发操作。进入步骤7无需等待POF控制器处理数据包,二者是异步的。
步骤7.将NDN前置头中的type字段设置为UNPROCESSED,然后按照NDN前置头中的data_out_ports字段指示的接口编号集转发该报文,流程结束。
上述流程中除步骤5的FIB表部分外均易通过编写流表实现。一种可行的根据NDNFIB表编制流表形式FIB表的方法如下:
对NDN FIB表中的每一个条目进行如下操作:1.如果该条目的名字组件数量多于4,则取其前4个名字组件作为名字。2.按顺序将名字中的名字组件转化为对name_hash字段的匹配条件,即将第1个名字组件转化为“匹配name_hash_a字段,如果name_hash_a字段的值为第一个名字组件的哈希值则匹配成功”,以此类推;如果不存在该名字组件,则对应的name_hash字段取任意值均认为匹配成功。3.将上述匹配条件作为流表项的匹配条件,即当上述匹配条件全部满足时该流表项匹配条件被满足;将名字的长度作为流表项的优先级;将该条目的转发方向转化为流表项的转发动作。4.将上述流表项加入流表。
举例而言,FIB表条目“名字前缀/A/B/C向4号接口转发”对应的流表项为“匹配条件:name_hash_a=A的哈希值且name_hash_b=B的哈希值且name_hash_c=C的哈希值且name_hash_d任意;动作:向4号接口转发;优先级:3”。
本发明设计了一种名为有状态转发模块的扩展模块,用于实现挂起兴趣表(Pending Interest Table,PIT)和网内缓存(Content Store,CS)等NDN转发逻辑。PIT表和CS与NDN技术中的桶面概念意义相同,是NDN转发逻辑的一部分。有状态转发模块位于POF交换机内,与同一POF交换机中的流表流水线协同完成一个NDN节点的转发逻辑。有状态转发模块接收该流表流水线发出的NDN模态报文,经过处理后(可能)向该流表流水线发出一个NDN模态报文,从而完成协同。
如图4所示,有状态转发模块的具体工作流程如下:
步骤1.对NDN报文进行解析,获取该报文的类型(Interest包或Data包)和名字,若该报文为Data包,还需识别该报文是否为控制性Data包(即与控制器转发策略相关的Data包,如NDN的KITE和路由自学习等机制使用的Data包)。若该报文为Interest包,则进入步骤2;否则进入步骤3。
步骤2.按照典型NDN转发器对Interest包的处理流程进行处理,直至匹配FIB表步骤之前(不包含)。具体而言:
步骤2.1.查询CS中是否存在能够满足本Interest包的Data包,如果存在则取出该Data包并进入步骤4.1;否则进入步骤2.2。
步骤2.2.查询PIT中是否存在本Interest包对应条目,如果存在则将NDN前置头中packet_in_port对应的接口添加到上述条目的挂起接口集中并进入步骤4.2;否则进入步骤2.3.
步骤2.3.向PIT中添加本Interest包对应条目,其中挂起接口集仅包含前置头中packet_in_port对应的接口。进入步骤4.3。
步骤3.按照典型NDN转发器对Data包的处理流程进行处理,直至向外转发前(不包含)。具体而言:
步骤3.1.将本Data包存储至CS,进入步骤3.2。
步骤3.2.查询PIT中是否存在本Data包对应的条目,如果不存在则进入步骤4.2;否则进入步骤3.3。
步骤3.3.取出PIT中本Data包对应的所有条目,并将这些条目从PIT中删除。将上述若干条目的挂起接口集取并集作为转发出口集合,进入步骤4.4。
步骤4.根据步骤2和步骤3的具体情况对报文中的NDN前置头进行处理,具体而言:
步骤4.1.(Interest包CS匹配命中情况)丢弃原报文。将从CS中取出的Data包转换为NDN模态报文,其中name_hash字段的设置方法与前置头处理模块正向转换相同;type字段设置为DATA;data_out_ports字段设置为仅包含packet_in_port字段对应的接口的集合,进入步骤5。
步骤4.2.(Interest包命中PIT/Data包未命中PIT情况)丢弃原报文。结束流程,即不发出任何报文。
步骤4.3.(Interest包未命中PIT情况)将原报文的NDN前置头中的type字段设置为INTEREST,进入步骤5。
步骤4.4.(Data包命中PIT情况)若该报文为控制性Data包,则将原报文NDN前置头中的type字段设置为CONTROL_DATA,否则设置为DATA;data_out_ports字段设置为转发出口集合,进入步骤5。
步骤5.将新NDN模态报文发送给同一POF交换机的流表流水线。
上述步骤2和步骤3的具体处理方法是典型NDN转发器采用的处理方法(向本方案具体情况的迁移),不是本发明的贡献。
同一个POF交换机的有状态转发模块和流表流水线协同完成一个NDN节点的转发逻辑,其交互方式为网络通信,即通过互相发送NDN模态报文完成信息传递。一个POF交换机处理一个NDN模态报文的转发流程中会发生一组流表流水线与有状态转发模块的交互,其具体流程如下:
1.POF交换机中的流表流水线接收来自多模态网络的NDN模态报文,此时报文NDN前置头中的type字段必定为UNPROCESSED。2.流表流水线执行其处理流程,将POF交换机接收该报文的接口编号写入该报文NDN前置头的packet_in_port字段,并将该报文发送给同一POF交换机上的有状态转发模块。3.有状态转发模块接收到该NDN模态报文,执行其处理流程,根据具体情况选择不发送任何报文或产生新NDN模态报文并发送给同一POF交换机上的流表流水线。有状态转发模块发出的报文NDN前置头中的type字段必定为INTEREST/DATA/CONTRAL_DATA之一。4.流表流水线收到该NDN模态报文,执行其处理流程,将该报文NDN前置头中的type字段设置为UNPROCESSED,并根据具体情况选择丢弃该报文或向多模态网络发出该报文。
所述流程中数据包两次进入流表流水线(上述步骤2和步骤4)。流表流水线区分两次进入的依据是数据包的NDN前置头中的type字段,当type字段为UNPROCESSED时按照步骤2处理,否则按照步骤4处理。
本发明设计了一种NDN控制器应用程序,用于实现NDN控制面机制并控制流表流水线的转发行为。NDN控制面机制是指控制POF交换机对NDN模态报文的具体转发方案的机制,包括路由算法、路由自学习机制和KITE机制等。NDN控制器应用程序运行在POF控制器内,通过POF交换机向POF控制器发出的PacketIn消息等POF消息获取NDN控制面机制所需的报文信息,通过POF控制器向POF交换机发出的PacketOut消息等POF消息修改流表流水线中的流表,从而控制流表流水线的转发行为。
NDN控制器应用程序基于POF的协议无感知编程(Protocol ObliviousProgramming,POP)技术实现。POP技术封装了POF控制器与POF交换机的交互细节,并代理了流表编制等工作,将控制器应用程序开发简化为两个任务:编写数据包头规范和编写网络算法。数据包头规范是协议报文的头部格式描述,用于定义可能作为流表匹配条件的字段,通过POP规定的格式编写。网络算法是对协议报文的处理逻辑,用于指示确定报文转发方向所经过的报文分析过程,通过C++语言编写。
NDN模态的数据包头规范包括两部分:以太网帧头规范和NDN前置头规范。以太网帧头规范所定义的头部字段与以太网II帧头格式完全相同,但其下层协议解析信息需包含NDN模态选项,即当其type字段的值为多模态网络为NDN模态分配的以太网type字段值时,其下层头部格式为NDN前置头。NDN前置头规范所定义的头部字段与本发明设计的NDN前置头保持一致。例如NDN前置头包含4个name_hash字段,且各个字段长度均为8个二进制位时,NDN前置头规范所定义的字段为“type:8;name_hash_a:8;name_hash_b:8;name_hash_c:8;name_hash_d:8;data_out_ports:8;packet_in_port:8”。由于NDN报文中的字段不作为流表匹配条件,因此无需定义下层协议。
POP规定网络算法必须是一个函数,其输入为报文(packet结构体,含输入接口等信息),输出为一条网络拓扑中的路径(route结构体)。当POF控制器收到POF交换机发出的PacketIn消息后,POP将以PacketIn消息携带的报文内容为参数调用网络算法,根据网络算法执行过程中对POP API的调用记录和网络算法输出的路径,生成流表并下发给POF交换机。
NDN模态的网络算法包括三部分:流表流水线模式逻辑、FIB表生成逻辑和控制性Data包处理逻辑。
流表流水线模式逻辑用于实现本发明设计的流表流水线模式,通过调用POP API分析报文并最终输出一条路径,使得POP自动编制并下发符合转发流程的流表。流表流水线模式逻辑的流程如下:
1.调用POP API进入下层协议头,进入步骤2。
2.调用POP API读取协议头类型,判断是否是NDN前置头。如果是,则进入步骤3;否则返回空路径,流程结束。
3.调用POP API读取type字段,判断type字段的值:
3.a.如果type字段的值为UNPROCESSED,则进入步骤4。
3.b.如果type字段的值为INTEREST,则进入步骤5。
3.c.如果type字段的值为DATA,则进入步骤7。
3.d.如果type字段的值为CONTROL_DATA,则进入步骤6。
4.调用POP API获取当前报文传入POF交换机的接口编号,调用POP API将packet_in_port字段的值改为该编号。生成一条包含2条边的路径,其第1条边为“从NULL设备的0号接口到当前交换机的传入接口”,第2条边为“从当前交换机的指向有状态转发模块的接口到NULL设备的0号接口”。输出该路径,流程结束。
5.调用POP API将type字段的值改为UNPROCESSED。调用FIB表生成逻辑获取该报文的转发方向(或丢弃)。若FIB表生成逻辑要求丢弃该报文,则输出空路径,流程结束;否则设FIB表生成逻辑输出的转发方向包含i个接口,生成一条包含i+1条边的路径,其第1条边为“从NULL设备的0号接口到当前交换机的传入接口”,其余边分别为“从当前交换机的各个转发方向接口到NULL设备的0号接口”。输出该路径,流程结束。
6.调用POP API声明向控制器发送PacketIn消息。调用控制性Data包处理逻辑。进入步骤7。
7.调用POP API将type字段的值改为UNPROCESSED。调用POP API读取data_out_ports字段的值,分析得到该字段值所代表的接口集合。设该接口集合包含i个接口,生成一条包含i+1条边的路径,其第1条边为“从NULL设备的0号接口到当前交换机的传入接口”,其余边分别为“从当前交换机的各个集合元素接口到NULL设备的0号接口”。输出该路径,流程结束。
FIB表生成逻辑用于实现流表流水线中的FIB表,通过调用POP API分析报文并最终输出该报文的转发方向(或丢弃),在流表流水线模式逻辑的调用下使得POP自动编制流表流水线中FIB表部分的流表。FIB表生成具体算法与本发明无关,所有能够生成NDN FIB表的FIB表生成算法均可以如下方式应用在NDN控制器应用程序中:
1.调用FIB表生成算法生成NDN FIB表,进入步骤2。
2.对于NDN FIB表的每一个条目进行如下操作,最后进入步骤3:
2.1.调用POP API读取name_hash_a的值。判断该值与该条目的第1个名字组件的哈希值是否一致,如果一致则进入步骤2.2;否则结束本条目的处理。
2.2.调用POP API读取name_hash_b的值。判断该值与该条目的第2个名字组件的哈希值是否一致,如果一致则进入步骤2.3;否则结束本条目的处理。
2.3.以步骤2.1和2.2为例类推,直至所有name_hash字段均匹配成功或该条目不存在对应名字组件。若所有名字组件均匹配成功,则返回该条目指示的转发方向(或丢弃),流程结束;若该条目不存在对应名字组件,则记录该条目。
3.若存在被记录的条目,则返回所有被记录的条目中名字组件数量最多的条目所指示的转发方向(或丢弃);否则返回NDN FIB表默认情况所指示的转发方向(或丢弃)。
控制性Data包处理逻辑用于实现对type值为CONTROL_DATA的报文的额外处理,通过避免调用POP API分析报文使得其分析逻辑不影响POP自动编制流表的结果。控制性Data包处理具体算法与本发明无关,由于无需调用POP API,具体算法通常可以直接应用在NDN控制器应用程序中。若控制性Data包处理算法需要修改FIB表内容,可以如下方式实现:
1.在FIB表生成逻辑中为可能发生修改的FIB表对应流表表项设置软状态,使相关流表表项定期失效。
2.将控制性Data包处理算法对FIB表内容的修改转换为对FIB表生成逻辑的修改。
3.当相关流表表项失效后,POF交换机遇到对应报文时会向POF控制器发出PacketIn消息,请求下发相关流表,届时FIB表将完成内容修改。
本申请实施例还提供了一种计算设备,该计算设备包括存储器、处理器和存储在存储器内并能由处理器运行的计算机程序,该计算机程序存储于存储器中的用于程序代码的空间,该计算机程序在由处理器执行时实现用于执行任一项根据本发明的方法步骤。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括用于程序代码的存储单元,该存储单元设置有用于执行根据本发明的方法步骤的程序,该程序被处理器执行。
本申请实施例还提供了一种包含指令的计算机程序产品。当该计算机程序产品在计算机上运行时,使得计算机执行根据本发明的方法步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输;所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质、光介质或者半导体介质等。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (10)
1.一种基于协议无感知转发的NDN模态实现方法,其特征在于,包括以下步骤:
步骤1.主机中的前置头处理模块接收NDN报文并对所述NDN报文执行正向转换,将NDN报文转换为NDN模态报文,并向多模态网络发出NDN模态报文;其中,所述主机是多模态网络用户使用的网络设备;所述NDN模态报文为NDN报文附加NDN前置头后形成的报文;
步骤2.多模态网络按照NDN协议转发NDN模态报文,转发过程经过一个或多个POF交换机,在每个POF交换机中由流表流水线和有状态转发模块协同对NDN模态报文进行处理并将处理后的NDN模态报文向多模态网络发出,直至到达另一个主机;
步骤3.另一个主机中的前置头处理模块接收NDN模态报文并对所述NDN模态报文执行反向转换,将NDN模态报文转换为NDN报文并发送。
2.根据权利要求1所述的一种基于协议无感知转发的NDN模态实现方法,其特征在于,步骤1中所述NDN前置头是根据NDN报文内容生成,包括以下字段:type字段、data_out_ports字段、packet_in_port字段和name_hash字段;所述type字段用于表示NDN模态报文类型,所述data_out_ports字段用于表示NDN模态报文在被POF交换机向多模态网络转发时的转发接口编号集合;所述packet_in_port字段用于表示NDN模态报文从多模态网络输入POF交换机时的接收接口编号;所述name_hash字段有一个或多个,用于表示NDN模态报文名字组件的哈希值。
3.根据权利要求2所述的一种基于协议无感知转发的NDN模态实现方法,其特征在于,所述NDN模态报文类型包括:未被有状态转发模块处理的NDN模态报文、已被有状态转发模块处理的NDN Interest包、已被有状态转发模块处理的普通NDN Data包、已被有状态转发模块处理的控制性NDN Data包;其中,所述控制性NDN Data包为与控制面转发策略相关的NDN Data包。
4.根据权利要求3所述的一种基于协议无感知转发的NDN模态实现方法,其特征在于,步骤2中在每个POF交换机中由流表流水线和有状态转发模块协同对NDN模态报文按照下述步骤进行处理:流表流水线接收NDN模态报文,检查NDN前置头中的type字段:
a.当type字段表示的NDN模态报文类型为未被有状态转发模块处理的NDN模态报文,则将NDN前置头中的packet_in_port字段设置为该NDN模态报文输入POF交换机的接口编号,并向同一POF交换机上的有状态转发模块转发;有状态转发模块对所述NDN模态报文进行处理,将处理后的NDN模态报文返回给流表流水线;
b.当type字段表示的NDN模态报文类型为已被有状态转发模块处理的NDN Interest包,则将NDN前置头中的type字段设置为未被有状态转发模块处理的NDN模态报文,并在FIB表中查找该NDN模态报文对应的条目,如果FIB表存在对应的条目,则按照该条目指示的接口编号转发该NDN模态报文,否则按照POF规定的方法与POF控制器交互,使得POF控制器下发对应FIB表条目以确定转发方向;其中,FIB表为NDN转发逻辑中的转发信息表;
c.当type字段表示的NDN模态报文类型为已被有状态转发模块处理的普通NDN Data包,则将NDN前置头中的type字段设置为未被有状态转发模块处理的NDN模态报文,并按照NDN前置头中data_out_ports字段表示的接口编号集转发该NDN模态报文;
d.当type字段表示的NDN模态报文类型为已被有状态转发模块处理的控制性NDN Data包,则使用PacketIn消息将该NDN模态报文及其输入POF交换机的接口编号上传至POF控制器处理,同时将NDN前置头中的type字段设置为未被有状态转发模块处理的NDN模态报文,并按照NDN前置头中的data_out_ports字段指示的接口编号集转发该NDN模态报文。
5.根据权利要求4所述的一种基于协议无感知转发的NDN模态实现方法,其特征在于,步骤2中有状态转发模块对所述NDN模态报文进行处理的步骤包括:
步骤21.对所述NDN模态报文进行解析,识别NDN数据包是NDN Data包还是NDNInterest包,若为NDN Interest包执行步骤22,若为NDN Data包执行步骤23;其中,对NDNData包进一步识别是普通NDN Data包还是控制性NDN Data包;
步骤22.查询CS中是否存在能够满足所述NDN Interest包的Data包:如果存在能够满足所述NDN Interest包的Data包则取出该Data包并丢弃原报文,将Data包转换为NDN模态报文,type字段设置为已被有状态转发模块处理的普通NDN Data包,data_out_ports字段设置为仅包含packet_in_port字段对应的接口的集合,并将处理后的NDN模态报文发送给同一POF交换机的流表流水线;其中,CS表示NDN转发逻辑中的网内缓存;
如果不存在能够满足所述NDN Interest包的Data包则查询PIT中是否存在所述NDNInterest包对应的条目,若存在对应的条目则将NDN前置头中packet_in_port对应的接口添加到上述条目的挂起接口集中并丢弃原报文,不发出任何报文;若不存在对应的条目则向PIT中添加所述NDN Interest包对应的条目,其中,挂起接口集仅包含NDN前置头中packet_in_port对应的接口;将原报文的NDN前置头中的type字段设置为已被有状态转发模块处理的NDN Interest包,并将处理后的NDN模态报文发送给同一POF交换机的流表流水线;其中,PIT表示NDN转发逻辑中的挂起兴趣表;
步骤23.将NDN Data包存储至CS,并查询PIT中是否存在所述NDN Data包对应的条目,如果不存在对应的条目则丢弃原报文,不发出任何报文;如果存在对应的条目则取出并删除PIT中所述NDN Data包对应的所有条目;将上述所有条目的挂起接口集取并集作为转发出口集合;若NDN Data包为控制性NDN Data包,则将原报文NDN前置头中的type字段设置为已被有状态转发模块处理的控制性NDN Data包,若NDN Data包为普通NDN Data包则将原报文NDN前置头中的type字段设置为已被有状态转发模块处理的普通NDN Data包;data_out_ports字段设置为转发出口集合,并将处理后的NDN模态报文发送给同一POF交换机的流表流水线。
6.根据权利要求5所述的一种基于协议无感知转发的NDN模态实现方法,其特征在于,步骤1中对所述NDN报文执行正向转换,将NDN报文转换为NDN模态报文的过程包括:在以太网帧头与NDN报文间添加NDN前置头数据结构,形成NDN模态报文;解析所述NDN报文,获取一个或多个名字组件,计算所述名字组件的哈希值并按顺序写入NDN前置头中的name_hash字段;并将NDN前置头中的type字段设置为未被有状态转发模块处理的NDN模态报文。
7.根据权利要求6所述的一种基于协议无感知转发的NDN模态实现方法,其特征在于,步骤3中对所述NDN模态报文执行反向转换,将NDN模态报文转换为NDN报文的过程包括:将在以太网帧头与NDN报文间的NDN前置头数据结构删除,形成NDN报文。
8.一种NDN控制器应用程序,其特征在于,所述程序运行在POF控制器中以实现NDN控制面机制并控制如权利要求1-7中任一项所述的一种基于协议无感知转发的NDN模态实现方法中所述流表流水线的转发行为,具体包括:通过POF交换机向POF控制器发出的PacketIn消息获取NDN控制面机制所需的报文信息,根据所述报文信息调用网络算法,根据网络算法生成流表,通过POF控制器向POF交换机发出的PacketOut消息修改流表流水线中的流表,从而控制流表流水线的转发行为。
9.根据权利要求8所述的一种NDN控制器应用程序,其特征在于,所述网络算法包括三部分:流表流水线模式逻辑算法、FIB表生成逻辑算法和控制性NDN Data包处理逻辑算法。
10.根据权利要求9所述的一种NDN控制器应用程序,其特征在于,所述流表流水线模式逻辑算法的流程包括:调用POP API进入下层协议头;调用POP API读取协议头类型,判断是否是NDN前置头,如果不是则输出空路径,否则调用POP API读取type字段:
a.若type字段被设置为未被有状态转发模块处理的NDN模态报文,则调用POP API获取当前报文传入POF交换机的接口编号,调用POP API将packet_in_port字段的值修改为该接口编号;生成一条包含2条边的路径,其第1条边为“从NULL设备的0号接口到当前交换机的传入接口”,第2条边为“从当前交换机的指向有状态转发模块的接口到NULL设备的0号接口”;输出该路径,流程结束;
b.若type字段被设置为已被有状态转发模块处理的NDN Interest包,则调用POP API将type字段的值设置为未被有状态转发模块处理的NDN模态报文;调用FIB表生成逻辑算法获取该报文的转发方向;若FIB表生成逻辑算法要求丢弃该报文,则输出空路径,流程结束;否则设FIB表生成逻辑算法输出的转发方向包含i个接口,生成一条包含i+1条边的路径,其第1条边为“从NULL设备的0号接口到当前交换机的传入接口”,其余边分别为“从当前交换机的各个转发方向接口到NULL设备的0号接口”;输出该路径,流程结束;
c.若type字段被设置为已被有状态转发模块处理的普通NDN Data包,则调用POP API将type字段的值设置为未被有状态转发模块处理的NDN模态报文;调用POP API读取data_out_ports字段的值,分析得到该字段值所代表的接口集合;设该接口集合包含i个接口,生成一条包含i+1条边的路径,其第1条边为“从NULL设备的0号接口到当前交换机的传入接口”,其余边分别为“从当前交换机的各个集合元素接口到NULL设备的0号接口”;输出该路径,流程结束;
d.若type字段被设置为已被有状态转发模块处理的控制性NDN Data包,则调用POPAPI声明向控制器发送PacketIn消息;调用控制性Data包处理逻辑算法;调用POP API将type字段的值设置为未被有状态转发模块处理的NDN模态报文;调用POP API读取data_out_ports字段的值,分析得到该字段值所代表的接口集合;设该接口集合包含i个接口,生成一条包含i+1条边的路径,其第1条边为“从NULL设备的0号接口到当前交换机的传入接口”,其余边分别为“从当前交换机的各个集合元素接口到NULL设备的0号接口”;输出该路径,流程结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111549823.6A CN114244919B (zh) | 2021-12-17 | 2021-12-17 | 一种基于协议无感知转发的ndn模态实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111549823.6A CN114244919B (zh) | 2021-12-17 | 2021-12-17 | 一种基于协议无感知转发的ndn模态实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114244919A true CN114244919A (zh) | 2022-03-25 |
CN114244919B CN114244919B (zh) | 2024-01-26 |
Family
ID=80758122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111549823.6A Active CN114244919B (zh) | 2021-12-17 | 2021-12-17 | 一种基于协议无感知转发的ndn模态实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114244919B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277604A (zh) * | 2022-07-09 | 2022-11-01 | 中国人民解放军战略支援部队信息工程大学 | 一种异构网络平台协同处理系统和方法 |
CN115426312A (zh) * | 2022-11-04 | 2022-12-02 | 之江实验室 | 一种大规模多模态网络中标识管理及优化转发方法和装置 |
CN116208673A (zh) * | 2023-02-13 | 2023-06-02 | 中国人民解放军战略支援部队信息工程大学 | 多样化网络模态共存的转发装置及方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150120924A1 (en) * | 2013-10-29 | 2015-04-30 | Palo Alto Research Center Incorporated | Software-defined named-data networking |
CN106100959A (zh) * | 2016-06-07 | 2016-11-09 | 北京邮电大学 | 数据传输方法及系统 |
US20170078430A1 (en) * | 2014-03-04 | 2017-03-16 | Institute Of Acoustics, Chinese Academy Of Sciences | System and method for interworking between ndn and cdn |
CN107209666A (zh) * | 2014-12-12 | 2017-09-26 | 微软技术许可有限责任公司 | 计算机系统 |
CN108834098A (zh) * | 2018-04-28 | 2018-11-16 | 长安大学 | 一种基于命名数据网络的车联网数据转发方法 |
CN109347983A (zh) * | 2018-11-30 | 2019-02-15 | 东南大学 | 一种基于网络编码的命名数据网络中多路径转发方法 |
US20190132282A1 (en) * | 2017-08-11 | 2019-05-02 | Peking University Shenzhen Graduate School | Ndn and ip fusion network content control method and apparatus, and storage medium |
CN113220679A (zh) * | 2021-04-29 | 2021-08-06 | 天津大学 | 面向多模态网络的混合型fib存储结构及其数据处理方法 |
CN113765808A (zh) * | 2021-06-16 | 2021-12-07 | 北京交通大学 | 一种网络路由方法、系统、装置及电子设备 |
-
2021
- 2021-12-17 CN CN202111549823.6A patent/CN114244919B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150120924A1 (en) * | 2013-10-29 | 2015-04-30 | Palo Alto Research Center Incorporated | Software-defined named-data networking |
US20170078430A1 (en) * | 2014-03-04 | 2017-03-16 | Institute Of Acoustics, Chinese Academy Of Sciences | System and method for interworking between ndn and cdn |
CN107209666A (zh) * | 2014-12-12 | 2017-09-26 | 微软技术许可有限责任公司 | 计算机系统 |
CN106100959A (zh) * | 2016-06-07 | 2016-11-09 | 北京邮电大学 | 数据传输方法及系统 |
US20190132282A1 (en) * | 2017-08-11 | 2019-05-02 | Peking University Shenzhen Graduate School | Ndn and ip fusion network content control method and apparatus, and storage medium |
CN108834098A (zh) * | 2018-04-28 | 2018-11-16 | 长安大学 | 一种基于命名数据网络的车联网数据转发方法 |
CN109347983A (zh) * | 2018-11-30 | 2019-02-15 | 东南大学 | 一种基于网络编码的命名数据网络中多路径转发方法 |
CN113220679A (zh) * | 2021-04-29 | 2021-08-06 | 天津大学 | 面向多模态网络的混合型fib存储结构及其数据处理方法 |
CN113765808A (zh) * | 2021-06-16 | 2021-12-07 | 北京交通大学 | 一种网络路由方法、系统、装置及电子设备 |
Non-Patent Citations (3)
Title |
---|
胡晓艳;郑少琦;龚俭;程光;臧小东;: "基于网络编码的命名数据网络研究", 通信学报, no. 1 * |
胡晓艳;龚俭;: "命名数据网络NDN的域间多路径路由机制", 通信学报, no. 10 * |
邬江兴;: "多模态智慧网络与内生安全", 网信军民融合, no. 11 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277604A (zh) * | 2022-07-09 | 2022-11-01 | 中国人民解放军战略支援部队信息工程大学 | 一种异构网络平台协同处理系统和方法 |
CN115277604B (zh) * | 2022-07-09 | 2023-04-25 | 中国人民解放军战略支援部队信息工程大学 | 一种异构网络平台协同处理系统和方法 |
CN115426312A (zh) * | 2022-11-04 | 2022-12-02 | 之江实验室 | 一种大规模多模态网络中标识管理及优化转发方法和装置 |
CN116208673A (zh) * | 2023-02-13 | 2023-06-02 | 中国人民解放军战略支援部队信息工程大学 | 多样化网络模态共存的转发装置及方法 |
CN116208673B (zh) * | 2023-02-13 | 2024-05-07 | 中国人民解放军战略支援部队信息工程大学 | 多样化网络模态共存的转发装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114244919B (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114244919A (zh) | 一种基于协议无感知转发的ndn模态实现方法及ndn控制器应用程序 | |
US11016673B2 (en) | Optimizing serverless computing using a distributed computing framework | |
JP2019095861A (ja) | ニューラルネットワーク装置 | |
US9110884B2 (en) | Message publishing and subscribing method and apparatus | |
US9882801B2 (en) | Providing full point-to-point communications among compute nodes of an operational group in a global combining network of a parallel computer | |
US11398981B2 (en) | Path creation method and device for network on chip and electronic apparatus | |
US8495593B2 (en) | Method and system for state machine translation | |
US11252076B2 (en) | Data forwarding method and apparatus | |
CN113918126B (zh) | 一种基于图算法的ai建模流程编排方法和系统 | |
US8194678B2 (en) | Providing point to point communications among compute nodes in a global combining network of a parallel computer | |
US9880923B2 (en) | Model checking device for distributed environment model, model checking method for distributed environment model, and medium | |
US20110200040A1 (en) | Extremum route determining engine and method | |
KR101800320B1 (ko) | 버스 프로토콜 기반의 네트워크 온 칩 시스템, 그 설계 방법 및 그 설계 방법에 관한 프로그램이 기록된 컴퓨터 판독가능 기록매체 | |
CN114079634B (zh) | 一种报文转发方法、装置及计算机可读存储介质 | |
CN114422453A (zh) | 一种在线规划时间敏感流的方法、装置及存储介质 | |
JP3765487B2 (ja) | 光パス設計方法及びその実施装置並びにその処理プログラムと記録媒体 | |
CN116346711B (zh) | 基于行为树的路由协议表征方法、介质及通信方法 | |
CN113708966B (zh) | 一种交换机网络化在线配置方法、系统和设备 | |
CN113765805B (zh) | 基于调用的通信方法、装置、存储介质及设备 | |
CN115250251B (zh) | 片上网络仿真中的传输路径规划方法、装置、电子设备及计算机可读存储介质 | |
CN116346746B (zh) | 一种多级可编程编辑的报文处理方法 | |
US11909641B2 (en) | Forwarding table validation | |
WO2023173912A1 (zh) | 一种处理单元pe阵列的配置方法和相关设备 | |
WO2022187375A1 (en) | Dependency-based data routing for distributed computing | |
CN116319628A (zh) | 一种基于dpdk的sdn网络数据转发方法及装置 |
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 |