Dynamic allocation of context identifiers for header compression

In one embodiment, routable traffic through one or more border routers between a local computer network and a global computer network is monitored in order to characterize use of one or more global prefixes of the traffic. A particular set of the global prefixes, up to a maximum number, that are most frequently used may be mapped into a set of context identifiers (IDs) having a shorter bit-length than the global prefixes. The context IDs may then be distributed into the local computer network, and the one or more border routers convert between the context IDs and the global prefixes, accordingly.

TECHNICAL FIELD

The present disclosure relates generally to computer networks, and, more particularly, to header compression in computer networks.

BACKGROUND

Low power and Lossy Networks (LLNs), e.g., sensor networks, have a myriad of applications, such as Smart Grid and Smart Cities. Various challenges are presented with LLNs, such as lossy links, low bandwidth, battery operation, low memory and/or processing capability, etc. To address the limited resources of LLNs, the Internet Engineering Task Force (IETF) working group for Internet Protocol version 6 (IPv6) over Low power Wireless Personal Area Networks (6LoWPAN) has defined an adaptation layer for carrying IPv6 packets in IEEE 802.15.4 frames. A primary component of the adaptation layer is an IPv6 header compression mechanism that reduces the size of IPv6 payloads to reduce channel utilization, transmission energy cost, and communication latency. Furthermore, because packet error rates and packet length are correlated, reduced packet sizes also serves to reduce packet error rates. Note that other LLN link technologies have also adopted the same (or similar) header compression mechanism, such as IEEE P1901.2 for Power Line Communication (PLC), and others.

The 6LoWPAN header compression mechanism reduces the size of IPv6 addresses by using stateless and context-based techniques. The stateless technique replaces the standard encoding for well-known address formats (e.g., link-local unicast, well-known multicast, and unspecified addresses) with compact forms used, and does not allow for communication across network boundaries. The context-based technique, however, may be used to compact IPv6 addresses by replacing them with a short context identifier that indicates a particular IPv6 prefix (e.g., limited to sixteen different 4-bit identifiers). This mechanism assumes that all 6LoWPAN devices in the same network are configured with the same context information, which requires extra configuration. Currently, however, there is no definition as to how prefixes are selected for compression into context identifiers, nor when context identifiers should be distributed.

DESCRIPTION OF EXAMPLE EMBODIMENTS

Overview

According to one or more embodiments of the disclosure, routable traffic through one or more border routers between a local computer network and a global computer network is monitored in order to characterize use of one or more global prefixes of the traffic. A particular set of the global prefixes, up to a maximum number, that are most frequently used may be mapped into a set of context identifiers (IDs) having a shorter bit-length than the global prefixes. The context IDs may then be distributed into the local computer network, and the one or more border routers convert between the context IDs and the global prefixes, accordingly.

Description

FIG. 1is a schematic block diagram of an example computer network100illustratively comprising nodes/devices125(e.g., labeled as shown, “11,” “12,” . . . “35”) interconnected by various methods of communication. For instance, the links105as shown may be shared media (e.g., wireless links, PLC links, etc.) of a mesh network, where certain nodes, such as, e.g., routers, sensors, computers, etc., may be in communication with other nodes, e.g., based on distance, signal strength, current operational status, location, etc. Generally, the devices125may be considered to be part of a “local” or mesh computer network110(e.g., a LAN or personal area network, “PAN”), which may be connected via one or more border routers120to a “global” computer network130, such as a WAN. Within the global computer network, the mesh network110may be in communication with one or more network management servers150, collectors160, or other head-end applications or devices. Those skilled in the art will understand that any number of nodes, devices, links, etc. may be used in the computer network, and that the view shown herein is for simplicity.

Data packets140(e.g., traffic and/or messages sent between the devices/nodes) may be exchanged among the nodes/devices of the computer network100using predefined network communication protocols such as certain known wireless protocols (e.g., IEEE Std. 802.15.4, WiFi, Bluetooth®, etc.), PLC protocols, or other shared-media protocols where appropriate. In this context, a protocol consists of a set of rules defining how the nodes interact with each other.

