The present invention provides for a system This document describes embodiments for communicating with a host using a global address and a local address. The present invention allows These embodiments allow for the communication to be initiated by an entity outside the host's network. The entity initiating the communication resolves the destination host's domain name into a global address and a local address. messages are sent to the destination host using both the global address and the local address. In one embodiment, both the global and local address are included in the message by encapsulating ip packets. Some embodiments of the present invention also use pseudo addressing.

Patent
   RE41024
Priority
Aug 11 2000
Filed
Nov 07 2008
Issued
Dec 01 2009
Expiry
Aug 10 2021
Assg.orig
Entity
Large
4
28
all paid
14. A method for communicating, comprising:
receiving a message at a destination, said message includes a local address and a global address corresponding to said local address, said destination is on a private network, said message is received from outside said private network based on a combination of said global address and said local address;
accessing a pseudo address corresponding to said local address and said global address; and
using said pseudo address with an application.
30. An apparatus, comprising:
a communication interface;
a memory device; and
one or more processor, said one or more processors programmed to perform a method comprising:
receiving a message at a destination, said message includes a local address and a global address corresponding to said local address, said destination is on a private network, said message is received from outside the private network based on said global address and said local address,
accessing a pseudo address corresponding to said local address and said global address, and
using said pseudo address with an application.
5. A method for communicating, comprising:
using a domain name to obtain a first local address for a destination entity and a first global address associated with said destination entity, said destination entity is on a private network that uses said first local address to communicate with said destination entity;
creating a message that includes said first local address as a first destination address, said first global address as a second destination address and a first pseudo address; and
communicating said message toward said destination based on said first local address and said first global address.
24. 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:
receiving a message at a destination, said message includes a local address and a global address corresponding to said local address, said destination is on a private network, said message is received from outside the private network based on said global address and said local address;
accessing a pseudo address corresponding to said local address and said global address; and
using said pseudo address with an application.
1. A method for communicating, comprising:
obtaining a first local address for a destination entity and a first global address associated with said destination entity, said destination entity is on a private network that uses said first local address to communicate with said destination entity;
creating a message that includes encapsulation within a single protocol level, said message includes said first local address as a first destination address and said first global address as a second destination address, said message includes a first ip packet, a second ip packet encapsulated in said first ip packet and a third ip packet encapsulated in said second ip packet; and
communicating said message toward said destination.
27. An apparatus, comprising:
a communication interface;
a memory device; and
one or more processor, said one or more processors programmed to perform a method comprising:
using a domain name to obtain a first local address for a destination entity and a first global address associated with said destination entity, said destination entity is on a private network that uses said first local address to communicate with said destination entity,
creating a message that includes said first local address as a first destination address, said first global address as a second destination address and a first pseudo address, and
communicating said message toward said destination based on said first local address and said first global address.
0. 40. An apparatus, comprising:
a communication interface;
a memory device; and
one or more processors, said one or more processors programmed to perform a method comprising:
receiving a message, said message including encapsulation within a single protocol level, said message storing a first global address and a first local address, said first global address corresponding to a first entity, said first entity of a private network, said first entity reachable from outside the private network by a combination of the first local address and the first global address;
removing at least one level of encapsulation from said message;
accessing any remaining level of encapsulation;
identifying a pseudo address based on said message; and
providing said pseudo address to an application.
0. 37. An apparatus, comprising:
a communication interface;
a memory device; and
one or more processors, said one or more processors programmed to performed a method comprising:
obtaining a first local address for a destination entity and a first global address associated with said destination entity, said destination entity of a private network that uses said first local address to communicate with said destination entity;
creating a pseudo-address for said destination;
creating a message that includes encapsulation within a single protocol level, said message including said first local address as a first destination address, said first global address as a second destination address, and said pseudo-address for said destination; and
communicating said message toward said destination.
23. 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:
receiving a message, said message includes encapsulation within a single protocol level, said message stores a first global address and a first local address as a destination address associated with a first entity, said first entity is on a private network said first entity is reachable from outside the private network by a combination of the first local address and the first global address;
removing at least one level of encapsulation from said message;
accessing a remaining level of encapsulation;
identifying a pseudo address based on said message; and
providing said pseudo address to an application at said destination.
0. 34. An apparatus, comprising:
a communication interface;
a memory device; and
one or more processors, said one or more processors programmed to perform a method comprising:
obtaining a first local address for a destination entity and a first global address associated with said destination entity, said destination entity of a private network that uses said first local address to communicate with said destination entity;
creating a message that includes encapsulation within a single protocol level, said message including said first local address as a first destination address and said first global address as a second destination address, wherein said message includes a first ip packet, a second ip packet encapsulated in said first ip packet, and a third ip packet encapsulated in said second ip packet; and
communicating said message toward said destination.
4. A method for communicating comprising:
receiving a message, said message includes encapsulation within a single protocol level, said message stores a first global address and a first local address as a destination address associated with a first entity, said first local address and said first global address correspond to said first entity, said first entity is on a private network, said first entity is reachable from outside the private network using said first local address and said first global address;
removing at least one level of encapsulation from said message, said message includes multiple levels of encapsulation after said step of removing; and
accessing a remaining level of encapsulation, said step of accessing includes communicating said message toward said first entity using said first global address, said message includes said first local address and said first global address.
20. 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:
obtaining a first local address for a destination entity and a first global address associated with said destination entity, said destination entity is on a private network that uses said first local address to communicate with said destination entity;
creating a message that includes encapsulation within a single protocol level, said message includes said first local address as a first destination address and said first global address as a second destination address; and
communicating said message toward said destination, said message includes a first ip packet, a second ip packet encapsulated in said first ip packet and a third ip packet encapsulated in said second ip packet.
2. A method for communicating, comprising:
obtaining a first local address for a destination entity and a first global address associated with said destination entity, said destination entity is on a private network that uses said first local address to communicate with said destination entity;
creating a message that includes encapsulations within a single protocol level, said message includes said first local address as a first destination address and said first global address as a second destination address;
communicating said message toward said destination entity;
receiving said message at an intermediate entity;
removing a layer of encapsulation from said message;
forwarding said message after said step of removing, toward said destination entity;
receiving said message at said destination entity;
removing a layer of encapsulation from said message; and
accessing information in said message after said step of removing.
0. 33. A method for communicating, comprising:
obtaining a first local address for a destination entity and a first global address associated with said destination entity, said destination entity on a private network that uses said first local address to communicate with said destination entity;
creating a message that includes encapsulation within a single protocol level, said message includes said first local address as a first destination address and said first global address as a second destination address; and
communicating said message toward said destination entity, said message encapsulated effective to enable an intermediate entity associated with said first global address to remove a layer of encapsulation from said message and forward to said destination entity based on said first local address and effective to enable said destination entity to remove another layer of encapsulation from said message to access information in said message.
0. 38. An apparatus, comprising:
a communication interface;
a memory device; and
one or more processors, said one or more processors programmed to perform a method comprising:
receiving a message, said message including encapsulation within a single protocol level, said message storing a first global address and a first local address, said first global address corresponding to a first entity, said first entity of a private network, said first entity reachable from outside the private network by a combination of the first local address and the first global address;
removing at least one level of encapsulation from said message; and
accessing any remaining level of encapsulation, wherein:
said message including multiple levels of encapsulation after said step of removing;
said step of accessing including communicating said message toward said first entity using said first global address, said message including said first local address and said first global address; and
said message being an ip packet.
22. 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:
receiving a message, said message includes encapsulation within a single protocol level, said message stores a first global address and a first local address as a destination address associated with a first entity, said first entity is on a private network, said first entity is reachable from outside the private network by a combination of the first local address and the first global address;
removing at least one level of encapsulation from said message; and
accessing a remaining level of encapsulation, said message includes multiple levels of encapsulation after said step of removing, said step of accessing includes communicating said message toward said first entity using said first global address, said message includes said first local address and said first global address, and said message is an ip packet.
21. 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:
obtaining a first local address for a destination and a first global address for said destination;
creating a message that includes encapsulation within a single protocol level, said message includes said first local address and said first global address, said message includes a first ip packet, said message includes a second ip packet encapsulated in said first ip packet, said message includes a third ip packet encapsulated in said second ip packet, said message includes a fourth ip packet encapsulated in said third ip packet, said first ip packet includes said first global address as a first destination address and said second local address as a first source address, said second local address corresponds to said source entity, said second ip packet includes said first global address as a second destination address and a second global address as a second source address, said second global address corresponds to said source entity, said third ip packet includes said first local address as a third destination address and said second global address as a third source address, said fourth ip packet includes a pseudo address; and
communicating said message toward said destination.
3. A method according to claim 2, further comprising the steps of:
providing a pseudo address to an application in said destination entity based on said message.
6. A method according to claim 5, further comprising the step of:
receiving said first pseudo address from an application, said application uses said first pseudo address to address said destination, said step of receiving is performed prior to said step of creating a message.
7. A method according to claim 6, further comprising the step of:
receiving a second pseudo address, said step of creating a message includes adding said second pseudo address to said message, said destination uses said second pseudo address to reference a source, said step of communicating is performed by said source.
8. A method according to claim 7, further comprising the steps of:
receiving said message at said destination;
accessing said second pseudo address at said destination; and
using said second pseudo address with an application on said destination.
9. A method according to claim 5, further comprising the step of:
receiving said first pseudo address, said destination uses said first pseudo address to reference a source, said step of communicating is performed by said source.
10. A method according to claim 9, further comprising the steps of:
receiving said message at said destination;
accessing said first pseudo address at said destination; and
using said first pseudo address with an application on said destination.
11. A method according to claim 5, wherein:
said message includes encapsulation within a single protocol level.
12. A method according to claim 11, further comprising the steps of:
receiving said message at an intermediate entity, said first pseudo address is stored in an inner layer of said encapsulation;
removing an outer layer of said encapsulation at said intermediate entity without changing said inner layer of said encapsulation; and
forwarding said message toward said destination.
13. A method according to claim 12, further comprising the steps of:
receiving said message at said destination;
removing another layer of said encapsulation at said destination;
accessing said first pseudo address at said destination; and
using said first pseudo address with an application on said destination.
15. A method according to claim 14, wherein:
said destination uses said pseudo address to refer to a source.
16. A method according to claim 14, wherein:
said destination uses said pseudo address to refer to said destination.
17. A method according to claim 14, wherein:
said message includes encapsulation within a single protocol level.
18. A method according to claim 17, further comprising the steps of:
removing a layer of encapsulation at said destination; and
accessing said pseudo address in a remaining layer of said encapsulation.
19. A method according to claim 17, further comprising the steps of:
removing a layer of encapsulation at said destination; and
accessing said pseudo address based on a remaining layer of said encapsulation.
25. One or more processor readable storage devices according to claim 24, wherein:
said message includes encapsulation within a single protocol level.
26. One or more processor readable storage devices according to claim 24, wherein said method further comprises the steps of:
removing a layer of encapsulation at said destination; and
accessing said pseudo address based on a remaining layer of said encapsulation.
28. An apparatus according to claim 27, wherein said method further comprises the steps of:
receiving said first pseudo address from an application, said application uses said first pseudo address to address said destination, said step of receiving is performed prior to said step of creating a message.
29. An apparatus according to claim 27, wherein:
said message includes encapsulation within a single protocol level.
31. An apparatus according to claim 30, wherein:
said message includes encapsulation within a single protocol level.
32. An apparatus according to claim 30, wherein said method further comprises the steps of:
removing a layer of encapsulation at said destination; and
accessing said pseudo address based on a remaining layer of said encapsulation.
0. 35. An apparatus according to claim 34, wherein:
said first ip packet includes said first local address; and
said second ip packet includes said first global address.
0. 36. An apparatus according to claim 34, wherein:
said message includes a fourth ip packet encapsulated in said third ip packet;
said first ip packet includes said first local address and a second local address as a first source address, said second local address corresponds to a source entity;
said second ip packet includes said first global address and a second global address as a second source address, said second global address corresponds to said source entity, said third ip packet includes said first local address as a third destination address and said second global address as a third source address, and said fourth ip packet includes a pseudo address.
0. 39. An apparatus according to claim 38, wherein:
prior to said step of removing, said message includes a first packet, a second packet encapsulated in said first packet, a third packet encapsulated in said second packet and a fourth packet encapsulated in said third packet;
said first packet includes said first global address as a first destination and a second local address as a first source, said second local address corresponds to a source entity;
said second packet includes said first global address as a second destination and a second global address as a second source, said second global address corresponds to said source entity; and
said third packet includes said first local address as a third destination.

