Open Transport

Last updated

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]

Contents

History

STREAMS

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.

OT

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]

Related Research Articles

AppleTalk is a discontinued proprietary suite of networking protocols developed by Apple Inc. for their Macintosh computers. AppleTalk includes a number of features that allow local area networks to be connected with no prior setup or the need for a centralized router or server of any sort. Connected AppleTalk-equipped systems automatically assign addresses, update the distributed namespace, and configure any required inter-networking routing.

Protocol stack implementation of a computer networking protocol suite

The protocol stack or network stack is an implementation of a computer networking protocol suite or protocol family. Some of these terms are used interchangeably but strictly speaking, the suite is the definition of the communication protocols, and the stack is the software implementation of them.

Berkeley sockets is an application programming interface (API) for Internet sockets and Unix domain sockets, used for inter-process communication (IPC). It is commonly implemented as a library of linkable modules. It originated with the 4.2BSD Unix operating system, released in 1983.

In computing, the Windows Sockets API (WSA), later shortened to Winsock, is a technical specification that defines how Windows network software should access network services, especially TCP/IP. It defines a standard interface between a Windows TCP/IP client application and the underlying TCP/IP protocol stack. The nomenclature is based on the Berkeley sockets API model used in BSD for communications between programs.

Explicit Congestion Notification (ECN) is an extension to the Internet Protocol and to the Transmission Control Protocol and is defined in RFC 3168 (2001). ECN allows end-to-end notification of network congestion without dropping packets. ECN is an optional feature that may be used between two ECN-enabled endpoints when the underlying network infrastructure also supports it.

IPX/SPX stands for Internetwork Packet Exchange/Sequenced Packet Exchange. IPX and SPX are networking protocols used initially on networks using the Novell NetWare operating systems, but became widely used on networks deploying Microsoft Windows LANS, as they replaced NetWare LANS.

The Apple Filing Protocol (AFP), formerly AppleTalk Filing Protocol, is a proprietary network protocol, and part of the Apple File Service (AFS), that offers file services for macOS and the classic Mac OS. In macOS, AFP is one of several file services supported, with others including Server Message Block (SMB), Network File System (NFS), File Transfer Protocol (FTP), and WebDAV. AFP currently supports Unicode file names, POSIX and access control list permissions, resource forks, named extended attributes, and advanced file locking. In Mac OS 9 and earlier, AFP was the primary protocol for file services.

AppleShare was a product from Apple Computer which implemented various network services. Its main purpose was to act as a file server, using the AFP protocol. Other network services implemented in later versions of AppleShare included a print server using the Printer Access Protocol (PAP), web server, electronic mail server, and SMB / CIFS server to support file sharing to Microsoft Windows clients.

netstat command line tool

In computing, netstat is a command-line network utility that displays network connections for Transmission Control Protocol, routing tables, and a number of network interface and network protocol statistics. It is available on Unix-like operating systems including macOS, Linux, Solaris and BSD, and is available on IBM OS/2 and on Microsoft Windows NT-based operating systems including Windows XP, Windows Vista, Windows 7, Windows 8 and Windows 10.

inetd is a super-server daemon on many Unix systems that provides Internet services. For each configured service, it listens for requests from connecting clients. Requests are served by spawning a process which runs the appropriate executable, but simple services such as echo are served by inetd itself. External executables, which are run on request, can be single- or multi-threaded. First appearing in 4.3BSD, it is generally located at /usr/sbin/inetd.

The NetWare Core Protocol (NCP) is a network protocol used in some products from Novell, Inc. It is usually associated with the client-server operating system Novell NetWare which originally supported primarily MS-DOS client stations, but later support for other platforms such as Microsoft Windows, the classic Mac OS, Linux, Windows NT, Mac OS X, and various flavors of Unix was added.

In computer networking, STREAMS is the native framework in Unix System V for implementing character device drivers, network protocols, and inter-process communication. In this framework, a stream is a chain of coroutines that pass messages between a program and a device driver. STREAMS originated in Version 8 Research Unix, as Streams.

MacTCP was the standard TCP/IP implementation for the classic Mac OS through version 7.5.1. It was the first application-independent implementation of a TCP stack for a non-Unix platform and predates Winsock by over 5 years. Released in 1988, it is considered obsolete and has reliability issues and incomplete features that sometimes prevent it from operating properly on the modern Internet. In addition, the API was unique to the Mac OS, and at least one developer released a Berkeley Sockets-derived API to make porting from other platforms easier.

lwIP is a widely used open-source TCP/IP stack designed for embedded systems. lwIP was originally developed by Adam Dunkels at the Swedish Institute of Computer Science and is now developed and maintained by a worldwide network of developers.

The Sockets Direct Protocol (SDP) is a transport-agnostic protocol to support stream sockets over Remote Direct Memory Access (RDMA) network fabrics. SDP was originally defined by the Software Working Group (SWG) of the InfiniBand Trade Association. Originally designed for InfiniBand (IB), SDP is currently maintained by the OpenFabrics Alliance.

A network socket is an internal endpoint for sending or receiving data within a node on a computer network. Concretely, it is a representation of this endpoint in networking software, such as an entry in a table, and is a form of system resource.

The Berkeley Software Distribution (BSD) was an operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley. Today, "BSD" often refers to its descendants, such as FreeBSD, OpenBSD, NetBSD, or DragonFly BSD, and systems based on those descendants.

The Stream Control Transmission Protocol (SCTP) is a computer networking communications protocol which operates at the transport layer and serves a role similar to the popular protocols TCP and UDP. It is standardized by IETF in RFC 4960.

Multipath TCP (MPTCP) is an ongoing effort of the Internet Engineering Task Force's (IETF) Multipath TCP working group, that aims at allowing a Transmission Control Protocol (TCP) connection to use multiple paths to maximize resource usage and increase redundancy.

References

  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.