IP Library Granted Patent US 8,064,451
Granted Patent B2
US 8,064,451 · App. 10/991,848 · Granted Nov 22, 2011

Network address translation for multicast virtual sourcing

Assignee: Cisco Technology, Inc.
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 8,064,451
App. No.
10/991,848
Granted
Nov 22, 2011
Kind
B2
Abstract

A method for using network address translation in switches and routers to define a virtual host as the source of a multicast channel within a single-source multicast model and to translate packet addresses from different multicast sources so that the packets appear to be originating from the virtual host. Address-translated packets are thus forwarded through a single-source multicast channel and received by the subscribing host(s)/clients as though the packets came from a single “virtual” source. This methodology can be used to map two or more sources simultaneously onto the same multicast channel. Such a mapping is useful, for example, to present multiple views of a sporting event video broadcast, provide advertisement insertion capability, or to support transparent fail-over to a backup video source in a critical multicast application. Subscribing client hosts in the multicast reception group simply subscribe to the single virtual host as the source of a multicast channel.

Claims (221)

1. A method comprising:

forming a first translated multicast packet from a first multicast packet, wherein

the first multicast packet comprises a first source network address,

the first multicast packet comprises a first destination address,

the first translated multicast packet is configured to be sent via a single-source multicast channel by virtue of the forming the first translated multicast packet, and

the forming the first translated multicast packet comprises

replacing the first source network address with a first virtual source network address, and

replacing the first destination address with a first virtual destination address;

forming a second translated multicast packet from a second multicast packet, wherein

the second multicast packet comprises a second source network address,

the second multicast packet comprises a second destination address,

the second translated multicast packet is configured to be sent via the single-source multicast channel by virtue of the forming the second translated multicast packet, and

the forming the second translated multicast packet comprises

replacing the second source network address with a second virtual source network address, wherein the second virtual source network address is different from the first virtual source network address, and

replacing the second destination address with the first virtual destination address;

forming another translated multicast packet from another multicast packet, wherein

the another multicast packet comprises another source network address, and

the another translated multicast packet is configured to be sent via the single-source multicast channel by virtue of the forming the another translated multicast packet comprising

replacing the another source network address with the first virtual source network address;

sending the first translated multicast packet via the single-source multicast channel; and

sending the another translated multicast packet via the single-source multicast channel.

2. The method of claim 1 , wherein

the first multicast packet is received from a first packet source, and

the second multicast packet is received from a second packet source.

3. The method of claim 2 , further comprising

detecting a failure of the first packet source, wherein

the replacing the second source network address with the second virtual source network address is performed in response to the detecting the failure of the first packet source.

4. The method of claim 1 , further comprising:

sending the second translated multicast packet via the single-source multicast channel.

5. The method of claim 1 , further comprising:

sending the another translated multicast packet via a second single-source multicast channel.

6. The method of claim 5 , further comprising:

performing time-based skewing for the another translated multicast packet relative to the first translated multicast packet.

7. A method comprising:

forming a first translated multicast packet from a first multicast packet, wherein

the first multicast packet comprises a first source network address, and

the first multicast packet is received from a first packet source,

the first packet source generates packets corresponding to a first view of an event, and

the first translated multicast packet is configured to be sent via a single-source multicast channel by virtue of the forming the first translated multicast packet comprising

replacing the first source network address with a first virtual source network address;

forming a second translated multicast packet from a second multicast packet, wherein

the second multicast packet comprises a second source network address,

the second multicast packet is received from a second packet source,

the second packet source generates packets corresponding to a second view of the event, and

the second translated multicast packet is configured to be sent via the single-source multicast channel by virtue of the forming the second translated multicast packet comprising

replacing the second source network address with a second virtual source network address, wherein the second virtual source network address is different from the first virtual source network address;

forming another translated multicast packet from another multicast packet, wherein

the another multicast packet comprises another source network address, and

the another translated multicast packet is configured to be sent via the single-source multicast channel by virtue of the forming the another translated multicast packet comprising

replacing the another source network address with the first virtual source network address;

sending the first translated multicast packet via the single-source multicast channel; and

sending the another translated multicast packet via the single-source multicast channel.

8. A method comprising:

forming a first translated multicast packet from a first multicast packet, wherein

the first multicast packet comprises a first source network address,

the first translated multicast packet is associated with a first time slot identifier,

the first time slot identifier identifies a first time slot,

the first translated multicast packet is configured to be sent via a single-source multicast channel by virtue of the forming the first translated multicast packet comprising

replacing the first source network address with a first virtual source network address, and

the first translated multicast packet is conveyed via the single-source multicast channel in the first time slot; and

forming a second translated multicast packet from a second multicast packet, wherein

the second multicast packet comprises a second source network address,

the second translated multicast packet is associated with a second time slot identifier,

the second time slot identifier identifies a second time slot,

the second translated multicast packet is configured to be sent via the single-source multicast channel by virtue of the forming the second translated multicast packet comprising

replacing the second source network address with a second virtual source network address, wherein the second virtual source network address is different from the first virtual source network address, and

the second translated multicast packet is conveyed via the single-source multicast channel in the second time slot;

