Next: , Previous: , Up: ROCGDB Remote Serial Protocol   [Contents][Index]


E.11 Packet Acknowledgment

By default, when either the host or the target machine receives a packet, the first response expected is an acknowledgment: either ‘+’ (to indicate the package was received correctly) or ‘-’ (to request retransmission). This mechanism allows the ROCGDB remote protocol to operate over unreliable transport mechanisms, such as a serial line.

In cases where the transport mechanism is itself reliable (such as a pipe or TCP connection), the ‘+’/‘-’ acknowledgments are redundant. It may be desirable to disable them in that case to reduce communication overhead, or for other reasons. This can be accomplished by means of the ‘QStartNoAckMode’ packet; see QStartNoAckMode.

When in no-acknowledgment mode, neither the stub nor ROCGDB shall send or expect ‘+’/‘-’ protocol acknowledgments. The packet and response format still includes the normal checksum, as described in Overview, but the checksum may be ignored by the receiver.

If the stub supports ‘QStartNoAckMode’ and prefers to operate in no-acknowledgment mode, it should report that to ROCGDB by including ‘QStartNoAckMode+’ in its response to ‘qSupported’; see qSupported. If ROCGDB also supports ‘QStartNoAckMode’ and it has not been disabled via the set remote noack-packet off command (see Remote Configuration), ROCGDB may then send a ‘QStartNoAckMode’ packet to the stub. Only then may the stub actually turn off packet acknowledgments. ROCGDB sends a final ‘+’ acknowledgment of the stub’s ‘OK’ response, which can be safely ignored by the stub.

Note that set remote noack-packet command only affects negotiation between ROCGDB and the stub when subsequent connections are made; it does not affect the protocol acknowledgment state for any current connection. Since ‘+’/‘-’ acknowledgments are enabled by default when a new connection is established, there is also no protocol request to re-enable the acknowledgments for the current connection, once disabled.


Next: Examples, Previous: Remote Protocol Support for Non-Stop Mode, Up: ROCGDB Remote Serial Protocol   [Contents][Index]