This application claims the benefit of U.S. Provisional Application No. 60/224,864, filed on Aug. 11, 2000, which is incorporated herein by reference.

This application is related to the following Patents/Applications:

DOMAIN NAME ROUTING, U.S. Pat. No. 6,119,171, Sep. 12, 2000;

IPNET GATEWAY, Hasan S. Alkhatib and Bruce C. Wootton, U.S. application Ser. No. 09/167,709, filed on Oct. 6, 1998; and

PSEUDO ADDRESSING, Bruce C. Wootton and Hasan S. Alkhatib, U.S. application Ser. No. 09/637,803, filed on Aug. 11, 2000.

Each of the related Patents/Applications are incorporated herein by reference.

BACKGROUND

FIG. 1 depicts an IP packet.

FIG. 2 shows the format of a header of an IP packet.

FIG. 3 depicts a first packet encapsulated within a second packet.

FIG. 4 is a block diagram of two networks connected to the Internet.

FIG. 5 depicts a portion of a DNS database.

FIG. 6 depicts a portion of a DNS name space.

FIG. 7 shows how a domain name is resolved to obtain an IP address.

FIG. 8 shows how a domain name is used to obtain a local address.

FIG. 9 depicts the format of an ICMP Echo message.

FIG. 10 is a flow chart describing the steps for using an ICMP Echo Request to obtain a local address.

