# US 7,411,971 B2 · Systems and methods for the schedule alignment of packet flow

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,411,971 B2
- Document ID: US7411971B2
- Status: Granted
- Kind: B2
- Application number: 10/936,881
- Filed: 2004-09-09
- Published: 2005-05-26
- Granted: 2008-08-12
- Earliest claimed: 2003-09-09
- Assignees: Avaya Inc.
- Inventors: Ilya Freytsis; Paul T. Sprague; James P. Towey, Jr.
- Web page: https://patentgrep.com/patent/US7411971B2

## CPC

- H04L 47/564: {Attaching a deadline to packets, e.g. earliest due date first}
- H04L 47/50: Queue scheduling
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A classification mechanism automatically aligns time-sensitive data streams to sequences (schedules), according to information in the packets or other information and classification criteria specified by a human network administrator, a sequence agent, an application program or otherwise. When a packet arrives at a first sequence-aware switch along a path, the packet is aligned to a new or existing sequence. When a new sequence is established, appointments are reserved at sequence-aware switches along the path. The packet is placed in a queue, based on its classification. When the packet reaches the head of the queue, at that queue's appointment time, the switch forwards the packet along the path. If possible, appointments have been reserved at subsequent switches along the packet's path, so the packet can be forwarded through the subsequent switches without delay. Packets that do not match any classification criteria are handled on a best-effort basis.

## Claims

### Claim 1

A method of automatically switching time-sensitive data packets, comprising:
providing classification criteria;
receiving a data packet;
classifying the data packet according to the classification criteria; and if the received data packet is classified as being time-sensitive, aligning the received data packet to a sequenced data flow, and wherein aligning the received data packet to a sequenced data flow comprises enqueuing the data packet to queue that corresponds to the classification of the data packet, wherein aligning the received data packet to a sequenced data flow further comprises determining a size of the queue based on an amount of traffic expected to be classified as the received data packet is classified, and wherein aligning the received data packet to a sequenced data flow further comprises determining a size of the queue based on an estimate of an amount of jitter in a data flow.

### Claim 2 (depends on 1)

The method of claim 1, wherein classifying the data packet further comprises comparing at least some of the contents of the data packet to at least some of the classification criteria and wherein a match between the at least some of the contents of the data packet and the at least some of the received classification criteria indicates the packet is classified as being time-sensitive.

### Claim 3 (depends on 1)

The method of claim 1, wherein classifying the data packet comprises examining at least some contents of the data packet.

### Claim 4 (depends on 3)

The method of claim 3, wherein examining contents of the data packet comprises examining at least one of a Layer 2 source address, a Layer 2 destination address, a Layer 2 priority, a Layer 2 virtual circuit/LAN/tunnel identifier, a Layer 2 type field, a Layer 3 source address, a Layer 3 destination address, a Layer 3 priority, a Layer 3 virtual circuit/LAN/tunnel identifier, a Layer 3 type field, a Layer 4 source port and a Layer 4 destination port.

### Claim 5 (depends on 1)

The method of claim 1, wherein classifying the data packet further comprises comparing a destination identifier in the packet to at least some of the classification criteria.

### Claim 6 (depends on 1)

The method of claim 1, wherein classifying the data packet further comprises comparing a source and a destination identifier in the packet to at least some of the classification criteria.

### Claim 7 (depends on 1)

The method of claim 1, wherein classifying the data packet comprises determining a type of the packet.

### Claim 8 (depends on 7)

The method of claim 7, wherein determining the type of the packet comprises determining whether the packet is one of an Ethernet, a Point-to-Point Protocol, a High-level Data Link Control, an Asynchronous Transfer Mode and a Frame Relay packet type.

### Claim 9 (depends on 7)

The method of claim 7, wherein determining the type of the packet comprises determining whether the packet is one of an Internet Protocol and a Internetwork Packet Exchange packet type.

### Claim 10 (depends on 7)

The method of claim 7, wherein determining the type of the packet comprises determining whether the packet is one of a User Datagram Protocol and a Transmission Control Protocol packet type.

### Claim 11 (depends on 1)

The method of claim 1, wherein classifying the data packet comprises classifying the data packet as being time-sensitive if a voice over IP application generated the data packet.