FIG. 2is a schematic block diagram of an example node/device200that may be used with one or more embodiments described herein, e.g., particularly as a border router120or other nodes where applicable. The device may comprise one or more network interfaces210(e.g., wireless, PLC, wired, etc.), at least one processor220, and a memory240interconnected by a system bus250, as well as a power supply260(e.g., battery, plug-in, etc.).

The network interface(s)210contain the mechanical, electrical, and signaling circuitry for communicating data over links105coupled to the local network110and when embodied as a border router120, also into global network130. The network interfaces may be configured to transmit and/or receive data using a variety of different communication protocols. Note, further, that the nodes may have two different types of network connections210, e.g., wireless and wired/physical connections, and that the view herein is merely for illustration. Also, while the network interface210is shown separately from power supply260, for PLC the network interface210may communicate through the power supply260, or may be an integral component of the power supply. In some specific configurations the PLC signal may be coupled to the power line feeding into the power supply.

The memory240comprises a plurality of storage locations that are addressable by the processor220and the network interfaces210for storing software programs and data structures associated with the embodiments described herein. The processor220may comprise necessary elements or logic adapted to execute the software programs and manipulate the data structures245. An operating system242, portions of which are typically resident in memory240and executed by the processor, functionally organizes the device by, inter alia, invoking operations in support of software processes and/or services executing on the device. These software processes and/or services may comprise routing process/services244and an illustrative “header compression” process248, as described herein.

Notably, mesh networks have become increasingly popular and practical in recent years. In particular, shared-media mesh networks, such as wireless or PLC networks, etc., are often on what is referred to as Low-Power and Lossy Networks (LLNs), which are a class of network in which both the routers and their interconnect are constrained: LLN routers typically operate with constraints, e.g., processing power, memory, and/or energy (battery), and their interconnects are characterized by, illustratively, high loss rates, low data rates, and/or instability. LLNs are comprised of anything from a few dozen and up to thousands or even millions of LLN routers, and support point-to-point traffic (between devices inside the LLN), point-to-multipoint traffic (from a central control point such at the root node to a subset of devices inside the LLN) and multipoint-to-point traffic (from devices inside the LLN towards a central control point).

An example protocol specified in an Internet Engineering Task Force (IETF) Internet Draft, entitled “RPL: IPv6 Routing Protocol for Low Power and Lossy Networks” <draft-ietf-roll-rpl-19> by Winter, at al. (Mar. 13, 2011 version), provides a mechanism that supports multipoint-to-point (MP2P) traffic from devices inside the LLN towards a central control point (e.g., LLN Border Routers (LBRs) or “root nodes/devices” generally), as well as point-to-multipoint (P2MP) traffic from the central control point to the devices inside the LLN (and also point-to-point, or “P2P” traffic). RPL (pronounced “ripple”) may generally be described as a distance vector routing protocol that builds a Directed Acyclic Graph (DAG) for use in routing traffic/packets140, in addition to defining a set of features to bound the control traffic, support repair, etc. Notably, as may be appreciated by those skilled in the art, RPL also supports the concept of Multi-Topology-Routing (MTR), whereby multiple DAGs can be built to carry traffic according to individual requirements.

Also, a directed acyclic graph (DAG) is a directed graph having the property that all edges are oriented in such a way that no cycles (loops) are supposed to exist. All edges are contained in paths oriented toward and terminating at one or more root nodes (e.g., “clusterheads or “sinks”), often to interconnect the devices of the DAG with a larger infrastructure, such as the Internet, a wide area network, or other domain. In addition, a Destination Oriented DAG (DODAG) is a DAG rooted at a single destination, i.e., at a single DAG root with no outgoing edges. A “parent” of a particular node within a DAG is an immediate successor of the particular node on a path towards the DAG root, such that the parent has a lower “rank” than the particular node itself, where the rank of a node identifies the node's position with respect to a DAG root (e.g., the farther away a node is from a root, the higher is the rank of that node). Note also that a tree is a kind of DAG, where each device/node in the DAG generally has one parent or one preferred parent. DAGs may generally be built (e.g., by routing process244) based on an Objective Function (OF). The role of the Objective Function is generally to specify rules on how to build the DAG (e.g. number of parents, backup parents, etc.).

