Open Transport

From Wikipedia, the free encyclopedia

Open Transport was the name given by Apple Inc. to its implementation of the Unix-originated System V STREAMS networking stack. Based on code licensed from Mentat's Portable Streams product, Open Transport was built to provide the classic Mac OS with a modern TCP/IP implementation, replacing MacTCP. Apple also added its own implementation of AppleTalk to the stack to support legacy networks.[1]



Prior to the release of Open Transport, the classic Mac OS used a variety of stand-alone INITs to provide networking functionality. The only one that was widely used throughout the OS was the AppleTalk system. Among the other protocol stacks supported, MacTCP was becoming increasingly important as the Internet boom started to gain momentum. MacTCP emulated the Berkeley sockets system, widely used among Unix-like operating systems.

MacTCP and the previous generation AppleTalk library were slow on PowerPC-based Macintoshes because they were written for previous generation 680x0-based Macintoshes and therefore ran under emulation on PowerPC-based machines. MacTCP was also lacking in features, however, and a major upgrade was clearly needed if Apple was to keep its hand in the Internet market.

Through the late 1980s several major efforts to re-combine the many Unix derivatives into a single system were underway, and the most significant among these was the AT&T-led System V. System V included an entirely new networking stack, STREAMS, replacing the existing Berkeley sockets system. STREAMS had a number of advantages over sockets, including the ability to support multiple networking stacks at the same time, the ability to plug in modules into the middle of existing stacks to provide simple mechanisms for filtering and similar duties, while offering a single application programming interface to the user programs. At the time it appeared STREAMS would become the de facto standard.

This change in the market led Apple to move to support STREAMS as well. It also presented two practical advantages to the company; STREAMS' multiprotocol support would allow them to support both TCP/IP and AppleTalk from a single interface, and a portable cross-platform version of STREAMS was available for purchase commercially, one that included a high-quality TCP implementation. Using STREAMS also appeared to offer a way to "one up" Microsoft, whose own TCP/IP networking system, Winsock, was based on the apparently soon-to-be-obsolete sockets.


Open Transport was introduced in May 1995 with the Power Mac 9500. It was included with System 7.5.2, a release for the new PCI based Power Macs, and became available for older hardware later. MacTCP was not supported on PCI-based Macs, but older systems could switch between MacTCP and Open Transport using a Control Panel called Network Software Selector. Unlike MacTCP, Open Transport allowed users to save and switch between configuration sets.

Developer opinion on Open Transport was divided. Some felt it offered enormous speed improvements over MacTCP. Some developers also liked it because it was flexible in the way it allowed protocols to be "stacked" to apply filters and other such duties. However, the system was also large and complex. The flexibility of the Open Transport architecture, into which one could plug any desired protocol, was felt by some to be thoroughly overcomplicated. Additionally, most Unix code still used sockets, not STREAMS, and so MacTCP offered real advantages in terms of porting software to the Mac.

The vaunted flexibility of the Open Transport architecture was undermined and ultimately made obsolete by the rapid rise of TCP/IP networking during the mid-90s. The same is true in the wider Unix market; System V was undermined by the rapid rise of free Unix-like systems, notably Linux. As these systems grew in popularity, the vast majority of programmers ignored the closed STREAMS in favour of the BSD-licensed Sockets. Open Transport was abandoned during the move to OS X, which, being derived from BSD, had a networking stack based entirely on sockets.

Open Transport received deprecation status starting in Mac OS X 10.4 and its SDKs. Open Transport support was removed entirely from OS X starting with version 10.9 (Mavericks).[2]


  1. ^ Apple Tech Note 1117 - Open Transport STREAMS FAQ
  2. ^ "What's New in OS X 10.9 Mavericks" (PDF). Apple Inc. Retrieved 2013-03-22.