The present invention relates generally to Internet access. More particularly, the present invention provides means for sharing an IP address assigned to a first network device by a second network device such that packets originating from the second network device appear to be originating from the first network device.
The Internet has had a profound impact on the way society communicates. Today, the Internet is used for personal communications, for business communications, for shopping, for entertainment, for news, and more. One of the more recent—and evolving—applications is the use of the Internet for voice communications.
The Internet uses “virtual” circuits that use packets and protocols to establish and maintain communications between points on the network. Each “point” on the Internet has a unique IP address. In theory, a packet from one address is sent to another address. In practice, however, not every device on the Internet can have an address.
The problem, while not solved, has been mitigated by the designation of a group of IP addresses as private addresses. These addresses may be used by anyone and are not assignable. More importantly, these addresses are not recognized by Internet protocols. Anyone is free to use these private addresses on their internal networks. The primary restrictions are that packets with these private addresses in their source or destination fields must be filtered from the Internet, and that routing information for networks with these private addresses must not be promulgated to the Internet. Because a private IP address may be shared among any number of devices, allowing private addresses on to the Internet could result in traffic going to the wrong destination and in corruption of routing tables.
For private addresses to be reusable, they must be reliably hidden from the Internet. Routing ports that connect to the Internet are expected to drop any packets with private network addresses, and routers that connect to the Internet are expected to refrain from sending route updates for private networks. These tasks are performed by a device using network address translation (NAT) or NAT with port translation (NAPT). One side of the NAT component interfaces with the Internet using a global (or public) address. The other side of the NAT component interfaces with an internal network using local (private) addresses. A global address is mapped to a private address by the NAT device. NAPT adds port translation. When a device inside the local network wants to communicate with a device on the Internet, the NAPT substitutes its own global source IP address and a new port number for the local address and port number of the private network device. For NAPT, the NAT router must keep track of how the internal private addresses map to particular ports on the outward-facing IP address. Of course, at any given time, a particular node may have multiple ports active, which requires the router to keep track of all these connections.
A consumer typically will obtain a single IP address with an Internet service provider (ISP). Some ISPs structure their product offerings such that only a single MAC address and IP address may be used on their service. The Internet access device (e.g. a DSL modem or a cable modem) merely bridges the communications between the Internet access device and a single computer. An ISP will receive and process packets generated by this computer. Packets from other network devices will be discarded. In this environment, a consumer must either restrict access to a single computer or invest in purchasing additional equipment (e.g., a router that supports NAT). However, while NAT devices may be appropriate for many businesses, not every consumer wants to become a network engineer simply to have access to VoIP services or other services requiring a network device.
What would useful would be means for sharing an IP address assigned to a first network device by a second network device such that packets originating from the second network device appear to be originating from the first network device.
An embodiment of the present invention provides means for sharing an IP address assigned to a first network device by a second network device such that packets originating from the second network device appear to be originating from the first network device. In another embodiment of the present invention, the first network device is a general computer (herein, simply a “computer”) and the second network device is a VoIP subscriber gateway.
It is therefore an aspect of the present invention to present an ISP a single MAC and IP address in a system comprising two network devices connected in series.
It is another aspect of the present invention that packets can be sent from two network devices wherein the packets appear to be originating from a single device with a single IP and MAC address.
It is still another aspect of the present invention to permit a subscriber to VoIP services using a VoIP subscriber gateway to connect to the Internet through an ISP that enforces a single MAC and IP address without the need for a NAT-equipped router.
It is yet another aspect of the present invention to permit a network device to be interposed between a user's computer and an Internet access device such that the network device appears invisible to the ISP while placing minimal restrictions on the use of the computer.
These and other aspects of the present invention will become apparent from a review of the general and detailed descriptions that follow.
An embodiment of the present invention is a method whereby packets from a network device in series between a user's computer and an Internet access device appear to be originating from the computer. In this embodiment, the network device monitors interactions between the computer and the ISP. The network devices gain information about the computer's network services configuration. Using this information the network device injects additional network traffic that, while invisible to the computer, appears to the ISP to be coming from the computer. The network device accomplishes this task by sending messages (comprising packets) from one or more specified ports using the IP address of the computer. The specified ports are not used by the computer. In this case, the network device is effectively masquerading as the computer.
Responses directed to the specified ports are addressed to the computer but intended for the network device. The network device captures these packets and processes them for its own purposes.
The restrictions placed on the computer with this technique are minimal. Specifically, the computer must not use the specified ports used by the network device. To enforce this restriction, any attempt to use these ports by the computer will be blocked by the network device. Blocking inhibits any possible communication confusion arising between communications intended for the network device and communications intended for the computer.
In an embodiment of the present invention, a method of sharing an IP address between a first and second network device comprises assigning an IP address to the first network device and reserving one or more port numbers for use solely by the second network device. The second network device is connected serially between the first network device and an Internet access device. The second network device creates packets using the IP address and one of the one or more reserved port numbers and sends the packets over the Internet via an Internet access device. In another embodiment of the present invention, the first network device is a computer, the second network device is a VoIP subscriber gateway, and the Internet access device is a DSL modem, a cable modem, a wireless modem or a dial-up modem. According to an embodiment of the present invention, the computer may be a desktop computer, a laptop computer, or a personal digital assistant.
In yet another embodiment of the present invention, the method further comprises creating a first device packet at the first network device. The first device packet is sent to the second network device. The second network device determines whether the first device packet uses the reserved port number. If the first device packet uses a port number other than the reserved port number, the first device packet is sent to the Internet access device. If the first device packet uses the reserved port number, the packet is discarded.
In another embodiment of the present invention, the method further comprises receiving at the second network device incoming packets from the Internet access device. A determination is made whether the incoming packet is directed to the reserved port. If the incoming packet is directed to the reserved port, the incoming packet is processed by the second network device. If the incoming packet is directed to a port other than the reserved port, the incoming packet is sent to the first network device.
In yet another embodiment of the present invention, a system for sharing an IP address comprises a first network device having an assigned IP address. The first network device is adapted to reserve one or more port numbers for use solely by a second network device. A second network device is connected serially between the first network device and an Internet access device. The second network device is adapted to create packets using the IP address of the first network device and one of the one or more reserved port numbers and to send the packets to the Internet access device. In an alternate embodiment, the first network device is a computer and the second network device is a VoIP subscriber gateway. In yet another embodiment of the present invention, the Internet access device is a DSL modem, a cable modem, a wireless modem or a dial-up modem. According to an embodiment of the present invention, the computer may be a desktop computer, a laptop computer, or a personal digital assistant.
In yet another embodiment of the present invention, the first network device creates a first device packet and sends it to the second network device. The second network device determines whether the first device packet uses the reserved port number. If the first device packet uses a port number other than the reserved port number, the first device packet is sent to the Internet access device. If the first device packet uses the reserved port number, the packet is discarded.
In another embodiment of the present invention, the second network device receives incoming packets from the Internet access device. A determination is made whether the incoming packet is directed to the reserved port. If the incoming packet is directed to the reserved port, the incoming packet is processed by the second network device. If the incoming packet is directed to a port other than the reserved port, the incoming packet is sent to the first network device.
A non-transitory computer-readable storage medium with an executable program stored thereon, wherein the program instructs a microprocessor of a Voice over Internet Protocol (VoIP) subscriber gateway, when executed, comprising:
logic to select a port number and to block data packets using the selected port number from being sent to an Internet Access device coupled to the VoIP subscriber gateway from a computing device coupled to the VoIP subscriber gateway;
logic to determine an external IP address assigned to the computing device by an Internet Service Provider (ISP);
logic to receive voice data input from a telephone device coupled to the VoIP subscriber gateway;
logic to create VoIP data packets related to the voice data input using the external IP address assigned to the computing device as a source IP address of the VoIP data packets and using the selected port number as a source of the VoIP data packets;
logic to send at least one VoIP data packet over the Internet to a VoIP service provider gateway via the Internet access device and the ISP;
logic to receive at least one computer data packet from the computing device, wherein the at least one computer data packet uses the external IP address assigned to the computing device by the ISP as a source IP address; and
logic to send the at least one computer data packet received from the computing device over the Internet via the Internet access device when the at least one computer data packet does not use the selected port number as a source port number of the computer data packet.
An embodiment of the present invention provides a method whereby packets from a network device in series between a user's computer and an Internet access device appear to be originating from the computer.
In an embodiment of the present invention, a method of sharing an IP address between a first and second network device comprises assigning an IP address to the first network device and reserving one or more port numbers for use solely by the second network device. The second network device is connected serially between the first network device and an Internet access device. The serial connection between the first and second network devices and the connection between the second network device and an Internet access device may be made by means known in the art. By way of illustration and not as a limitation, these connections may be accomplished via a wired or a wireless path.
The second network device creates packets using the IP address and one of the one or more reserved port numbers and sends the packets to the Internet access device. In another embodiment of the present invention, the first network device is a computer and the second network device is a VoIP subscriber gateway. In still another embodiment of the present invention, the Internet access device may be a dial-up modem, a wireless modem, a DSL modem, or a cable modem.
In yet another embodiment of the present invention, a system for sharing an IP address comprises a first network device having an assigned IP address. The first network device is adapted to reserve one or more port numbers for use solely by a second network device. A second network device is connected serially between the first network device and an Internet access device. The second network device is adapted to create packets using the IP address of the first network device and one of the one or more reserved port numbers and to send the packets to the Internet access device. In an alternate embodiment, the first network device is a computer and the second network device is a VoIP subscriber gateway. By way of illustration and not as a limitation, a computer may be a laptop computer, a personal digital assistant, or any other computing device that may be connected to a network.
Referring to
Generally, when a computer wants to “talk” to another computer on the Internet it starts a session with that other computer. For a computer to be contacted to create such a session, it must “listen” for the attempt to start a session. The listening is done via port-numbers. The calling computer also needs a port number so that it can receive responses. This port number comes from a range that is allocated for starting sessions and is unique for the life of that session. If more than one session is open, each session has it own unique port number. The session is defined by its two endpoints each defined by an IP address and a port number.
Referring again to
A network device detects the computer IP address 400 assigned to the computer by an Internet access device. The Internet access device receives the IP address from the ISP used by the computer to access the Internet. The network device reserves port numbers for its own use 405. The network device then creates a message using the computer IP address and one of the reserved port numbers 410. These values are placed in the TCP/IP headers and passed to the Internet access device 415.
The Internet access device receives messages from the Internet via the ISP and passes these to the network device 420. The network device evaluates the header information in each message to determine if the message is directed to one of the reserved ports 425. If the message is not directed to one of the reserved ports, the message is passed to the computer 430. If the message is directed to one of the reserved ports, the network device processes the message 435.
In order to prevent confusion as to the proper recipient of a message, any attempt by the computer to send a message from one of the reserved ports will be blocked by the network device.
In this embodiment, VoIP subscriber gateway 510 receives voice signals from telephone 520 and processes these signals for communication over the Internet. In this embodiment, call set-up and routing are performed via a VoIP service provider gateway 530. Packets that are generated by VoIP subscriber gateway 510 are directed to VoIP service provider gateway 530 using the method described in the discussion relating to
By way of example and not as a limitation, the VoIP subscriber gateway is a MG-2 Internet Talker manufactured by i2 Telecom International, Inc.
A method whereby packets from a network device in series between a user's computer and an Internet access device appear to be originating from the computer has been disclosed. It will also be understood that the invention may be embodied in other specific forms without departing from the scope of the invention disclosed and that the examples and embodiments described herein are in all respects illustrative and not restrictive. Those skilled in the art of the present invention will recognize that other embodiments using the concepts described herein are also possible. Further, any reference to claim elements in the singular, for example, using the articles “a,” “an,” or “the” is not to be construed as limiting the element to the singular.
This application claims priority under 35 U.S.C. §119(e) from provisional application No. 60/601,916 filed Aug. 16, 2004. The 60/601,916 provisional application is incorporated by reference herein, in its entirety, for all purposes.
Number | Name | Date | Kind |
---|---|---|---|
5402481 | Waldman | Mar 1995 | A |
5809128 | McMullin | Sep 1998 | A |
5835727 | Wong et al. | Nov 1998 | A |
5987103 | Martino | Nov 1999 | A |
6014440 | Melkild et al. | Jan 2000 | A |
6061334 | Berlovitch et al. | May 2000 | A |
6091732 | Alexander et al. | Jul 2000 | A |
6091802 | Smith et al. | Jul 2000 | A |
6104757 | Rhee | Aug 2000 | A |
6118768 | Bhatia et al. | Sep 2000 | A |
6125113 | Farris et al. | Sep 2000 | A |
6128664 | Yanagidate et al. | Oct 2000 | A |
6141345 | Goeddel et al. | Oct 2000 | A |
6185288 | Wong | Feb 2001 | B1 |
6256778 | Oliver | Jul 2001 | B1 |
6307853 | Storch et al. | Oct 2001 | B1 |
6351464 | Galvin et al. | Feb 2002 | B1 |
6359880 | Curry et al. | Mar 2002 | B1 |
6363081 | Gase | Mar 2002 | B1 |
6389005 | Cruickshank | May 2002 | B1 |
6434139 | Liu et al. | Aug 2002 | B1 |
6445694 | Swartz | Sep 2002 | B1 |
6449251 | Awadallah et al. | Sep 2002 | B1 |
6496477 | Perkins et al. | Dec 2002 | B1 |
6542497 | Curry et al. | Apr 2003 | B1 |
6597686 | Smyk | Jul 2003 | B1 |
6603774 | Knappe et al. | Aug 2003 | B1 |
6618761 | Munger et al. | Sep 2003 | B2 |
6636504 | Albers et al. | Oct 2003 | B1 |
6654366 | Ketcham | Nov 2003 | B1 |
6658496 | Minakata et al. | Dec 2003 | B1 |
6700956 | Chang et al. | Mar 2004 | B2 |
6711175 | Rautiainen et al. | Mar 2004 | B1 |
6754709 | Gbadegesin | Jun 2004 | B1 |
6760324 | Scott et al. | Jul 2004 | B1 |
6763226 | McZeal, Jr. | Jul 2004 | B1 |
6771594 | Upadrasta | Aug 2004 | B1 |
6788769 | Waites | Sep 2004 | B1 |
6795540 | Mow | Sep 2004 | B1 |
6822957 | Schuster et al. | Nov 2004 | B1 |
6826174 | Erekson et al. | Nov 2004 | B1 |
6856612 | Bjelland et al. | Feb 2005 | B1 |
6895000 | Lai et al. | May 2005 | B2 |
6907031 | Ehlinger et al. | Jun 2005 | B1 |
6944167 | McPherson | Sep 2005 | B1 |
6947417 | Laursen et al. | Sep 2005 | B2 |
6954454 | Schuster et al. | Oct 2005 | B1 |
7002995 | Chow et al. | Feb 2006 | B2 |
7009956 | Heinonen et al. | Mar 2006 | B2 |
7012888 | Schoeneberger et al. | Mar 2006 | B2 |
7016481 | McElvaney | Mar 2006 | B2 |
7046683 | Zhao | May 2006 | B1 |
7092380 | Chen et al. | Aug 2006 | B1 |
7099944 | Anschutz et al. | Aug 2006 | B1 |
7113500 | Bollinger et al. | Sep 2006 | B1 |
7145900 | Nix et al. | Dec 2006 | B2 |
7212622 | Delaney et al. | May 2007 | B2 |
7213766 | Ryan et al. | May 2007 | B2 |
7257106 | Chen et al. | Aug 2007 | B2 |
7283517 | Yan et al. | Oct 2007 | B2 |
7283542 | Mitchell | Oct 2007 | B2 |
7286537 | Roh | Oct 2007 | B2 |
7302053 | Chang et al. | Nov 2007 | B2 |
7336654 | Barkley et al. | Feb 2008 | B2 |
7342920 | Ying et al. | Mar 2008 | B2 |
7369563 | Choi et al. | May 2008 | B2 |
7382786 | Chen et al. | Jun 2008 | B2 |
7424024 | Chen et al. | Sep 2008 | B2 |
20010038033 | Habib | Nov 2001 | A1 |
20020007273 | Chen | Jan 2002 | A1 |
20020052965 | Dowling | May 2002 | A1 |
20020097843 | Krol et al. | Jul 2002 | A1 |
20020131604 | Amine | Sep 2002 | A1 |
20020147912 | Shmueli et al. | Oct 2002 | A1 |
20020184376 | Sternagle | Dec 2002 | A1 |
20020191621 | Jha | Dec 2002 | A1 |
20020191768 | Stoughton | Dec 2002 | A1 |
20030002479 | Vortman et al. | Jan 2003 | A1 |
20030012137 | Abdelilah et al. | Jan 2003 | A1 |
20030023669 | DeLima et al. | Jan 2003 | A1 |
20030093606 | Mambakkam et al. | May 2003 | A1 |
20030110257 | Hyun et al. | Jun 2003 | A1 |
20030112820 | Beach | Jun 2003 | A1 |
20030123388 | Bradd | Jul 2003 | A1 |
20030161453 | Veschi | Aug 2003 | A1 |
20030204619 | Bays | Oct 2003 | A1 |
20030214939 | Eldumiati et al. | Nov 2003 | A1 |
20030219006 | Har | Nov 2003 | A1 |
20030224780 | Rodman et al. | Dec 2003 | A1 |
20040019539 | Raman et al. | Jan 2004 | A1 |
20040032860 | Mundra et al. | Feb 2004 | A1 |
20040032862 | Schoeneberger et al. | Feb 2004 | A1 |
20040047451 | Barker et al. | Mar 2004 | A1 |
20040086093 | Schranz | May 2004 | A1 |
20040114581 | Hans et al. | Jun 2004 | A1 |
20040133668 | Nicholas, III | Jul 2004 | A1 |
20040141508 | Schoeneberger et al. | Jul 2004 | A1 |
20040141758 | El-Reedy | Jul 2004 | A1 |
20040165578 | Burritt et al. | Aug 2004 | A1 |
20040205023 | Hafer et al. | Oct 2004 | A1 |
20040205777 | Zalenski et al. | Oct 2004 | A1 |
20040218583 | Adan et al. | Nov 2004 | A1 |
20040248590 | Chan et al. | Dec 2004 | A1 |
20040258003 | Kokot et al. | Dec 2004 | A1 |
20050002506 | Bender et al. | Jan 2005 | A1 |
20050074031 | Sunstrum | Apr 2005 | A1 |
20050074122 | Fascenda | Apr 2005 | A1 |
20050089052 | Chen et al. | Apr 2005 | A1 |
20050091392 | Gesswein et al. | Apr 2005 | A1 |
20050094621 | Acharya et al. | May 2005 | A1 |
20050138183 | O'Rourke et al. | Jun 2005 | A1 |
20050180464 | McConnell et al. | Aug 2005 | A1 |
20050195799 | Burne et al. | Sep 2005 | A1 |
20050201414 | Awais | Sep 2005 | A1 |
20050220083 | Takeuchi | Oct 2005 | A1 |
20050243733 | Crawford et al. | Nov 2005 | A1 |
20060008059 | Ying et al. | Jan 2006 | A1 |
20060029062 | Rao et al. | Feb 2006 | A1 |
20060029063 | Rao et al. | Feb 2006 | A1 |
20060031393 | Cooney et al. | Feb 2006 | A1 |
20060037071 | Rao et al. | Feb 2006 | A1 |
20060039356 | Rao et al. | Feb 2006 | A1 |
20060208066 | Finn et al. | Sep 2006 | A1 |
20060276230 | McConnell | Dec 2006 | A1 |
20070248081 | Barkley et al. | Oct 2007 | A1 |
20080025291 | Barkley et al. | Jan 2008 | A1 |
Number | Date | Country | |
---|---|---|---|
20060034296 A1 | Feb 2006 | US |
Number | Date | Country | |
---|---|---|---|
60601916 | Aug 2004 | US |