Separate syslog roles from the TCP session
01Syslog carries event messages from an originator toward a collector, sometimes through a relay. On each transport hop, a sender connects to a receiver. Transmission Control Protocol (TCP) supplies an ordered byte stream. This Historic RFC records deployed plain-TCP behavior; it does not recommend plain TCP for new secure logging systems.
Separate closure example: either TCP host can initiate close. The illustrated connection closes with message B’s application outcome unknown. There is no syslog application-level final success reply in this observed transport.
Source for this drawing: RFC 6587 · Read RFC section 3.2 ↗
New to this? Start hereA quick picture + helpful background
A message needs an address.
Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.
Helpful first, if these ideas are unfamiliar
These pictures are analogies to help you learn. The linked RFC explains the actual rules.
Terms in this drawing
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
A syslog transport session carries application messages one way; TCP traffic can still go both ways.
- RFC 6587 describes observations of legacy implementations, not a new Standards Track protocol with an RFC 2119 MUST/SHOULD/MAY requirement set. Its IESG Note and §4 recommend the separate TLS transport in RFC 5425; this guide preserves that distinction.
- The transport sender initiates TCP toward the listening receiver. Sender and receiver roles stay fixed for that session. An originator or relay can be the sender; a relay or collector can be the receiver on a particular hop.
- Observed syslog-over-TCP sessions have no application-level back-channel or acknowledgement. TCP acknowledgements, error recovery and flow control are transport functions, not proof that the collector stored an event.
- There is no standardized TCP port assignment for this legacy protocol. TCP/514 is frequently observed but is assigned to the Shell protocol, not allocated here to syslog. Configure compatible endpoints instead of treating that observed default as an RFC requirement.
- Either TCP endpoint can initiate closure. The document describes graceful closure on errors TCP cannot correct and no syslog application-status notification. Closing a session gives no end-to-end confirmation for messages still in transit.
Historic interoperability explanation only. The sample header abbreviates no transport header. No real logs or sockets are used. A relay’s transport role is per hop, not identical to the original event creator.
Read the RFC section ↗