From: scipio Date: Sat, 29 Mar 2008 01:05:45 +0000 (+0000) Subject: Add Ben's comments. X-Git-Tag: release_tinyos_2_1_0_0~474 X-Git-Url: https://oss.titaniummirror.com/gitweb/?p=tinyos-2.x.git;a=commitdiff_plain;h=e0538b61879d8724c70d94f9e69900a0ef3eec84 Add Ben's comments. --- diff --git a/doc/txt/tep113.txt b/doc/txt/tep113.txt index edaf9fd8..a251db7d 100644 --- a/doc/txt/tep113.txt +++ b/doc/txt/tep113.txt @@ -278,6 +278,25 @@ stored in a queue separate from the data buffer, so a data packet to be transmitted may begin spooling into SerialP while SerialP is actively sending an acknowledgement. +Only the PC-to-mote communication path supports acknowledgements. +SerialP does not request acknowledgements from the PC for two reasons. +First, acks are not perfect reliability: they are used on the PC-to-mote +path to raise reliability to a usable level. In the case of the PC-to-mote +path, the UART receive buffer is typically a single byte, so a high interrupt +load can easily lose (and sometimes does) a byte. This is in contrast +to the PC receive buffer, which is much larger and does not have to +deal with overflow. Second, adding support for acks would increase +the code size and complexity of the serial stack. As code space is +often at a premium, this would add little needed functionality at significant +cost. Of course, any application that +requires perfect reliability may layer its own scheme on top of the +serial protocol. + +The acknowledgement protocol is stop-and-wait to minimize buffering on +the mote side. This is considered more important on memory constrained +devices than increased throughput in the PC-to-mote direction, which +most applications only use for occasional contro transmissions. + 3.4 Dispatcher: SerialDispatcherC --------------------------------------------------------------------