CN104885431B - 软件定义信息中心网络中基于内容的流量工程的方法及装置 - Google Patents
软件定义信息中心网络中基于内容的流量工程的方法及装置 Download PDFInfo
- Publication number
- CN104885431B CN104885431B CN201380064375.8A CN201380064375A CN104885431B CN 104885431 B CN104885431 B CN 104885431B CN 201380064375 A CN201380064375 A CN 201380064375A CN 104885431 B CN104885431 B CN 104885431B
- Authority
- CN
- China
- Prior art keywords
- content
- network
- metadata
- controller
- caching
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/34—Signalling channels for network management communication
- H04L41/342—Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
-
- 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/12—Shortest path evaluation
- H04L45/123—Evaluation of link metrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
-
- 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/561—Adding application-functional data or data for application control, e.g. adding metadata
-
- 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
-
- 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/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/125—Shortest path evaluation based on throughput or bandwidth
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Library & Information Science (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种由网络控制器实施的方法,所述方法包括获取内容的元数据,其中所述内容由客户端设备请求,基于所述内容的所述元数据将一个或多个网络资源分配给所述内容,以及将标识所述分配的网络资源的消息发送给交换机以引导所述内容提供给所述客户端设备,其中所述交换机由所述网络控制器控制并且用于使用所述分配的网络资源将所述内容转发给所述客户端设备。
Description
相关申请案交叉申请
本发明要求2012年12月13日由塞德里克·韦斯特法尔(Cedric Westphal)等人递交的发明名称为“透明管理开放流(OpenFlow)网络中的内容分发的端点不可知方法(AnEnd-Point Agnostic Method to Transparently Manage Content Distribution in anOpenFlow Network)”的第61/736,833号美国临时专利申请案以及2012年12月19日由Cedric Westphal等人递交的发明名称为“提取用于软件定义信息中心网络中的流量工程和防火墙应用的元数据和上下文的方法(A Method to Extract Metadata and Contextfor Traffic Engineering and Firewalling Applications in a Software DefinedInformation Centric Network)”的第61/739,582号美国临时专利申请案的在先申请优先权,这两个在先申请的内容均以引入的方式并入本文本,如全文再现一般。
关于由联邦政府赞助研究或开发的声明
研究或开发
不适用。
参考缩微胶片附录
不适用。
背景技术
缓存提供了一种临时存储内容或对象的通用机制,通常响应于对缓存设备中存储的内容的频繁请求或需求。如果缓存位于或靠近客户端设备发送请求的区域,那么内容的最终接入延迟可能较低。传统缓存方案可能要求对包含客户端和服务器的端主机进行某种形式的修改。例如,在传统缓存方案中,代理服务器可用于指向缓存,并且对于一种特定类型的流量,客户端设备的网络配置可更改以指向该代理服务器。在客户端数目为上千甚至上百万量级的通用网络中,例如在内容分发系统和使用此类系统的公司(例如,NETFLIX、AKAMAI和FACEBOOK)中,传统缓存方案可能无法很好地扩展。此外,传统缓存方案可能容易出现错误并且可能在某些大型系统中难以维护。例如,如果代理变更了其因特网协议(IP)地址,则可能需要重新配置使用该代理的客户端(对于某些网络,可为上百万量级)。此种量级的客户端重配置可能实施起来比较复杂。
研究人员尝试的某些缓存方案试图修改端点处的网络配置以指向代理,随后这些方案可用于执行内容识别和后续内容到流的映射。在这些方案中,连接时可能需要对使用代理的客户端(尽管不是服务器)进行重配置。然而,由于可能需要在大量客户端设备上进行客户端配置的修改(或运行脚本),所以实际限制可能会导致该方案繁琐并且容易出错。
此外,研究人员尝试的其它缓存方案试图修改客户端和服务器中的网络栈以支持动态内容识别和内容到流的映射。在该情况下,服务器网络可被修改以实施反馈机制,这样当内容在网络中推送时可能会生成标记。该方法可能无需动态内容识别,并且内容可在本质上被映射到传输控制协议(TCP)流。然而,实际限制可包括向每个服务器提出修改的潜在困难。
发明内容
在一项实施例中,本发明包括一种由网络控制器实施的方法,所述方法包括获取内容的元数据,其中所述内容由客户端设备请求,基于所述内容的所述元数据将一个或多个网络资源分配给所述内容,以及将标识所述分配的网络资源的消息发送给交换机以引导所述内容提供给所述客户端设备,其中所述交换机由所述网络控制器控制并且用于使用所述分配的网络资源将所述内容转发给所述客户端设备。
在另一项实施例中,本发明包括一种装置,包括接收器,用于从位于与所述装置相同的网络中的交换机接收内容的元数据,其中所述内容由客户端设备请求;耦合到所述接收器的处理器,用于基于所述内容的所述元数据将一个或多个网络资源分配给所述内容,以及使用所述分配的网络资源引导所述内容提供给所述客户端设备;以及耦合到所述处理器的发射器,用于将标识所述分配的网络资源的消息发送给所述交换机。
在又一项实施例中,本发明包括一种由位于符合软件定义网络(SDN)标准的网络中的交换机实施的方法,所述方法包括接收对内容的请求,其中所述请求来源于客户端设备,提取所述内容的元数据,将所述元数据转发给用于管理所述网络的控制器,以及从所述控制器接收标识分配用于将所述内容提供给所述客户端设备的一个或多个网络资源的指令,其中所述控制器至少部分基于所述元数据分配所述一个或多个网络资源。
在又一项实施例中,本发明包括一种位于网络中的交换机,所述交换机包括至少一个接收器,用于接收对内容的请求,其中所述请求来源于客户端设备;耦合到所述至少一个接收器的处理器,用于提取所述内容的元数据;以及耦合到所述处理器的一个或多个发射器,用于将所述元数据转发给管理所述网络的控制器,其中所述至少一个接收器进一步用于从所述控制器接收标识分配用于将所述内容提供给所述客户端设备的一个或多个网络资源的指令,所述控制器至少部分基于所述元数据分配所述一个或多个网络资源。
结合附图和权利要求书,可从以下的详细描述中更清楚地理解这些和其它特征。
附图说明
为了更透彻地理解本发明,现参阅结合附图和具体实施方式而描述的以下简要说明,其中的相同参考标号表示相同部分。
图1是显示网络模型的实施例的端到端视图的示意图。
图2是显示突出某些网络部件的实施例网络架构的示意图。
图3是软件定义网络(SDN)实施形式的实施例的图。
图4是显示消息交换协议的实施例的图。
图5是消息交换协议的另一实施例的图。
图6是显示模拟结果的图。
图7是显示模拟结果的另一图。
图8是可由网络控制器实施的方法的实施例的流程图。
图9是可由SDN交换机实施的方法的实施例的流程图。
图10是网络单元的实施例的图。
图11是计算机系统的实施例的图。
具体实施方式
首先应理解,尽管下文提供一项或多项实施例的说明性实施方案,但所公开的系统和/或方法可使用任何数目的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。
OpenFlow可用作内容缓存的使能技术。OpenFlow是一种可使研究人员在园区网中运行实验协议的开源软件定义网络(SDN)标准或协议。在传统的路由器或交换机中,快速包转发(数据路径)和高层路由决策(控制路径)可在同一设备上实施。OpenFlow方法可将数据路径和控制路径功能分离。例如,数据路径或数据平面仍可驻留在交换机上,但是高层路由决策可移至集中式网络控制器,集中式网络控制器可使用监控网络域的网络服务器来实施。OpenFlow交换机和OpenFlow控制器可通过OpenFlow协议进行通信,该协议定义了那些表示为packet-received、send-packet-out、modify-forwarding-table和get-stats的消息。
OpenFlow交换机的数据平面可展示清洁流表抽象层。流表中的每个条目可包含一组待匹配的包字段,以及与包字段关联的动作(例如,send-out-port、modify-field或drop)。在使用中,当OpenFlow交换机接收到一个以前从未见过的包并且该包没有匹配的流条目时,OpenFlow交换机可将包发送给监控交换机的OpenFlow控制器。控制器随后可决定如何处理这个包。例如,控制器可丢弃这个包,或者将流条目加至交换机,该条目指示交换机如何在未来转发类似包。实际上,由于存在能够在网络中配置所有设备的集中式控制器,与其它类型的网络相比,OpenFlow网络可能相对易于管理和配置。此外,控制器可检查流经网络的网络流量并且基于网络流量的性质作出路由决策。
此外,可基于SDN实施信息中心网络(ICN)架构以通过在不同的级或层操作内容来缓解与传统网络关联的问题。ICN可使用内容名称来提供内容路由和内容分发等网络业务。为了推进内容业务,ICN架构可建立内容管理层以基于内容名称处理路由。在ICN中,某些网络节点可被假设为具有不同的临时存储级。ICN节点可提供缓存来存储按内容名称索引的内容。
本发明可通过教示一种用于在网络环境中进行内容管理的端点(例如,服务器、客户端等)不可知方法克服前述问题或限制。所公开的实施例可识别网络中的一个或多个数据流或业务流并将业务流映射到一个或多个内容(例如,音频、文本、图像、视频等)。另一方面,所公开的实施例可识别内容,将识别的内容映射到一个或多个数据流,以及路由数据流。此外,端点(服务器和客户端)不可知方法可用于在内容的网络层或信息中心网络(ICN)上提取内容元数据,ICN可基于SDN。内容元数据可描述文件名称、内容大小、多用途网络邮件扩展(MIME)类型等内容属性。提取内容元数据可“免费”实现为ICN范式的附属品。内容元数据在被提取之后可用于基于大小和热度的函数执行各种元数据驱动业务或功能,例如有效防火墙、流量工程(TE)、网络资源的其它分配,以及全网缓存管理。各种目的或目标,例如带宽优化、缓存上的磁盘写优化等,可在设计这些功能时使用,并且优化目的可随应用而改变。例如,本文所公开的实施例可在不对服务器或客户端作出任何修改的情况下减少网络内容和/或带宽使用的接入延迟。
图1是显示网络模型100的实施例的端到端视图的示意图,网络模型100可包括一个或多个网络或网络域。例如,图1描绘的网络模型100包括客户端网络110、业务提供商网络120,以及两者之间的中间网络130。一个或多个终端用户或客户端(例如,客户端112)可位于客户端网络110中,一个或多个服务器(例如,服务器122)可位于业务提供商网络120中。网络130连接客户端网络110和业务提供商网络120。应注意,尽管客户端112、服务器122以及它们的中间网络节点被描绘为不同网络,但是取决于不同实施方案,它们也可位于同一网络中。
网络130可被实施为SDN网络(例如,将OpenFlow用作通信协议)。在该情况下,网络130的主要部件可包括一个或多个缓存元件(例如,缓存132、134和136)、一个或多个代理元件(例如,代理138)、一个或多个交换机(例如,OpenFlow交换机140),以及至少一个控制器(例如,OpenFlow控制器142)。控制器142可用于运行控制所有其它网元的模块。代理138和缓存132至136可与控制器142进行通信,从而代理138和缓存132至136可被视作非转发OpenFlow元件。
SDN网络130可由控制器142控制(在不失一般性的情况下,网络130中仅示出一个控制器142)。控制器142可运行(控制平面内的)内容管理层,内容管理层管理内容名称(例如,以文件名称形式),将这些名称转换为可路由地址,以及管理缓存策略和流量工程。例如,控制平面可将关于内容层的信息转换为流规则,流规则随后可被下推到包含交换机140的交换机。网络130中的某些或所有交换机可拥有能力解析来自包的内容元数据并将内容元数据传递给控制器142中的内容管理层。
本发明可采用网络运营商的观点。假设内容由客户端112从服务器122请求,这两个部件均在网络130之外。在实施例中,网络130可使用管理内容的控制平面进行操作。即,当来自客户端112的内容请求到达网络130中时,控制平面可(在缓存(例如,缓存132)内部,或源服务器122外部)定位内容的合适副本。此外,当来自服务器122的内容对象到达网络130中时,控制平面可拥有能力路由内容并(在路径上或路径之外)对发往缓存的内容流做分叉。此外,控制平面可利用内容中心网络(CCN)的兴趣和数据包等语义来识别内容。或者,控制平面可例如使用SDN概念建立在现有网络之上。本发明可在任一上下文中工作,但是本文中大多描述为建立于SDN之上,这样传统客户端和传统服务器可与缓存网络130集成。
业务提供商网络120可使用一个或多个指定的入口交换机连接到网络130。所公开的实施方案可能不要求任何对客户端网络110或业务提供商网络120的修改。网络130可实施为可以插入现有网络架构中的内容分发系统。例如,网络130可插入在两者之间并且可通过某种隧道协议连接每个网络。网络130可在使网络管理变得相对容易和无缝的同时降低内容访问的延迟。
当客户端112想要通过发送包含对内容的请求的包来连接服务器122(例如,提供或发起内容的内容服务器)时,入口OpenFlow交换机(例如,交换机140)可将包转发给控制器142。控制器142可写入流以将传输控制协议(TCP)连接从客户端112转移到代理138。代理138可解析客户端的请求以检查内容是否在网络130中的某个位置进行缓存。如果内容未在网络130中缓存,那么代理138可通知控制器142,控制器142随后可选择缓存来存储内容,例如通过写入流将内容副本从服务器122转移到缓存。在每个步骤中,控制器142可在网络130中维持所有缓存的全局状态,例如哪个缓存存储指定内容。
在使用中,当请求先前缓存且被索引的内容时,内容可从缓存(例如,缓存132)而不是服务器122返回。可对客户端112透明的代理138(或未在图1中示出的另一代理)可用于在服务器122和缓存132之间复用。当控制器142看见客户端112正从服务器122请求内容时,控制器142可将流重定向到代理138并分配端口号。因此,控制器142可知晓代理138上的端口号之间的映射、源端口和源IP地址之间的映射,以及目的端口和目的IP地址之间的映射。当缓存缺失情况下的服务器122(或缓存命中情况中的缓存132)发回携带内容的数据流时,则可使用控制器142中存储的信息将数据流映射回原始服务器122。
网络130可独立于包含在服务器122和客户端112的端设备上运行的任意软件允许内容识别和映射,端设备可对内容位置保持不可知。此外,可能无需对端设备或其本地网络110和120进行修改。如果服务器120和客户端112位于图1所示的两个不同网络中,那么网络130可插入在服务器120和客户端112之间作为可以无缝识别内容的中间网络。另外,从端设备角度而言,内容管理和路由过程可保持透明,即端设备可能不会注意到内容请求或提供方式的任何变化。因此,本发明与现有机制不同,现有机制要求对端设备或其本地网络的配置进行某种形式的修改。
本发明可将识别的内容映射到网络130中的一个或多个数据流或业务流。可使用包头中交换机可辨认的字段将识别的内容映射回网络130中的数据流,字段包括端口号、私有IP地址、虚拟局域网(VLAN)标签,或包头中的字段的任意组合。OpenFlow控制器142可维护映射具有服务器和客户端证书的代理138上的端口号的数据库。因此,在客户端的端处,数据流可从代理138而非服务器122发起,因为OpenFlow可允许在经过代理138的数据流中将源地址和端口号重写为服务器120的源地址和端口号。
缓存132至136可位于由控制器142控制的网络130中。一旦识别出内容,控制器142可决定对内容进行缓存。具体而言,控制器142可选择缓存(假设缓存132),写入合适的流以将内容副本重定向到缓存132,将缓存132的位置记录为内容的位置。在内容服务中,当控制器142看见对同一内容的新请求时,控制器142可将新请求重定向到控制器142存储内容的缓存132。从缓存132而非服务器122获取内容可能导致访问延迟缩短,因为与服务器122相比看,缓存132地理上距离客户端112更近。此外,由于无需每次都从服务器122获取内容,所以可节省缓存132和服务器122之间的网络带宽,从而提升总体网络效率。
图2是显示网络架构200的实施例的示意图,该网络架构突出了图1所示的某些网络设备中的详细部件。架构200可以是用于使用内容语义的显式有限性质的可扩展架构。架构200中的每个网络设备可被实施,然而,例如使用硬件或硬件和软件的组合来实施更为合适。例如,代理138可以纯Python的形式写入并且可使用称作tproxy库的库。tproxy库可提供方法处理超文本传输协议(HTTP)头,因为没有其它方式来访问代理138中的任何TCP或IP信息。代理138可使用应用编程接口(API),例如表征状态转移(REST)API与控制器142进行通信。例如,代理138和控制器142之间的通信可使用以下命令进行实例化以调用定义为tproxy的代理函数:
sudo tproxy<script.py>-b 0.0.0.0:<port number>
根据所公开的实施方案,代理138可在不同端口上运行代理函数的多个实例。每个实例可代理一个<客户端,服务器>对。表1示出了代理算法的实施例。本领域普通技术人员将认识到表1中的伪码和本文所公开的其它表的功能,出于简洁性目的,这些表不在本文中详细描述。
表1:代理138实施的示例性算法
在一些实施例中,所公开的缓存(例如,缓存132至136)与现有因特网缓存在许多方面均有不同。例如,所公开的缓存可与OpenFlow控制器(例如,控制器142)连接。因此,所公开的缓存可能不会简单地实施传统的缓存协议,因为这里缓存可能无需这么做。标准的因特网缓存可看见请求,并且如果存在缓存缺失,可将请求转发给目标服务器。当目的服务器发回响应时,标准的因特网缓存可保存内容副本并通过请求元数据对副本进行索引。因此,TCP连接可在标准的因特网缓存和服务器之间建立,并且TCP连接可使用套接接口。相比之下,所公开的缓存的某些实施例可能仅仅看见对请求的响应而不是请求本身。由于在这些实施例中,所公开的缓存可能仅仅监听连接的一侧,所以该缓存不具有与服务器的TCP会话,因此无法使用套接级抽象层进行操作。因此,在这些实施例中,所公开的缓存可监听并读取来自网络接口的包。
在实施例中,所公开的缓存(例如,缓存132、134或136)可包括含可使用Redis服务器来实施的队列的多个部件或模块、监视用于文件写入的缓存目录的模块、返回内容的网络服务器,以及侦听网络接口并组装包的模块。如图2所示,缓存132包括Redis队列212、捕捉器模块214、看门狗模块216,以及网络服务器218。
Redis队列212可在后端运行,后端用作简单的排队机制。Redis是一个开源、支持网络、基于内存、具有可选持久化的键值数据存储器。Redis队列212可用于在捕捉器模块214和看门狗模块216之间传递数据(例如,IP地址)。捕捉器模块214可将IP地址放入Redis队列212中,Redis队列212可由看门狗模块216读取。
捕捉器模块214可负责监听接口、读取包,和/或组装包。捕捉器模块214可以C++等任意编程语言写入并且可使用称作libpcap库的库。可执行程序可将接口名称作为命令行参数并且可开始监听该接口。捕捉器模块214可收集具有相同确认(ACK)号的包。当捕捉器214看见完成(FIN)包时,捕捉器模块214可提取ACK号并且组装具有相同ACK号的所有包。在该步骤中,捕捉器模块214可丢弃重复的包。由于缓存132和服务器122之间不存在TCP连接,所以缓存132在重构包时可知晓某些包是否缺失,但是缓存132可能不会请求在该路径上(例如,在分叉交换机和缓存132之间)丢弃的缺失包。换言之,缓存132可监听客户端-代理连接并且知道某些包是否缺失,但是可能无法替代缺失包。捕捉器模块214随后可从提取且组装的包中提取数据并且可使用默认名称写回到磁盘文件中。捕捉器模块214还可将从包中提取的源IP放入Redis队列212。
看门狗模块216可使用一组REST调用与控制器142通信。看门狗模块216可以Python形式写入并且可使用称作inotify库的库来监听用于文件写入事件的缓存目录。当捕捉器模块214将文件写入磁盘时,看门狗模块216可被调用。看门狗模块216可调用控制器142的API以获取文件名称(使用Redis队列212中存储的IP作为参数)。看门狗模块216随后可将HTTP头从文件剥离,更改文件名称,并写回文件名称。在保存文件之后,看门狗模块216可将确认消息(表示为ACK)发回给控制器142,指示文件已在缓存132中缓存。
网络服务器218可实施为任意缓存服务器模块(例如,SimpleHTTPServer的扩展版本)。当客户端请求内容时,网络服务器218可将内容返回给客户端。网络服务器218可以任意合适的编程语言(例如,Python)写入。表2所示为缓存132使用的实施算法的实施例。
表2:缓存132实施的示例性算法
控制器142可以任意合适的形式来实施,例如实施为Floodlight控制器,其可为企业级的、Apache许可的、基于Java的OpenFlow控制器。控制器142可包括缓存管理器模块(表示为CacheManager),其可基于Java。Floodlight可配备有标准的转发模块,其可建立任意主机之间的路径。控制器142可订阅表示为PACKET_IN事件的消息并且可维护两个用于查询的数据结构。表示为cacheDictionary的第一数据结构222可用于将<客户端,服务器>对映射到请求文件名称。可使用REST API对第一数据结构222进行查询来获取具有<客户端,服务器>信息的请求所对应的文件名称。表示为requestDictionary的第二数据结构224可将内容及其位置的映射存储为缓存的IP和端口号。表3所示为控制器算法的实施例。
表3:控制器142实施的示例性算法
如上所述,所公开的机制可在网络层观察和提取内容元数据,并且使用内容元数据来优化网络行为。将控制平面和转发平面分离的新兴SDN理念展示了ICN架构的示例性实施例。具体而言,本发明教示现有SDN控制平面如何扩充来包括支持TE和防火墙的内容管理层。所公开的机制可能不需要涉及任何应用层。
图3是SDN实施方案300的实施例的图,SDN实施方案300突出了扩充的控制平面302和转发平面304之间的交互。控制平面302可以是并入了传统控制平面310和内容管理层320的增强型控制平面,内容管理层320具有图3所示的用于每个任务的多个模块。转发平面(有时称作数据平面)304也可以是增强型平面,用于将内容元数据330发回给实施控制平面302的控制器,以及控制器可作出转发决策。控制平面302可将流推送回转发平面304。因此,实施方案300形成了闭合的反馈回路。
在使用中,OpenFlow控制器可部署模块化系统以及用于模块监听PACKET_IN消息等OpenFlow事件332的机制。因此,内容管理层320可实施为控制器上的模块或单元。内容管理层320可订阅PACKET_IN消息。当内容管理层320获取包时,内容管理层320可提取元数据并且随后丢弃该包。本架构允许控制器侧在必要时具有链接在一起的多个内容管理层。此外,控制平面310可将流334发给实施转发平面304的交换机,并且流334建立了规则用于确定在交换机中缓存的一个或多个流表中的流条目。
传统控制平面310可包括流推送器312、拓扑管理器314、路由引擎316、以及动态流量分配引擎318。内容管理层320可包括内容名称管理器322、缓存管理器324、以及内容元数据管理器326。内容元数据管理器326可包括键值存储器,其将内容名称(例如,全局唯一的内容名称)映射到某个网络提取的元数据。例如,内容大小或长度在本文中论述为在键值存储器中保存的内容元数据的示例性形式。
内容管理层320中的模块可完成各种功能,例如内容识别、内容命名、将内容语义映射到TCP/IP语义,以及管理内容缓存策略。例如,内容识别可使用HTTP语义,这指示了如果网络中的客户端向另一设备发出HTTP GET请求并且接收到HTTP响应,那么可得出初始请求是通过HTTP携带的内容所满足的内容请求(然而,应注意该响应可能是错误,在这种情况下,可忽略该请求及其响应)。此外,内容识别还可在代理中处理,代理可直接负责靠近客户端的连接管理。内容管理层320还可从代理收集内容信息,该代理解析HTTP头以识别内容。
存在多个缓存和代理节点,它们可以与OpenFlow控制器交谈并通告它们的能力。因此,控制器可决定(基于某些优化标准)在选定位置缓存内容。代理节点可用于对缓存之间的TCP连接进行透明解复用。另外,以下描述了一些额外的功能。
为了通过使用内容元数据(例如,内容长度)执行网络资源分配,例如TE和防火墙,首先需要提取内容元数据。本文论述了两个提取级:网络层中利用ICN语义的第一级,以及进入应用层的第二级。
在实施例中,网络层机制可用于提取内容长度。由于内容可通过其名称在ICN中唯一标识,所以控制器(例如,控制器142)可辨别出对新内容的请求(也就是说,控制器没有在键值存储器中存储元数据的内容)。对于新内容,控制器可在交换机(例如,入口交换机)处建立计数器来计算内容流的大小或长度。控制器还可指示将流存储在缓存中,并且可从缓存中的内存足迹中获取完整的对象大小。因此,当同一内容稍后通过网络时,查找键值存储器可允许控制器基于内容大小分配资源。此外,第一次观察到的内容流可基于某个阈值动态归类为长流或短流,这可由控制器确定。内容流在归类之后可相应地分配有资源以优化某些约束条件。
在实施例中,应用层机制可用于提取内容长度。具体而言,入口交换机可用于读取来自客户端的传入流中包含的HTTP头。通过解析HTTP头,交换机甚至可在第一次观察到内容流时提取内容大小。HTTP头的解析可允许控制器检测长或短流并相对较早采取合适的动作。本实施例的优势在于其可从第一次出现内容流开始允许TE和防火墙。
对于具有提取内容元数据能力的网元或设备,它们可向控制器通告该能力。能力通告可使用OpenFlow协议在带内进行,因为OpenFlow协议支持设备注册和通告特性。在实施例中,能力通告本质上涉及若干步骤。在第一步异步存在通告中,设备可通过将hello消息(有时表示为HELLO)发送给分配的控制器来通告其存在。在第二步同步特性查询中,分配的控制器可确认设备的通告并请求设备通告其特性。在第三步同步特性回复中,设备可对使用特性列表对控制器作出回复。通过为每个适用设备执行这三个步骤,控制器可以建立与所有设备的会话并知晓它们的能力。控制器随后可在必要时对网络设备进行编程。
鉴于上述建立,控制器可获取网络中的内容元数据。此外,SDN范式可允许控制器具有网络的全局视图。因此,平台可以支持各种服务的实施形式,包括以下段落中论述的四个示例性服务。这四个示例性服务为元数据驱动流量工程、差分内容处理、元数据驱动内容防火墙,以及元数据驱动缓存管理。
TE服务可由内容元数据驱动。在各种内容元数据中,由于控制器可获取内容长度,所以控制器可以在一组约束条件下解决优化问题以得出应当在哪个路径上转发内容。大型现代网络通常具有两个给定设备之间的路径分集。该属性可被用于执行TE。例如,如果长流在两个设备之间的第一路径上运行,那么控制器可指示另一长流在两个设备之间的第二路径上运行。该TE方法相对有效并且可扩展,因为它不需要业务提供商单独传送内容元数据,这节省了两端的网络带宽。
其它类型的元数据也可在TE中使用。深度报文检测(DPI)机制可使控制器获取富内容元数据。因此,存在此类内容元数据提取服务时,内容管理层320可基于其它元数据,例如内容的MIME类型进行转发决策。MIME类型可定义内容类型(有时称作因特网媒体类型)。基于MIME类型,内容可被归类为各种类型,例如应用、音频、图像、信息、模型、分片对象、文本、视频等。网络管理员可以基于MIME类型描述一组策略。以延迟界限为例。如果MIME类型具有实时流媒体内容,例如视频剪辑,那么控制器可选择满足分发约束条件(已设置的延迟界限)的路径。如果没有路径满足延迟界限要求,那么可选择提供最低过量延迟的路径作为最优路径。该方法可用于通过为每个流媒体内容选择不同的路径来处理交换机上的多个流媒体内容。
防火墙服务可由内容元数据驱动。例如,当内容开始进入网络时,控制网络的控制器可获取内容的长度大小。因此,控制器能够在交换给定数据量之后终止处理同一内容的内容流,给定数据量由控制器确定。该机制像防火墙一样操作,这样它开启了网络以传送不超过允许的数据量。与某些传统防火墙相比,基于内容大小的防火墙机制可提供更强的安全或健壮性。例如,通过传统防火墙,网络管理员可拦截一组地址(或者某些其它参数),但是攻击者有可能欺骗IP地址并且绕过基于地址的防火墙。在所公开的基于内容大小的防火墙下,网络可能不会通过携带欺骗的IP地址的内容流,因为网络知晓允许的数据量已通过网络发送。
缓存管理可由内容元数据驱动。各种内容的对象大小在缓存中(例如,缓存132)可变化,缓存实施的缓存策略不仅需要知晓内容的热度及其访问频率,还需要知晓内容大小以确定保存内容的最佳“价值”。控制器可访问内容请求以及内容大小,从而控制器可作出更多明智的决策。
如前所述,可能无需修改客户端网络和业务提供商网络,并且代理节点可提供隧道将每个客户端和每个服务器连接到OpenFlow网络。实际上,客户端所请求的内容可在本地OpenFlow网络中缓存,这可称作缓存命中,或者在本地OpenFlow网络中不可用,这可称作缓存缺失。在缓存缺失情况下,控制器可指示其本地网络在服务器返回内容时对内容进行缓存。
图4是显示消息交换协议400的实施例的图,在缓存缺失情况下,消息交换协议400可由本文所公开的网络模型(例如,网络模型100)来实施。首先,在建立阶段中,一个或多个缓存、代理节点和交换机与控制器注册。例如,如图4所示,控制器402可通过将hello消息(表示为HELLO)发送给代理408发起建立。代理408可通过将端口号列表发回控制器402作出响应。类似地,缓存412将hello消息发送给控制器402,并且可进一步将端口号列表发送给控制器402。应注意,某些消息,例如从控制器发送到其它设备的ACK消息,在图4中省略。
在建立阶段之后,客户端404可发出TCP同步(SYN)包,该包可通过隧道(遵循隧道协议)去往所公开的网络中的OpenFlow交换机406。交换机406可能没有找到匹配流并且可将包发送给控制器402。随后,控制器402可从包中提取各种信息字段,例如客户端IP地址(表示为client_ip)、客户端端口号(表示为client_port)、服务器IP地址(表示为server_ip),以及服务器端口号(表示为server_port)。控制器402随后可从代理408上可用的端口列表中分配端口号。交换机406可将表示为PACKET_IN的消息发送给控制器402,指示交换机406获取的内容元数据(例如,内容长度)。随后,控制器402可将正向流和反向流写入发送包的交换机406。最后,控制器402可将包推送回交换机406,并且包可去往代理408。
之后,客户端404可确定在客户端404和服务器416之间建立TCP会话。因此,客户端404可发送预期发往服务器416的对内容的HTTP获取(GET)请求。GET请求可路由经过代理408,代理408可解析请求并提取内容名称和目标服务器名称(即,服务器416的名称)。此外,代理408可将内容名称解析为IP地址。代理408可使用内容名称查询控制器402。相应地,如果内容名称标识的内容不在控制器402管理的网络的任意位置缓存,那么控制器402可返回特定的值,指示内容未被缓存。
由于发生了缓存缺失,所以代理408可连接到服务器416。此外,代理408可使用内容信息更新控制器402,内容信息包含服务器IP地址、服务器端口、内容的统一资源标识符(URI),以及内容的文件名称。例如,对于请求,代理408可将<url,file_name,dst_ip,dst_port>形式的消息发送给控制器402。之后,控制器402可使用从代理408接收到的信息填充requestDictionary。控制器402可进一步选择存放内容的缓存412。控制器402可计算分叉点使得流量复制被最小化。控制器402可使用缓存412的IP来填充cacheDictionary以记录内容被缓存的地址。
控制器402可将分叉流写入选择的交换机414。应注意,如果需要,可选择另一交换机410。由于服务器416返回了内容,所以缓存412可接收内容的一个副本。缓存412可保存内容并且可在控制器402中查询文件名称。完成之后,缓存412可将ACK发送给控制器402,指示该内容已被缓存。预期发往客户端404的内容的第二副本可去往代理408。此外,在入口交换机中,第二副本可命中反向流,其可将其源IP和端口重写为服务器的源IP和端口。最终,内容的第二副本可到达客户端404,完成事务。
在实施例中,正向流、反向流和分叉流可具有以下配置:
1.正向流:
如果src_ip=客户端ip、src_port=client_port、dest_ip=server_ip并且dest_port=server_port,
则dest_ip=proxy_ip并且dest_port=X
2.反向流:
如果src_ip=proxy_ip并且dest_ip=client_ip,
则src_ip=server_ip并且src_port=server_port
3.分叉流:
如果src ip=服务器ip,
则做分叉并输出到两个端口。
可以看出在图4所示的缓存缺失之后,当同一客户端或另一客户端下次对同一内容进行请求时,控制器可知晓内容保存的位置(即,缓存命中)并且控制器可将该请求重定向到该缓存。虽然缓存命中未使用另一附图进行图示,但是该过程可以类似地进行理解。具体而言,如果发生了缓存命中,那么客户端404(出于方便而在图4中使用的部件号)可发送预期发往服务器416的TCP SYN包,并且该包可通过隧道去往所公开的网络中的OpenFlow交换机406。之后,交换机406可能未找到匹配流并且可将该包发送给控制器402。控制器402可从包中提取client_ip、client_port、server_ip和server_port。控制器402可从控制器402在代理408上拥有的端口的列表中分配一个端口号。控制器402可将正向和反向流写入到发送该包的交换机406中。最后,控制器402可将该包推送回交换机406。
该包可去往代理408,并且客户端404可以认为其已与服务器416建立TCP会话。客户端404随后可发送HTTP GET请求。代理408可解析请求以提取内容名称和目标服务器名称。代理408可进一步将名称解析为IP地址。代理408可使用内容名称查询控制器402。控制器402可从其cacheDictionary中获取缓存IP并且可将缓存412的IP发回给代理408。代理408可指向缓存412,缓存412随后可返回内容。在出口交换机中,反向流可被命中并且源IP和源端口可被重写。
图5是消息交换协议500的另一实施例的图,消息交换协议500显示了网络中的内容的端到端流。在图5所示的示例中,假设TE的目标在于通过对跨冗余路径的传入内容进行均衡负载来优化链路带宽利用率。然而,应理解,优化标准的选择可随实施方案的不同而大不相同。例如,缓存网络运营商可能想要优化磁盘写入,而另一运营商可能想要优化链路带宽使用。由于架构独立于底层优化问题,所以优化目标可以是外部可配置的。在实施方案中,有时具有一个优化目标就足够了。
消息交换协议500可划分为三个阶段:建立阶段,其中相关设备,包含缓存504和交换机508可连接或耦合到控制器506并通告它们的能力;元数据收集阶段,其中网络设备可将内容元数据报告给控制器506,以及第三阶段,TE。
建立阶段中的初始步骤可与参照图4描述的步骤类似。首先,在建立阶段,包含缓存504和交换机508的各种网元可开机并连接到控制器506。网元可向控制器506通告它们的能力。具体而言,缓存504可将hello消息发送给控制器506,控制器506可使用特性请求消息对缓存504作出响应。缓存504随后可使用指示特性或能力列表的特性回复消息作出响应。类似地,交换机508可将hello消息发送给控制器506,控制器506可使用特性请求消息对交换机508作出响应。交换机508随后可使用指示特性或能力列表的特性回复消息作出响应。此时,控制器506可具有其管理的整个网络的地图,因此控制器506可知晓哪些网元或节点可以提取元数据并缓存内容。
控制器506可在所有入口交换机中写入特殊的流,配置这些交换机提取内容元数据。例如,控制器506可将流写入缓存504,请求缓存504报告内容元数据。位于客户端网络中的客户端502可尝试建立与服务器510的TCP连接,服务器510可位于内容或业务提供商网络中。交换机508(例如,OpenFlow交换机)可将包从客户端502转发给控制器506。控制器506可写入流以将所有包从客户端502重定向到代理(未在图5中示出)。在这个阶段,客户端可透明连接到代理。
之后,在元数据收集阶段,客户端502可发送对内容的GET请求。代理可解析请求并查询控制器506以查看内容是否在由控制器506管理的网络中缓存。对内容的第一请求可导致缓存缺失,因为内容还未被缓存。因此,控制器506可能没有返回任何缓存IP,并且代理可将该请求转发给提供商网络中的服务器510。
服务器510可发回到达入口交换机508的内容。交换机508可(通过内容查询信息)询问控制器506应当将内容缓存在何处。这标志着内容的显式开始。特殊的流可在内容路径和内容的缓存位置中从控制器506推送到每个交换机。这时,控制器可能知晓内容的缓存位置。
之后,如果同一客户端或另一客户端请求同一内容,那么控制器506可按内容名称查找其缓存字典。控制器可识别存储内容的缓存504,代理可将请求重定向到缓存504。同时,控制器506可使用TE模块来计算内容应当在哪个路径上推送以提高网络中的总体带宽利用率。表4所示为可由控制器506使用的路径选择算法的实施例。应理解,在特定场景中使用的优化算法可取决于实际问题定义并且算法可以是灵活的。控制器506可将流写入所有适用的交换机以转发内容。
表4:控制器506实施的示例性路径选择算法
本发明教示对现有OpenFlow协议的某些修改以支持所公开的机制。以通过HTTP发送的内容为例,因为这种类型的内容构成了大多数因特网流量。所属领域普通技术人员将认识到通过应用本文所教示的机制可以类似地对其它类型的内容进行寻址。在高层,网元可能需要向管理网络的控制器通告解析和缓存内容元数据的能力,该控制器还能够写入流。
在交换机及其对应的控制器之间的握手阶段,交换机可能需要通告其解析内容元数据的能力。控制器可维护包含所有或一些通告了元数据解析能力的交换机的键值数据存储器或表。
在实施例中,交换机及其对应的控制器之间的握手可按如下执行。控制器或交换机可通过发送hello消息发起握手,并且另一侧可进行回复并建立传输层安全(TLS)会话。之后,控制器可发送表示为OFPT_FEATURES_REQUEST(OFPT表示开放流包类型)的消息以询问交换机其特性。交换机可使用表示为OFPT_FEATURES_REPLY消息的回复消息通告其特性或能力,例如使用ofp_capabilities结构的实例。额外的字段可添加至ofp_capabilities结构以指示提取内容元数据、缓存内容,和/或代理内容的能力。
一旦控制器连接到其域内的所有网元,那么控制器可知晓哪些元件可以提取元数据。控制器实施的控制平面可能需要通过写入flowmod消息请求网元解析内容元数据来配置网元。因此,额外的动作可添加在OpenFlow的顶部,这可称作EXTRACT_METADATA。在实施例中,具有该动作的flowmod如下所示:
if;actions=EXTRACT_METADATA,NORMAL,
这本质上意味着交换机可从HTTP元数据中提取元数据,将元数据放入PACKET_IN消息中,以及将PACKET_IN消息发回给控制器。之后,交换机可对该包执行正常转发动作。
本发明在OpenFlow中引入了一种新型的flowmod。这种新类型可提供写入具有终止条件的flowmod,如下所示:
if<conditions>;actions=<set of actions>
;until=<set of conditions>
由于控制器知晓给定内容的长度,所以控制器可以使用每流字节计数器来为上述“until”子句设置条件。例如,如果已知从源IP地址192.168.122.21到目的IP地址63.212.171.121的内容长度为x字节,那么网络中的每个flowmod的形式如下:
if src_ip=192.168.122.21
and dst_ip=63.212.171.121;
actions=<output to some port>
;while=byte_counter<x
应注意,内容长度可在HTTP头中进行编码(应注意,扩展该机制来提取MIME类型等其它内容元数据相对简单)。一旦交换机用于解析内容流,当交换机看见内容流中包含的HTTP包时,交换机可从HTTP头中读取内容长度。此外,交换机可以(contentname,contentsize,srcip,srcport,destip,destport)形式构建元组。该元组可被封装在PACKET_IN消息中,PACKET_IN消息可发回给控制器。
为了展示所公开的方法的益处或优势,以下论述涉及网络TE或流量优化。此处的一个目的在于使用通过OpenFlow收集并且可供控制器使用的内容元数据优化网络的某个参数。该问题可被划分为两个子问题。第一个子问题涉及在缓存中存储内容,因为当控制器确定在缓存中存储内容时控制器可能需要通往缓存的路径。假设网络在入口交换机和选择的缓存之间具有多个替代路径,这可能是使用路径分集来最大化链路使用率的好机会。因此,此处的一个目标在于最小化最大链路使用率,也就是说,对以下公式进行求解,
subject to be≤ce
第二个子问题涉及内容获取。此处的一个目的在于最小化客户端请求内容时看见的时间延迟,也就是说,对以下公式进行求解:
表5总结了上述两个公式中使用的符号。
表5:本文使用的部分符号
be | 链路e上的后台流量 |
ce | 链路e的容量 |
re | 链路e的速率 |
F | 内容大小 |
P | 源和目的地之间的所有路径的集合 |
E | 所有链路的集合 |
此处可以考虑的另一有趣的优化问题为磁盘输入/输出(I/O)优化。鉴于网络中存在许多缓存,每个缓存在给定时间可具有已知的负载量,因此最好优化所有缓存上的磁盘写入并且基于该度量阐述该问题。应注意,待使用的实际优化约束可随应用要求而改变并且可以是用户可编程的。例如,优化约束可在控制器的内容管理层中进行编程。
基于内容的管理可引入网络研究团体未探索的新机会或方法。与传统网络中可能不具有显式结束标记的IP流不同(应注意,IP流可能超时,这是隐式标记,但是可能需要合适的超时值),内容可能具有显式开始和结束语义。因此,确定流所需的资源量以及跟踪通过网络单元或设备的数据量可被简化。检测显式标记或事件的能力可能允许网络执行防火墙功能,例如仅仅允许所需的内容量通过,并且内容流结束之后网络资源可自动去分配。
本发明可使用缓存作为主要的ICN能力,这可能导致内容访问延迟缩短。使用终端用户不可知方法进行内容分发的访问延迟缩短增加了整体的网络效率。该设计模式可要求流量工程、负载均衡等其它网络业务使用内容名称而不是使用可路由地址进行。本发明受ICN中的观察所启发,通过在缓存中观察网内内容流或内容状态可以获取内容的各种信息,或者通过在交换机中使用深度报文检测(DPI)可以获取内容的各种信息。
在评估方面,本发明表明知晓解TE之前的内容大小可以有效用于减少链路中的积压,这反过来缩短了网络延迟。在示例性建立中,源和目的地之间有两条平行链路可用。比如说,两条链路的容量均为1千比特每秒(kbps)。因此,系统的总容量为2kbps。在任何时间点输入均不应超过2kbps;否则,队列可能变得不稳定。此外,假设内容大小为帕累托分布。鉴于帕累托分布定义的阿尔法(α)值,可使用关系式计算形状参数的值:这样帕累托分布的均值为1.95。此外,假设内容的确定性到达时间在t=1second秒至t=10000秒的范围内为每秒一次。
使用这些条件,流量可基于以下策略之一分配给每条链路。第一策略(策略1)假设在分配链路之前内容大小未知。因此,在任何时间点,如果两条链路均为全容量,那么可随机挑选或选择一条链路。或者,可选择任意一个空链路。或者,第二策略(策略2)假设在分配链路之前内容大小已知。在这种情况下,在任意时间点,可选择具有最小积压的链路作为最优链路。
图6是显示使用模拟程序MATLAB获取的模拟结果的图。图6通过描绘两种策略之下系统中的总积压之间的百分比(%)差别来研究策略1和策略2,其中α从1:1增长为2:5。对于α的每个值,通过对两个队列中的积压进行平均来计算给定策略的平均积压。图6表明大小感知的策略2更好地减少了等待发送的数据量,从而缩短了系统中的延迟。例如,当负载/容量比为0:95时,策略2的平均增益最多为40%,而策略1的平均增益最多为26%。
对于低流量负载,几乎不需要或无需进行流量优化。然而,对于高流量负载,链路可能会变得高度积压,并且策略1和策略2的吞吐量均为最优。最好在链路利用率为1或接近1的区域中操作。使用该度量,与策略1相比,策略2显示了巨大的提升。
图7是显示使用类似策略获取的模拟结果的另一图。假设所有其它条件与图6的建立相同,第一策略假设在分配链路之前内容大小未知。因此,在任何时间点,如果两条链路均为全容量,那么可随机挑选或选择一条链路。或者,可选择任意一个具有最少流量的链路。或者,第二策略假设在分配链路之前内容大小已知。在这种情况下,在任意时间点,可选择具有最小积压的链路作为最优链路。应注意,这两种策略的吞吐量均为最优,但是差别在于第一策略仅仅查看当前链路状态,而第二策略使用内容元数据来预测或估计未来链路状态。图7示出了第一策略和第二策略之间的堆积差(即,第一策略堆积减去第二策略堆积)。可以看出第二策略极大地降低了堆积。
图8是可由网络控制器(例如,控制器142)实施的方法800的实施例的流程图。网络控制器可遵循OpenFlow协议,并且由控制器管理的网络可以是实施SDN标准的ICN。方法800开始于步骤810,在步骤810中,控制器可通过从控制器控制的交换机接收元数据获取由客户端设备所请求的内容的元数据。应注意,如果需要,可通过任何其它方式获取元数据。客户端设备可驻留在网络之内或之外。在实施例中,内容具有文件名称、内容大小和MIME类型,并且内容元数据包括文件名称、内容大小和MIME类型中的至少一项。
在步骤820中,控制器可基于内容的元数据将一个或多个网络资源分配给内容。控制器可通过网络资源的分配执行TE,因为控制器具有网络的全局视图和知识。如果内容大小获取为元数据,那么控制器可选择基于预定大小阈值将携带内容的数据流归类为长流或短流,并且长流或短流可至少部分地确定分配的网络资源。在实施例中,分配一个或多个网络资源可包括选择至少部分覆盖网络中的缓存和客户端设备之间的路径的本地路径,其中缓存用于存储内容的副本并且使用选择的本地路径将内容提供给客户端设备。在这种情况下,可遵循约束条件集从网络中可用的多条路径中选择本地路径,目的是优化本地路径的带宽,或者优化缓存上的磁盘写入操作,或者这两者。例如,如果存在流量堆积,那么在进行选择时,在多条路径中,选择的本地路径具有最少的流量堆积。
在步骤830中,控制器可将标识分配的网络资源的消息发送给交换机以引导内容提供给客户端设备。交换机随后可使用分配的网络资源将内容转发给客户端设备。在步骤840中,控制器可监控流经网络的数据流的量,其中数据流包括内容。在步骤850中,一旦数据流的量超过预定阈值(阈值取决于应用),控制器可终止或阻止数据流流经网络。步骤840和850允许控制器作为元数据驱动防火墙。
应注意,图8所示的方法800覆盖将内容提供给客户端设备的必要步骤的一部分,因此其它步骤只要合适也可由控制器执行。例如,如果内容从网络之外的服务器发送并且第一次流经网络,那么控制器可确定内容在网络中不可用。此外,控制器可指派或指示位于网络中的缓存存储内容的副本,并且记录标识内容和缓存的信息。否则,如果内容副本已经存储在网络的缓存中,那么控制器可确定缓存的位置,并且将请求重定向到缓存。
图9是可由SDN交换机(例如,交换机140)实施的方法900的实施例的流程图。SDN交换机可以位于由SDN控制器(例如,控制器142)管理的网络或网络域(例如,网络130)中。方法900开始于步骤910,在步骤910中,SDN交换机可接收对内容的请求,其中该请求来源于客户端设备(例如,客户端112)。在步骤920中,SDN交换机可将包含内容的数据流转发回客户端设备。应注意,数据流的源可以是网络之外的服务器或网络内的缓存。在实施例中,数据流包括HTTP包头,HTTP包头又包括唯一标识内容的内容名称和由内容名称确定的内容大小。
在步骤930中,SDN交换机可通过在网络层而非应用层上解析HTTP包头来提取内容元数据。元数据的提取可在转发数据流期间执行。在实施例中,内容具有文件名称、内容大小和MIME类型,并且内容元数据包括文件名称、内容大小和MIME类型中的至少一项。在步骤940中,SDN交换机可将元数据转发给控制交换机的控制器。在步骤950中,SDN交换机可从控制器接收标识分配用于将内容提供给客户端设备的一个或多个网络资源的指令。一个或多个网络资源可能已经由控制器至少部分基于元数据进行分配。在实施例中,由指令标识的网络资源可包括至少部分覆盖内容源和客户端设备之间的连接的本地数据路径。由于本地数据路径由控制器确定,所以如果存在流量堆积,那么当接收到指令时,在网络中可用于内容的多条本地数据路径中,本地数据路径可能具有最少的流量堆积。
应注意,图9所示的方法900包括将内容提供给客户端设备的必要步骤的一部分,因此其它步骤只要合适也可由SDN交换机执行。例如,如果内容从网络之外的服务器发送,那么SDN交换机可将内容的副本转发给位于同一网络中的缓存。否则,如果内容已经存储在缓存中,那么交换机可将对内容的请求转发给缓存,这样内容的副本可从缓存中获取。此外,在防火墙应用中,交换机可持续将数据流引导到客户端设备,直到通过交换机或网络的内容的数据量超过预定阈值。
与现有尝试相比,所公开的网络可提供各种优势或益处。首先,不需要在包含客户端和服务器的端点或主机处进行修改。第二,所公开的内容管理网络可对端主机保持透明,这样端主机可能无法感知任何流路径中存在的缓存或代理。第三,所公开的网络可使用SDN(例如,OpenFlow)和ICN无缝管理。第四,所公开的网络可缩短内容访问的延迟,因此,客户端可注意到内容的访问速度更快。第五,通过删除冗余流(例如,如果内容已经存储在缓存中,那么内容无需从服务器发往缓存)可减少网络中的带宽使用或消耗。
图10是网络设备或单元1000的实施例的图,网络设备或单元1000可为通过网络传送包的任意设备。例如,网络单元1000可对应于缓存132至136、代理138或交换机140中的任一项。网络单元1000可包括耦合到接收器(Rx)1012的一个或多个入端口1010,接收器1012可用于从其它网络部件接收包或帧、对象、选项,和/或类型长度值(TLV)。
网络单元1000可包括与接收器1012和发射器1032通信的逻辑单元或处理器1020。尽管处理器1020被图示为单个处理器,但是它并非受到此类限制而是可以包括多个处理器。处理器1020可以实施为一个或多个中央处理器(CPU)芯片、核(例如,多核处理器)、现场可编程门阵列(FPGA)、专用集成电路(ASIC),和/或数字信号处理器(DSP)。处理器1020可使用硬件或硬件和软件的组合来实施。处理器1020可用于实施本文所述的任意功能模块或单元,例如Redis队列212、捕捉器214、看门狗216、网络服务器218、缓存字典222、请求字典224、转发平面304的至少一部分、包含流推送器312、路由引擎314、拓扑管理器316以及动态流量分配引擎318的控制平面310、包含内容名称管理器322、缓存管理器324以及内容元数据管理器326的内容管理层320,或本领域普通技术人员所知的任意其它功能部件,或任意组合。
网络单元1000可进一步包括存储器1022,其可为用于存储流表的存储器,或用于存储缓存的流表的缓存存储器。存储器可例如,存储Redis队列212、缓存字典222,和/或请求字典224。网络单元1000还可包括耦合到发射器(Tx)1032的一个或多个出端口1030,发射器1032可用于将包或帧、对象、选项,和/或TLV发送给其它网络部件。应注意,实际上存在由网络单元1000处理的双向流量,因此一些端口可接收并发送包。在此意义上,入端口1010和出端口1030可位于同一处,或可视作耦合到收发器(Rx/Tx)的相同端口的不同功能。处理器1020、存储器1022、接收器1012以及发射器1032还可用于实施或支持本文描述的任意方案和方法,例如方法800和方法900。
应理解,通过将可执行指令编程和/或加载至网络单元1000,处理器1020和存储器1022中的至少之一被改变,将网络单元1000的一部分转换成特定机器或装置(例如,具有本发明所宣扬的功能的SDN交换机)。可执行指令可存储于存储器1022上,并加载至处理器1020中用于执行。加载可执行软件至计算机所实现的功能可以通过公知设计规则转换成硬件实施,这在电力工程和软件工程领域是很基础的。决定使用软件还是硬件来实施一个概念通常取决于对设计稳定性及待生产的单元数量的考虑,而不是从软件领域转换至硬件领域中所涉及的任何问题。一般来说,经常变动的设计更适于在软件中实施,因为重新编写硬件实施比重新编写软件更为昂贵。通常,稳定及大规模生产的设计更适于在如ASIC这样的硬件中实施,因为运行硬件实施的大规模生产比软件实施更为便宜。设计通常可以以软件形式进行开发和测试,之后通过公知设计规定转变成专用集成电路中等同的硬件实施,该集成电路硬线软件指令。由新ASIC控制的机器是一特定的机器或装置,同样地,编程和/或加载有可执行指令的计算机可视为特定的机器或装置。
上述方案可以在网络部件上实施,例如计算机或网络部件,其具有足够的处理能力、存储资源以及网络吞吐能力来处理其上的必要工作量。图11是计算机系统或网络设备1100的实施例的图,计算机系统或网络设备1100适用于实施本文所公开的系统和方法的一个或多个实施例,例如SDN控制器142。
计算机系统1100包括处理器1102,该处理器与包含以下项的存储器设备通信:辅助存储器1104、只读存储器(ROM)1106、随机存取存储器(RAM)1108、输入/输出(I/O)设备1110,以及发射器/接收器1112。尽管处理器1102被图示为单个处理器,但是它并非受此限制而是可以包括多个处理器。处理器1102可以实施为一个或多个CPU芯片、核(例如,多核处理器)、FPGA、ASIC,和/或DSP。处理器1102可用于实施本文所述的任意方案,包括方法800和方法900。处理器1102可使用硬件或硬件和软件的组合来实施。处理器1102可用于实施本文所述的任意功能模块或单元,例如Redis队列212、捕捉器214、看门狗216、网络服务器218、缓存字典222、请求字典224、转发平面304的至少一部分、包含流推送器312、路由引擎314、拓扑管理器316以及动态流量分配引擎318的控制平面310、包含内容名称管理器322、缓存管理器324以及内容元数据管理器326的内容管理层320,或本领域普通技术人员所知的任意其它功能部件,或任意组合。
辅助存储器1104通常包括一个或多个磁盘驱动器或磁带驱动器,用于数据的非易失性存储,而且如果RAM 1108的容量不足以存储所有工作数据,辅助存储器则用作溢流数据存储设备。辅助存储器1104可以用于存储程序,当选择执行这些程序时,这些程序将加载至RAM 1108中。ROM1106用于存储在程序执行期间读取的指令以及可能读取的数据。ROM1106为非易失性存储设备,其存储容量相对于辅助存储器1104的较大存储容量而言通常较小。RAM 1108用于存储易失性数据,还可能用于存储指令。对ROM 1106和RAM 1108二者的存取通常比对辅助存储器1104的存取快。
发射器/接收器1112(有时称作收发器)可用作计算机系统1100的输出和/或输入设备。例如,如果发射器/接收器1112用作发射器,则其可将数据传出计算机系统1100。如果发射器/接收器1112用作接收器,其可将数据传入计算机系统1100。此外,发射器/接收器1112可包括一个或多个光发射器、一个或多个光接收器、一个或多个电发射器,和/或一个或多个电接收器。发射器/接收器1112可采用以下形式:调制解调器、调制解调器组、以太网卡、通用串行总线(USB)接口卡、串行接口、令牌环卡、光纤分布式数据接口(FDDI)卡,和/或其它公知的网络设备。发射器/接收器1112可使处理器1102与因特网或一个或多个内网通信。I/O设备1110为可选或可与计算机系统1100的其余部分分离。I/O设备1110可包括视频监控器、液晶显示器(LCD)、触屏显示器,或其它类型的显示器。I/O设备1110可包括一个或多个键盘、鼠标、轨迹球或其它公知的输入设备。
与网络单元1000类似,应理解通过将可执行指令编程和/或加载至计算机系统1100,处理器1102、辅助存储器1104、RAM 1108和ROM 1106中的至少之一被更改,将计算机系统1100的一部分转换成特定机器或装置(例如,拥有本发明宣扬的功能的SDN控制器或交换机)。可执行指令可存储于辅助存储器1104、ROM 1106,和/或RAM 1108上,并加载至处理器1102中用于执行。
本发明的任意处理可通过使处理器(例如,通用CPU)执行计算机程序来实施。在这种情况下,计算机程序产品可以提供给使用任意类型的非瞬时计算机可读介质的计算机或网络设备。计算机程序产品可存储在计算机或网络设备的非瞬时计算机可读介质中。非瞬时计算机可读介质包括任意类型的有形存储介质。非瞬时计算机可读介质的示例包括磁存储介质(例如,软盘、磁带、硬盘驱动器等)、光磁存储介质(例如,磁光盘)、只读光盘(CD-ROM)、可录光盘(CD-R)、可写光盘(CD-R/W)、数字多功能光盘(DVD)、蓝光(注册商标)光盘(BD),以及半导体存储器(例如,掩膜ROM、可编程ROM(PROM)、可擦除PROM、闪存ROM和RAM)。计算机程序产品还可提供给使用任意类型的瞬时计算机可读介质的计算机或网络设备。瞬时计算机可读介质的示例包括电信号、光信号和电磁波。瞬时计算机可读介质可以通过有线通信线(例如,电线和光纤)或无线通信线向计算机提供程序。
本发明公开了至少一项实施例,而且所属领域的一般技术人员对实施例和/或实施例的特征做出的变化、组合和/或修改均在本发明的范围内。通过组合、整合和/或忽略各项实施例的特征而得到的替代性实施例也在本发明的范围内。在明确说明数字范围或限制的情况下,此类表达范围或限制可以被理解成包括在明确说明的范围或限制内具有相同大小的迭代范围或限制(例如,从约为1到约为10包括2、3、4等;大于0.10包括0.11、0.12、0.13等)。例如,只要公开具有下限Rl和上限Ru的数字范围,则明确公开了此范围内的任何数字。具体而言,在所述范围内的以下数字是明确公开的:R=R+k*(Ru–R),其中k为从1%到100%范围内以1%递增的变量,即,k为1%、2%、3%、4%、5%……50%、51%、52%……95%、96%、97%、98%、99%或100%。此外,由上文所定义的两个数字R定义的任何数字范围也是明确公开的。除非另有说明,否则术语“约”是指随后数字的±10%。相对于权利要求的任一元素使用术语“选择性地”意味着所述元素是需要的,或者所述元素是不需要的,两种替代方案均在所述权利要求的范围内。使用如“包括”、“包含”和“具有”等较广术语应被理解为提供对如“由……组成”、“基本上由……组成”以及“大体上由……组成”等较窄术语的支持。因此,保护范围不受上文所陈述的说明限制,而是由所附权利要求书界定,所述范围包含所附权利要求书的标的物的所有等效物。每一和每条权利要求作为进一步揭示内容并入说明书中,且所附权利要求书是本发明的实施例。对所述揭示内容中的参考进行的论述并非承认其为现有技术,尤其是具有在本申请案的在先申请优先权日期之后的公开日期的任何参考。本发明中所引用的所有专利、专利申请案和公开案的揭示内容特此以引用的方式并入本文本中,其提供补充本发明的示例性、程序性或其它细节。
虽然本发明多个具体实施例,但应当理解,所公开的系统和方法也可通过其它多种具体形式体现,而不会脱离本发明的精神或范围。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文本所给出的细节。例如,各种元件或部件可以在另一系统中组合或合并,或者某些特征可以省略或不实施。
此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法进行组合或合并。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式通过某一接口、设备或中间部件间接地耦合或通信。其它变更、替换、更替示例对本领域技术人员而言是显而易见的,均不脱离此处公开的精神和范围。
Claims (23)
1.一种由位于符合软件定义网络SDN标准的信息中心网络ICN中的网络控制器实施的方法,其特征在于,所述方法包括:
获取内容的元数据,其中所述内容由客户端设备请求;所述元数据在ICN网络的网络层上被提取,并且其中所述ICN网络是基于软件定义网络SDN;
基于所述内容的所述元数据将一个或多个网络资源分配给所述内容;其中,所述网络资源包括通过所述SDN承载所述内容的数据流,并且包括本地数据路径,所述本地数据路径至少部分地覆盖所述内容的源和客户端设备,并且基于所述元数据确定所述数据流;以及
将标识所述分配的网络资源的消息发送给交换机以引导所述内容提供给所述客户端设备,其中所述分配的网络资源用于将所述内容从所述交换机转发到所述客户端设备,所述交换机由所述网络控制器控制。
2.根据权利要求1所述的方法,其特征在于,从携带所述内容的数据流中提取所述内容的所述元数据之后,通过接收来自所述交换机的所述内容的所述元数据获取所述内容的所述元数据。
3.根据权利要求2所述的方法,其特征在于,分配所述一个或多个网络资源包括选择至少部分覆盖所述网络中的缓存和所述客户端设备之间的路径的本地路径用于所述缓存使用所述选择的本地路径将所述内容提供给所述客户端设备,以及遵循约束条件集从所述网络中可用的多条路径中选择所述本地路径,目的是优化所述本地路径的带宽,或者优化所述缓存上的磁盘写入操作,或者这两者。
4.根据权利要求3所述的方法,其特征在于,如果存在流量堆积,那么在进行选择时,在所述多条路径中,所述选择的本地路径具有最少的流量堆积。
5.根据权利要求2所述的方法,其特征在于,所述内容的所述元数据包括所述内容的多用途网络邮件扩展MIME类型。
6.根据权利要求2所述的方法,其特征在于,所述内容的所述元数据包括所述内容的大小。
7.根据权利要求6所述的方法,其特征在于,进一步包括:
在获取所述内容的所述大小之后并在分配所述一个或多个网络资源之前,基于预定大小阈值将携带所述内容的数据流归类为长流或短流;
其中所述长流或所述短流至少部分地确定所述分配的网络资源。
8.根据权利要求1所述的方法,其特征在于,进一步包括:
指示所述交换机监控流经所述交换机的数据流的量,其中所述数据流包括所述内容;以及
一旦所述数据流的量超过预定阈值,通过阻止所述数据流流经所述交换机来指示所述交换机用作防火墙。
9.根据权利要求1所述的方法,其特征在于,进一步包括:
确定所述内容的副本在所述网络控制器控制的网络中不可用;
指示位于所述网络中的缓存存储所述内容的所述副本;以及
记录标识所述内容的信息和标识所述缓存的信息。
10.根据权利要求9所述的方法,其特征在于,进一步包括:
接收对所述内容的请求;以及
基于所述记录的信息,确定所述内容的所述副本存储在所述缓存中;以及
将所述请求重定向到所述缓存,所述内容的所述副本从所述缓存中获取。
11.根据权利要求10所述的方法,其特征在于,携带所述内容的数据流包括源地址和目的地址对,所述方法进一步包括:
存储将所述源地址和所述目的地址映射到代理的端口号的信息;以及
将所述数据流引导到所述代理上的端口,其中所述端口由所述端口号标识。
12.根据权利要求9所述的方法,其特征在于,所述网络控制器遵循OpenFlow协议,以及所述网络是实施软件定义网络SDN标准的信息中心网络ICN。
13.一种位于符合软件定义网络SDN标准的信息中心网络INC中的网络控制器,其特征在于,包括:
接收器,用于从位于与所述网络控制器相同的网络中的交换机接收内容的元数据,其中所述内容由客户端设备请求;所述元数据在ICN网络的网络层上被提取,并且其中所述ICN网络是基于软件定义网络SDN;
耦合到所述接收器的处理器,用于:
基于所述内容的所述元数据将一个或多个网络资源分配给所述内容;其中,所述网络资源包括通过所述SDN承载所述内容的数据流,并且包括本地数据路径,所述本地数据路径至少部分地覆盖所述内容的源和客户端设备,并且基于所述元数据确定所述数据流;以及
使用所述分配的网络资源引导所述内容提供给所述客户端设备;以及耦合到所述处理器的发射器,用于将标识所述分配的网络资源的消息发送给所述交换机。
14.根据权利要求13所述的网络控制器,其特征在于,分配所述一个或多个网络资源包括选择至少部分覆盖所述网络中的缓存和所述客户端设备之间的路径的本地路径用于所述缓存使用所述选择的本地路径将所述内容提供给所述客户端设备,以及所述本地路径选择所述网络中可用的多条路径中,因为如果存在流量堆积,那么在进行选择时,在所述多条路径中,所述选择的本地路径具有最少的流量堆积。
15.根据权利要求13所述的网络控制器,其特征在于,所述内容具有文件名称、内容大小和多用途网络邮件扩展MIME类型,并且所述内容的所述元数据包括所述文件名称、所述内容大小和所述MIME类型中的至少一项。
16.根据权利要求13所述的网络控制器,其特征在于,所述处理器进一步用于:
确定所述内容的副本在所述网络中不可用;
指示位于所述网络中的缓存存储所述内容的所述副本;以及
记录标识所述内容的信息和标识所述缓存的信息。
17.一种由位于符合软件定义网络SDN标准的信息中心网络INC中的交换机实施的方法,其特征在于,所述方法包括:
接收对内容的请求,其中所述请求来源于客户端设备;
提取所述内容的元数据;所述元数据在ICN网络的网络层上被提取,并且其中所述ICN网络是基于软件定义网络SDN;
将所述元数据转发给用于管理所述网络的控制器;以及
从所述控制器接收标识分配用于将所述内容提供给所述客户端设备的一个或多个网络资源的指令,其中所述一个或多个网络资源是由所述控制器至少部分基于所述元数据分配的,其中,所述网络资源包括通过所述SDN承载所述内容的数据流,并且包括本地数据路径,所述本地数据路径至少部分地覆盖所述内容的源和客户端设备,并且基于所述元数据确定所述数据流。
18.根据权利要求17所述的方法,其特征在于,进一步包括:
通过解析所述请求来获取源和目的地址信息;
基于所述源和目的地址信息在流表中定位流条目,其中所述流表存储在所述交换机中;
读取所述流条目确定位于所述网络中用于存储所述内容的副本的缓存的位置;以及
将所述请求转发给所述缓存。
19.根据权利要求17所述的方法,其特征在于,进一步包括将包含所述内容的数据流转发回所述客户端设备;其中所述数据流包括超文本传输协议HTTP包头,所述HTTP包头包括唯一标识所述内容的内容名称和由所述内容名称确定的内容大小;提取所述元数据包括在网络层而非应用层上解析所述HTTP包头以获取所述内容大小,所述内容大小被转发给所述控制器。
20.根据权利要求17所述的方法,其特征在于,所述指令标识的所述一个或多个网络资源包括所述网络中的本地数据路径;所述本地数据路径至少部分覆盖所述内容的源和所述客户端设备之间的连接;如果存在流量堆积,那么当接收所述指令时,在所述网络中可用于所述内容的多条本地数据路径中,所述本地数据路径可能具有最少的流量堆积,所述方法进一步包括:
接收包含所述内容的数据流;以及
沿着所述本地数据路径将所述数据流引导到所述客户端设备,直到流经所述交换机的所述内容的数据量超过预定阈值。
21.一种位于符合软件定义网络SDN标准的信息中心网络INC中的交换机,其特征在于,所述交换机包括:
至少一个接收器,用于接收对内容的请求,其中所述请求来源于客户端设备;
耦合到所述至少一个接收器的处理器,用于提取所述内容的元数据;所述元数据在ICN网络的网络层上被提取,并且其中所述ICN网络是基于软件定义网络SDN;以及
耦合到所述处理器的一个或多个发射器,用于将所述元数据转发给管理所述网络的控制器,
其中所述至少一个接收器进一步用于从所述控制器接收标识分配用于将所述内容提供给所述客户端设备的一个或多个网络资源的指令,其中所述一个或多个网络资源是由所述控制器至少部分基于所述元数据分配的,其中,所述网络资源包括通过所述SDN承载所述内容的数据流,并且包括本地数据路径,所述本地数据路径至少部分地覆盖所述内容的源和客户端设备,并且基于所述元数据确定所述数据流。
22.根据权利要求21所述的交换机,其特征在于,进一步包括耦合到所述处理器的存储器,用于存储流表,其中所述处理器进一步用于:
通过解析所述请求来获取源和目的地址信息;
基于所述源和目的地址信息在所述流表中定位流条目;
读取所述流条目确定驻留在所述网络中的用于存储所述内容的副本的缓存的位置,所述网络符合软件定义网络SDN标准,
其中所述一个或多个发射器进一步用于将所述请求转发给所述缓存。
23.根据权利要求21所述的交换机,其特征在于,所述指令标识的所述一个或多个网络资源包括所述网络中的本地数据路径;所述本地数据路径至少部分覆盖所述内容的源和所述客户端设备之间的连接;如果存在流量堆积,那么当接收所述指令时,在所述网络中可用于所述内容的多条本地数据路径中,所述本地数据路径可能具有最少的流量堆积;所述至少一个接收器进一步用于接收包含所述内容的数据流;所述处理器进一步用于沿着所述本地数据路径将所述数据流引导到所述客户端设备,直到流经所述交换机的所述内容的数据量超过预定阈值。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261736833P | 2012-12-13 | 2012-12-13 | |
US61/736,833 | 2012-12-13 | ||
US201261739582P | 2012-12-19 | 2012-12-19 | |
US61/739,582 | 2012-12-19 | ||
PCT/US2013/075145 WO2014093900A1 (en) | 2012-12-13 | 2013-12-13 | Content based traffic engineering in software defined information centric networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104885431A CN104885431A (zh) | 2015-09-02 |
CN104885431B true CN104885431B (zh) | 2018-11-20 |
Family
ID=49956359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380064375.8A Active CN104885431B (zh) | 2012-12-13 | 2013-12-13 | 软件定义信息中心网络中基于内容的流量工程的方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20140173018A1 (zh) |
CN (1) | CN104885431B (zh) |
WO (1) | WO2014093900A1 (zh) |
Families Citing this family (86)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9270639B2 (en) | 2011-02-16 | 2016-02-23 | Fortinet, Inc. | Load balancing among a cluster of firewall security devices |
US8776207B2 (en) * | 2011-02-16 | 2014-07-08 | Fortinet, Inc. | Load balancing in a network with session information |
US20140079067A1 (en) * | 2012-09-14 | 2014-03-20 | Electronics And Telecommunications Research Institute | Information centric network (icn) node based on switch and network process using the node |
CN104158916A (zh) * | 2013-05-13 | 2014-11-19 | 中兴通讯股份有限公司 | 设备接入网络的方法和装置 |
KR20140135000A (ko) * | 2013-05-15 | 2014-11-25 | 삼성전자주식회사 | 소프트웨어정의네트워킹 기반 통신시스템의 서비스 처리 방법 및 장치 |
US9124506B2 (en) * | 2013-06-07 | 2015-09-01 | Brocade Communications Systems, Inc. | Techniques for end-to-end network bandwidth optimization using software defined networking |
WO2014209193A1 (en) * | 2013-06-28 | 2014-12-31 | Telefonaktiebolaget L M Ericsson (Publ) | Access control in an information centric network |
US9559896B2 (en) * | 2013-07-08 | 2017-01-31 | Cisco Technology, Inc. | Network-assisted configuration and programming of gateways in a network environment |
US9753942B2 (en) * | 2013-09-10 | 2017-09-05 | Robin Systems, Inc. | Traffic statistic generation for datacenters |
AU2014354766B2 (en) * | 2013-11-27 | 2018-03-08 | Interdigital Patent Holdings, Inc. | Media presentation description |
US9548924B2 (en) | 2013-12-09 | 2017-01-17 | Nicira, Inc. | Detecting an elephant flow based on the size of a packet |
US9967199B2 (en) | 2013-12-09 | 2018-05-08 | Nicira, Inc. | Inspecting operations of a machine to detect elephant flows |
CN104811396A (zh) * | 2014-01-23 | 2015-07-29 | 中兴通讯股份有限公司 | 一种负荷均衡的方法及系统 |
WO2015113298A1 (zh) * | 2014-01-29 | 2015-08-06 | 华为技术有限公司 | 资源的配置方法和装置 |
US20150244645A1 (en) * | 2014-02-26 | 2015-08-27 | Ca, Inc. | Intelligent infrastructure capacity management |
US9454575B2 (en) * | 2014-03-28 | 2016-09-27 | Hewlett Packard Enterprise Development Lp | Processing a metric of a component of a software-defined network |
KR102136039B1 (ko) * | 2014-06-30 | 2020-07-20 | 알까뗄 루슨트 | 소프트웨어 정의 네트워크에서의 보안 |
US10305640B2 (en) * | 2014-07-18 | 2019-05-28 | Samsung Electronics Co., Ltd. | Communication method of node in content centric network (CCN) and the node |
US9356986B2 (en) * | 2014-08-08 | 2016-05-31 | Sas Institute Inc. | Distributed stream processing |
US9860314B2 (en) * | 2014-08-19 | 2018-01-02 | Ciena Corporation | Data synchronization system and methods in a network using a highly-available key-value storage system |
US9692689B2 (en) * | 2014-08-27 | 2017-06-27 | International Business Machines Corporation | Reporting static flows to a switch controller in a software-defined network (SDN) |
US10404577B2 (en) | 2014-08-28 | 2019-09-03 | Hewlett Packard Enterprise Development Lp | Network compatibility determination based on flow requirements of an application and stored flow capabilities of a software-defined network |
CN104158763A (zh) * | 2014-08-29 | 2014-11-19 | 重庆大学 | 一种基于软件定义的内容中心网络架构 |
US10986029B2 (en) * | 2014-09-08 | 2021-04-20 | Liveu Ltd. | Device, system, and method of data transport with selective utilization of a single link or multiple links |
CN107078921A (zh) | 2014-09-16 | 2017-08-18 | 云端吉尼斯公司 | 用于基于商业意图驱动策略的网络业务表征、监视和控制的方法和系统 |
US20160125029A1 (en) * | 2014-10-31 | 2016-05-05 | InsightSoftware.com International | Intelligent caching for enterprise resource planning reporting |
KR101567253B1 (ko) | 2014-10-31 | 2015-11-06 | 삼성에스디에스 주식회사 | 플로우 제어 장치 및 방법 |
US9118582B1 (en) * | 2014-12-10 | 2015-08-25 | Iboss, Inc. | Network traffic management using port number redirection |
US10469580B2 (en) | 2014-12-12 | 2019-11-05 | International Business Machines Corporation | Clientless software defined grid |
US10554749B2 (en) | 2014-12-12 | 2020-02-04 | International Business Machines Corporation | Clientless software defined grid |
EP3032803B1 (en) | 2014-12-12 | 2021-08-25 | Tata Consultancy Services Limited | Providing requested content in an overlay information centric networking (o-icn) architecture |
US10841400B2 (en) * | 2014-12-15 | 2020-11-17 | Level 3 Communications, Llc | Request processing in a content delivery framework |
CN104580168B (zh) * | 2014-12-22 | 2019-02-26 | 华为技术有限公司 | 一种攻击数据包的处理方法、装置及系统 |
US9838333B2 (en) * | 2015-01-20 | 2017-12-05 | Futurewei Technologies, Inc. | Software-defined information centric network (ICN) |
US10735556B2 (en) | 2015-02-03 | 2020-08-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Control signalling in SDN architecture networks |
WO2016148676A1 (en) | 2015-03-13 | 2016-09-22 | Hewlett Packard Enterprise Development Lp | Determine anomalous behavior based on dynamic device configuration address range |
US9742648B2 (en) | 2015-03-23 | 2017-08-22 | Brocade Communications Systems, Inc. | Efficient topology failure detection in SDN networks |
CN106537867B (zh) | 2015-03-27 | 2019-07-19 | 华为技术有限公司 | 一种数据传输方法、装置和系统 |
US9912536B2 (en) | 2015-04-01 | 2018-03-06 | Brocade Communications Systems LLC | Techniques for facilitating port mirroring in virtual networks |
US9443433B1 (en) * | 2015-04-23 | 2016-09-13 | The Boeing Company | Method and system to monitor for conformance to a traffic control instruction |
US9769233B2 (en) * | 2015-05-29 | 2017-09-19 | Aruba Networks, Inc. | Distributed media classification algorithm in a service controller platform for enhanced scalability |
EP3281363A4 (en) * | 2015-06-12 | 2018-02-21 | Hewlett-Packard Enterprise Development LP | Application identification cache |
US10116605B2 (en) * | 2015-06-22 | 2018-10-30 | Cisco Technology, Inc. | Transport stack name scheme and identity management |
CN106330508B (zh) | 2015-06-30 | 2019-10-25 | 华为技术有限公司 | 一种OpenFlow协议的资源控制方法、装置和系统 |
US9749401B2 (en) | 2015-07-10 | 2017-08-29 | Brocade Communications Systems, Inc. | Intelligent load balancer selection in a multi-load balancer environment |
US10341453B2 (en) * | 2015-07-28 | 2019-07-02 | Fortinet, Inc. | Facilitating in-network content caching with a centrally coordinated data plane |
US10798167B2 (en) | 2015-11-25 | 2020-10-06 | International Business Machines Corporation | Storage enhanced intelligent pre-seeding of information |
CN105357080B (zh) * | 2015-12-01 | 2019-01-04 | 电子科技大学 | 一种应用于软件定义网络的流量工程方法 |
EP3206348B1 (en) * | 2016-02-15 | 2019-07-31 | Tata Consultancy Services Limited | Method and system for co-operative on-path and off-path caching policy for information centric networks |
EP3417665A1 (en) * | 2016-02-19 | 2018-12-26 | Telefonaktiebolaget LM Ericsson (PUBL) | Scheduling delivery of information centric networking content |
US9699673B1 (en) | 2016-02-23 | 2017-07-04 | At&T Intellectual Property I, L.P. | Maintaining active sessions during subscriber management system maintenance activities |
US10360514B2 (en) | 2016-03-03 | 2019-07-23 | At&T Intellectual Property I, L.P. | Method and system to dynamically enable SDN network learning capability in a user-defined cloud network |
CN105721600B (zh) * | 2016-03-04 | 2018-10-12 | 重庆大学 | 一种基于复杂网络度量的内容中心网络缓存方法 |
CN107222426B (zh) * | 2016-03-21 | 2021-07-20 | 阿里巴巴集团控股有限公司 | 控流的方法、装置及系统 |
CN106131186A (zh) * | 2016-07-15 | 2016-11-16 | 国网河北省电力公司电力科学研究院 | 一种基于Redis分布式缓存的用电信息采集接口调试方法 |
CN107787003A (zh) * | 2016-08-24 | 2018-03-09 | 中兴通讯股份有限公司 | 一种流量检测的方法和装置 |
CN107786442B (zh) * | 2016-08-30 | 2021-05-11 | 中兴通讯股份有限公司 | 一种元数据的传输方法及装置 |
US10205636B1 (en) * | 2016-10-05 | 2019-02-12 | Cisco Technology, Inc. | Two-stage network simulation |
CN109845231B (zh) * | 2016-10-14 | 2022-03-08 | Idac控股公司 | Icn上http场景中的http响应故障转移 |
TWI616079B (zh) * | 2016-10-27 | 2018-02-21 | Chunghwa Telecom Co Ltd | 不需巨量資料偵測的低延遲多路徑繞徑方法 |
CN106686739B (zh) * | 2016-12-16 | 2020-02-14 | 清华大学 | 面向数据流的基于软件定义网络的无线网络资源管理方法 |
CN108259527B (zh) * | 2016-12-28 | 2020-10-16 | 华为技术有限公司 | 基于代理的业务处理方法、装置及网元设备 |
US10986152B2 (en) | 2016-12-29 | 2021-04-20 | Arris Enterprises Llc | Method for dynamically managing content delivery |
US10484271B2 (en) | 2017-03-28 | 2019-11-19 | Futurewei Technologies, Inc. | Data universal forwarding plane for information exchange |
US10117116B1 (en) * | 2017-04-27 | 2018-10-30 | At&T Intellectual Property I, L.P. | System and method supporting delivery of network accessible services to connected devices of a local environment |
US10536368B2 (en) * | 2017-05-23 | 2020-01-14 | Fujitsu Limited | Network-aware routing in information centric networking |
US10798187B2 (en) * | 2017-06-19 | 2020-10-06 | Cisco Technology, Inc. | Secure service chaining |
KR102376496B1 (ko) * | 2017-07-26 | 2022-03-18 | 한국전자통신연구원 | 서비스 스트림 분산 포워딩 시스템 및 그 방법 |
CN107634813B (zh) * | 2017-09-30 | 2019-05-24 | 上海交通大学 | 信息中心智能电网中软件定义的全路径时间同步方法 |
CN107959603B (zh) * | 2017-10-27 | 2020-11-03 | 新华三技术有限公司 | 转发控制方法及装置 |
CN109788319B (zh) * | 2017-11-14 | 2020-06-09 | 中国科学院声学研究所 | 一种数据缓存方法 |
CN108769097A (zh) * | 2018-03-30 | 2018-11-06 | 中国科学院信息工程研究所 | 支持网络控制的内容分发网络系统 |
US10986209B2 (en) * | 2018-04-19 | 2021-04-20 | Futurewei Technologies, Inc. | Secure and reliable on-demand source routing in an information centric network |
CN108512759A (zh) * | 2018-04-19 | 2018-09-07 | 北京工业大学 | 一种基于软件定义网络的内容智能分发方法 |
CN109361712B (zh) * | 2018-12-17 | 2021-08-24 | 北京天融信网络安全技术有限公司 | 一种信息处理方法及信息处理装置 |
BR112021012912A2 (pt) * | 2019-01-15 | 2021-09-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Método para suportar comunicação entre ues, portadora, e, aparelho |
US11329882B2 (en) | 2019-04-25 | 2022-05-10 | Juniper Networks, Inc. | Multi-cluster configuration controller for software defined networks |
JP7381882B2 (ja) * | 2020-02-21 | 2023-11-16 | 富士通株式会社 | 通信制御装置、通信制御システム、通信制御方法およびプログラム |
CN111399769B (zh) * | 2020-02-26 | 2021-01-26 | 武汉思普崚技术有限公司 | 一种mime格式上传文件的存储方法及装置 |
US20230146378A1 (en) * | 2020-03-24 | 2023-05-11 | Nippon Telegraph And Telephone Corporation | Packet transfer device, packet transfer method and packet transfer program |
CN111432231B (zh) * | 2020-04-26 | 2023-04-07 | 中移(杭州)信息技术有限公司 | 边缘网络的内容调度方法、家庭网关、系统、及服务器 |
US11962518B2 (en) | 2020-06-02 | 2024-04-16 | VMware LLC | Hardware acceleration techniques using flow selection |
CN111930396B (zh) * | 2020-06-29 | 2021-05-11 | 广西东信易联科技有限公司 | 一种基于notify机制的4G路由器中通讯模组的升级方法 |
CN114465989B (zh) * | 2020-10-30 | 2024-07-02 | 京东方科技集团股份有限公司 | 流媒体数据处理方法、服务器、电子设备和可读存储介质 |
CN113114725A (zh) * | 2021-03-19 | 2021-07-13 | 中新网络信息安全股份有限公司 | 一种基于http协议多节点数据交互系统及其实现方法 |
CN113141282B (zh) * | 2021-05-12 | 2022-03-18 | 深圳赛安特技术服务有限公司 | 基于Libpcap的抓包方法、装置、设备及存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7349979B1 (en) * | 1999-12-02 | 2008-03-25 | Cisco Technology, Inc. | Method and apparatus for redirecting network traffic |
US20030018978A1 (en) * | 2001-03-02 | 2003-01-23 | Singal Sanjay S. | Transfer file format and system and method for distributing media content |
US20050234937A1 (en) * | 2004-04-15 | 2005-10-20 | International Business Machines Corporation | System and method for rating performance of computing grid service providers |
KR20080090976A (ko) * | 2007-04-06 | 2008-10-09 | 엘지전자 주식회사 | 콘텐츠 처리 방법 및 그 단말 |
US20080301320A1 (en) * | 2007-05-31 | 2008-12-04 | Morris Robert P | Method And System For Managing Communication Protocol Data Based On MIME Types |
US8625607B2 (en) * | 2007-07-24 | 2014-01-07 | Time Warner Cable Enterprises Llc | Generation, distribution and use of content metadata in a network |
US8379636B2 (en) * | 2009-09-28 | 2013-02-19 | Sonus Networks, Inc. | Methods and apparatuses for establishing M3UA linksets and routes |
US9124515B2 (en) * | 2010-11-22 | 2015-09-01 | Hewlett-Packard Development Company, L.P. | Elephant flow detection in a computing device |
US8863204B2 (en) * | 2010-12-20 | 2014-10-14 | Comcast Cable Communications, Llc | Cache management in a video content distribution network |
US20120260259A1 (en) * | 2011-04-06 | 2012-10-11 | Microsoft Corporation | Resource consumption with enhanced requirement-capability definitions |
KR20130048032A (ko) * | 2011-11-01 | 2013-05-09 | 한국전자통신연구원 | 컨텐츠 중심 네트워크에서 라우팅 방법 |
US10097452B2 (en) * | 2012-04-16 | 2018-10-09 | Telefonaktiebolaget Lm Ericsson (Publ) | Chaining of inline services using software defined networking |
-
2013
- 2013-12-13 CN CN201380064375.8A patent/CN104885431B/zh active Active
- 2013-12-13 WO PCT/US2013/075145 patent/WO2014093900A1/en active Application Filing
- 2013-12-13 US US14/106,515 patent/US20140173018A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
CN104885431A (zh) | 2015-09-02 |
US20140173018A1 (en) | 2014-06-19 |
WO2014093900A1 (en) | 2014-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104885431B (zh) | 软件定义信息中心网络中基于内容的流量工程的方法及装置 | |
Chanda et al. | Content based traffic engineering in software defined information centric networks | |
CN102685177B (zh) | 资源的透明代理缓存方法、网络设备及系统 | |
US7890656B2 (en) | Transmission system, delivery path controller, load information collecting device, and delivery path controlling method | |
US8677011B2 (en) | Load distribution system, load distribution method, apparatuses constituting load distribution system, and program | |
JP3757917B2 (ja) | パケット転送装置、パケット転送方法解決サーバ、dnsサーバ、ネットワークシステム及びプログラム | |
JP5745169B2 (ja) | コンテンツ処理方法、コンテンツ処理デバイス、およびコンテンツ処理システム | |
JP3923863B2 (ja) | リクエストルータ装置 | |
CN104247371B (zh) | 以信息为中心的网络中的基于名称的邻居发现和多跳服务发现 | |
US7626936B1 (en) | Traffic matrix computation for a backbone network supporting virtual private networks | |
CN105681462B (zh) | 一种基于消息路由的集群系统及数据通信中转方法 | |
CN102833306B (zh) | 网络集成动态资源路由 | |
US8848522B2 (en) | Telecommunications system and server apparatus | |
EP3756317B1 (en) | Method, device and computer program product for interfacing communication networks | |
WO2017101230A1 (zh) | 一种数据中心网络的路由选择方法及网络管理器 | |
US20130028106A1 (en) | Resource Aware Parallel Process Distribution on Multi-Node Network Devices | |
US20150012917A1 (en) | Distributed virtual security appliance and flow-based forwarding system using virtual machines | |
CN105991793B (zh) | 报文转发的方法和装置 | |
CN109005126A (zh) | 数据流的处理方法和设备 | |
Benkacem et al. | Integrated ICN and CDN Slice as a Service | |
JP4074310B2 (ja) | トラヒック分散制御装置、パケット通信ネットワークおよびプログラム | |
US11240140B2 (en) | Method and system for interfacing communication networks | |
CN108769097A (zh) | 支持网络控制的内容分发网络系统 | |
CN105812277A (zh) | 访问请求的控制方法和系统、通信设备 | |
CN101986605B (zh) | 一种基于骨干网的用户上网数据处理方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |