IP Library Granted Patent US 10,057,160
Granted Patent B2
US 10,057,160 · App. 15/073,491 · Granted Aug 21, 2018

Data routing

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,057,160
App. No.
15/073,491
Granted
Aug 21, 2018
Kind
B2
Abstract

Measures for use in routing data in a data communications network. A request to route data to a given destination in the network is received. A route to the given destination is first selected from a plurality of routes to the given destination stored in a routing table. Routing the data to the given destination using the first selected route is attempted. In response to receipt of an indication that routing the data to the given destination via the first route failed, a second, different route to the given destination is second selected from the plurality of routes to the given destination stored in the routing table. The second selecting includes omitting, for the purposes of the second selection, at least one route to the given destination from the plurality of routes to the given destination stored in the routing table.

Claims (55)

1. A method of routing data in a data communications network, the method comprising:

receiving a request to route data to a given destination in the network;

representing a plurality of routes to the given destination stored in a routing table as a tree structure comprising a plurality of nodes;

first selecting a first route to the given destination from the plurality of routes to the given destination stored in the routing table, wherein the first selecting comprises a first traversal of the tree structure, and wherein the first traversal comprises traversal of at least one predefined anchor node comprised in the plurality of nodes;

attempting to route the data to the given destination using the first route;

in response to receipt of an indication that the routing of the data to the given destination via the first route failed, second selecting a second, different route to the given destination from the plurality of routes to the given destination stored in the routing table,

wherein the second selecting comprises omitting, for the purposes of the second selection, at least one route to the given destination from the plurality of routes to the given destination stored in the routing table, the omitting being carried out at least in part on the basis of the at least one route having at least one characteristic in common with the first route, wherein the at least one characteristic in common comprises a representation of the at least one route in the tree structure comprising at least one node which is in common with a representation of the first route in the tree structure, and which is a descendent node of the at least one predefined anchor node; and

attempting to route the data to the given destination using the second selected route.

2. The method of claim 1 , wherein for each child node below the at least predefined anchor node in the tree structure, all of the routes represented in the tree structure below a respective child node are considered similar such that if one of the routes represented in the tree structure below the respective child node fails, then all of the routes under the respective child node are also likely to fail.

3. The method of claim 1 , wherein the at least one characteristic in common comprises the representation of the at least one route in the tree structure comprising at least one node which is a child node of the at least one predefined anchor node.

4. The method of claim 1 , wherein the second selecting comprises a second traversal of the tree structure, and

wherein the second traversal comprises traversal to the at least one predefined anchor node, but not to a given child node of the at least one predefined anchor node.

5. The method of claim 1 , wherein the second selecting comprises a second traversal of the tree structure, and

wherein the second traversal comprises traversal to the at least one predefined anchor node, but not to a given child node of the at least one predefined anchor node or to any descendent nodes of the given child node.

6. The method of claim 1 , wherein the first route, the second route and the at least one route are logically distinct from each other.

7. The method of claim 1 , wherein the predefinition of which node comprises the at least one predefined anchor node is network operator configurable.

8. The method of claim 1 , wherein the method is performed by a network element.

9. The method of claim 8 , wherein the network element comprises a session border controller (SBC).

10. The method of claim 8 , wherein the network element comprises a switch.

11. A system for use in routing data in a data communications network, the system comprising at least one memory including computer program code, and

at least one processor in data communication with the at least one memory, wherein the at least one processor is configured to:

receive a request to route data to a given destination in the network;

represent a plurality of routes to the given destination stored in a routing table as a tree structure comprising a plurality of nodes;

first select a first route to the given destination from the plurality of routes to the given destination stored in the routing table, wherein the first selecting comprises a first traversal of the tree structure, and wherein the first traversal comprises traversal of at least one predefined anchor node comprised in the plurality of nodes;

attempt to route the data to the given destination using the first route;

in response to receipt of an indication that the routing of the data to the given destination via the first route failed, second select a second, different route to the given destination from the plurality of routes to the given destination stored in the routing table,

wherein the second selecting comprises omitting, for the purposes of the second selection, at least one route to the given destination from the plurality of routes to the given destination stored in the routing table, the omitting being carried out at least in part on the basis of the at least one route having at least one characteristic in common with the first route, wherein the at least one characteristic in common comprises the representation of the at least one route in the tree structure comprising at least one node which is in common with the representation of the first route in the tree structure, and which is a descendent node of the at least one predefined anchor node; and

