WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method and system for shortcut routing over public data networks    
United States Patent5583996   
Link to this pagehttp://www.wikipatents.com/5583996.html
Inventor(s)Tsuchiya; Paul F. (Lake Hopatcong, NJ)
AbstractA system and method are disclosed for transmitting a packet from a source node S in a first stub 300 to a destination node D in a second stub 306 of an internet communications network 200. The first stub 300 is connected with a public data network (PDN) 210 by a first access point node Ra and the second stub 306 is connected with the PDN 210 by a second access point node Rd. The first access point node Ra, writes its PDN subnetwork address in the packet. The first access point node Ra then transmits the packet via a sequence of one or more intermediary access point nodes Rb, Rc on a base path until the packet reaches the second access point node Rd. The second access point node Rd receives the packet via the base path. The second access point node Rd stores the PDN subnetwork address of the first access point node Ra (contained in the packet) in an entry 131 of shortcut table 130 maintained at the second access point node Rd. Thereafter, the second access point node Rd can transmit a second packet back to the first access point node Ra by transmitting the packet to the first access point node Ra using the PDN subnetwork address of the first access point node Ra stored in the shortcut table entry 131.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5583996
Method and system for shortcut routing over public data networks - US Patent 5583996 Drawing
Method and system for shortcut routing over public data networks
Inventor     Tsuchiya; Paul F. (Lake Hopatcong, NJ)
Owner/Assignee     Bell Communications Research, Inc. (Morristown, NJ)
Patent assignment
All assignments
Publication Date     December 10, 1996
Application Number     08/033,638
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     March 16, 1993
US Classification     709/218 370/258 370/404 709/241 709/245
Int'l Classification     G06F 013/00
Examiner     Bowler; Alyssa H.
Assistant Examiner     Davis; Walter D.
Attorney/Law Firm     Joseph, Falk; James W. Giordano;
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/800 395/200 395/325 364/DIG. 1 340/827 340/825.52 370/94.1 370/58.3 370/60
Patent Tags     shortcut routing over public data networks
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5442633
Perkins
370/331
Aug,1995

[0 after 0 votes]
5408618
Aho
710/104
Apr,1995

[0 after 0 votes]
5365520
Wang
370/217
Nov,1994

[0 after 0 votes]
5347272
Ota
370/392
Sep,1994

[0 after 0 votes]
5293488
Riley
709/244
Mar,1994

[0 after 0 votes]
5253161
Nemirovsky
709/241
Oct,1993

[0 after 0 votes]
5115495
Tsuchiya
709/239
May,1992

[0 after 0 votes]
5103444
Leung
370/432
Apr,1992

[0 after 0 votes]
5095480
Fenner
370/238
Mar,1992

[0 after 0 votes]
4740954
Cotton
370/408
Apr,1988

[0 after 0 votes]
4736363
Aubin
370/400
Apr,1988

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


I claim:

1. In a communications network comprising a backbone subnetwork including a base path, a plurality of stubs each having a plurality of nodes assigned internet addresses and including at least one access point node that connects said each stub with the backbone subnetwork, and means for providing individual shortcut paths between any two access point nodes, a method for transmitting a packet from a first access point node that connects a first stub containing a source node of the packet with said backbone subnetwork to a second access point node that connects a second stub containing a destination node of the packet with said backbone subnetwork, wherein said first access point node maintains a shortcut table and a base path table, said method comprising the steps of:

at said first access point node, if an entry exists in said shortcut table maintained at said first access pint node, which entry corresponds to the internet address of the destination node of said packet, transmitting a backbone subnetwork address of said first access point node in said packet from said first access point node to said second access point node via a shortcut path using a backbone subnetwork address of said second access point node stored in a retrieved shortcut table entry instead of using said base path,

if no shortcut table entry exists, transmitting a backbone subnetwork address of said first access point node in said packet from said first access point node via said base path to said second access point node, and

at said second access point node, receiving said packet and storing said backbone subnetwork address of said first access point node contained in said packet in an entry of a shortcut table maintained at said second access point node, which entry corresponds to the internet address of the source node of said packet,

and said method further comprising the steps of:

at said first access point node, if no entry exists in said shortcut table maintained at said first access point node corresponding to the destination node of said packet, transmitting a flag in said packet indicating that said first access point node does not know a shortcut path to said second access point node, and

