This application relates to the field of communications networks, and more particularly, to protocols and algorithms deployed in packet-switched networks.
In communications networks such as the Internet, information is transmitted in the form of packets. A packet comprises a unit of digital information that is individually routed hop-by-hop from a source to destination. The routing of a packet entails that each node, or router, along a path traversed by the packet examines header information in the packet, to compare this header against a local database; upon consulting the local database, the router forwards the packet to an appropriate next hop. The local database is typically referred to as the Forwarding Information Base or FIB; the FIB is typically structured as a table, but may be instantiated in alternative formats. Entries in the FIB determine the next hop for the packet, i.e., the next router, or node, to which the respective packets are forwarded in order to reach the appropriate destination. The Forwarding information Bases are usually derived from global or network-wide information from a collective database. Each protocol names the collective databases to denote the type of information. Such databases are referred to generically herein as Network Information Databases (NIBs).
In implementations of the Internet Protocol (IP), the FIB is typically derived from a collective database, i.e., a NIB, referred to as a Routing Information Database or RIB. A RIB resident on a router amalgamates the routing information available to that router; one or more algorithms are typically used to map the entries, e.g., routes, in the RIB to those in the FIB, which, in turn, is used for forwarding packets to their next hop. The IP RIB may be constructed by use of two techniques, which may be used in conjunction: (a) static configuration and (b) dynamic routing protocols. Dynamic IP routing protocols may be further subdivided into two groups based on the part of the Internet in which they operate: exterior gateway protocols, or EGPs, are responsible for the dissemination of routing data between autonomous administrative domains, and interior gateway protocols, or IGPs, are responsible for dissemination of routing data within a single autonomous domain. Furthermore, two types of IGPs are in widespread use today: those that use a distance-vector type of algorithm and those that use the link-state method.
Each type of protocol typically formats packets either in a pre-defined byte order, or by reference to a dynamically generated definition of the information contained in the packet. Dynamic definitions of data formats often employ a three part definition for a field of data. The first such part is the type of data, the second part is the length of the data field, and the third part contains the values for the information transmitted in the packet. Of the common routing protocols, OSPF, ISIS, and BGP describe some of the fields in the form of a type-length-value tuple. This field definition is often abbreviated as “TLV”. While the TLV definition may allow for dynamic packet definitions, the additional bytes add to the amount of information that is sent by the respective protocol.
Link State algorithms flood information about local peers, including their links, associated network routes, and additional information associated with the peer. In 1986, when BGP was designed, concerns over the amount of AS level traffic that could be flooded for an EGP caused BGP to utilize a variant of the distance vector algorithm, referred to as the “path vector algorithm”. The BGP-4 protocols are based on a path vector algorithm that makes initial preferences of the “best route,” according to the distance vector metric, by reference to routing policy. Routing policy sets a metric for determining the “best route”.
Because BGP-4 is a path vector protocol, the convergence time with large numbers of BGP peers or BGP routes can take seconds or tens of seconds. Securing the information in the BGP protocol may take up substantially more traffic to secure the selected route and all the other back-up routes. A variant of BGP which is used to secure the protocol, referred to as S-BGP, typically requires 700% more traffic. Portions of BGP-4 or S-BGP, such as the AS-Path, are repeated in many packets. Thus, these protocols currently pass considerable amounts of redundant information. Thus, there is a need for an Exterior Gateway Protocol (EGP), that can reduce the amount of data passed and processed, and thereby allow the use of link state algorithms for flooding information.
Furthermore, network security was not designed into the IP routing protocols typically deployed today, including OSPF, ISIS, or BGP. Though these protocols utilize MD5 authentication to try to overlay source authentication, this technique does not prevent insertion of bad information by a participating router and replay attacks. Thus, there is an additional need for a protocol which can secure data efficiently, while preventing replay attacks.
The invention provides systems and methods for employing “network components” to transmit data in networks. Such network components are designed to:
By reducing the information sent in a network, the network components allow the use of link-state protocols for supporting those network information bases which demand substantial data exchange. The BGP-4 routing infrastructure is one such example of a resource intensive protocol. Furthermore, embodiments of the invention allow individual components to be secured at fine level of granularity, thereby enabling the provision of secure network protocols which scale with increasing amounts of frequently updated data.
Embodiments of the invention also include algorithms to:
In embodiments of the invention, component identification numbers may be either variable length or fixed length. These identifiers, referred to as a Network Component Instance Identification Numbers, or NC-IIDs, indicate a particular set of repeating data transmitted in the network. In embodiments of the invention, the network components may comprise a nested hierarchy of sub-components. In some such embodiments, each sub-component, in turn, is assigned its own NC-IID. In embodiments, nodes may process nested sub-components in recursive fashion. Embodiments of the invention include algorithms to adjust the sizes of IDs dynamically, in response to events such as routing traffic or update signals.
In some embodiments of the invention, the NC-IID is a monotonically increasing sequence number. This feature, coupled with varying aging rates for network components, enables security algorithms to prevent replay attacks. In some such embodiments, a network component may have one or more security sub-components, which, in certain non-limiting embodiments, may periodically request that certain information transmitted via a network be re-secured at its source.
In embodiments of the invention, each network component passes a particular grouping of information in the protocol and is assigned a Global Format Identifier (NC-GFI). In some embodiments, network components are grouped in classes, such that each class of network components has their own time periods for re-transmitting information, re-securing information, and aging information.
The aging process includes the wrap-around of sequence numbers. Classes of network components may contain one or more network components.
Network components may perform particular types of network functions. Examples of such functions may include any one or more of the following types:
These and other possible functions of network components shall be apparent to those skilled in the art.
A. Introduction
The invention introduces “network components” comprising data structures for communication in packet-switched networks. The network components may be nested in recursive hierarchies, thereby simplifying the algorithms and protocols used to process these components. The use of network components also reduces the information transmitted in a network, thereby enabling the use of link-state protocols for resource-intensive network protocols. Furthermore, the recursive, nested structure of network components enables information flow to be secured at fine level of granularity, thereby mitigating the unwieldy overhead of standard secure protocols.
The use of network components to replace repeating and/or redundant data transmitted in a network is illustrated in
B. Format of Network Components
In embodiments of the invention, a given network component may be instantiated per a default format, or a custom format forwarded to all relevant network entities. In some embodiments, the formats may be transmitted during an establishment phase of a peer/connection, at which protocol capabilities are negotiated between peers. In embodiments, the formats of certain network components are themselves passed as network components, which are, in turn, defined by their own NC-GFI and their own NC-IID. In some such embodiments, the first such transmission of the format information associates an NC-IID for the respective format. Subsequent peer/connection negotiations need only pass the NC-IID associated with the format.
Embodiments of the invention allow formats of particular network components to be dynamically readjusted. These readjustments may be configured manually by an operator, or derived manually or automatically from an examination of network traffic. In embodiments of the invention, features that may be readjusted include the syntax of a particular network component or information pertaining to a class of components. By way of non-limiting example, the changes to the syntax of a network component may include changes to the sizes and/or format of the network components ID field, length field or data content field. As a further, illustrative, non-limiting example, the component class information that may be dynamically revised may include retransmission time periods, aging periods, wrap processing, and re-securing time periods.
As an illustrative, non-limiting example,
C. Algorithms to Create Protocols Employing Network Components
Embodiments of the invention include algorithms for creating network components, based on data patterns that are either present in existing protocols or projected for new protocols. An algorithm used to generate network components by embodiments of the invention is presented herein; this algorithm is presented by way of non-limiting example, and many variants, alternatives, and equivalents will be apparent to those skilled in the art.
Step A: Identify the Potential Network Components in the Data Stream.
(Note: the network components algorithms focus on the groupings of the information within a packet or a byte stream. Each grouping of this information is considered a “message” for optimization purposes, and the term “message” is used accordingly in the description below.)
For each protocol (outer-most loop):
c. store the information about the messages type-length-value field in the main component description.
Where level: 0=stream/protocol
NC-GFIs may be assigned a rank in a hierarchy, and may be interpreted within that scope. However, some NC-GFI are common to “all protocols” or “all messages”.
An example of a nested TLV field can be found in the withdraw field of the BGP-4 Update packet. The BGP-4 withdraw has two types of implied TLV fields: The withdraw field has an implied “type” followed by a length field, followed by the variable field of prefixes. The format of the prefixes is a one-byte length field followed by the prefix field. The one-byte length field gives the length of the prefix in bits. The prefix field can be 1-4 bytes depending on the value in the prefix length field.
This is an outer implied TLV field. Inside the withdraw TLV field, the repeated implied TLV fields with the prefixes. The type is “withdraw-prefix” which is implied and not passed in the protocol. The length of the prefix and the value field follow. BGP gives us an example of a nested set of TLV fields.
Step B: Determine the Number of Times Each Network Component (TLV or non-TLV) will be Transmitted in One of the Modes of Exchange: Start-Up, Reconfiguration, Steady State, Network Oscillations and Termination.
If the protocol implementation exists, evaluate existing data flow traffic to determine the average number of times each network component occurs during the lifetime of network flow. The lifetime of a network flow normally has start-up, steady-state and termination. Certain network flows will be subject to reconfiguration of network paths or devices and network oscillations.
Step C: Record Policy Information for Each Protocol Application on by Querying User, Including:
Step D: Use the Number of Times a Network Component will be Used to Select between Fixed Format Fields or Explicit Type-Length-Value NC-IID Network Component Fields.
Step E: Associate the Network Component with a Class of Components. Each Class of Components Share:
Step F: Create Formats to Detail the Format of the Protocol Based on Network Components and the Original Protocol's Design.
A format describes the layout of network-components and non-network component bytes in a protocol in terms of NC-GFI identifiers. The data structure built up in steps A thru E is assigned a format identifier. The original protocols format messages are encoded as a network component.
A format network component is created and the formats created are associated as sub-components. This network component will be attached in step G to peer negotiation messages.
Step G: Associate the New Format Component with the Appropriate Protocols.
IP protocols, routing and switching, utilize a greeting (hello) mechanism to establish the peer, and an extended peer negotiation protocols to add additional capabilities.
In IGP protocols, the hello message is exchanged with preliminary information. In BGP the “hello” mechanism is a “Open” message. In IS-IS there are additional TLV structures for additional router information. In OSPF, Opaque LSAs used at the router level will allow protocols to negotiate additional information. In BGP, the capabilities negotiation can allow new transitive path attributes for BGP-4.
D. Algorithms for Processing Network Components
In embodiments of the invention, peers may exchange network components in their entirety, or may only forward identifiers, or NC-IIDs, for the components. Embodiments of the invention allow either type of stream to be processed, as elaborated below.
In some embodiments, one or more of the following parameters are retained for each network component:
To elaborate on the significance of these parameters, the age of a Component ID is the time since the last re-transmission of the information. A component's ID values monotonically increase until the sequence number wraps. The wrap count is the count of the number of wraps. The wrap count timeout denotes a time period for a maximum wrap count number.
A non-limiting example of one such algorithm for processing network components is presented below:
In embodiments of the invention, nested network components are secured recursively, from the lowest sub-component level up to the highest level. In some embodiments, each network component supports security by inclusion of one or more of the following:
In some embodiments, one or more network components may comprise part of a class, which shares common parameters, such as, by way of non-limiting example, time outs.
To illustrate the process of securing network components, an algorithm is presented below. Many modifications and/or variants shall be apparent to those skilled in the art:
In embodiments of the invention, the structure of each network component is identified with a Global Format Identifier, or NC-GFI. In embodiments, a network component may be associated with multiple format-ids, denoting alternative byte formats for the network component. In some such embodiments, the first transmission of a particular set of data with that format is associated with an NC-IID includes: an ID and set of information. The NC-IID can utilize one of three formats: fixed format, variable length format, or a GFI variable format.
In non-limiting embodiments of the invention, the fixed byte NC-IID transmission uses the 1st bit of the ID field to indicate whether this is the transmission with data or just the NCI-IID. The variable length ID uses the first bit of the 1st length byte to indicate whether the ID is the first transmission or a subsequent. The variable length of the component includes length, followed by ID. The GFI variable format includes: GFI, format-id, length-of ID, ID. The first bit of the length of the ID field uses specifies transmission with data or just ID.
The network component for format structures can either use global pre-defined structures. The Global pre-defined format structures have these levels of support:
As illustrated in
The security format component covers global security information. The network information base format component indicates the type of information passed.
The network component's format information (based on NC-GFI) may include:
Each format includes the format of the bytes plus a time range during which the format is valid. The time range includes:
The global GFI data allows the formats to updated asynchronously.
G. Application of Network Components to Assorted Protocols
Embodiments of the invention include an IP Route component, which comprises a global component at level of network classes. The IP route component supports common IP routing information, including static routes, IGPs (RIP, RIPng, OSPF (v2/v3), ISIS), and EGPs (BGP, EGP), Multicast routing (DVMRP, PIM (SM, DM, SSM), and MSDP). Embodiments also include an IP Switching component comprising a global component at the level of a network class. The IP switching component supports MPLS switching and forwarding state for MPLS static routes and MPLS protocols. The policy component is a global level component supporting policies across all classes of network protocols.
H. Conclusion
From the foregoing, it will be appreciated that specific embodiments of the invention have been described herein for purposes of illustration, but that various modifications may be made without deviating from the spirit and scope of the invention. Accordingly, the invention is not limited except as by the appended claims.
This application is related to U.S. Provisional Application No. 60/390,576, entitled “Fibonacci Heap for Use with Internet Routing Protocols,” U.S. Utility application entitled “Fibonacci Heap for Use with Internet Routing Protocols,” U.S. Utility application entitled “Systems and Methods for Routing Employing Link State and Path Vector Techniques,” filed on the same day herewith, and U.S. Utility application entitled “Nested Components for Network Protocols,” also filed on the same day herewith, each of which is hereby incorporated by reference in its entirety.