IP Library Granted Patent US 7,051,116
Granted Patent B1
US 7,051,116 · App. 09/983,042 · Granted May 23, 2006

Client device identification when communicating through a network address translator device

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,051,116
App. No.
09/983,042
Granted
May 23, 2006
Kind
B1
Abstract

Enabling a host system to communicate with and to identify at least one client device that communicates with the host system through a network address translator device includes enabling communications from a first client device through the network address translator device. A data packet is received that includes a payload portion and an attribute portion, where the attribute portion includes a destination address that indicates a destination for the data packet and a nearest source address. A portion of the received data packet other than the nearest source address is examined for a host-assigned identifier that identifies a client device that communicated the received data packet. The received data packet typically is processed in accordance with predetermined host system controls accessible to the host system for the first client device identified, such as host-enabled parental controls.

Claims (121)

1. A method for a host system to communicate with and to identify at least one client device that communicates with the host system through a network address translator device, the method comprising:

enabling communications from a first client device through the network address translator device;

receiving a data packet that includes a payload portion and an attribute portion, wherein the attribute portion includes a destination address that indicates a destination for the data packet and a nearest source address;

examining a portion of the received data packet other than the nearest source address for a host-assigned identifier that identifies a client device that communicated the received data packet;

processing the received data packet in accordance with predetermined host system controls accessible to the host system for the first client device if the host-assigned identifier identifies the first client device;

enabling communications from a second client device that communicates through the network address translator device;

processing the received data packet in accordance with predetermined host system controls accessible to the host system for the second client device if the host-assigned identifier identifies the second client device;

assigning to the second client device a second identifier to be included in payload portions of data packets that are communicated between the second client device and the host system, wherein the host-assigned identifier includes the second identifier; and

assigning to the first client device a first identifier to be included in payload portions of data packets that are communicated between the first client device and the host system, wherein the host-assigned identifier includes the first identifier, and wherein:

assigning the first identifier includes assigning the first identifier such that the host system may uniquely identify the first client device through use of the first identifier, and

assigning the second identifier includes assigning the second identifier such that the host system may uniquely identify the second client device through use of the second identifier.

2. The method as in claim 1 wherein enabling communications includes enabling communications from the first client device operating in a home network through the network address translator device.

3. The method as in claim 1 wherein examining the portion of the data packet includes examining the payload portion of the received data packet for the host-assigned identifier that identifies the client device that communicated the received data packet.

4. The method as in claim 1 wherein examining the portion of the data packet includes examining the received data packet for the host-assigned identifier that differs from the nearest source address and that identifies the client device that communicated the received data packet.

5. The method as in claim 1 wherein enabling communications includes enabling communications from the first client device using a tunneling protocol.

6. The method as in claim 5 wherein enabling communications includes enabling communications from the first client device using L2TP.

7. The method as in claim 1 wherein enabling communications includes enabling communications from the first client device without using cookies.

8. The method as in claim 1 further comprising assigning to the first client device a first identifier to be included in payload portions of data packets that are communicated between the first client device and the host system, wherein the host-assigned identifier includes the first identifier.

9. The method as in claim 8 wherein assigning the first identifier includes assigning the first identifier such that the host system may uniquely identify the first client device through use of the first identifier.

10. The method as in claim 1 wherein:

the first identifier includes a first routable IP address; and

the second identifier includes a second routable IP address.

11. The method as in claim 1 wherein the predetermined host system controls include parental controls.

12. The method as in claim 1 wherein the predetermined host system controls include controls over personal identification information communicated to a third party.

13. The method as in claim 1 wherein the predetermined host system controls include controls over a personalized web page.

14. The method as in claim 1 wherein the predetermined host system controls are maintained by the host system.

15. The method as in claim 1 wherein the attribute portion of the received data packet further includes a source address that identifies the network address translator device and the method further comprises:

examining the attribute portion of the received data packet for the source address; and

using the source address to determine whether the received data packet is a first data packet received from the network address translator device;

wherein examining the portion of the received data packet includes examining the payload portion of the received data packet for the host-assigned identifier that identifies the client device that communicated the received data packet only when the received data packet is determined to be a data packet from the first data packet received from the network address translator device.

16. The method as in claim 1 further comprising identifying a user of the first client device based on the examined host-assigned identifier and a user identifier, wherein processing the received data packet includes processing the received data packet based on the examined host-assigned identifier and the user identifier.

17. The method as in claim 16 wherein:

the user identifier includes a user name, and

processing the received data packet includes processing the received data packet based on the examined host-assigned identifier and the user name.

18. The method as in claim 16 wherein:

the user identifier includes a user name and a password, and

processing the received data packet includes processing the received data packet based on the examined host-assigned identifier, the user name, and the password.

19. The method as in claim 1 further comprising identifying the client device from among several client devices based on the examined host-assigned identifier, wherein the received data packet is processed in accordance with the predetermined host system controls accessible to the host system for the identified client device.

20. A computer program stored on a computer readable medium for a host system to communicate with and to identify at least one client device that communicates with the host system through a network address translator device, comprising:

an enabling code segment that causes the computer to enable communications from a first client device through the network address translator device and to enable communications from a second client device that communicates through the network address translator device;

a receiving code segment that causes the computer to receive a data packet that includes a payload portion and an attribute portion, wherein the attribute portion includes a destination address that indicates a destination for the data packet and a nearest source address;

an examining code segment that causes the computer to examine a portion of the received data packet other than the nearest source address for a host-assigned identifier that identifies a client device that communicated the received data packet;

a processing code segment that causes the computer to process the received data packet in accordance with predetermined host system controls accessible to the host system for the first client device if the host-assigned identifier identifies the first client device and to process the received data packet in accordance with predetermined host system controls accessible to the host system for the second client device if the host-assigned identifier identifies the second client device; and

an assigning code segment that causes the computer to assign to the second client device a second identifier to be included in payload portions of data packets that are communicated between the second client device and the host system and to assign to the first client device a first identifier to be included in payload portions of data packets that are communicated between the first client device and the host system, wherein:

the first and second host-assigned identifiers include the first and second identifiers, respectively, and

the assigning code segment causes the computer to assign the first identifier such that the host system may uniquely identify the first client device through use of the first identifier and to assign the second identifier such that the host system may uniquely identify the second client device through use of the second identifier.

21. The computer program of claim 20 wherein the enabling code segment causes the computer to enable communications from the first client device operating in a home network through the network address translator device.

22. The computer program of claim 20 wherein the examining code segment causes the computer to examine the payload portion of the received data packet for the host-assigned identifier that identifies the client device that communicated the received data packet.

23. The computer program of claim 20 wherein the examining code segment causes the computer to examine the received data packet for the host-assigned identifier that differs from the nearest source address and that identifies the client device that communicated the received data packet.

24. The computer program of claim 20 wherein the enabling code segment causes the computer to enable communications from the first client device using a tunneling protocol.

25. The computer program of claim 24 wherein the enabling code segment causes the computer to enable communications from the first client device using L2TP.

26. The computer program of claim 20 wherein the enabling code segment causes the computer to enable communications from the first client device without using cookies.

27. The computer program of claim 20 further comprising an assigning code segment that causes the computer to assign to the first client device a first identifier to be included in payload portions of data packets that are communicated between the first client device and the host system, wherein the host-assigned identifier includes the first identifier.

28. The computer program of claim 27 wherein the assigning code segment causes the computer to assign the first identifier such that the host system may uniquely identify the first client device through use of the first identifier.

29. The computer program of claim 20 wherein:

the first identifier includes a first routable IP address; and

the second identifier includes a second routable IP address.

30. The computer program of claim 20 wherein the predetermined host system controls include parental controls.

31. The computer program of claim 20 wherein the predetermined host system controls include controls over personal identification information communicated to a third party.

32. The computer program of claim 20 wherein the predetermined host system controls include controls over a personalized web page.

33. The computer program of claim 20 wherein the predetermined host system controls are maintained by the host system.

34. The computer program of claim 20 wherein:

the attribute portion of the received data packet further includes a source address that identifies the network address translator device;

the examining code segment causes the computer to examine the attribute portion of the received data packet for the source address and uses the source address to determine whether the received data packet is a first data packet received from the network address translator device; and

the examining code segment causes the computer to examine the payload portion of the received data packet for the host-assigned identifier that identifies the client device that communicated the received data packet only when the received data packet is determined to be a data packet from the first data packet received from the network address translator device.

35. The computer program of claim 20 further comprising an identifying code segment that causes the computer to identify a user of the first client device based on the examined host-assigned identifier and a user identifier, wherein the processing code segment causes the computer to process the received data packet based on the examined host-assigned identifier and the user identifier.

36. The computer program of claim 35 wherein:

the user identifier includes a user name, and

