IP Library Granted Patent US 7,155,539
Granted Patent B2
US 7,155,539 · App. 09/835,874 · Granted Dec 26, 2006

Conductor gateway buffer prioritization

Assignee: Circadence Corporation
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 7,155,539
App. No.
09/835,874
Granted
Dec 26, 2006
Kind
B2
Abstract

A method for transmitting packets from a network computer onto a network. At least two data sets are received. A priority value is determined for each of the at least two data sets. A composite data set is composed comprising portions of the at least two data sets such that an amount of data from each of the data sets within the composite data set is based upon relative priorities between each of the at least two data sets. The composite data set is transmitted onto the network.

Claims (58)

1. A method for transmitting packets from a computer onto a network, said method comprising the acts:

receiving at least two data sets;

determining a priority value for each of the at least two data sets based on priority information parsed from the received at least two data sets;

composing a composite data set comprising portions of the at least two data sets such that an amount of data from each of the data sets within the composite data set is based upon the determined priority values and wherein an order of the portions in the composite data set is selected based on the determined priority values, wherein the step of composing comprises:

creating a connection buffer for each data set;

organizing the connection buffers into logical rings of like priority value; and

selecting portions of data from each logical ring at a frequency at least partially reflecting the relative priority of the logical rings; and

transmitting the composite data set onto the network;

determining for each logical ring a number of bytes held by all the connection buffers within that ring (nBytes);

determining for each ring the number of connection buffers it holds that have data waiting to be sent (nReady); and

determining a number of bytes to be sent from each logical ring;

wherein the act of receiving comprises creating a group comprising a plurality of connection buffers for each data set and assigning a priority to each created group.

2. The method of claim 1 wherein the step of creating comprises:

monitoring the speed of the connection supplying data to each connection buffer; and

adjusting the size of the corresponding connection buffer to maintain a buffer sized to hold packets received over a preselected time interval.

3. The method of claim 2 wherein the preselected time interval is at least as long as the time required to complete the composing step.

4. The method of claim 1 further comprising:

determining a weight value for each data set; and

selecting portions of the first and second data sets in an order at least partially based upon the weight value.

5. The method of claim 1 wherein the step of determining the number of bytes comprises normalizing to the logical ring having the largest nBytes value.

6. The method of claim 1 wherein number of logical rings is “n” defining n discrete priority levels labeled 0 to n-1, and the step of selecting further comprises:

selecting sub-packets from each of the rings in having a selection pattern substantially matching:

selection round

logical ring

1

n

2

n, n-1

3

n, n-1, n-2

n

n, n-1, n-2, . . ., n-1.

7. The method of claim 1 , wherein the networked computer transmits the prioritized packets to a second networked computer over the Internet.

8. The method of claim 1 , wherein the networked computer receives the prioritized packets from at least one client.

9. The method of claim 1 , wherein the prioritized packets are received by an originating server.

10. The method of claim 1 , wherein the networked computer transmits the prioritized packets to a second networked computer and receives prioritized packets from the second networked computer.

11. The method of claim 1 wherein the act of determining the priority value comprises:

receiving prioritization rules from an external content server associated with at least one of the data sets; and

determining the priority value at least partially based on the prioritization rules.

12. A system for transmitting packets from a buffer of a network computer onto a network, said system comprising:

a buffer to store a plurality of packets received from at least one client;

at least two packets stored in the buffer, wherein each of the packets has a priority value that at least partially determines a queue order for transmitting;

a transmitter to transmit prioritized packets of a composite data set from the buffer; and

means for composing the composite data set comprising portions of the at least two packets such that an amount of data from each of the data packets within the composite data set is based upon the determined priority values and wherein an order of the portions in the composite data set is selected based on the determined priority values, wherein the step of composing comprises:

creating a connection buffer for each data set;

organizing the connection buffers into logical rings of like priority value; and

selecting portions of data from each logical ring at a frequency at least partially reflecting the relative priority of the logical rings;

means for receiving the packets wherein the act of receiving comprises creating a group comprising a plurality of connection buffers for each data set and assigning a priority to each created group;

means for determining for each logical ring a number of bytes held by all the connection buffers within that ring (nBytes);

means for determining for each ring the number of connection buffers it holds that have data waiting to be sent (nReady); and

means for determining a number of bytes to be sent from each logical ring;

wherein the buffer is part of an intermediary web server that receives packets from the at least one client; and

the network is the Internet.

13. The system of claim 12 wherein the priority value is based on at least two priority parameter values for the at least one packet, wherein the at least two priority parameter values are converted into a priority value based on a weighting algorithm.

14. The system of claim 12 , wherein the priority value is at least partially determined by the number of transmission cycles each of the at least two packets has remained in the buffer.

15. The system of claim 12 , wherein the networked computer transmits the prioritized packets to a second networked computer over the Internet.

16. The system of claim 12 , wherein the prioritized packets are received by an originating server.