at said second access point node, storing said flag contained in said packet in said shortcut table entry maintained at said second access point node.

2. The method of claim 1 further comprising transmitting a second packet from said second access point node to said first node by the steps of:

at said second access point node, if said shortcut table entry corresponding to the internet address of said destination node of said second packet contains a flag indicating that said first access point node does not know a shortcut path to said second access point node, transmitting a backbone subnetwork address of said second access point node in said second packet from said second access point node via said base path to said first access point node, and

at said second access point node, if said shortcut table entry does not contain said flag, transmitting said second packet to said first access point node using said backbone subnetwork address stored in said shortcut table entry as a shortcut path.

3. In a communications network comprising a plurality of stubs each having a plurality of nodes assigned internet addresses and including an access point node, a base path sequentially connecting said access point nodes, each of said access nodes having a base path address, and shortcut direct paths between any two access point nodes, a method for establishing direct intercommunication over a shortcut path between a first access point node that connects a first stub containing a source node transmitting a packet and a second access point node that connects a second stub containing a destination node of the packet, said method comprising the steps of:

at said first access point node, transmitting said packet over said base path through at least one intermediate node to said second access point node,

at said second access point node, receiving said packet via said base path and storing the base path address of said first access point node contained in said packet in an entry of a shortcut table maintained at said second access point node, whereby said second access point node has learned the shortcut path and has stored it in said shortcut table for future use in communications between said first and second access point nodes of packets to be transmitted between said source and destination nodes, said entry of said shortcut table corresponding to the internet address of the source node of said packet;

transmitting a second packet from said second access point node to said first access point node via the shortcut path between said first and second access point nodes using said base path address of said first access point node stored in said shortcut table entry instead of transmitting said second packet via said base path, and

wherein said communications network is reconfigured such that a third access point node connects said first stub with said base path but said first access point node no longer connects said first stub with said base path, said method further comprising the steps of:

receiving said second packet at said first access point node,

at said first access point node, writing the base path address of said second access point node and a flag indicating that said second access point node does not know a shortcut path to said third access point node in said second packet, and

transmitting said second packet from said first access point node to said third access point node via said base path.

4. In a communications network comprising a backbone subnetwork and a plurality of stubs each of which is connected with said backbone network by an access point node, one or more of said access point nodes including a memory for storing a base path table defining a base path in said backbone subnetwork to each other access point node and a shortcut table with a shortcut path entry defining a shortcut path in said subnetwork to one or more other access points, the method for causing a specific access point node to learn the shortcut path between said specific access point node and another access point node and storing an identification of said shortcut path in the shortcut table of said specific access node for future use of said shortcut path in communications of packets between said specific access point node and said another access point node, said method comprising the steps of:

transmitting a packet from said another access point node to said specific access point node over a base path through a least one intermediate node, and

at said specific access point node, receiving said packet via said base path and storing the base path address of said another access point node contained in said packet in an entry of said shortcut table maintained at said specific access point node,

whereby subsequent transmission from said specific access point node to said another access point node occurs via said shortcut path in said backbone network if a shortcut entry corresponding to said another access point node exists in said shortcut table at said specific access point node and subsequent transmission to said another access point node occurs via a base path defined in said base path table at said specific access point node if no shortcut entry exists in said shortcut table at said specific access point node.
 Description Submit all comments and votes
 


FIELD OF THE INVENTION

The present invention relates to routing data in a large communications network that has at least two smaller networks, called stubs, connected together by an intervening public data network. In particular, the present invention relates to a robust and efficient dynamic method for determining optimal or "shortcut" communication paths across the public data network between nodes in different stubs.

BACKGROUND OF THE INVENTION

FIG. 1 depicts a communications network 10 called an internet. The internet 10 includes a number of stubs 20, 30, 40, and 50. Each stub 20, 30, 40, and 50 is a smaller, subsumed communications network. The stub 20 comprises the nodes 21,22,23, the stub 30 comprises the nodes 31,32,33,34, the stub 40 comprises the nodes 41,42, and the stub 50 comprises the nodes 51,52. The nodes 21-23, 31-34, 41-42, and 51-52 within each stub 20, 30, 40, and 50 are interconnected by a respective subnetwork 25, 35, 45, or 55 of the stub. For example, the nodes 21-23 are interconnected by the subnetwork 25 of the stub 20. As used herein, the term "subnetwork" refers to the communications lines, switches, etc. necessary for establishing internodal communication amongst the nodes interconnected by that particular subnetwork. For example, the subnetwork 25 can establish communications between any of the nodes 21-23 within the stub 20.

