IP Library Granted Patent US 12,095,664
Granted Patent B2
US 12,095,664 · App. 17/406,865 · Granted Sep 17, 2024

Application wire

Inventors: Ping Pan (San Jose, CA); Richard D. Gitlin (Little Silver, NJ)
Assignee: K.Mizra LLC
H04L45/68H04L45/00H04L45/38H04L45/50H04L45/74H04L47/24H04L65/1013H04L69/22
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 12,095,664
App. No.
17/406,865
Granted
Sep 17, 2024
Kind
B2
Abstract

A method includes, at a node associated with a multiprotocol label switching system (MPLS) network, identifying information associated with an application flow based on one or more unencapsulated packet headers of the application flow or based on an ingress data stream that includes the application flow. The method further includes, in response to identifying the information, and based on stored data that maps application flows with pseudowires, determining a number of pseudowires corresponding to paths through the MPLS network, where the stored data indicates, for a sending device application, a distributed mapping of the application flow via at least one of the number of pseudowires, and communicating data related to the sending device application via at least one of the number of pseudowires.

Claims (56)

1. A method, comprising:

identifying, by a system comprising at least one processor, a first subset of data packets from a first client device having a first priority based on a parameter associated with flow identification information;

identifying, by the system comprising at least one processor, a second subset of data packets from a second client device, that excludes the first subset of data packets, having a second priority based on the parameter associated with the flow identification information;

assigning, by the system, the first subset of the data packets to a first data stream;

assigning, by the system, the second subset of the data packets to a second data stream,

encapsulating, by the system, a first data packet of the first data stream with a first pseudowire header associated with a first pseudowire, wherein the first pseudowire comprises a first plurality of intermediate nodes; and

encapsulating, by the system, a second data packet of the second data stream with a second pseudowire header associated with a second pseudowire, wherein the second pseudowire comprises a second plurality of intermediate nodes.

2. The method of claim 1 , further comprising:

identifying, by the system, the flow identification information based on header information associated with at least one of the data packets; and

mapping, by the system, the at least one of the data packets to an application flow based on the header information.

3. The method of claim 1 , further comprising setting, by the system, at least one of a packet label field, a sequence number field, a service differentiation field, a service guarantee field, or a flow control field in at least one of the first pseudowire header or the second pseudowire header.

4. The method of claim 1 , wherein the encapsulating the first data packet yields a first encapsulated data packet, and the encapsulating the second data packet yields a second encapsulated data packet, and the method further comprises:

sending, by the system, the first encapsulated data packet over the first pseudowire via one or more first multi-protocol label switching devices; and

sending, by the system, the second encapsulated data packet over the second pseudowire via one or more second multi-protocol label switching devices.

5. The method of claim 1 , further comprising:

identifying, by the system comprising at least one processor, a third subset of packets from a third client device, that excludes the first subset of data packets and the second subset of data packets, having a third priority based on the parameter associated with the flow identification information;

assigning, by the system, the third subset of the data packets to a third data stream;

encapsulating, by the system, a third data packet of the third data stream with a third pseudowire header associated with a third pseudowire, wherein the third pseudowire comprises a third plurality of intermediate nodes; and

forwarding the first pseudowire header, the second pseudowire header, and the third pseudowire header, between the plurality of intermediate nodes of the first pseudowire and the plurality of intermediate nodes of the second pseudowire.

6. The method of claim 5 , wherein the assigning the first subset, the assigning the second subset, and the assigning the third subset comprises assigning the first subset, assigning the second subset, and assigning the third subset in response to determining that the data packets exceed an available data rate of the first pseudo wire.

7. The method of claim 5 , further comprising:

in response to determining that a first priority of the first pseudowire is higher than a second priority of the second pseudowire, mapping, by the system, the first data stream to the first pseudowire.

8. A device, comprising:

a memory that stores executable instructions; and

a processor, communicatively coupled to the memory, that executes or facilitates execution of the executable instructions to at least:

determine a first subset of data packets from a first client device that have a first priority based on a parameter associated with flow identification information;

