Port 29 is assigned to MSG ICP, the interprocess communication facility for the National Software Works (NSW)1. No traffic flows through it today. But what it once carried was one of the most ambitious ideas in the history of computing: a single operating system distributed across every machine on the ARPANET.
What MSG ICP Was
MSG stood for "Message," and ICP stood for "Initial Connection Protocol." Together, MSG ICP was the mechanism that allowed processes running on different computers across the ARPANET to find each other and communicate2.
Think of it this way: if the National Software Works was a brain spread across dozens of machines, MSG ICP was the nervous system. It handled the handshake, the initial connection between two processes that might be running on computers hundreds of miles apart. Port 31, its sibling, handled MSG Authentication, verifying that these processes were allowed to talk to each other1.
The NSW project aimed to let a programmer sit at any terminal on the ARPANET and use software tools running on any machine on the network, as if everything were local3. You wouldn't need to know which computer held the compiler or the editor. The system would find the resources, connect the processes, and manage the communication transparently.
Who Built It
The port was assigned to Robert H. Thomas of Bolt Beranek and Newman (BBN) in Cambridge, Massachusetts1. His email, preserved in the RFC records, was BThomas@F.BBN.COM4.
Thomas is better known for something else he created at BBN around 1971: the Creeper worm5. Creeper was the first self-replicating program in history, an experimental piece of code that moved itself between PDP-10 computers on the ARPANET, displaying the message "I'M THE CREEPER: CATCH ME IF YOU CAN."
There is something profound in this. The same engineer who built a system for processes to communicate legitimately across the network also built the first program to move between machines uninvited. Thomas understood, earlier than almost anyone, the dual nature of networked communication: if machines can cooperate, they can also be infiltrated.
The National Software Works
The NSW was documented in a 1977 paper, "The National Software Works: A Distributed Processing System"3. Its design assumed something radical for the 1970s: that the hardware, software, and human resources needed for any task might be geographically and administratively dispersed, connected only through the network.
MSG was formally documented by BBN as "MSG: The Interprocess Communication Facility for the National Software Works"2. It ran on TENEX, the time-sharing operating system for the PDP-10 that Thomas and his colleagues at BBN were developing.
The NSW never achieved widespread adoption. The ARPANET was still small, the machines were heterogeneous, and the overhead of distributed coordination was enormous. But the ideas embedded in MSG ICP, that processes should be able to discover and connect to each other across a network transparently, became foundational to everything from Remote Procedure Calls to modern microservice architectures.
The Port Today
Port 29 carries no meaningful traffic on the modern Internet. The MSG ICP protocol has been obsolete for decades. If you see port 29 open on a system today, it is not running the National Software Works. It is either misconfigured or something else is listening where it should not be.
How to Check What Is Listening on Port 29
Linux:
macOS:
Windows:
If anything is listening on port 29 and you did not put it there, investigate immediately.
Port Range Context
Port 29 sits in the System Ports range (0 through 1023), also called Well Known Ports6. These ports are reserved by IANA and require elevated privileges to bind to on most operating systems. The assignment of port 29 to MSG ICP dates back to at least RFC 739 in 1977, where it was listed as "MSG-3 ICP"7, and was carried forward through successive Assigned Numbers RFCs including RFC 10104 and RFC 1700.
Its neighbors tell a story of the same era:
| Port | Assignment | Assignee |
|---|---|---|
| 27 | NSW User System FE | Robert Thomas |
| 28 | Unassigned | — |
| 29 | MSG ICP | Robert Thomas |
| 30 | Unassigned | — |
| 31 | MSG Authentication | Robert Thomas |
Three of these five ports belonged to the same person, the same project, the same dream of a distributed operating system.
Why Unassigned Ports Matter
The gaps around port 29, ports 28 and 30, are unassigned. They sit in the well-known range but were never claimed. These gaps are not accidents. They represent restraint by the early Internet architects. Jon Postel, who maintained the assigned numbers lists through the 1970s and 1980s, did not hand out ports casually6. Each assignment represented a real protocol with a real purpose.
The unassigned ports in the well-known range are a finite resource, part of the Internet's original nervous system, held in reserve for protocols that never came or problems that were solved differently than anyone expected.
Frequently Asked Questions
Was this page helpful?