17. The system of claim 12 , wherein the networked computer transmits the prioritized packets to a second networked computer and receives prioritized packets from the second networked computer.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2021
From: CIRCADENCE CORPORATION
To: SONS OF INNOVATION LLC
Reel/Frame 056106/0493 →
SECURITY INTEREST Recorded Dec 20, 2018
From: CIRCADENCE CORPORATION
To: RUNWAY GROWTH CREDIT FUND INC.
Reel/Frame 047973/0029 →
RELEASE OF SECURITY INTEREST Recorded Dec 11, 2015
From: AUGUSTINE FUND, LP; CAROL W. ASHER REVOCABLE TRUST; LAMPHERE, JTWRS, CHARLES AND SARAH; CRAIG ASHER REVOCABLE TRUST; DLWS PARTNERSHIP; DONALD L. ASHER REVOCABLE TRUST; GABRIEL ASHER 2011 SUSMAN TRUST; HENRY ASHER 2011 SUSMAN TRUST; HOPE E. ASHER REVOCABLE TRUST; MATARAZZO, JOSEPH; NANETTE O. LAMPHERE TRUST; ROBERT G. LAMPHERE TRUST DTD 5/13/93; SARAH ASHER 2011 SUSMAN TRUST; SHOFFNER, JOHN; WILLIAM ASHER 2011 SUSMAN TRUST; VAN VLISSINGEN PROFIT SHARING TRUST; DAVID L. ASHER REVOCABLE TRUST
To: CIRCADENCE CORPORATION
Reel/Frame 037269/0758 →
RELEASE OF SECURITY INTEREST Recorded Dec 9, 2015
From: VAN VLISSINGEN PROFIT SHARING TRUST; JTWRS, CHARLES AND SARAH LAMPHERE; C&S LAMPHERE INVESTMENTS, LLC; CRAIG ASHER REVOCABLE TRUST; CAROL W. ASHER REVOCABLE TRUST; DAVID L. ASHER REVOCABLE TRUST; DONALD L. ASHER REVOCABLE TRUST; GABRIEL ASHER 2011 SUSMAN TRUST; HENRY ASHER 2011 SUSMAN TRUST; HOPE E. KALINSKI REVOCABLE TRUST; SARAH ASHER 2011 SUSMAN TRUST; WILLIAM ASHER 2011 SUSMAN TRUST; SHOFFNER, JOHN; AUGUSTINE FUND, LP; SILVERLEAF CONSULTING, LLC; MATARAZZO, JOSEPH, DR.; HARLAN, JOHN; SAINTS CAPITAL IV, LP; HART, STEPHEN; PASQUALE, JUDY; MELTON, R. NEAL
To: CIRCADENCE CORPORATION
Reel/Frame 037247/0137 →
SECURITY INTEREST Recorded Feb 10, 2015
From: CIRCADENCE CORPORATION
To: VAN VLISSINGEN PROFIT SHARING TRUST; JTWRS, CHARLES AND SARAH LAMPHERE; C&S LAMPHERE INVESTMENTS, LLC; CRAIG ASHER REVOCABLE TRUST; CAROL W. ASHER REVOCABLE TRUST; DAVID L. ASHER REVOCABLE TRUST; DONALD L. ASHER REVOCABLE TRUST; GABRIEL ASHER 2011 SUSMAN TRUST; HENRY ASHER 2011 SUSMAN TRUST; HOPE E. KALINSKI REVOCABLE TRUST; SARAH ASHER 2011 SUSMAN TRUST; WILLIAM ASHER 2011 SUSMAN TRUST; SHOFFNER, JOHN; AUGUSTINE FUND, LP; SILVERLEAF CONSULTING, LLC; MATARAZZO, DR. JOSEPH, DR.; HARLAN, JOHN; SAINTS CAPITAL IV, LP; HART, STEPHEN; PASQUALE, JUDY; MELTON, R. NEAL
Reel/Frame 034927/0043 →
SECURITY AGREEMENT Recorded May 10, 2012
From: CIRCADENCE CORPORATION
To: DLWS PARTNERSHIP; AUGUSTINE FUND, LP; CAROL W. ASHER REVOCABLE TRUST; CHARLES AND SARAH LAMPHERE, JTWRS; CRAIG ASHER REVOCABLE TRUST; DONALD L. ASHER REVOCABLE TRUST; GABRIEL ASHER 2011 SUSMAN TRUST; HENRY ASHER 2011 SUSMAN TRUST; HOPE E. ASHER REVOCABLE TRUST; MATARAZZO, JOSEPH; NANETTE O. LAMPHERE TRUST; ROBERT G. LAMPHERE TRUST DTD 5/13/93; SARAH ASHER 2011 SUSMAN TRUST; SHOFFNER, JOHN; WILLIAM ASHER 2011 SUSMAN TRUST; VAN VLISSINGEN PROFIT SHARING TRUST; DAVID L. ASHER REVOCABLE TRUST
Reel/Frame 028192/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2001
From: VANGE, MARK; WILSON, GLENN SYDNEY; PLUMB, MARK; KOUTS, MICHAEL
To: CIRCADENCE CORPORATION, A CORP. OF DELAWARE
Reel/Frame 012099/0350 →
Continuity (2)
Provisional Application 6019749000 · Apr 17, 2000
Related Publication 20020056006A1 · May 9, 2002