### Claim 12 (depends on 1)

The method of claim 1, wherein classifying the data packet comprises classifying the data packet as being time-sensitive if a video over IP application generated the data packet.

### Claim 13 (depends on 1)

The method of claim 1, wherein classifying the data packet comprises classifying the data packet as being time-sensitive if the data packet is a Real-Time Transport Protocol (RTP) packet.

### Claim 14 (depends on 1)

The method of claim 1, wherein classifying the data packet comprises inferring an application type of an application that sent the data packet.

### Claim 15 (depends on 14)

The method of claim 14, wherein inferring the application type comprises examining at least some contents of the data packet.

### Claim 16 (depends on 15)

The method of claim 15, wherein examining at least some contents of the data packet comprises examining payload type information in the data packet.

### Claim 17 (depends on 15)

The method of claim 15, wherein examining at least some contents of the data packet comprises examining a port number in the data packet.

### Claim 18 (depends on 1)

The method of claim 1, wherein classifying the data packet comprises obtaining information about a source of the data packet.

### Claim 19 (depends on 1)

The method of claim 1, wherein classifying the data packet comprises obtaining information about a destination of the data packet.

### Claim 20 (depends on 1)

The method of claim 1, wherein classifying the data packet comprises using network traffic statistics.

### Claim 21 (depends on 20)

The method of claim 20, wherein using network traffic statistics comprises measuring at least one parameter of a data flow.

### Claim 22 (depends on 21)

The method of claim 21, wherein measuring the at least one parameter comprises measuring a parameter selected from a list comprising burstiness, delay, jitter and packet loss.

### Claim 23 (depends on 1)

The method of claim 1, wherein providing the classification criteria comprises receiving the classification criteria via a user interface.

### Claim 24 (depends on 1)

The method of claim 1, wherein providing the classification criteria comprises receiving the classification criteria from a sequencing agent.

### Claim 25 (depends on 1)

The method of claim 1, wherein providing the classification criteria comprises receiving the classification criteria from an application program.

### Claim 26 (depends on 1)

The method of claim 1, wherein providing the classification criteria comprises generating the classification criteria based on measurements of network traffic.

### Claim 27 (depends on 1)

The method of claim 1, wherein aligning the received data packet to a sequenced data flow comprises scheduling at least one appointment at least one switch for subsequent data packets that are classified as the received data packet is classified.

### Claim 28

Apparatus for automatically switching time-sensitive data packets, comprising:
a packet switching device;
at least one schedule alignment queue; and
a data packet classifier configured to:
classify received data packets according to classification criteria; and
if a received data packets is not classified as being time-sensitive,
forward the data packets to the packet switching device; and
if the received data packet is classified as being time-sensitive, forward the data packet to one of the at least one schedule alignment queue, and wherein the received data packet is aligned to a sequenced data flow comprising enqueuing the data packet to queue that corresponds to the classification of the data packet, wherein aligning the received data packet to a sequenced data flow further comprises determining a size of the queue based on an amount of traffic expected to be classified as the received data packet is classified, and wherein aligning the received data packet to a sequenced data flow further comprises determining a size of the queue based on an estimate of an amount of jitter in a data flow.

### Claim 29 (depends on 28)

The apparatus of claim 28, further comprising at least one schedule-aware transmitter configured to dequeue data packets from at least one of the at least one schedule alignment queue and transmit the dequeued data packets according to a schedule.

### Claim 30 (depends on 29)

The apparatus of claim 29, further comprising a sequencing agent configured to establish the schedule.

### Claim 31 (depends on 29)

The apparatus of claim 29, further comprising a sequencing agent configured to provide the classification criteria.

### Claim 32 (depends on 31)

The apparatus of claim 31, further comprising a user interface connected to the sequencing agent configured to receive the classification criteria.

### Claim 33 (depends on 1)

The method of claim 1 wherein said estimate of an amount of jitter in a data flow comprises using timestamp information contained in Real-Time Transport Protocol (RTP) headers used by applications relating to said data flow.

### Claim 34 (depends on 28)

The apparatus of claim 28 wherein said estimate of an amount of jitter in a data flow comprises using timestamp information contained in Real-Time Transport Protocol (RTP) headers used by applications relating to said data flow.
