Feb 98 MacTech Online
Volume Number: 14 (1998)
Issue Number: 2
Column Tag: MacTech Online
MacTech Online
by Nicholas C. "nick.c" DeMello, online@mactech.com
What is TCP/IP?
When Paul Baron first developed the concept that became today's Internet, he was trying to solve a military problem. His 1964 proposal described a communications network that had no central authority and could adapt to massive failures -- therefore one that could not be easily disabled by enemy bombardment. Baron's solution was to break communications down into small pieces, each labeled with the address of a remote computer. These "packets" of information would then be passed through an intricate network of computers -- like pails in a firefighter's bucket brigade. If a telephone line or fire hose is cut, the flow is interrupted, but if someone steps out of line in a bucket brigade or a computer goes offline, the system can pass it's cargo around the disruption. The more intricate the web of computer connections available in the network, the more reliable communication became. This packet based communications concept and the mechanisms for transferring packets along a network is the basis for the internet protocol -- IP.
Vinton Cerf was a graduate student at UCLA in 1969, when he helped put the first computer on the internet. As more and more machines were added to the internet, standards needed to be developed for translating data from a system level into a format that could be transferred by the internet protocol. The InerNetworking Working Group (INWG) was founded in 1972 to develop these standards, with Vinton Cerf as the chairman. Two years later, Vint Cerf and Bob Kahn published "A Protocol for Packet Network Internetworking" which specified a standard protocol for converting a stream of data into a series of packets, for reassembling the packets into a stream of data, requesting lost packets be resent, and basically controlling communication through Baron's internet protocol. First titled the network control protocol (NCP), it was later renamed the transmission control protocol -- TCP.
What kind of computer do these visionaries and founders of the information age use today? According to the MacAddict a 1996 television interview with Paul Baron showed him at his computer -- a Power Mac 7100. During an interview for the Netinsider, Vint Cerf was asked what kind of computer he uses today. His response was an emphatic: "I'm a Mac Freak!"
- A Short History of the Internet, by Bruce Sterling
- http://www.ubicom.com/history.html
- The Internet Valley, History of the Internet by Gregory R. Gromov
- http://www.internetvalley.com/intval.html
- Introduction to TCP/IP by H. Gilbert
- http://pclt.cis.yale.edu/pclt/comm/tcpip.htm
- RFC 1180: A TCP/IP Tutorial
- ftp://ds.internic.net/rfc/rfc1180.txt
- Paul Baron Appears on the Evangelist List of Famous Mac Users
- http://www.evangelist.macaddict.com/advocacy_action.html
- Interview with Vint Cerf, Internet Founder and "Mac Freak"
- http://www.netinsider.com/profile/vcerf/profile/
Using TCP/IP on a Mac
TCP/IP is accessed through Apple's Open Transport system. When you review the OT technology on Apple's web site (or in Inside Macintosh: Open Transport) you should realize that OT was designed to support transport independent code -- your code use data streams to send information without knowing what kind of network the user is on (TCP/IP, AppleTalk, or other). Open Transport does allow you to design transport specific applications though, and especially with TCP/IP this may be desirable. The place to start for TCP/IP specific development is with Apple's OpenTransport/TCP dev note, which can be found on the same FTP site as the OT SDK. Also visit Mark Sproul's Open Transport Development web pages and Eric Scouten's Macintosh TCP/IP Programmer's Guide on the Metrowerks web site.
John Norstad has made the Newswatcher source code publicly available. This extremely popular freeware USENET newsreader is compatible with MacTCP and OpenTransport, it's source is probably the single most valuable reference a Mac TCP/IP programmer can find. Look especially closely at the ftp.c, nntp.c, smtp.c, and net.c sources. These files are reusable, modular C code for implementing some of the most popular TCP/IP applications. Also check out Peter N Lewis' TCPExample code and his PNL TCP/IP libraries for implementing TCP/IP. This Pascal code is the foundation Peter's tremendously successful TCP/IP shareware products Anarchie and NetPresenz. Peter has developed Streamwatcher, a debugging tool that allows you to examine data in an Open Transport TCP stream. Once you have Streamwatcher, check out Mark Mentovai's Mac on the Net web site for other TCP/IP diagnostic utilities like Bryan Christianson's IP packet routetracer WhatRoute 1.4.3.
- Apple's OpenTransport Website
- http://www.devworld.apple.com/dev/opentransport/
- Inside Macintosh, Open Transport and OT 1.2 Updates
- http://gemma.apple.com/techinfo/techdocs/mac/mac.html
- Open Transport/TCP Dev Notes & the OT SDK
- ftp://seeding.apple.com/ess/public/opentransport/
- The OpenTransport Mailing List, Hosted by Stairways Shareware
- http://www.stairways.com/mailinglists/opentpt.html
- Open Transport Development Pages by Mark Sproul
- http://msproul.rutgers.edu/macintosh/OpenTpt_Dev.html
- Macintosh TCP/IP Programmer's Guide, by Eric Scouten
- http://www.metrowerks.com/tcpip/
- John Norstad's Newswatcher Code
- ftp://ftp.acns.nwu.edu/pub/newswatcher/
- TCPExample & PNL TCP/IP Libraries by Peter N Lewis
- ftp://www.stairways.com/stairways/source/
- Mac TCP Watcher 2.0 and Streamwatcher 1.0 by Peter N Lewis
- http://www.stairways.com/mtcpw/
- http://www.stairways.com/streamwatcher/
- Mac On The Net Archive (incl. WhatRoute and other TCP/IP Diagnostic Utils)
- http://www.moxienet.com/macnet/
These and other links are archived on the MacTech Online web pages at www.mactech.com/online/.