US20160142309A1 - Method And System For Dynamic Routing And/Or Switching In A Network - Google Patents
Method And System For Dynamic Routing And/Or Switching In A Network Download PDFInfo
- Publication number
- US20160142309A1 US20160142309A1 US15/003,094 US201615003094A US2016142309A1 US 20160142309 A1 US20160142309 A1 US 20160142309A1 US 201615003094 A US201615003094 A US 201615003094A US 2016142309 A1 US2016142309 A1 US 2016142309A1
- Authority
- US
- United States
- Prior art keywords
- packet
- network
- data
- routing
- communication
- 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.)
- Abandoned
Links
Images
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/12—Shortest path evaluation
- H04L45/124—Shortest path evaluation using a combination of metrics
-
- 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/74—Address processing for routing
-
- 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
-
- 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/302—Route determination based on requested QoS
Definitions
- Certain embodiments of the invention relate to communication systems. More specifically, certain embodiments of the invention relate to dynamic routing and/or switching in a network.
- networking and systems' connectivity are some of the major developments in recent decades. Fewer and fewer systems and devices are operated as stand-alone entities, and most of today's systems are increasingly becoming elements in complex networks. This growth in networking allows improved performance and increased flexibility.
- communication devices such as personal computers (PCs) including laptops, printers, routers, switches, voice communication devices, video and/or audio devices, gaming devices and other devices, are connected together as nodes in communication networks.
- Networks are designated in a variety of ways, and based on a variety of factors. Network designation may be spatial, based on the scope of connectivity among the network nodes. For example, a network may be designated as a personal area network (PAN), a local area network (LAN), and wide area network (WAN).
- PAN personal area network
- LAN local area network
- WAN wide area network
- Network designation may also be based on the backbone connecting technology.
- a network may be designated as an Ethernet network, a wireless network, and/or a fiber optical network.
- Some networks are circuit switched and are built around dedicated node-to-node connectivity, wherein a dedicated circuit is created and reserved, when needed, between the communicating nodes. Other nodes are then barred from utilizing the same connection and/or other entities in the network to the extent necessary to maintain the circuit.
- Most networks in use nowadays, however, are based on packet switched networks. In packet switched networks, the sending node simply transmits traffic that is destined for one or more receiving nodes.
- the traffic comprises packets that contain, in addition to data, other information that enables directing the packets to the receiving nodes.
- IP Internet protocol/IP
- data is encapsulated into packets that comprise a header portion and a payload portion to enable transporting, addressing and/or routing among various entities within or coupled to the network.
- Network switching devices comprising such devices as switches, routers and/or hubs, are utilized in networks to facilitate forwarding of traffic between sending and receiving nodes.
- Hubs contain multiple ports, wherein packets arriving at one port are transmitted via all remaining ports. Consequently, hubs are generally operable to perform minimal processing.
- Routers and/or switches also comprise multiple ports, but unlike hubs, switches are more actively functional in performing routing operations. For example, routers and/or switches maintain routing information that enable routers and/or the switches to examine received packets and process them accordingly to determine whether the packets are transmitted via the router and/or switch, and if so, to determine the appropriate ports to perform that transmission.
- Routers and/or switches may store, generate, and/or maintain addressing related information of accessible network nodes.
- Some network routers and/or switches may block traffic. Blocking occurs when a router and/or switch reaches a point where it is unable to perform additional switching even though it has not reached its theoretical maximum throughput, which generally is based on the combined maximum speeds of all of its ports.
- a system and/or method for dynamic routing and/or switching in a network substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims.
- FIG. 1 is a block diagram that illustrates an exemplary device that is operable to dynamically route and/or switch data, in accordance with an embodiment of the invention.
- FIG. 2 is a block diagram illustrating an exemplary plurality of communication devices that are enabled to route data based on one or more of routing parameters, costs associated with a device and/or data mark and/or tag information, in accordance with an embodiment of the invention.
- FIG. 3A is a block diagram illustrating an exemplary packet comprising an OSI L2 mark, in accordance with an embodiment of the invention.
- FIG. 3B is a block diagram illustrating an exemplary packet comprising an OSI Ethertype mark, in accordance with an embodiment of the invention.
- FIG. 3C is a block diagram illustrating an exemplary packet comprising an IP mark, in accordance with an embodiment of the invention.
- FIG. 4 is a block diagram illustrating an exemplary data delivery route comprising endpoint devices and a plurality of network nodes which may be determined based on routing parameters, costs associated with a device and/or marked and/or tagged packet data, in accordance with an embodiment of the invention.
- FIG. 5 is a flow chart illustrating exemplary steps for routing data based on one or more of routing parameters, costs associated with a device and/or data marking and/or tag information, in accordance with an embodiment of the invention.
- one or more processors and/or circuits in one or more of a plurality of communication devices may determine one or more routes over which packets may be communicated.
- the packets may be communicated between a first communication device of the plurality of communication devices and a second communication device of the plurality of communication devices.
- the packets may be communicated based on one or more of corresponding markings within the packets, routing parameters and/or costs that may be associated with utilizing the determined routes.
- At least one determined route may be selected for communicating the packets between the first communication device and the second communication device, and the packets may be communicated via the at least one selected route.
- the routing parameters may comprise information for one or more of service class capabilities, real time compression capabilities, packet preemption capabilities, quality measurement capabilities, tier bypass capabilities and power usage, for example.
- the one or more costs may comprise information for one or more of capacity, efficiency and/or performance of one or more of power usage, bandwidth, memory and processing, for example.
- the one or more corresponding markings may comprise information for one or more of user device capabilities, service class, quality measurements, latency requirements and power usage requirements, for example.
- the corresponding markings may be inserted within the packets by one or more of an endpoint device, a software application, a content provider, a consumer, an enterprise and/or a service provider.
- the markings may comprise a mark, a tag and/or bits embedded in a packet, for example.
- One or more routes over which the packets may be communicated may be determined and/or selected based on one or more of shortest path bridging and audio video bridging. Additionally, one or more routes over which the packets may be communicated may be selected based on the one or more corresponding markings within the packets, the routing parameters and/or the costs. The routing parameters and/or the costs may be received and/or discovered from the plurality of communication devices. The packets and/or the corresponding markings may be parsed and/or inspected. One or more costs may be based on one or more of the routing parameters. In this manner, routing of packet data via one or more network nodes may be based on markings within the data, routing parameters and/or costs associated with the network nodes.
- FIG. 1 is a block diagram that illustrates an exemplary device that is operable to dynamically route and/or switch data, in accordance with an embodiment of the invention.
- a communication device 101 there is shown a communication device 101 , a processor 123 , a memory 121 , a control plane 103 , routing protocols 105 , a routing table 107 , a forwarding table 115 and a routing and/or switching circuitry 117 .
- the communication device 101 comprises suitable logic, circuitry, interfaces and/or code that may be operable to route packets and/or to forward data received from one communication device to another communication device.
- the communication device 101 may be a network node and/or an endpoint device. Routing operations within the communication device 101 may be performed based on one or more networking layers, for example, based on the Open Systems Interconnection (OSI) model.
- OSI Open Systems Interconnection
- the communication devices 101 may be operable to perform OSI L2, L3 and/or L4 operations.
- the communication device 101 may be operable to utilize information embedded within data that may be pending delivery to another communication device. The embedded information may indicate a preferred method to handle and/or route the data, and/or requirements for optimal communication of the data.
- a data packet may comprise a mark and/or a tag that may indicate a service class and/or latency requirements associated with the data.
- the communication device 101 may be operable to utilize a plurality of routing parameters and/or costs associated with one or more communication devices that may be candidates for routing the data through a network, for example.
- the communication device 101 may be implemented on a single chip, using a chipset, on a single device and/or a plurality of devices, for example.
- the control plane 103 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to determine how the communication device 101 will handle packets that are received and forwarded.
- the control plane 103 may be operable to determine that a packet may be discarded or that a packet may receive a specified quality of service.
- the control plane 103 comprises routing protocols 105 that may specify how the communication device 101 communicates with other communication devices and/or how routes are selected, for example.
- the routing protocol 105 may determine how a routing table is constructed.
- Exemplary routing protocols 105 comprise interior gateway routing protocol (IGRP), open shortest path first (OSPF), routing information protocol (RIP) and intermediate system to intermediate system (IS-IS).
- the control plane 103 may also comprise the routing table 107 that may comprise routes to particular network destinations.
- the control plane 103 may be operable to implement shortest path bridging (SPB) and/or audio video bridging (AVB), for example.
- the communication device 101 may be operable to route packet data based on a desired path cost and/or a desired quality of service (QoS).
- QoS quality of service
- the communication device 101 may be operable to route data via a least cost path and/or a shortest path wherein the path utilized for routing the data may be AVB enabled.
- the communication device 101 may be operable to monitor other network nodes which may be AVB enabled and may be operable to establish a route via AVB enabled network nodes.
- U.S. patent application Ser. No. 11/963,017, which was filed on Dec. 21, 2007 and U.S. patent application Ser. No. 11/963,087, which was filed on Dec. 21, 2007 discloses SPB and/or AVB routing protocol, and are each hereby incorporated herein by reference in its entirety.
- the control plane 103 may be operable to utilize one or more routing parameters when determining routes and/or handling packet data. For example, parameters may enable packet preemption, quality measurements and/or reporting of quality measurements, tier bypass and/or power and/or resource efficiency. Various routing parameters are described with respect to FIG. 2 .
- the control plane 103 may be operable to route packets and/or configure circuitry according to information that may be parsed from the packets.
- the packets may comprise one or more marks and/or tags that may indicate how to process and/or how to route the packets.
- the mark and/or tag information may indicate that one or more packets may have higher priority over other packets that may be pending delivery. For example, packets requiring low latency may be handled differently than other packets.
- capabilities of a user device and/or an application that may be a source of the packet and/or a destination of the packet may be specified in a mark and/or tag.
- the mark and/or tag may specify that data pending delivery may comprise voice over IP data and/or multi-party interactive Internet gaming data as an indication of how to handle and/or route the data, for example. Furthermore, a mark and/or tag may indicate that data routed for a particular user may be handled and/or routed according to a specified service class. Various exemplary marks and/or tags are described with respect to FIG. 2 .
- the control plane 103 may also be operable to route data based on one or more costs associated with communication devices that may be candidates for a packet delivery route.
- the costs may comprise factors such as one or more of power usage, bandwidth availability, memory availability, processing capabilities, energy efficiency, shortest path bridging availability and/or audio video bridging availability.
- the control plane 103 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to accept a packet arriving on an ingress link, look up a destination address for the packet and determine an internal path through the routing and/or switching circuitry 117 that will direct the packet outward via a proper egress link.
- the control plane 103 may be operable to encapsulate egress packets and set various packet fields. For example, the control plane 103 may modify a field for quality of service and/or quality measurements or may decrement a time-to-live field in the packet and may discard the packet if the time-to-live equals zero.
- the control plane 103 may update a check sum.
- the routing and/or switching circuitry 117 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to direct packets received from a plurality of ingress links to one or more egress links.
- the routing and/or switching circuitry 117 may comprise, for example, input queuing and output queuing.
- the routing and/or switching circuitry 117 may comprise a subsystem which may comprise suitable logic, circuitry, interfaces, and/or code that may enable exchange of data and/or messaging via a plurality of physical interconnects.
- the memory 121 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to store instructions and/or parameters that enable functionality described with respect to the control plane 103 .
- the memory 121 may be operable to store routing parameters, costs associated with one or more communication devices and/or marked data from packets pending delivery.
- the memory 121 may be operable to store packet data that may be received and/or forwarded by the communication device 101 .
- the memory 121 may store the routing table 107 .
- the routing table 107 may comprise routing information that may be sent to the forwarding table 115 in the control plane 103 .
- the routing information may comprise preferred routes chosen by a routing algorithm according to various routing parameters, costs, data marking information for forwarding packets.
- the memory 121 may be communicatively coupled to the processor 123 and/or the routing and/or switching circuitry 117 .
- the processor 123 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to execute instructions and/or utilize parameters that may enable functionality described with respect to the control plane 103 .
- the processor 123 may be communicatively coupled to the memory 121 and/or the routing and/or switching circuitry 117 .
- the processor 123 may manage the communication of packets based on the routing protocols 105 .
- the processor 123 may receive information from other routers and/or other communication devices and may utilize the received information to construct the routing table 115 .
- the processor 123 may be operable to receive and/or utilize information based on routing parameters and/or costs of one or more other network nodes when making routing decisions. For example, information regarding support by the other one or more network nodes for specified user device and/or application data types, various user service classes, packet preemption, quality measurements and/or reporting of quality measurements, tier bypass and/or power and/or resource efficiency.
- the communication device 101 may be utilized to perform network operations.
- the communication device 101 may be utilized, for example, in a local area network (LAN), to enable transfer of traffic packets between network nodes in the LAN.
- LAN local area network
- the IP headers may be parsed to determine the source and/or destination addressing information for the received traffic packets.
- the packets may be transmitted via the control plane 103 .
- the communication device 101 may be operable, for example, to maintain routing information that may enable mapping of a set of destination addresses corresponding to various network nodes, to a plurality of egress links in the communication device 101 .
- the routing information may be stored, generated, and/or maintained by the processor 123 of the communication device 101 , for example.
- the routing and/or switching circuitry 117 may be utilized to transfer the packet to the appropriate egress links.
- Blocking occurs when a router and/or switch reaches a point where it is unable to perform additional routing and/or switching even though it has not yet reached its theoretical maximum throughput, which generally is based on the aggregate maximum speeds of all of its ports.
- the processor 123 may be operable to determine information indicating how to handle packet data and/or about capabilities of one or more communication devices that may be candidates for handling packets that are being routed through a network.
- the information may comprise various routing parameters, costs and/or marks inserted within packet data.
- the information may enable support of user device capabilities, support of specified service classes, packet preemption, real time compression, quality measurements, tier bypass and/or power efficient communication.
- the information may comprise one or more power consumption, bandwidth, memory and/or processing costs associated with communicating via a specified device.
- the processor 123 may be operable to make routing decisions based on the determined information. For example, a route may be chosen for delivery of packet data based on a plurality of factors rather than based on a minimum number of hops, for example.
- the marks may be referred to as markings and/or tags.
- the marks that may be inserted within packet data may enable a network device, for example, the communication device 101 , to determine a type of traffic that is received by the device.
- the mark may classify and/or describe the packet data.
- the mark data may enable a network device such as the communication device 101 to determine a type of data without having to perform deep packet inspection.
- the marks may be standardized and/or non-standardized, for example, marking techniques may be proprietary.
- the marks may be tags, for example, that may be utilized based on an IEEE 802.3 standard and/or an extension and/or variation thereof.
- a packet data mark may comprise an Ethertype, for example.
- marking may be placed within a packet payload, an IP header, an IP tag and/or an IP payload, for example. In this manner the marking information may be communicated to network devices.
- the communication device 101 may be operable to communicate information regarding its own routing parameters and/or costs to one or more neighboring communication devices.
- the communication device 101 may be operable to receive similar information from one or more of its neighboring communication devices and may make decisions about where, when and/or how to route the various types of traffic based on that information.
- the communication device 101 may be operable to send multi-party Internet interactive gaming packets to a specified destination via one or more routes.
- the communication device 101 may have a packet that is pending delivery.
- the packet may comprise a mark and/or tag which indicates that a destination end device for the packet has multi-party Internet interactive gaming capabilities.
- the communication device 101 may choose a route for communicating the packet that comprises communication devices capable of transmitting the gaming packet with the lowest latency rather than a route that may comprise fewer hops but would result in higher latency.
- the communication device 101 may utilize packet preemption, real time compression and/or tier bypass to communicate the gaming packet with a latency low enough to support the multi-party interactive Internet gaming application.
- the communication device 101 may also utilize shortest path bridging and/or audio video bridging to route the gaming data with the required latency.
- power efficiency may be considered along with latency requirements when determining a route for the gaming packets.
- the processor 123 may be operable to determine routing and/or processing criteria for data that may be pending delivery from the communication device 101 .
- the processor 123 may be operable to consider trade-offs between various routing parameters, costs and/or desired performance for routing the data via one or more communication devices along a communication path.
- a communication path through a network may be determined based on one or more of a plurality of routing criteria, routing parameters and/or costs that may comprise, for example, user device capabilities, service class, packet preemption, real time compression, quality measures, tier bypass, power consumption, shortest path route, audio video bridging, bandwidth, memory and processing.
- the tradeoffs may be determined based on, for example, a type of data being transmitted, a particular class and/or type of service being provided, and/or based on user and/or service provider preference.
- FIG. 2 is a block diagram illustrating an exemplary plurality of communication devices that are enabled to route data based on one or more of routing parameters, costs associated with a device and/or data mark and/or tag information, in accordance with an embodiment of the invention.
- a communication system 200 may comprise two communication devices 201 a and 201 b and/or a plurality of communication links 212 .
- the communication devices 201 a and/or 201 b may comprise memories 221 a and/or 221 b respectively.
- the communication devices 201 a and 201 b may be similar and/or substantially the same as the communication device 101 described with respect to FIG. 1 .
- the communication devices 201 a and 201 b may be operable to communicate via a plurality of communication links 212 .
- the plurality of links 212 may be Ethernet links.
- the plurality of links 212 may comprise, for example, unshielded twisted pair cables, coaxial cables, fiber optic cables, and/or wireless connections.
- the memory devices 221 a and/or 221 b may be similar and/or substantially the same as the memory 121 described with respect to FIG. 1 .
- the memory devices 221 a and/or 221 b may comprise one or more of tables, databases, and other data structures that may comprise the routing parameters, network node capabilities, costs associated with routing via the communication device 201 a and/or 201 b and/or data received via marks and/or tags within packet data that may provide information about how to route the packet data.
- the communication device 201 a may comprise suitable logic, circuitry, interfaces and/or code that may be operable to determine criteria for routing data that may be pending delivery based on one or more marks and/or tags and/or bits that may be embedded within the data.
- the communication device 201 a may receive data that may comprise one or more markings and/or tags that may indicate the criteria for processing and/or routing the data via one or more network nodes to one or more endpoint devices, described with respect to FIG. 3 .
- the communication device 201 a may be operable to determine various parameters, capabilities and/or costs of one or more network nodes, for example, the communication device 201 b , that may be operable and/or available for routing the data to one or more network nodes and/or endpoint devices.
- the communication device 201 a may determine and/or select one or more routes over which the data may be communicated based on the determined criteria for the data and/or the routing parameters, network node capabilities and/or the costs associated with one or more communication devices, for example the communication device 201 b .
- the one or more markings, tags and/or bits that may be embedded within the data may correspond to various routing parameters, capabilities and/or costs of a communication device and/or network node.
- the markings, tags and/or bits may indicate how the data may be processed and/or routed.
- the routing parameters, capabilities and/or costs may be communicated to the communication device 201 a and/or between network nodes via one or more of a plurality of methods.
- the routing parameters capabilities and/or costs associated with the device 201 b and/or other network nodes may be communicated to the communication device 201 a during auto-negotiation with the communication device 201 a .
- the routing parameters, capabilities and/or costs of the communication device 201 b and/or other network nodes may be communicated utilizing link layer discovery protocol (LLDP).
- LLDP link layer discovery protocol
- the communication device 201 a may be operable to query the device 201 b utilizing simple network management protocol (SNMP) for the parameters, capabilities and/or costs stored in the memory 201 b .
- SNMP simple network management protocol
- bridge protocol data units BPDUs
- BPDUs bridge protocol data units
- the invention is not limited to any specific method of identifying parameters, capabilities and/or costs of one or more network nodes and any suitable method may be utilized. For example, proprietary methods and/or standardized methods may be utilized.
- One or more exemplary routing parameters and/or capabilities of the communication devices 201 a , 201 b and/or other network nodes may enable packet preemption.
- Packet preemption may allow packets with a greater need to be delivered sooner than other packets to be delivered prior to the other packets.
- prioritization of packets may be based on, for example, service class and/or latency requirements.
- the communication device 201 a may route data that may have originated from different applications such as voice over Internet protocol (VOIP), multi-party interactive Internet gaming, email and/or web browsing. The different applications may have different latency requirements for communicating the data with a desired level of performance.
- VOIP voice over Internet protocol
- multi-party interactive Internet gaming email and/or web browsing.
- the different applications may have different latency requirements for communicating the data with a desired level of performance.
- Data marking, tags and/or information comprised within a packet and/or packet data may indicate a desired latency for the packet.
- the communication device 201 a may schedule transmission of one or more packets that are pending delivery so that packets requiring lower latency are transmitted prior to packets with less stringent latency requirements.
- the communication device 201 a may re-order the schedule to accommodate newly arrived packets requiring low latency routing.
- the transmission of the first packet may be interrupted and the second packet may be transmitted.
- the communication device 101 may continue to transmit the first packet.
- Another exemplary routing parameter and/or capability of the communication devices 201 a , 201 b and/or other network nodes may enable real time compression between two network nodes.
- a sending and receiving node may be operable to handle real time compression wherein the sending node may be operable to reduce the length of a packet and/or transmit fewer packets to transmit a specified data and the receiving node may be operable to decompress the packet data.
- real time video compression within a transmitting network node such as the communication device 201 a
- the video data may be reduced by a factor of two and/or the compression may be lossless and/or near lossless.
- data communicated via the communication devices 201 a , 201 b and/or other network nodes may comprise information regarding how the communicated data may be compressed with regard to loss.
- a mark, tag and/or bits comprising the compression information may be inserted within a packet.
- the tag and/or bits may be inserted by an endpoint device that may have originated the packet and/or by a service provider handling the packet for example.
- other types of routed data for example, text and/or voice may be compressed and/or decompressed by a pair of nodes handling the routed data.
- Power consumption information for one or more network nodes may be utilized to make routing decisions.
- information regarding power consumption may comprise how much power a communication device consumes when communicating data at a specified bandwidth.
- a specified number of Watts and/or Joules utilized for a specified transmitted bits per second may be specified.
- power consumption information for example, Joules per bit for a communication device may be stored within the device and/may be communicated to other communication devices that may route data to that device.
- the information regarding power consumption may comprise a current level of power usage by a communication device, for example, indicating a level of power consumption at a certain time.
- the current level of power consumption may be communicated to and/or discovered by other communication devices.
- U.S. Provisional Patent Application Ser. No. 61/228,432 which was filed on Jul. 24, 2009
- U.S. patent application Ser. No. 12/634,211 which was filed on Dec. 9, 2009, disclose various aspects for making routing decisions based on power consumption, and are hereby incorporated herein by reference in their entirety. Criteria for power consumption and/or bandwidth for communicating specified data may be determined.
- a power per bandwidth criteria may comprise a specified number of Watts and/or Joules utilized for a specified number of transmitted bits per second.
- information within a packet header for example, within a marking and/or a tag and/or a parameter, may indicate power consumption criteria and/or other criteria for communicating the packet.
- reserved bits in an OSI layer two or higher OSI layer header may be utilized to communicate the power consumption and/or bandwidth criteria, for example.
- the communication device 201 a may be operable to consider trade-offs between bandwidth and power consumption to determine a best route for the data pending delivery.
- a communication path through a network may be determined based on various criteria corresponding to data pending transmission and/or on power consumption characteristics of communication devices along the communication path.
- the tradeoff may be determined based on, for example, a desired latency, desired bandwidth, service class, performance, shortest path bridging and/or power consumption.
- FIG. 3A is a block diagram illustrating an exemplary packet comprising an OSI L2 mark, in accordance with an embodiment of the invention.
- a data packet 300 that may comprise a start of a packet header 302 , a MAC source address header (MAC SAH) 304 , a MAC destination address header (MAC DAH) 306 , a payload 308 , and an end of packet header 310 and a mark 312 .
- MAC SAH MAC source address header
- MAC DAH MAC destination address header
- the start of packet header 302 may comprise data that may indicate to a receiving communication device, for example the communication device 201 b , where the packet 300 begins.
- the MAC SAH 304 may comprise data that may indicate which communication device is transmitting the packet 300 and the MAC DAH 306 may indicate which device is receiving the packet 300 .
- the payload 308 may comprise packet data and/or headers for OSI higher layer processing.
- the payload 308 may comprise data transmitted from an endpoint device that may be stored in the endpoint device and/or generated by an application in the endpoint device.
- the payload 308 may comprise video conferencing data, multi-party Internet gaming data, VOIP data and/or web browsing data, for example.
- the payload 308 may require a specified level of latency in order to realize an acceptable quality of communication. Moreover, the payload 308 may require a specified class of service based on a service or subscriber agreement purchased by a user associated with the payload 308 .
- the end of packet 310 may indicate to a receiving device 201 b where the packet 300 ends.
- the mark 312 may comprise bits embedded within the packet 300 and/or may be part of an OSI layer 2 and/or higher OSI layer header.
- an endpoint device, application software on the endpoint device and/or a network node may be operable to originate communication of the payload 308 and/or may generate a mark in an OSI layer 2 or higher OSI layer header.
- a service provider that may manage and/or operate the communication devices 201 a and/or 201 b , for example, may insert a mark into a packet.
- the packet 300 may comprise one or more marks and/or embedded bits that may indicate criteria for processing and/or routing the packet 300 via one or more network nodes, for example, via the communication devices 201 a and/or 201 b .
- the one or more marks, tags and/or embedded bits within the packet 300 may correspond to various routing parameters, network node capabilities and/or costs associated with a specified communication device and/or network node.
- the mark, tag and/or embedded bits may indicate how the packet 300 may be processed, prioritized and/or routed.
- FIG. 3B is a block diagram illustrating an exemplary packet comprising an OSI Ethertype mark, in accordance with an embodiment of the invention.
- a data packet 320 that may comprise the start of a packet header 302 , the MAC source address header (MAC SAH) 304 , the MAC destination address header (MAC DAH) 306 , and the end of packet header 310 .
- MAC SAH MAC source address header
- MAC DAH MAC destination address header
- Ethertype 322 there is shown an Ethertype 322 , a payload 324 , a subtype mark 326 and a payload 328 .
- the Ethertype 322 field may comprise information that may be utilized to identify the protocol being transported in the packet, for example, IPv4 or IPv6.
- the protocol indicated by the Ethertype may utilize marks within the data packet 320 that may specify a type of traffic that the packet 300 belongs to.
- the type of traffic may indicate how the packet 300 may be processed, prioritized and/or routed.
- a network device may look for the marks within the payload 234 when the Ethertype 322 field indicates a protocol that utilizes the marks.
- the network device may be operable to parse the payload 328 to find the subtype mark 326 that may comprise the traffic type information.
- FIG. 3C is a block diagram illustrating an exemplary packet comprising an IP mark, in accordance with an embodiment of the invention.
- a data packet 330 that may comprise the start of a packet header 302 , the MAC source address header (MAC SAH) 304 , the MAC destination address header (MAC DAH) 306 and the end of packet header 310 .
- MAC SAH MAC source address header
- MAC DAH MAC destination address header
- Ethertype 332 an IP header 334 , a payload 336 , an IP mark 338 and a payload 340 .
- the Ethertype 332 field may comprise information that may be utilized to identify the protocol being transported in the packet, for example, IPv4 or IPv6.
- the IP header 334 may comprise information about the packet such as an ID and/or version for the packet, source and destination information and/or protocol information.
- the IP header 334 may comprise a mark to indicate the type of traffic or content comprised within the packet that may determine how the packet 300 may be processed, prioritized and/or routed.
- the mark may be embedded in the IP payload 336 .
- a network device that may receive the packet 330 may parse the IP payload 336 to find the IP Mark 338 that may comprise the traffic type information.
- one or more packets may be generated by an endpoint device (described with respect to FIG. 4 ).
- the endpoint device may have a certain capability and/or may host an application that may generate one or more of the packets 300 , 320 and 330 .
- the packets 300 , 320 and/or 330 may comprise multi-party interactive Internet gaming data that may require a very low latency in order for the interactive game to adequately communicate high speed input by a plurality of users.
- the endpoint device may generate one or more of the marks 312 , 326 and/or 338 that may indicate the endpoint device multi-party interactive Internet gaming capability.
- a network node for example, the communication device 201 a may receive one or more of the packets 300 , 320 and 330 and may parse the packet and/or may perform packet inspection in order to determine the endpoint device capabilities. For example, the communication device 201 a may inspect the mark 312 , 326 and/or 338 and may determine that the packet 300 , 320 and/or 330 comprises multi-party interactive Internet gaming capability and/or requires very low latency communication. Accordingly, the communication device 201 a may determine a path for routing the packet 300 , 320 and/or 330 based on one or more routing parameters stored within the device.
- the communication device 201 a may route packets based on shortest path bridging and/or may utilize AVB. Furthermore, the communication device 201 a may perform real time compression on the one or more packets 300 , 320 and 330 data that may reduce the packet size by a factor of two, for example. The communication device 201 a may also preempt one or more other packets that may be pending delivery by the device 201 so that the multi-party interactive Internet gaming data from the packets 300 , 320 and/or 330 may be communicated to the communication device 201 b , for example, with very low latency.
- FIG. 4 is a block diagram illustrating an exemplary data delivery route comprising endpoint devices and a plurality of network nodes which may be determined based on routing parameters, costs associated with a device and/or marked and/or tagged packet data, in accordance with an embodiment of the invention.
- a network 400 comprising two endpoint devices 405 a and 405 b and seven network nodes 401 a , 401 b , . . . , 401 g .
- the network 400 comprises network paths 411 and 413 .
- the two endpoint devices 405 a and/or 405 b may comprise suitable logic, circuitry, interfaces and/or code that may be operable to communicate via the network 400 wherein packet markings and/or tags, routing parameters and/or costs may be utilized to meet various routing and/or communication criteria. Moreover, the endpoint devices 405 a and/or 405 b may be operable to communicate via the network 400 utilizing AVB.
- the endpoint device 405 a may be a server operated by a service provider and the endpoint device 405 b may be a user device, for example, a laptop, however, the invention is not so limited.
- the endpoint devices 405 a and/or 405 b may be any suitable communication device, for example, the endpoint devices 405 a and/or 405 b may comprise a mobile phone, a smart phone, a media player, a gaming device, a location device, a video server, a service provider head-end and/or a set-top-box. In various embodiments of the invention, the endpoint devices 405 a and 405 b may be the same and/or similar devices, for example, two laptops.
- the network nodes 401 a , 401 b , . . . , 401 g may comprise suitable logic, circuitry, interfaces and/or code that may be operable to transmit and/or receive data via the network 400 .
- the network nodes 401 a , 401 b , . . . , 401 g may comprise a bridge, a switch and/or a router.
- the network nodes 401 a , 401 b , . . . , 401 g may be similar and/or substantially the same as the communication devices 101 , 201 a and/or 201 b , for example.
- one or more of the network nodes 401 a , 401 b , . . . , 401 g may comprise one or more routing parameters and/or stored network node capabilities that may be utilized for routing data via the network 400 as described with respect to, for example FIG. 1 , FIG. 2 and/or FIG. 3 .
- one or more costs may be associated with one or more of the network nodes 401 a , 401 b , . . . , 401 g as described with respect to, for example FIG. 1 , FIG. 2 and/or FIG. 3 .
- the endpoint devices 405 a and/or 405 b may be operable to communicate at any suitable standard and/or non-standard speed, may operate based on any suitable standard and/or non-standard technology and/or may communicate over any suitable medium, for example, copper, optical, wireless and/or backplane technologies, and/or may utilize and suitable connection type, for example, PON.
- the network 400 may be a heterogeneous wired and/or wireless network.
- the network 400 may be comprise any suitable deployment type, for example, the network 400 may comprise a service provider network, a content provider network, a consumer network, an access network, a distribution network, an enterprise network, a data center and/or a wireless backhaul network.
- the network path 411 may comprise a least cost path and/or a lowest latency path between the end devices 405 a and 405 b .
- the network path 413 may comprise the shortest path between the endpoint devices 405 a and 405 b .
- there may be a plurality of paths through a network where some nodes within the network may be bypassed, for example, based on routing parameters, costs associated with a device and/or marked and/or tagged packet data, for example.
- a user of the endpoint device 405 b may have a service agreement with a service provider for communicating data based on a specified service class.
- the service class may specify a minimum bandwidth and/or latency that a user of the endpoint device 405 b may be entitled to for a specified type of data.
- the endpoint device 405 a may be a video server that may stream video to the endpoint device 405 b via the network 400 .
- the endpoint device 405 b may be a set top box, for example.
- the endpoint device 405 a may insert one or more markings and/or tags within one or more packets of the video stream to indicate the user's specified service class to network nodes that may handle the video stream.
- the network nodes 401 a , 401 b , . . . , 401 f may comprise various routing parameters, network node capabilities and/or associated costs that may enable the network nodes 401 a , 401 b , . . . , 401 f to handle and/or route a video stream from the endpoint device 405 a to the endpoint device 405 b in accordance with the user's specified service class.
- the network node 401 g may have limited routing parameters and/or limited network node capabilities.
- the network node 401 g may have one or more associated costs with regard to bandwidth, memory and/or processing, for example, which may indicate that the network node 401 g may not be able to handle the video stream data at the user's specified service class.
- the video stream communicated from the endpoint device 405 a to the endpoint device 405 b may optimally be routed via the network nodes 401 a , 401 b , 401 c , 401 e and/or 401 f . In this manner, the video stream may be communicated in accordance with the user's specified service class even though another route via the network nodes 401 a , 401 g and/or 401 f may comprise a fewer number of hops.
- various routing parameters and/or capabilities of the network nodes 401 a , 401 b , . . . , 401 f may enable quality measurements to be taken within the network nodes.
- the quality measurements may be utilized to improve routing of data between the endpoint devices 405 a and/or 405 b .
- the quality measurements may be taken for specified data and/or a specified packet handled by the network nodes 401 a , 401 b , . . . , 401 f .
- the quality measurements may be utilized to report performance problems to an endpoint device, a user and/or service provider.
- 401 f may be operable to receive data from the endpoint device 405 a , may measure various performance metrics, and may send the measurements back to the endpoint device 405 a . For example, packet retries, latency, data rate, packet error rate and/or duration of errors may be measured and/or reported back to the endpoint device 401 a.
- quality measurements may be taken at an endpoint device that may be receiving and/or rendering the data and the quality measurements may be reported back to an originating endpoint device and/or a service provider for example.
- the receiving device for example, the endpoint device 405 b may send data comprising various performance measurements such as dB ratios, signal to noise ratios and/or packet errors to the endpoint device 405 a and/or a service provider.
- the endpoint devices 405 a and/or 405 b and/or the service provider may indicate that quality problems may be occurring in the network 400 and/or may provide information to the network nodes 401 a , 401 b , . . . , 401 f .
- the provided information may enable improvement in network performance.
- the information may be communicated to the network nodes 401 a , 401 b , . . . , 401 f by inserting marks, tags and/or information within data that may be routed via the network 400 .
- a user of the endpoint device 405 b may subscribe to and/or purchase a service agreement from a service provider for a specified class of service and/or for a specified bandwidth, for example.
- the user device may measure the quality of service it receives and may report it to the service provider.
- the service provider may mark, tag and/or otherwise indicate within packets being sent to the endpoint device 405 b how to handle and/or route the data according to the service agreement. Routing parameters within network nodes 401 a , 401 b , . . . , 401 f may enable the network nodes to handle the data according to the specified quality of service.
- the network nodes 401 a , 401 b , . . . , 401 f may comprise a heterogeneous mix of network devices.
- a network may be undergoing a phased upgrade where at an instant in time, a portion of network devices are upgraded or new and a portion of legacy devices have not yet been upgraded.
- the upgraded network devices may be operable to detect data markings or tags and operate according to information provided by the markings and/or tags while the legacy network devices are not operable to utilize the marking and/or tag information.
- the markings and or tags may be inserted into packets in such a way that operation of the legacy network devices is not disrupted by the inserted information.
- devices within the network 400 may be operable to insert markings and/or tags within a packet. This might occur, for example, when an endpoint device does not have marking capability or for example, when a service provider is operable to marks packets.
- FIG. 5 is a flow chart illustrating exemplary steps for routing data based on one or more of routing parameters, costs associated with a device and/or data marking and/or tag information, in accordance with an embodiment of the invention.
- Step 501 is a start step.
- step 503 based on a mark within a packet that may be pending delivery, determine a traffic type for the packet. For example, for the packet 300 that may be communicated from the device 201 a , determine a traffic type based on the mark 312 information within the packet 300 .
- one or more routes may be determined for communication of the packet 300 via one or more communication devices based on one or more of the determined criteria, routing parameters and/or costs associated with the one or more communication devices.
- step 507 one or more of the determined routes for communicating the packet 300 may be selected based on the determined criteria.
- step 509 the packet 300 may be communicated via the selected one or more determined routes, for example, to the communication device 201 b .
- Step 511 is the end of exemplary steps.
- one or more processors and/or circuits in one or more of a plurality communication devices may determine one or more routes over which packets, for example, the packet 300 , may be communicated.
- the packets may be communicated between a first communication device, for example 201 a of the plurality of communication devices and a second communication device, for example, 201 b of the plurality of communication devices.
- the packets may be communicated based on one or more of corresponding marks and/or tags, for example, the mark and/or tag 312 within the packets, routing parameters and/or costs that may be associated with utilizing the determined routes.
- At least one determined route may be selected for communicating the packets between the first communication device and the second communication device and the packets may be communicated via the at least one selected route.
- the parameters may comprise information for one or more of service class capabilities, real time compression capabilities, packet preemption capabilities, quality measurement capabilities, tier bypass capabilities and power usage, for example.
- the one or more costs may comprise information for one or more of capacity, efficiency and/or performance of one or more of power usage, bandwidth, memory and processing, for example.
- the one or more corresponding marks and/or tags may comprise information for one or more of user device capabilities, service class, quality measurements, latency requirements and power usage requirements, for example.
- the corresponding marks and/or tags, for example, the tag 312 may be inserted within the packets, for example, the packet 300 , by one or more of an endpoint device, for example the endpoint device 405 a , a software application and/or a service provider.
- One or more routes for example, the route 411 over which the packets may be communicated may be determined and/or selected based on one or more of shortest path bridging and audio video bridging. Additionally, one or more routes, for example the route 411 , over which the packets may be communicated may be selected based on the one or more corresponding marks and/or tags within the packets, the routing parameters and/or the costs. The routing parameters and/or the costs may be received and/or discovered from the plurality of communication devices, for example, the communication devices 201 b . The packets, for example, the packet 300 and/or the corresponding marks and/or tags, for example, the mark and/or tag 312 , may be parsed and/or inspected. One or more costs may be based on one or more of the routing parameters. In this manner, routing of packet data via one or more network nodes may be based on marks and/or tags within the data, routing parameters and/or costs associated with the one or more network nodes.
- Another embodiment of the invention may provide a machine and/or computer readable storage and/or medium, having stored thereon, a machine code and/or a computer program having at least one code section executable by a machine and/or a computer, thereby causing the machine and/or computer to perform the steps as described herein for dynamic routing and/or switching in a network.
- the present invention may be realized in hardware, software, or a combination of hardware and software.
- the present invention may be realized in a centralized fashion in at least one computer system or in a distributed fashion where different elements may be spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited.
- a typical combination of hardware and software may be a general-purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.
- the present invention may also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when loaded in a computer system is able to carry out these methods.
- Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
- This application is a continuation of U.S. patent application Ser. No. 12/571,165, filed Sep. 30, 2009, pending, and claims priority to provisional application Ser. No. 61/228,404, filed Jul. 24, 2009, which are entirely incorporated by reference.
- This application is related to the following:
- U.S. patent application Ser. No. 11/963,017, which was filed on Dec. 21, 2007;
- U.S. patent application Ser. No. 11/963,087, which was filed on Dec. 21, 2007;
- U.S. Provisional Patent Application Ser. No. 61/228,309, which was filed on Jul. 24, 2009, and U.S. patent application Ser. No. 12/581,741, which was filed on Oct. 19, 2009;
- U.S. Provisional Patent Application Ser. No. 61/228,368, which was filed on Jul. 24, 2009, and U.S. patent application Ser. No. 12/604,968 which was filed on Oct. 23, 2009; and
- U.S. Provisional Patent Application Ser. No. 61/228,339, which was filed on Jul. 24, 2009, and U.S. patent application Ser. No. 12/571,147, which was filed on Sep. 30, 2009.
- Each of the above stated applications is hereby incorporated herein by reference in its entirety.
- Certain embodiments of the invention relate to communication systems. More specifically, certain embodiments of the invention relate to dynamic routing and/or switching in a network.
- The growth of networking and systems' connectivity are some of the major developments in recent decades. Fewer and fewer systems and devices are operated as stand-alone entities, and most of today's systems are increasingly becoming elements in complex networks. This growth in networking allows improved performance and increased flexibility. For example, communication devices such as personal computers (PCs) including laptops, printers, routers, switches, voice communication devices, video and/or audio devices, gaming devices and other devices, are connected together as nodes in communication networks. Networks are designated in a variety of ways, and based on a variety of factors. Network designation may be spatial, based on the scope of connectivity among the network nodes. For example, a network may be designated as a personal area network (PAN), a local area network (LAN), and wide area network (WAN). Network designation may also be based on the backbone connecting technology. For example, a network may be designated as an Ethernet network, a wireless network, and/or a fiber optical network. Some networks are circuit switched and are built around dedicated node-to-node connectivity, wherein a dedicated circuit is created and reserved, when needed, between the communicating nodes. Other nodes are then barred from utilizing the same connection and/or other entities in the network to the extent necessary to maintain the circuit. Most networks in use nowadays, however, are based on packet switched networks. In packet switched networks, the sending node simply transmits traffic that is destined for one or more receiving nodes. The traffic comprises packets that contain, in addition to data, other information that enables directing the packets to the receiving nodes. For example, most of today's networks are Internet based network and utilizes various protocols comprising TCP/IP, for example, to facilitate packet switching. In this regard, data is encapsulated into packets that comprise a header portion and a payload portion to enable transporting, addressing and/or routing among various entities within or coupled to the network.
- Network switching devices, comprising such devices as switches, routers and/or hubs, are utilized in networks to facilitate forwarding of traffic between sending and receiving nodes. Hubs contain multiple ports, wherein packets arriving at one port are transmitted via all remaining ports. Consequently, hubs are generally operable to perform minimal processing. Routers and/or switches also comprise multiple ports, but unlike hubs, switches are more actively functional in performing routing operations. For example, routers and/or switches maintain routing information that enable routers and/or the switches to examine received packets and process them accordingly to determine whether the packets are transmitted via the router and/or switch, and if so, to determine the appropriate ports to perform that transmission. Routers and/or switches may store, generate, and/or maintain addressing related information of accessible network nodes.
- Some network routers and/or switches, however, may block traffic. Blocking occurs when a router and/or switch reaches a point where it is unable to perform additional switching even though it has not reached its theoretical maximum throughput, which generally is based on the combined maximum speeds of all of its ports.
- Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with the present invention as set forth in the remainder of the present application with reference to the drawings.
- A system and/or method for dynamic routing and/or switching in a network, substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims.
- Various advantages, aspects and novel features of the present invention, as well as details of an illustrated embodiment thereof, will be more fully understood from the following description and drawings.
-
FIG. 1 is a block diagram that illustrates an exemplary device that is operable to dynamically route and/or switch data, in accordance with an embodiment of the invention. -
FIG. 2 is a block diagram illustrating an exemplary plurality of communication devices that are enabled to route data based on one or more of routing parameters, costs associated with a device and/or data mark and/or tag information, in accordance with an embodiment of the invention. -
FIG. 3A is a block diagram illustrating an exemplary packet comprising an OSI L2 mark, in accordance with an embodiment of the invention. -
FIG. 3B is a block diagram illustrating an exemplary packet comprising an OSI Ethertype mark, in accordance with an embodiment of the invention. -
FIG. 3C is a block diagram illustrating an exemplary packet comprising an IP mark, in accordance with an embodiment of the invention. -
FIG. 4 is a block diagram illustrating an exemplary data delivery route comprising endpoint devices and a plurality of network nodes which may be determined based on routing parameters, costs associated with a device and/or marked and/or tagged packet data, in accordance with an embodiment of the invention. -
FIG. 5 is a flow chart illustrating exemplary steps for routing data based on one or more of routing parameters, costs associated with a device and/or data marking and/or tag information, in accordance with an embodiment of the invention. - Certain embodiments of the invention can be found in a method and system for dynamic routing and/or switching in a network. In various embodiments of the invention, one or more processors and/or circuits in one or more of a plurality of communication devices may determine one or more routes over which packets may be communicated. The packets may be communicated between a first communication device of the plurality of communication devices and a second communication device of the plurality of communication devices. Furthermore, the packets may be communicated based on one or more of corresponding markings within the packets, routing parameters and/or costs that may be associated with utilizing the determined routes. At least one determined route may be selected for communicating the packets between the first communication device and the second communication device, and the packets may be communicated via the at least one selected route.
- The routing parameters may comprise information for one or more of service class capabilities, real time compression capabilities, packet preemption capabilities, quality measurement capabilities, tier bypass capabilities and power usage, for example. The one or more costs may comprise information for one or more of capacity, efficiency and/or performance of one or more of power usage, bandwidth, memory and processing, for example. Moreover, the one or more corresponding markings may comprise information for one or more of user device capabilities, service class, quality measurements, latency requirements and power usage requirements, for example. The corresponding markings may be inserted within the packets by one or more of an endpoint device, a software application, a content provider, a consumer, an enterprise and/or a service provider. The markings may comprise a mark, a tag and/or bits embedded in a packet, for example.
- One or more routes over which the packets may be communicated may be determined and/or selected based on one or more of shortest path bridging and audio video bridging. Additionally, one or more routes over which the packets may be communicated may be selected based on the one or more corresponding markings within the packets, the routing parameters and/or the costs. The routing parameters and/or the costs may be received and/or discovered from the plurality of communication devices. The packets and/or the corresponding markings may be parsed and/or inspected. One or more costs may be based on one or more of the routing parameters. In this manner, routing of packet data via one or more network nodes may be based on markings within the data, routing parameters and/or costs associated with the network nodes.
-
FIG. 1 is a block diagram that illustrates an exemplary device that is operable to dynamically route and/or switch data, in accordance with an embodiment of the invention. Referring toFIG. 1 , there is shown acommunication device 101, aprocessor 123, amemory 121, acontrol plane 103,routing protocols 105, a routing table 107, a forwarding table 115 and a routing and/or switchingcircuitry 117. - The
communication device 101 comprises suitable logic, circuitry, interfaces and/or code that may be operable to route packets and/or to forward data received from one communication device to another communication device. In this regard, thecommunication device 101 may be a network node and/or an endpoint device. Routing operations within thecommunication device 101 may be performed based on one or more networking layers, for example, based on the Open Systems Interconnection (OSI) model. In various embodiments of the invention, thecommunication devices 101 may be operable to perform OSI L2, L3 and/or L4 operations. Furthermore, thecommunication device 101 may be operable to utilize information embedded within data that may be pending delivery to another communication device. The embedded information may indicate a preferred method to handle and/or route the data, and/or requirements for optimal communication of the data. For example, a data packet may comprise a mark and/or a tag that may indicate a service class and/or latency requirements associated with the data. Moreover, when making routing decisions, thecommunication device 101 may be operable to utilize a plurality of routing parameters and/or costs associated with one or more communication devices that may be candidates for routing the data through a network, for example. Thecommunication device 101 may be implemented on a single chip, using a chipset, on a single device and/or a plurality of devices, for example. - The
control plane 103 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to determine how thecommunication device 101 will handle packets that are received and forwarded. Thecontrol plane 103 may be operable to determine that a packet may be discarded or that a packet may receive a specified quality of service. Thecontrol plane 103 comprisesrouting protocols 105 that may specify how thecommunication device 101 communicates with other communication devices and/or how routes are selected, for example. In addition, therouting protocol 105 may determine how a routing table is constructed.Exemplary routing protocols 105 comprise interior gateway routing protocol (IGRP), open shortest path first (OSPF), routing information protocol (RIP) and intermediate system to intermediate system (IS-IS). Thecontrol plane 103 may also comprise the routing table 107 that may comprise routes to particular network destinations. - The
control plane 103 may be operable to implement shortest path bridging (SPB) and/or audio video bridging (AVB), for example. In this regard, thecommunication device 101 may be operable to route packet data based on a desired path cost and/or a desired quality of service (QoS). For example, thecommunication device 101 may be operable to route data via a least cost path and/or a shortest path wherein the path utilized for routing the data may be AVB enabled. Furthermore, thecommunication device 101 may be operable to monitor other network nodes which may be AVB enabled and may be operable to establish a route via AVB enabled network nodes. U.S. patent application Ser. No. 11/963,017, which was filed on Dec. 21, 2007 and U.S. patent application Ser. No. 11/963,087, which was filed on Dec. 21, 2007 discloses SPB and/or AVB routing protocol, and are each hereby incorporated herein by reference in its entirety. - The
control plane 103 may be operable to utilize one or more routing parameters when determining routes and/or handling packet data. For example, parameters may enable packet preemption, quality measurements and/or reporting of quality measurements, tier bypass and/or power and/or resource efficiency. Various routing parameters are described with respect toFIG. 2 . - The
control plane 103 may be operable to route packets and/or configure circuitry according to information that may be parsed from the packets. For example, the packets may comprise one or more marks and/or tags that may indicate how to process and/or how to route the packets. The mark and/or tag information may indicate that one or more packets may have higher priority over other packets that may be pending delivery. For example, packets requiring low latency may be handled differently than other packets. In this regard, capabilities of a user device and/or an application that may be a source of the packet and/or a destination of the packet may be specified in a mark and/or tag. The mark and/or tag may specify that data pending delivery may comprise voice over IP data and/or multi-party interactive Internet gaming data as an indication of how to handle and/or route the data, for example. Furthermore, a mark and/or tag may indicate that data routed for a particular user may be handled and/or routed according to a specified service class. Various exemplary marks and/or tags are described with respect toFIG. 2 . - The
control plane 103 may also be operable to route data based on one or more costs associated with communication devices that may be candidates for a packet delivery route. The costs may comprise factors such as one or more of power usage, bandwidth availability, memory availability, processing capabilities, energy efficiency, shortest path bridging availability and/or audio video bridging availability. - The
control plane 103 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to accept a packet arriving on an ingress link, look up a destination address for the packet and determine an internal path through the routing and/or switchingcircuitry 117 that will direct the packet outward via a proper egress link. Thecontrol plane 103 may be operable to encapsulate egress packets and set various packet fields. For example, thecontrol plane 103 may modify a field for quality of service and/or quality measurements or may decrement a time-to-live field in the packet and may discard the packet if the time-to-live equals zero. Thecontrol plane 103 may update a check sum. - The routing and/or switching
circuitry 117 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to direct packets received from a plurality of ingress links to one or more egress links. The routing and/or switchingcircuitry 117 may comprise, for example, input queuing and output queuing. In addition, the routing and/or switchingcircuitry 117 may comprise a subsystem which may comprise suitable logic, circuitry, interfaces, and/or code that may enable exchange of data and/or messaging via a plurality of physical interconnects. - The
memory 121 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to store instructions and/or parameters that enable functionality described with respect to thecontrol plane 103. For example, thememory 121 may be operable to store routing parameters, costs associated with one or more communication devices and/or marked data from packets pending delivery. Thememory 121 may be operable to store packet data that may be received and/or forwarded by thecommunication device 101. Moreover, thememory 121 may store the routing table 107. The routing table 107 may comprise routing information that may be sent to the forwarding table 115 in thecontrol plane 103. The routing information may comprise preferred routes chosen by a routing algorithm according to various routing parameters, costs, data marking information for forwarding packets. Thememory 121 may be communicatively coupled to theprocessor 123 and/or the routing and/or switchingcircuitry 117. - The
processor 123 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to execute instructions and/or utilize parameters that may enable functionality described with respect to thecontrol plane 103. Theprocessor 123 may be communicatively coupled to thememory 121 and/or the routing and/or switchingcircuitry 117. Theprocessor 123 may manage the communication of packets based on therouting protocols 105. In addition, theprocessor 123 may receive information from other routers and/or other communication devices and may utilize the received information to construct the routing table 115. Theprocessor 123 may be operable to receive and/or utilize information based on routing parameters and/or costs of one or more other network nodes when making routing decisions. For example, information regarding support by the other one or more network nodes for specified user device and/or application data types, various user service classes, packet preemption, quality measurements and/or reporting of quality measurements, tier bypass and/or power and/or resource efficiency. - In operation, the
communication device 101 may be utilized to perform network operations. Thecommunication device 101 may be utilized, for example, in a local area network (LAN), to enable transfer of traffic packets between network nodes in the LAN. For example, where received traffic packets are TCP/IP traffic packets, the IP headers may be parsed to determine the source and/or destination addressing information for the received traffic packets. Once the destination nodes are determined, based on routing tables maintained in thememory 121 for example, the packets may be transmitted via thecontrol plane 103. - The
communication device 101 may be operable, for example, to maintain routing information that may enable mapping of a set of destination addresses corresponding to various network nodes, to a plurality of egress links in thecommunication device 101. The routing information may be stored, generated, and/or maintained by theprocessor 123 of thecommunication device 101, for example. Once the appropriate egress links are determined for a received packet, the routing and/or switchingcircuitry 117 may be utilized to transfer the packet to the appropriate egress links. - In some communication devices, for example, hardware, software and/or logic limitations in the
communication device 101 may result in ‘blocking.’ Blocking occurs when a router and/or switch reaches a point where it is unable to perform additional routing and/or switching even though it has not yet reached its theoretical maximum throughput, which generally is based on the aggregate maximum speeds of all of its ports. - In various embodiments of the invention, the
processor 123 may be operable to determine information indicating how to handle packet data and/or about capabilities of one or more communication devices that may be candidates for handling packets that are being routed through a network. The information may comprise various routing parameters, costs and/or marks inserted within packet data. In this regard, the information may enable support of user device capabilities, support of specified service classes, packet preemption, real time compression, quality measurements, tier bypass and/or power efficient communication. Furthermore, the information may comprise one or more power consumption, bandwidth, memory and/or processing costs associated with communicating via a specified device. In this regard, theprocessor 123 may be operable to make routing decisions based on the determined information. For example, a route may be chosen for delivery of packet data based on a plurality of factors rather than based on a minimum number of hops, for example. The marks may be referred to as markings and/or tags. - The marks that may be inserted within packet data may enable a network device, for example, the
communication device 101, to determine a type of traffic that is received by the device. The mark may classify and/or describe the packet data. The mark data may enable a network device such as thecommunication device 101 to determine a type of data without having to perform deep packet inspection. The marks may be standardized and/or non-standardized, for example, marking techniques may be proprietary. In various embodiments of the invention, the marks may be tags, for example, that may be utilized based on an IEEE 802.3 standard and/or an extension and/or variation thereof. A packet data mark may comprise an Ethertype, for example. Moreover, marking may be placed within a packet payload, an IP header, an IP tag and/or an IP payload, for example. In this manner the marking information may be communicated to network devices. - In an exemplary aspect of the invention, the
communication device 101 may be operable to communicate information regarding its own routing parameters and/or costs to one or more neighboring communication devices. In addition, thecommunication device 101 may be operable to receive similar information from one or more of its neighboring communication devices and may make decisions about where, when and/or how to route the various types of traffic based on that information. - In an exemplary embodiment of the invention, the
communication device 101 may be operable to send multi-party Internet interactive gaming packets to a specified destination via one or more routes. For example, thecommunication device 101 may have a packet that is pending delivery. The packet may comprise a mark and/or tag which indicates that a destination end device for the packet has multi-party Internet interactive gaming capabilities. Thecommunication device 101 may choose a route for communicating the packet that comprises communication devices capable of transmitting the gaming packet with the lowest latency rather than a route that may comprise fewer hops but would result in higher latency. In this regard, thecommunication device 101 may utilize packet preemption, real time compression and/or tier bypass to communicate the gaming packet with a latency low enough to support the multi-party interactive Internet gaming application. Moreover, thecommunication device 101 may also utilize shortest path bridging and/or audio video bridging to route the gaming data with the required latency. In addition to latency considerations, power efficiency may be considered along with latency requirements when determining a route for the gaming packets. - The
processor 123 may be operable to determine routing and/or processing criteria for data that may be pending delivery from thecommunication device 101. In this regard, theprocessor 123 may be operable to consider trade-offs between various routing parameters, costs and/or desired performance for routing the data via one or more communication devices along a communication path. In this manner, a communication path through a network may be determined based on one or more of a plurality of routing criteria, routing parameters and/or costs that may comprise, for example, user device capabilities, service class, packet preemption, real time compression, quality measures, tier bypass, power consumption, shortest path route, audio video bridging, bandwidth, memory and processing. The tradeoffs may be determined based on, for example, a type of data being transmitted, a particular class and/or type of service being provided, and/or based on user and/or service provider preference. -
FIG. 2 is a block diagram illustrating an exemplary plurality of communication devices that are enabled to route data based on one or more of routing parameters, costs associated with a device and/or data mark and/or tag information, in accordance with an embodiment of the invention. Referring toFIG. 2 , there is shown acommunication system 200. The communication system may comprise twocommunication devices communication devices 201 a and/or 201 b may comprisememories 221 a and/or 221 b respectively. - The
communication devices communication device 101 described with respect toFIG. 1 . Thecommunication devices links 212 may be Ethernet links. In this regard, the plurality oflinks 212 may comprise, for example, unshielded twisted pair cables, coaxial cables, fiber optic cables, and/or wireless connections. Thememory devices 221 a and/or 221 b may be similar and/or substantially the same as thememory 121 described with respect toFIG. 1 . Thememory devices 221 a and/or 221 b may comprise one or more of tables, databases, and other data structures that may comprise the routing parameters, network node capabilities, costs associated with routing via thecommunication device 201 a and/or 201 b and/or data received via marks and/or tags within packet data that may provide information about how to route the packet data. - In operation, the
communication device 201 a may comprise suitable logic, circuitry, interfaces and/or code that may be operable to determine criteria for routing data that may be pending delivery based on one or more marks and/or tags and/or bits that may be embedded within the data. For example, thecommunication device 201 a may receive data that may comprise one or more markings and/or tags that may indicate the criteria for processing and/or routing the data via one or more network nodes to one or more endpoint devices, described with respect toFIG. 3 . - In addition, the
communication device 201 a may be operable to determine various parameters, capabilities and/or costs of one or more network nodes, for example, thecommunication device 201 b, that may be operable and/or available for routing the data to one or more network nodes and/or endpoint devices. Thecommunication device 201 a may determine and/or select one or more routes over which the data may be communicated based on the determined criteria for the data and/or the routing parameters, network node capabilities and/or the costs associated with one or more communication devices, for example thecommunication device 201 b. In various embodiments of the invention, the one or more markings, tags and/or bits that may be embedded within the data may correspond to various routing parameters, capabilities and/or costs of a communication device and/or network node. In this regard, the markings, tags and/or bits may indicate how the data may be processed and/or routed. - The routing parameters, capabilities and/or costs may be communicated to the
communication device 201 a and/or between network nodes via one or more of a plurality of methods. For example, the routing parameters capabilities and/or costs associated with thedevice 201 b and/or other network nodes may be communicated to thecommunication device 201 a during auto-negotiation with thecommunication device 201 a. In another exemplary embodiment of the invention, the routing parameters, capabilities and/or costs of thecommunication device 201 b and/or other network nodes may be communicated utilizing link layer discovery protocol (LLDP). In this regard, thecommunication device 201 a may be operable to query thedevice 201 b utilizing simple network management protocol (SNMP) for the parameters, capabilities and/or costs stored in thememory 201 b. Moreover, bridge protocol data units (BPDUs) may be modified to indicate routing parameters, capabilities and/or cost information for a network node. Notwithstanding, the invention is not limited to any specific method of identifying parameters, capabilities and/or costs of one or more network nodes and any suitable method may be utilized. For example, proprietary methods and/or standardized methods may be utilized. - One or more exemplary routing parameters and/or capabilities of the
communication devices communication device 201 a may route data that may have originated from different applications such as voice over Internet protocol (VOIP), multi-party interactive Internet gaming, email and/or web browsing. The different applications may have different latency requirements for communicating the data with a desired level of performance. Data marking, tags and/or information comprised within a packet and/or packet data may indicate a desired latency for the packet. In this regard, thecommunication device 201 a may schedule transmission of one or more packets that are pending delivery so that packets requiring lower latency are transmitted prior to packets with less stringent latency requirements. Thecommunication device 201 a may re-order the schedule to accommodate newly arrived packets requiring low latency routing. Alternatively, when thecommunication device 201 a is currently in a process of transmitting a first packet with less stringent latency requirements and a second packet with more stringent latency requirements becomes available, the transmission of the first packet may be interrupted and the second packet may be transmitted. Once transmission of the second packet has completed and/or there are no other packets of lower latency requirements that are suitable to transmit, thecommunication device 101 may continue to transmit the first packet. U.S. Provisional Patent Application Ser. No. 61/228,368, which was filed on Jul. 24, 2009, and U.S. patent application Ser. No. 12/604,968, which was filed on Oct. 23, 2009, disclose packet preemption, and are hereby incorporated herein by reference in their entirety. - Another exemplary routing parameter and/or capability of the
communication devices communication device 201 a, may be utilized to compress video data that may be received by a receiving network node such as thecommunication device 201 b. In various exemplary embodiments of the invention, the video data may be reduced by a factor of two and/or the compression may be lossless and/or near lossless. In this regard, data communicated via thecommunication devices - Power consumption information for one or more network nodes may be utilized to make routing decisions. For example, information regarding power consumption may comprise how much power a communication device consumes when communicating data at a specified bandwidth. For example, a specified number of Watts and/or Joules utilized for a specified transmitted bits per second may be specified. In this regard, power consumption information, for example, Joules per bit for a communication device may be stored within the device and/may be communicated to other communication devices that may route data to that device.
- In another exemplary embodiment of the invention, the information regarding power consumption may comprise a current level of power usage by a communication device, for example, indicating a level of power consumption at a certain time. The current level of power consumption may be communicated to and/or discovered by other communication devices. U.S. Provisional Patent Application Ser. No. 61/228,432, which was filed on Jul. 24, 2009, and U.S. patent application Ser. No. 12/634,211, which was filed on Dec. 9, 2009, disclose various aspects for making routing decisions based on power consumption, and are hereby incorporated herein by reference in their entirety. Criteria for power consumption and/or bandwidth for communicating specified data may be determined. For example, a power per bandwidth criteria may comprise a specified number of Watts and/or Joules utilized for a specified number of transmitted bits per second. In this regard, information within a packet header, for example, within a marking and/or a tag and/or a parameter, may indicate power consumption criteria and/or other criteria for communicating the packet. In various embodiments of the invention, reserved bits in an OSI layer two or higher OSI layer header may be utilized to communicate the power consumption and/or bandwidth criteria, for example.
- The
communication device 201 a may be operable to consider trade-offs between bandwidth and power consumption to determine a best route for the data pending delivery. A communication path through a network may be determined based on various criteria corresponding to data pending transmission and/or on power consumption characteristics of communication devices along the communication path. The tradeoff may be determined based on, for example, a desired latency, desired bandwidth, service class, performance, shortest path bridging and/or power consumption. -
FIG. 3A is a block diagram illustrating an exemplary packet comprising an OSI L2 mark, in accordance with an embodiment of the invention. Referring toFIG. 3A , there is shown adata packet 300 that may comprise a start of apacket header 302, a MAC source address header (MAC SAH) 304, a MAC destination address header (MAC DAH) 306, apayload 308, and an end ofpacket header 310 and amark 312. - The start of
packet header 302 may comprise data that may indicate to a receiving communication device, for example thecommunication device 201 b, where thepacket 300 begins. TheMAC SAH 304 may comprise data that may indicate which communication device is transmitting thepacket 300 and theMAC DAH 306 may indicate which device is receiving thepacket 300. Thepayload 308 may comprise packet data and/or headers for OSI higher layer processing. Thepayload 308 may comprise data transmitted from an endpoint device that may be stored in the endpoint device and/or generated by an application in the endpoint device. For example, thepayload 308 may comprise video conferencing data, multi-party Internet gaming data, VOIP data and/or web browsing data, for example. Accordingly, thepayload 308 may require a specified level of latency in order to realize an acceptable quality of communication. Moreover, thepayload 308 may require a specified class of service based on a service or subscriber agreement purchased by a user associated with thepayload 308. The end ofpacket 310 may indicate to areceiving device 201 b where thepacket 300 ends. Themark 312 may comprise bits embedded within thepacket 300 and/or may be part of an OSI layer 2 and/or higher OSI layer header. For example, an endpoint device, application software on the endpoint device and/or a network node may be operable to originate communication of thepayload 308 and/or may generate a mark in an OSI layer 2 or higher OSI layer header. In another exemplary embodiment of the invention, a service provider that may manage and/or operate thecommunication devices 201 a and/or 201 b, for example, may insert a mark into a packet. - The
packet 300 may comprise one or more marks and/or embedded bits that may indicate criteria for processing and/or routing thepacket 300 via one or more network nodes, for example, via thecommunication devices 201 a and/or 201 b. In various embodiments of the invention, the one or more marks, tags and/or embedded bits within thepacket 300 may correspond to various routing parameters, network node capabilities and/or costs associated with a specified communication device and/or network node. In this regard, the mark, tag and/or embedded bits may indicate how thepacket 300 may be processed, prioritized and/or routed. -
FIG. 3B is a block diagram illustrating an exemplary packet comprising an OSI Ethertype mark, in accordance with an embodiment of the invention. Referring toFIG. 3B , there is shown adata packet 320 that may comprise the start of apacket header 302, the MAC source address header (MAC SAH) 304, the MAC destination address header (MAC DAH) 306, and the end ofpacket header 310. In addition, there is shown anEthertype 322, apayload 324, asubtype mark 326 and apayload 328. - The
Ethertype 322 field may comprise information that may be utilized to identify the protocol being transported in the packet, for example, IPv4 or IPv6. The protocol indicated by the Ethertype may utilize marks within thedata packet 320 that may specify a type of traffic that thepacket 300 belongs to. The type of traffic may indicate how thepacket 300 may be processed, prioritized and/or routed. In this regard, a network device may look for the marks within the payload 234 when theEthertype 322 field indicates a protocol that utilizes the marks. In an exemplary embodiment of the invention, the network device may be operable to parse thepayload 328 to find thesubtype mark 326 that may comprise the traffic type information. -
FIG. 3C is a block diagram illustrating an exemplary packet comprising an IP mark, in accordance with an embodiment of the invention. Referring toFIG. 3C , there is shown adata packet 330 that may comprise the start of apacket header 302, the MAC source address header (MAC SAH) 304, the MAC destination address header (MAC DAH) 306 and the end ofpacket header 310. In addition, there is shown an Ethertype 332 anIP header 334, apayload 336, anIP mark 338 and apayload 340. - The
Ethertype 332 field may comprise information that may be utilized to identify the protocol being transported in the packet, for example, IPv4 or IPv6. TheIP header 334 may comprise information about the packet such as an ID and/or version for the packet, source and destination information and/or protocol information. In various embodiments of the invention, theIP header 334 may comprise a mark to indicate the type of traffic or content comprised within the packet that may determine how thepacket 300 may be processed, prioritized and/or routed. In other embodiments of the invention, the mark may be embedded in theIP payload 336. For example, a network device that may receive thepacket 330 may parse theIP payload 336 to find theIP Mark 338 that may comprise the traffic type information. - In operation, one or more packets, for example, the one or more of the
packets FIG. 4 ). The endpoint device may have a certain capability and/or may host an application that may generate one or more of thepackets packets marks communication device 201 a may receive one or more of thepackets communication device 201 a may inspect themark packet communication device 201 a may determine a path for routing thepacket communication device 201 a may route packets based on shortest path bridging and/or may utilize AVB. Furthermore, thecommunication device 201 a may perform real time compression on the one ormore packets communication device 201 a may also preempt one or more other packets that may be pending delivery by the device 201 so that the multi-party interactive Internet gaming data from thepackets communication device 201 b, for example, with very low latency. -
FIG. 4 is a block diagram illustrating an exemplary data delivery route comprising endpoint devices and a plurality of network nodes which may be determined based on routing parameters, costs associated with a device and/or marked and/or tagged packet data, in accordance with an embodiment of the invention. Referring toFIG. 4 , there is shown, anetwork 400 comprising twoendpoint devices network nodes 401 a, 401 b, . . . , 401 g. In addition, thenetwork 400 comprisesnetwork paths - The two
endpoint devices 405 a and/or 405 b may comprise suitable logic, circuitry, interfaces and/or code that may be operable to communicate via thenetwork 400 wherein packet markings and/or tags, routing parameters and/or costs may be utilized to meet various routing and/or communication criteria. Moreover, theendpoint devices 405 a and/or 405 b may be operable to communicate via thenetwork 400 utilizing AVB. In an embodiment of the invention, theendpoint device 405 a may be a server operated by a service provider and theendpoint device 405 b may be a user device, for example, a laptop, however, the invention is not so limited. In this regard, theendpoint devices 405 a and/or 405 b may be any suitable communication device, for example, theendpoint devices 405 a and/or 405 b may comprise a mobile phone, a smart phone, a media player, a gaming device, a location device, a video server, a service provider head-end and/or a set-top-box. In various embodiments of the invention, theendpoint devices - The
network nodes 401 a, 401 b, . . . , 401 g may comprise suitable logic, circuitry, interfaces and/or code that may be operable to transmit and/or receive data via thenetwork 400. For example, thenetwork nodes 401 a, 401 b, . . . , 401 g may comprise a bridge, a switch and/or a router. Thenetwork nodes 401 a, 401 b, . . . , 401 g may be similar and/or substantially the same as thecommunication devices network nodes 401 a, 401 b, . . . , 401 g may comprise one or more routing parameters and/or stored network node capabilities that may be utilized for routing data via thenetwork 400 as described with respect to, for exampleFIG. 1 ,FIG. 2 and/orFIG. 3 . Furthermore, one or more costs may be associated with one or more of thenetwork nodes 401 a, 401 b, . . . , 401 g as described with respect to, for exampleFIG. 1 ,FIG. 2 and/orFIG. 3 . Thenetwork nodes 401 a, 401 b, . . . , 401 g and/or theendpoint devices 405 a and/or 405 b may be operable to communicate at any suitable standard and/or non-standard speed, may operate based on any suitable standard and/or non-standard technology and/or may communicate over any suitable medium, for example, copper, optical, wireless and/or backplane technologies, and/or may utilize and suitable connection type, for example, PON. For example, thenetwork 400 may be a heterogeneous wired and/or wireless network. Moreover, thenetwork 400 may be comprise any suitable deployment type, for example, thenetwork 400 may comprise a service provider network, a content provider network, a consumer network, an access network, a distribution network, an enterprise network, a data center and/or a wireless backhaul network. - The
network path 411 may comprise a least cost path and/or a lowest latency path between theend devices network path 413 may comprise the shortest path between theendpoint devices - In operation, a user of the
endpoint device 405 b may have a service agreement with a service provider for communicating data based on a specified service class. For example, the service class may specify a minimum bandwidth and/or latency that a user of theendpoint device 405 b may be entitled to for a specified type of data. In an exemplary embodiment of the invention, theendpoint device 405 a may be a video server that may stream video to theendpoint device 405 b via thenetwork 400. Theendpoint device 405 b may be a set top box, for example. Theendpoint device 405 a may insert one or more markings and/or tags within one or more packets of the video stream to indicate the user's specified service class to network nodes that may handle the video stream. Thenetwork nodes 401 a, 401 b, . . . , 401 f may comprise various routing parameters, network node capabilities and/or associated costs that may enable thenetwork nodes 401 a, 401 b, . . . , 401 f to handle and/or route a video stream from theendpoint device 405 a to theendpoint device 405 b in accordance with the user's specified service class. The network node 401 g may have limited routing parameters and/or limited network node capabilities. Moreover, the network node 401 g may have one or more associated costs with regard to bandwidth, memory and/or processing, for example, which may indicate that the network node 401 g may not be able to handle the video stream data at the user's specified service class. In this regard, the video stream communicated from theendpoint device 405 a to theendpoint device 405 b may optimally be routed via thenetwork nodes - In another exemplary embodiment of the invention, various routing parameters and/or capabilities of the
network nodes 401 a, 401 b, . . . , 401 f may enable quality measurements to be taken within the network nodes. The quality measurements may be utilized to improve routing of data between theendpoint devices 405 a and/or 405 b. The quality measurements may be taken for specified data and/or a specified packet handled by thenetwork nodes 401 a, 401 b, . . . , 401 f. Moreover, the quality measurements may be utilized to report performance problems to an endpoint device, a user and/or service provider. In this regard, thenetwork node 401 a, 401 b, . . . , 401 f may be operable to receive data from theendpoint device 405 a, may measure various performance metrics, and may send the measurements back to theendpoint device 405 a. For example, packet retries, latency, data rate, packet error rate and/or duration of errors may be measured and/or reported back to the endpoint device 401 a. - In another embodiment of the invention, quality measurements may be taken at an endpoint device that may be receiving and/or rendering the data and the quality measurements may be reported back to an originating endpoint device and/or a service provider for example. In this regard, the receiving device, for example, the
endpoint device 405 b may send data comprising various performance measurements such as dB ratios, signal to noise ratios and/or packet errors to theendpoint device 405 a and/or a service provider. Theendpoint devices 405 a and/or 405 b and/or the service provider may indicate that quality problems may be occurring in thenetwork 400 and/or may provide information to thenetwork nodes 401 a, 401 b, . . . , 401 f. The provided information may enable improvement in network performance. The information may be communicated to thenetwork nodes 401 a, 401 b, . . . , 401 f by inserting marks, tags and/or information within data that may be routed via thenetwork 400. For example, a user of theendpoint device 405 b may subscribe to and/or purchase a service agreement from a service provider for a specified class of service and/or for a specified bandwidth, for example. The user device may measure the quality of service it receives and may report it to the service provider. Based on the user's service agreement and/or the quality measurements, the service provider may mark, tag and/or otherwise indicate within packets being sent to theendpoint device 405 b how to handle and/or route the data according to the service agreement. Routing parameters withinnetwork nodes 401 a, 401 b, . . . , 401 f may enable the network nodes to handle the data according to the specified quality of service. - In various embodiments of the invention, the
network nodes 401 a, 401 b, . . . , 401 f may comprise a heterogeneous mix of network devices. For example, a network may be undergoing a phased upgrade where at an instant in time, a portion of network devices are upgraded or new and a portion of legacy devices have not yet been upgraded. In this regard, the upgraded network devices may be operable to detect data markings or tags and operate according to information provided by the markings and/or tags while the legacy network devices are not operable to utilize the marking and/or tag information. The markings and or tags may be inserted into packets in such a way that operation of the legacy network devices is not disrupted by the inserted information. - In an exemplary embodiment of the invention, devices within the
network 400, for example, network devices at the edge of a bounded network such as the network node 401 f, may be operable to insert markings and/or tags within a packet. This might occur, for example, when an endpoint device does not have marking capability or for example, when a service provider is operable to marks packets. -
FIG. 5 is a flow chart illustrating exemplary steps for routing data based on one or more of routing parameters, costs associated with a device and/or data marking and/or tag information, in accordance with an embodiment of the invention.Step 501, is a start step. Instep 503, based on a mark within a packet that may be pending delivery, determine a traffic type for the packet. For example, for thepacket 300 that may be communicated from thedevice 201 a, determine a traffic type based on themark 312 information within thepacket 300. Instep 505, one or more routes may be determined for communication of thepacket 300 via one or more communication devices based on one or more of the determined criteria, routing parameters and/or costs associated with the one or more communication devices. Instep 507, one or more of the determined routes for communicating thepacket 300 may be selected based on the determined criteria. Instep 509, thepacket 300 may be communicated via the selected one or more determined routes, for example, to thecommunication device 201 b.Step 511, is the end of exemplary steps. - In an embodiment of the invention, one or more processors and/or circuits in one or more of a plurality communication devices, for example, 201 a and/or 201 b, and/or 401 a, 401 b, . . . , 401 g, may determine one or more routes over which packets, for example, the
packet 300, may be communicated. The packets may be communicated between a first communication device, for example 201 a of the plurality of communication devices and a second communication device, for example, 201 b of the plurality of communication devices. Furthermore, the packets may be communicated based on one or more of corresponding marks and/or tags, for example, the mark and/or tag 312 within the packets, routing parameters and/or costs that may be associated with utilizing the determined routes. At least one determined route may be selected for communicating the packets between the first communication device and the second communication device and the packets may be communicated via the at least one selected route. The parameters may comprise information for one or more of service class capabilities, real time compression capabilities, packet preemption capabilities, quality measurement capabilities, tier bypass capabilities and power usage, for example. The one or more costs may comprise information for one or more of capacity, efficiency and/or performance of one or more of power usage, bandwidth, memory and processing, for example. Moreover, the one or more corresponding marks and/or tags may comprise information for one or more of user device capabilities, service class, quality measurements, latency requirements and power usage requirements, for example. The corresponding marks and/or tags, for example, thetag 312, may be inserted within the packets, for example, thepacket 300, by one or more of an endpoint device, for example theendpoint device 405 a, a software application and/or a service provider. - One or more routes, for example, the
route 411 over which the packets may be communicated may be determined and/or selected based on one or more of shortest path bridging and audio video bridging. Additionally, one or more routes, for example theroute 411, over which the packets may be communicated may be selected based on the one or more corresponding marks and/or tags within the packets, the routing parameters and/or the costs. The routing parameters and/or the costs may be received and/or discovered from the plurality of communication devices, for example, thecommunication devices 201 b. The packets, for example, thepacket 300 and/or the corresponding marks and/or tags, for example, the mark and/ortag 312, may be parsed and/or inspected. One or more costs may be based on one or more of the routing parameters. In this manner, routing of packet data via one or more network nodes may be based on marks and/or tags within the data, routing parameters and/or costs associated with the one or more network nodes. - Another embodiment of the invention may provide a machine and/or computer readable storage and/or medium, having stored thereon, a machine code and/or a computer program having at least one code section executable by a machine and/or a computer, thereby causing the machine and/or computer to perform the steps as described herein for dynamic routing and/or switching in a network.
- Accordingly, the present invention may be realized in hardware, software, or a combination of hardware and software. The present invention may be realized in a centralized fashion in at least one computer system or in a distributed fashion where different elements may be spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software may be a general-purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.
- The present invention may also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when loaded in a computer system is able to carry out these methods. Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.
- While the present invention has been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the present invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the present invention without departing from its scope. Therefore, it is intended that the present invention not be limited to the particular embodiment disclosed, but that the present invention will include all embodiments falling within the scope of the appended claims.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/003,094 US20160142309A1 (en) | 2009-07-24 | 2016-01-21 | Method And System For Dynamic Routing And/Or Switching In A Network |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US22840409P | 2009-07-24 | 2009-07-24 | |
US12/571,165 US9264341B2 (en) | 2009-07-24 | 2009-09-30 | Method and system for dynamic routing and/or switching in a network |
US15/003,094 US20160142309A1 (en) | 2009-07-24 | 2016-01-21 | Method And System For Dynamic Routing And/Or Switching In A Network |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/571,165 Continuation US9264341B2 (en) | 2009-07-24 | 2009-09-30 | Method and system for dynamic routing and/or switching in a network |
Publications (1)
Publication Number | Publication Date |
---|---|
US20160142309A1 true US20160142309A1 (en) | 2016-05-19 |
Family
ID=43497289
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/571,165 Active 2030-10-17 US9264341B2 (en) | 2009-07-24 | 2009-09-30 | Method and system for dynamic routing and/or switching in a network |
US15/003,094 Abandoned US20160142309A1 (en) | 2009-07-24 | 2016-01-21 | Method And System For Dynamic Routing And/Or Switching In A Network |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/571,165 Active 2030-10-17 US9264341B2 (en) | 2009-07-24 | 2009-09-30 | Method and system for dynamic routing and/or switching in a network |
Country Status (1)
Country | Link |
---|---|
US (2) | US9264341B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11621897B2 (en) * | 2018-04-27 | 2023-04-04 | Telecom Italia S.P.A. | Enabling a performance measurement in a packet-switched communication network |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9030536B2 (en) | 2010-06-04 | 2015-05-12 | At&T Intellectual Property I, Lp | Apparatus and method for presenting media content |
US9787974B2 (en) | 2010-06-30 | 2017-10-10 | At&T Intellectual Property I, L.P. | Method and apparatus for delivering media content |
US8918831B2 (en) | 2010-07-06 | 2014-12-23 | At&T Intellectual Property I, Lp | Method and apparatus for managing a presentation of media content |
US9049426B2 (en) | 2010-07-07 | 2015-06-02 | At&T Intellectual Property I, Lp | Apparatus and method for distributing three dimensional media content |
US9032470B2 (en) | 2010-07-20 | 2015-05-12 | At&T Intellectual Property I, Lp | Apparatus for adapting a presentation of media content according to a position of a viewing apparatus |
US9232274B2 (en) | 2010-07-20 | 2016-01-05 | At&T Intellectual Property I, L.P. | Apparatus for adapting a presentation of media content to a requesting device |
US9118591B2 (en) * | 2010-07-30 | 2015-08-25 | Broadcom Corporation | Distributed switch domain of heterogeneous components |
US8438502B2 (en) | 2010-08-25 | 2013-05-07 | At&T Intellectual Property I, L.P. | Apparatus for controlling three-dimensional images |
US9088454B2 (en) * | 2010-11-03 | 2015-07-21 | Broadcom Corporation | Vehicle network node module |
CN102761463A (en) * | 2011-04-29 | 2012-10-31 | 鸿富锦精密工业(深圳)有限公司 | Network equipment and method for implementation of energy conservation and electricity saving of network equipment in local area network |
US8693327B2 (en) | 2011-05-03 | 2014-04-08 | Novell, Inc. | Techniques for privileged network routing |
CN103828324B (en) * | 2011-06-10 | 2017-11-28 | 茨特里克斯系统公司 | Method, apparatus and system for adaptive bitrate management |
US9602766B2 (en) | 2011-06-24 | 2017-03-21 | At&T Intellectual Property I, L.P. | Apparatus and method for presenting three dimensional objects with telepresence |
US9030522B2 (en) | 2011-06-24 | 2015-05-12 | At&T Intellectual Property I, Lp | Apparatus and method for providing media content |
US9445046B2 (en) | 2011-06-24 | 2016-09-13 | At&T Intellectual Property I, L.P. | Apparatus and method for presenting media content with telepresence |
US8947497B2 (en) | 2011-06-24 | 2015-02-03 | At&T Intellectual Property I, Lp | Apparatus and method for managing telepresence sessions |
KR20130008325A (en) * | 2011-07-12 | 2013-01-22 | 삼성전자주식회사 | A communication method of content owner, middle node and content requester in a contents centric network |
US8587635B2 (en) | 2011-07-15 | 2013-11-19 | At&T Intellectual Property I, L.P. | Apparatus and method for providing media services with telepresence |
US9231852B2 (en) * | 2011-07-25 | 2016-01-05 | Futurewei Technologies, Inc. | Greening the network with the power consumption statuses of network components |
US9209991B1 (en) * | 2011-09-28 | 2015-12-08 | Google Inc. | Ad hoc networking |
JP2013135450A (en) * | 2011-12-27 | 2013-07-08 | Fujitsu Ltd | Network control method, network system and transfer device |
US9203551B2 (en) * | 2012-05-10 | 2015-12-01 | Texas Instruments Incorporated | Wireless network with power aware transmission control |
WO2014096974A2 (en) * | 2012-12-17 | 2014-06-26 | Marvell World Trade Ltd. | Network discovery apparatus |
US9325610B2 (en) * | 2013-03-15 | 2016-04-26 | Cisco Technology, Inc. | Extended tag networking |
CN105706068B (en) * | 2013-04-30 | 2019-08-23 | 慧与发展有限责任合伙企业 | The storage network of route memory flow and I/O flow |
US9325624B2 (en) * | 2013-11-12 | 2016-04-26 | Twilio, Inc. | System and method for enabling dynamic multi-modal communication |
AU2014203218B2 (en) * | 2014-06-13 | 2016-08-25 | Canon Kabushiki Kaisha | Memory configuration for inter-processor communication in an MPSoC |
US9785606B2 (en) * | 2014-12-22 | 2017-10-10 | Intel Corporation | Systems, methods, and devices for media agnostic USB packet scheduling |
JP6407489B2 (en) * | 2016-05-16 | 2018-10-17 | 三菱電機株式会社 | Transfer device, adjustment device, and parameter adjustment method |
US11212257B2 (en) | 2018-06-22 | 2021-12-28 | Aeronix, Inc. | Multi-level secure ethernet switch |
US11606418B2 (en) * | 2018-08-03 | 2023-03-14 | Samsung Electronics Co., Ltd. | Apparatus and method for establishing connection and CLAT aware affinity (CAA)-based scheduling in multi-core processor |
US10999189B2 (en) | 2018-11-20 | 2021-05-04 | Cisco Technology, Inc. | Route optimization using real time traffic feedback |
GB2583521B (en) * | 2019-05-02 | 2022-01-12 | Samsung Electronics Co Ltd | Relay network routing |
US20220021600A1 (en) * | 2019-05-13 | 2022-01-20 | Juniper Networks, Inc. | Metric-based multi-hop path selection |
WO2020242474A1 (en) * | 2019-05-30 | 2020-12-03 | Hewlett Packard Enterprise Development Lp | Routing nvme-over-fabric packets |
US11777804B2 (en) | 2019-06-11 | 2023-10-03 | Hewlett Packard Enterprise Development Lp | Automatic system provisioning for NVME-over-fabric storage |
WO2020263223A1 (en) | 2019-06-25 | 2020-12-30 | Hewlett Packard Enterprise Development Lp | Mapping nvme-over-fabric packets using virtual output queues |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389029B1 (en) * | 1998-11-10 | 2002-05-14 | Nortel Networks Limited | Local area network incorporating universal serial bus protocol |
JP2000174755A (en) * | 1998-12-02 | 2000-06-23 | Fujitsu Ltd | Route selection system |
US6654363B1 (en) * | 1999-12-28 | 2003-11-25 | Nortel Networks Limited | IP QOS adaptation and management system and method |
US7734758B1 (en) * | 2000-07-19 | 2010-06-08 | Cisco Technology, Inc. | USB encapsulation for network transmission |
US7200154B1 (en) * | 2001-05-23 | 2007-04-03 | Nortel Networks Limited | QoS link protocol (QLP) |
US6925061B2 (en) * | 2001-12-26 | 2005-08-02 | Tropic Network Inc. | Multi-constraint routing system and method |
US7545814B2 (en) * | 2002-02-28 | 2009-06-09 | Nokia Corporation | Method and system for dynamic remapping of packets for a router |
EP1387527A1 (en) * | 2002-07-30 | 2004-02-04 | Agilent Technologies Inc. | Identifying network routers and paths |
US8149707B2 (en) * | 2003-02-12 | 2012-04-03 | Rockstar Bidco, LP | Minimization of radio resource usage in multi-hop networks with multiple routings |
US8804728B2 (en) * | 2004-01-20 | 2014-08-12 | Rockstar Consortium Us Lp | Ethernet differentiated services conditioning |
EP1768328B1 (en) * | 2004-07-14 | 2012-12-26 | Nippon Telegraph And Telephone Corporation | Packet transmission method and packet transmission device |
US8155014B2 (en) * | 2005-03-25 | 2012-04-10 | Cisco Technology, Inc. | Method and system using quality of service information for influencing a user's presence state |
US8144577B2 (en) * | 2006-05-10 | 2012-03-27 | Cisco Technology, Inc. | Technique for efficiently managing bandwidth registration for multiple spanning tree options |
KR101088376B1 (en) * | 2006-12-27 | 2011-12-01 | 삼성전자주식회사 | Method and apparatus for communication between USB host and USB device |
US8705549B2 (en) * | 2007-04-06 | 2014-04-22 | International Business Machines Corporation | Structure and implementation of universal virtual private networks |
US8279871B1 (en) * | 2007-10-29 | 2012-10-02 | Marvell Israel (M.I.S.L.) Ltd. | Methods and apparatus for processing multi-headed packets |
US8885634B2 (en) * | 2007-11-30 | 2014-11-11 | Ciena Corporation | Systems and methods for carrier ethernet using referential tables for forwarding decisions |
JP5104508B2 (en) * | 2008-04-16 | 2012-12-19 | 富士通株式会社 | Relay device and packet relay method |
US7792046B2 (en) * | 2008-06-05 | 2010-09-07 | Vss Monitoring, Inc. | Ethernet switch-based network monitoring system and methods |
-
2009
- 2009-09-30 US US12/571,165 patent/US9264341B2/en active Active
-
2016
- 2016-01-21 US US15/003,094 patent/US20160142309A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11621897B2 (en) * | 2018-04-27 | 2023-04-04 | Telecom Italia S.P.A. | Enabling a performance measurement in a packet-switched communication network |
Also Published As
Publication number | Publication date |
---|---|
US9264341B2 (en) | 2016-02-16 |
US20110019669A1 (en) | 2011-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9264341B2 (en) | Method and system for dynamic routing and/or switching in a network | |
US8599830B2 (en) | Method and system for network aware virtual machines | |
US8189561B2 (en) | Method and system for power-limited switching and/or routing in a network | |
US9893994B2 (en) | Methods and apparatus to route control packets based on address partitioning | |
US9019976B2 (en) | Redundant host connection in a routed network | |
EP2544417B1 (en) | Communication system, path control apparatus, packet forwarding apparatus and path control method | |
WO2022166691A1 (en) | Service processing method and device, storage medium, and electronic device | |
US6952397B2 (en) | Communication in a bidirectional ring network with single-direction receiving | |
KR101317969B1 (en) | Inter-node link aggregation system and method | |
TWI521923B (en) | Method and system for energy-efficiency-based packet classification | |
US10931530B1 (en) | Managing routing resources of a network | |
US20050195835A1 (en) | Router configured for outputting update messages specifying a detected attribute change of a connected active path according to a prescribed routing protocol | |
US20080159150A1 (en) | Method and Apparatus for Preventing IP Datagram Fragmentation and Reassembly | |
US9548930B1 (en) | Method for improving link selection at the borders of SDN and traditional networks | |
US11522784B2 (en) | Routing and forwarding method for multi-homed network based on programmable network technology | |
CN101789949B (en) | Method and router equipment for realizing load sharing | |
US9118592B2 (en) | Switch and/or router node advertising | |
WO2020135087A1 (en) | Communication method, apparatus and system | |
US6950429B2 (en) | IP data transmission network using a route selection based on level 4/5 protocol information | |
CN110213161B (en) | Routing scheduling method and related equipment | |
CN115208829A (en) | Message processing method and network equipment | |
WO2023078144A1 (en) | Message processing method, apparatus and system | |
EP4277226A1 (en) | Packet transmission method, transmission control method, apparatus, and system | |
EP3588866A1 (en) | Method and apparatus for configuring a routing table | |
TW201233213A (en) | Method and system for power-limited switching and/or routing in a network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: BROADCOM CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MA, KENNETH;CURRIVAN, BRUCE;DIAB, WAEL WILLIAM;AND OTHERS;SIGNING DATES FROM 20090819 TO 20090929;REEL/FRAME:037570/0155 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:041706/0001 Effective date: 20170120 Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:041706/0001 Effective date: 20170120 |