Not applicable.
Not applicable.
Not applicable.
With an expansion in Internet-based services, applications, and offerings, information centric networking has grown in desirability due to the independence of data from particular locations, applications, storages, and means of transportation. For streaming services and applications, such as video streaming, video conferencing, and like-services, it may be desirable to retain the characteristics of information centric networks while facilitating an ability to prescribe a minimum quality of service (QoS) for the services and applications.
In one embodiment, the disclosure includes a network element, comprising a memory that comprises a pending interest table, a receiver operably coupled to the memory and configured to receive an extended interest message in an information centric network, a processor operably coupled to the receiver and memory and configured to determine a desired content according to the extended interest message, determine a prescribed QoS level requested for delivering the desired content to a client, record a path state in the memory, record a return route in the pending interest table of the memory, wherein the return route comprises a route through the information centric network to a return address of a previous location in the information centric network, and determine a next location in the information centric network to which the extended interest message is to be sent, and a transmitter operably coupled to the processor and configured to transmit the extended interest message to the next location in the information centric network.
In another embodiment, the disclosure includes a method implemented in a network element for routing an extended interest message in an information centric network, comprising receiving the extended interest message from a downstream node in the information centric network, determining, according to the extended interest message, data content to be retrieved, recording a return path from the network element to the downstream node in the information centric network in a pending interest table, recording a path state in the network element, and transmitting the extended interest message to an upstream node in the information centric network.
In yet another embodiment, the disclosure includes a method implemented in a network element for routing data content in an information centric network, comprising receiving the data content from an upstream node in the information centric network, determining a downstream location in the information centric network for sending the data content according to an entry in a pending interest table of the network element, associating the data content with a minimum QoS level according to a path state of the network element, and transmitting the data content to the downstream location in the information centric network with the minimum quality of service level.
These and other features will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings and claims.
For a more complete understanding of this disclosure, reference is now made to the following brief description, taken in connection with the accompanying drawings and detailed description, wherein like reference numerals represent like parts.
It should be understood at the outset that although an illustrative implementation of one or more embodiments are provided below, the disclosed systems and/or methods may be implemented using any number of techniques, whether currently known or in existence. The disclosure should in no way be limited to the illustrative implementations, drawings, and techniques illustrated below, including the exemplary designs and implementations illustrated and described herein, but may be modified within the scope of the appended claims along with their full scope of equivalents.
Disclosed herein is a manner for processing extended interest messages in content-based networks (e.g., information centric networks) while prescribing a minimum QoS level (e.g., a minimum amount of bandwidth in a network and/or between network elements) that should be dedicated to the transfer of data content described in the extended interest messages. In an embodiment, the extended interest messages contain a name of data content that is desired by a client, an address of a previous network node for return through the network to the client, a QoS value, indicators to correspond the data content to the QoS value, as well as other optional values for use in acquiring content for a client with a minimum QoS in a content-based network. The extended interest messages create content-based resource reservations in the network such that available network resources may be tracked and virtual tunnels with a prescribed level of QoS may be established between clients and content in the network.
After recording the entry in the pending interest table, the network element 120 transmits the interest message to a second network element 120 in the CCN 100. The interest message is transmitted through the CCN 100 until the desired content object is found in a cache in a network element 120, or obtained from a content publisher, for example at server 130. After the desired content object is found in the CCN 100, it is transmitted to the client 110 according to the pending interest table entries in the network elements 120 in the CCN 100.
The server 230 receives the path message from the network element 220 and replies with a resv message. The resv message traverses network 200 according to the path state stored in each network element 220 until it reaches the client 210. The resv message includes a flowspec characteristic that defines a QoS for the data flow. For example, the flowspec may indicate a minimum bandwidth that must be available in a network element 220 before that network element 220 transmits the data flow. In some embodiments, the resv message also includes a filterspec characteristic that indicates which data flow should be handled according to the flowspec. For example, a filterspec may indicate an Internet protocol (IP) address and/or one or more ports of that IP address for which the QoS defined by the flowspec should be maintained.
When client 310 wishes to access the desired data, an extended interest message is transmitted from client 310 to a network element 320. The extended interest message comprises a name of the desired data (e.g., a content object), a return address for the location in network 300 from which the extended interest message is being received, and a type-length-value (TLV) path extension that includes a path state that comprises a path identifier and/or prefix and a flowspec value for the data transfer. The flowspec value indicates a minimum QoS (e.g., a minimum necessary bandwidth) for transmitting the desired data through network 300 to client 310. As such, in an embodiment, the extended interest message comprises a content-based network resource reservation that provides a prescribed minimum quality of service level for a particular data (e.g., content object) being forwarded through network 300.
When a network element 320 receives an extended interest message in network 300, the network element 320 determines whether the desired data indicated by the extended interest message is stored in a cache on the network element 320. When the desired data is not stored in a cache on the network element 320, the network element 320 records a return route in the pending interest table that indicates a return route through network 300 to the return address from which the network element 320 received the extended interest message (e.g., the client 310 or another network element 320). Additionally, the network element 320 records a path state according to the TLV path extension of the extended interest message (e.g., the path identifier and/or prefix of the TLV path extension). The path state enables network elements 320 in network 300 to match the desired data to a specific path through the network 300 that is determined according to the extended interest message and is capable of supporting the prescribed QoS attributes. In an embodiment of network element 320 in which the extended interest message with the TLV path extension is not recognized and/or can not be understood, the network element 320 will process the extended interest message while omitting the TLV path extension. After recording the return route and path state, the network element 320 transmits the extended interest message to a next network element 320 in network 300. In an embodiment, the next network element 320 is the server 330 (e.g., a publisher or originator of the desired data). When the network element 320 determines that the desired data is stored in a cache on the network element 320, the desired data is transmitted to the last location in the network from which the extended interest message was received while maintaining any QoS attributes prescribed by the flowspec value in the extended interest message.
In some embodiments of network 300, a network element 320 may receive an extended interest message with prescribed QoS attributes that the network element 320 is unable to satisfy. When a network element 320 is unable to satisfy prescribed QoS attributes of a received extended interest message, in one embodiment, the network element 320 drops the extended interest message as unable to be satisfied and does not forward the extended interest message through the network 300. In another embodiment in which the network element 320 receives an extended interest message with prescribed QoS attributes that the network element 320 is unable to satisfy, the prescribed QoS attributes are reduced to an available level (e.g., by modifying the flowspec of the extended interest message) and the extended interest message continues through network as described above with the reduced level of prescribed QoS attributes. For example, if the prescribed QoS attributes request a QoS of 10 but the network element 320 is only capable of providing a QoS of 5, the prescribed QoS attributes are reduced to 5 and the extended interest message is forwarded through network 200 by the network element 320 as described above. In one embodiment, when the network element 320 reduces the prescribed QoS attributes to an available level (e.g., by modifying the flowspec of the extended interest message), the network element 320 inserts a flag into the extended interest message that indicates that the prescribed QoS attributes have been modified along the extended interest message's path through network 300. The insertion of the flag enables, for example, a client receiving the desired data to determine that the desired data is not being delivered according to the originally prescribed QoS attributes and to determine whether the reduced QoS level is sufficient to proceed.
When a server 330 receives the extended interest message, the server 330 locates the desired data and transmits it to the network element 320 from which the extended interest message was received. The desired data is transmitted to the network element 320 according to an address of the network element 320 that is included in the extended interest message, as well as the QoS attribute prescribed by the flowspec value in the extended interest message
When a network element 320 in network 300 receives the desired data, the QoS prescribed for the desired data and previously reserved in the network element 320 by the extended interest message is determined by comparing the name of the desired data to the path identifier and/or prefix that was previously recorded in the network element 320. The network element 320 then forwards the desired data with the prescribed QoS through network 300 according to the return route that was previously recorded in the pending interest table. In some embodiments, when a network element 320 receives the desired data and is unable to satisfy the prescribed QoS attributes, the network element 320 may negotiate the prescribed QoS attributes by modifying the desired data's path through network 300 and/or offering a reduced QoS according to a capacity that is available to the network element 320. For example, a flag may be added to a header of the desired data as it is transmitted through network 300. If a network element 320 receives the desired data with a prescribed QoS greater than can be provided, the network element 320 may provide the desired data with the maximum amount of bandwidth available less that the prescribed QoS and set the flag to indicate that the QoS has been modified. In another embodiment, when the network element 320 is capable of providing the prescribed QoS, the flag is set to indicate that the QoS has been satisfied.
It is understood that in some embodiments, a first network element 320 in network 300 may have a plurality of network elements 320 to which an extended interest message may be forwarded. In these embodiments, the first network element 320 may select a second network element 320 to which the extended interest message is forwarded according to available bandwidth between the first network element 320 and the second network element 320 and the name of the desired data as indicated by the extended interest message so as to provide a route through network 300 that will satisfy QoS attributes of the interest message. It is also understood that in some embodiments, the desired data may be stored in any combination of data caches and/or data servers (e.g., server 330) in network 300 and that data desired by a client (e.g., client 310) may be retrieved from either location. It is further understood that the client 310, network elements 320, and server 330 may each be referred to as a node in network 300.
At least some of the features/methods described in this disclosure may be implemented in a network element (NE) 700. For instance, the features/methods of this disclosure may be implemented using hardware, firmware, and/or software installed to run on hardware. Network element 700 may be similar to network elements 110-410 as illustrated in
The network element 700 may comprise one or more downstream ports 710 coupled to a transceiver (Tx/Rx) 720, which may be transmitters, receivers, or combinations thereof. The Tx/Rx 720 may transmit and/or receive frames from other network nodes via the downstream ports 710. Similarly, the network element 700 may comprise another Tx/Rx 720 coupled to a plurality of upstream ports 740, wherein the Tx/Rx 720 may transmit and/or receive frames from other nodes via the upstream ports 740. The downstream ports 710 and/or the upstream ports 740 may include electrical and/or optical transmitting and/or receiving components. In another embodiment, the network element 700 may comprise one or more antennas coupled to the Tx/Rx 720. The Tx/Rx 720 may transmit and/or receive data (e.g., packets) from other network elements wirelessly via one or more antennas.
A processor 730 may be coupled to the Tx/Rx 720 and may be configured to process the frames and/or determine to which nodes to send (e.g., transmit) the packets. In an embodiment, the processor 730 may comprise one or more multi-core processors and/or memory modules 750, which may function as data stores, buffers, etc. The processor 730 may be implemented as a general processor or may be part of one or more application specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), and/or digital signal processors (DSPs). Although illustrated as a single processor, the processor 730 is not so limited and may comprise multiple processors. The processor 730 may be configured to communicate and/or process multi-destination frames.
The memory module 750 may be used to house the instructions for carrying out the various embodiments described herein. In one embodiment, memory module 750 may comprise an interest message forwarding module 760 which may be implemented on processor 730 and configured to forward extended interest messages having a prescribed QoS attribute through a network. In another embodiment, memory module 750 may comprise a data content forwarding module 770 which may be implemented on processor 730 and configured to transmit data content through the network according to content-based resource reservations established in the network according to the extended interest message. Method 500 in
It is understood that by programming and/or loading executable instructions onto the network element 700, at least one of the processor 730 and/or the memory 750 are changed, transforming the network element 700 in part into a particular machine or apparatus, for example, a multi-core forwarding architecture having the novel functionality taught by the present disclosure. It is fundamental to the electrical engineering and software engineering arts that functionality that can be implemented by loading executable software into a computer can be converted to a hardware implementation by well-known design rules known in the art. Decisions between implementing a concept in software versus hardware typically hinge on considerations of stability of the design and number of units to be produced rather than any issues involved in translating from the software domain to the hardware domain. Generally, a design that is still subject to frequent change may be preferred to be implemented in software, because re-spinning a hardware implementation is more expensive than re-spinning a software design. Generally, a design that is stable and will be produced in large volume may be preferred to be implemented in hardware (e.g., in an ASIC) because for large production runs the hardware implementation may be less expensive than software implementations. Often a design may be developed and tested in a software form and then later transformed, by well-known design rules known in the art, to an equivalent hardware implementation in an ASIC that hardwires the instructions of the software. In the same manner as a machine controlled by a new ASIC is a particular machine or apparatus, likewise a computer that has been programmed and/or loaded with executable instructions may be viewed as a particular machine or apparatus.
Any processing of the present disclosure may be implemented by causing a processor (e.g., a general purpose multi-core processor) to execute a computer program. In this case, a computer program product can be provided to a computer or a network device using any type of non-transitory computer readable media. The computer program product may be stored in a non-transitory computer readable medium in the computer or the network device. Non-transitory computer readable media include any type of tangible storage media. Examples of non-transitory computer readable media include magnetic storage media (such as floppy disks, magnetic tapes, hard disk drives, etc.), optical magnetic storage media (e.g. magneto-optical disks), compact disc read-only memory (CD-ROM), compact disc recordable (CD-R), compact disc rewritable (CD-R/W), digital versatile disc (DVD), Blu-ray (registered trademark) disc (BD), and semiconductor memories (such as mask ROM, programmable ROM (PROM), erasable PROM, flash ROM, and RAM). The computer program product may also be provided to a computer or a network device using any type of transitory computer readable media. Examples of transitory computer readable media include electric signals, optical signals, and electromagnetic waves. Transitory computer readable media can provide the program to a computer via a wired communication line (e.g. electric wires, and optical fibers) or a wireless communication line.
While several embodiments have been provided in the present disclosure, it should be understood that the disclosed systems and methods might be embodied in many other specific forms without departing from the spirit or scope of the present disclosure. The present examples are to be considered as illustrative and not restrictive, and the intention is not to be limited to the details given herein. For example, the various elements or components may be combined or integrated in another system or certain features may be omitted, or not implemented.
In addition, techniques, systems, subsystems, and methods described and illustrated in the various embodiments as discrete or separate may be combined or integrated with other systems, modules, techniques, or methods without departing from the scope of the present disclosure. Other items shown or discussed as coupled or directly coupled or communicating with each other may be indirectly coupled or communicating through some interface, device, or intermediate component whether electrically, mechanically, or otherwise. Other examples of changes, substitutions, and alterations are ascertainable by one skilled in the art and could be made without departing from the spirit and scope disclosed herein.