the processing code segment causes the computer to process the received data packet based on the examined host-assigned identifier and the user name.

37. The computer program of claim 35 wherein:

the user identifier includes a user name and a password, and

the processing code segment causes the computer to process the received data packet based on the examined host-assigned identifier, the user name, and the password.

38. The computer program of claim 20 further comprising an identifying code segment that causes the computer to identify the client device from among several client devices based on the examined host-assigned identifier, wherein the processing code segment causes the computer to process the received data packet in accordance with the predetermined host system controls accessible to the host system for the identified client device.

39. A method for a host system to communicate with and to identify at least one client device that communicates with the host system through a network address translator device, the method comprising:

enabling communications from a first client device through the network address translator device;

receiving a data packet that includes a payload portion and an attribute portion, wherein the attribute portion includes a destination address that indicates a destination for the data packet and a nearest source address and wherein the attribute portion of the received data packet further includes a source address that identifies the network address translator device;

examining a portion of the received data packet other than the nearest source address for a host-assigned identifier that identifies a client device that communicated the received data packet;

processing the received data packet in accordance with predetermined host system controls accessible to the host system for the first client device if the host-assigned identifier identifies the first client device;

examining the attribute portion of the received data packet for the source address; and

using the source address to determine whether the received data packet is a first data packet received from the network address translator device,

wherein examining the portion of the received data packet includes examining the payload portion of the received data packet for the host-assigned identifier that identifies the client device that communicated the received data packet only when the received data packet is determined to be a data packet from the first data packet received from the network address translator device.

40. A method for a host system to communicate with and to identify at least one client device that communicates with the host system through a network address translator device, the method comprising:

enabling communications from a first client device through the network address translator device;

receiving a data packet that includes a payload portion and an attribute portion, wherein the attribute portion includes a destination address that indicates a destination for the data packet and a nearest source address;

examining a portion of the received data packet other than the nearest source address for a host-assigned identifier that identifies a client device that communicated the received data packet;

processing the received data packet in accordance with predetermined host system controls accessible to the host system for the first client device if the host-assigned identifier identifies the first client device; and

identifying a user of the first client device based on the examined host-assigned identifier and a user identifier, wherein:

the user identifier includes a user name, and

processing the received data packet includes processing the received data packet based on the examined host-assigned identifier and the user name.

41. A method for a host system to communicate with and to identify at least one client device that communicates with the host system through a network address translator device, the method comprising:

enabling communications from a first client device through the network address translator device;

receiving a data packet that includes a payload portion and an attribute portion, wherein the attribute portion includes a destination address that indicates a destination for the data packet and a nearest source address;

examining a portion of the received data packet other than the nearest source address for a host-assigned identifier that identifies a client device that communicated the received data packet;

processing the received data packet in accordance with predetermined host system controls accessible to the host system for the first client device if the host-assigned identifier identifies the first client device; and

identifying a user of the first client device based on the examined host-assigned identifier and a user identifier, wherein:

the user identifier includes a user name and a password, and

processing the received data packet includes processing the received data packet based on the examined host-assigned identifier, the user name, and the password.

42. A computer program stored on a computer readable medium for a host system to communicate with and to identify at least one client device that communicates with the host system through a network address translator device, comprising:

an enabling code segment that causes the computer to enable communications from a first client device through the network address translator device;

a receiving code segment that causes the computer to receive a data packet that includes a payload portion and an attribute portion, wherein the attribute portion includes a destination address that indicates a destination for the data packet and a nearest source address;

an examining code segment that causes the computer to examine a portion of the received data packet other than the nearest source address for a host-assigned identifier that identifies a client device that communicated the received data packet; and

a processing code segment that causes the computer to process the received data packet in accordance with predetermined host system controls accessible to the host system for the first client device if the host-assigned identifier identifies the first client device, wherein:

the attribute portion of the received data packet further includes a source address that identifies the network address translator device,

the examining code segment causes the computer to examine the attribute portion of the received data packet for the source address and uses the source address to determine whether the received data packet is a first data packet received from the network address translator device, and

the examining code segment causes the computer to examine the payload portion of the received data packet for the host-assigned identifier that identifies the client device that communicated the received data packet only when the received data packet is determined to be a data packet from the first data packet received from the network address translator device.

43. A computer program stored on a computer readable medium for a host system to communicate with and to identify at least one client device that communicates with the host system through a network address translator device, comprising:

an enabling code segment that causes the computer to enable communications from a first client device through the network address translator device;

a receiving code segment that causes the computer to receive a data packet that includes a payload portion and an attribute portion, wherein the attribute portion includes a destination address that indicates a destination for the data packet and a nearest source address;

an examining code segment that causes the computer to examine a portion of the received data packet other than the nearest source address for a host-assigned identifier that identifies a client device that communicated the received data packet;

a processing code segment that causes the computer to process the received data packet in accordance with predetermined host system controls accessible to the host system for the first client device if the host-assigned identifier identifies the first client device; and

an identifying code segment that causes the computer to identify a user of the first client device based on the examined host-assigned identifier and a user identifier, wherein:

the user identifier includes a user name, and

the processing code segment causes the computer to process the received data packet based on the examined host-assigned identifier and the user name.

44. A computer program stored on a computer readable medium for a host system to communicate with and to identify at least one client device that communicates with the host system through a network address translator device, comprising:

an enabling code segment that causes the computer to enable communications from a first client device through the network address translator device;

a receiving code segment that causes the computer to receive a data packet that includes a payload portion and an attribute portion, wherein the attribute portion includes a destination address that indicates a destination for the data packet and a nearest source address;

an examining code segment that causes the computer to examine a portion of the received data packet other than the nearest source address for a host-assigned identifier that identifies a client device that communicated the received data packet;

a processing code segment that causes the computer to process the received data packet in accordance with predetermined host system controls accessible to the host system for the first client device if the host-assigned identifier identifies the first client device; and

an identifying code segment that causes the computer to identify a user of the first client device based on the examined host-assigned identifier and a user identifier, wherein:

the user identifier includes a user name and a password, and

the processing code segment causes the computer to process the received data packet based on the examined host-assigned identifier, the user name, and the password.

Assignments (11)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 056981 FRAME: 0631. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 16, 2022
From: COMMWORKS SOLUTIONS, LLC
To: UNWIRED BROADBAND, INC.
Reel/Frame 059907/0563 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 054443 FRAME: 0958. ASSIGNOR(S) HEREBY CONFIRMS THE LICENSE. Recorded Feb 4, 2021
From: COMMWORKS SOLUTIONS, LLC
To: UNWIRED BROADBAND, INC.
Reel/Frame 056981/0631 →
LICENSE Recorded Nov 5, 2020
From: COMMWORKS SOLUTIONS, LLC
To: UNWIRED SOLUTIONS, INC.
Reel/Frame 054443/0958 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2020
From: INTELLECTUAL VENTURES ASSETS 130 LLC
To: COMMWORKS SOLUTIONS, LLC
Reel/Frame 051463/0026 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2019
From: CALLAHAN CELLULAR L.L.C.
To: INTELLECTUAL VENTURES ASSETS 130 LLC
Reel/Frame 050900/0904 →
MERGER Recorded Dec 29, 2015
From: TARQUIN CONSULTING CO., LLC
To: CALLAHAN CELLULAR L.L.C.
Reel/Frame 037396/0647 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SPELLING OF INVENTOR'S NAME PREVIOUSLY RECORDED ON REEL 012536 FRAME 0442. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF ASSIGNOR'S INTEREST. Recorded Oct 20, 2009
From: RODRIGUEZ-VAL, RICHARD; WATSON, RICHARD A., JR.
To: AMERICA ONLINE, INC.
Reel/Frame 023400/0708 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2009
From: AOL LLC
To: TARQUIN CONSULTING CO., LLC
Reel/Frame 023379/0103 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF THE CONVEYANCE AND ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 022403 FRAME 0822. ASSIGNOR(S) HEREBY CONFIRMS THE THE NATURE OF THE CONVEYANCE IS A CONVERSION TO A LIMITED LIABILITY COMPANY; AND ASSIGNEE IS AOL LLC. Recorded Jun 17, 2009
From: AMERICA ONLINE, INC.
To: AOL LLC
Reel/Frame 022840/0478 →
CHANGE OF NAME Recorded Mar 17, 2009
From: AMERICA ONLINE, INC.
To: AOL LLC, A DELAWARE LIMITED LIABILITY COMPANY (FORMERLY KNOWN AS AMERICA ONLINE, INC.)
Reel/Frame 022403/0822 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2002
From: RODRIQUEZ-VAL, RICHARD; WATSON, RICHARD A. JR.
To: AMERICA ONLINE, INC.
Reel/Frame 012536/0442 →