A cross-layer architecture for a network device having a number of network interfaces is provided. Each of the network interfaces implements a number of low level layers of a protocol stack and includes an associated network based cross-layer agent. The network device also includes an application based cross-layer agent associated with one or more high level protocol stack layers including an application layer. When the application layer desires to form a network connection to another network device, an arbitration agent operates to identify one of the network interfaces for the network connection. The arbitration agent then effects interconnection of the application based cross-layer agent and the network based cross-layer agent of the network interface and interconnection of the high level protocol stack layers and the low level protocol stack layers of the network interface, thereby forming a complete protocol stack having a cross-layer architecture for the network connection.
|
0. 15. A method of operating a device having a plurality of network interfaces each implementing at least one low level protocol stack layer and an application based cross-layer agent associated with at least one high level protocol stack layer including an application layer, the method comprising:
obtaining information identifying a second device with which the application layer desires to establish a network connection and provide the information identifying the second device to an arbitration agent;
identifying one of the plurality of network interfaces as a network interface for establishing a network connection with the second device based on the information identifying the second device;
effecting interconnection of the at least one high level protocol stack layer and the one of the plurality of network interfaces identified as the network interface for establishing the network connection with the second device; and
effecting interconnection of network based cross-layer agent of the one of the plurality of network interfaces identified as the network interface for establishing the network connection with the second device and the application based cross-layer agent for a duration of the network connection, thereby providing a complete protocol stack having a cross-layer architecture for the network connection.
11. A system for interconnecting an application based cross-layer agent and one of a plurality of network based cross-layer agents in a network device, the application based cross-layer agent associated with at least one high level protocol stack layer including an application layer and the plurality of network based cross-layer agents each associated with at least one low level protocol stack layer of a corresponding one of a plurality of network interfaces, comprising:
means for obtaining information identifying a second network device with which the application layer desires to establish a network connection;
means for identifying a one of the plurality of network interfaces as a network interface for establishing the network connection;
means for interconnecting the at least one high level protocol stack layer and the at least one low level protocol stack layer of the one of the plurality of network interfaces identified as the network interface for establishing the network connection; and
means for interconnecting the application based cross-layer agent and the one of the plurality of network based cross-layer agents associated with the at least one low level protocol stack layer of the one of the plurality of network interfaces during the network connection such that a complete protocol stack having a cross-layer architecture is provided for the network connection.
7. A method of operation of a network device to interconnect an application based cross-layer agent and one of a plurality of network based cross-layer agents in the network device, the application based cross-layer agent associated with at least one high level protocol stack layer including an application layer and the plurality of network based cross-layer agents each associated with at least one low level protocol stack layer of a corresponding one of a plurality of network interfaces, comprising:
obtaining information identifying a second network device with which the application layer desires to establish a network connection;
identifying a one of the plurality of network interfaces as a network interface for establishing the network connection;
interconnecting the at least one high level protocol stack layer and the at least one low level protocol stack layer of the one of the plurality of network interfaces identified as the network interface for establishing the network connection; and
interconnecting the application based cross-layer agent and the one of the plurality of network based cross-layer agents associated with the at least one low level protocol stack layer of the one of the plurality of network interfaces during the network connection such that a complete protocol stack having a cross-layer architecture is provided for the network connection.
1. A network device comprising:
a plurality of network interfaces each implementing at least one low level protocol stack layer and comprising a network based cross-layer agent associated with the at least one low level protocol stack layer; and
a control system associated with the plurality of network interfaces and comprising:
an application based cross-layer agent associated with at least one high level protocol stack layer including an application layer, the application based cross-layer agent adapted to obtain information identifying a second network device with which the application layer desires to establish a network connection and provide the information identifying the second network device to an arbitration agent; and
the arbitration agent adapted to:
identify the one of the plurality of network interfaces as a network interface for establishing a network connection with the second network device based on the information identifying the second network device;
effect interconnection of the at least one high level protocol stack layer and the one of the plurality of network interfaces identified as the network interface for establishing the network connection with the second network device; and
effect interconnection of the network based cross-layer agent of the one of the plurality of network interfaces identified as the network interface for establishing the network connection with the second network device and the application based cross-layer agent for a duration of the network connection, thereby providing a complete protocol stack having a cross-layer architecture for the network connection.
2. The network device of
3. The network device of
4. The network device of
5. The network device of
6. The network device of
a plurality of application based cross-layer agents including the application based cross-layer agent each associated with at least one high level protocol stack layer including a corresponding one of a plurality of application layers including the application layer; and
a messaging matrix controlled by the arbitration agent and adapted to interconnect select ones of the plurality of application based cross-layer agents and the network based cross-layer agents of the plurality of network interfaces.
8. The method of
9. The method of
10. The method of
12. The system of
13. The system of
14. The system of
0. 16. The device of claim 1, wherein the device is a network device.
|
The present invention relates to a cross-layer architecture for a network device, and more specifically relates to a cross-layer architecture for a network device having multiple applications and network interface cards.
In the classic seven layer Open Systems Interconnection (OSI) protocol stack for networking, communication and data sharing is restricted to adjacent layers in the protocol stack. The OSI protocol stack assumes a somewhat static performance of the low level protocol layers, such as the Media Access Control (MAC) layer and the physical layer (PHY). However, in wireless networks where the performance of the low level protocol layers and specifically the physical layer (PHY) is dynamic, the classic OSI protocol stack is not optimal. Changes in performance at the physical layer (PHY) result in rippling effects in the higher layers of the protocol stack. For example, as packets are dropped over an error prone wireless link, the Transmission Control Protocol (TCP) layer assumes network congestion at the Internet Protocol (IP) layer or high traffic loads within the network router. In response, the TCP layer overcompensates by slowing transmission rates.
Due to the non-optimal performance of the classic OSI model in wireless networks, cross-layering has emerged as a viable approach to gaining network performance. In general, cross-layering is when communication or data sharing is enabled between non-adjacent layers in the protocol stack in violation of the classic OSI model. One issue with known cross-layer architectures is that they do not support a network device having multiple applications interacting with multiple network interface cards. As such, there is a need for a cross-layer architecture for a network device having multiple applications interacting with multiple network interface cards.
The present invention provides a cross-layer architecture for a network device. In general, the network device includes a number of network interfaces each implementing a number of low level layers of a protocol stack and having a cross-layer agent associated with the low level layers of the protocol stack. The low level protocol stack layers may include a physical layer, a link layer, a network layer, and a protocol layer. The network device also includes an application based cross-layer agent associated with one or more high level protocol stack layers including an application layer. For example, the application layer may be a File Transfer Protocol (FTP) application. When the application layer desires to form a network connection to another network device, an arbitration agent operates to identify one of the network interfaces as a network interface for the network connection. Once the network interface is identified, the arbitration agent then effects interconnection of the application based cross-layer agent and the network based cross-layer agent of the network interface and interconnection of the high level protocol stack layers including the application layer and the low level protocol stack layers of the network interface, thereby forming a complete protocol stack having a cross-layer architecture for the network connection.
Those skilled in the art will appreciate the scope of the present invention and realize additional aspects thereof after reading the following detailed description of the preferred embodiments in association with the accompanying drawing figures.
The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the invention, and together with the description serve to explain the principles of the invention.
The embodiments set forth below represent the necessary information to enable those skilled in the art to practice the invention and illustrate the best mode of practicing the invention. Upon reading the following description in light of the accompanying drawing figures, those skilled in the art will understand the concepts of the invention and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.
The present invention relates to a cross-layer architecture for a network device having multiple applications and multiple network interfaces. An exemplary embodiment of a network device 10 incorporating the cross-layer architecture of the present invention is illustrated in
According to the present invention, the protocol stack of the Open System Interconnect (OSI) model is segmented such that low level layers of the protocol stack are implemented on the network interfaces 12-1, 12-M. In this exemplary embodiment, the traditional protocol stack is segmented such that Layers 1-4 are implemented on the network interfaces 12-1, 12-M and all layers above and including Layer 5 are implemented, for example, in software executed by a control system of the network device 10. However, the present invention is not limited thereto. Segmentation of the protocol stack may occur at any desired point in the protocol stack. Further, the segmentation of the protocol stack may vary among the network interfaces 12-1, 12-M.
More specifically, in this embodiment, the network interface 12-1 implements low level protocol stack layers 14-1 through 20-1. The low level protocol stack layers 14-1 through 20-1 may be implemented in hardware, software, or a combination of hardware and software and include a physical layer 14-1, a link layer 16-1, a network layer 18-1, and a transport layer 20-1. The physical layer 14-1 is an IEEE 802.11x physical layer; the link layer 16-1 is a Media Access Control (MAC) layer; the network layer 18-1 is an Internet Protocol (IP) layer; and the transport layer 20-1 provides both a Transfer Control Protocol (TCP) service and a User Datagram Protocol (UDP) service. Likewise, the network interface 12-M implements low level protocol stack layers 14-M through 20-M. Note that IEEE 802.11x is used refer generically to any one of the suite of IEEE 802.11 standards.
The network device 10 also includes user applications 22, 24 and a number of Layer 7 applications 26-1 through 26-N. In general, the user applications 22, 24 may be any applications desiring use of one or more of the network interfaces 12-1, 12-M. Each of the user applications 22, 24 may be, for example, a web browser, an e-mail application, an application for synchronizing e-mail between the network device 10 and a secondary device such as a Personal Digital Assistant (PDA), an application for streaming digital video to other network devices, a peer-to-peer photo or video sharing application, or the like. In this exemplary embodiment, the Layer 7 application 26-1 is a File Transfer Protocol (FTP) application and is used by the user application 22. As discussed below in more detail, the FTP application 26-1 forms an application layer and may be coupled to one or more of the network interfaces 12-1, 12-M to form a complete protocol stack. In a similar fashion, the Layer 7 application 26-N is a Real-time Transfer Protocol (RTP) and RTP Control (RTPC) application used by the user application 24. The RTP/RTPC application 26-N forms an application layer and may be coupled to one or more of the network interfaces 12-1, 12-M to form a complete protocol stack.
To provide cross-layer functionality, the network device 10 also includes network based cross-layer agents 28-1 through 28-M associated with the network interfaces 12-1 through 12-M; application based cross-layer agents 30-1 through 30-N associated with the Layer 7 applications 26-1 through 26-N; an arbitration agent 32; and a messaging matrix 34. The network based cross-layer agents 28-1, 28-M are implemented on the network interfaces 12-1, 12-M in hardware, software, or a combination of hardware and software. The network based cross-layer agent 28-1 provides or facilitates information-sharing between and control of the low level protocol stack layers 14-1 through 20-1, as will be apparent to one of ordinary skill in the art upon reading this disclosure. In addition, as described below in more detail, the network based cross-layer agent 28-1 may be associated with the application based cross-layer agents 30-1, 30-N by the arbitration agent 32 and the messaging matrix 34 to facilitate information-sharing between and control of the low level protocol stack layers 14-1 through 20-1 and the upper protocol stack layers when desired.
In a similar fashion, the network based cross-layer agent 28-M provides or facilitates information-sharing between and control of the low level protocol stack layers 14-M through 20-M, as will be apparent to one of ordinary skill in the art upon reading this disclosure. In addition, as described below in more detail, the network based cross layer agent 28-M may be associated with the application based cross-layer agents 30-1, 30-N by the arbitration agent 32 and the messaging matrix 34 to facilitate information-sharing between and control of the low level protocol layers 14-M through 20-M and the upper protocol stack layers when desired.
The application based cross-layer agents 30-1 and 30-N are associated with, in this example, the FTP application 26-1 and the RTP/RTPC application 26-N, respectively, and operate to facilitate information-sharing and control between the protocol stack layers. The application based cross-layer agents 30-1 and 30-N are preferably implemented in software executed by a control system of the network device 10, but may alternatively be implemented in hardware or a combination of hardware and software.
The arbitration agent 32 is preferably implemented in software, but may alternatively be implemented in hardware or a combination of hardware and software. The arbitration agent 32 operates to associate the application based cross-layer agents 30-1, 30-N with one or more of the network based cross-layer agents 28-1, 28-M as needed. For example, if the user application 22 desires to transfer a file to another network device via the FTP application 26-1, the arbitration agent 32 may determine that the network interface 12-1 is capable of or preferred for providing a network connection to the other network device based on, for example, an IP address or Uniform Resource Locator (URL) of the other network device. Then, by controlling the messaging matrix 34, the arbitration agent 32 operates to interconnect the FTP application 26-1 and the network interface 12-1 and interconnect the application based cross-layer agent 30-1 and the network based cross-layer agent 28-1 to provide a complete protocol stack having a cross-layer architecture for the network connection.
The implementation of the messaging matrix 34 may depend on the particular implementation of the network device 10 and specifically the network interfaces 12-1, 12-M. The messaging matrix 34 may be implemented in software, hardware, or a combination of hardware and software. In operation, the messaging matrix 34 operates to interconnect the applications 26-1, 26-N of the upper protocol layers with the network interfaces and application based cross-layer agents 30-1, 30-N with the network based cross-layer agents 28-1, 28-M under the control of the arbitration agent 32.
The arbitration agent 32 then sends a request to the network based cross-layer agent 28-1 with the IP address or URL of the other network device (step 108). The network based cross-layer agent 28-1 sends a response to the arbitration agent 32 including information indicating whether the network interface 12-1 has the ability to accept an interface to the FTP application 26-1 and, if so, appropriate protocol stack interface criteria including data and messaging requirements for the interface between the protocol stack layers (step 110). The response may indicate whether the network interface 12-1 is currently in use such that bandwidth is unavailable or is limited. If the network interface 12-1 is currently in use, the arbitration agent 32 may determine a priority assigned to the current connection maintained by the network interface 12-1, a priority assigned to the desired transfer by the FTP application 26-1, and optionally other criteria such as an expected duration of the current network connection of the network interface 12-1 or the like. Depending on these factors, the arbitration agent 32 may determine whether to wait until the current network connection of the network interface 12-1 has been terminated or to immediately terminate the current network connection such that the FTP application 26-1 is given immediate access to the network interface 12-1.
In another embodiment, if the network interface 12-1 is in use, the arbitration agent 32 may interact with the network based cross-layer agent 28-1 to determine whether the network interface 12-1 has the ability to establish parallel communication channels. For example, if the network interface 12-1 is a wireless network interface, the arbitration agent 32 may determine whether the network interface 12-1 is capable of establishing two parallel wireless communication links on non-overlapping channels. If so, the arbitration agent 32 may operate such that the network interface 12-1 establishes a second, parallel communication link for the FTP application 26-1. If not, the arbitration agent 32 may operate such that the FTP application 26-1 waits until the network interface 12-1 is no longer in use or alternatively shares the bandwidth of the network interface 12-1 with the other application currently using the network interface 12-1.
In this example, the network interface 12-1 has the ability to accept an interface to the FTP application 26-1. Upon receiving the response, the arbitration agent selects an appropriate connection in the messaging matrix 34 to interconnect the application based cross-layer agent 30-1 to the network based cross-layer agent 28-1 (step 112). In addition, the messaging matrix 34 is controlled by the arbitration agent 32 to interconnect the FTP application 26-1 to the network interface 12-1.
At this point, the arbitration agent 32 may provide additional functionality by optimizing the cross-layer strategy. For example, the network interface 12-1 may be a wireless network interface operating according to one of the suite of IEEE 802.11 standards. Based on the IP address or URL and information from the network based cross-layer agent 28-1, the arbitration agent 32 may determine that the other network device identified by the IP address or URL is within a local wireless coverage area of the network interface 12-1 such that a direct point-to-point wireless connection may be established between the two network devices. Thus, in order to provide a more efficient transfer, the arbitration agent 32 may interact with the network based cross-layer agent 28-1 and optionally the application based cross-layer agent 30-1 to bypass, for example, the transport layer 20-1 and the network layer 18-1.
Once the appropriate connection in the messaging matrix 34 is made, the arbitration agent 32 notifies the application based cross-layer agent 30-1 of the protocol stack interface criteria (step 114), and an FTP session is established via the FTP application 26-1 and the network interface 12-1 (step 116). In the situation where the transport layer 20-1 and the network layer 18-1 are bypassed, the arbitration agent 32 may monitor the performance of the network interface 12-1 during the FTP session. If the performance of the network interface 12-1 is less than desired, the arbitration agent 32 may interact with the network based cross-layer agent 28-1 and optionally the application based cross-layer agent 30-1 such that the transport layer 20-1 and the network layer 18-1 are no longer bypassed.
When the FTP session terminates (step 118), the application based cross-layer agent 30-1 notifies the arbitration agent 32 of the termination of the FTP session (step 120). Then, the arbitration agent 32 notifies the network based cross-layer agent 28-1 of the termination of the FTP session (step 122) and disconnects the application based cross-layer agent 30-1 and the network based cross-layer agent 28-1 in the messaging matrix 34 (step 124).
Those skilled in the art will recognize improvements and modifications to the preferred embodiments of the present invention. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.
Patent | Priority | Assignee | Title |
9485804, | Jun 27 2006 | STRIPE, INC | High-speed WAN to wireless LAN gateway |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jun 07 2012 | QURIO Holdings, Inc. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Nov 20 2013 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jan 22 2018 | REM: Maintenance Fee Reminder Mailed. |
Jul 09 2018 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Mar 26 2016 | 4 years fee payment window open |
Sep 26 2016 | 6 months grace period start (w surcharge) |
Mar 26 2017 | patent expiry (for year 4) |
Mar 26 2019 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 26 2020 | 8 years fee payment window open |
Sep 26 2020 | 6 months grace period start (w surcharge) |
Mar 26 2021 | patent expiry (for year 8) |
Mar 26 2023 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 26 2024 | 12 years fee payment window open |
Sep 26 2024 | 6 months grace period start (w surcharge) |
Mar 26 2025 | patent expiry (for year 12) |
Mar 26 2027 | 2 years to revive unintentionally abandoned end. (for year 12) |