determine a second subset of data packets from a second client device that excludes the first subset of data packets, that have a second priority based on the parameter associated with the flow identification information;

assign the first subset of the data packets to a first data stream;

assign the second subset of the data packets to a second data stream;

encapsulate a first data packet of the first data stream with a first pseudowire header corresponding to a first pseudowire wherein the first pseudowire comprises a first plurality of intermediate nodes; and

encapsulate a second data packet of the second data stream with a second pseudowire header corresponding to a second pseudowire, wherein the second pseudowire comprises a second plurality of intermediate nodes.

9. The device of claim 8 , wherein the processor further executes or facilitates the execution of the computer-executable instructions to assign the first subset of the data packets to the first data stream and assign the second subset of the data packets to the second data stream in response to a determination that a data flow of the data packets exceeds a defined data rate of the first pseudowire.

10. The device of claim 8 , wherein the processor further executes or facilitates the execution of the computer-executable instructions to:

compare a first priority associated with the first pseudowire with a second priority associated with the second pseudowire; and

assign the first data stream to the first pseudowire based on a determination that the first priority exceeds the second priority.

11. The device of claim 8 , wherein the processor further executes or facilitates the execution of the computer-executable instructions to identify the flow identification information based on header information read from at least one of the data packets.

12. The device of claim 11 , wherein the processor further executes or facilitates the execution of the computer-executable instructions to assign the at least one of the data packets to an application flow based on the header information.

13. The device of claim 12 , wherein the processor further executes or facilitates the execution of the computer-executable instructions to determine the parameter based on identification of the application flow.

14. The device of claim 8 , wherein at least one of the first pseudowire header or the second pseudowire header comprises at least one of a packet label field, a sequence number field, a service differentiation field, a service guarantee field, or a flow control field.

15. The device of claim 8 , wherein encapsulation of the first data packet and the second data packet yields a first encapsulated data packet and a second encapsulated data packet, respectively, and the processor further executes or facilitates the execution of the computer-executable instructions to:

transfer the first encapsulated data packet over the first pseudowire via one or more first multi-protocol label switching devices; and

transfer the second encapsulated data packet via the second pseudowire using one or more second multi-protocol label switching devices.

16. A computer-readable storage device having stored thereon computer executable instructions that, in response to execution, cause a device comprising a processor to perform operations, comprising:

identifying a first subset of data packets from a first client device having a first priority based on a parameter associated with flow identification information;

identifying a second subset of data packets from a second client device that excludes the first subset of data packets, having a second priority based on the parameter associated with flow identification information;

assigning the first subset of the data packets to a first data stream;

assigning the second subset of the data packets to a second data stream;

encapsulating a first data packet of the first data stream with a first pseudowire header corresponding to a first pseudowire; and

encapsulating a second data packet of the second data stream with a second pseudowire header corresponding to a second pseudowire.

17. The computer-readable storage device of claim 16 , the operations further comprising determining that a data rate of the data packets exceeds an available data rate of the first pseudowire, wherein the assigning the first subset and the assigning the second subset comprises assigning the first subset and assigning the second subset in response to the determining.

18. The computer-readable storage device of claim 16 , the operations further comprising:

determining that a first priority assigned to the first pseudowire exceeds a second priority assigned to the second pseudowire; and

mapping the first data stream to the first pseudowire in response to the determining.

19. The computer-readable storage device of claim 16 , wherein the encapsulating the first data packet yields a first encapsulated data packet, the encapsulating the second data packet yields a second encapsulated data packet, and the operations further comprise:

sending the first encapsulated data packet via the first pseudowire using one or more first multi-protocol label switching devices; and

sending the second encapsulated data packet via the second pseudowire using one or more second multi-protocol label switching devices.

Continuity (8)
Continuation 16912546 · Jun 25, 2020
Continuation 16536103 · Aug 8, 2019
Continuation 15838014 · Dec 11, 2017
Continuation 14919687 · Oct 21, 2015
Continuation 14055721 · Oct 16, 2013
Continuation 11543727 · Oct 5, 2006
Provisional Application 60725038 · Oct 7, 2005
Related Publication 20220124032A1 · Apr 21, 2022