Quality of service improvement of internet real-time media transmission by transmitting redundant voice/media frames
First Claim
1. A computer with one or more interfaces to one or more networks, the interfaces communicating one or more packets in one or more messages over one or more of the networks, the computer comprising:
- one or more processes producing redundant packets of the messages in a random manner and communicating the redundant packets over two or more separate paths through the one or more networks to a destination.
1 Assignment
0 Petitions
Accused Products
Abstract
Improved reliability and reduced delays and packet losses of Internet media transmissions over packet switching networks such as Internet and Intranet is achieved by replicating a sent message/information packet(s) from one or more source computers connected to the network into two or more replicas of one or more of the packets of the sent message. Each of the replicas is then directed through a different route through the network to one or more destination computers. In one embodiment, each of the routes is determined so that the routes have the least number of routers and access points in common. Since the replicas are redundant, losses and delays of some of the replicas is not fatal to assemble the packet sequence at the destination(s). Thus, the destination computer can assemble the sent message/information packet from received replicas in a more complete and faster manner. Redundant replicas that are received can be ignored and/or discarded at the destination computer.
68 Citations
27 Claims
-
1. A computer with one or more interfaces to one or more networks, the interfaces communicating one or more packets in one or more messages over one or more of the networks, the computer comprising:
-
one or more processes producing redundant packets of the messages in a random manner and communicating the redundant packets over two or more separate paths through the one or more networks to a destination. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 25, 26, 27)
a replication process that creates a random number of each of the redundant packets by replicating one or more of the packets in the message to form one or more replicas of one or more of the packets; and
an initialization process that sends a request for path information over the at least one network through one or more of the interfaces to one or more reflection servers on the at least one network, the initialization process receiving path information from the one or more reflection servers that defines one or more hops in a reflection router path from the respective reflection router to the destination, the initialization process selecting two or more separate paths to send two or more of the replicas, at least one of the separate paths being from the computer to the one of the reflection servers and then on the respective reflection router path to the destination.
-
-
3. A computer, as in claim 2, where the computer is any one or more of the following:
- a client computer, a server, a router, and a network access point.
-
4. A computer, as in claim 2, where the random number is at least one for every packet in the message.
-
5. A computer, as in claim 2, where the replication process creates the random number of replicas for random packets in the message.
-
6. A computer, as in claim 5, where the initialization process randomly, selects the separate paths over which the random number of replicas of each packet is sent.
-
7. A computer, as in claim 5, where the random number of replicas created for each packet is limited below a chosen number.
-
8. A computer, as in claim 2, where the initialization process chooses the selected paths to have a fewest number of common hops.
-
9. A computer, as in claim 2, where the selected paths for one or more of the replicas are randomally selected.
-
10. A computer, as in claim 9, where the selected paths are selected for each replica to be least in common with the selected paths for other of the replicas.
-
11. A computer, as in claim 1, where the computer is receiving the message from the destination and the process is a unification process that receives each of the replicas, determines the position of the replica in the message, and arranges the replicas according to position in a destination memory.
-
12. A computer, as in claim 11, where later replicas that are received are discarded if a formerly received replica has already been placed in the respective position in the destination memory.
-
13. A computer, as in claim 11, where the computer is any one or more of the following:
- a client computer, a server, a router, and a network access point.
-
14. A computer, as in claim 1, where the packets are any one or more of the following:
- voice packets, video packets, media packets, and data packets.
-
15. A computer, as in claim 1, where information in the messages includes any one or more of the following:
- one or more television programs, one or more radio programs, and one or more telephone conversations.
-
25. A computer, as in claim 1, where the computer is sending the message to the destination and the processes comprise:
a replication process that creates the redundant packets by determining a random number for each of the packets in the message to form one or more replicas of each packet, the replication process creating the random numbers wherein the redundant packets increase network traffic by a predetermined amount as compared to network traffic without the redundant packets.
-
26. A computer, as in claim 25, wherein each replication process performs the following for each packet:
-
generates a random number between zero and one;
determines if the random number is less than a predetermined decimal value;
replicates the packet a certain number of times when the random number is less than the predetermined decimal value, the certain number equal to a predetermined integer number plus one; and
replicates the packet the predetermined integer number of times when the random number is greater than or equal to the predetermined decimal value.
-
-
27. A computer, as in claim 26, where the decimal value is determined by subtracting a result of applying a floor function to a rational number from the rational number, the predetermined integer number is determined by the result of applying the floor function to the rational number, wherein the decimal value represents a percentage increase in traffic due to the redundant packets.
-
16. A computer with one or more interfaces to one or more networks, the interfaces communicating one or more packets in one or more messages over one or more of the networks, the computer comprising:
-
a replication process that creates redundant packets by replicating a random number of one or more of the packets in the message to form one or more sent replicas of one or more of the packets;
an initialization process that sends a request for path information over the one or more networks through one or more of the interfaces to one or more reflection servers on the one or more networks, the initialization process receiving path information from one or more of the reflection servers that defines one or more hops in a reflection router path from the respective reflection router to a destination, the initialization process selecting two or more separate paths to send two or more of the sent replicas, at least one of the separate paths being from the computer to the one of the reflection servers and then on the respective reflection router path to the destination; and
a unification process that receives one or more received replicas, determines the position of the received replicas in the message, and arranges the received replicas according to position in a destination memory. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. A method of communicating messages over a network comprising the steps of:
-
creating a random number of replicas of one or more packets in the message;
selecting one or more different paths through the network to one or more destinations; and
sending each of the replicas over one of the different paths. - View Dependent Claims (23)
receiving one or more received replicas;
determining a position of the received replicas in a received message; and
arranging the received replicas according to their position in a destination memory.
-
-
24. A system of communicating messages over a network comprising:
-
means for creating a random number of replicas of one or more packets in the message;
means for selecting one or more different paths through the network to one or more destinations;
means for sending each of the replicas over one of the different paths;
means for receiving one or more received replicas;
means for determining a position of the received replicas in a received message; and
means for arranging the received replicas according to their position in a destination memory.
-
Specification