Claims
- 1. A method for delivering real time data across a network comprising the steps of:
determining a packet flow schedule for at least one data packet to reach at least one node in a path across said network; and reserving bandwidth for use by said at least one packet in said path according to said packet flow schedule.
- 2. The method according to claim 1 further comprising the step of guaranteeing bandwidth for real-time transmission of said at least one data packet that are transmitted and delivered according to said schedule by guaranteeing time during which an application can place said at least one data packet into a transmission path.
- 3. The method according to claim 2 further comprising the step of allocating guaranteed bandwidth to multiple applications or multiple process threads.
- 4. The method according to claim 1 further comprising the step of:
determining an optimal path for said at least one data packet to travel in said network.
- 5. The method according to claim 4 wherein said step of determining an optimal path comprises the steps of:
computing a fastest schedule through a network of switches; and accounting for delays in said switches and in nodes between said switches.
- 6. The method according to claim 1 further comprising the step of:
communicating said packet flow schedule to said at least one node.
- 7. The method according to claim 1 wherein said packet flow schedules are maintained independently at each of said at least one node.
- 8. The method according to claim 1 further comprising the step of:
coordinating said schedules between a plurality of nodes.
- 9. The method according to claim 8 wherein each node is coordinated with a next node along said path to an endpoint receiver for an associated packet flow.
- 10. The method according to claim 8 wherein an endpoint transmitter coordinates its transmissions with all nodes along said path to an endpoint receiver.
- 11. The method according to claim 1 wherein said path across said network comprises an optimal path between an endpoint transmitter and an endpoint receiver.
- 12. The method according to claim 1 wherein each of said at least one node is associated with a dedicated transmit function schedule interval and a dedicated receive function schedule interval.
- 13. The method according to claim 1 further comprising the step of:
incorporating said packet flow schedule in said at least one data packet.
- 14. The method according to claim 1 wherein unscheduled data is communicated through said network along with said at least one data packet that is transferred according to said packet flow schedule.
- 15. The method according to claim 1 wherein said packet flow schedule is calculated to implement controlled delays in transmission of said at least one data packet between said at least one node.
- 16. A method for delivering real time data across a network comprising the steps of:
determining a packet flow schedule for at least one data packet to reach at least one node in a path across said network; reserving bandwidth for use by said at least one packet in said path according to said packet flow schedule; guaranteeing bandwidth for real-time transmission of said at least one data packet that are transmitted and delivered according to said schedule by guaranteeing time during which an application can place said at least one data packet into a transmission path; allocating guaranteed bandwidth to multiple applications or multiple process threads; determining an optimal path for said at least one data packet to travel in said network by computing a fastest schedule through a network of switches and accounting for delays in said switches and in nodes between said switches; incorporating said packet flow schedule in said at least one data packet; communicating said packet flow schedule to said at least one node; independently maintaining said packet flow schedules at each of said at least one node; and coordinating said schedules between a plurality of nodes by coordinating each node with a next node along said path to an endpoint receiver for an associated packet flow.
- 17. The method according to claim 16 wherein an endpoint transmitter coordinates its transmissions with all nodes along said path to an endpoint receiver; and
wherein said path across said network comprises an optimal path between said endpoint transmitter and said endpoint receiver.
- 18. A system for controlling and monitoring an IP data packet network to assure guaranteed bandwidth to a plurality of data packet network devices comprising:
means for predetermining a scheduled path through said IP data packet network; means for determining arrival times for data packets at a switch; means for determining forwarding information indicating how said switch should forward received packets; and means for forwarding said data packet based on said arrival time.
- 19. A mechanism for controlling and monitoring an IP data packet network to assure guaranteed delay and bandwidth to a plurality of data packet network devices comprising:
a scheduling mechanism capable of predetermining a scheduled path through said IP data packet network, determining arrival times for said data packets at a switch wherein said packet arrival time information is associated with a packet flow, determining forwarding information indicating how said switch should forward received packets associated with said packet flow, and a forwarding mechanism capable of forwarding said packet based on said packet arrival time.
- 20. The mechanism of claim 19 further comprising a mechanism for dynamically controlling a data packet network's ability to respond to requests for special guaranteed bandwidth services, from a plurality of network devices.
- 21. The mechanism according to claim 20 further comprising a database containing data for determining, in real-time, whether to grant or reject said requests.
- 22. The mechanism according to claims 20 further comprising at least one software program to dynamically allocate bandwidth resources for optimizing the packet flow schedule according to varying packet sizes.
- 23. A software mechanism for dynamically varying network bandwidth and delay based on heuristic data including at least one of time of day, day of week, current load, and mix of packet sizes.
- 24. A software mechanism that can predetermine an IP Packet network's characteristics such that real-time applications can depend upon a deterministic response time and bandwidth comprising:
a software mechanism that will evaluate a plurality of possible data paths through the currently switching mechanism for adherence to a robust set of evaluation criteria; a software filtering mechanism that can apply, under software program control or manual intervention, filters to remove one or a plurality of possible network paths from being considered by scheduling mechanisms; and a software mechanism implementation that evaluates, in real-time, a best possible scheduled network path that is available within a network topology.
- 25. The mechanism of claim 24, further comprising:
a network path generation means that can establish a scheduled connection database of all possible paths either by manual construction or by self-discovery with assistance from the switching hardware; and a software mechanism that removes, in real-time, previously scheduled network path schedules and returns them to a centrally controlled resource pool for subsequent usage by said switching hardware.
- 26. A system for scheduling data transmissions in a network comprising:
a path generation engine; an admissions engine in communication with said path generation engine; and a tumbler scheduling engine in communication with said admission engine.
- 27. The system according to claim 26 wherein said path generation engine generates a matrix of possible connection paths for an entire network topology.
- 28. The system according to claim 27 wherein said path generation engine generates said matrix according to a manually generated database.
- 29. The system according to claim 27 wherein said path generation engine generates said matrix by communicating with scheduled switch hardware.
- 30. The system according to claim 27 wherein said path generation engine updates its database when network topology changes.
- 31. The system according to claim 26 wherein said path generation engine passes path mapping data to said tumbler scheduling engine according to a specific set of criteria enforced by said admissions engine.
- 32. A data packet scheduling method comprising the steps of:
configuring a tumbler map of concentric rings to represent a candidate path through a network wherein each of said rings represents a link along said candidate path and wherein each ring is divided into segments which segments represent schedule appointments for their respective link and wherein each previously reserved schedule appointment in a link is represented by an appointment time marker in its respective ring segment; and creating a path of open appointments along a radially directed line between an endpoint represented by a center ring and an endpoint represented by an outer ring by rotating said rings to align ring segments that are not marked with appointment time markers.
- 33. The method according to claim 32 wherein each link within switch hardware in said network is assigned a ring which stores the state of each appointment within a schedule period.
- 34. The method according to claim 32 wherein recurring appointments are represented by rotating said tumbler map.
- 35. The method according to claim 32 wherein said candidate path is selected by a path generation engine.
- 36. The method according to claim 35 wherein said candidate path from said path generation engine is filtered by an admission engine according to preselected filtering criteria.
- 37. A tumbler scheduling engine which schedules data packets according to the method of claim 32.
- 38. A schedule agent computer program for implementing a tumbler algorithm using circularly linked data structures according to the method of claim 32.
- 39. A schedule agent computer program according to claim 37 wherein said circularly linked data structures represent a repeating schedule.
- 40. A schedule agent computer program according to claim 37 wherein said repeating schedule comprises a period of about 20 milliseconds.
- 41. A schedule agent computer program according to claim 37 wherein said repeating schedule comprises a period that can be changed for different types of network uses.
- 42. The method according to claim 32 further comprising the step of skewing said appointments to compensate for transmission delays.
- 43. The method according to claim 41 wherein said transmission delays comprise delays within each scheduled switch and delays between switches.
- 44. A scheduled packet system comprising:
a schedule aware endpoint comprising any IP compatible network device that is capable of transmitting and receiving data packets according to a precise schedule; a schedule agent comprising a software application that is hosted by a general purpose computer and is responsible for pre-configuring a set of scheduled switches such that they operate on a precise schedule for particular data packets; and said set of scheduled switches comprising IP packet switches capable of maintaining a precise schedule for receiving and forwarding packets as determined by said schedule agent, said scheduled switches being interconnected through a plurality of links.
RELATED APPLICATIONS
[0001] This application claims priority from U.S. Provisional Application No. 60/295,943, filed Jun. 5, 2001 and U.S. Provisional Application No. 60/296,238, filed Jun. 6, 2001.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60295943 |
Jun 2001 |
US |
|
60296238 |
Jun 2001 |
US |