forming another translated multicast packet from another multicast packet, wherein

the another multicast packet comprises another source network address, and

the another translated multicast packet is configured to be sent via the single-source multicast channel by virtue of the forming the another translated multicast packet comprising

replacing the another source network address with the first virtual source network address;

sending the first translated multicast packet via the single-source multicast channel;

sending the second translated multicast packet via the single-source multicast channel; and

sending the another translated multicast packet via the single-source multicast channel.

9. A network device comprising:

a packet rewrite table; and

a packet header rewrite engine coupled to the packet rewrite table, wherein

the packet rewrite table is configured to provide a first virtual source network address to the packet header rewrite engine, and

the packet header rewrite engine comprises a processor configured to

generate a first translated multicast packet from a first multicast packet, wherein

the first multicast packet comprises a first source network address,

the first multicast packet comprises a first destination address, and

the first translated multicast packet is configured to be sent via a single-source multicast channel by virtue of the packet header rewrite engine being configured to

 replace the first source network address with the first virtual source network address, and

 replace the first destination address with a first virtual destination address;

generate a second translated multicast packet from a second multicast packet, wherein

the second multicast packet comprises a second source network address,

the second multicast packet comprises a second destination address, and

the second translated multicast packet is configured to be sent via the single-source multicast channel by virtue of the packet header rewrite engine being configured to

 replace the second source network address with a second virtual source network address, wherein the second virtual source network address is different from the first virtual source network address, and

 replace the second destination address with the first virtual destination address,

generate another translated multicast packet from another multicast packet, wherein

the another multicast packet comprises another source network address, and

the another translated multicast packet is configured to be sent via the single-source multicast channel by virtue of the packet header rewrite engine being configured to

 replace the another source network address with the first virtual source network address,

send the first translated multicast packet via the single-source multicast channel, and

send the another translated multicast packet via the single-source multicast channel.

10. The network device of claim 9 , wherein

the first multicast packet is received from a first packet source, and

the second multicast packet is received from a second packet source.

11. The network device of claim 10 , wherein

the first packet source generates packets corresponding to a first view of an event, and

the second packet source generates packets corresponding to a second view of the event.

12. The network device of claim 9 , wherein

the first translated multicast packet is associated with a first time slot identifier,

the first time slot identifier identifies a first time slot,

the second translated multicast packet is associated with a second time slot identifier,

the second time slot identifier identifies a second time slot,

the first translated multicast packet is conveyed via the single-source multicast channel in the first time slot, and

the second translated multicast packet is conveyed via the single-source multicast channel in the second time slot.

13. The network device of claim 9 , wherein

transmission of the another translated multicast packet is time-skewed relative to transmission of the first translated multicast packet.

14. A network device comprising:

a packet rewrite table; and

a packet header rewrite engine coupled to the packet rewrite table, wherein

the packet rewrite table is configured to provide a first virtual source network address to the packet header rewrite engine, and

the packet header rewrite engine comprises a processor configured to

generate a first translated multicast packet from a first multicast packet, wherein

the first multicast packet is received from a first packet source,

the first multicast packet comprises a first source network address, and

the first translated multicast packet is configured to be sent via a single-source multicast channel by virtue of the packet header rewrite engine being configured to

 replace the first source network address with the first virtual source network address,

prior to detection of a failure of the first source, translate multicast packets comprising the first source network address by replacing the first source network address with the first virtual source network address,

generate a second translated multicast packet from a second multicast packet, wherein

the second multicast packet is received from a second packet source,

the second multicast packet comprises a second source network address, and

the second translated multicast packet is configured to be sent via the single-source multicast channel by virtue of the packet header rewrite engine being configured to

 replace the second source network address with a second virtual source network address, wherein the second virtual source network address is different from the first virtual source network address,

subsequent to the detection of the failure of the first source, translate multicast packets comprising the second source network address by replacing the second source network address with the second virtual source network address

generate another translated multicast packet from another multicast packet, wherein

the another multicast packet comprises another source network address, and

the another translated multicast packet is configured to be sent via the single-source multicast channel by virtue of the packet header rewrite engine being configured to

 replace the another source network address with the first virtual source network address,

send the first translated multicast packet via the single-source multicast channel, and

send the another translated multicast packet via the single-source multicast channel.

15. A computer program product comprising

a plurality of instructions, comprising

a first set of instructions, executable by a processor, configured to form a first translated multicast packet from a first multicast packet, wherein

the first multicast packet comprises a first source network address,

the first multicast packet comprises a first destination address, and

the first set of instructions comprises

a first subset of instructions, executable by the processor, configured to configure the first translated multicast packet to be sent via a single-source multicast channel by virtue of said first subset of instructions comprising

 a first sub-subset of instructions, executable by the processor, configured to replace a first source network address with a first virtual source network address, and to replace the first destination address with a first virtual destination address, and

a second set of instructions, executable by the processor, configured to form a second translated multicast packet replacing from a second multicast packet, wherein

the second multicast packet comprises a second source network address,

the second multicast packet comprises a second destination address, and

the second set of instructions comprises

