Wireless communications have become increasingly prominent for sending and receiving information. For example, individuals may utilize a wireless communication device for voice communications, research, entertainment, or for conducting critical business transactions. As wireless communications have increased, so have the number of wireless access modes used to support these communications. For example, many modern wireless communication devices are capable of communicating over both third generation (3G) and fourth generation (4G) wireless networks, often referred to as “dual-mode” devices. In addition, a wireless communication device may also communicate using other wireless protocols, such as Wi-Fi or Bluetooth.
In order to utilize a wireless communication device, a user typically operates the device to register with a communication network operated by a wireless communication service provider. Upon successful registration, a communication session is established in a particular wireless protocol. During the communication session, the user may send and receive data via the access network of the communication service provider. However, if a dual-mode wireless communication device transitions between access media, a new communication session is typically established. For example, when a wireless communication device transitions to a different access mode by switching from a 3G network to a 4G network, the 3G communication session would typically be torn down and a new communication session for the 4G network would be established.
Overview
A method of operating a communication system comprises, in a wireless communication device, acquiring a packet address from a communication network, wherein the communication network assigns the packet address to the wireless communication device, and transmitting the packet address, a device identifier, and a location of the wireless communication device for delivery to a database in the communication network. The method further comprises, in a packet router, receiving a data packet with a destination address of the packet address assigned to the wireless communication device, querying the database with the packet address to determine the device identifier and the location of the wireless communication device, processing the location to select a plurality of output ports of the packet router, and broadcasting the data packet over the plurality of output ports.
A communication system comprises a wireless communication device and packet router. The wireless communication device is configured to acquire a packet address from a communication network, wherein the communication network assigns the packet address to the wireless communication device, and transmit the packet address, a device identifier, and a location of the wireless communication device for delivery to a database in the communication network. The packet router is configured to receive a data packet with a destination address of the packet address assigned to the wireless communication device, query the database with the packet address to determine the device identifier and the location of the wireless communication device, process the location to select a plurality of output ports of the packet router, and broadcast the data packet over the plurality of output ports.
A method of operating a communication system comprises, in a wireless communication device, transmitting a packet address, a media access control address, and a location of the wireless communication device for delivery to a database in a communication network. The method further comprises, in a packet router, receiving a data packet with a destination address of the packet address assigned to the wireless communication device, querying the database with the packet address to determine the media access control address and the location of the wireless communication device, processing the location to select a plurality of output ports of the packet router, wherein each output port of the plurality of output ports communicates using a different wireless protocol of a plurality of wireless protocols, and broadcasting the data packet over the plurality of output ports. The method further comprises, in the wireless communication device, identifying the media access control address in the data packet, and receiving the data packet based on the media access control address.
The following description and associated drawings teach the best mode of the invention. For the purpose of teaching inventive principles, some conventional aspects of the best mode may be simplified or omitted. The following claims specify the scope of the invention. Some aspects of the best mode may not fall within the scope of the invention as specified by the claims. Thus, those skilled in the art will appreciate variations from the best mode that fall within the scope of the invention. Those skilled in the art will appreciate that the features described below can be combined in various ways to form multiple variations of the invention. As a result, the invention is not limited to the specific examples described below, but only by the claims and their equivalents.
In
Wireless communication device 101 transmits the packet address, a device identifier, and a location of wireless communication device 101 for delivery to database 140 in communication network 120 (202). The device identifier could comprise any identifier associated with wireless communication device 101 and/or its user. For example, the device identifier could comprise a Media Access Control (MAC) address, Mobile Station International Subscriber Directory Number (MSISDN) or some other telephone number, Electronic Serial Number (ESN), Mobile Station Identifier (MSID), Mobile Equipment Identifier (MEID), International Mobile Equipment Identity (IMEI), International Mobile Subscriber Identity (IMSI), Media Access Control Identifier (MACID), User Identifier (UID), or some other identifier that uniquely identifies wireless communication device 101 and/or a user of device 101—including combinations thereof. The location of wireless communication device 101 could comprise any level of specificity, from precise coordinates to a larger geographic area. For example, the location of wireless communication device 101 could be identified by global positioning system (GPS) coordinates or other GPS data, latitude/longitude, a sector of wireless access node 110 serving device 101, or any other technique that determines a location of wireless communication device 101. In some examples, the location is identified by a GPS range.
Once database 140 has been populated with the packet address, device identifier, and location of wireless communication device 101, packet router 130 receives a data packet with a destination address of the packet address assigned to wireless communication device 101 (203). The data packet received by packet router 130 could comprise any datagram or other message intended for delivery to wireless communication device 101. Responsive to receiving the data packet, packet router 130 queries database 140 with the packet address to determine the device identifier and the location of wireless communication device 101 (204). Since database 140 relates the packet address to the device identifier and the location of wireless communication device 101 as provided by device 101 in operation 202, packet router 130 receives the device identifier and the location of wireless communication device 101 in response to the query.
Packet router 130 processes the location of wireless communication device 101 to select a plurality of output ports of the packet router 130 (205). Thus, packet router 130 typically selects the output ports based on the location of wireless communication device 101. In some examples, each output port of the plurality of output ports on packet router 130 communicates using a different wireless protocol of a plurality of wireless protocols. In this case, packet router 130 could select output ports associated with the wireless protocols that have coverage in the location of wireless communication device 101. In other examples, packet router 130 may select the output ports based on wireless protocols of which wireless communication device 101 is capable of communicating. For example, packet router 130 could process the device identifier of wireless communication device 101 to determine the wireless capabilities of device 101, and select output ports that are associated with the wireless capabilities of wireless communication device 101.
Packet router 130 typically serves an area including the location of wireless communication device 101, so that the output ports selected by packet router 130 are within range of device 101. However, in some examples, wireless communication device 101 may be traveling away from the location at some velocity. In this case, packet router 130 could determine the velocity of wireless communication device 101 based on a series of location updates associated with device 101 and timestamps corresponding to the location updates. Packet router 130 could then process the location to select the output ports of packet router 130 by determining if the velocity of wireless communication device 101 exceeds a threshold. For example, if the velocity of wireless communication device 101 exceeds ten miles per hour, packet router 130 would typically select a larger number of output ports to increase the likelihood that wireless communication device 101 will receive the packet.
Once the output ports have been selected, packet router 130 broadcasts the data packet over the plurality of output ports (206). Packet router 130 typically broadcasts the data packet by wirelessly propagating the data packet over the plurality of output ports. In some examples, the data packet is broadcast over the plurality of output ports in a plurality of wireless protocols. In examples that consider the velocity of wireless communication device 101, packet router 130 could broadcast the data packet using the plurality of output ports of the packet router if the packet router serves an area including the location and if the velocity of the wireless communication device exceeds the threshold.
Advantageously, packet router 130 processes the location of wireless communication device 101 to select a plurality of output ports on which to broadcast a data packet to wireless communication device 101. In this manner, wireless communication device 101 may monitor for data packets that are broadcast by packet router 130. For example, wireless communication device 101 could identify its MAC address in the data packet, and receive the data packet based on the MAC address. Since packet router 130 may broadcast data packets intended for wireless communication device 101 in a plurality of different wireless protocols, communication sessions between device 101 and communication network 120 may be maintained, even while transitioning across different access media that support the different wireless protocols.
Referring back to
Wireless access node 110 comprises RF communication circuitry and an antenna. The RF communication circuitry typically includes an amplifier, filter, RF modulator, and signal processing circuitry. Wireless access node 110 may also comprise a router, server, memory device, software, processing circuitry, cabling, power supply, network communication interface, structural support, or some other communication apparatus. Wireless access node 110 could comprise a base station, Internet access node, telephony service node, wireless data access point, or some other wireless communication system—including combinations thereof. Some examples of wireless access node 110 include a base transceiver station (BTS), base station controller (BSC), radio base station (RBS), Node B, enhanced Node B (eNode B), and others. Wireless network protocols that may be utilized by wireless access node 110 include CDMA, GSM, UMTS, HSPA, EV-DO, EV-DO rev. A, 3GPP LTE, WiMAX, Wi-Fi, Bluetooth, Internet, telephony, or some other communication format—including combinations thereof.
Communication network 120 comprises the core network of a wireless communication provider, and could include routers, gateways, telecommunication switches, servers, processing systems, or other communication equipment and systems for providing communication and data services. Communication network 120 could comprise wireless communication nodes, telephony switches, Internet routers, network gateways, computer systems, communication links, or some other type of communication equipment—including combinations thereof. Communication network 120 may also comprise optical networks, asynchronous transfer mode (ATM) networks, packet networks, radio access networks (RAN), local area networks (LAN), metropolitan area networks (MAN), wide area networks (WAN), or other network topologies, equipment, or systems—including combinations thereof. Communication network 120 may be configured to communicate over metallic, wireless, or optical links. Communication network 120 may be configured to use time-division multiplexing (TDM), Internet Protocol (IP), Ethernet, optical networking, wireless protocols, communication signaling, or some other communication format—including combinations thereof. In some examples, communication network 120 includes further access nodes and associated equipment for providing communication services to many wireless communication devices across a large geographic region.
Packet router 130 comprises a processing system and communication transceiver. Packet router 130 may also include other components such as a router, server, data storage system, and power supply. Packet router 130 may reside in a single device or may be distributed across multiple devices. Packet router 130 may be a discrete system or may be integrated within other systems—including other systems within communication system 100. In some examples, packet router 130 could comprise a mobile switching center, router, switching system, packet gateway, network gateway system, Internet access node, application server, service node, firewall, or some other communication system—including combinations thereof.
Database 140 comprises a processing system and communication transceiver. Database 140 may also include other components such as a router, server, data storage system, and power supply. Database 140 may reside in a single device or may be distributed across multiple devices. Database 140 may be a discrete system or may be integrated within other systems—including other systems within communication system 100. In some examples, database 140 could comprise a network database system, network-attached storage, storage area network, home location register, visitor location register, packet gateway, mobile switching center, network gateway system, Internet access node, application server, service node, firewall, or some other communication system—including combinations thereof.
Wireless communication link 111 uses the air or space as the transport medium. Wireless communication link 111 may use various protocols, such as CDMA, GSM, UMTS, HSPA, EV-DO, EV-DO rev. A, 3GPP LTE, WiMAX, Wi-Fi, Bluetooth, Internet, telephony, or some other communication format—including combinations thereof. Wireless communication link 111 may comprise many different signals sharing the same link. For example, wireless communication link 111 could include multiple signals operating in a single propagation path comprising multiple communication sessions, frequencies, timeslots, transportation ports, logical transportation links, network sockets, IP sockets, packets, or communication directions—including combinations thereof.
Communication links 121, 131, and 141 use metal, air, space, optical fiber such as glass or plastic, or some other material as the transport media—including combinations thereof. Communication links 121, 131, and 141 could use various communication protocols, such as TDM, IP, Ethernet, telephony, optical networking, hybrid fiber coax (HFC), communication signaling, wireless protocols, or some other communication format—including combinations thereof. Communication links 121, 131, and 141 may be direct links or could include intermediate networks, systems, or devices.
The table shown in router port database 350 comprises two columns labeled GPS and ROUTER PORTS. Thus, in this example, the table in router port database 350 maps GPS ranges to router ports of packet router 330. The GPS field shown in router port database 350 typically corresponds to the GPS field in wireless device information database 340, so that a GPS range received by querying wireless device information database 340 can be used to query router port database 350 to determine the appropriate router ports of packet router 330 on which to broadcast a packet. Note that GPS ranges 2, 3, and 4 are associated with multiple ports of packet router 330: B+C, A+C, and A+B+C, respectively. It should be understood that although the tables shown in databases 340 and 350 on
After the database 340 has been updated with the information from wireless communication device 301, packet router 330 receives a data packet with a destination address corresponding to the IP address of device 301. Packet router 330 therefore queries wireless device information database 340 with the destination IP address of the received packet to determine the MAC address and GPS range associated with this IP address. Wireless device information database 340 responds to the query with the MAC address and GPS range that are stored therein for wireless communication device 301 based on the IP address in the query. Once packet router 330 receives the MAC address and GPS range for wireless communication device 301, packet router 330 queries router port database 350 with the GPS range received from wireless device information database 340. As discussed above, the GPS range in this case is “RANGE 3”, so when packet router 330 queries router port database 350 with this GPS range, router port database 350 returns router ports A and C to packet router 330, as shown in the table of router port database 350 in
Once packet router 330 receives a response from router port database 350 indicating that router ports A and C correspond to the GPS “RANGE 3”, packet router 330 broadcasts the data packet over both ports A and C with the MAC address for wireless communication device 301. The MAC address for device 301 was previously received by packet router 330 in response to the query to wireless device information database 340. Packet router 330 broadcasts the data packet with the MAC address for wireless communication device 301 to enable device 301 to detect the packets intended for it based on its MAC address. Thus, wireless communication device 301 is configured to listen for data packets having this MAC address on all wireless networks that are in communication with device 301. In this example, router port A communicates over a third generation (3G) CDMA wireless network, while router port C communicates over a fourth generation (4G) WiMAX wireless network, and wireless communication device 301 is a dual-mode 3G/4G device. Thus, wireless communication device 301 is configured to identify data packets having its MAC address on both the 3G CDMA network and the 4G WiMAX network in this example. Note that although wireless communication device is only shown in
Although packet router 330 broadcasts the data packet simultaneously over both ports A and C, wireless communication device 301 first receives the data packet over the 4G WiMAX wireless network via port C of packet router 330. Subsequently, wireless communication device 301 receives the same packet from packet router 330 over the 3G CDMA wireless network via port A. In this example, wireless communication device 301 is configured to determine whether any data packets received have already been received over a different access medium. Therefore, wireless communication device 301 processes the two packets and determines that the packet received over the 3G CDMA wireless network was already received by device 301 over the 4G WiMAX network. Thus, wireless communication device 301 discards the duplicate packet and presents only one copy of the packet to the network layer (layer 3) interface of device 301. In this manner, wireless communication device 301 may receive packets over a plurality of wireless access media as device 301 transitions between them. The received packets are processed to ensure that any duplicate packets are discarded, and the packets are then transparently presented to the layer 3 network layer of device 301, so that the layer 3 interface of device 301 is unaware over which wireless network or networks the packets were received.
In some examples, packet router 330 could be configured to broadcast data packets over multiple router ports only when the packet is in the proximity of its target destination. This proximity determination could be based on comparing the location of wireless communication device 301 to threshold values. For example, if wireless communication device 301 is currently located in a geographic area served by a different router than packet router 330, packet router 330 would simply forward packets to the router that is currently serving device 301 based on the GPS range or other location information in the wireless device information database 340. When the router that is serving the area in which wireless communication device 301 is located receives the packets from packet router 330, that router could query wireless device information database 340 to determine that the location of device 301 is within a proximity threshold, and would therefore broadcast the packets over the ports indicated in its router port database. Effectively, as packets near their destination, a packet router that is closer to the target device will tend to broadcast the packets over a greater number of ports than a router that is farther away from the destination.
Communication transceiver 601 comprises components that communicate over communication links, such as network cards, ports, RF transceivers, processing circuitry and software, or some other communication components. Communication transceiver 601 may be configured to communicate over metallic, wireless, or optical links. Communication transceiver 601 may be configured to use TDM, IP, Ethernet, optical networking, wireless protocols, communication signaling, or some other communication format—including combinations thereof. In some examples, communication transceiver 601 could be configured to receive a data packet with a destination address of a packet address assigned to a wireless communication device, and broadcast a data packet over a plurality of output ports.
Processing circuitry 605 comprises microprocessor and other circuitry that retrieves and executes operating software 607 from memory device 606. Memory device 606 comprises a disk drive, flash drive, data storage circuitry, or some other memory apparatus. Operating software 607 comprises computer programs, firmware, or some other form of machine-readable processing instructions. Operating software 607 may include an operating system, utilities, drivers, network interfaces, applications, or some other type of software.
When executed by circuitry 605, operating software 607 directs processing system 603 to operate as described herein for packet router 130. In particular, operating software 607 may direct processing system 603 to direct communication transceiver 601 to receive a data packet with a destination address of a packet address assigned to a wireless communication device. In addition, operating software 607 directs processing system 603 to query a database with the packet address to determine a device identifier and a location of the wireless communication device, and process the location to select a plurality of output ports of packet router 600. Further, operating software 607 may direct processing system 603 to direct communication transceiver 601 to broadcast the data packet over the plurality of output ports.
In some examples, operating software 607 could comprise a packet receiver software module that receives a data packet with a destination address of a packet address assigned to a wireless communication device. Additionally, operating software 607 could comprise a port selection software module that queries a database with the packet address to determine a device identifier and a location of the wireless communication device, and process the location to select a plurality of output ports of packet router 600. Further, operating software 607 could comprise a packet broadcast software module that broadcasts a data packet over the plurality of output ports.
Wireless communication transceiver 701 comprises RF communication circuitry and an antenna. The RF communication circuitry typically includes an amplifier, filter, RF modulator, and signal processing circuitry. Wireless communication transceiver 701 may also include a memory device, software, processing circuitry, or some other communication device. Wireless communication transceiver 701 may use various protocols, such as CDMA, GSM, UMTS, HSPA, EV-DO, EV-DO rev. A, 3GPP LTE, WiMAX, Wi-Fi, Bluetooth, Internet, telephony, or some other wireless communication format. Wireless communication transceiver 701 could be configured to acquire a packet address from a communication network, wherein the communication network assigns the packet address to the wireless communication device 700, and transmit the packet address, a device identifier, and a location of the wireless communication device 700 for delivery to a database in the communication network.
User interface 703 comprises components that interact with a user to receive user inputs and to present media and/or information. User interface 703 may include a speaker, microphone, buttons, lights, display screen, touch screen, touch pad, scroll wheel, communication port, or some other user input/output apparatus—including combinations thereof. User interface 703 may be omitted in some examples.
Processing circuitry 704 comprises microprocessor and other circuitry that retrieves and executes operating software 706 from memory device 705. Memory device 705 comprises a disk drive, flash drive, data storage circuitry, or some other memory apparatus. Processing circuitry 704 is typically mounted on a circuit board that may also hold memory device 705 and portions of communication transceiver 701 and user interface 703. Operating software 706 comprises computer programs, firmware, or some other form of machine-readable processing instructions. Operating software 706 may include an operating system, utilities, drivers, network interfaces, applications, or some other type of software. When executed by processing circuitry 704, operating software 706 directs processing system 702 to operate wireless communication device 700 as described herein for wireless communication devices 101 and 301. In particular, operating software 706 directs processing system 702 to direct wireless communication transceiver 701 to acquire a packet address from a communication network, wherein the communication network assigns the packet address to the wireless communication device 700, and transmit the packet address, a device identifier, and a location of the wireless communication device 700 for delivery to a database in the communication network. In some examples, operating software 706 could comprise a database update software module that transmits a packet address, a device identifier, and a location of the wireless communication device 700 for delivery to a database in a communication network. Further, in some examples, operating software 706 could direct processing system 702 identify a media access control address in a data packet, and direct wireless communication transceiver 701 to receive the data packet based on the media access control address.
The above description and associated figures teach the best mode of the invention. The following claims specify the scope of the invention. Note that some aspects of the best mode may not fall within the scope of the invention as specified by the claims. Those skilled in the art will appreciate that the features described above can be combined in various ways to form multiple variations of the invention. As a result, the invention is not limited to the specific embodiments described above, but only by the following claims and their equivalents.
Number | Name | Date | Kind |
---|---|---|---|
5894478 | Barzegar et al. | Apr 1999 | A |
5920699 | Bare | Jul 1999 | A |
6023563 | Shani | Feb 2000 | A |
6850531 | Rao et al. | Feb 2005 | B1 |
6865160 | Bare | Mar 2005 | B1 |
6990086 | Holur et al. | Jan 2006 | B1 |
7623505 | Holur et al. | Nov 2009 | B1 |
20020013858 | Anderson | Jan 2002 | A1 |
20030217150 | Roese et al. | Nov 2003 | A1 |
20040082311 | Shiu et al. | Apr 2004 | A1 |
20040170181 | Bogdon et al. | Sep 2004 | A1 |
20040264402 | Whitmore et al. | Dec 2004 | A9 |
20060023676 | Whitmore et al. | Feb 2006 | A1 |
20080165780 | Aldaz et al. | Jul 2008 | A1 |
20080228045 | Gao et al. | Sep 2008 | A1 |
20100057346 | Ehrlacher | Mar 2010 | A1 |