FIG. 2 depicts a node, e.g., the node 32 of the internet 10, in greater detail. As depicted, each node comprises a CPU or processor 71, a memory 72, and one or more input/output ports 73-1, 73-2, . . . , 73-n which are interconnected to one another via a bus 74. The input/output ports 73-1, 73-2, . . . , 73-n may be connected to the input/output ports of another node (e.g., the node 31) via a subnetwork (e.g., the subnetwork 35). The processor 71, among other things, controls the transmission of data between the memory 72 and the input/output ports 73-1, 73-2, . . . , 73-n. The processor 71 also controls the transmission of data from the input/output ports 73-1, 73-2, . . . , 73-n to other nodes. For example, the processor 71 can cause data stored in the memory 72, to be transmitted via the bus 74 to a particular input/output port, e.g., the input/output port 73-2. The processor 71 can then cause the input/output port 73-2 to transmit the data via the subnetwork 35 to a second node, e.g., the node 31. The data may be received in an input/output port at the node 31 and then transferred via the bus at that node 31 into the memory thereat under the control of the processor of the node 31.

It is also possible to transmit data from the node 31 to the node 32 by transmitting the data from the node 31 to the node 33, and then from the node 33 to the node 32. The transmission between each pair of nodes, e.g., from the node 31 to the node 33, is achieved in the above described manner.

The node at which data is initially generated and transmitted (e.g., the node 32) is called the source node. The node to which the data is ultimately destined (e.g., the node 31) is called the destination node. All other nodes between the source and destination node through which the data may pass (e.g., the node 33) are referred to as intermediary nodes.

Illustratively, data transmitted between nodes via a subnetwork within a particular stub is organized into packets. Such a packet 80 is depicted in FIG. 3. The packet contains one or more headers 81, 82 and data 83. One header 81 of the packet 80 is associated with the subnetwork over which the packet is to be transmitted and is called the subnetwork header. This subnetwork header contains control information including information necessary to direct the packet to its destination within that particular stub. Each node connected to the subnetwork is assigned a subnetwork address or identifier which is recognized by every other node connected to the subnetwork. The subnetwork header typically contains the subnetwork address of the source node, called the source address, and the subnetwork address of the destination node, called the destination address.

When a source node transmits a packet to a destination node in the same stub, the source node places its subnetwork address in the subnetwork source address field 81-1 (FIG. 3). Furthermore, the source node places the subnetwork address of the destination node in the subnetwork destination address field 81-2 of the packet 80. Thus, the source node must know or determine the subnetwork address of the destination node. In the case that the stub containing the source and destination nodes is an Ethernet network, the source node may already store the subnetwork address of the destination node in the memory of the source node. If the source node does not already store the destination address, the source node can transmit a query message to all nodes of the stub. The query message identifies the destination node and requests that the destination node transmit its subnetwork address to the source node. Upon receiving the query message, the destination node transmits its subnetwork address to the source node. All other nodes in the stub ignore the query message. Using the subnetwork address of the destination node, the source node then transmits its packet to the destination node.

When a packet is received at a node, the processor at the node illustratively determines if the node has the same subnetwork address as the destination address of the packet. If so, the processor at the node determines that the packet has reached its destination within that particular stub. If the destination address is different from the node's subnetwork address, the processor determines that the packet is not at its destination within that stub. The processor then determines the appropriate manner for transmitting the packet so that the packet reaches its destination node.

Often it is desirable to transmit packets from a source node in one stub to a destination node in another stub in the internet 10 of FIG. 1. To that end, each stub 20, 30, 40 and 50 has one or more access point nodes 21, 31, 34, 41, and 51, respectively, which are interconnected by a separate transit or backbone subnetwork called a public data network or PDN 60. A transit or backbone subnetwork is a subnetwork which may be used for transmitting packets between stubs. Thus, it is possible to transmit a packet from the node 23 in the stub 20 to the node 33 in the stub 30 by first transmitting the packet from the node 23 to the node 21 via the subnetwork 25. The packet is then transmitted from the node 21 to the node 31, via a backbone subnetwork in the form of the PDN 60, and from the node 31 to the node 33 via the subnetwork 35 in the stub 30. An access point node which receives a packet from a stub and retransmits the packet via the PDN 60, e.g., the node 21, is referred to as an entry point node of the PDN 60. An access point node which receives a packet from the PDN 60 and retransmits the packet via the subnetwork of a stub, e.g., the node 31, is referred to as an exit point node of the PDN 60.