As noted above, to address the limited resources of LLNs, the IETF working group for IPv6 over Low power Wireless Personal Area Networks (6LoWPAN) has defined an adaptation layer for carrying IPv6 packets in IEEE 802.15.4 frames. A primary component of the adaptation layer is an IPv6 header compression mechanism that reduces the size of IPv6 payloads to reduce packet overhead, channel utilization, transmission energy cost, and communication latency. Furthermore, because packet error rates and packet length are correlated, reduced packet sizes also serves to reduce packet error rates. An illustrative header compression mechanism is specified in the IETF Internet Draft, entitled “RPL Compression Format for IPv6 Datagrams in Low Power and Lossy Networks (6LoWPAN)” <draft-ietf-6lowpan-hc-15> by Hui, at al. (Feb. 24, 2011 version). Note that other LLN link technologies have also adopted the same (or similar) header compression mechanism, such as IEEE P1901.2 for Power Line Communication (PLC), and others.

The 6LoWPAN header compression mechanism reduces the size of IPv6 addresses by using stateless and context-based techniques. The stateless technique replaces the standard encoding for well-known address formats (e.g., link-local unicast, well-known multicast, and unspecified addresses) with compact forms used, and does not allow for communication across network boundaries. The context-based technique, however, may be used to compact IPv6 addresses by replacing them with a short context identifier that indicates a particular IPv6 prefix (e.g., limited to sixteen different 4-bit identifiers). This mechanism assumes that all 6LoWPAN devices in the same network are configured with the same context information, which requires extra configuration. Currently, however, there is no definition as to how prefixes are selected for compression into context identifiers, nor when context identifiers should be distributed.

A number of LLN applications involve LLN devices communicating with a server outside the LLN, such as a network management service/server (NMS)150. Also, for another example, in a Smart Grid AMI applications, Smart Meters communicate with a Collection Engine160to receive configuration information and report meter data. Because such communication relies on global IPv6 addresses, the proper context information can significantly increase overall system performance (e.g. throughput, latency, efficiency, etc.).

For instance, with reference toFIG. 3, a packet300(e.g.,140) generally comprises one or more headers310for carrying various information used in transmitting the packet300, such as a source address312, a destination address314, etc. The packet's payload320may then be directed through the network100based (generally) on the information container within the header.FIG. 4, on the other hand, illustrates how header compression may be used in a network, e.g., at a border router120, by replacing the potentially long header310of the packet300, particularly the destination address314(e.g., 128-bit IPv6 addresses), or generally “header410,” with a shorter context identifier (ID)420(e.g., a 4-bit 6LoWPAN Header Compression Context ID). Accordingly, as shown inFIG. 4, the context IDs420may be used within the local computer network110, and converted to/from the full headers/addresses410by the border routers120based on their configured mapping (e.g., “410-A” to “420-A,” and “420-B” to “410-B,” etc.)

Because draft-ietf-6lowpan-hc only defines the encoding of IPv6 packets in IEEE 802.15.4 frames, however, the configuration of 6LoWPAN context information was left out-of-scope for that specification. Also, the IETF Internet Draft, entitled “Neighbor Discovery Optimization for Low Power and Lossy Networks (6LoWPAN)” <draft-ietf-6lowpan-nd-17> by Shelby, at al. (Jun. 13, 2011 version) specifies one method for distributing context information in a 6LoWPAN, but it does not describe how prefixes are selected or when context information should be distributed.

