Twas the night before start-up
A humorous guide to debugging new network startups.
Cerf, V.G., "Twas the night before start-up", RFC 968, DOI 10.17487/RFC0968, December 1985, <https://www.rfc-editor.org/info/rfc968>.
@misc{rfc968,
series = {Request for Comments},
number = 968,
howpublished = {RFC 968},
publisher = {RFC Editor},
doi = {10.17487/RFC0968},
url = {https://www.rfc-editor.org/info/rfc968},
author = {V.G. Cerf},
title = {{Twas the night before start-up}},
pagetotal = 2,
year = 1985,
month = dec,
} RFC text
Contents
Network Working Group V. Cerf
Request for Comments: 968 MCI
December 1985
'Twas the Night Before Start-up'
STATUS OF THIS MEMO
This memo discusses problems that arise and debugging techniques used
in bringing a new network into operation. Distribution of this memo
is unlimited.
DISCUSSION
Twas the night before start-up and all through the net,
not a packet was moving; no bit nor octet.
The engineers rattled their cards in despair,
hoping a bad chip would blow with a flare.
The salesmen were nestled all snug in their beds,
while visions of data nets danced in their heads.
And I with my datascope tracings and dumps
prepared for some pretty bad bruises and lumps.
When out in the hall there arose such a clatter,
I sprang from my desk to see what was the matter.
There stood at the threshold with PC in tow,
An ARPANET hacker, all ready to go.
I could see from the creases that covered his brow,
he'd conquer the crisis confronting him now.
More rapid than eagles, he checked each alarm
and scrutinized each for its potential harm.
On LAPB, on OSI, X.25!
TCP, SNA, V.35!
His eyes were afire with the strength of his gaze;
no bug could hide long; not for hours or days.
A wink of his eye and a twitch of his head,
soon gave me to know I had little to dread.
He spoke not a word, but went straight to his work,
fixing a net that had gone plumb berserk;
And laying a finger on one suspect line,
he entered a patch and the net came up fine!
The packets flowed neatly and protocols matched;
the hosts interfaced and shift-registers latched.
He tested the system from Gateway to PAD;
not one bit was dropped; no checksum was bad.
At last he was finished and wearily sighed
Twas the Night Before Start-up
and turned to explain why the system had died.
I twisted my fingers and counted to ten;
an off-by-one index had done it again...
Vint Cerf
December 1985
AI ELI5
On this page
§1Network Startup Chaos
RFC 968 discusses the problems and debugging techniques involved in bringing a new network into operation. The author captures the scene: it is the night before a scheduled network startup, no packets are moving, engineers are frustrated, and hope seems distant. The memo frames network debugging as a recognizable human drama with high stakes and complex systems, and offers the RFC as a way to share debugging experience and techniques with others who face similar challenges.
You switched on a new network, and nothing is working. Engineers are stressed. This RFC tells a funny story about fixing it.
§2The Expert Debugger Arrives
The poem introduces an experienced ARPANET hacker who arrives with methodology and confidence. This character methodically examines each alarm, the links (LAPB, OSI, X.25), and the protocols (TCP, SNA, V.35). The engineer works through the system with focused attention, checking each component for potential failure. The narrative shows how systematic inspection of each protocol layer and data link, combined with knowledge of how they should behave, reveals problems that seemed intractable to the initially frantic engineering team.
An expert shows up and calmly checks everything one piece at a time: the wires, the protocols, the hardware.
§3The Debugging Lesson
After careful troubleshooting, the expert identifies and fixes a critical problem. The network comes up: packets flow correctly, protocols match, hosts interface properly, and checksums are valid. Success appears imminent. However, the story ends with the author discovering that after all the debugging, a simple off-by-one indexing error in his own code was the cause. This final twist illustrates a common and humbling lesson in network debugging: the most obvious problems are often overlooked until everything else has been ruled out, and the cause is frequently simple, not complex.
Everything checks out perfect, but then you realize you made a silly mistake in counting something. That happens all the time.