Claims
- 1. A method for communicating, comprising the steps of:
establishing a persistent connection between a first entity in a private network and a second entity; initiating communication with said first entity, said communication is initiated by a third entity from outside said private network using an identification associated with said persistent connection; and exchanging subsequent communication between said first entity and said third entity.
- 2. A method according to claim 1, wherein:
all communication between said first entity and said third entity are transmitted via said persistent connection.
- 3. A method according to claim 1, wherein:
said step of initiating communication includes transmitting a message via said persistent connection.
- 4. A method for communicating, comprising the steps of:
maintaining a persistent connection between a first entity in a first private network and a second entity; sending a first communication from a third entity to said second entity, said first communication is for said first entity; and forwarding said first communication from said second entity to said first entity using said persistent connection.
- 5. A method according to claim 4, wherein:
said first communication is an attempt by said third entity to initiate communication between said first entity and said third entity.
- 6. A method according to claim 5, further comprising the step of:
communicating between said first entity and said third entity.
- 7. A method according to claim 6, wherein said step of communicating includes the steps of:
inserting an IP packet into a UDP segment at said first entity; sending said UDP segment from said first entity to said second entity; removing said IP packet from said UDP segment at said second entity; and sending said IP packet from said second entity to said third entity.
- 8. A method according to claim 6, wherein said step of communicating includes the steps of:
inserting an IP packet into a UDP segment at said first entity; sending said UDP segment from said first entity to a NAT device; sending said UDP segment from said NAT device to said second entity using an address of said NAT device as a source address; removing said IP packet from said UDP segment at said second entity; and sending said IP packet from said second entity to said third entity.
- 9. A method according to claim 5, further comprising the steps of:
connecting said first entity to said first private network; receiving a private address to be used by said first entity in said private network; and registering said first entity with said second entity.
- 10. A method according to claim 4, further comprising the step of:
registering said first entity with said second entity prior to said step of maintaining.
- 11. A method according to claim 10, wherein said step of registering includes the steps of:
creating a UDP segment; sending said UDP segment from said first entity to said second entity; and storing information at said second entity, said information includes identification information for said first entity.
- 12. A method according to claim 11, wherein:
said identification information includes a domain name, an address, and a port.
- 13. A method according to claim 10, wherein said step of registering includes the steps of:
creating a UDP segment, said UDP segment includes a code requesting establishment of a connection; sending said UDP segment from said first entity to a stateful edge switch device; sending said UDP segment from said stateful edge switch device to said second entity using an IP address for said stateful edge switch device as a source address; and storing information at said second entity, said information includes an IP address for said stateful edge switch device, a port at said stateful edge switch device associated with said UDP packet and a domain name for said first entity.
- 14. A method according to claim 13, wherein:
said stateful edge switch device is a NAT device.
- 15. A method according to claim 4, further comprising the steps of:
sending a request by said third entity to resolve a domain name for said first entity; and receiving a response to said request at said third entity, said response includes an address for said second entity.
- 16. A method according to claim 4, further comprising the steps of:
sending a request by said third entity to resolve a domain name for said first entity; and receiving a response to said request at said third entity, said response includes an address for said second entity and an identifier for said first entity.
- 17. A method according to claim 4, wherein:
said first entity is a portable computing device.
- 18. A method according to claim 4, wherein said step of sending a first communication includes the steps of:
creating a packet at said third entity; adding a domain name to said packet; and sending said packet from said third entity to said second entity.
- 19. A method according to claim 4, wherein said step of forwarding includes the steps of:
associating said communication with said first entity; inserting said communication into a UDP segment; and sending said UDP segment to said first entity via said persistent connection.
- 20. A method according to claim 19, wherein said step of forwarding includes the steps of:
determining whether a domain name is included with said communication, said step of inserting and sending are only performed if said domain name is included with said communication.
- 21. A method according to claim 19, wherein said step of sending said UDP packet to said first entity includes the steps of:
sending said UDP segment from said second entity to a stateful edge switch device using a first address for said stateful edge switch device; and sending said UDP segment from said stateful edge switch device to said first entity using a private address for said first entity.
- 22. A method according to claim 19, wherein:
said step of associating includes accessing a look up table on said second entity using an identifier of said first entity from said communication; and said step of inserting includes using information in said look up table to add port information to said UDP segment and to address a packet for said UDP segment.
- 23. A method according to claim 4, wherein:
said first private network uses a first NAT device; said third entity is in a different private network using a different NAT device; said first entity communicates outside of said first private network using said first NAT device; and said third entity communicates outside said different private network using said different NAT device.
- 24. A method according to claim 4, wherein:
said step of maintaining includes repeatedly sending UDP packets from said first entity to said second entity prior to expiration of a predetermined time interval.
- 25. A method according to claim 4, wherein:
said second entity is a stateful second entity.
- 26. A method according to claim 4, wherein:
said second entity is a stateless second entity.
- 27. A method according to claim 26, wherein:
said step of sending a first communication from said third entity includes adding a shim to said first communication, said shim identifies a port number and an address for a stateful edge associated with said first entity.
- 28. A method according to claim 27, further comprising the steps of:
sending a request to said second entity to establish said persistent connection; and sending from said second entity to said first entity said port number and said address for said stateful edge.
- 29. A method for communicating, comprising the steps of:
participating in a persistent connection with a first entity in a first private network, said step of participating being performed by a second entity; receiving a first communication from a third entity, said first communication is for said first entity; and forwarding said first communication to said first entity using said persistent connection.
- 30. A method according to claim 29, wherein:
said first communication is an attempt by said third entity to initiate communication with said first entity.
- 31. A method according to claim 29, further comprising the step of:
registering said first entity prior to said step of participating
- 32. A method according to claim 29, wherein said step of registering includes the steps of:
receiving a UDP segment from said first entity; and storing information based on said UDP segment, said information includes a domain name for said first entity, a public address associated with said first entity, and a port associated with said persistent connection.
- 33. A method according to claim 29, wherein said step of forwarding includes the steps of:
associating said first communication with said first entity; inserting said first communication into a UDP segment; and sending said UDP segment to said first entity via said persistent connection.
- 34. A method according to claim 33, wherein said step of sending said UDP segment to said first entity includes the steps of:
sending said UDP segment to a stateful edge switch device using a first address for said stateful edge switch device in order for said stateful edge switch to forward said UDP segment to said first entity.
- 35. A method according to claim 29, wherein said step of participating includes the steps of:
storing an entry in a data structure identifying said persistent connection; and repeatedly receiving UDP packets from said first entity prior to expiration of a predetermined time interval.
- 36. A method according to claim 29, wherein:
said first private network uses a first NAT device; said third entity is in a different private network using a different NAT device; said first entity communicates outside of said first private network using said first NAT device; and said third entity communicates outside said different private network using said different NAT device.
- 37. A method for communicating, comprising the steps of:
maintaining a persistent connection with an agent; and receiving a first communication from an entity via said persistent connection.
- 38. A method according to claim 37, wherein:
said first communication is an attempt by said entity to initiate communication.
- 39. A method according to claim 38, further comprising the step of responding to said first communication via said persistent connection, said step of responding includes the steps of:
inserting an IP packet into a UDP segment; and sending said UDP segment to said agent via said persistent connection.
- 40. A method according to claim 38, further comprising the step of:
registering with said agent, wherein said step of registering includes the steps of creating a UDP segment and sending said UDP segment to said agent.
- 41. A method according to claim 40, wherein said step of sending said UDP segment includes sending said UDP segment to a NAT device for forwarding to said agent using an address and port for said NAT device.
- 42. A method according to claim 38, wherein said step of maintaining includes the steps of:
repeatedly sending messages to said agent.
- 43. A method according to claim 37, wherein:
said step of maintaining includes sending data to a NAT device for forwarding to said agent.
- 44. A method according to claim 37, further comprising the steps of:
receiving, from said agent, an indication of an address and port for a stateful agent; and providing said indication of said address and port to a server, said first communication used said indication of said address and port.
- 45. A method for communicating, comprising the steps of:
requesting a resolution for an address for a first entity; receiving an address for a second entity in response to said step of requesting, said second entity having a persistent connection with said first entity; creating a first communication for said first entity, said first communication including said address of said second entity as a destination address and an identification of said first entity; and sending said first communication to said second entity for delivery to said first entity via said persistent connection.
- 46. A method according to claim 45, wherein:
said step of receiving includes receiving an address and a port number for a stateful edge; and said step of creating a first communication includes adding said address and port number for said stateful edge to said first communication.
- 47. A method according to claim 45, wherein:
said first communication is an attempt to initiate communication with said first entity.
- 48. A method according to claim 45, wherein:
said first entity is in a first private network using a first NAT device; said step of requesting, receiving, creating and sending are preformed by a third entity in a different private network, said second private network uses a different NAT device; said first entity communicates outside of said first private network using said first NAT device; and said third entity communicates outside of said different private network using said different NAT device.
- 49. A method for communicating, comprising the steps of:
initiating communication between a first entity and a different entity, said first entity and said different entity do not have public addresses, said first entity is in a first private network using a first NAT device, said different entity is in a different private network using a different NAT device, said first entity communicates outside of said first private network using said first NAT device, said third entity communicates outside said different private network using said different NAT device; and sending communications between said first entity and said different entity.
- 50. A method according to claim 49, further comprising the step of:
maintaining a persistent connection between said first entity and an second entity, said step of sending communications includes transmitting said communications via said persistent connection.
- 51. A method according to claim 50, further comprising the step of:
registering said first entity with said second entity.
- 52. A method according to claim 51, wherein said step of registering includes the steps of:
creating a UDP segment; sending said UDP segment from said first entity to said second entity; and storing information at said second entity, said information includes a domain name, an address, and a port number associated with said first entity.
- 53. A method according to claim 50, wherein said step of sending communications includes the steps of:
sending a first communication from said different entity to said second entity; inserting said first communication into a UDP segment; and sending said UDP segment from said second entity to said first entity via said persistent connection.
- 54. A method according to claim 50, wherein said step of maintaining includes the step of:
repeatedly sending UDP packets from said first entity to said second entity.
- 55. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method comprising the steps of:
maintaining a persistent connection between a first entity in a first private network and an second entity; sending a first communication from a third entity to said second entity, said first communication is for said first entity; and forwarding said first communication from said second entity to said first entity using said persistent connection.
- 56. One or more processor readable storage devices according to claim 55, wherein:
said first communication is an attempt by said third entity to initiate communication between said first entity and said third entity.
- 57. One or more processor readable storage devices according to claim 55, wherein said method further comprises the steps of:
inserting a packet into a UDP segment at said first entity; sending said UDP segment from said first entity to said second entity via said persistent connection; and sending said packet from said second entity to said third entity.
- 58. One or more processor readable storage devices according to claim 55, wherein said method further comprises the step of:
registering said first entity with said second entity prior to said step of maintaining, said step of registering includes the steps of:
creating a UDP segment, sending said UDP segment from said first entity to said second entity, and storing information at said second entity, said information includes identification information for said first entity.
- 59. One or more processor readable storage devices according to claim 55 wherein said step of forwarding includes the steps of:
associating said communication with said first entity; inserting said communication into a UDP segment; and sending said UDP segment to said first entity via said persistent connection.
- 60. One or more processor readable storage devices according to claim 55, wherein:
said step of maintaining includes repeatedly sending UDP packets from said first entity to said second entity prior to expiration of a predetermined time interval.
- 61. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method comprising the steps of:
participating in a persistent connection with a first entity in a first private network, said step of participating being performed by a second entity; receiving a first communication from a third entity, said first communication is for said first entity; and forwarding said first communication to said first entity using said persistent connection.
- 62. One or more processor readable storage devices according to claim 61, wherein:
said first communication is an attempt by said third entity to initiate communication with said first entity.
- 63. One or more processor readable storage devices according to claim 61, wherein said step of forwarding includes the steps of:
associating said first communication with said first entity; inserting said first communication into a UDP segment; and sending said UDP segment to said first entity via said persistent connection.
- 64. One or more processor readable storage devices according to claim 61, wherein said step of participating includes the steps of:
storing an entry in a data structure identifying said persistent connection; and repeatedly receiving messages from said first entity prior to expiration of a predetermined time interval.
- 65. An apparatus, comprising:
a communication interface; one or more storage devices; and one or more processors in communication with said one or more storage devices and said communication interface, said one or more processors programmed to perform a method comprising the steps of:
participating in a persistent connection with a first entity in a first private network, said apparatus is a second entity that is different from said first entity, receiving a first communication from a third entity, said first communication is for said first entity, and forwarding said first communication to said first entity using said persistent connection.
- 66. An apparatus according to claim 65, wherein:
said first communication is an attempt by said third entity to initiate communication with said first entity.
- 67. An apparatus according to claim 65, wherein said step of forwarding includes the steps of:
associating said first communication with said first entity; inserting said first communication into a UDP segment; and sending said UDP segment to said first entity via said persistent connection.
- 68. An apparatus according to claim 65, wherein said step of participating includes the steps of:
storing an entry in a data structure identifying said persistent connection; and repeatedly receiving messages from said first entity prior to expiration of a predetermined time interval.
- 69. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method comprising the steps of:
maintaining a persistent connection with an agent; and receiving a first communication from an entity via said persistent connection.
- 70. One or more processor readable storage devices according to claim 69, wherein:
said first communication is an attempt by said entity to initiate communication.
- 71. One or more processor readable storage devices according to claim 70, wherein said step of maintaining includes the steps of:
repeatedly sending messages to said agent.
- 72. One or more processor readable storage devices according to claim 69, wherein said method further comprises the step of responding to said first communication via said persistent connection, said step of responding includes the steps of:
inserting an IP packet into a UDP segment; and sending said UDP segment to said second entity via said persistent connection.
- 73. An apparatus, comprising:
a communication interface; one or more storage devices; and one or more processors in communication with said one or more storage devices and said communication interface, said one or more processors programmed to perform a method comprising the steps of:
registering with an agent, maintaining a persistent connection with said agent, and receiving a first communication from an entity via said persistent connection.
- 74. An apparatus according to claim 73, wherein:
said first communication is an attempt by said entity to initiate communication.
- 75. An apparatus according to claim 73, wherein said step of maintaining includes the steps of:
repeatedly sending messages to said agent.
- 76. An apparatus according to claim 73, wherein said method further comprises the step of responding to said first communication via said persistent connection, said step of responding includes the steps of:
inserting an IP packet into a UDP segment; and sending said UDP segment to said agent via said persistent connection.
- 77. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method comprising the steps of:
requesting a resolution for an address for a first entity; receiving an address for a second entity in response to said step of requesting, said second entity having a persistent connection with said first entity; creating a first communication for said first entity, said first communication including said address of said second entity as a destination address and an identification of said first entity; and sending said first communication to said second entity for delivery to said first entity via said persistent connection.
- 78. One or more processor readable storage devices according to claim 77, wherein:
said first communication is an attempt to initiate communication with said first entity.
- 79. An apparatus, comprising:
a communication interface; one or more storage devices; and one or more processors in communication with said one or more storage devices and said communication interface, said one or more processors programmed to perform a method comprising the steps of:
requesting a resolution for an address for a first entity, receiving an address for an second entity in response to said step of requesting, said second entity having a persistent connection with said first entity, creating a first communication for said first entity, said first communication including said address of said second entity as a destination address and an identification of said first entity, and sending said first communication to said second entity for delivery to said first entity via said persistent connection.
- 80. An apparatus according to claim 79, wherein:
said first communication is an attempt to initiate communication with said first entity.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to the following Patents/Applications:
[0002] DOMAIN NAME ROUTING, Hasan S. Alkhatib, U.S. Pat. No. 6,119,171;
[0003] IPNET GATEWAY, Hasan S. Alkhatib and Bruce C. Wootton, U.S. application Ser. No. 09/167,709, filed on Oct. 6, 1998;
[0004] PSEUDO ADDRESSING, Wootton, et al., Ser. No. 09/637,803, filed on Aug. 11, 2000; and
[0005] COMMUNICATING WITH AN ENTITY INSIDE A PRIVATE NETWORK USING AN EXISTING CONNECTION TO INITIATE COMMUNICATION, Hasan S. Alkhatib, Fouad A. Tobagi, Farid F. Elwailly and Bruce C. Wootton, filed on the same day as the present application, with attorney docket number TTCC-01016US0.
[0006] Each of the related Patents/Applications are incorporated herein by reference.