In the internet 10, it is assumed that packets may not be transmitted from an access point node in a first stub to an access point node in a second stub via the subnetwork of a third stub. In other words, if a packet is received at an access point node of a third stub from the PDN 60 it may only be retransmitted therefrom via the subnetwork of the third stub to a destination node in that stub. If such a received packet is destined to a node in another stub, it may only be retransmitted from the access point node of the third stub via the PDN 60.

The PDN 60 may be a connection-less or a connection oriented subnetwork. An example of a connection oriented PDN 60 would be a telephone network.

Like the subnetworks 25, 35, 45 and 55, the PDN 60 provides a PDN subnetwork address for each access point node 21, 31, 34, 41, and 51. Typically, the subnetworks 25, 35, 45, 55 and the PDN subnetwork 60 utilize different addressing schemes. Thus, each node 21-23, 31-34, 41-42, and 51-52 of the internet 10 is further assigned an internet address. Furthermore, packets may be transmitted with internet headers containing the internet addresses of the source and destination nodes. Such an internet packet 90 is depicted in FIG. 4 with a subnetwork header 91, an internet header 92 and data 93. The internet header 92 contains the internet address of the source and destination nodes in an internet source address field 92-1, and internet destination address field 92-2, respectively.

Subnetwork addresses are recognizable only by the nodes connected to that particular subnetwork. Internet addresses have significance over the entire internet 10. The internet address of a packet's destination node may be used to determine whether the packet must be transmitted via the PDN 60 in order to reach the destination node. The internet address of a packet's destination node may also be used at a first access point node to direct a received packet to a second access point node via the PDN 60. That is, suppose a first entry point node receives a packet via a first stub but must transmit the packet to a second exit point node in a second stub via the PDN 60. The first access point node may use the internet destination address of the packet to determine the PDN subnetwork address of the second access point node. For example, suppose the node 21 receives, via the subnetwork 25, a packet from the node 23 having the internet destination address for the node 42. When the node 21 receives the packet, the node 21 uses the internet destination address in the internet destination address field 92-2 (FIG. 4) of the packet to determine over which subnetwork to retransmit the packet. In this case, the node 21 determines that the packet must be retransmitted via the PDN 60 to reach the node 41, which is the next node on the path to the node 42. If the node 21 determines that the packet must be retransmitted via the PDN 60, then the node 21 uses the internet destination address of the packet to determine the PDN subnetwork address of the next node on the path to the node 42. In this case, the node 21 determines the PDN subnetwork address of the node 41.

In order for an entry point node, such as the node 21, to make these two determinations, each access point node illustratively stores an internet routing table, such as the internet routing table 85 shown in FIG. 5. FIG. 5 shows an illustrative internet routing table at the node 21, having an entry 85-1, 85-2, 85-3, 85-4, 85-5, 85-6, 85-7, 85-8, 85-9, 85-10, and 85-11 for each node of the internet 10. In the alternative, where there are many nodes on the internet 10, each node stores entries for only some of the nodes or provides individual entries for different subsets of nodes, or both. In FIG. 5, each entry has a first field which stores the internet destination address of a different node. The subscript I is used to designate internet addresses, i e., "31.sub.I " means the internet address of the node 31. Each entry has a second field which stores the PDN subnetwork address of the next node on the path to the destination node having the corresponding internet destination address. In FIG. 5, the subscript PDN is used to designate PDN subnetwork addresses, i e., "31.sub.PDN " means the PDN subnetwork address of the node 31. Furthermore, each entry has a third field which stores an indicator of the subnetwork over which a packet must be retransmitted. The entries 85-9, 85-10, and 85-11 correspond to nodes 21-23 which are connected to the node 21 via the subnetwork 25, not the PDN 60 as indicated by the third field of these entries. The second field of each of these entries is not used for routing the packets (rather, the packets are routed within the stub 20 as discussed above) as indicated by "don't care" in FIG. 5.

