On this page
On the evening of 29 October 1969, a student in Los Angeles sat down to type five letters to a computer hundreds of miles away. He got two of them through. Those two letters, “lo”, were the first message sent over the ARPANET, the network that grew into today’s internet. Why the third letter failed is a good lesson in how real engineering works.
What was the first message sent over the internet?
According to Leonard Kleinrock’s own account, the message went out at 22:30 on 29 October 1969 from his lab at UCLA. His student programmer Charley Kline was at UCLA’s SDS Sigma 7 computer. At the other end, Bill Duvall was at the SDS 940 computer at the Stanford Research Institute (SRI).
The plan was to log in to the SRI machine from UCLA. Kleinrock writes: “They succeeded in transmitting the ‘l’ and the ‘o’ and then the system crashed!” So the first message was “lo”, as in “lo and behold!” The full login worked about an hour later.
UCLA’s Samueli School of Engineering quotes the Computer History Museum: the two programmers sat at terminals 350 miles (about 560 km) apart. It also quotes Kline describing the moment: “The first thing I typed was an L.” Duvall, on the phone, said he had it. “I typed the O, and he got the O.” Then the G: “And he had a bug and it crashed.”
Why did the ARPANET crash after “lo”?
Cloudflare’s history of that night explains the crash. Each letter Kline typed travelled to SRI, and the 940 echoed it back so it appeared on Kline’s screen. L came back as L. O came back as O.
The 940’s operating system had command completion, so when the G of “LOG” arrived it echoed back “GIN”, three characters instead of one. The original protocol expected single-character messages, and the buffers had been sized for exactly that, so the echo buffer at SRI was too small.
Memory was tight: Cloudflare notes that the SDS 940 had a maximum of 65K 24-bit words, shared by the whole time-sharing system. Duvall resized the buffer and restarted. Kline typed “LO” again, got back “LOGIN”, pressed RETURN, and the first host-to-host login on the ARPANET was complete.
Who was Leonard Kleinrock, and why did his lab go first?
Kleinrock’s UCLA home page says he developed the mathematical theory of data networks as an MIT graduate student between 1960 and 1962, including the performance gain from breaking messages into packets.
The Internet Society’s brief history of the internet records that Kleinrock published the first paper on packet switching theory in July 1961 and the first book on the subject in 1964. Because of that work and his focus on analysis, design and measurement, his Network Measurement Center at UCLA was chosen as the first ARPANET node.
The same history says BBN installed the first IMP (Interface Message Processor; Cloudflare’s account notes that today we would simply say router) at UCLA in September 1969. SRI joined a month later, then UC Santa Barbara and the University of Utah. By the end of 1969, four host computers were connected.
What came next: how Vint Cerf and Bob Kahn designed TCP/IP, and how Tim Berners-Lee invented the World Wide Web.
What can students learn from the “lo” crash?
Whether you are writing Python for a computer science practical or setting up a physics experiment, things will break halfway. Here is the UCLA–SRI routine.
Test the smallest step first. One keystroke at a time showed exactly where it stopped.
Write down what happened. Kleinrock’s page shows the event recorded in the IMP log kept at UCLA. “L ok, O ok, G crashed” beats “it doesn’t work”.
Find the last thing that worked. L and O succeeded, so the fault had to be in what G did differently.
Check the assumption, not just the code. The buffer was fine for the case its designers expected, not the one nobody anticipated.
Fix, retest, move on. One resized buffer, one restart, and the login went through.
Here is the routine on a typical student bug. Your program to total class marks works for 3 students but crashes for 30. Last thing that worked: 3 students. What changed: the number of entries. Assumption to check: did you set aside space for only 10? That is the same mistake as a buffer sized too small.
If you can see where a solution goes wrong but not why, the Fermi Problem Library has worked problems with a step-by-step solver that explains the reasoning rather than printing an answer. If the gap is a concept such as packets or memory, the Fermi Concept Library covers every concept in physics, chemistry, biology, mathematics and computing, each with its own lesson.
The internet’s first word came out of a crash and an hour of patient fixing. Next, read how Douglas Engelbart invented the computer mouse.



