A typical wireless network usually comprises at least one wireless access point (WAP) through which stations can connect to a wireless network. A common wireless network is a Wi-Fi network, which is a non-technical description that is generally correlated with the IEEE 802.11 standards, as well as Wi-Fi Protected Access (WPA) and WPA2 security standards, and the Extensible Authentication Protocol (EAP) standard. A wireless network can include a wireless local area network (WLAN) or a network of some other size.
The IEEE 802.11 specification includes support for using a wireless link as a layer 2 bridge, whereby multiple clients can sit behind a single wireless station (STA) and participate in the same local area network (LAN). This is known (misleadingly) as a Wireless Distribution System (WDS). It requires both the WAP and the STA to support 4-address 802.11 headers. Some STA support 4-address 802.11 headers and are capable of operating in bridge mode, but some WAPs are not. A STA with multiple Ethernet ports will tend to lead to an expectation that more than one client can be connected to them, regardless of the WAP used.
The foregoing examples of the related art are intended to be illustrative and not exclusive. Other limitations of the related art will become apparent to those of skill in the art upon a reading of the specification and a study of the drawings.
The following embodiments and aspects thereof are described and illustrated in conjunction with systems, tools, and methods that are meant to be exemplary and illustrative, not limiting in scope. In various embodiments, one or more of the above-described problems have been reduced or eliminated, while other embodiments are directed to other improvements.
A technique for utilizing an intermediate access point (IAP) with a wireless access point (WAP) that uses 3-address mode involves making use of a bridge table that includes media access control (MAC) addresses of stations registered with the IAP and Internet protocol (IP) addresses of the stations stored in association with the corresponding MAC address. A bridging engine can obtain an IP address from a WAP IP packet and match the IP address to an IP address in the bridge table to find the corresponding MAC address. The bridging engine can encapsulate a 3-address mode compliant frame to create an IAP frame with the corresponding MAC address as the receiver address (RA).
The description in this paper describes this technique and examples of systems implementing this technique.
Examples of claimed subject matter are illustrated in the figures.
In the following description, several specific details are presented to provide a thorough understanding of examples of claimed subject matter. One skilled in the relevant art will recognize, however, that one or more of the specific details can be eliminated or combined with other components, etc. In other instances, well-known implementations or operations are not shown or described in detail to avoid obscuring aspects of claimed subject matter.
In the example of
In the example of
In the example of
In a specific implementation, the network switch 106 includes a network bridge that processes and routes data in the data link layer (layer 2) of the Open Systems Interconnection (OSI) model. For example, an Ethernet switch operates at the data link layer. However, the network switch 106 could be implemented as a multilayer switch that also processes data at the network layer (layer 3) and/or transport layer (layer 4). A network hub or repeater operates on the physical layer (layer 1) and typically receives data on a port of entry and broadcasts out on every port other than the port of entry. The network switch 106 would not typically be a passive network device such as a hub, which falls outside of the definition of “network switch” as used in this paper, but within the definition of a “networking device” as used in this paper.
The network switch 106 can be implemented in a converged device such as a gateway to access broadband services such as digital subscriber line (DSL) or cable internet. The converged device would typically include components that interface to the particular broadband technology, such as a protocol converter, and can include a telephone interface for voice over Internet Protocol (VoIP). The term “broadband” is a relative term. For example, broadband Internet access is typically contrasted with dial-up access using a 56 k modem. In a specific implementation, the term broadband can be used to mean at least equivalent to a DSL, which is about 70 Mbps. For example, 70 Mbps could include 6 Mbps of Internet access, 30 Mbps of broadcast video, and 35 Mbps of switched digital video (give or take). Ethernet provided over cable modem is a common alternative to DSL; and the term broadband should be interpreted to mean equivalent to that of 100BASE-T Ethernet, as well. In telecommunication, a very narrow band can carry Morse code, a narrow band will carry speech (voiceband), and a still broader band will carry real-time multimedia. Only the latter would normally be considered “broadband.” However, it may be noted that a voice line could be converted to a non-laded twisted-pair wire (no telephone filters) to become hundreds of kilohertz wide (broadband) and can carry several Mbps. Thus, the term broadband in this paper should include equivalents to ADSL, which, depending upon the implemented standard can be from 2 Mpbs to 27.5 Mbps. As another example, digital signal 3 (DS3) is a digital signal level 3 T-carrier, also referred to as a T3 line, with a data rate of 44.736 Mpbs, which would be considered in the “broadband” range. Currently, a sophisticated consumer expectation for broadband range for Internet access would be perhaps 44 Mbps or higher, or perhaps approximately 70-100 Mbps, but it should be understood that the definition of broadband could change over time to include different, presumably higher, Mbps than those just described, and different consumer expectations.
A networking device may or may not include both WAP and network switching functionality. That is, although the network switch 106 and the WAP 108 are illustrated as distinct components, the network switch 106 and the WAP 108 can be implemented as a single physical device, such as a gateway device.
In the example of
As is illustrated in the example of
For illustrative purposes, the WAP 108 can make use of a 3-address mode to communicate with stations. The name of the mode comes from the fact that three addresses are in the header of a frame sent in accordance with the 3-address mode. For example, the WAP 108 can use 3-address mode in communication with the optional WAP client STA 110 and the IAP 112. It may be noted that the WAP client STA 110 is optional because a WAP 108 may or may not be dedicated to communicating with IAPs, one of which is shown by way of example in
The WAP client STA 110, and other stations in this paper, may be defined as a device with a media access control (MAC) address and a physical layer (PHY) interface to a wireless medium that complies with the IEEE 802.11 standard. Thus, for example, the WAP 108 and the IAP 112 can be referred to as stations, if applicable. IEEE 802.11a-1999, IEEE 802.11b-1999, IEEE 802.11g-2003, IEEE 802.11-2007, and IEEE 802.11n TGn Draft 8.0 (2009) are incorporated by reference. As used in this paper, a system that is 802.11 standards-compatible or 802.11 standards-compliant complies with at least some of one or more of the incorporated documents' requirements and/or recommendations, or requirements and/or recommendations from earlier drafts of the documents, and includes Wi-Fi systems. In alternative embodiments, a station may comply with a different standard than IEEE 802.11, may be referred to as something other than a “station,” and may have different interfaces to a wireless or other medium.
When the WAP 108 sends a frame to the WAP client STA 110, the frame includes a receiver address (RA), which can include the MAC address of the WAP client STA 110. The frame includes a transmitter address (TA), which can include the MAC address of the WAP and/or the BSSID. (In at least one implementation, the MAC address of the WAP and the BSSID are the same.) The frame includes a source address (SA), which can include the MAC address of the device from which the frame was originally sent. Three-address mode is sufficient when a WAP 108 communicates exclusively with non-AP STA. However, in the example of
In the example of
In a specific implementation, the IAP 112 can be connected to a STA through the use of a wireless ‘dongle’ attached to a laptop computer, a wireless-capable television or media centre, or some other device. In another specific implementation, the IAP 112 could be a WAP configured to act as a non-WAP STA and connected to an Ethernet hub or switch, which is also connected to the STAs 114. Advantageously, whereas such a STA would not have enough information to create the Ethernet encapsulation necessary for forwarding data from upstream endpoints to the correct downstream endpoint, the IAP 112 enables such communication.
Thus, the IAP 112 can act as a “router” between one of the IAP client STAs 114 and another of the IAP client STAs 114. The IAP 112 can also communicate with the WAP 108 using, e.g., Wi-Fi or some other network standard to form a connection between a non-AP station and an AP station (from the perspective of the WAP 108). Since the IAP 112 is an AP, an additional engine is necessary to ensure proper state is maintained for communications between the IAP 112 and the WAP 108 where the WAP 108 treats the IAP 112 as a non-AP STA. In a specific implementation, the IAP client STAs 114 can be configured as IAPs, enabling the creation of a chain of wirelessly connected IAPs.
A wireless network can be implemented as a matrix mesh network. Matrix mesh elements are nodes within the wireless network. A mesh is not a “matrix mesh” unless at least one node has multiple antennas and is capable of multiple-input multiple-output (MIMO) functionality. Accordingly, at least one of the matrix mesh elements must have multiple antennas, or at least an antenna with multi-antenna functionality. The matrix mesh elements may or may not include data of their own, but a system can take advantage of matrix mesh element network characteristics in network architecture and/or protocols. In this way, the system can adapt to traffic and/or network demands by optimizing end-to-end transmissions from a client, through at least one of the matrix mesh elements, to a client. One implementation of a matrix mesh network is the VECTOR MESH™ network of Quantenna Communications, Inc. of Sunnyvale, Calif. The VECTOR MESH™ network includes VECTOR MESH™ elements or nodes, and a VECTOR MESH™ network architecture, neighbor discovery protocol, and routing protocol. The IAP 112 can be added to a wireless network including the WAP 108 to introduce matrix mesh functionality. Alternatively, the WAP 108 and the IAP 112 can both be implemented as MIMO devices.
An advantage of implementing a matrix mesh network is that APs trying to reach multiple stations, 3 out of 4 streams could get knocked out and the system would still work. Different streams can survive to get to different stations. It has been shown in a proof of concept that MIMO is more reliable outside than single-input single-output (SISO), and can survive seasonal changes to the environment, such as the elements and foliage growing into the wireless transmission path. In a successful test, poles were placed at between 120 and 170 feet, with intervening obstacles including a thick exterior wall and big trees blocking. The access point locations were approximately 5 feet above the ground, and were operated in the 5 GHz band. The average UDP data rate was 110-120 Mbps and the wireless link rate was 180-200 Mbps. Existing systems have much lower data rates than the proof of concept had.
In most implementations, it is desirable for the IAP 112 to send messages upstream (toward the WAP 108) or downstream (toward the IAP client STAs 114). Since there are multiple IAP client STAs 114, the IAP 112 must be able to differentiate between the IAP client STAs 114 for both upstream and downstream communications. Indeed, if the IAP 112 has multiple Ethernet ports or similar interfaces, there may be an expectation that more than one client can be connected to them, regardless of the capabilities of the WAP 108.
When the WAP 108 sends a frame to the IAP 112, the frame includes an RA, which can include the MAC address of the IAP 112. The frame includes a TA, which can include the MAC address of the WAP and/or the BSSID. The frame includes a SA, which can include the MAC address of the device from which the frame was originally sent. Notably, the RA is that of the IAP 112 rather than that of one of the IAP client STAs 114, even if the intended recipient of the frame is one of the IAP client STAs 114. There is not enough information in the header to route downstream packets to clients behind the IAP 112. In a specific implementation, the 3-address 802.11 header includes only source MAC, BSSID, and station MAC address, but not the MAC address of the destination STA. So the IAP 112 must be able to figure out the destination STA MAC address for a WAP 108 that does not support, e.g., bridging mode.
The IAP 112 includes a bridging engine that enables the IAP client STAs 114 to connect transparently to the IAP 112 when the WAP 108 does not support 4-address mode. Advantageously, this can be accomplished with no additional configuration required on either the WAP 108 or the IAP client STAs 114. The bridging engine can be implemented in, e.g., an 802.11 driver of the IAP 112, which can operate independently from the kernel bridge.
In the example of
A 3-address wireless frame suitable for 3-address mode bridging will include source MAC, BSSID, and station MAC for the IAP, but will not include the MAC address of the end STA. So the bridge table 202 must have data sufficient to enable identification of the end STA MAC address. This can be accomplished by maintaining an IP address in association with a MAC address of the STA. Thus, in a specific implementation that makes use of IP addresses and MAC addresses, the bridge table 202 includes at least a MAC address and an IP address for each client entry. (Other data may or may not also be stored in the bridge table 202, but such data is ignored for illustrative convenience.)
The bridge table 202 is a datastore. A datastore, as used in this paper, can be implemented, for example, as software embodied in a physical computer-readable medium on a general- or specific-purpose machine, in firmware, in hardware, in a combination thereof, or in an applicable known or convenient device or system. Datastores in this paper are intended to include any organization of data, including tables, comma-separated values (CSV) files, traditional databases (e.g., SQL), or other applicable known or convenient organizational formats. A likely implementation of datastores described in this paper would be in dynamic memory such as RAM, though it could be in persistent memory, and is likely to be created automatically by the system, rather than manually by a user. Reference to datastores as tables or databases is not intended to limit the datastore to any particular format. Datastore-associated components, such as database interfaces, can be considered “part of” a datastore, part of some other system component, or a combination thereof, though the physical location and other characteristics of datastore-associated components is not critical for an understanding of the techniques described in this paper.
Datastores can include data structures. As used in this paper, a data structure is associated with a particular way of storing and organizing data in a computer so that it can be used efficiently within a given context. Data structures are generally based on the ability of a computer to fetch and store data at any place in its memory, specified by an address, a bit string that can be itself stored in memory and manipulated by the program. Thus some data structures are based on computing the addresses of data items with arithmetic operations; while other data structures are based on storing addresses of data items within the structure itself. Many data structures use both principles, sometimes combined in non-trivial ways. The implementation of a data structure can entail writing a set of procedures that create and manipulate instances of that structure.
In the example of
In the example of
In the example of
In the example of
An antenna array is conceptually located at the periphery of the dashed box 220 between components of the bridge table building engine and messages received over a wireless medium. An antenna may or may not be located between the bridge table 202 and the table interface engine 204. Generally as used in this paper, an antenna array includes multiple antennas coupled to a common source or load to produce a directive radiation pattern. The spatial relationship can contribute to the directivity of the antennas. Multiple antennas can be configured as part of a multiple-input multiple-output (MIMO) system. It should be noted that multiple-input and single-output (MISO), single-input and multiple-output (SIMO), and single-input and single-output (SISO) are special cases of MIMO. MISO is when the receiver employs a single antenna. SIMO is when the transmitter employs a single antenna. SISO is when neither the transmitter nor the receiver are employing multiple antennas. As used in this paper, techniques may be applicable to any of these special cases, depending upon whether the techniques can be used with one Tx antenna and/or one Rx antenna. Thus, the acronym MIMO could be considered to include the special cases, if applicable. The techniques may also be applicable to multi-user MIMO (MU-MIMO), cooperative MIMO (CO-MIMO), MIMO routing, OFDM-MIMO, or other MIMO technologies. Due to the nature of the techniques described in this paper, a single antenna is as applicable as multiple antennas to employ many of the techniques; so occasionally the antenna array can refer to either or both of a single- or multiple-antenna antenna array and can be described as “an antenna.”
An antenna array is conceptually located at the periphery of the dashed box 230 between components of a bridging engine (comprising the frame receive engine 210, the client ID engine 212, the encapsulation engine 214, and the frame transmit engine 216) and messages received over a wireless medium. An antenna may or may not be located between the bridge table 202 and the client ID engine 212.
In the example of
The client ID engine 212 can use the IP address associated with the WAP IP frame to find a corresponding client entry in the bridge table 202. When there is a match, the client ID engine 212 provides the corresponding MAC address to the encapsulation engine 214.
The encapsulation engine 214 can use an IP address associated with the WAP IP frame received at the frame receive engine 210 to identify the STA to which the frame should be sent. In a specific implementation, the RA field of the WAP IP frame contains the IAP MAC address when the 3-address frame is received at the frame receive engine 210. The encapsulation engine 214 creates an IAP frame with the MAC address of the STA that is the intended recipient of the frame in the RA field. The IAP frame can include the IAP MAC address in the transmitter address (TA) field of the header, if desired. In alternative implementations, some other analogous identifier and/or field could be used to identify the STA as the recipient of the frame and/or the IAP as the transmitter of the frame.
The frame transmit engine 216 sends the IAP frame. The example of
In the example of
The computer 302 interfaces to external systems through the communications interface 310, which may include a radio interface, network interface, or modem. It will be appreciated that the communications interface 310 can be considered to be part of the computer system 300 or a part of the computer 302. The communications interface 310 can include a radio, an analog modem, ISDN modem, cable modem, token ring interface, satellite transmission interface (e.g. “direct PC”), or other interfaces for coupling a computer system to other computer systems.
The processor 308 may be, for example, a conventional microprocessor such as an Intel Pentium microprocessor or Motorola power PC microprocessor. The memory 312 is coupled to the processor 308 by a bus 320. The memory 312 can be Dynamic Random Access Memory (DRAM) and can also include Static RAM (SRAM). The bus 320 couples the processor 308 to the memory 312, also to the non-volatile storage 316, to the display controller 314, and to the I/O controller 318.
The I/O devices 304 can include a keyboard, disk drives, printers, a scanner, and other input and output devices, including a mouse or other pointing device. The display controller 314 may control in the conventional manner a display on the display device 306, which can be, for example, a cathode ray tube (CRT) or liquid crystal display (LCD). The display controller 314 and the I/O controller 318 can be implemented with conventional well known technology.
The non-volatile storage 316 is often a magnetic hard disk, an optical disk, or another form of storage for large amounts of data. Some of this data is often written, by a direct memory access process, into memory 312 during execution of software in the computer 302.
The computer system 300 is one example of many possible computer systems which have different architectures. For example, personal computers based on an Intel microprocessor often have multiple buses, one of which can be an I/O bus for the peripherals and one that directly connects the processor 308 and the memory 312 (often referred to as a memory bus). The buses are connected together through bridge components that perform any necessary translation due to differing bus protocols.
Network computers are another type of computer system that can be used in conjunction with the teachings provided herein. Network computers do not usually include a hard disk or other mass storage, and the executable programs are loaded from a network connection into the memory 312 for execution by the processor 308. A typical computer system will usually include at least a processor, memory, and a bus coupling the memory to the processor.
In addition, the computer system 300 can be controlled by operating system software which includes a file management system, such as a disk operating system, which is part of the operating system software. One example of operating system software with its associated file management system software is the family of operating systems known as Windows® from Microsoft Corporation of Redmond, Wash., and their associated file management systems. Another example of operating system software with its associated file management system software is the Linux operating system and its associated file management system. The file management system is typically stored in the non-volatile storage 316 and causes the processor 308 to execute the various acts required by the operating system to input and output data and to store data in memory, including storing files on the non-volatile storage 316.
An example of a system 300 that might function as a WAP includes an N×M antenna array, a system in package (SiP), and a power source. As used in this paper, a SiP is a number of integrated circuits enclosed in a single package that performs most of the functions of an electronic system, in this specific example a MIMO station. SiP dies containing integrated circuits can be stacked vertically on a substrate and connected by wires. Slightly less dense multi-chip modules can also be used, which place dies on the same plane; and three-dimensional integrated circuits having stacked silicon dies with conductors running through the die can be used. The N×M antenna array can include one or more antennas. (It may be noted that an array of one antenna is normally not referred to as an “array,” but the distinction is not critical to an understanding of the example.) Where there are multiple antennas in the array, the antennae can be coupled to a common source or load to produce a directive radiation pattern. The spatial relationship can contribute to the directivity of the antennae. The SiP likely includes an RF front end, a (for example) GbE switch, a digital MIMO processing block, and a power input block. A current implementation provides 0.3 Gbps per unit.
Some portions of the detailed description may be presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Systems described in this paper may be implemented on any of many possible hardware, firmware, and software systems. Typically, systems such as those described in this paper are implemented in hardware on a silicon chip. Algorithms described in this paper are implemented in hardware, such as by way of example but not limitation RTL code. However, other implementations may be possible. The specific implementation is not critical to an understanding of the techniques and the claimed subject matter.
In the example of
In the example of
In the example of
In the example of
In the example of
In the example of
It is possible to chain multiple IAPs together where a first IAP that is upstream relative to a second IAP modifies the RA field from its own MAC address to that of the second IAP, and the second IAP modifies the RA field from its own MAC address to that of the STA for which the frame is intended (or to the next IAP in the chain). Alternatively, the first IAP could convert the WAP IP packet to a 4-address format that includes an RA (the second IAP) and a DA (the destination MAC address). The second IAP would still modify the TA and the RA, but the SA and the DA could be unchanged to the end of the chain.
In the example of
In the example of
In the example of
The WAP 608 is configured for 3-address mode communications. In a specific implementation, the term “3-address mode” refers to an 802.11 wireless network in which frames are sent using MAC frame headers containing three MAC addresses. By implication, either the From DS or the To DS subfield may be set to ‘1’ in each frame, but not both. Conversely “4-address mode” refers to an 802.11 wireless network in which frames are sent using MAC frame headers containing four MAC addresses. Setting both the From DS and To DS subfields to ‘1’ indicates that the frame is using the four-address format. See IEEE 802.11-2007, section 7.1.3.1.3.
The WEP 612 is coupled to the WAP 608 via a 3-address mode wireless link 616. Although not shown in the example of
The EPs 614 are coupled to the WEP 612 through a wired connection. It may be noted that “N” EPs 614 are depicted in the example of
As used in this paper, the term “embodiment” means an embodiment that serves to illustrate by way of example and not necessarily by limitation.
The present application claims priority to U.S. Provisional Patent App. No. 61/376,500, filed on Aug. 24, 2010, which is incorporated by reference.
Number | Date | Country | |
---|---|---|---|
61376500 | Aug 2010 | US |