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 enabled 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 from in OS X 10.4 and its SDKs. Support was removed entirely from OS X in version 10.9 (Mavericks). [2]

Related Research Articles

AppleTalk is a discontinued proprietary suite of networking protocols developed by Apple Computer 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.

A Berkeley (BSD) socket is an application programming interface (API) for Internet domain 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, which was released in 1983.

In computing, the Windows Sockets API (WSA), later shortened to Winsock, is an application programming interface (API) that defines how Windows network application 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 used in BSD for communications between programs.

SOCKS is an Internet protocol that exchanges network packets between a client and server through a proxy server. SOCKS5 optionally provides authentication so only authorized users may access a server. Practically, a SOCKS server proxies TCP connections to an arbitrary IP address, and provides a means for UDP packets to be forwarded. A SOCKS server accepts incoming client connection on TCP port 1080, as defined in RFC 1928.

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. They also became widely used on networks deploying Microsoft Windows LANs, as they replaced NetWare LANs, but are no longer widely used. IPX/SPX was also widely used prior to and up to Windows XP, which supported the protocols, while later Windows versions do not, and TCP/IP took over for networking.

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, classic Mac OS, and Apple II computers. In OS X 10.8 Mountain Lion and earlier, AFP was the primary protocol for file services. Starting with OS X 10.9 Mavericks, Server Message Block (SMB) was made the primary file sharing protocol, with the ability to run an AFP server removed later in macOS 11 Big Sur. AFP supports Unicode file names, POSIX and access-control list permissions, resource forks, named extended attributes, and advanced file locking.

AppleShare is a discontinued product from Apple Computer which implements various network services. Its main purpose is 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.

In computer networking, the Transport Layer Interface (TLI) was the networking API provided by AT&T UNIX System V Release 3 (SVR3) in 1987 and continued into Release 4 (SVR4). TLI was the System V counterpart to the BSD sockets programming interface, which was also provided in UNIX System V Release 4 (SVR4). TLI was later standardized as XTI, the X/Open Transport Interface.

TCP offload engine (TOE) is a technology used in some network interface cards (NIC) to offload processing of the entire TCP/IP stack to the network controller. It is primarily used with high-speed network interfaces, such as gigabit Ethernet and 10 Gigabit Ethernet, where processing overhead of the network stack becomes significant. TOEs are often used as a way to reduce the overhead associated with Internet Protocol (IP) storage protocols such as iSCSI and Network File System (NFS).

netstat Command line network statistics tool

In computing, netstat is a command-line network utility that displays open network sockets, routing tables, and a number of network interface and network protocol statistics. It is available on Unix, Plan 9, Inferno, and Unix-like operating systems including macOS, Linux, Solaris and BSD. It is also 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.

<span class="mw-page-title-main">Netatalk</span> Free, open-source implementation of the Apple Filing Protocol

Netatalk is a free, open-source implementation of the Apple Filing Protocol (AFP). It allows Unix-like operating systems to serve as file servers for Macintosh computers running macOS or Classic Mac OS.

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. inetd is based on the (service) activator pattern

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.

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 a software structure within a network node of a computer network that serves as an endpoint for sending and receiving data across the network. The structure and properties of a socket are defined by an application programming interface (API) for the networking architecture. Sockets are created only during the lifetime of a process of an application running in the node.

<span class="mw-page-title-main">Berkeley Software Distribution</span> Unix operating system

The Berkeley Software Distribution or Berkeley Standard Distribution (BSD) is a discontinued operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley. Since the original has become obsolete, the term "BSD" is commonly used for its open-source descendants, including FreeBSD, OpenBSD, NetBSD, and DragonFly BSD.

The Stream Control Transmission Protocol (SCTP) is a computer networking communications protocol in the transport layer of the Internet protocol suite. Originally intended for Signaling System 7 (SS7) message transport in telecommunication, the protocol provides the message-oriented feature of the User Datagram Protocol (UDP), while ensuring reliable, in-sequence transport of messages with congestion control like the Transmission Control Protocol (TCP). Unlike UDP and TCP, the protocol supports multihoming and redundant paths to increase resilience and reliability.

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.