attempt to route the data to the given destination using the second selected route.

12. A non-transitory computer-readable storage medium comprising computer-executable instructions which, when executed by a processor, cause a computing device to perform a method of routing data in a data communications network, the method comprising:

receiving a request to route data to a given destination in the network;

representing a plurality of routes to the given destination stored in a routing table as a tree structure comprising a plurality of nodes,

first selecting a first route to the given destination from the plurality of routes to the given destination stored in the routing table, wherein the first selecting comprises a first traversal of the tree structure, and wherein the first traversal comprises traversal of at least one predefined anchor node comprised in the plurality of nodes;

attempting to route the data to the given destination using the first route;

in response to receipt of an indication that the routing of the data to the given destination via the first route failed, second selecting a second, different route to the given destination from the plurality of routes to the given destination stored in the routing table,

wherein the second selecting comprises omitting, for the purposes of the second selection, at least one route to the given destination from the plurality of routes to the given destination stored in the routing table, the omitting being carried out at least in part on the basis of the at least one route having at least one characteristic in common with the first route, wherein the at least one characteristic in common comprises the representation of the at least one route in the tree structure comprising at least one node which is in common with the representation of the first route in the tree structure, and which is a descendent node of the at least one predefined anchor node; and

attempting to route the data to the given destination using the second selected route.

13. A method of routing data in a data communications network, the method comprising:

receiving a request to route data to a given destination in the network;

first selecting a first route to the given destination from a plurality of routes to the given destination stored in a routing table;

attempting to route the data to the given destination using the first route;

receiving an indication that the routing of the data to the given destination via the first route failed;

first determining that the received failure indication is of a first type;

in response to the receipt of the indication that routing the data to the given destination via the first route failed, second selecting a second, different route to the given destination from the plurality of routes to the given destination stored in the routing table, wherein the second selecting is carried out, based at least in part, on the first determination, and wherein the second selecting comprises omitting, for the purposes of the second selection, at least one route to the given destination from the plurality of routes to the given destination stored in the routing table, the omitting being carried out, based at least in part, on the at least one route having at least one characteristic in common with the first route;

second determining that the received failure indication is of a second type, and in response to the second determination, overriding the omitting such that the at least one route is not omitted for the purposes of the second selection; and

attempting to route the data to the given destination using the second selected route.

14. The method of claim 13 , wherein the received failure indication of the first type comprises a Session Initiation Protocol (SIP) 404 ‘Not found’ response code.

15. The method of claim 13 , wherein the received failure indication of the second type comprises an indication that there is a connectivity problem with a given server in the network.

16. The method of claim 13 , wherein the received failure indication of the second type comprises a Session Initiation Protocol (SIP) 503 ‘Service unavailable’ response code.

17. A method of routing data in a data communications network, the method comprising:

receiving a request to route data to a given destination in the network;

first selecting a first route to the given destination from a plurality of routes to the given destination stored in a routing table;

attempting to route the data to the given destination using the first route;

in response to receipt of an indication that the routing of the data to the given destination via the first route failed, first determining that the received failure indication comprises a Session Initiation Protocol (SIP) 404 ‘Not found’ response code:

second selecting a second, different route to the given destination from the plurality of routes to the given destination stored in the routing table, wherein the second selecting is carried out based at least in part on the first determination, and wherein the second selecting comprises omitting, for the purposes of the second selection, at least one route to the given destination from the plurality of routes to the given destination stored in the routing table, the omitting being carried out based at least in part on the at least one route having at least one characteristic in common with the first route; and

attempting to route the data to the given destination using the second selected route.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2026
From: MICROSOFT TECHNOLOGY LICENSING, LLC
To: ALIANZA, INC.
Reel/Frame 075645/0892 →
CHANGE OF NAME Recorded May 13, 2026
From: ALIANZA, INC.
To: ALIANZA, LLC
Reel/Frame 075646/0037 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2026
From: METASWITCH NETWORKS LTD.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 075578/0155 →
SECURITY INTEREST Recorded May 6, 2025
From: ALIANZA, INC.; METASWITCH NETWORKS LTD
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 071191/0228 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2018
From: SPRINGETT, PHILLIP JAMES; DYMOND, MAX; NORRIS, RYAN PETER; PRATT, OLIVER EDWARD; GILBERT, GEORGE MALCOLM
To: METASWITCH NETWORKS LTD
Reel/Frame 046521/0458 →