Reading — step 1 of 5
Read
PING, PONG, Disconnects
Server periodically sends PING to detect dead clients:
S: PING :irc.example.com
C: PONG :irc.example.com
Default: 90 seconds idle → server PINGs. Client must PONG within ~90s or be disconnected.
Client can also PING server (latency check).
Quitting:
C: QUIT :Goodbye!
S: :alice!a@host QUIT :Goodbye! (broadcast to all channels)
Connection reset / network drop:
- Server side: socket timeout / RST → mark user as gone.
- Send "QUIT :Connection reset by peer" to user's channels.
- Other clients see the QUIT message.
Client reconnection:
- Detect disconnect.
- Reconnect (with exponential backoff).
- Re-register (NICK + USER again, or use SASL).
- Auto-join saved channels.
- May lose missed messages (no native history).
Modern: BNCs (bouncer servers) like ZNC stay connected continuously, buffer messages while client offline. Client connects to BNC on demand.
Netsplits: when servers in the network disconnect from each other, users on the disconnected segment see other users "QUIT :*.net *.split".
S: :charlie!c@host QUIT :*.net *.split
When the netsplit heals, users come back via JOIN messages.
Lag: due to inter-server hops, message delivery delays vary. Some networks: <100ms. Bad netsplit: seconds to minutes.
Floodstandard:
- Client flood: rapid bulk messages → server kicks/disconnects.
- Server enforces rate limits per command.
KILL: operator command to forcibly disconnect a user (with reason).
KLINE: operator-set ban (kill on connect, by hostmask).
Discussion
Ask a question, share an insight, or help someone who’s stuck.
Sign in to post a comment or reply.
Loading…