> Somebody else will have to take over from this point, as that's about all the > help I can offer.
Tired, eh? To subsume our discussion, I will cite RFC-3135 (page 17/18, a bit lengthy but definitely worth *careful* reading): ---------------- Another aspect of the end-to-end argument is that of acknowledging the receipt of data end-to-end in order to achieve reliable end-to-end delivery of data. An application aiming at reliable end-to-end delivery must implement an end-to-end check and recovery at the application level. According to the end-to-end argument, this is the only possibility to correctly implement reliable end-to-end operation. Otherwise the application violates the end-to-end argument. This also means that a correctly designed application can never fully rely on the transport layer (e.g., TCP) or any other communication subsystem to provide reliable end-to-end delivery. First, a TCP connection may break down for some reason and result in lost data that must be recovered at the application level. Second, the checksum provided by TCP may be considered inadequate, resulting in undetected (by TCP) data corruption [Pax99] and requiring an application level check for data corruption. Third, a TCP acknowledgement only indicates that data was delivered to the TCP implementation on the other end system. It does not guarantee that the data was delivered to the application layer on the other end system. Therefore, a well designed application must use an application layer acknowledgement to ensure end-to-end delivery of application layer data. Note that this does not diminish the value of a reliable transport protocol (i.e., TCP) as such a protocol allows efficient implementation of several essential functions (e.g., congestion control) for an application. --------------- How true these words are! What does it mean? For reliable data transfer: - does not rely on Send(), Shutdown() or Close() to throw exceptions - use application-level acknowledgements - use a good, seperate checksum (CRC-32, for example) for less important data (or, a secure environment) or strong cryptography (SSL) for your critical data. With best regards and wishes of small bit error rates in New 2005, Marek =================================== This list is hosted by DevelopMentor� http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com
