Open systems interconnection (OSI) model is a layered, abstract description for communications and computer network protocol design, developed as part of the Open Systems Interconnection initiative. It is also called the OSI seven layer model: application layer (layer 7), presentation layer (layer 6), session layer (layer 5), transport layer (layer 4), network layer (layer 3), data link layer (layer 2) and physical layer (layer 1). Data link layer is further divided into logical link control (LLC) sub-layer and media access control (MAC) sub-layer. MAC data communication protocol may provide addressing and channel access control mechanisms that may make it possible for several terminals or network nodes to communicate on a multipoint network.
The invention described herein is illustrated by way of example and not by way of limitation in the accompanying figures. For simplicity and clarity of illustration, elements illustrated in the figures are not necessarily drawn to scale. For example, the dimensions of some elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference labels have been repeated among the figures to indicate corresponding or analogous elements.
The following description describes techniques for testing data communication performance of a network system. In the following description, numerous specific details such as logic implementations, pseudo-code, methods to specify operands, resource partitioning/sharing/duplication implementations, types and interrelationships of system components, and logic partitioning/integration choices are set forth in order to provide a more thorough understanding of the present invention. However, the invention may be practiced without such specific details. In other instances, control structures, gate level circuits and full software instruction sequences have not been shown in detail in order not to obscure the invention. Those of ordinary skill in the art, with the included descriptions, will be able to implement appropriate functionality without undue experimentation.
References in the specification to “one embodiment”, “an embodiment”, “an example embodiment”, etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
Embodiments of the invention may be implemented in hardware, firmware, software, or any combination thereof. Embodiments of the invention may also be implemented as instructions stored on a machine-readable medium, which may be read and executed by one or more processors. A machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computing device). For example, a machine-readable medium may include read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; and others.
Hardware 21 may comprise a network interface, for example, Ethernet adapter 211 to allow the terminal to access local area network (LAN) and communicate with other terminals through Ethernet connection 13, and WLAN adapter 212 to allow the terminal to access wireless local area network (WLAN) and communicate with other terminals through wireless connection 14. It should be appreciated that hardware 21 may comprise other components, for example, one or more processors, a memory and other I/O devices (e.g., keyboard, mouse, antenna), although they are not depicted in
Operating system 22 may control tasks that the terminal carries out and manages system resources to optimize performance. Operating system 22 may comprise Ethernet device driver 221 to control tasks that Ethernet adapter carries out, such as sending or receiving an Ethernet packet through Ethernet connection 13. Ethernet device driver 221 may further comprise a time stamping logic 2211 to timestamp the sending/receiving of the Ethernet packet by Ethernet adapter 211 based upon a local clock (not shown) of the terminal.
As shown in
LLC sub-layer may manage communications between the terminals over a single link of the network. LLC communication protocol may define a number of fields in data link layer frames that allow multiple higher layer protocols to share a single physical data link. MAC sub-layer may manage protocol access to the physical medium. MAC communication protocol may provide addressing and channel access control mechanisms that may make it possible for the terminals to communicate within the network.
Operating system 22 may further comprise UDP/IP 223 and socket 224 that may compose layers 3-6. Layers 3-6 may interface between upper layer (i.e., layer 7) and lower layer (i.e., layer 2) and perform abstraction and isolation of the upper layer from the lower layer.
UDP/IP 223 may encapsulate data from the upper layer based upon UDP/IP protocol for the lower layer to navigate the data on the network. UDP/IP 223 may further de-capsulate the data from the lower layer based upon UDP/IP protocol for the upper layer to interact with application program and provide services for the application programs. It should be appreciated that other protocols could be used in place of UDP/IP, for example, TCP/IP.
Socket 224 may be “equal to” a network interface (not physically, but metaphorically) to allow a network application to “plug into” the network. Socket 224 may be used by a process to communicate with other terminals via a transport protocol.
Application 23 running above operating system 22 may comprise synchronizing logic 231 to synchronize the local clock of the terminal with local clocks of other terminals of the network system 1, for example, with the local clocks (not shown) of terminals 11 and 12. Various protocols may be used to implement the synchronization, for example, precision time protocol (PTP).
Synchronizing logic 231 may generate a PTP message to be sent to other terminals via Ethernet connection 13. Time stamping logic 2211 may timestamp the sending of the PTP message from the terminal to the other terminals. Synchronizing logic 231 may further analyze the PTP message received from other terminals and the timestamp of the receiving of the PTP message and adjust the local clock to be synchronized with other local clocks of the other terminals based upon the analysis result.
Operating system 22 may further comprise WLAN device driver 222 to control tasks that WLAN adapter 212 carries out, such as sending or receiving a wireless packet through wireless connection 14. WLAN device driver 222 may further comprise a time stamping logic 2221 to timestamp the sending/receiving of the wireless packet based upon the local clock of the terminal.
As shown in
Operating system 22 may further comprise collecting logic 225 that may collect wireless packets transceived by the terminal and pass the wireless packets between the upper layer (layer 7) and the lower layer (layer 2). Dissimilarly with UDP/IP 223 and socket 224, collecting logic 225 may pass the wireless packets between the upper layer and the lower layer with less or even no processing of the packets.
Application 23 may further comprise processing logic 232. Processing logic 232 may analyze the wireless packets transceived by the terminal and a timestamp of the tranceiving of each wireless packet recorded by the WLAN device driver. Processing logic 232 may further analyze records received from other terminals on the network system 1. The records may describe transceiving activities performed by the other terminals and a timestamp of each tranceiving activity.
Based upon the analysis result, processing logic 232 may detect if any problems exist in layer 2 and/or layer 1 and optimize protocols used for layer 2 and/or layer 1. For example, processing logic 232 may optimize the MAC communication protocol and/or LLC communication protocol based upon the analysis result.
It can be seen from
Ethernet adapter 211, Ethernet device driver 221, UDP/IP 223, socket 224 and synchronizing logic 231 may make up of Ethernet channel 24. WLAN adapter 212, WLAN device driver 222, collecting logic 225 and processing logic 232 may make up of wireless channel 25. With such scenario, the terminal may obtain not only the transceiving performance of the terminal itself, but also the transceiving performance of other terminals so that the terminal may detect any transceiving problems existing in the network and optimize the data communication protocol of the network system.
Ethernet channel 24 may communicate packets through wireless channel 25. For example, Ethernet channel 24 may send a management packet to wireless channel 25 (e.g., processing logic 232) to instruct the wireless channel 25 to send or receive the wireless packets. For another example, Ethernet channel 24 may receive the record of transceiving activities from other terminals on the network system.
Other embodiments may implement other technologies for the terminal as shown in
In block 304, wireless channel 25 of the terminal (e.g., terminal 10) may receive/send the wireless packets from/to other terminals (e.g., terminals 11-12) on the network. In block 305, wireless channel 25 may timestamp the receiving/sending of each wireless packet. In block 306, wireless channel 25 may receive a record from other terminals on the network system. The record may describe receiving/sending activities performed by the other terminals as well as the timestamp of each receiving/sending activity.
In block 307, the terminal may analyze the information collected in blocks 304-306. For example, wireless channel 25 may analyze not only the receiving/sending activities performed by the terminal itself, but also the receiving/sending activities performed by other terminals on the network system, so as to detect any problems related to data communication protocols adopted by the network system or optimize the mechanism of data communication protocols. Based upon the analysis result, wireless channel 25 may optimize the data communication protocols and improve the data communication performance of the network system in block 308.
Although the present invention has been described in conjunction with certain embodiments, it shall be understood that modifications and variations may be resorted to without departing from the spirit and scope of the invention as those skilled in the art readily understand. Such modifications and variations are considered to be within the scope of the invention and the appended claims.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/CN07/00969 | 3/26/2007 | WO | 00 | 3/25/2010 |