The techniques described below, therefore, dynamically updates the 6LoWPAN context information to maximize the benefit of 6LoWPAN header compression mechanisms. The techniques below also specify a mechanism that auto-configures prefixes so that no manual configuration or administration is required, which is substantially important in typical LLN environments.

Dynamic Allocation of Context Identifiers

The techniques herein introduce the concept of dynamically auto-configuring context information (e.g., 6LoWPAN context information) for use with header compression (e.g., IPv6 header compression). In particular, according to one or more embodiments of the disclosure as described in detail below, routable traffic (thus using global addresses) through one or more border routers between a local computer network and a global computer network is monitored in order to characterize use of one or more global prefixes of the traffic. A particular set of the global prefixes, up to a maximum number, that are most frequently used may be mapped into a set of context identifiers (IDs) having a shorter bit-length than the global prefixes. The context IDs may then be distributed into the local computer network, and the one or more border routers convert between the context IDs and the global prefixes, accordingly.

Illustratively, the techniques described herein may be performed by hardware, software, and/or firmware, such as in accordance with the header compression process248, which may contain computer executable instructions executed by the processor220to perform functions relating to the novel techniques described herein, e.g., in conjunction with routing process244. For example, the techniques herein may be treated as extensions to conventional protocols, such as the various 6LoWPAN protocols, and as such, may be processed by similar components understood in the art that execute those protocols, accordingly.

Operationally, the techniques herein may first be described with relation to determining the appropriate context information, i.e., the context IDs420. In many LLN applications, routable traffic generally flows through one or a small handful of LLN Border Routers (LBRs)120that connect the LLN110to the outside IP world (global network130). For example, in a Smart Grid AMI application, Smart Meter applications generally communicate with a Collection Engine160hosted outside the LLN. LLN devices also communicate any management information to a Network Management System (NMS)150hosted outside the LLN. Furthermore, when using the RPL protocol, in a “non-storing mode,” all routable traffic must flow through the RPL DAG root, which is typically implemented on the LBRs.

Because the LBRs120can monitor routable traffic that is sourced by and/or destined to devices in the LLN (i.e., the traffic of interest traverses through the border routers120), the LBRs can characterize the use of global prefixes410within that traffic, using various packet inspection techniques.FIG. 5illustrates an example table500(e.g., a data structure245) that may be used to store the appropriate information gathered by monitoring and characterizing the traffic. For instance, a flow/prefix field505may list the most recent set of global prefixes410monitored (e.g., “a” through “f” shown), and an associated “usage” field510may characterize the usage, such as a number of times the prefix is seen, a rate at which the prefix is seen (for example, as a portion/percentage of a total data rate, or else as an approximate number, e.g., 20 kB/s). Note that the format of table500is merely for illustration, and is not meant to limit the scope of the embodiments herein. (Note also that an allocated context ID field515is described below.)

Note that there may be network configurations where there are a plurality of border routers between the local and global computer networks, and as such, use of the global prefixes should be characterized based on monitoring the traffic through the plurality of border routers. For instance, the LBRs can then combine their results to characterize the use of prefixes across the entire 6LoWPAN (remember that 6LoWPAN header compression requires all devices to be configured with the same context information). The process of combining results can be done in different ways:1) Select a single LBR as a “leader” or “primary border router” and have all other LBRs serving the same local network110(e.g., the same 6LoWPAN) to report their prefix information to the leader. The leader then dictates the context information as described herein (e.g., determining most frequently used global prefixes, and mapping and distributing context IDs, etc.).2) Have each LBR report their prefix information to all other LBRs. After receiving prefix information from all other LBRs, have each LBR use a deterministic function common to all LBRs to compute the prefix mapping information.