a second subset of instructions, executable by the processor, configured to configure the second translated multicast packet to be sent via the single-source multicast channel by virtue of said second subset of instructions comprising

 a second sub-subset of instructions, executable by the processor, configured to replace the second source network address with a second virtual source network address, and to replace the second destination address with the first virtual destination address, wherein the second virtual source network address is different from the first virtual source network address;

a third set of instructions, executable by the processor, configured to form another translated multicast packet replacing from another multicast packet, wherein

the another multicast packet comprises another source network address, and

the third set of instructions comprises

a third subset of instructions, executable by the processor, configured to configure the another translated multicast packet to be sent via the single-source multicast channel by virtue of said second subset of instructions comprising

 a second sub-subset of instructions, executable by the processor, configured to replace the another source network address with the first virtual source network address; and

a fourth set of instructions, executable by the processor, configured to

send the first translated multicast packet via the single-source multicast channel, and

send the another translated multicast packet via the single-source multicast channel; and

a non-transitory computer-readable storage medium, wherein the instructions are encoded in the non-transitory computer-readable storage medium.

16. The computer program product of claim 15 , wherein

the first multicast packet is received from a first packet source, and

the second multicast packet is received from a second packet source.

17. The computer program product of claim 16 , wherein

the first packet source generates packets corresponding to a first view of an event, and

the second packet source generates packets corresponding to a second view of the event.

18. The computer program product of claim 16 , wherein the instructions further comprise:

a fifth set of instructions, executable by the processor, configured to detect a failure of the first packet source, wherein

the second set of instructions are executed in response to detecting the failure of the first packet source.

19. The computer program product of claim 15 , wherein the instructions further comprise:

send the second translated multicast packet via the single-source multicast channel.

20. The computer program product of claim 19 , wherein:

the first translated multicast packet is associated with a first time slot identifier,

the first time slot identifier identifies a first time slot,

the second translated multicast packet is associated with a second time slot identifier,

the second time slot identifier identifies a second time slot,

the first translated multicast packet is conveyed via the single-source multicast channel in the first time slot, and

the second translated multicast packet is conveyed via the single-source multicast channel in the second time slot.

21. The computer program product of claim 15 , wherein the instructions further comprise:

a fifth set of instructions, executable by the processor, configured to send the another translated multicast packet via a second single-source multicast channel.

22. The computer program product of claim 21 , wherein the instructions further comprise:

a sixth set of instructions, executable by the processor, configured to perform time-based skewing for the another translated multicast packet relative to the first translated multicast packet.

23. A system comprising:

means for forming a first translated multicast packet from a first multicast packet, wherein

the first multicast packet comprises a first source network address,

the first multicast packet comprises a first destination address, and

the first translated multicast packet is configured to be sent via a single-source multicast channel by virtue of the means for forming the first translated multicast packet comprising

a processor configured for replacing a first source network address with a first virtual source network address, and

means for replacing the first destination address with a first virtual destination address;

means for forming a second translated multicast packet from a second multicast packet, wherein

the second multicast packet comprises a second source network address,

the second multicast packet comprises a second destination address, and

the second translated multicast packet is configured to be sent via the single-source multicast channel by virtue of the means for forming the second translated multicast packet comprising

means for replacing the second source network address with a second virtual source network address, wherein the second virtual source network address is different from the first virtual source network address, and

means for replacing the second destination address with the first virtual destination address;

means for forming another translated multicast packet from another multicast packet, wherein

the another multicast packet comprises another source network address, and

the another translated multicast packet is configured to be sent via the single-source multicast channel by virtue of the means for forming the another translated multicast packet comprising

means for replacing the another source network address with the first virtual source network address;

means for sending the first translated multicast packet via the single-source multicast channel; and

means for sending the another translated multicast packet via the single-source multicast channel.

24. The system of claim 23 , wherein

the first multicast packet is received from a first packet source, and

the second multicast packet is received from a second packet source.

25. The system of claim 24 , wherein

the first packet source generates packets corresponding to a first view of an event, and

the second packet source generates packets corresponding to a second view of the event.

26. The system of claim 24 , further comprising:

means for detecting a failure of the first packet source, wherein

the second source network address is replaced with the second virtual source network address in response to the detecting the failure of the first packet source.

27. The system of claim 23 , further comprising:

means for sending the second translated multicast packet via the single-source multicast channel.

28. The system of claim 27 , wherein:

the first translated multicast packet is associated with a first time slot identifier,

the first time slot identifier identifies a first time slot,

the second translated multicast packet is associated with a second time slot identifier,

the second time slot identifier identifies a second time slot,

the first translated multicast packet is conveyed via the single-source multicast channel in the first time slot, and

the second translated multicast packet is conveyed via the single-source multicast channel in the second time slot.

29. The system of claim 23 , further comprising:

means for sending the another translated multicast packet via a second single-source multicast channel.

30. The system of claim 29 , further comprising:

means for performing time-based skewing for the another translated multicast packet relative to the first translated multicast packet.

Continuity (2)
Continuation 09566902 · May 10, 2000
Related Publication 20050089050A1 · Apr 28, 2005