USRE41024E1 - Communication using two addresses for an entity - Google Patents
Communication using two addresses for an entity Download PDFInfo
- Publication number
- USRE41024E1 USRE41024E1 US12/267,325 US26732508A USRE41024E US RE41024 E1 USRE41024 E1 US RE41024E1 US 26732508 A US26732508 A US 26732508A US RE41024 E USRE41024 E US RE41024E
- Authority
- US
- United States
- Prior art keywords
- address
- destination
- message
- entity
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime, expires
Links
- 238000004891 communication Methods 0.000 title claims abstract description 38
- 238000005538 encapsulation Methods 0.000 claims description 73
- 238000000034 method Methods 0.000 claims description 67
- 230000000977 initiatory effect Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 20
- 230000032258 transport Effects 0.000 description 15
- 230000008859 change Effects 0.000 description 14
- 239000012634 fragment Substances 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000003467 diminishing effect Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 235000008694 Humulus lupulus Nutrition 0.000 description 3
- YAFQFNOUYXZVPZ-UHFFFAOYSA-N liproxstatin-1 Chemical compound ClC1=CC=CC(CNC=2C3(CCNCC3)NC3=CC=CC=C3N=2)=C1 YAFQFNOUYXZVPZ-UHFFFAOYSA-N 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 206010038743 Restlessness Diseases 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000779 depleting effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/26—Network addressing or numbering for mobility support
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
Definitions
- IPNET GATEWAY Hasan S. Alkhatib and Bruce C. Wootton, U.S. application Ser. No. 09/167,709, filed on Oct. 6, 1998;
- the present invention is directed to a system for communicating with entities on a network.
- IP Transmission Control Protocol/Internet Protocol
- IP Internet Protocol
- An IP address is four bytes long, which consists of a network number and a host number.
- Class A There are at least three different classes of networks currently in use: Class A, Class B and Class C.
- Each class has a different format for the combination of the network number and the host number in the IP addresses.
- a Class A address includes one byte to specify the network and three bytes to specify the host. The first bit of a Class A address is a 0 to indicate Class A.
- a Class B address uses two bytes for the network address and two bytes for the host address. The first two bits of the Class B address are 10 to indicate Class B.
- the Class C address includes three bytes to specify the network and one byte for the host address. The first three bits of the Class C network address are 110 to indicate Class C.
- the formats described above allow for 126 Class A networks with 16 million hosts each; 16,382 Class B networks with up to 64K hosts each; and 4 million Class C networks with up to 256 hosts each.
- IP addresses When written out, IP addresses are specified as four numbers separated by dots (e.g. 198.68.70.1). Users and software applications rarely refer to hosts or other resources by their numerical IP address. Instead of using numbers, they use ASCII strings called domain names.
- a domain name is usually in the form of prefix.name_of_organization.top_level_domain.
- the generic domains are com (commercial), edu (educational institutions), gov (the U.S. Federal Government), int (international organizations), mil (the U.S. Armed Forces), net (network providers), and org (non-profit organizations).
- the country domains include one entry for each country.
- An example of a domain name is saturn.ttc.com.
- the term “saturn” is the prefix and may refer to a particular host in the network.
- the phrase “ttc” is the name of the organization and can be used to identify one or more networks to the outside world.
- the phrase “com” signifies that this address is in the commercial domain.
- the Internet uses a Domain Name System (DNS) to convert the domain name to an IP address.
- DNS Domain Name System
- the Internet Protocol has been in use for over two decades. It has worked extremely well, as demonstrated by the exponential growth of the Internet. Unfortunately, the Internet is rapidly becoming a victim of its own popularity it is running out of addresses. Over 4 billion addresses exist, but the practice of organizing the address space into classes wastes millions of addresses. In particular, the problem is the Class B network. For most organizations, a Class A network, with 16 million addresses is too big, and a Class C network with 256 addresses is too small. A Class B network appears to be the right solution for most companies. In reality, however, a Class B address is far too large for most organizations. Many Class B networks have fewer than 50 hosts. A Class C network would have done the job, but many organizations that ask for Class B networks thought that one day they would outgrow the 8 bit host field.
- CIDR Classless Inter Domain Routing
- NAT Network Address Translation
- This concept includes predefining a number of Class C network addresses to be local addresses (also called private addresses). The remainder of the addresses are considered global addresses.
- Global addresses are unique addresses that should only be used by one entity having access to the Internet. That is, no two entities on the Internet should have the same global address.
- Local addresses are not unique and are typically used for entities not having direct access to the Internet. Local addresses can be used by more than one organization or network. In the past, a local address could not be used to route on the Internet. Local addresses traditionally can only be used within a private network.
- NAT assumes that all of the machines on a private network will not need to access the Internet at all times. Therefore, there is no need for each machine to have a global address.
- a company can function with a small number of global addresses assigned to one or more gateway computers. The remainder of the machines on the private network will be assigned local addresses.
- the gateway machine When a particular machine on the private network using a local address attempts to initiate a communication to a machine outside of the private network (e.g. via the Internet), the gateway machine will intercept the communication, change the source machine's local address to a global address and set up a table for translation between global addresses and local addresses.
- the table can contain the destination address, port numbers, sequencing information, byte counts and internal flags for each connection associated with a host address. Inbound packets are compared against entries in the table and permitted through the gateway only if an appropriate connection exists to validate their passage.
- NAT Network Address Translation
- IPv6 Internet Protocol version 6, also known as IPng.
- IPv4 Internet Protocol version 6, also known as IPng.
- IPv6 Internet Protocol version 6, also known as IPng.
- IPv6 Internet Protocol version 6, also known as IPng.
- IPv6 Internet Protocol version 6, also known as IPng.
- IPv6 Internet Protocol version 6, also known as IPng.
- IPv6 Internet Protocol version 6, also known as IPng.
- IPv6 Internet Protocol version 6, also known as IPng
- IPv6 Internet Protocol version 6
- IPv6 Internet Protocol version 6
- IPv6 Internet Protocol version 6
- IPv6 Internet Protocol version 6
- IPv6 Internet Protocol version 6
- TRIAD Translating Relaying Internet Architecture Integrating Active Directories
- TRIAD includes using a shim protocol between the TCP layer and the IP layer which carries a pair of Internet Relay Tokens (IRTs).
- IRT Internet Relay Tokens
- An IRT is a potentially opaque variable-length field that extends the addressing beyond that provided by IPv4.
- the IRTs and the IP headers can include sets of local and global addresses that are changed/shifted at different hops during communication. While TRIAD does help alleviate the diminishing address problem, it requires too many changes to applications, the TCP/IP stack and the various routers along a communication path.
- the present invention provides for a systemEmbodiments are described for communicating with an entity using a local address and a global address. This system alleviates the diminishing IP address problem discussed above.
- the present inventionembodiments also allows for communication to be initiated by a source entity outside a private network that is directed to a destination entity using a local address within the private network.
- the source entity resolves the destination entity's domain name into a global address and a local address.
- Messages are sent to the destination entity using both the global address and the local address.
- both the global address and the local address are included in the message by encapsulating IP packets. Encapsulation reduces the amount of changes needed to be made to the current TCP/IP technology.
- pseudo addresses are used so that the socket layer interface can remain unchanged.
- One embodiment of the present invention includes obtaining a first local address and a first global address for a destination, and creating a message having encapsulation within a single protocol level.
- the message includes the first local address and the first global address.
- the message is communicated toward the destination.
- the inner layer of the encapsulation is used at the destination.
- Another embodiment of the present invention includes using a domain name to obtain a first local address and a first global address for a destination.
- a message is created that includes the first local address, the first global address and a first pseudo address.
- the message is communicated toward the destination based on the first local address and the first global address.
- a destination receives a message.
- the message includes encapsulation.
- a pseudo address is provided to an application on the destination. The application uses the pseudo address to reference an entity.
- the present invention This can be accomplished using hardware, software, or a combination of both hardware and software.
- the software used for the present invention ismay be stored on one or more processor readable storage media including a hard disk drive, CD-ROM, optical disk, floppy disk, RAM, ROM or other suitable storage device.
- processor readable storage media including a hard disk drive, CD-ROM, optical disk, floppy disk, RAM, ROM or other suitable storage device.
- some or all of the software can be replaced by dedicated hardware including custom integrated circuits, gate arrays, FPGAs, PLDs, and special purpose computers.
- 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 invention .
- FIG. 12 is a first example of an encapsulated packet.
- FIG. 13 is a flow chart describing the steps for responding to a message from a first entity according to one embodiment of the present invention .
- FIG. 14 is an example of an encapsulated packet.
- FIG. 15 is a block diagram explaining the use of pseudo addresses.
- FIG. 16 is a flow chart describing one embodiment of a process for using pseudo addresses.
- FIG. 17 is a flow chart describing a method for resolving a domain name and choosing a pseudo address.
- FIG. 18 depicts an entry in a table.
- FIG. 19 is a flow chart describing a process for starting communication using pseudo addresses.
- FIG. 20 depicts a set of encapsulated packets.
- FIG. 21 depicts a set of encapsulated packets.
- FIG. 22 is a flow chart describing a method for communicating.
- FIG. 23 depicts a set of encapsulated packets.
- FIG. 24 is a flow chart describing a method for sending packets using pseudo addresses.
- FIG. 25 is a block diagram of one embodiment of hardware suitable for use with the present inventionone or more embodiments.
- the TCP/IP reference model for designing and building a network includes at least four layers: the Physical and Data Link Layer, the Network Layer, the Transport Layer, and the Application Layer.
- the physical layer portion of Physical and Data Link Layer is concerned with transmitting raw bits over a communication channel.
- the design issues include ensuring that when one side sends a 1 bit it is received by the other side as a 1 bit, not as a 0 bit.
- Typical questions addressed are how many volts should be used to represent a 1 bit, how many volts to represent a 0 bit, how many microseconds a bit lasts, whether transmissions may proceed simultaneously in both directions, how the initial connection is established, how it is torn down when both sides are finished, and how many pins the network connector has.
- the data link portion of Physical and Data Link Layer takes the raw transmission facility and transforms it into a line that appears to be relatively free of transmission errors. It accomplishes this task by having the sender break the input data up into frames, transmit the frames and process the acknowledgment frames sent back by the receiver.
- the Network Layer permits a host to inject packets into a network and have them travel independently to the destination.
- the protocol used for the Network Layer on the Internet is called the Internet Protocol (IP).
- IP Internet Protocol
- the main function of the Network Layer is routing packets from a source entity to a destination entity. In most subnets, packets will require multiple hops to make the journey.
- the Network Layer software uses one or more routing methods for deciding which output line an incoming packet should be transmitted on. There are many routing methods that are well known in the art that can be used in a network layer. For purposes of this patent, no specific routing method is required. Any suitable routing method known in the art will suffice.
- the network entity receives a segment from the transport layer process.
- the network entity appends a header to the segment to form a packet.
- the packet is sent to a router on a network or the Internet.
- Each router has a table listing IP addresses for a number of distant networks and IP addresses for hosts in the network closest to the router.
- LAN Local Area Network
- ARP Address Resolution Protocol
- the machine that owns the particular IP address will respond with its Ethernet address.
- the sending machine now has the Ethernet address for sending data directly to the destination on the LAN.
- the Data Link Layer on the sender builds an Ethernet frame addressed to the destination, puts the packet into the payload field of the frame and dumps the frame onto the Ethernet.
- the Ethernet board on the destination receives the frame, recognizes it is a frame for itself, and extracts the IP packet from the frame.
- Transport Layer is designated to allow peer entities on the source and destination to carry on a “conversation.”
- TCP Transmission Control Protocol
- the first one is a reliable connection-oriented protocol that allows a byte stream originating on one machine to be delivered without error to another machine on the Internet. It fragments the incoming byte stream into discrete packets and passes each one to the Network Layer.
- the receiving TCP process reassembles the received packets into the output stream.
- TCP also handles flow control to make sure a fast sender cannot swamp a slow receiver with more packets than it can handle.
- the second protocol used in the Transport Layer on the Internet is an unreliable connectionless protocol for applications that do not want TCP sequencing or flow control.
- UDP is used for one-shot, client server type requests-reply queries for applications in which prompt delivery is more important than accurate delivery.
- the Transport Layer is considered to be above the Network Layer to indicate that the Network Layer provides a service to the Transport Layer.
- the Transport Layer is shown below the Application Layer to indicate that the Transport Layer provides a service to the Application Layer.
- the Application Layer contains the high level protocols, for example, Telnet, File Transfer Protocol (FTP), Electronic Mail—Simple Mail Transfer Protocol (SMTP), and HyperText Transfer Protocol (HTTP).
- Telnet Telnet
- FTP File Transfer Protocol
- SMTP Electronic Mail—Simple Mail Transfer Protocol
- HTTP HyperText Transfer Protocol
- the Transport Layer breaks up a stream of data from the Application Layer into a number of segments.
- the Network Layer using the Internet Protocol, transports the segments in one or more IP packets from source to destination, without regard to whether these machines or entities are on the same network.
- Each segment can be fragmented into small units as it is transported. When all of the fragments finally get to the destination machine, they are reassembled by the Network Layer into the original segment. This segment is then handed to the Transport Layer, which inserts it into the receiving process' (Application Layer) input stream.
- FIG. 1 depicts the structure of an IP packet 10 .
- IP packet 10 consists of header 12 and payload 14 .
- Payload 14 stores the data received from the Transport Layer.
- FIG. 2 depicts the format of a header of an IP packet.
- the header is depicted to include six rows. Each row is 32 bits wide. The first five rows of the header comprise a 20 byte fixed portion of the header. The last row of the header provides a variable sized Options section 22 .
- Version field 24 keeps track of which version of the protocol the packet belongs to. The current version used on the Internet is version 4.
- IHL field 26 describes the length of the header in 32 bit words.
- Type field 28 indicates the type of service requested. Various combinations of reliability and speed are possible.
- Length field 30 includes the size of the packet, including both the header and the data. Identification field 32 is needed to allow the destination host to determine which segment the received fragment belongs to. All fragments of a segment contain the same identification value.
- the unused bit 33 is used to indicate that the packet was created according to the present invention and is storing both a global address and a local address for the destination.
- DF field 34 stands for don't fragment. It is an order to the routers not to fragment the segment because the destination is incapable of putting the pieces back together again.
- MF field 36 stands for more fragments. All fragments except for the last one have this bit set.
- Fragment offset field 38 indicates where in the current segment this fragment belongs.
- Time to Live field 40 is used to limit packet lifetime. It is supposed to count time in seconds, allowing a maximum lifetime of 255 seconds. In practice, it may count hops.
- Protocol Field 42 indicates which transport layer type is to receive the segment. TCP is one possibility, UDP is another.
- the present invention isEmbodiments are not limited to any particular protocol.
- Checksum field 44 verifies the header. One method for implementing a checksum is to add up all 16 bit half words as they arrive and take the ones compliment of the result. Note that the checksum must be re-computed at each hop because the Time to Live field 40 changes.
- Source field 46 indicates the IP address for the source of the packet and destination field 48 indicates the IP address for the destination of the packet.
- Options field 22 is a variable length field designed to hold other information. Currently, options used on the Internet indicate security, suggested routing path, previous routing path and time stamps. In one embodiment of the present invention , it is contemplated that the source and the destination's local address are added to Options field 22 . In some alternatives, the two local addresses can be encoded, compressed, encrypted or otherwise altered to provide more efficient use of storage space, security or compatibility. In embodiments where the address is encoded, encrypted, compressed, etc., the information stored is said to represent the address. That is, an entity can read that information and extract (or identify) the address from that information.
- the local addresses of the source, destination or both are added to the end of the data portion of a packet as a trailer.
- Length field 30 needs to account for the extra bytes added at the end of the data field.
- Legacy routers can treat this trailer as an integral part of the data field and ignore it.
- source field 46 and destination field 48 can be enlarged to 64 bits each so that they each can store a local address and a global address.
- the local address and global address of an entity are both stored in a packet by utilizing encapsulation. That is, one IP packet is encapsulated inside the payload of another IP packet.
- FIG. 3 depicts two IP packets 90 and 92 .
- Packet 90 has the header portion 94 and payload 96 .
- Packet 92 has a header portion 98 and a payload 100 .
- Packet 92 is encapsulated inside packet 90 . That is, packet 92 is stored inside payload portion 96 of packet 90 .
- a gateway is an entity that connects a network to the Internet (or another network). Each of the hosts on the network can be assigned a local address. The same local addresses can be used by many different networks.
- a source entity sends data to a destination entity with a local address
- the data is sent to the global address for the destination's network.
- the data also includes an indication of the local address of the destination entity.
- the gateway associated with the global address receives the data and forwards it to the entity associated with the local address within the data.
- communication with an entity using local address can be initiated by an entity outside the network.
- the gateway receiving the data and forwarding it to the entity does not need to perform multiple domain name resolutions, and the structure of the IP packet has not been changed.
- FIG. 4 shows two networks connected to Internet 138 .
- the first network includes Gateway 1 which has a global address GIP 1 and a local address of LIP 1 .
- Gateway 1 is connected to a private network 144 which is made up of a number of entities using local addresses.
- FIG. 4 shows three entities 146 , 148 and 150 ; however, more or less than three entities can also be used.
- Entity 146 is labeled as A, and has a local address of LIP A . Entity A does not have a global address.
- FIG. 4 shows Gateway 2 connected to Internet 138 and to private network 162 .
- Gateway 2 has a global address of GIP 2 .
- FIG. 4 shows part of network 162 including three entities 166 , 168 and 170 ; however, more or less than three entities can be used.
- Entity 170 is labeled as B and has a local address of LIP B .
- examples will be made referring to the entities depicted in FIG. 4 .
- Other configurations will also work with the present invention .
- the present invention allowsSome embodiments allow entity A (“A”) to initiate a communication with entity B (“B”) by using both the global address for Gateway 2 (GIP 2 ) and the local address for B (LIP B ).
- FIG. 4 shows two gateways in the path between entity A and entity B. In other embodiments, more or less than two gateways can be in the path between entity A and entity B.
- a and B are computers.
- a and B can be other electronic devices that can communicate on the Internet.
- an application seeks to establish communication with an entity on Internet
- the application is only in possession of the entity's domain name.
- the application makes a call to a resolver process, which converts the domain name to an IP address. Every domain, whether it is a single entity or a top level domain, has a set of resource records associated with it. For a single entity, the most common resource record is its IP address.
- a resolver process gives a domain name to the domain name system, it gets back the resource records associated with that domain name.
- a resource record has five fields: domain name, time to live, class, type and value.
- the time to live field gives an indication of how stable the record is. Information that is highly stable is assigned a large value such as the number of seconds in a day.
- the third field is the class. For the Internet the class is IN.
- the fourth field tells the type of resource record.
- One domain may have many resource records. There are at least eight types of resource records that are important to this discussion: SOA, A, MX, NS, CNAME, PTR, HINFO, and TXT.
- the value field for an SOA record provides the name of the primary source of information about the name server zone, e-mail address of its administrator, a unique serial number and various flags and time outs in the value field.
- the value field for an A record holds a 32 bit IP address for the host.
- the value field for the MX record holds the domain name of the entity willing to accept e-mail for that particular domain name.
- the NS record specifies name servers.
- the CNAME record allows aliases to be created in the value field.
- a PTR record just points to another name in the value field, which allows look up of an IP address for a particular domain name.
- the value field of the HINFO record indicates the type of machine and operating system that the domain name corresponds to.
- An example of resource records for an entity, according to one embodiment of the present invention is found in FIG. 5 .
- the table of FIG. 5 includes three resource records for an entity with a domain name of B.lab.dev.Bcorp.com.
- the first resource record indicates a time to live of 86,400 seconds (one day).
- the type of record is HINFO and the value indicates that the entity is a computer from Sun Microsystems running the UNIX operating system.
- the second line is a resource record of type A, which indicates that the global address for B.lab.dev.Bcorp.com is GIP 2 and the local address is LIP B .
- B.lab.dev.Bcorp.com is entity B 170 of FIG. 4 .
- the third line indicates that e-mail for B.lab.dev.Bcorp.com should be sent to dev.Bcorp.com. It is likely that there will be a DNS record, which indicates the IP address for dev.Bcorp.com.
- the first row of data in table 5 (type of HINFO) and third row of data table FIG. 5 (type of MX) are depicted as standard DNS table entries.
- the second row of the table of FIG. 5 (type is A) is a modification of the standard DNS record.
- the standard DNS record only includes the global IP address.
- the DNS table structure is changed (e.g. as per FIG. 5 ) to store both a global IP address and a local IP address.
- resource record A only stores the global IP address and a new type of resource record is created to store the local IP address.
- the DNS name space is divided into non-overlapping zones. Each zone is some part of the Internet space and contains name servers holding the authoritative information about that zone. Normally, a zone will have one primary name server and one or more secondary name servers which get their information from the primary name server.
- a resolver process When a resolver process has a query about a domain name, it passes the query to one of the local name servers. If the entity being sought falls under the jurisdiction of that name server, then that domain name server returns the authoritative resource record. An authoritative record is one that comes from the authority that manages the record. If, however, the entity is remote and no information about the requested host is available locally, the name server sends a query message to the top level name server for the entity requested.
- the top level name server will then provide the resource records to the local name server which may cache the information and forwarded it to the original resolver process. Since the cached information in the local name server is not the authoritative record, the time to live field is used to determine how long to use that information.
- FIG. 6 shows a portion of exemplar DNS name space within the .com domain or zone.
- FIG. 6 shows five levels in the domain space; however, in reality it can be much more than five or less than five levels. Additionally, FIG. 6 shows two domain entities directly below the primary name server (.com). However, in reality there can be many entities below the .com level.
- FIG. 6 is used to provide an example for teaching the present inventionsome embodiments.
- FIG. 6 shows .com entity 200 .
- server 202 Directly below .com entity 200 is server 202 with a domain name of Acorp.com and server 204 with a domain name of Bcorp.com.
- Below server 202 is entity 206 and entity 208 .
- the domain name for entity 206 is r&d.Acorp.com and the domain name for entity 208 is admin.Acorp.com.
- entity 210 which has a domain name of A.r&d.Acorp.com. Note that entity 210 corresponds to entity A 146 of FIG. 4 . Thus, the domain name for entity A is A.r&d.Acorp.com.
- the entities below server 204 include entity 220 and entity 222 .
- the domain name of entity 220 is dev.Bcorp.com and the domain name of entity 222 is sales.Bcorp.com.
- Below entity 220 is entity 224 , which has a domain name of lab.dev.Bcorp.com.
- entity 224 is entity 226 , which has a domain name of B.lab.dev.Bcorp.com.
- Entity 226 corresponds to entity B 170 of FIG. 4 .
- B has a domain name of B.lab.dev.Bcorp.com.
- entities 202 , 204 , 206 , 208 , 220 , 222 and 224 can all be domain name servers.
- Entity 206 corresponds to Gateway 1
- entity 224 corresponds to Gateway 2 of FIG. 4 .
- A seeks to initiate communication with B
- A is aware of B's domain name (e.g., B.lab.dev.Bcorp.com); however, A is not aware of the local address or the global address for B.
- A In order to obtain the global and local addresses, A must use the domain name resolution process.
- A can provide a domain name of B to a domain name resolver and the domain name resolver will provide A with the global IP address of B.
- the resolving process will return both the global address and the local address for a given domain name.
- FIG. 7 provides an illustration of how a domain name is resolved into a global address and local address according to one embodiment of the present invention .
- A.R&D.Acorp.com 210 sends a request to r&d.Acorp.com 206 seeking resolution of the domain name for B.
- a process on r&d.Acorp.com 206 may ask a few of the nearby name servers to resolve B, but none are likely to have the information to resolve the name so it will send a name resolution request via one or more UDP packets to the server for .com (e.g. com-server.net 200 ).
- the process on com-server.net 200 does not know the address of B.lab.dev.Bcorp.com, but it knows all of its own children (e.g.
- com-server.net 200 forwards the request to the name server for Bcorp.com 204 .
- Bcorp.com 204 forwards a request to dev.Bcorp.com 220 which has the authoritative resource records for B.lab.dev.Bcorp.com.
- dev.Bcorp.com will use the domain name to access a table of resource records (e.g., similar to the table of FIG. 5 ) to locate GIP 2 and LIP B .
- the global and local addresses are returned to Bcorp.com, which in turn returns the information to com-server.net 200 , which returns the value to R&D.Acorp.com 206 which presents the information to the originator A.r&d.Acorp.com 210 .
- this information is not authoritative, since changes made at dev.Bcorp.com are not propagated to all of the caches in the world that may know about it. For this reason, cache entries should not live too long.
- the authoritative name server dev.Bcorp.com returns only the global address, and not the local address. Entity A must obtain the local address for B separately. In that embodiment, A will make a second domain name resolution request directly to the global address returned from the initial domain name resolution request. Thus, A will send a request directly to GIP 2 , which is a request to lab.dev.Bcorp.com. This is illustrated in FIG. 8 which shows a.r&d.Acorp.com making a domain name resolution request directly to lab.dev.Bcorp.com 224 . Server 224 will keep a table which stores domain names and associated local addresses. Server 224 will use the domain name received in the request from server 210 to access the table and return the local address back to server 210 .
- host A can obtain the local address of host B by using an ICMP Echo Request.
- ICMP is a protocol used to test and control the Internet. ICMP uses the basic support of IP as if it were a higher level protocol; however, ICMP is actually an integral part of IP. ICMP messages are sent in several situations. For example, when a packet cannot reach its destination, when a gateway does not have the buffering capacity to forward a packet and when the gateway can direct the host to send traffic on a shorter route.
- the Internet Protocol is not designed to be absolutely reliable.
- the historical purpose of the ICMP control messages is to provide feedback about problems in the communications environment, not to make the Internet Protocol reliable.
- FIG. 9 depicts the format of an ICMP Echo Request or Echo Reply message.
- Type field 400 of the ICMP message is set to 8 for Echo Request message and 0 for Echo Reply message.
- Code field 402 is one byte and is set to 0 for Echo Request messages and Echo Reply messages.
- Field 404 is a 16 bit check sum.
- the two byte identifier field 406 can be used to identify matching Echo Requests and Replies.
- the two byte sequence number field 408 can also be used to match Echo Requests and Replies.
- identifier 406 might be used like a port in TCP to identify a session and a sequence number 408 might be incremented on each Echo Request sent.
- the node processing the Echo Request returns the same values in the Echo Reply.
- Data 410 received in an Echo Request message is typically returned with the Echo Reply message.
- FIG. 10 provides a flow chart describing the process for obtaining IP addresses in the embodiment that obtains the local IP address using an ICMP Echo Request.
- the domain name is resolved for a global IP address as described above with respect to FIG. 7 .
- host A sends an ICMP Echo Request to Gateway 2 .
- the packet containing the ICMP Echo Request stores the domain name as described above.
- Gateway 2 stores a table for translating domain names to local addresses.
- the ICMP Echo Request is received at Gateway 2 Recognizing the domain name, in step 426 , Gateway 2 sends an ICMP Echo Reply back to host A.
- Data portion 410 of the IMCP echo reply stores the local address for B.
- the local address can be stored in other portions of the packet.
- the local address for B can be appended to the end of a packet's payload.
- host A receives the ICMP Echo Reply from Gateway 2 .
- step 430 A reads the local IP address.
- Gateway 2 can send the ICMP Echo Request rather than host A.
- FIG. 11 is a flow chart describing the steps for A to initiate communication with B.
- A resolves the domain name to acquire the local and global addresses (e.g. GIP 1 and LIP B ).
- A builds a packet that is encapsulated within a single protocol level.
- FIG. 12 provides an example of an encapsulation within a single protocol level. That is, the levels of the encapsulation are in the same protocol level. In one example, each level of encapsulation is an IP packet.
- FIG. 12 depicts 4 packets: 500 , 502 , 506 and 508 .
- Packet 500 includes header portion 520 and payload portion 522 .
- Header portion 520 stores a destination address of GIP 2 and a source address of LIP A .
- Payload 522 stores packet 502 .
- header portion 520 can store a destination address of LIP 1 .
- Packet 502 includes a header portion 524 and payload portion 526 .
- Header portion 524 stores a destination address of GIP 2 and a source address of GIP 1 .
- Payload field 526 stores packet 506 .
- Packet 506 includes header portion 530 and payload portion 532 .
- Header portion 530 stores a destination address of LIP B and a source address of GIP 1 .
- Payload portion 532 stores packet 508 .
- header portion 530 can include a source address of LIP 2 .
- Packet 508 includes header portion 534 and payload portion 536 .
- Header portion 534 stores a destination address of LIP B and source address of LIP A .
- Payload portion 536 stores the data being communicated from A to B.
- the set of encapsulated packet depicted in FIG. 12 have an appropriate numbers of levels of encapsulation based on the number of gateways or other intermediate devices. If more gateways or other intermediate devices are used, more levels of encapsulation will be used.
- Step 452 of FIG. 11 includes building the encapsulated packet of FIG. 12 .
- host A sends the encapsulated packet of FIG. 12 toward host B.
- the encapsulated packet of FIG. 12 is received by Gateway 1 .
- Gateway 1 removes the outermost level of encapsulation. For example, in the encapsulated packet of FIG. 12 , Gateway 1 removes packet 500 so that only packets 502 , 506 and 508 remain.
- Gateway 1 sends the remaining encapsulated packet (which includes packets 502 , 506 , and 508 ) to Gateway 2 .
- Gateway 2 receives the encapsulated packet and removes one layer of encapsulation.
- Gateway 2 removes packet 502 , the outer most packet.
- Gateway 2 sends the remaining encapsulated packet to host B.
- host B receives the remaining encapsulated packet (with packet 506 and packet 508 ) and removes the outermost layer of encapsulation.
- B removes packet 506 and stores the destination and source addresses from header portion 530 .
- step 466 B acts on packet 508 which is the data desired to be transmitted from A to B.
- the data from payload 536 is communicated to the TCP protocol layer software.
- FIG. 13 provides a flow chart explaining how B responds back to A after the steps of FIG. 11 .
- B builds an encapsulated packet to be sent to host A as a reply.
- FIG. 14 as an example of an encapsulated packet created by B in step 580 .
- FIG. 14 provides an example of encapsulation with a single protocol level. That is, packets 620 , 622 , 624 and 626 are all IP packets.
- Packet 620 includes a header 640 and payload 642 .
- Header 640 stores a destination address of GIP 1 and a source address of LIP B .
- Payload 642 stores packet 622 .
- Packet 622 includes header portion 644 and data payload 646 .
- Header portion 644 stores a destination address of GIP 1 and a source address of GIP 2 .
- Payload 646 stores packet 624 .
- Packet 624 includes a header portion 650 and payload portion 652 .
- Header portion 650 stores a destination address LIP A and a source address of GIP 2 .
- Payload portion 652 stores packet 626 .
- Packet 626 includes a header portion 658 and payload portion 660 .
- Header portion 658 stores a destination address LIP A and a source address of LIP B .
- Payload portion 660 stores data to be sent from B to A.
- step 582 of FIG. 13 B sends encapsulated packet 620 to A.
- Gateway 2 receives encapsulated packet 620 and removes one layer of encapsulation. That is, Gateway 2 removes packet 620 leaving packet 622 , packet 624 and packet 626 .
- Gateway 2 sends packet 622 (encapsulating packets 624 and 626 ) to Gateway 1 .
- Gateway 1 receives packet 622 and removes one layer of encapsulation. That is, Gateway 1 removes packet 622 .
- step 590 Gateway 1 sends encapsulated packet 624 to A.
- A receives encapsulated packet 624 and removes one layer of encapsulation.
- Entity A removes packet 624 , leaving packet 626 .
- Entity A also stores the destination and source addresses from header 650 .
- A acts on the original packet 626 meant for transmission from B to A.
- data from payload portion 660 is communicated to TCP protocol software on entity A. Note that the above embodiment uses domain names, local addresses, global addresses and encapsulation at the network layer. Other embodiments use the same technology at other layers (e.g. transport layer) of the network.
- pseudo addresses More information about pseudo addresses can be found in PSEUDO ADDRESSING, Bruce C. Wootton and Hasan S. Alkhatib, U.S. Application Serial No. 09/637,803, filed on Aug. 11, 2000, incorporated herein by reference.
- the use of pseudo addresses insulates the application from addressing formats of the lower level protocols, allows for communication to continue after an entity has changed addresses and allows the socket interface for an application to remain the same when using the present invention.
- FIG. 15 is a block diagram illustrating the use of pseudo addresses.
- a pseudo address in its most generic form is an identification of an entity that is different from the entity's actual address.
- the pseudo address is a random address chosen to identify a particular entity. The randomly chosen address is not the entity's actual address.
- the pseudo address is in the format for IPv4 addresses.
- Depicted in FIG. 15 are application 702 and network software 704 , which are both running on a single computer (in one embodiment).
- Network software 704 pertains to software at the transport layer, network layer, and other layers.
- Application software 702 pertains to software at the application layer.
- FIG. 15 also shows application 712 and network software 714 , both of which are running on a single computer (in one embodiment).
- application 702 communicates with application 712 .
- both applications 702 and 712 use pseudo addresses to communicate with each other.
- application 702 communicates with application 712 using network software 704 and network software 714 .
- Application 702 identifies application 712 to network software 704 using a domain name and a pseudo address.
- Network software 704 communicates with network software 714 using Internet addresses (e.g. global addresses).
- network software 704 and network software 714 use IPv4 addresses. Other address formats can also be used, including IPv6.
- Application 712 identifies application 702 to network software 714 using a pseudo address and a domain name. Thus, from the point of view of the application software, the pseudo addresses are being used to identify the applications.
- IPv4 application can be made to work with IPv6. Note that if application 702 asks network software 704 for its own IP address, then network 704 will respond with the pseudo address.
- FIG. 16 is a flow chart describing a high level operation of one embodiment of the present invention .
- the entity wishing to initiate communication performs a domain name resolution. For purposes of a first example, assume that entity A of FIG. 4 is attempting to initiate communication with entity B.
- the communication is started.
- the two entities communicate with each other.
- the communication ends.
- FIG. 17 is a flow chart describing one embodiment of the method for domain name resolution, corresponding to step 732 of FIG. 16 .
- host/entity A is initiating communication to host/entity B.
- the application software running on entity A requests a domain name resolution.
- the network software on A will initiate a process that will result in the acquisition of global address GIP 2 and a local address LIP B for B.
- the network software for entity A will chose a pseudo address.
- the pseudo address is chosen randomly.
- a list of pseudo addresses to choose from can be pre-stored.
- the pseudo address is in the same format as typical IPv4 Internet addresses.
- step 756 the pseudo address chosen in step 754 , the global address resolved in step 752 and the local address resolved in step 752 are all stored in a table. In another embodiment, the domain name is also stored in the table. In step 758 , the pseudo address is provided to the application software.
- FIG. 18 shows an example of an entry in the table mentioned in step 756 .
- the entry includes four fields: local pseudo address 782 , remote pseudo address 784 , remote local IP address 786 and remote global IP address 788 .
- local pseudo address 782 is a pseudo address used by entity B to identify entity A.
- Remote pseudo address 784 is a pseudo address used by entity A to identify entity B.
- Remote local IP address 786 is the local address of entity B and remote global IP address 788 is a global IP address associated with entity B.
- a table may contain less than all four fields. In other embodiments, this information can be stored in data structures other than a table. The exact format of the data structure is not important to the present invention .
- the information depicted in FIG. 18 can be stored in one or more of the encapsulated packets.
- the information can be stored in a header of an IP packet, in a data portion of an IP packet, or as another level of encapsulation.
- FIG. 19 is a flow chart describing the process of starting communication, which is step 730 of FIG. 16 .
- network software 704 of entity A receives a request from application 702 of entity A to communicate with application 712 of entity B.
- the request includes the pseudo address that application 702 uses to identify entity B.
- the request can include an identification of entity B by domain name or other means.
- network software 704 of entity A builds a set of encapsulated packet which includes the pseudo address that entity A uses to identify entity B.
- FIG. 20 provides an example set of encapsulated packets created in step 802 .
- FIG. 20 depicts 4 packets: 900 , 910 , 920 and 930
- Packet 900 includes header portion 902 and payload portion 904 .
- Header portion 902 stores a destination address of GIP 2 and a source address of LIP A .
- Payload 904 stores packet 910 .
- Packet 910 includes a header portion 912 and payload portion 914
- Header portion 912 stores a 110 destination address of GIP 2 and a source address of GIP 1 .
- Payload field 914 stores packet 920 .
- Packet 920 includes header portion 922 and payload portion 924 .
- Header portion 922 stores a destination address of LIP B and a source address of GIP 1 .
- Payload portion 924 stores packet 930 .
- Packet 930 includes header portion 932 and payload portion 934
- Header portion 932 stores a source address of LIP A the destination address is the pseudo address PA B , which is the pseudo address that A uses to refer to B.
- Payload portion 934 stores the data being communicated from A to B.
- step 804 host A sends the encapsulated packets of FIG. 20 toward host B.
- step 806 the encapsulated packets are received by Gateway 1 .
- Gateway 1 removes the outer most level of encapsulation.
- step 808 Gateway 1 sends the remaining encapsulated packets to Gateway 2 .
- step 810 Gateway 2 receives the encapsulated packets and removes one layer of encapsulation.
- Gateway 2 sends the remaining encapsulated packets to host B.
- host B receives the remaining encapsulated packets and removes the outer most layer of encapsulation. For example, B removes packet 920 and accesses packet 930 .
- host B accesses the pseudo address PA B that host A uses to identify host B.
- host B stores PA B , LIP A and GIP 1 in the table.
- entity B chooses a pseudo address for referring to entity A.
- the chosen pseudo address from step 820 is added to the table.
- the pseudo address chosen in step 820 is provided to application 712 on entity B.
- entity B builds a set of encapsulated packets, which include the pseudo addresses.
- FIG. 21 depicts the set of encapsulated packets 950 , 960 , 970 and 980 created in step 826 .
- Packet 950 includes header 952 and payload 954 .
- Header 952 stores a destination address of GIP 1 and a source address of LIP B .
- Payload 954 stores packet 960 .
- Packet 960 includes header portion 962 and data payload 964 Header portion 962 stores a destination address of GIP 1 , and a source address of GIP 2 .
- Payload 964 stores packet 970 .
- Packet 970 includes a header portion 972 and payload portion 974 Header portion 972 stores a destination address LIP A and a source address of GIP 2 .
- Payload portion 974 stores packet 980 .
- Packet 980 includes a header portion 982 and payload portion 984 .
- Header portion 982 stores a destination address PA A and a source address of PA B .
- PA A is the pseudo address chosen in step 820 and used by host B to refer to host A.
- step 828 B sends the encapsulated packets toward A.
- Gateway 2 receives the encapsulated packets and removes the outermost layer of encapsulation.
- Gateway 2 sends the remaining encapsulated packets to Gateway 1 .
- Gateway 1 receives the encapsulated packets and removes the outermost layer of encapsulation.
- Gateway 1 sends the remaining encapsulated packet to entity A.
- A receives the encapsulated packets and removes one layer of encapsulation. That is, A removes packet 970 , leaving packet 980 .
- host A access the pseudo address PA B from packet 980 .
- the pseudo address PA B is entered into the table on entity A.
- FIG. 22 is a flow chart describing the process for communicating between entity A and entity B, which is step 734 of FIG. 16 .
- network software 704 of entity A receives data and the pseudo address from application 702 of entity A as part of a request to send that data to entity B.
- network software 704 accesses the table using the pseudo address to identify the global address and local address for sending information to entity B.
- connection changes.
- one of the entities may change its IP address. If one of the entities is a cellular telephone traveling between two distinct areas, the IP address may change when entering the new area. Other scenarios for an IP address changing also apply, as well as other reasons for changes in connections.
- the method loops to step 1010 .
- the set of encapsulated packets are created and include a flag indicating that there has been a change in the connection.
- the flag can be in the payload portion of a packet, can be in the options field of a packet, can be another packet encapsulated in the above mentioned set of packets, etc.
- a separate message can be sent from A to B to indicate the change in the connection. The separate message can be sent using an existing protocol or a newly created protocol.
- FIG. 23 depicts an exemplar set of encapsulated packets 1050 , 1060 , 1070 , 1080 created in step 1006 .
- Step 1010 would include creating a similar packet, but with the appropriate flag (in one embodiment).
- Packet 1050 includes header portion 1052 and payload portion 1054 .
- Header portion 1052 stores a destination address of GIP 2 and a source address of LIP A .
- Payload 1054 stores packet 1060 .
- Packet 1060 includes a header portion 1062 and payload portion 1064 Header portion 1062 stores a destination address of GIP 2 and a source address of GIP 1 .
- Payload field 1064 stores packet 1070 .
- Packet 1070 includes header portion 1072 and payload portion 1074
- Header portion 1072 stores a destination address of LIP B and a source address of GIP 1 .
- Payload portion 1074 stores packet 1080
- Packet 1080 includes header portion 1082 and payload portion 1084 .
- Header portion 1082 stores a source address of PA A and a destination address of PA B .
- step 1012 entity B determines whether the packet contains the flag indicating that there has been a change in the connection. If the packet does not include the flag, then the data is presented to the application in step 1014 . Additionally, in step 1014 , the pseudo address for the source of the data is presented to the application. In some embodiments, the pseudo address of the destination can also be presented to the application. If, in step 1012 , it is determined that the received packet includes the flag indicating that there has been a change in the connection, then 1016 and the table is accessed using the source's pseudo address in the packet (step 1016 ).
- This pseudo address is used to match the remote pseudo address field of one of the entries in the table.
- the table entry matching the pseudo address is then updated in step 1018 by replacing the remote global address or remote local address with the appropriate address from the received packets. After step 1018 , the method loops to step 1014 .
- FIG. 24 is a flow chart describing the process sending the encapsulated packets (Step 1008 of FIG. 22 ).
- host A sends the encapsulated packets of FIG. 23 toward host B.
- the encapsulated packets are received by Gateway 1 .
- Gateway 1 removes the outermost level of encapsulation (e.g. packet 1050 ).
- Gateway 1 sends the remaining encapsulated packets ( 1060 , 1070 , 1080 ) to Gateway 2 .
- Gateway 2 receives the encapsulated packets and removes the outer layer of encapsulation (Packet 1060 ).
- Gateway 2 sends the remaining encapsulated packets ( 1070 and 1080 ) to host B.
- host B receives the remaining encapsulated packets and removes the outer packet 1070 .
- packet 1080 can be accessed.
- entity B can access PA A and PA B .
- PA A is presented to the application on entity B.
- PA B can also be presented to the application on entity B.
- packet 1080 would have the local address LIP A and LIP B as the source and destination, and entity B would use LIP A and LIP 1 , to access the table to identify PA A for presentation to the application on entity B.
- Packet 1080 was not used to route and was not altered during the communication. This enables preservation of the packet as is until it reaches the destination, allowing the application of IPsec to the original packet 1080 . Such an arrangement allows for the use of IPsec end-to-end from source to destination. IPsec breaks if the content of the original packet is modified along the way. When IPsec is used (e.g. for a virtual private network), packet 1080 may be encrypted or otherwise protected for security/privacy reasons.
- FIG. 25 shows one example of a hardware architecture for computers used for the present invention .
- the computer includes a processor 1202 , a memory 1204 , amass storage device 1206 , a portable storage device 1208 , a first network interface 1210 , a second network interface 1212 and I/O devices 1214 .
- the choice of processor is not critical as long as a suitable processor with sufficient speed is chosen.
- Memory 1204 could be any conventional computer memory.
- Mass storage device 1206 could include a hard drive, CD-ROM or any other mass storage device.
- Portable storage 1208 could include a floppy disk drive or other portable storage device. If the computer is acting as a router, it includes two or more network interfaces. In other embodiments, the computer could include only one network interface.
- the network interfaces can include network cards for connecting to an Ethernet or other type of LAN.
- one or more of the network interfaces can include or be connected to a firewall.
- I/O devices 1214 can include one or more of the following: keyboard, mouse, monitor, display, printer etc.
- Software used to perform the methods of the present invention are likely to be stored in mass storage 1206 (or any form of non-volatile memory), a portable storage media (e.g. floppy disk or tape) and, at some point, in memory 1204 .
- mass storage 1206 or any form of non-volatile memory
- portable storage media e.g. floppy disk or tape
- 201 can be used to implement a gateway, a router, other host, etc.
- the above described hardware architecture is just one suitable example depicted in a generalized and simplified form.
- the present inventionEmbodiments could include dedicated hardware, a dedicated router with software to implement the invention or other software and/or hardware architectures that are suitable.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
Claims (40)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/267,325 USRE41024E1 (en) | 2000-08-11 | 2008-11-07 | Communication using two addresses for an entity |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US22486400P | 2000-08-11 | 2000-08-11 | |
US09/927,911 US7133404B1 (en) | 2000-08-11 | 2001-08-10 | Communication using two addresses for an entity |
US12/267,325 USRE41024E1 (en) | 2000-08-11 | 2008-11-07 | Communication using two addresses for an entity |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/927,911 Reissue US7133404B1 (en) | 2000-08-11 | 2001-08-10 | Communication using two addresses for an entity |
Publications (1)
Publication Number | Publication Date |
---|---|
USRE41024E1 true USRE41024E1 (en) | 2009-12-01 |
Family
ID=37301265
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/927,911 Ceased US7133404B1 (en) | 2000-08-11 | 2001-08-10 | Communication using two addresses for an entity |
US12/267,325 Expired - Lifetime USRE41024E1 (en) | 2000-08-11 | 2008-11-07 | Communication using two addresses for an entity |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/927,911 Ceased US7133404B1 (en) | 2000-08-11 | 2001-08-10 | Communication using two addresses for an entity |
Country Status (1)
Country | Link |
---|---|
US (2) | US7133404B1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100177787A1 (en) * | 2009-01-12 | 2010-07-15 | Trane International Inc. | System and Method for Extending Communication Protocols |
US20110225206A1 (en) * | 2010-03-15 | 2011-09-15 | Salesforce.Com, Inc. | System, method and computer program product for creating a plurality of cnames for a website |
US8621552B1 (en) * | 2007-05-22 | 2013-12-31 | Skybox Security Inc. | Method, a system, and a computer program product for managing access change assurance |
US9270583B2 (en) | 2013-03-15 | 2016-02-23 | Cisco Technology, Inc. | Controlling distribution and routing from messaging protocol |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8868715B2 (en) | 2001-10-15 | 2014-10-21 | Volli Polymer Gmbh Llc | Report generation and visualization systems and methods and their use in testing frameworks for determining suitability of a network for target applications |
US8543681B2 (en) * | 2001-10-15 | 2013-09-24 | Volli Polymer Gmbh Llc | Network topology discovery systems and methods |
JP4010830B2 (en) * | 2002-03-05 | 2007-11-21 | 富士通株式会社 | Communication apparatus and network system |
KR100424613B1 (en) * | 2002-04-22 | 2004-03-27 | 삼성전자주식회사 | Method for spoofing domain name system in local network and local network system thereof |
US20040153502A1 (en) * | 2003-02-04 | 2004-08-05 | Luliang Jiang | Enhanced DNS server |
FR2853187B1 (en) * | 2003-03-28 | 2006-01-13 | At & T Corp | SYSTEM FOR ALL NETWORK APPLICATION TO OPERATE TRANSPARENTLY THROUGH A NETWORK ADDRESS TRANSLATION DEVICE |
DE602005023512D1 (en) * | 2004-09-30 | 2010-10-21 | France Telecom | Method and system for routing in communication networks between a first node and a second node |
US7647380B2 (en) * | 2005-01-31 | 2010-01-12 | Microsoft Corporation | Datacenter mail routing |
US7778230B2 (en) * | 2005-08-02 | 2010-08-17 | WAAU Inc. | Mobile router device |
US7813314B2 (en) | 2005-08-02 | 2010-10-12 | Waav Inc. | Mobile router device |
US20070134001A1 (en) * | 2005-12-08 | 2007-06-14 | Electronics And Telecommunications Research Institute | Polarization division multiplexed optical transmission system |
US7653019B2 (en) * | 2006-07-31 | 2010-01-26 | Alcatel-Lucent Usa Inc. | Method of distributing identical data to mobile units |
EP2087711B1 (en) * | 2006-10-31 | 2010-12-29 | Telefonaktiebolaget LM Ericsson (publ) | Methods and node for IP network interfacing |
US7583674B2 (en) * | 2006-11-20 | 2009-09-01 | Alcatel Lucent | Switch and method for supporting internet protocol (IP) network tunnels |
US8422491B2 (en) * | 2007-04-18 | 2013-04-16 | Waav Inc. | Mobile network configuration and method |
US20080280618A1 (en) * | 2007-05-08 | 2008-11-13 | Tjietse Van Der Gaast | Method of distributing identical data and different data to mobile units |
US9369302B1 (en) | 2008-06-24 | 2016-06-14 | Amazon Technologies, Inc. | Managing communications between computing nodes |
JP5239618B2 (en) * | 2008-08-19 | 2013-07-17 | 沖電気工業株式会社 | Address translation apparatus, method and program, and node |
US8832311B1 (en) * | 2010-08-05 | 2014-09-09 | Chickasaw Management Company, Llc | Diverter |
KR102043099B1 (en) * | 2013-05-02 | 2019-11-11 | 삼성전자주식회사 | Method and apparatus for maanaging mobility in a ip based network |
JP6323024B2 (en) * | 2014-01-21 | 2018-05-16 | 富士通株式会社 | Transmission apparatus and transmission method |
US9756012B1 (en) * | 2014-06-16 | 2017-09-05 | Amazon Technologies, Inc. | Domain name service information propagation |
US20230367961A1 (en) * | 2022-05-12 | 2023-11-16 | Dell Products L.P. | Automated address data determinations using artificial intelligence techniques |
Citations (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5361256A (en) | 1992-11-27 | 1994-11-01 | International Business Machines Corporation | Inter-domain multicast routing |
US5623605A (en) | 1994-08-29 | 1997-04-22 | Lucent Technologies Inc. | Methods and systems for interprocess communication and inter-network data transfer |
EP0817444A2 (en) | 1996-07-01 | 1998-01-07 | Sun Microsystems, Inc. | System for context-dependent name resolution |
US5717686A (en) | 1997-01-21 | 1998-02-10 | Lockheed Martin Corporation | Cellular spacecraft TDMA communications system with call interrupt coding system for maximizing traffic throughput |
US5751961A (en) | 1996-01-31 | 1998-05-12 | Bell Communications Research, Inc. | Integrated internet system for translating logical addresses of internet documents to physical addresses using integrated service control point |
US5777989A (en) | 1995-12-19 | 1998-07-07 | International Business Machines Corporation | TCP/IP host name resolution for machines on several domains |
US5781550A (en) | 1996-02-02 | 1998-07-14 | Digital Equipment Corporation | Transparent and secure network gateway |
US5790548A (en) | 1996-04-18 | 1998-08-04 | Bell Atlantic Network Services, Inc. | Universal access multimedia data network |
US5805820A (en) | 1996-07-15 | 1998-09-08 | At&T Corp. | Method and apparatus for restricting access to private information in domain name systems by redirecting query requests |
US5805818A (en) | 1996-09-11 | 1998-09-08 | Novell, Inc. | System for acknowledging availability of neighbor node using data packet containing data that is ordinarily fowarded to neighbor node |
US5826014A (en) | 1996-02-06 | 1998-10-20 | Network Engineering Software | Firewall system for protecting network elements connected to a public network |
US5856974A (en) | 1996-02-13 | 1999-01-05 | Novell, Inc. | Internetwork address mapping gateway |
US5867667A (en) | 1997-03-24 | 1999-02-02 | Pfn, 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 |
US5884246A (en) | 1996-12-04 | 1999-03-16 | Transgate Intellectual Properties Ltd. | System and method for transparent translation of electronically transmitted messages |
US5889953A (en) | 1995-05-25 | 1999-03-30 | Cabletron Systems, Inc. | Policy management and conflict resolution in computer networks |
US5898830A (en) | 1996-10-17 | 1999-04-27 | Network Engineering Software | Firewall providing enhanced network security and user transparency |
US5913210A (en) | 1998-03-27 | 1999-06-15 | Call; Charles G. | Methods and apparatus for disseminating product information via the internet |
US5937162A (en) | 1995-04-06 | 1999-08-10 | Exactis.Com, Inc. | Method and apparatus for high volume e-mail delivery |
US5937163A (en) | 1996-03-26 | 1999-08-10 | 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 |
US5940394A (en) | 1996-08-08 | 1999-08-17 | At&T Corp | Transferring messages in networks made up of subnetworks with different namespaces |
US6003084A (en) | 1996-09-13 | 1999-12-14 | Secure Computing Corporation | Secure network proxy for connecting entities |
US6006272A (en) | 1998-02-23 | 1999-12-21 | Lucent Technologies Inc. | Method for network address translation |
US6119171A (en) | 1998-01-29 | 2000-09-12 | Ip Dynamics, Inc. | Domain name routing |
US20020026525A1 (en) | 2000-04-04 | 2002-02-28 | Armitage Grenville J. | Supporting mobile hosts on an internet protocol network |
US6496867B1 (en) | 1999-08-27 | 2002-12-17 | 3Com Corporation | System and method to negotiate private network addresses for initiating tunneling associations through private and/or public networks |
US6701437B1 (en) | 1998-04-17 | 2004-03-02 | Vpnet Technologies, Inc. | Method and apparatus for processing communications in a virtual private network |
US6886103B1 (en) | 1999-10-28 | 2005-04-26 | Lucent Technologies Inc. | Method and apparatus for extending network address translation for unsupported protocols |
US6888837B1 (en) | 1999-03-23 | 2005-05-03 | Nortel Networks Limited | Network address translation in a network having multiple overlapping address domains |
-
2001
- 2001-08-10 US US09/927,911 patent/US7133404B1/en not_active Ceased
-
2008
- 2008-11-07 US US12/267,325 patent/USRE41024E1/en not_active Expired - Lifetime
Patent Citations (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5361256A (en) | 1992-11-27 | 1994-11-01 | International Business Machines Corporation | Inter-domain multicast routing |
US5623605A (en) | 1994-08-29 | 1997-04-22 | Lucent Technologies Inc. | Methods and systems for interprocess communication and inter-network data transfer |
US5937162A (en) | 1995-04-06 | 1999-08-10 | Exactis.Com, Inc. | Method and apparatus for high volume e-mail delivery |
US5889953A (en) | 1995-05-25 | 1999-03-30 | Cabletron Systems, Inc. | Policy management and conflict resolution in computer networks |
US5777989A (en) | 1995-12-19 | 1998-07-07 | International Business Machines Corporation | TCP/IP host name resolution for machines on several domains |
US5751961A (en) | 1996-01-31 | 1998-05-12 | Bell Communications Research, Inc. | Integrated internet system for translating logical addresses of internet documents to physical addresses using integrated service control point |
US5781550A (en) | 1996-02-02 | 1998-07-14 | Digital Equipment Corporation | Transparent and secure network gateway |
US5826014A (en) | 1996-02-06 | 1998-10-20 | Network Engineering Software | Firewall system for protecting network elements connected to a public network |
US5856974A (en) | 1996-02-13 | 1999-01-05 | Novell, Inc. | Internetwork address mapping gateway |
US5937163A (en) | 1996-03-26 | 1999-08-10 | 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 |
US5790548A (en) | 1996-04-18 | 1998-08-04 | Bell Atlantic Network Services, Inc. | Universal access multimedia data network |
EP0817444A2 (en) | 1996-07-01 | 1998-01-07 | Sun Microsystems, Inc. | System for context-dependent name resolution |
US5805820A (en) | 1996-07-15 | 1998-09-08 | At&T Corp. | Method and apparatus for restricting access to private information in domain name systems by redirecting query requests |
US5940394A (en) | 1996-08-08 | 1999-08-17 | At&T Corp | Transferring messages in networks made up of subnetworks with different namespaces |
US5805818A (en) | 1996-09-11 | 1998-09-08 | Novell, Inc. | System for acknowledging availability of neighbor node using data packet containing data that is ordinarily fowarded to neighbor node |
US6003084A (en) | 1996-09-13 | 1999-12-14 | Secure Computing Corporation | Secure network proxy for connecting entities |
US5898830A (en) | 1996-10-17 | 1999-04-27 | Network Engineering Software | Firewall providing enhanced network security and user transparency |
US5884246A (en) | 1996-12-04 | 1999-03-16 | Transgate Intellectual Properties Ltd. | System and method for transparent translation of electronically transmitted messages |
US5717686A (en) | 1997-01-21 | 1998-02-10 | Lockheed Martin Corporation | Cellular spacecraft TDMA communications system with call interrupt coding system for maximizing traffic throughput |
US5867667A (en) | 1997-03-24 | 1999-02-02 | Pfn, 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 |
US6119171A (en) | 1998-01-29 | 2000-09-12 | Ip Dynamics, Inc. | Domain name routing |
US6006272A (en) | 1998-02-23 | 1999-12-21 | Lucent Technologies Inc. | Method for network address translation |
US5913210A (en) | 1998-03-27 | 1999-06-15 | Call; Charles G. | Methods and apparatus for disseminating product information via the internet |
US6701437B1 (en) | 1998-04-17 | 2004-03-02 | Vpnet Technologies, Inc. | Method and apparatus for processing communications in a virtual private network |
US6888837B1 (en) | 1999-03-23 | 2005-05-03 | Nortel Networks Limited | Network address translation in a network having multiple overlapping address domains |
US6496867B1 (en) | 1999-08-27 | 2002-12-17 | 3Com Corporation | System and method to negotiate private network addresses for initiating tunneling associations through private and/or public networks |
US6886103B1 (en) | 1999-10-28 | 2005-04-26 | Lucent Technologies Inc. | Method and apparatus for extending network address translation for unsupported protocols |
US20020026525A1 (en) | 2000-04-04 | 2002-02-28 | Armitage Grenville J. | Supporting mobile hosts on an internet protocol network |
Non-Patent Citations (15)
Title |
---|
"Excerpts from Help Section of Microsoft Outlook", pertaining to rules and forwarding email, 1-3. |
Borella, Brabelski, Lo, Tuniguchi, Realm Specific IP: Protocol Specification, Mar. 2000, pp. 1-48. * |
Borella, Lo, Realm Specific IP: Framework, Mar. 2000, pp. 1-33. * |
Borella, M et al., "Realm Specific IP: Protocol Specification", (Oct. 2001), 1-55. |
Borella, M et al., "Realm Specific IP: Protocol Specification", Internet Draft, (Mar. 2000), 1-448. |
Cheriton, David R., et al., "A Scalable Deployable NAT-based Internet Architecture", Stanford University-Computer Science Department, 1-18. |
Cheriton, Gritter, Triad: A Scalable Deployable NAT-based Internet Architecture, Stanford University Computer Science Department, pp. 1-18, charts pp. 1-34. * |
Computer Networks, 3rd Ed., A. Tanenbaum, 1996, pp. 643-670, 685-691. * |
Egevang, K et al., "The IP Network Address Translator (NAT)", (May 1994), 1-10. |
Excerpts from Help Section of Microsoft Outlook pertaining to rules and forwarding email. Microsoft Corp. no date. * |
Montenegro, Borella, RSIP Support for End-to-end IPsec, Mar. 2000, pp. 1-19. * |
Montenegro, G et al., "RSIP Support for End-to-end IPsec", Internet Engineering Task Force, (Mar. 2000), 1-17. |
RFC 1631, The IP Network Address Translator (NAT), K. Egevang, P. Francis, May 1994. * |
RFC1631 The IP Network Address Translator (NAT), May 1994. * |
Tanenbaum, Andrew S., "Computer Networks", Third Edition, (1996), 1-37. |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8621552B1 (en) * | 2007-05-22 | 2013-12-31 | Skybox Security Inc. | Method, a system, and a computer program product for managing access change assurance |
US20100177787A1 (en) * | 2009-01-12 | 2010-07-15 | Trane International Inc. | System and Method for Extending Communication Protocols |
US8306064B2 (en) * | 2009-01-12 | 2012-11-06 | Trane International Inc. | System and method for extending communication protocols |
US20110225206A1 (en) * | 2010-03-15 | 2011-09-15 | Salesforce.Com, Inc. | System, method and computer program product for creating a plurality of cnames for a website |
US9031996B2 (en) * | 2010-03-15 | 2015-05-12 | Salesforce.Com | System, method and computer program product for creating a plurality of CNAMES for a website |
US9270583B2 (en) | 2013-03-15 | 2016-02-23 | Cisco Technology, Inc. | Controlling distribution and routing from messaging protocol |
Also Published As
Publication number | Publication date |
---|---|
US7133404B1 (en) | 2006-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE41024E1 (en) | Communication using two addresses for an entity | |
US6430623B1 (en) | Domain name routing | |
US8090843B2 (en) | Creating a public identity for an entity on a network | |
US7139828B2 (en) | Accessing an entity inside a private network | |
US20070094411A1 (en) | Network communications system and method | |
US6128298A (en) | Internet protocol filter | |
Cheriton et al. | A scalable deployable NAT-based Internet architecture | |
US7533164B2 (en) | Method and system for enabling connections into networks with local address realms | |
US7450585B2 (en) | Method and system in an IP network for using a network address translation (NAT) with any type of application | |
US7450560B1 (en) | Method for address mapping in a network access system and a network access device for use therewith | |
WO2002015014A1 (en) | Pseudo addressing | |
US20070189329A1 (en) | System for combining networks of different addressing schemes | |
US20060031514A1 (en) | Initiating communication sessions from a first computer network to a second computer network | |
US20220337547A1 (en) | Domain routing for private networks | |
KR20030039348A (en) | Method and System for data flow separation on network using Host routing and IP aliasing technique | |
Santos | Private realm gateway | |
WO2023164314A2 (en) | Method of obtaining and using tunneling information for packets in a computer network | |
Ekberg et al. | ÓÑ Ò× Ò ÁÈÚ | |
IE20050519U1 (en) | Network communications system and method | |
IES84430Y1 (en) | Network communications system and method | |
Henrici et al. | Site Multihoming and Provider-Independent Addressing Using IPv6 | |
Llorente Santos | Yksityisen alueen yhdyskäytävä | |
Ng et al. | A Distributed Waypoint Service Approach to Connect Heterogeneous Internet Address Spaces | |
WO2007093893A1 (en) | System for combining networks of different addressing schemes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
CC | Certificate of correction | ||
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: INPRO NETWORK FACILITY, LLC, DELAWARE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:IP DYNAMICS INC.;REEL/FRAME:025649/0592 Effective date: 20080107 |
|
AS | Assignment |
Owner name: INPRO NETWORK FACILITY, LLC, DELAWARE Free format text: CORRECTIVE 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;ASSIGNOR:IP DYNAMICS, INC.;REEL/FRAME:025848/0834 Effective date: 20080107 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
AS | Assignment |
Owner name: F. POSZAT HU, L.L.C., DELAWARE Free format text: MERGER;ASSIGNOR:INPRO NETWORK FACILITY, LLC;REEL/FRAME:037490/0592 Effective date: 20150812 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553) Year of fee payment: 12 |
|
AS | Assignment |
Owner name: INTELLECTUAL VENTURES ASSETS 121 LLC, DELAWARE Free format text: NUNC PRO TUNC ASSIGNMENT;ASSIGNOR:F. POSZAT HU, L.L.C.;REEL/FRAME:047961/0234 Effective date: 20181211 |
|
AS | Assignment |
Owner name: LF CAPITAL PARTNERS, LLC, FLORIDA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTELLECTUAL VENTURES ASSETS 121 LLC;REEL/FRAME:049425/0231 Effective date: 20181219 |