A variety of algorithms may be used to determine a mapping between context IDs420and global prefixes410. For instance, a first example method may use any of a variety of known frequency-counting algorithms (e.g., Misra-Gries) for determining the top most frequently used global prefixes (e.g., the top sixteen). According to a second example method, the problem can be viewed as an adaptive Huffman coding problem (as will be understood by those skilled in the art), where each code must be 4-bits long. One can use any adaptive Huffman coding algorithm (e.g., “FGK” or “Vitter”) to assign 4-bit codes (context IDs420) to global prefixes410. One advantage of using Huffman coding is that it more naturally deals with commonly-used prefixes that fully contain other commonly-used prefixes (e.g., a /64 that matches a /48). As further shown inFIG. 5is an illustrative mapping of the allocated context IDs as defined in allocation field515(e.g., “CID-A,” “CID-C,” etc.).

Illustratively, the frequency calculation, that is, the characterization of prefix usage, should occur over a sliding window such that it adapts to changes in frequency over time in order to remap the context IDs after a length of time.

Note that while one illustrative embodiment maps 6LoWPAN 4-bit header compression context IDs4420to IPv6 global prefix addresses410, other mappings between context IDs and global prefixes may be used. For instance, the number of global prefixes that can be mapped to context IDs need not be limited to sixteen (4-bits), as in the current 6LoWPAN header compression specification, but larger or smaller numbers may be supported, such that once this number is determined, a particular set of global prefixes may be determined (e.g., and mapped) that are most frequently used, up to that specific allowable number (i.e., as many different context IDs as are available). In one embodiment, it is also possible to allow the border routers to dynamically increase and/or decrease the number of available context IDs (e.g., increasing the bit-length of the context ID) as needed.

Note also that another alternative to the embodiments above consists of having each border router/LBR120making a association between a prefix and a context ID, and sharing this association with other LBRs (thus without requiring each LBR to use a common algorithm). In this instance, any conflicts between the respective context IDs from each border router may be resolved in a variety of manners. For instance, context collisions can be sorted out by releasing the context ID giving precedence to the LBR with the higher IP address, or a specifically assigned preference, etc.

In addition, in one embodiment, a “bidding” mechanism may be used between LBRs in case of context ID shortage (supposing that all available context IDs have been used). In particular, if a border router wishes to allocate a context ID for a newly identified flow of heavy traffic, the border router may send a message to other border routers reporting the averaged traffic rates for its lowest flow and the new flow. Upon receiving that message, other border routers may trigger the same advertisement for their context IDs. Once all border routers have received the information, a distributed algorithm can be used so that each border router determines which one must release a context ID for the requester. As an example, assume the following:Border Router120-A:lowest flow is 20 KBits/s CID=3;higher flow is 130 KBits/s CID=5;Border Router120-B:lowest flow is 24 KBits/s CID=6;higher flow is 230 KBits/s CID=7;Border Router120-C:lowest flow is 30 KBits/s CID=13;higher flow is 130 KBits/s CID=15.
If a border router then detects a new flow with an average rate of 500 KBits/s, and there are no more context IDs available, the algorithm described above may be invoked, and Border Router120-A would have to relinquish the mapped context ID “CID=3,” as it has a lowest frequency of use among the plurality of border routers.

According to one or more embodiments of the disclosure herein, techniques are also described for distributing the context information allocated above. In particular, border routers120may distribute context information to the nodes in the local computer network110in several ways in order to establish the network operation by the nodes125, and thus be able to convert between the context IDs420and the global prefixes410at the border routers120(e.g., as shown inFIG. 4above).

The current specification of draft-ietf-6lowpan-nd mentioned above uses a flooding-based protocol to distribute 6LoWPAN context information. The downside of using this mechanism is that it is a completely independent protocol and may add significant overhead to the 6LoWPAN network. Accordingly, two alternative mechanisms, each an application-specific choice based on respective tradeoffs, are proposed herein:1) Relaying the context IDs420(their mapping) within dynamic host configuration protocol (DHCP) messages within the local computer network110, for example, using DHCP for IPv6 (DHCPv6) to distribute context information in a newly defined DHCPv6 option. As shown inFIG. 6A, by using a DHCP server (e.g., located on a border router120), devices can retrieve new configuration information in addition to the header compression context information (e.g., request/reply exchange610/615).2) “Piggybacking” the context IDs (their mapping) within network topology discovery messages distributed within the local computer network, for example, through defining a new option in RPL that may be included in RPL “DIO” messages (a DODAG Information Object, or DIO, is a type of DAG discovery message that carries information that allows a node to discover a RPL Instance, learn its configuration parameters, select a DODAG parent set, and maintain the upward routing topology). By piggybacking on RPL DIO messages, as shown inFIG. 6B(topology discovery messages620), the same (e.g., Trickle-based) dissemination mechanism used to distribute route updates can be utilized.