Continuing with the above example wherein a packet is transmitted from node 23, to node 21, to node 41, to node 42, the processor at the node 21 searches the table 85 for the entry corresponding to the internet destination address contained in the packet, i.e., the entry 85-6 which stores the internet address of the node 42. The processor of the node 21 examines the third field of this entry 85-6 and determines that the packet must be retransmitted via the PDN 60. The processor at the node 21 then uses the PDN subnetwork address stored in the next node field of the retrieved entry 85-6 to retransmit the packet to the next node on the path to the node 42, i.e., the node 41, via the PDN 60.

In the alternative, the entry point node 21 may not know the PDN subnetwork address of the exit point node 41. In other words, the node 21 does not know the direct optimal path between the entry point node 21 and the exit point node 41. Instead, the entry point node 21 must transmit the packet to the exit point node 41 via a sequence of at least one intermediary access point node. For instance, instead of the PDN subnetwork address of the exit point node 41, the entry 85-6 may store the PDN subnetwork address of the access point node 31 in its next node field. The entry point node 21 would thus transmit the packet to a first intermediary access point node, i.e., to the access point node 31. The access point node 31 then illustratively consults its internet routing table to determine if it knows the PDN subnetwork address of the exit point node 41. If so, the packet is transmitted directly to the exit point node 41. If not, the intermediary access point node 31 may transmit the packet to yet another intermediary access point node in a similar fashion as described above. Thus, the packet is transmitted from intermediary access point node to intermediary access point node in the PDN 60 until it arrives at an intermediary access point node which knows the PDN subnetwork address of the exit point node 41.

The overhead in determining, at the entry point node, the PDN subnetwork address of the exit point node of a packet (i.e., the optimal path across the PDN 60) depends on the size of the internet. In the case of small, broadcast local area networks (LANs), the determination of the LAN subnetwork address of any desired destination node is a simple task. See, D. Plummer, "An Ethernet Address Solution Protocol--or--Converting Network Protocol Addresses to 48 bit Ethernet Addresses for Transmission on Ethernet Hardware," RFC 826 USC Information Sciences Institute, November, 1982. This is because broadcast LANs interconnect a small number (hundreds) of nodes and posses a simple, low overhead mechanism for "searching" for the LAN subnetwork addresses of other nodes. However, on a very large, general topology PDN subnetwork, the task of determining subnetwork destination addresses is more difficult. The Public Data Network (PDN) may be connected to tens of thousands of nodes rendering the task of distributing up-to-date PDN subnetwork addresses about each node to each other node highly inefficient. Thus, in a large PDN, the nodes can only maintain the PDN subnetwork address of a subset of nodes. This means that an entry point node often does not know the PDN subnetwork address of the exit point node and thus cannot transmit a packet directly thereto via the optimal path. Instead, the packet must be transmitted from the entry point node to the exit point node via a sequence of intermediary access point nodes of the PDN as described above. Moreover, although any access point node should be capable of communicating with any other access point node via the PDN, most access point nodes are unlikely to communicate with the majority of the other access point nodes. It is thus unnecessary for each access point node to maintain information about every other access point node.

Several solutions for the above problem been proposed, i.e., for determining, at an entry point node, the PDN subnetwork address of the exit point node. See, International Standards Organization, "End System to Intermediate System Routing Information Exchange Protocol for Use in Conjunction with ISO 8878," ISO 10030. A first solution has been proposed for an internet having stubs which are each connected with a PDN by only one access point node. The internet address assigned to each node contains the PDN subnetwork address of the corresponding access point node. Thus, it is a simple matter to determine, at an entry point node, the PDN subnetwork address of the exit point node which connects the stub containing the destination node. The entry point node simply examines the internet address of the destination node of the packet and extracts the PDN subnetwork address of the exit point node therefrom.

In a second solution, a small number of nodes are designated as "route server nodes". All non-route server nodes of the internet advertise the subnetworks and stubs they can reach to the route server nodes to which they are connected. The route server nodes, in turn, exchange this received information with other route server nodes.

