CN114363240B - 网络转发设备和数据转发方法 - Google Patents
网络转发设备和数据转发方法 Download PDFInfo
- Publication number
- CN114363240B CN114363240B CN202210059131.1A CN202210059131A CN114363240B CN 114363240 B CN114363240 B CN 114363240B CN 202210059131 A CN202210059131 A CN 202210059131A CN 114363240 B CN114363240 B CN 114363240B
- Authority
- CN
- China
- Prior art keywords
- data
- message
- cache
- description table
- response
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000012545 processing Methods 0.000 claims abstract description 53
- 238000004364 calculation method Methods 0.000 claims abstract description 32
- 230000004044 response Effects 0.000 claims description 215
- 230000006870 function Effects 0.000 claims description 161
- 238000013500 data storage Methods 0.000 claims description 91
- 238000005538 encapsulation Methods 0.000 claims description 32
- 238000004891 communication Methods 0.000 claims description 27
- 238000004458 analytical method Methods 0.000 claims description 17
- 238000004806 packaging method and process Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 description 11
- 238000012546 transfer Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种网络转发设备和数据转发方法。该网络转发设备和数据转发方法的一具体实施方式通过在网络转发设备中增加分布式函数描述表项缓存和数据处理模块,在网络转发设备上就实现了对数据的处理,进而实现了分布式的网内计算,使得数据能够在网络上流动中得到处理成为可能。
Description
技术领域
本公开涉及网络数据交换设备领域,具体涉及网络转发设备和数据转发方法。
背景技术
经过几十年的高速发展,当今世界互联网已经成为信息时代的重要基础设施,传统的基于IP协议(Internet Protocol,互联网协议)的包交换只提供尽力而为的数据包投递服务,IP地址本质上是描述了一种层次化的“位置”信息,传统的网络只需要根据IP地址建立设备与终端之间的通信会话即可,IP地址本身并不与报文的“内容”产生任何关联。现在,主宰着互联网的应用主要向用户提供两种业务:内容和服务。同时,用户不再关注内容和服务的位置,而是内容和服务本身的获取,包括内容和服务的检索、传输速率、服务质量、安全性等。而信息网络底层的IP协议并没有做出针对性的改变,IP层只根据“位置”信息完成数据包的转发,这就需要上层应用来完成由“内容”向“位置”的映射,使网络的整体效率变低。为此,业内提出了以内容为中心的NDN网络(Named Data Networking,命名数据网络),这种网络以名字(name)作为内容索引的唯一依据,并利用名字代替IP进行路由和转发,从而使得网络设备有了感知报文内容的可能。
发明内容
本公开提出了网络转发设备和数据转发方法。
第一方面,本公开提供了一种网络转发设备,包括:报文缓存、报文解析模块、数据存储位置表项缓存、待处理数据描述表项缓存、分布式函数描述表项缓存、数据处理模块,转发路由表项缓存和报文封装模块,所述报文解析模块分别与所述报文缓存、所述数据存储位置表项缓存和所述待处理数据描述表项缓存通信连接,所述数据处理模块分别与所述报文缓存、所述待处理数据描述表项缓存和所述分布式函数描述表项缓存通信连接,所述报文封装模块分别与所述报文缓存、所述数据存储位置表项缓存、所述分布式函数描述表项缓存和所述转发路由表项缓存通信连接,所述数据存储位置表项缓存分别与所述报文缓存、所述分布式函数描述表项缓存和所述待处理数据描述表项缓存通信连接,所述待处理数据描述表项缓存和所述分布式函数描述表项缓存通信连接,所述分布式函数描述表项缓存和所述转发路由表项缓存通信连接,其中:
所述报文缓存,用于存储数据报文,以及将所述数据报文在所述报文缓存的存储位置添加到所述数据报文中后发送给所述报文解析模块;
所述报文解析模块,用于解析数据报文得到所述数据报文的描述信息,所述描述信息包括以下至少一项:数据名称、报文类型、报文长度、入端口信息以及在所述报文缓存中的存储位置;
所述数据存储位置表项缓存,用于缓存数据存储位置表项,所述数据存储位置表项包括所述报文缓存中存储的数据报文的数据名称和存储位置;
所述待处理数据描述表项缓存,用于缓存待处理数据描述表项,所述待处理数据描述表项包括所述网络转发设备已收到、且未返回相应的响应数据的数据请求报文中的数据名称和相应的入端口信息集合;
所述分布式函数描述表项缓存,用于缓存分布式函数描述表项,所述分布式函数描述表项包括至少一个输入数据名称、运算函数名称和输出数据名称;
所述数据处理模块,用于按照预设的运算逻辑对所述报文缓存中存储的数据进行运算,并将运算结果发送至所述报文缓存存储;
所述转发路由表项缓存,用于缓存路由表项,所述路由表项包括数据名称和相应的出端口信息;
所述报文封装模块,用于将从所述报文缓存中取出的数据封装后发送给从所述转发路由表项缓存收到的出端口信息指示的出端口。
在一些可选的实施方式中,所述数据处理模块包括以下至少一项:中央处理器CPU、图形处理器GPU、重构或异构处理核心。
在一些可选的实施方式中,所述数据存储位置表项缓存、所述转发路由表项缓存和所述分布式函数描述表项缓存为三态内容寻址存储器或随机存取存储器。
在一些可选的实施方式中,所述报文缓存为分布式缓存。
在一些可选的实施方式中,所述路由表项为上层协议栈或网络管理者下发的路由表项。
在一些可选的实施方式中,所述报文解析模块和所述报文封装模块为状态机电路。
在一些可选的实施方式中,所述报文解析模块和所述报文缓存之间以及所述报文缓存和所述报文封装模块之间通过AXI-Stream接口通信连接,所述报文解析模块的输入端和所述报文封装模块的输出端为AXI-Stream接口。
第二方面,本公开提供了一种数据转发方法,应用于如第一方面中任一实现方式描述的网络转发设备,该方法包括:
所述报文缓存存储数据报文,以及将所述数据报文在所述报文缓存的存储位置添加到所述数据报文中后发送给所述报文解析模块;
所述报文解析模块响应于收到数据请求报文,将所述数据请求报文发送给所述数据存储位置表项缓存,所述数据请求报文包括:请求数据名称、入端口信息和在所述报文缓存中的存储位置;
所述数据存储位置表项缓存响应于收到所述数据请求报文,确定所述数据存储位置表项缓存中是否存在所述数据请求报文中的请求数据名称;响应于确定存在,将所述数据请求报文发送给所述报文封装模块;响应于确定不存在,将所述数据请求报文发送给所述待处理数据描述表项缓存;
所述报文封装模块响应于收到数据报文,按照所收到数据报文中的存储位置从所述报文缓存中读取报文并封装成数据响应报文后发送给目标出端口,其中,所述目标出端口是所述报文封装模块从所述转发路由表项缓存收到的与所收到数据报文对应的出端口信息指示的出端口;
所述待处理数据描述表项缓存响应于收到所述数据请求报文,确定所述待处理数据描述表项缓存中是否存在所述数据请求报文中的请求数据名称;响应于确定不存在,将所述数据请求报文发送给所述分布式函数描述表项缓存;响应于确定存在,将所述数据请求报文中的入端口信息添加到所述待处理数据描述表项缓存中所述数据请求报文中的请求数据名称对应的入端口信息集合中,以及丢弃所述数据请求报文;
所述分布式函数描述表项缓存响应于收到所述数据请求报文,在所述分布式函数描述表项缓存中查询输出数据名称与所述数据请求报文中请求数据名称匹配的分布式函数描述表项;响应于未找到,将所述数据请求报文发送给所述转发路由表项缓存;响应于查找到,生成请求所查到的分布式函数描述表项中各输入数据名称对应的数据的新的数据请求报文,以及将所生成的各数据请求报文发送给所述数据存储位置表项缓存。
在一些可选的实施方式中,所述方法还包括:
所述报文解析模块响应于收到数据响应报文,将所述数据响应报文发送给所述待处理数据描述表项缓存,所述数据响应报文包括:响应数据名称、运算所需数据名称、入端口信息和在所述报文缓存中的存储位置;
所述待处理数据描述表项缓存响应于收到所述数据响应报文,确定所述待处理数据描述表项缓存中是否存在所述数据响应报文中的响应数据名称;响应于确定存在,向所述数据存储位置表项缓存发送第一信号和所述数据响应报文;响应于确定不存在,向所述数据存储位置表项缓存发送第二信号和所述数据响应报文;
所述数据存储位置表项缓存响应于收到所述第一信号和所述数据响应报文,以及响应于确定所述数据响应报文正确,用所述数据响应报文中响应数据名称和存储位置生成数据存储位置表项并存储到所述数据存储位置表项缓存中,以及将所述数据响应报文发送给所述分布式函数描述表项缓存;
所述数据存储位置表项缓存响应于收到所述第二信号和所述数据响应报文,向所述报文缓存发送第三信号和所述数据响应报文;
所述报文缓存响应于收到所述第三信号和所述数据响应报文,释放所述数据响应报文占用的空间;
所述分布式函数描述表项缓存响应于收到所述数据响应报文,在所述分布式函数描述表项缓存中查询输出数据名称与所述数据响应报文中的响应数据名称匹配的分布式函数描述表项;响应于查询到,将所述数据响应报文发送给所述报文封装模块;响应于未查询到,在所述分布式函数描述表项缓存中查询输入数据名称包括所述数据响应报文中的响应数据名称的分布式函数描述表项;响应于查询到,将查到的分布式函数描述表项和所述数据响应报文中的存储位置作为计算任务发送给所述数据处理模块;
所述数据处理模块响应于收到计算任务以及对所述计算任务进行检查通过,按照所述计算任务中的存储位置从所述报文缓存中读取数据,并基于所读取的数据执行所述计算任务中分布式函数描述表项中运算函数名称对应的指令序列,将运算结果作为与所述计算任务中分布式函数描述表项中输出数据名称对应的数据存储到所述报文缓存中,以及基于所述计算任务中的数据响应报文和所述运算结果生成新的数据响应报文,并将新的数据响应报文发送给所述待处理数据描述表项缓存。
在一些可选的实施方式中,所述方法还包括:
所述转发路由表项缓存响应于收到数据报文,在所述转发路由表项缓存中查询与所收到数据报文中的数据名称对应的出端口信息;响应于查找到,将所查到的出端口信息发送给所述报文封装模块;响应于未找到,丢弃所收到的数据报文。
申请人通过实践分析发现,传统的NDN网络设备中,报文的转发并不涉及内容的修改,因此报文内容也仅仅是在网络设备中静静的暂存而已,进出网络转发设备的数据报文的内容并没有本质的改变。然而,随着边沿计算、5G(5th generation mobile networks或5th generation wireless systems、5th-Generation,第五代移动通信技术)、物联网的技术发展,海量数据产生的位置与处理的位置并不天然的在一起。很有可能数据产生在端侧,但需要传送到云侧后数据才能够得到处理,大量数据的传输与搬移消耗的宝贵的网络带宽,同时数据传输带来的处理延时的增加也成为阻碍业务应用与发展的障碍。
为解决现有技术中存在的上述缺陷,本公开提供的网络转发设备和数据转发方法,通过在网络转发设备中增加分布式函数描述表项缓存和数据处理模块,且数据处理模块分别与报文缓存、待处理数据描述表项缓存和分布式函数描述表项缓存通信连接,分布式函数描述表项缓存分别与待处理数据描述表项缓存、数据存储位置表项缓存、转发路由表项缓存、报文封装模块和数据处理模块通信连接。其中,分布式函数描述表项缓存于缓存分布式函数描述表项,分布式函数描述表项包括至少一个输入数据名称、运算函数名称和输出数据名称。而数据处理模块用于按照预设的运算逻辑对报文缓存中存储的数据进行运算,并将运算结果发送至报文缓存存储。实现了在数据传输的过程中就可进行数据内容处理,能够显著提高整个网络的转发效率和智能化水平。
上述网络转发设备及数据转发方法可以实现包括但不限于以下技术效果:
1、通过采用数据名称(name)作为报文标识,并根据数据成进行路由转发与查表处理,摆脱了传统互联网以IP地址为地址(位置)索引所带来的对业务支持不灵活的问题,避免了上层协议再进行IP地址向报文内容的映射过程,提供了系统效率,使得任意位置任意业务类型的无差别网络服务成为可能。
2、通过基于数据名称在网络转发设备(网络节点)上对报文进行大容量的缓存,使得对服务与内容的获取不必非得经过较长的访问路径到内容产生的地方获取,尤其是对于需要频繁读取的内容,采用本方案,相关内容可直接缓存在离用户非常近的网络节点上,有效地减少了网络通信带宽成本,并可以对用户提供更低延时的网络服务。
3、通过在网络转发设备上集成数据处理模块,并根据分布式函数描述表项缓存中的分布式函数描述表项,在网络转发设备上就实现了对数据的处理,进而实现了分布式的网内计算,使得数据能够在网络上流动中得到处理成为可能。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显:
图1是根据本公开的网络转发设备的一个实施例的结构示意图;
图2A是根据本公开的应用于网络转发设备的数据转发方法的一个实施例的流程图;
图2B是根据本公开的应用于网络转发设备的数据转发方法的又一个实施例的流程图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
图1示出了根据本公开的网络转发设备的一个实施例的结构示意图。
如图1所示,网络转发设备100可以包括报文缓存101、报文解析模块102、数据存储位置表项缓存103、待处理数据描述表项缓存104、分布式函数描述表项缓存105、数据处理模块106,转发路由表项缓存107和报文封装模块108。其中:
报文解析模块102分别与报文缓存101、数据存储位置表项缓存103和待处理数据描述表项缓存104通信连接。
数据处理模块106分别与报文缓存101、待处理数据描述表项缓存104和分布式函数描述表项缓存105通信连接。
报文封装模块108分别与报文缓存101、数据存储位置表项缓存103、分布式函数描述表项缓存105和转发路由表项缓存107通信连接。
数据存储位置表项缓存103分别与报文缓存101、分布式函数描述表项缓存105和待处理数据描述表项缓存104通信连接。
待处理数据描述表项缓存104和分布式函数描述表项缓存105通信连接。
分布式函数描述表项缓存105和转发路由表项缓存107通信连接。
报文缓存101,用于存储数据报文,以及将数据报文在报文缓存101的存储位置添加到数据报文中后发送给报文解析模块102。例如,如图1所示,数据报文pkt_in可以从报文解析模块102的o接口进入报文解析模块102,并由报文解析模块102通过接口p发送给报文缓存101,报文缓存101将数据报文pkt_in存储在报文缓存101中,并将数据报文pkt_in在报文缓存101中的存储位置写入数据报文pkt_in中的存储位置字段,再将写入存储位置字段后的数据报文pkt_in通过接口p返回给报文解析模块102。
在一些可选的实施方式中,报文缓存101可以为分布式缓存。采用分布式缓存可以扩大报文缓存101能够访问的数据报文数量,使得对服务与内容的获取不必非得经过较长的访问路径到内容产生的地方获取,尤其是对于需要频繁读取的内容,可直接缓存在离用户非常近的网络节点,有效的降低了网络通信带宽要求,并可以对用户提供更低延时的网络服务。
报文解析模块102,用于解析数据报文得到数据报文的描述信息。这里,描述信息可以包括以下至少一项:数据名称、报文类型、报文长度、入端口信息以及在报文缓存中的存储位置。其中,报文类型用于指示数据报文是数据请求报文还是数据响应报文,相应地,当数据报文为数据请求报文时,数据名称可以是请求数据名称;当数据报文为数据响应报文时,数据名称可以是响应数据名称。而报文长度可以是数据报文的长度,入端口信息可以是该数据报文所来自的端口信息,存储位置则是该数据报文在报文缓存101中的存储位置。报文解析模块102可以通过a接口向数据存储位置表项缓存103传送数据,以及可以通过接口b向待处理数据描述表项缓存104传送数据。
为实现报文解析功能,报文解析模块102可以采用状态机电路来实现。
数据存储位置表项缓存103,用于缓存数据存储位置表项,数据存储位置表项可以包括报文缓存中存储数据报文的数据名称和存储位置。即,该缓存数据存储位置表项中记录了报文缓存101中存储的数据报文对应的请求数据名称或者响应数据名称以及相应的数据报文在报文缓存101中的存储位置。
待处理数据描述表项缓存104,用于缓存待处理数据描述表项,待处理数据描述表项可以包括网络转发设备100已收到、且未返回相应的响应数据的数据请求报文中的数据名称和相应的入端口信息集合。即,待处理数据描述表项缓存104记录了已经发出数据请求但未得到响应的数据名称以及该数据请求来自于哪个端口。
分布式函数描述表项缓存105,用于缓存分布式函数描述表项,分布式函数描述表项可以包括至少一个输入数据名称、运算函数名称和输出数据名称。即,分布式函数描述表项描述了进行数据运算所需的输入参数名、函数名和输出参数名。其中,输入参数名和输出参数名可以对应于数据响应报文或数据请求报文中的数据名称。
如果数据请求报文中的数据名称与分布式函数描述中的输入参数名匹配,表明该数据请求报文所请求的数据其实是该分布式函数对应的输入参数,即可以在该数据请求报文相应的数据响应报文返回后作为该分布式函数的输入参数。
如果数据请求报文中的数据名称与分布式函数描述中的输出参数名匹配,表明该数据请求报文所请求的数据是该分布式函数对应的输出参数,即可以需要基于该分布式函数对应的输入参数用该分布式函数运算后得到的运算结果作为该数据请求报文所请求的数据。
如果数据响应报文中的数据名称与分布式函数描述中的输入参数名匹配,表明该数据响应报文所响应的数据是该分布式函数需要的输入参数,即可以在该分布式函数的输入参数对应的数据响应报文都返回后,基于该分布式函数的输入参数利用该分布式函数进行运算,并将结果作为输出参数对应的数据请求报文返回。
如果数据响应报文中的数据名称与分布式函数描述中的输出参数名匹配,表明该数据响应报文所响应的数据是该分布式函数对应的输出参数,不需要对数据响应报文对应的数据进行计算,即可以将该数据响应报文直接转发。
数据处理模块106,用于按照预设的运算逻辑对报文缓存101中存储的数据进行运算,并将运算结果发送至报文缓存101存储。这里,每个预设的运算逻辑可以对应于分布式函数描述表项缓存105中存储的分布式函数描述表项中的相应运算函数名称。预设的运算逻辑对应的指令序列可以存储于数据处理模块106中,也可以存储于分布式函数描述表项缓存105中。需要说明的是,数据处理模块106可以是具备数据处理、计算、运算功能的模块。
在一些可选的实施方式中,数据处理模块106可以包括以下至少一项:中央处理器(CPU,Central Processing Unit)、图形处理器(GPU,Graphics Processing Unit)、重构或异构处理核心。
转发路由表项缓存107,用于缓存路由表项,路由表项可以包括数据名称和相应的出端口信息。即,路由表项中记录了不同的数据将从哪个出端口转发出去。这里,转发路由表项缓存107中缓存的路由表项具体可以是由上层协议栈或网络管理者下发的。
报文封装模块108,用于将从报文缓存101中取出的数据封装后发送给从转发路由表项缓存107收到的出端口信息指示的出端口。
为实现报文封装功能,报文封装模块108可以采用状态机电路来实现。
在一些可选的实施方式中,数据存储位置表项缓存103、转发路由表项缓存107和分布式函数描述表项缓存105可以为TCAM(Ternary Content Addressable Memory,三态内容寻址存储器)或RAM(Random Access Memory,随机存取存储器)。当采用TCAM时,可以实现既能进行精确匹配查找,又能进行模糊匹配查找,且可以提高查找效率。
报文解析模块102和报文缓存101之间通信的p接口、报文缓存101和报文封装模块108之间通信的r接口可以为AXI-Stream接口。报文解析模块102的输入端的o接口和报文封装模块108的输出端s接口也可以为AXI-Stream接口。而图1中所示的其他接口,比如以下接口可以是总线接口:
报文解析模块102向数据存储位置表项缓存103传送数据或信号的a接口;
报文解析模块102向待处理数据描述表项缓存104传送数据或信号的b接口;
分布式函数描述表项缓存105向数据存储位置表项缓存103传送数据或信号的c接口;
分布式函数描述表项缓存105向转发路由表项缓存107传送数据或信号的d接口;
数据存储位置表项缓存103向待处理数据描述表项缓存104传送数据或信号的e接口;
分布式函数描述表项缓存105向待处理数据描述表项缓存104传送数据或信号的f接口;
转发路由表项缓存107向报文封装模块108传送数据或信号的g接口;
待处理数据描述表项缓存104向数据存储位置表项缓存103传送数据或信号的h接口;
数据存储位置表项缓存103向报文缓存101传送数据或信号的i接口;
数据存储位置表项缓存103向报文封装模块108传送数据或信号的j接口;
数据处理模块106向报文缓存101传送数据或信号的m接口;
报文缓存101向数据处理模块106传送数据或信号的n接口。
作为网络转发设备的主要功能,数据转发操作是必不可少的。为了实现数据转发,请参考图2A,图2A示出了根据本公开的应用于网络转发设备的数据转发方法的流程200。该流程200可应用于如图1所示的网络转发设备。该应用于网络转发设备的数据转发操作流程200包括以下步骤:
步骤201,报文缓存存储数据报文,以及将数据报文在报文缓存的存储位置添加到数据报文中后发送给报文解析模块。
在本实施例中,网络转发设备100中的报文缓存101可以在收到数据报文后,存储数据报文,再获取该数据报文在报文缓存101的存储位置,以及将上述存储位置写入到数据报文中相应存储位置字段,再将写入存储位置后的存储报文发送给报文解析模块102。
在一些可选的实施方式中,报文缓存101收到的数据报文可以是报文解析模块102从其报文输入接口即o接口收到并转发给报文缓存101的。
步骤202,报文解析模块响应于收到数据请求报文,将数据请求报文发送给数据存储位置表项缓存。
这里,报文解析模块102可以在接收到数据报文后,首先解析数据报文。需要说明的是,报文解析模块102解析数据报文可以得到以下信息:报文类型、数据名称、入端口信息和存储位置。其中,报文类型可以包括两种,数据请求报文类型和数据响应报文类型。即,报文类型用于指示数据报文是数据请求报文还是数据响应报文。当数据报文为数据请求报文时,数据名称为该数据报文所请求的数据的数据名称,当数据报文为数据响应报文时,数据名称为该数据报文所携带或者包括的数据的数据名称。而入端口信息表明该数据报文来自于哪个入端口。存储位置表明该数据报文在报文缓存中的存储位置。如果通过解析确定数据报文为数据请求报文则可以通过a接口将该数据请求报文发送给数据存储位置表项缓存103。
步骤203,数据存储位置表项缓存响应于收到数据请求报文,确定数据存储位置表项缓存中是否存在数据请求报文中的请求数据名称。
由于缓存数据存储位置表项中记录了报文缓存101中存储的数据报文对应的请求数据名称或者响应数据名称以及相应的数据报文在报文缓存101中的存储位置,如果确定数据存储位置表项缓存中存在数据请求报文中的请求数据名称,表明报文缓存101中已经存储了该数据请求报文所请求的数据,则可以转到步骤204,直接将将数据请求报文发送给报文封装模块108进行封装后送出。反之,如果确定数据存储位置表项缓存中不存在数据请求报文中的请求数据名称,表明报文缓存101中没有该数据请求报文所请求的数据,则可以转到步骤206,以进一步确定该数据请求报文所请求的数据是否曾经被请求过。
步骤204,数据存储位置表项缓存将数据请求报文发送给报文封装模块。
这里,数据存储位置表项缓存可以在确定报文缓存101中已经存储了该数据请求报文所请求的数据的情况下,通过j接口将数据请求报文发送给报文封装模块108,并转到步骤205执行。
步骤205,报文封装模块响应于收到数据报文,按照所收到数据报文中的存储位置从报文缓存中读取报文并封装成数据响应报文后发送给目标出端口。
这里,报文封装模块108可以在收到数据报文(例如,数据请求报文或数据响应报文)后,按照所收到数据报文中的存储位置从报文缓存101中通过r接口读取报文并封装成数据响应报文后,通过s接口发送给目标出端口,进而完成对数据报文的数据转发操作。其中,目标出端口是报文封装模块108从转发路由表项缓存107收到的与所收到数据报文对应的出端口信息指示的出端口。
步骤206,数据存储位置表项缓存将数据请求报文发送给待处理数据描述表项缓存。
这里,数据存储位置表项缓存103可以在确定报文缓存101中没有该数据请求报文所请求的数据的情况下,通过e接口将数据请求报文发送给待处理数据描述表项缓存104,以进一步确定该数据请求报文所请求的数据是否曾经被请求过。
步骤207,待处理数据描述表项缓存响应于收到数据请求报文,确定待处理数据描述表项缓存中是否存在数据请求报文中的请求数据名称。
由于待处理数据描述表项缓存104中记录了已经发出数据请求但未得到响应的数据名称以及该数据请求来自于哪个端口,如果确定待处理数据描述表项缓存104中存在数据请求报文中的请求数据名称,表明该数据请求报文所请求的数据已经被请求并转发过了,只是相对应的数据响应报文还未返回,则可以转到步骤208,以实现在待处理数据描述表项缓存104中记录该数据请求报文对应的入端口也请求了该数据请求报文的对应的数据。
反之,如果确定待处理数据描述表项缓存104中不存在数据请求报文中的请求数据名称,表明该数据请求报文是第一次收到,此时需要转到步骤209进一步确定该数据请求报文所请求的数据是否需要通过运算后获得。
步骤208,待处理数据描述表项缓存将数据请求报文中的入端口信息添加到待处理数据描述表项缓存中数据请求报文中的请求数据名称对应的入端口信息集合中,以及丢弃数据请求报文。
这里,可以在步骤207中确定该数据请求报文所请求的数据已经被请求并转发过了,只是相对应的数据响应报文还未返回的情况下,继续等待所请求的数据响应报文,而将数据请求报文中的入端口信息添加到待处理数据描述表项缓存104中数据请求报文中的请求数据名称对应的入端口信息集合中,可以在后续相应的数据响应报文返回后,转发给请求该数据响应报文对应数据的各入端口。由于已经将该数据请求报文中的入端口信息进行记录,后续只需等待相应数据响应报文,该数据请求报文可以丢弃。
步骤209,待处理数据描述表项缓存将数据请求报文发送给分布式函数描述表项缓存。
这里,待处理数据描述表项缓存104可以在步骤207中确定该数据请求报文是第一次收到的情况下,通过f接口将该数据请求报文发送给分布式函数描述表项缓存105,以进一步确定该数据请求报文所请求的数据是否需要通过运算后获得。
步骤210,分布式函数描述表项缓存响应于收到数据请求报文,在分布式函数描述表项缓存中查询输出数据名称与数据请求报文中请求数据名称匹配的分布式函数描述表项。
由于分布式函数描述表项缓存105中存储了分布式函数描述表项,分布式函数描述表项可以包括至少一个输入数据名称、运算函数名称和输出数据名称。
如果在分布式函数描述表项缓存105中查到输出数据名称与数据请求报文中请求数据名称匹配的分布式函数描述表项,表明该数据请求报文所请求的数据需要经过查到的分布式函数描述表项对应的函数运算,相应的运算结果才是该数据请求报文所请求的数据。为了进行上述函数运算,需要首先获得上述函数运算所需要的输入参数对应的数据,为此需转到步骤211以先生成请求相应数据参数的新的数据请求报文。
如果在分布式函数描述表项缓存105中未查到输出数据名称与数据请求报文中请求数据名称匹配的分布式函数描述表项,表明该数据请求报文所请求的数据不需进行运算,即,该数据请求报文在该网络转发设备100的报文缓存中没有存储、该数据请求报文是第一次收到且数据请求报文所请求的数据也不需进行运算,那么表明需要将该数据请求报文进行转发,向所转发的目标网络节点来请求该数据请求报文所请求的数据。这时,可转到步骤212,以便在转发路由表项缓存107中查询应将该数据请求报文转发的出端口。
步骤211,分布式函数描述表项缓存生成请求所查到的分布式函数描述表项中各输入数据名称对应的数据的新的数据请求报文,以及将所生成的各数据请求报文发送给数据存储位置表项缓存。
这里,分布式函数描述表项缓存105可以生成请求步骤210中所查到的分布式函数描述表项中各输入数据名称对应的数据的新的数据请求报文,以及将所生成的各数据请求报文通过c接口发送给数据存储位置表项缓存103。进而,可以返回步骤207,即,待处理数据描述表项缓存104可以响应于收到上述步骤211中生成的新的数据请求报文,确定待处理数据描述表项缓存104中是否存在上述新的数据请求报文中的请求数据名称,以及后续其他相应步骤的执行都会基于上述新的数据请求报文,最终实现将步骤210中所查到的分布式函数描述表项中各输入数据名称对应的数据对应的数据响应报文存储在报文缓存101中。
步骤212,分布式函数描述表项缓存将数据请求报文发送给转发路由表项缓存。
这里,如果在步骤210中确定该数据请求报文所请求的数据在该网络转发设备100的报文缓存101中没有存储、该数据请求报文是第一次收到且数据请求报文所请求的数据也不需进行运算,那么表明需要将该数据请求报文进行转发,向其他网络节点来请求该数据请求报文所请求的数据,因此分布式函数描述表项缓存105可以通过d接口将数据请求报文发送给转发路由表项缓存107。
步骤213,转发路由表项缓存响应于收到数据报文,在转发路由表项缓存中查询与所收到数据报文中的数据名称对应的出端口信息。
由于转发路由表项缓存107中存储了路由表项,路由表项中记录了不同的数据将从哪个出端口转发出去,因此可以在转发路由表项缓存107中查询与所收到数据报文中的数据名称对应的出端口信息。可以理解的是,如果转发路由表项缓存107收到的是数据请求报文,则查询的是数据请求报文中的请求数据名称对应的出端口信息。如果转发路由表项缓存107收到的是数据响应报文,则查询的是数据响应报文中的响应数据名称对应的出端口信息。
如果查找到出端口信息,表明转发路由表项缓存107收到的数据报文指定了待转发的出端口,可以转到步骤214执行。
如果未找到出端口信息,表明转发路由表项缓存107收到的数据报文未指定待转发的出端口,可以转到步骤215执行。
步骤214,转发路由表项缓存将所查到的出端口信息发送给报文封装模块。
这里,转发路由表项缓存107如果查到出端口信息,可以通过g接口将所查到的出端口信息发送给报文封装模块108。进而,报文封装模块108
步骤215,响应于未找到,丢弃所收到的数据报文。
这里,转发路由表项缓存107如果未查到出端口信息,可以丢弃所收到的数据报文。可选地,还可以上报预设的错误信息。
通过上述步骤201到步骤215可以实现对于数据请求报文,如果其所请求的数据不需要进行运算处理,将数据请求报文进行转发。如果需要进行运算处理,则生成运算处理所需的输入参数对应的数据响应报文。进而,为后续待输入参数的数据均到达后进行运算并返回运算结果做好准备。
在一些可选的实施方式中,上述流程200还可以包括如图2B所示的以下步骤216到步骤227,需要说明的是,图2B所示的流程200中还可以包括图2A所示的步骤201到步骤215。
步骤216,报文解析模块响应于收到数据响应报文,将数据响应报文发送给待处理数据描述表项缓存。
这里,报文解析模块102可以在收到数据报文后,解析数据报文。如果解析后的报文类型对应为数据响应报文,表明曾经有入端口请求过该数据响应报文。为了确定哪些入端口请求过该数据响应报文,报文解析模块102可以将该数据响应报文通过b接口发送给待处理数据描述表项缓存104。而对数据响应报文进行解析还可以得到:响应数据名称、运算所需数据名称、入端口信息和在报文缓存中的存储位置。
步骤217,待处理数据描述表项缓存响应于收到数据响应报文,确定待处理数据描述表项缓存中是否存在数据响应报文中的响应数据名称。
由于待处理数据描述表项缓存104中记录了已经发出数据请求但未得到响应的数据名称以及该数据请求来自于哪个端口,如果确定待处理数据描述表项缓存104中存在数据响应报文中的响应数据名称,表明该数据响应报文与之前在待处理数据描述表项缓存104中记录的至少一个数据请求报文匹配,即有至少一个入端口请求过该数据响应报文且还没有获得相应的响应数据,则可以转到步骤221,以通知数据存储位置表项缓存103接受收到的数据响应报文。
如果确定待处理数据描述表项缓存104中不存在数据响应报文中的响应数据名称,表明该数据响应报文没有被任何入端口请求过,则可以转到步骤218,以通知数据存储位置表项缓存103不要接受对该数据响应报文的存储,以及将该数据响应报文已经占用的空间释放出来,同时向网管上报异常。
步骤218,待处理数据描述表项缓存向数据存储位置表项缓存发送第二信号和数据响应报文。
这里,如果在步骤217中确定该数据响应报文没有被任何入端口请求过,待处理数据描述表项缓存104可以通过h接口向数据存储位置表项缓存103发送第二信号和数据响应报文。
步骤219,数据存储位置表项缓存响应于收到第二信号和数据响应报文,向报文缓存发送第三信号和数据响应报文。
数据存储位置表项缓存103可以响应于收到第二信号和数据响应报文,通过i接口向报文缓存101发送第三信号和数据响应报文。
步骤220,报文缓存响应于收到第三信号和数据响应报文,释放数据响应报文占用的空间。
这里,报文缓存101可以响应于收到第三信号和数据响应报文,释放数据响应报文占用的空间,即,实现数据存储位置表项缓存响应于收到第二信号和数据响应报文后,不接受对该数据响应报文的存储,以及将该数据响应报文已经占用的空间释放出来。可选地,数据存储位置表项缓存103还可以在收到第二信号和数据响应报文后,向网管上报异常。或者,报文缓存101响应于收到第三信号和数据响应报文,还可以向网管上报异常。
步骤221,待处理数据描述表项缓存向数据存储位置表项缓存发送第一信号和数据响应报文。
这里,如果在步骤217中确定有至少一个入端口请求过该数据响应报文且还没有获得相应的响应数据,则待处理数据描述表项缓存可以通过h接口向数据存储位置表项缓存103发送第一信号和数据响应报文,以实现通知数据存储位置表项缓存103接受收到的数据响应报文。
需要说明的是,这里第一信号和第二信号可以是不同的信号,以使得数据存储位置表项缓存进行区分。
步骤222,数据存储位置表项缓存响应于收到第一信号和数据响应报文,以及响应于确定数据响应报文正确,用数据响应报文中响应数据名称和存储位置生成数据存储位置表项并存储到数据存储位置表项缓存中,以及将数据响应报文发送给分布式函数描述表项缓存。
这里,数据存储位置表项缓存103在收到第一信号和数据响应报文后,为了接受该数据响应报文,可以首先确定数据响应报文是否正确,例如可以采用对数据响应报文进行各种校验。如果确定正确,可以用数据响应报文中响应数据名称和存储位置生成数据存储位置表项并存储到数据存储位置表项缓存103中,以及将该数据响应报文发送给分布式函数描述表项缓存105,以确定是否需要对数据响应报文中的数据进行计算。
步骤223,分布式函数描述表项缓存响应于收到数据响应报文,在分布式函数描述表项缓存中查询输出数据名称与数据响应报文中的响应数据名称匹配的分布式函数描述表项。
这里,如果在分布式函数描述表项缓存中查询到输出数据名称与数据响应报文中的响应数据名称匹配的分布式函数描述表项,表明该数据响应报文对应的数据是查找到的分布式函数表项对应的输出参数,不需对该数据响应报文对应的数据进行计算,可转到步骤224,以实现由报文封装模块108将该数据响应报文进行转发。
如果在分布式函数描述表项缓存中未查询到输出数据名称与数据响应报文中的响应数据名称匹配的分布式函数描述表项,还需进一步转到步骤225,以确定该响应数据报文对应的数据是否是其他数据请求报文所需要的运算数据。
步骤224,分布式函数描述表项缓存将数据响应报文发送给报文封装模块。
这里,分布式函数描述表项缓存105可以在步骤223中确定不需对数据响应报文中数据进行计算的情况下,通过k接口将该数据响应报文发送给报文封装模块108。进而报文封装模块可以执行上述步骤205,以实现按照所收到的上述数据响应报文中的存储位置从报文缓存中读取报文并封装成新的数据响应报文后发送给目标出端口,这里的目标出端口是报文封装模块108从转发路由表项缓存107收到的与上述数据响应报文对应的出端口信息指示的出端口。
步骤225,在分布式函数描述表项缓存中查询输入数据名称包括数据响应报文中的响应数据名称的分布式函数描述表项。
这里,分布式函数描述表项缓存105可以在步骤223中确定不需对数据响应报文中数据进行计算的情况下,在分布式函数描述表项缓存105中查询输入数据名称包括数据响应报文中的响应数据名称的分布式函数描述表项。
如果查询到,表明该数据响应报文对应的数据对应了查找到的分布式函数表述表项中的输入参数,需要对该数据响应报文对应的数据利用查找到的分布式函数进行运算,则可以转到步骤226进一步执行。
步骤226,分布式函数描述表项缓存将查到的分布式函数描述表项和数据响应报文中的存储位置作为计算任务发送给数据处理模块。
这里,如果在步骤225中确定需要对该数据响应报文对应的数据利用查找到的分布式函数进行运算,可以将查到的分布式函数描述表项和数据响应报文中的存储位置作为计算任务通过q接口发送给数据处理模块106,以实现对该数据响应报文对应的数据进行运算。
步骤227,数据处理模块响应于收到计算任务以及对计算任务进行检查通过,按照计算任务中的存储位置从报文缓存中读取数据,并基于所读取的数据执行计算任务中分布式函数描述表项中运算函数名称对应的指令序列,将运算结果作为与计算任务中分布式函数描述表项中输出数据名称对应的数据存储到报文缓存中,以及基于计算任务中的数据响应报文和运算结果生成新的数据响应报文,并将新的数据响应报文发送给待处理数据描述表项缓存。
数据处理模块106可以响应于收到计算任务执行以下操作:
首先,对计算任务进行检查。例如,对定义域的完备性进行检查,具体例如可包括:计算任务中的分布式函数描述表项中运算函数名称对应的运算函数所需输入参数是否已在报文缓存101中,输入参数所需数据类型跟报文缓存101中相应数据的数据类型是否匹配等。
其次,如果对计算任务进行检查通过,可以按照计算任务中的存储位置通过n接口从报文缓存101中读取数据。
接着,基于所读取的数据执行计算任务中分布式函数描述表项中运算函数名称对应的指令序列。即,以所读取的数据作为输入参数,执行上述相应指令序列。
而后,将运算结果作为与计算任务中分布式函数描述表项中输出数据名称对应的数据通过m接口存储到报文缓存101中。
最后,基于计算任务中的数据响应报文和运算结果生成新的数据响应报文,并将新的数据响应报文通过t接口发送给待处理数据描述表项缓存104。这样,待处理数据描述表项缓存104可以继续执行步骤217和相应后续步骤,以进一步确定之前有哪些端口请求过该新的数据响应报文等,在此不再赘述。例如,如果有至少一个入端口请求过该新的数据响应报文且还没有获得相应的响应数据,则待处理数据描述表项缓存104可以通过h接口向数据存储位置表项缓存103发送第一信号和数据响应报文,以实现通知数据存储位置表项缓存103接受收到的数据响应报文等。
本公开的上述实施例提供的网络转发设备及数据转发方法的流程,可实现包括但不限于以下技术效果:
1、通过采用数据名称(name)作为报文标识,并根据数据成进行路由转发与查表处理,摆脱了传统互联网以IP地址为地址(位置)索引所带来的对业务支持不灵活的问题,避免了上层协议再进行IP地址向报文内容的映射过程,提供了系统效率,使得任意位置任意业务类型的无差别网络服务成为可能。
2、通过基于数据名称在网络转发设备(网络节点)上对报文进行大容量的缓存,使得对服务与内容的获取不必非得经过较长的访问路径到内容产生的地方获取,尤其是对于需要频繁读取的内容,采用本方案,相关内容可直接缓存在离用户非常近的网络节点上,有效地减少了网络通信带宽成本,并可以对用户提供更低延时的网络服务。
3、通过在网络转发设备上集成数据处理模块,并根据分布式函数描述表项缓存中的分布式函数描述表项,在网络转发设备上就实现了对数据的处理,这实现了分布式的网内计算,使得数据能够在网络上流动中得到处理成为可能。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种网络转发设备,包括:报文缓存、报文解析模块、数据存储位置表项缓存、待处理数据描述表项缓存、分布式函数描述表项缓存、数据处理模块,转发路由表项缓存和报文封装模块,所述报文解析模块分别与所述报文缓存、所述数据存储位置表项缓存和所述待处理数据描述表项缓存通信连接,所述数据处理模块分别与所述报文缓存、所述待处理数据描述表项缓存和所述分布式函数描述表项缓存通信连接,所述报文封装模块分别与所述报文缓存、所述数据存储位置表项缓存、所述分布式函数描述表项缓存和所述转发路由表项缓存通信连接,所述数据存储位置表项缓存分别与所述报文缓存、所述分布式函数描述表项缓存和所述待处理数据描述表项缓存通信连接,所述待处理数据描述表项缓存和所述分布式函数描述表项缓存通信连接,所述分布式函数描述表项缓存和所述转发路由表项缓存通信连接,其中:
所述报文缓存,用于存储数据报文,以及将所述数据报文在所述报文缓存的存储位置添加到所述数据报文中后发送给所述报文解析模块;
所述报文解析模块,用于解析数据报文得到所述数据报文的描述信息,所述描述信息包括以下至少一项:数据名称、报文类型、报文长度、入端口信息以及在所述报文缓存中的存储位置;
所述数据存储位置表项缓存,用于缓存数据存储位置表项,所述数据存储位置表项包括所述报文缓存中存储的数据报文的数据名称和存储位置;
所述待处理数据描述表项缓存,用于缓存待处理数据描述表项,所述待处理数据描述表项包括所述网络转发设备已收到、且未返回相应的响应数据的数据请求报文中的数据名称和相应的入端口信息集合;
所述分布式函数描述表项缓存,用于缓存分布式函数描述表项,所述分布式函数描述表项包括至少一个输入数据名称、运算函数名称和输出数据名称;
所述数据处理模块,用于按照预设的运算逻辑对所述报文缓存中存储的数据进行运算,并将运算结果发送至所述报文缓存存储;
所述转发路由表项缓存,用于缓存路由表项,所述路由表项包括数据名称和相应的出端口信息;
所述报文封装模块,用于将从所述报文缓存中取出的数据封装后发送给从所述转发路由表项缓存收到的出端口信息指示的出端口。
2.根据权利要求1所述的网络转发设备,其中,所述数据处理模块包括以下至少一项:中央处理器CPU、图形处理器GPU、重构或异构处理核心。
3.根据权利要求1所述的网络转发设备,其中,所述数据存储位置表项缓存、所述转发路由表项缓存和所述分布式函数描述表项缓存为三态内容寻址存储器或随机存取存储器。
4.根据权利要求1所述的网络转发设备,其中,所述报文缓存为分布式缓存。
5.根据权利要求1所述的网络转发设备,其中,所述路由表项为上层协议栈或网络管理者下发的路由表项。
6.根据权利要求1所述的网络转发设备,其中,所述报文解析模块和所述报文封装模块为状态机电路。
7.根据权利要求1所述的网络转发设备,其中,所述报文解析模块和所述报文缓存之间以及所述报文缓存和所述报文封装模块之间通过AXI-Stream接口通信连接,所述报文解析模块的输入端和所述报文封装模块的输出端为AXI-Stream接口。
8.一种数据转发方法,应用于如权利要求1-7中任一所述的网络转发设备,所述方法包括:
所述报文缓存存储数据报文,以及将所述数据报文在所述报文缓存的存储位置添加到所述数据报文中后发送给所述报文解析模块;
所述报文解析模块响应于收到数据请求报文,将所述数据请求报文发送给所述数据存储位置表项缓存,所述数据请求报文包括:请求数据名称、入端口信息和在所述报文缓存中的存储位置;
所述数据存储位置表项缓存响应于收到所述数据请求报文,确定所述数据存储位置表项缓存中是否存在所述数据请求报文中的请求数据名称;响应于确定存在,将所述数据请求报文发送给所述报文封装模块;响应于确定不存在,将所述数据请求报文发送给所述待处理数据描述表项缓存;
所述报文封装模块响应于收到数据报文,按照所收到数据报文中的存储位置从所述报文缓存中读取报文并封装成数据响应报文后发送给目标出端口,其中,所述目标出端口是所述报文封装模块从所述转发路由表项缓存收到的与所收到数据报文对应的出端口信息指示的出端口;
所述待处理数据描述表项缓存响应于收到所述数据请求报文,确定所述待处理数据描述表项缓存中是否存在所述数据请求报文中的请求数据名称;响应于确定不存在,将所述数据请求报文发送给所述分布式函数描述表项缓存;响应于确定存在,将所述数据请求报文中的入端口信息添加到所述待处理数据描述表项缓存中所述数据请求报文中的请求数据名称对应的入端口信息集合中,以及丢弃所述数据请求报文;
所述分布式函数描述表项缓存响应于收到所述数据请求报文,在所述分布式函数描述表项缓存中查询输出数据名称与所述数据请求报文中请求数据名称匹配的分布式函数描述表项;响应于未找到,将所述数据请求报文发送给所述转发路由表项缓存;响应于查找到,生成请求所查到的分布式函数描述表项中各输入数据名称对应的数据的新的数据请求报文,以及将所生成的各数据请求报文发送给所述数据存储位置表项缓存。
9.根据权利要求8所述的方法,其中,所述方法还包括:
所述报文解析模块响应于收到数据响应报文,将所述数据响应报文发送给所述待处理数据描述表项缓存,所述数据响应报文包括:响应数据名称、运算所需数据名称、入端口信息和在所述报文缓存中的存储位置;
所述待处理数据描述表项缓存响应于收到所述数据响应报文,确定所述待处理数据描述表项缓存中是否存在所述数据响应报文中的响应数据名称;响应于确定存在,向所述数据存储位置表项缓存发送第一信号和所述数据响应报文;响应于确定不存在,向所述数据存储位置表项缓存发送第二信号和所述数据响应报文;
所述数据存储位置表项缓存响应于收到所述第一信号和所述数据响应报文,以及响应于确定所述数据响应报文正确,用所述数据响应报文中响应数据名称和存储位置生成数据存储位置表项并存储到所述数据存储位置表项缓存中,以及将所述数据响应报文发送给所述分布式函数描述表项缓存;
所述数据存储位置表项缓存响应于收到所述第二信号和所述数据响应报文,向所述报文缓存发送第三信号和所述数据响应报文;
所述报文缓存响应于收到所述第三信号和所述数据响应报文,释放所述数据响应报文占用的空间;
所述分布式函数描述表项缓存响应于收到所述数据响应报文,在所述分布式函数描述表项缓存中查询输出数据名称与所述数据响应报文中的响应数据名称匹配的分布式函数描述表项;响应于查询到,将所述数据响应报文发送给所述报文封装模块;响应于未查询到,在所述分布式函数描述表项缓存中查询输入数据名称包括所述数据响应报文中的响应数据名称的分布式函数描述表项;响应于查询到,将查到的分布式函数描述表项和所述数据响应报文中的存储位置作为计算任务发送给所述数据处理模块;
所述数据处理模块响应于收到计算任务以及对所述计算任务进行检查通过,按照所述计算任务中的存储位置从所述报文缓存中读取数据,并基于所读取的数据执行所述计算任务中分布式函数描述表项中运算函数名称对应的指令序列,将运算结果作为与所述计算任务中分布式函数描述表项中输出数据名称对应的数据存储到所述报文缓存中,以及基于所述计算任务中的数据响应报文和所述运算结果生成新的数据响应报文,并将新的数据响应报文发送给所述待处理数据描述表项缓存。
10.根据权利要求9所述的方法,其中,所述方法还包括:
所述转发路由表项缓存响应于收到数据报文,在所述转发路由表项缓存中查询与所收到数据报文中的数据名称对应的出端口信息;响应于查找到,将所查到的出端口信息发送给所述报文封装模块;响应于未找到,丢弃所收到的数据报文。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110338373X | 2021-03-26 | ||
CN202110338373.XA CN113114575A (zh) | 2021-03-26 | 2021-03-26 | 网络转发设备和数据转发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114363240A CN114363240A (zh) | 2022-04-15 |
CN114363240B true CN114363240B (zh) | 2023-11-21 |
Family
ID=76713111
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110338373.XA Pending CN113114575A (zh) | 2021-03-26 | 2021-03-26 | 网络转发设备和数据转发方法 |
CN202210059131.1A Active CN114363240B (zh) | 2021-03-26 | 2022-01-19 | 网络转发设备和数据转发方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110338373.XA Pending CN113114575A (zh) | 2021-03-26 | 2021-03-26 | 网络转发设备和数据转发方法 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN113114575A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104410655A (zh) * | 2014-09-26 | 2015-03-11 | 清华大学 | 基于命名机制的分布式网络的存储系统及方法 |
CN108322343A (zh) * | 2018-02-05 | 2018-07-24 | 西安电子科技大学 | 基于分布式SNMP的Web监控装置及方法 |
CN110191148A (zh) * | 2019-03-29 | 2019-08-30 | 中国科学院计算技术研究所 | 一种面向边缘计算的统计函数分布式执行方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103620576B (zh) * | 2010-11-01 | 2016-11-09 | 七网络公司 | 适用于移动应用程序行为和网络条件的缓存 |
-
2021
- 2021-03-26 CN CN202110338373.XA patent/CN113114575A/zh active Pending
-
2022
- 2022-01-19 CN CN202210059131.1A patent/CN114363240B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104410655A (zh) * | 2014-09-26 | 2015-03-11 | 清华大学 | 基于命名机制的分布式网络的存储系统及方法 |
CN108322343A (zh) * | 2018-02-05 | 2018-07-24 | 西安电子科技大学 | 基于分布式SNMP的Web监控装置及方法 |
CN110191148A (zh) * | 2019-03-29 | 2019-08-30 | 中国科学院计算技术研究所 | 一种面向边缘计算的统计函数分布式执行方法及系统 |
Non-Patent Citations (2)
Title |
---|
Distributed All-IP Mobility Management Architecture Supported by the NDN Overlay;Z. Yan等;IEEE Access;第5卷;全文 * |
Sharing digital object across data infrastructures using Named Data Networking (NDN);K. de Jong等;2020 20th IEEE/ACM International Symposium on Cluster, Cloud and Internet Computing (CCGRID);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113114575A (zh) | 2021-07-13 |
CN114363240A (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9825860B2 (en) | Flow-driven forwarding architecture for information centric networks | |
EP3320670B1 (en) | Method and apparatus for pushing data in a content-centric networking (ccn) network | |
EP2853077B1 (en) | Method of seamless integration and independent evolution of information-centric networking via software defined networking | |
KR101786573B1 (ko) | 문맥화된 정보 버스 | |
JP5624331B2 (ja) | コンピュータ実施方法 | |
KR102072203B1 (ko) | 컨텐츠 중심 네트워크에 계층적 이름의 변화에 강인한 단축 이름을 생성하는 방법 및 노드 | |
KR102033999B1 (ko) | 컨텐트 중심 네트워크에서의 통신 방법 및 장치 | |
CN103118013B (zh) | 内容中心网络中数据包捎带反向兴趣包的方法 | |
US10164910B2 (en) | Method and apparatus for an information-centric MAC layer | |
JP2017069950A (ja) | スモールマルチパス又はシングルパス転送状態による情報中心ネットワーキング | |
JP2006313949A (ja) | パケット転送装置 | |
JP6601784B2 (ja) | 情報指向ネットワークにおいてコンテキスト認識型コンテンツ要求をサポートするための方法、ネットワークコンポーネント、およびプログラム | |
CN109450795B (zh) | 一种面向服务网络的服务路由器及服务网络系统 | |
WO2024021405A1 (zh) | 一种数据传输系统和方法 | |
CN103546375A (zh) | 内容路由方法及装置 | |
EP3482558B1 (en) | Systems and methods for transmitting and receiving interest messages | |
CN114363240B (zh) | 网络转发设备和数据转发方法 | |
US9338230B2 (en) | Method, network entity and network system for forwarding resources | |
CN109309711B (zh) | 一种虚拟缓存共享方法和系统 | |
CN115834472A (zh) | 一种报文处理方法、转发策略获取方法及装置 | |
WO2018233579A1 (en) | INFORMATION CENTERED NETWORKING ON MULTIPLE ACCESS NETWORK INTERFACES | |
CN111262785B (zh) | 一种命名数据网络中的多属性概率缓存方法 | |
JP2023554345A (ja) | ネットワーク内のストレージ機能を有するデータ伝送システム | |
CN106130912A (zh) | 一种路由节点及路由方法 | |
CN112787926A (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 |