Note that in certain embodiments, it may not make sense to utilize all context IDs if the added benefits of having the context information in place does not justify the cost of distributing context information. According to a specific embodiment, therefore, each border router has the option to disable the use of a context ID if its frequency of use does not justify the cost of maintaining the context information. Because all of the border routers in the local network may have to communicate the context information periodically or when new nodes join the network, there is a continuous cost to maintaining the context information. Accordingly, when a border router determines that the maintenance cost of a particular context ID, e.g., in terms of traffic, memory, etc., exceeds the benefit, it disables its use of the context ID, and informs the network that the context ID has been freed up/relinquished (e.g., in the case of RPL, a DIO message may be sent). Such message may also be sent if a border router receives a packet with an unknown context ID, which may be because the message advertising that the context ID is no longer used or has been lost.

FIGS. 7A-7Billustrate an example simplified procedure for dynamically allocating context identifiers for header compression in a computer network in accordance with one or more embodiments described herein. The procedure700starts at step705, and continues to step710, where, as described in greater detail above, routable traffic through one or more border routers120between a local computer network110and a global computer network130is monitored, and the use of one or more global prefixes410of the traffic (e.g., flows505and usage510) may be characterized in step715.

Once the number of global prefixes that can be mapped into context IDs is determined (step720, or else statically configured), then in step725a particular set of the global prefixes410that are most frequently used can be determined, up to that number, and context IDs420may then be mapped to the particular set of global prefixes in step730, as described in detail above. In particular, the monitoring, mapping, etc., may be performed by one or more border routers according to the techniques outlined above. In step735, the context IDs420may be distributed into the local computer network110, e.g., through DHCP configuration (request/reply610/615) or topology discovery messages620. Note that in the event there is a conflict between context IDs of different border routers (when individually computed), in step740the conflict may be resolved according to one or more techniques mentioned above (e.g., relinquishing a least-used context ID, etc.).

Operation of the border router(s) with regard to traffic flow proceeds in step745, where the one or more border routers convert between the context IDs420and the mapped global prefixes410. Note that as mentioned above, in step750the use of a particular context ID in the local computer network may be disabled in response to a cost of the particular context ID exceeding its benefit.

The procedure700proceeds to step755, where the context IDs may be remapped after a certain length of time, or else may be continuously updated, by returning to step710to continue monitoring the traffic, characterizing the traffic, etc. If new context IDs are needed, they may be distributed into the network, or if there are no available context IDs, old mapped IDs may be replaced, and so on.

The novel techniques described herein, therefore, dynamically allocate context identifiers for header compression in a computer network. In particular, by maximizing the benefit of header compression (e.g., 6LoWPAN header compression), the techniques herein reduce packet control plane overhead, channel utilization, reduce latency, increase throughput, reduce packet-error rates, and reduce transmission costs.

While there have been shown and described illustrative embodiments that dynamically allocate context identifiers for header compression in a computer network, it is to be understood that various other adaptations and modifications may be made within the spirit and scope of the embodiments herein. For example, the embodiments have been shown and described herein with relation specifically to 6LoWPAN and IPv6 protocols. However, the embodiments in their broader sense are not as limited, and may, in fact, be used with other types of protocols. In addition, while the network (local computer network) is shown as an LLN, other types of networks may utilize the techniques herein where a border router communicates between two different networks.