The second solution works as follows. Suppose a non-route server node X is an access point node to the PDN for a source node S which desires to transmit a packet to a destination node D in another stub. In such a case, the source node S transmits a packet to the access point node X via a subnetwork. The node X transmits the packet to the route server node with which it is connected. The route server node determines the PDN subnetwork address of the exit point node Y that connects the stub containing the destination node D with the PDN, for example, by consulting its internet routing table (FIG. 5). The route server node then transmits the packet to this node Y (which in turn transmits the packet to the node D). In addition, the route server node transmits a redirect packet back to the node X which contains the PDN subnetwork address of the node Y. The node X stores the subnetwork address of the node Y for later use in transmitting other packets to the node D. Thus, the node X can now transmit a packet directly to the node Y (i.e., via the optimal path).

Each of these solutions has drawbacks. In the first solution, the internet addresses must be very large. Thus, the solution is not applicable to many widely deployed subnetworks, such as those employing the DECNET, Appletalk or Novell IPX protocols which restrict the size of addresses. Furthermore, it is not possible to embed the PDN subnetwork address of the exit point node in the internet destination address if the PDN has stubs that have more than one access point node each to the PDN. This is significant because it is prudent to connect two nodes of even small stubs with the PDN for purposes of reliability,

The second solution places a heavy load on the route server nodes in terms of handling routing updates, storing routes, forwarding packets and redirecting router nodes. Thus, each route server node is a potential bottleneck.

It is therefore an object of the present invention to provide for routing data in a PDN subnetwork of an internet which overcomes the disadvantages of the prior art.

SUMMARY OF THE INVENTION

This and other objects are achieved by the present invention. In one embodiment, the PDN has a sparse communications map which includes at least one path, called a base path, for transmitting packets between any two access point nodes connected via the PDN. Typically, the base path is not an optimal or direct path between the access point nodes but instead includes one or more intermediary access point nodes. According to this embodiment, a method is provided for transmitting a packet from a source node in a first stub to a destination node in a second stub. The first stub is connected with the PDN by a first access point node and the second stub is connected with the PDN by a second access point node. The method includes the following steps:

(1) routing the packet from the source node to the first access point node using the subnetwork of the first stub,

(2) at the first access point node, writing the PDN subnetwork address of the first access point node in a shortcut header of the packet,

(3) transmitting the packet via a base path, which typically includes a sequence of one or more intermediary access point nodes, until the second access point node is reached,

(4) at the second access point node, receiving the packet via the base path and storing the PDN subnetwork address of the first access point node (contained in the packet) in a shortcut table at the second access point node, and

(5) routing the packet from the second access point node to the destination node using the subnetwork of the second stub.

More specifically, the source node in a first stub routes a packet to the first access point node of the PDN. When the first access point node receives a packet from the source node, the first access point node writes its PDN subnetwork address in the packet, e.g., in a shortcut header of the packet. The first access point node then routes the packet via a base path to the second access point node, which base path typically includes the first access point node, a sequence of one or more intermediary access point nodes, and the second access point node. To that end, the first access point node illustratively uses an internet address of the destination node (contained in the packet) to retrieve an entry from an internet routing table maintained at the first access point node, which entry corresponds to the destination node. The first access point node uses the PDN subnetwork address in the next node field of the retrieved internet routing table entry to transmit the packet to the next access point node on the base path.

The next access point node receives the packet and determines if it connects the second stub (which contains the destination node) with the PDN. For example, the access point node can retrieve the entry of its internet routing table corresponding to the packet's internet destination address. If the entry stores an indication that the packet must be retransmitted via the subnetwork of a stub, rather than via the PDN subnetwork, then the access point node must connect the second stub with the PDN. In such a case, the access point node is the exit point node (i.e., the second access point node). Otherwise, the access point node is merely an intermediary access point node, which intermediary access point node transmits the packet to the next access point node on the base path to the second access point node. To that end, the intermediary access point node accesses its internet routing table to retrieve the entry corresponding to the packet's internet destination address (if it has not done so already to determine if it is the exit point node). Like the first access point node, the intermediary access point node uses the PDN subnetwork address in the next node field of the retrieved entry to transmit the packet to the next access point node on the base path to the second access point node. This process is repeated at each successive intermediary access point node on the base path to the second access point node until the packet is received at the second access point node.

