摘要 |
An application layer protocol supports reliable and non-reliable message transfer between a local and remote computer on a shared communications link. The application layer protocol uses a non-reliable transport layer protocol to implement both reliable and non-reliable channels over the shared link. When application programs want to send reliable data messages, they designate the data as such, and the application layer protocol sends the data in reliable messages with a request for acknowledgement. When application programs want to send non-critical data, they designate the data as such, and the application layer protocol sends the data in non-reliable messages that are not re-sent when dropped. Though it does not ensure delivery of non-reliable messages, the application layer selectively uses a request for acknowledge for non-reliable messages to gather operational data about the link. The protocol uses requests for acknowledgement for the dual purpose of ensuring reliable delivery for reliable messages and maintaining operational characteristics used to tune the link. In particular, the protocol uses the operational characteristics to detect link saturation, to calculate outbound bandwidth, to calculate a wait time for clearing backlogged messages and for adjusting the send rate based on the calculated bandwidth. This scheme enables the protocol to adapt the send rate based on varying link conditions.
|