FIG. 11 is a flow chart describing the steps for communicating a message from a first entity to a second entity according to one embodiment of the present inventionwith the present inventioninvention claims to the precise form disclosed, and obviously many modifications and variations are possible in light of the above teaching. The described embodiments were chosen in order to best explain the principles of the invention and its practical application to thereby enable others skilled in the art to best utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto.

Alkhatib, Hasan, Tobagi, Fouad, Wootton, Bruce C

Patent Priority Assignee Title
8306064, Jan 12 2009 Trane International Inc. System and method for extending communication protocols
8621552, May 22 2007 SKYBOX SECURITY INC Method, a system, and a computer program product for managing access change assurance
9031996, Mar 15 2010 salesforce.com System, method and computer program product for creating a plurality of CNAMES for a website
9270583, Mar 15 2013 Cisco Technology, Inc.; Cisco Technology, Inc Controlling distribution and routing from messaging protocol
Patent Priority Assignee Title
5361256, Nov 27 1992 International Business Machines Corporation Inter-domain multicast routing
5623605, Aug 29 1994 THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT Methods and systems for interprocess communication and inter-network data transfer
5717686, Jan 21 1997 Lockheed Martin Corporation Cellular spacecraft TDMA communications system with call interrupt coding system for maximizing traffic throughput
5751961, Jan 31 1996 HANGER SOLUTIONS, LLC Integrated internet system for translating logical addresses of internet documents to physical addresses using integrated service control point
5777989, Dec 19 1995 International Business Machines Corporation; IBM Corporation TCP/IP host name resolution for machines on several domains
5781550, Feb 02 1996 Hewlett Packard Enterprise Development LP Transparent and secure network gateway
5790548, Apr 18 1996 Intellectual Ventures II LLC Universal access multimedia data network
5805818, Sep 11 1996 JPMORGAN CHASE BANK, N A , AS SUCCESSOR AGENT System for acknowledging availability of neighbor node using data packet containing data that is ordinarily fowarded to neighbor node
5805820, Jul 15 1996 RPX Corporation Method and apparatus for restricting access to private information in domain name systems by redirecting query requests
5826014, Feb 06 1996 GraphOn Corporation Firewall system for protecting network elements connected to a public network
5856974, Feb 13 1996 EMC Corporaton Internetwork address mapping gateway
5867667, Mar 24 1997 Cisco Technology, Inc Publication network control system using domain and client side communications resource locator lists for managing information communications between the domain server and publication servers
5884246, Dec 04 1996 TRANSGATE INTELLECTUAL PROPERTIES LTD System and method for transparent translation of electronically transmitted messages
5889953, May 25 1995 CONCORD COMMUNICATIONS, INC ; Computer Associates Think, Inc Policy management and conflict resolution in computer networks
5898830, Oct 17 1996 GraphOn Corporation Firewall providing enhanced network security and user transparency
5913210, Mar 27 1998 PRODUCT ASSOCIATION TECHNOLOGIES, LLC Methods and apparatus for disseminating product information via the internet
5937162, Apr 06 1995 GOOGLE LLC Method and apparatus for high volume e-mail delivery
5937163, Mar 26 1996 Industrial Technology Research Institute Method and system at a host node for hierarchically organizing the links visited by a world wide web browser executing at the host node
5940394, Aug 08 1996 AT&T Corp Transferring messages in networks made up of subnetworks with different namespaces
6003084, Sep 13 1996 McAfee, LLC Secure network proxy for connecting entities
6006272, Feb 23 1998 WSOU Investments, LLC Method for network address translation
6119171, Jan 29 1998 HANGER SOLUTIONS, LLC Domain name routing
6496867, Aug 27 1999 Hewlett Packard Enterprise Development LP System and method to negotiate private network addresses for initiating tunneling associations through private and/or public networks
6701437, Apr 17 1998 AVAYA Inc Method and apparatus for processing communications in a virtual private network
6886103, Oct 28 1999 Alcatel-Lucent USA Inc Method and apparatus for extending network address translation for unsupported protocols
6888837, Mar 23 1999 RPX CLEARINGHOUSE LLC Network address translation in a network having multiple overlapping address domains
20020026525,
EP817444,
/////
Executed onAssignorAssigneeConveyanceFrameReelDoc
Jan 07 2008IP DYNAMICS INC Inpro Network Facility, LLCASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0256490592 pdf
Jan 07 2008IP DYNAMICS, INC Inpro Network Facility, LLCCORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF ASSIGNOR: IP DYNAMICS INC PREVIOUSLY RECORDED ON REEL 025649 FRAME 0592 ASSIGNOR S HEREBY CONFIRMS THE NAME OF ASSIGNOR: IP DYNAMICS, INC IS CORRECT 0258480834 pdf
Aug 12 2015Inpro Network Facility, LLCF POSZAT HU, L L C MERGER SEE DOCUMENT FOR DETAILS 0374900592 pdf
Dec 11 2018F POSZAT HU, L L C INTELLECTUAL VENTURES ASSETS 121 LLCNUNC PRO TUNC ASSIGNMENT SEE DOCUMENT FOR DETAILS 0479610234 pdf
Dec 19 2018INTELLECTUAL VENTURES ASSETS 121 LLCLF CAPITAL PARTNERS, LLCASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0494250231 pdf
Date Maintenance Fee Events
Apr 22 2010M1551: Payment of Maintenance Fee, 4th Year, Large Entity.
Oct 12 2012ASPN: Payor Number Assigned.
Apr 24 2014M1552: Payment of Maintenance Fee, 8th Year, Large Entity.
Apr 13 2018M1553: Payment of Maintenance Fee, 12th Year, Large Entity.


Date Maintenance Schedule
Dec 01 20124 years fee payment window open
Jun 01 20136 months grace period start (w surcharge)
Dec 01 2013patent expiry (for year 4)
Dec 01 20152 years to revive unintentionally abandoned end. (for year 4)
Dec 01 20168 years fee payment window open
Jun 01 20176 months grace period start (w surcharge)
Dec 01 2017patent expiry (for year 8)
Dec 01 20192 years to revive unintentionally abandoned end. (for year 8)
Dec 01 202012 years fee payment window open
Jun 01 20216 months grace period start (w surcharge)
Dec 01 2021patent expiry (for year 12)
Dec 01 20232 years to revive unintentionally abandoned end. (for year 12)