IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0141920
(2008-06-19)
|
등록번호 |
US-8239720
(2012-08-07)
|
발명자
/ 주소 |
|
출원인 / 주소 |
|
인용정보 |
피인용 횟수 :
0 인용 특허 :
11 |
초록
▼
Reliable communication may be implemented using various underlying transport mechanisms, where the underlying transport mechanisms may be reliable or non-reliable. When data is sent from a source to a destination, the source may sent acknowledgment requests (RACKs) to the destination, and may await
Reliable communication may be implemented using various underlying transport mechanisms, where the underlying transport mechanisms may be reliable or non-reliable. When data is sent from a source to a destination, the source may sent acknowledgment requests (RACKs) to the destination, and may await acknowledgments (ACKs) from the destination. The RACKs and ACKs are sent over the underlying transport mechanism. The rate at which the data source requests acknowledgments from the destination may be varied, depending on the underlying transport mechanism, to achieve lower overhead and to optimize throughput. For example, RACKs may be sent relatively less frequently when the underlying mechanism implements guaranteed delivery, and may be sent relatively more frequently when the underlying transport does not provide guaranteed delivery.
대표청구항
▼
1. One or more computer-readable storage media that store executable instructions to perform a method of communicating, the method comprising: transmitting a plurality of packets to a node via a first channel, each of the packets having a sequence number;determining that said first channel has becom
1. One or more computer-readable storage media that store executable instructions to perform a method of communicating, the method comprising: transmitting a plurality of packets to a node via a first channel, each of the packets having a sequence number;determining that said first channel has become unusable;determining a highest sequence number acknowledged by said node;opening a second channel;determining one or more first parameters that govern sending acknowledgment requests for packets that are transmitted on said second channel, said first parameters specifying, as a constraint, that there may be only a fixed finite number of acknowledgment requests, and any retransmissions thereof, outstanding;retransmitting, to said node, via said second channel, those ones of said plurality of packets whose sequence number is higher than said highest sequence number acknowledged by said node; andmaintaining a buffer of unacknowledged packets that have been transmitted to said node, said one or more first parameters being chosen based on said second channel's implementing a reliable transmission protocol, and a rate specifying that an acknowledgment request is to be sent when an amount of unacknowledged data in said buffer reaches a specified fraction of a size of said buffer. 2. The one or more computer-readable storage media of claim 1 said fixed finite number of requests being one request. 3. The one or more computer-readable storage media of claim 1, wherein one or more second parameters govern sending acknowledgment requests for packets that are transmitted on said first channel, and wherein said one or more first parameters differ from said one or more second parameters. 4. The one or more computer-readable storage media of claim 1, wherein said first parameters specify both said rate and said constraint. 5. The one or more computer-readable storage media of claim 1, wherein said packets are wrapped by a protocol implemented by said first channel, and wherein the method further comprises: sending said acknowledgment requests without regard to acknowledgments that are issued as part of said protocol. 6. The one or more computer-readable storage media of claim 1, wherein said buffer stores at least some of said plurality of packets, and wherein the method further comprises: closing said first channel;reopening said first channel; andafter said reopening, retransmitting over said first channel those packets that are in said buffer. 7. A method of managing transmission of data, the method comprising: receiving the data from a first program;choosing a first channel through which information is transmissible to a node;determining, based on a first type of said first channel, a first rate at which to send acknowledgment requests, and also determining a first quantity constraint that specifies that there may be only a fixed finite number of acknowledgment requests, and any retransmissions thereof, outstanding;transmitting a first portion of the data over said first channel;sending acknowledgment requests to said node at said first rate and subject to said first quantity constraint;choosing a second channel through which information is transmissible to said node;determining, based on a second type of said second channel, a second rate at which to send acknowledgment requests, said second rate differing from said first rate;transmitting a second portion of the data over said second channel;sending acknowledgment requests to said node at said second rate;determining that a first acknowledgment request has not been acknowledged by said node;sending a re-transmission of said first acknowledgment request; andsetting a timer that causes a packet transmitted before initial transmission of said first acknowledgment request to be retransmitted unless an acknowledgment to said re-transmission is received before said timer expires. 8. The method of claim 7, wherein the data is packaged into a stream of packets, each of the packets having a sequence number, and wherein the method further comprises: receiving, from said node, a first message to reset said stream of packets;sending, to said node, a second message to synchronize said stream at a first sequence number; andretransmitting at least some of said packets starting with a first packet that has said first sequence number. 9. The method of claim 7, further comprising: receiving, from said node, a message comprising a window size that represents an amount of the data that has been transmitted to said node but that has not been consumed by a second program that operates on said node; andadjusting a transmission rate based on said window size. 10. The method of claim 7, further comprising: determining a second quantity constraint on outstanding acknowledgment requests, said second quantity constraint being applicable when said data is transmitted on said second channel, said second quantity constraint differing from said first quantity constraint. 11. The method of claim 7, wherein a buffer stores at least some of the data that has been transmitted to said node but that has not been acknowledged by said node, wherein said first channel comprises Transmission Control Protocol (TCP), and wherein, based on a fact that said first channel comprises TCP, said first rate is chosen to send a second acknowledgment request when an amount of the data in said buffer reaches or exceeds a particular percentage of a size of said buffer. 12. The method of claim 7, wherein said first channel comprises User Datagram Protocol (UDP), and wherein, based on a fact that said first channel comprises UDP, said first rate is chosen to send an acknowledgment request for each packet sent to said node. 13. A system comprising: a processor;a data remembrance component;a data producer that is stored in said data remembrance component and that is executable on said processor;a communication engine that receives data from said data producer and that sends said data to a node, the communication engine comprising:a channel chooser that chooses a first channel over which to send said data;an RACK-option chooser that chooses first options to be used in sending RACKs to said node; andan acknowledgment processor that sends said RACKs to said node with a constraint specified by said first options that specifies that there may be only a fixed finite number of acknowledgment requests, and any retransmissions thereof, outstanding;the system further comprising:a usability detector that determines whether said first channel is usable or unusable; anda switcher that, upon a determination by said usability detector that said first channel is unusable, causes said channel chooser to choose a second channel over which to send said data, causes said RACK-option chooser to choose second options to be used in sending requests for acknowledgment (RACKs) to said node, and causes said communication engine to send at least some of said data to said node over said second channel and to send RACKs to said node at a rate specified by said second options, said switcher also causing said communication engine to send RACKs to said node under a constraint on outstanding RACKs, said constraint being specified by said second options. 14. The system of claim 13, further comprising: a timer that determines, based on a RACK that has been sent to said node and on which acknowledgments (ACKs), if any, have been received from said node, a length of time that a packet has remained unacknowledged, and that determines whether to retransmit said packet based on said length of time. 15. The system of claim 13, further comprising: a buffer that stores that portion of said data for which receipt has not been acknowledged by said node, said buffer having a size, wherein said first channel comprises Transmission Control Protocol (TCP), and wherein said RACK-option chooser determines, based on a fact that said first channel comprises TCP, that a RACK is to be sent when an amount of said data that is in said buffer reaches or exceeds a particular percentage of said size.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.