well, not actually a doc file, but a text excerpt... I took it from another project spec I am right now working on. It may sound like something is missing at the end... The reason is there is something missing

- but this something is not relevant to syslog/tcp as implemented in WinSyslog.
syslog/tcp is a simplex procotol. It relies on TCP exclusively for
reliability. There is no syslog/tcp layer acknowledgment.
As such, syslog/tcp is only reliable as far as the TCP stream is not
broken. If the TCP stream breaks, the sender does not exactly know
which data has actually been transmitted to the receiver and which
not. This is due to the fact that TCP uses a sliding window of
variable size. In short, this allows that the sender sends packets,
receives an acknowledgement from the OS, but the data is still on the
wire. The OS acknowledgment does NOT mean the data is actually
received. While the sender continues to send data, the already OS
acknowledge data is eventually delivered to the sender. If that
succeeds, everthing is fine. If now, however, the TCP stack will
detect the problem over time and notify the sender. However, the
sender does not know exactly where the problem occured and so does
not know what to re-send. Anyhow, it knows at least something went
wrong and SHOULD log an event to a local system event repository.
This behaviour is not completely satisfactory, but the author
believes this is still a major advantage over UDP based syslog, where
message loss is never discovered.
There is also at least one other scenario where the missing
acknowledgments brings uncertainty. If a connection breaks, it is not
sure whether this was a network error or one actually at the receiver
side.
If a temporary network problem breaks a syslog/tcp session, the sender
should re-try to connect to the receiver so that it can continue to
send data once the temporary problem is solved. This is fine as long
as it is a problem in a transit system. Now let us assume the
reciever should store data on a local file system and the file system
runs out of disk space. In this case, we assume the receiver is
configured to shut down in such a situation. As such, it terminates
all syslog/tcp sessions and then shuts down. The sender now, too, detects
the broken session. It again may think that the broken session is a
result of a temporary condition and tries to reconnect immediately.
However, the receiver will not be able to accept the incoming TCP
connection as it is no longer running. As such, the sender must use
multiple retries to confirm that the sender is unreachable.
HTH
Rainer