Eventually, the packet arrives at the second access point node. The second access point node first determines that it is the exit point node, i.e., connected with the stub containing the destination node. The second access point node then retrieves the PDN subnetwork address of the first access point node contained in the packet and stores this address as a shortcut address in a shortcut table maintained at the second access point node. The shortcut address is stored in a shortcut table entry corresponding to the internet address of the packet's source node. The second access point node thereafter routes the packet to the destination node via the subnetwork of the second stub.

The above method for transmitting a packet from the first access point node to the second access point node causes the second access point node to learn a return, direct or optimal shortcut path back to the first access point node. Thereafter, if the second access point node has a packet to transmit to the first access point node, the second access point node can transmit the packet directly to the first access point node via the optimal shortcut path stored in the shortcut table rather than via the base path. For example, the second access point node can transmit a packet back to the first access point node by:

(1) at the second access point node, retrieving the entry from the shortcut table, and

(2) transmitting the packet to the first access point node using the PDN subnetwork address of the first access point node stored in the retrieved entry.

It is also possible for the second access point node to write its PDN subnetwork address in a packet transmitted from the second access point node to the first access point node. In this fashion, when the packet arrives at the first access point node, the first access point node learns the optimal shortcut path to the second access point node. The PDN subnetwork address contained in the packet is then stored in a shortcut table maintained at the first access point node in an entry corresponding to the internet address of the source of the packet. Thereafter, the first access point node can retrieve the shortcut path from its shortcut table for transmitting a packet to the second access point node using the second access point node's PDN subnetwork address stored in the retrieved entry.

In short, a simple, dynamic method is provided for automatically discovering shortcut paths across a PDN between two access point nodes. Shortcut paths are only stored at access point nodes that have previously communicated with each other thereby reducing the storage requirements at each access point node. In addition, the invention is not dependent on the particular addressing scheme used in any subnetwork and operates transparently of each subnetwork protocol. The invention is thus easy to implement in an existing internet.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a prior art internet communications network.

FIG. 2 depicts a prior art node of the internet network of FIG. 1 in greater detail.

FIG. 3 depicts a prior art packet with a subnetwork header.

FIG. 4 depicts a prior art packet with an internet header.

FIG. 5 depicts a prior art internet routing table.

FIG. 6 depicts an internet network with a sparse communications map.

FIG. 7 depicts an internet network with asymmetric base paths.

FIG. 8 depicts an internet routing table of the node Ra in the internet depicted in FIG. 6.

FIG. 9 depicts a packet with a shortcut header.

FIG. 9A depicts a second packet with a shortcut header.

FIG. 10 depicts an internet routing table of the node Rb in the internet depicted in FIG. 6.

FIG. 11 depicts a shortcut routing table of the node Rd depicted in FIG. 6.

FIG. 12 depicts a modified shortcut routing table of the node Rd according to another embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 6 shows an internet 200 which uses shortcut routing in accordance with the invention. The internet 200 comprises the stubs 300,301,302,303,304,305,306, and 307. Each stub contains one or more nodes, e.g., the stub 300 contains the nodes Ra, S and S1, and a subnetwork, e.g., the subnetwork 340, connecting the nodes Ra, S and S1 within that stub 300. The internet 200 also comprises the PDN subnetwork 210 for interconnecting the stubs 300-307. Illustratively, the PDN 210 includes the connections P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12, and P13.

According to one embodiment of the invention, it is presumed that each stub (e.g., the stub 300) is connected by at least one access point node (e.g., Ra) with the PDN. To reduce the amount of routing information maintained at the nodes that connect each stub with the PDN 210, it is advantageous to hierarchically cluster or group the stubs. For example, as shown in FIG. 6, The stubs 300, 301, 302, 303, 304, 305, 306 and 307 are grouped into four clusters 310, 320, 330, and 360. The node Ra is designated the access point node for the cluster 310, the node Rb is designated the access point node for the cluster 320, the node Rc is designated the access point for the cluster 360 and the node Rd is designated the access point node for the cluster 330. Therefore, the nodes A1 (in the stub 301), A2 (in the stub 303), A3 (in the stub 304), and A4 (in the stub 307) do not serve as access point nodes to the PDN 210. As such, the connections P7-P13 are not used and may be ignored.

After the access point nodes Ra,Rb,Rc, and Rd are chosen, each cluster is illustratively assigned an internet address prefix and each node of each stub is assigned an internet address which includes the prefix of its corresponding cluster. For example,