AppleTalkは、 Apple ComputerがMacintoshコンピュータ向けに開発した、現在は開発が終了している独自のネットワークプロトコル群です。AppleTalkには、事前の設定や中央ルーター、サーバーなどを必要とせずにローカルエリアネットワークを接続できる機能が多数含まれています。接続されたAppleTalk対応システムは、アドレスの自動割り当て、分散ネームスペースの更新、必要なネットワーク間ルーティングの設定を行います。
AppleTalkは1985年にリリースされ、1980年代から1990年代にかけてAppleデバイスで主要なプロトコルとして使用されました。IBM PCとその互換機、そしてApple IIGS向けにもバージョンがリリースされました。AppleTalkは、ほとんどのネットワークプリンタ(特にレーザープリンタ)、一部のファイルサーバ、そして多数のルータでもサポートされていました。
1990年代にTCP/IPが普及したことで、これらのサポート機能のほとんどがTCP/IPプロトコル上で再実装され、2009年のMac OS X Snow LeopardのリリースをもってAppleTalkのサポートは終了しました。AppleTalkの高度な自動構成機能の多くはその後Bonjourに導入され、Universal Plug and Playも同様のニーズに対応しています。
1983 年 1 月にApple Lisaコンピュータが発売された後、Apple はマシン用のローカル エリア ネットワーク(LAN) システムの開発に多大な労力を費やしました。AppleNet として知られるこのシステムは、画期的なXerox XNSプロトコル スタック[ 1 ]をベースにしていましたが、Xerox の2.94 Mbit/s Ethernetではなく、独自の1 Mbit/s同軸ケーブルシステム上で動作していました。AppleNet は 1983 年初頭に発表され、Lisa およびApple II用のプラグイン AppleNet カードの目標価格は 500 ドルでした。[ 2 ]
当時、イーサネット、トークンリング、エコネット、ARCNETなどの初期のLANシステムが市場に出始めたばかりでした。これは当時、商業的に大きな取り組みの対象となっており、 1983年5月にアナハイムで開催された全米コンピュータ会議(NCC)のような展示会を席巻していました。すべてのシステムが市場での地位を争っていましたが、この時点ですでにイーサネットの普及は事実上の標準になることを示唆していました。[ 3 ]この展示会で、スティーブ・ジョブズはグルシャラン・シドゥに一見無害な質問をしました。「なぜネットワークは普及しなかったのですか?」[ 4 ]
4か月後の10月、AppleNetは中止された。当時、彼らは「Appleはネットワークシステムを作るビジネスではないと気づいた。社内でAppleNetを構築して使用していたが、出荷していたら新しい標準が登場していたことに気づいた」と発表した。[ 5 ] 1月、ジョブズは代わりにIBMのToken Ringをサポートすると発表し、数か月以内にリリースされると予想していた。[ 5 ]
この時期、AppleはMacintoshコンピュータの開発に深く取り組んでいました。開発中、エンジニアたちは、より安価で一般的なUARTの代わりに、シリアルポート接続を提供するZilog 8530シリアルコントローラチップ(SCC)を使用することを決定しました。 [ 6 ] SCCはUARTよりも約5ドル高価でしたが、最大250キロビット/秒(または追加のハードウェアでそれ以上)というはるかに高速な速度を提供し、IBMのBisyncのような基本的なネットワークのようなプロトコルを内部的にサポートしていました。[ 7 ]
SCC が選ばれたのは、ポートに複数のデバイスを接続できるためです。同様の SCC を搭載した周辺機器は、内蔵プロトコルを使用して通信し、同じバス上の他の周辺機器とデータをインターリーブできます。これにより、マシンの背面にポートを追加する必要がなくなり、より複雑なデバイスをサポートするための拡張スロットをなくすことができます。当初のコンセプトはAppleBusとして知られており、ホスト Macintosh が現代のユニバーサル シリアル バスと同様の方法で「ダム」デバイスをポーリングするシステムを想定していました。[ 8 ]
Macintosh チームは既にLaserWriterとなるものの開発に着手しており、これらの高価なマシンやその他のリソースをどのように共有するかという問題に対する答えとして、他の多くの選択肢を検討していた。ボブ・ベルビルによる一連のメモはこれらの概念を明確にし、Mac、LaserWriter、そして後にMacintosh Officeとなるファイルサーバーシステムの概要を示した。[ 4 ] 1983 年後半には、IBM の Token Ring が Mac の発売に間に合わず、他の製品の発売にも間に合わない可能性があることが明らかになった。結局、Token Ring は 1985 年 10 月まで出荷されなかった。[ 9 ]
ジョブズが以前シドゥに尋ねたことがきっかけで、すでに多くのアイデアが生まれていた。10月にAppleNetが中止になったとき、シドゥはAppleBusハードウェアをベースにした新しいネットワークシステムの開発に取り組んだ。この新しいシステムは既存の概念に縛られることなく、Macにふさわしいものとなるよう設計された。つまり、ユーザーがインストールでき、設定や固定ネットワークアドレスを必要としない、真のプラグアンドプレイネットワークである。[ 10 ]かなりの労力が必要だったが、Macが発売される頃には、基本的な概念は概説され、いくつかの低レベルプロトコルは完成に向かっていた。シドゥはMacの発表からわずか2時間後にベルヴィルにこの作業について話した。[ 4 ]
「新しい」AppleBusは1984年初頭に発表され[ N 1 ]、シリアルポートに差し込む小型ボックスを介してMacまたはLisaから直接接続し、ケーブルで上流と下流の次のコンピュータに接続できるようにした。Apple IIとApple III用のアダプタも発表された[ 11 ] 。Appleはまた、AppleBusネットワークをトークンリングシステムに接続でき、その内部の単一ノードのように見えることも発表した[ 5 ] 。これがどのように機能するかの詳細は不明瞭だった[ 5 ] 。
1985年初頭の発売直前、AppleBusはAppleTalkに名称変更された。当初はAppleTalk Personal Networkとして販売され、ネットワークプロトコル群と物理層から構成されている。
物理層には、速度がわずか230.4 kbps 、エンドツーエンドの最大距離が1,000 フィート (300 m) 、LAN あたり 32 ノードしかないなど、いくつかの制限があります。 [ 12 ]対照的に、ネットワーク規格の中で最も遅いものの 1 つであるStarLAN の速度は 1 Mbps です。[ 13 ]しかし、基本的なハードウェアは Mac に組み込まれているため、ノードを追加するのにかかる費用はアダプタ ボックスで約 50 ドルだけです。これに対し、イーサネット カードやトークン リング カードは数百ドルまたは数千ドルかかります。さらに、ネットワーク スタック全体に必要な RAM は約 6 kB だけなので、どの Mac でも実行できます。[ 14 ]
AppleTalkの比較的低速な通信速度は、さらなるコスト削減を可能にした。RS -422の平衡型送受信回路の代わりに、AppleTalkのケーブルは単一の共通接地を使用するため、速度は約500kbit/sに制限されるが、導体を1本減らすことができた。つまり、一般的な3芯ケーブルを配線に使用できるということだ。さらに、アダプタは「自己終端型」に設計されているため、ネットワークの終端にあるノードは最後のコネクタを接続せずに残しておくことができる。配線をループ状に再接続する必要はなく、ハブなどのデバイスも不要だ。
このシステムは将来の拡張を前提に設計されており、アドレス指定システムによりLAN内で255ノードまで拡張可能(ただし当時は32ノードしか使用できなかった)で、「ブリッジ」(技術的には同じではないが後に「ルータ」と呼ばれるようになった)を使用することでLANを相互接続してより大きな集合にすることができる。「ゾーン」により、ブリッジで接続されたインターネット内でデバイスにアドレス指定が可能になる。さらに、AppleTalkは当初からあらゆる潜在的な基盤となる物理リンクで使用できるように設計されており[ 15 ]、数年後には物理層はAppleTalkプロトコルと区別するためにLocalTalkと改名された。
AppleTalk の利点の 1 つは、自動構成であることです。デバイスをネットワークに接続するには、ユーザーはアダプタをマシンに接続し、そこからケーブルを他のアダプタの空いているポートに接続します。AppleTalk ネットワーク スタックはネットワーク アドレスをネゴシエートし、ネットワーク上の他のマシンの名前とタイプのリストをコンパイルして、ユーザーが Chooser を介してデバイスを参照できるようにします。AppleTalkは非常に使いやすいため、複数の Mac が同じ部屋にあると、アドホック ネットワークが出現する傾向がありました。[ 16 ] Apple は後に、飛行機の 2 つの座席間でネットワークが作成される様子を示す広告でこれを使用しました。[ 17 ] AppleTalk Personal Network の欠点は、ケーブル コネクタが簡単に外れてネットワーク障害を引き起こすことです。[ 18 ]
動作は遅いが安価だったため、AppleTalkは広く普及した。[ 19 ]その後数年間で、AppleTalkデバイスのサードパーティ市場が活況を呈した。特に注目すべき例の1つは、BMUGが設計し、 1987年にFarallonがPhoneNETとして商品化した代替アダプタである。 [ 20 ]これは基本的に、Appleの丸型コネクタの代わりに従来の電話ジャックを使用したAppleのコネクタの代替品だった。PhoneNetを使用すると、通常の電話線を使用してAppleTalkネットワークを相互に接続でき、わずかな追加作業で、アナログ電話とAppleTalkは1本の4芯電話ケーブルを共有できる。[ 18 ]
他の企業は、SCC の外部クロックを読み取る機能を利用して、最大1 Mbit/s の高速伝送をサポートしました。これらのシステムでは、外部アダプタにも独自のクロックが内蔵されており、それを使用して SCC のクロック入力ピンに信号を送りました。このようなシステムで最もよく知られているのは Centram のFlashTalkで、 768 kbit/sで動作し、同社のTOPSネットワーク システムで使用することを想定していました。 [ 21 ]同様のソリューションとして、850 kbit/s のDaynaTalk があり、これはコンピュータと通常の LocalTalk/PhoneNet ボックスの間に差し込む別のボックスを使用しました。Dayna はまた、他の Dayna PC カードと通信するときに最大1.7 Mbit/sで動作する PC 拡張カードも提供しました。 [ 22 ] [ 23 ]さらに高性能なシステムもいくつか存在しましたが、これらは LocalTalk/PhoneNet と互換性のない特殊なケーブルを必要とすることが多く、また、問題を引き起こすことが多かったネットワーク スタックへのパッチも必要としました。
Apple が商業市場や教育市場に拡大するにつれて、既存のネットワーク設備に AppleTalk を統合する必要が生じました。これらの組織の多くは、すでに非常に高価な Ethernet インフラストラクチャに投資しており、Macintosh を Ethernet に直接接続する方法はありませんでした。AppleTalk には AppleTalk サブネットを相互接続するためのプロトコル構造が含まれていたため、解決策として、EtherTalk が最初に LocalTalk サブネット間のバックボーンとして Ethernet を使用するように作成されました。これを実現するには、組織はLocalTalk-to-Ethernet ブリッジを購入する必要があり、Apple はこれらの製品の製造をサードパーティに任せました。[ 24 ] Hayesや Kinetics のような新しく設立された企業など、多くの企業がこれに応えました。
1987 年までに Ethernet は Token Ring との標準化争いで明らかに優勢になり、その年の半ばに Apple はEthernet 物理層上で AppleTalk プロトコルを実装したEtherTalk 1.0 を発表しました。新しくリリースされたMacintosh IIコンピュータ向けに導入されたこのオペレーティングシステムは、拡張スロットを備えた Apple 初の 2 つの Macintosh (Macintosh SE には異なるタイプのスロットが 1 つありました) で、ユーザーがネットワークに使用する物理接続 (「内蔵」または「EtherTalk」) を選択できる新しいネットワークコントロール パネルが含まれていました。導入時には、マシンのNuBusスロットに差し込むEthernet インターフェイス カードが3Comと Kinetics から入手可能でした。新しいネットワーク スタックにより、LAN あたり最大 255 ノードまでシステムを拡張できました。EtherTalk のリリースに伴い、AppleTalk Personal Network は LocalTalk [ 25 ]と改名され、その名前でその寿命の大部分を過ごすことになります。トークンリングは後に、同じネットワーク制御パネルと基盤となるソフトウェアを使用する類似製品であるTokenTalkによってサポートされるようになった。時が経つにつれ、多くのサードパーティ企業が、これらの同じドライバを使用する互換性のあるイーサネットカードとトークンリングカードを発売するようになった。
直接 Ethernet 接続を備えた Macintosh の登場により、Ethernet と LocalTalk の互換性の問題も拡大しました。新旧の Mac を含むネットワークでは、相互に通信する方法が必要でした。これは、Ethernet Mac II のネットワークが LocalTalk にしか接続できない LaserWriter と通信しようとするような単純なケースでした。Apple は当初、前述の LocalTalk-to-Ethernet ブリッジ製品に頼っていましたが、これらの製品は少量生産になるとの Apple の考えに反して、1987 年末までに 13 万ものネットワークが使用されていました。当時 AppleTalk は、他のどのベンダーよりも 3 倍以上多くインストールされており、世界で最も使用されているネットワーク システムだったと言われています。[ 26 ] 1987 年は、512 kB 以上のRAMを搭載した Mac で動作する専用ファイル サーバーであるAppleShare製品が導入された年でもありました。一般的な AppleShare マシンは、 Hard Disk 20SCなどの外部SCSIハード ドライブを備えたMac Plusでした。 AppleShareは、専用ファイルサーバーデバイスをベースとしていたものの失敗に終わったMacintosh Officeの取り組みに代わる、実質的な代替製品だった。
AppleShareは1980年代後半、Novell NetWareとMicrosoftのMS-Netに次いで3番目に大きなネットワークオペレーティングシステム(NOS)でした。NetWareがNOS市場の50%以上を占めていましたが、AppleTalkのユーザーは最も満足していました。[ 27 ] 1989年に100の大規模LANユーザーを対象に行われた調査では、6%がAppleを使用しており、ベンダーの中で5番目でした。[ 28 ]
1989年にAppleTalk Phase IIとして大幅な再設計がリリースされました。多くの点で、Phase IIは以前のバージョン(Phase Iとは呼ばれなかった)をより汎用的にするための取り組みと見なすことができます。LANは255以上のノードをサポートできるようになり、ゾーンはもはや物理的なネットワークに関連付けられておらず、単にノードを整理するために使用される完全に仮想的な構成要素となりました。たとえば、組織内のすべてのプリンタを一覧表示する「プリンタ」ゾーンを作成したり、同じデバイスを物理的な場所を示すために「2階」ゾーンに配置したりすることができます。Phase IIには、以前は広域ネットワークをブリッジするネットワークで深刻な問題となっていた「チャット」を減らすために、基盤となるインターネットワークプロトコルに変更も含まれていました。[ 29 ]
この時点で、Appleは多種多様な通信製品を開発しており、その多くはAppleTalk Phase IIと同時に発表された。これには、EtherTalkとTokenTalkのアップデート、IBM PC向けのAppleTalkソフトウェアとLocalTalkハードウェア、AppleのA/UXオペレーティングシステム向けのEtherTalk(これによりLaserWriterなどのネットワークリソースを利用できるようになる)、そしてMac X.25とMacX製品などが含まれる。
1990 年までに Ethernet はほぼ普及し、Mac に工場出荷時から Ethernet を組み込む時期が来ていました。しかし、これらのネットワークで使用される物理的な配線はまだ完全に標準化されていませんでした。Apple は、コンピュータの背面に 1 つのポートを用意し、ユーザーが任意のケーブル システム用のアダプタを差し込めるようにすることでこの問題を解決しました。このFriendlyNetシステムは、業界標準のAttachment Unit Interface (AUI) をベースにしていましたが、より小さく使いやすい非標準のコネクタを使用しており、Apple はこれを「Apple AUI」またはAAUIと呼んでいました。FriendlyNet はQuadra 700およびQuadra 900コンピュータで初めて導入され、しばらくの間 Mac ラインの大部分で使用されました。[ 30 ] System 7でApple は、AppleShare のよりシンプルなバージョンである Personal File Sharing を追加しました。[ 31 ] LocalTalk と同様に、多数のサードパーティ製 FriendlyNet アダプタがすぐに登場しました。
10BASE-Tがイーサネットの事実上の標準ケーブルシステムとなるにつれ、第2世代のPower MacintoshマシンはAAUIに加えて10BASE-Tポートを追加しました。PowerBook 3400cや下位機種のPower Macにも10BASE-Tが追加されました。Power Macintosh 7300 / 8600 / 9600はAAUIを搭載した最後のMacとなり、 Power Macintosh G3とPowerBook G3以降は10BASE-Tが標準となりました。
AppleTalk の登場当初から、ユーザーは Macintosh をTCP/IPネットワーク環境に接続したいと考えていました。1984 年、スタンフォード大学の Bill Croft は、SEAGATE (Stanford Ethernet–AppleTalk Gateway) プロジェクトの一環として、DDP でカプセル化された IP パケットの開発を先駆的に行いました。SEAGATE は Kinetics によって LocalTalk-to-Ethernet ブリッジとして商用化され、追加のルーティング オプションとなりました。数年後、MacIP がSEAGATE コードから分離され、LocalTalk ネットワーク上で IP パケットをルーティングするための事実上の方法となりました。1986 年までに、コロンビア大学は、Unix、TCP/IP、および AppleTalk 環境の統合性を高めた Columbia AppleTalk Package (CAP) の最初のバージョンをリリースしました。1988 年、Apple は、適切な Ethernet ハードウェアを備えたマシンで Mac が TCP/IP をサポートできるようにするシステムであるMacTCPをリリースしました。しかし、これにより多くの大学は、多数の LocalTalk 搭載 Mac で IP をサポートするという問題を抱えることになりました。すぐに、LocalTalk-to-Ethernet ブリッジに MacIP サポートを含めることが一般的になりました。[ 30 ] MacTCPは1994年までClassic Mac OSの標準機能にはならなかったが、[ 32 ]その頃にはSNMPとPPPもサポートしていた。
1990年代初頭のある時期、Macは急速に拡大するインターネットの主要なクライアントでした。[ 33 ]広く使用されていたよく知られたプログラムには、Fetch、Eudora、eXodus、NewsWatcher、NCSAパッケージ、特にNCSA Mosaic [ 34 ]とその派生版であるNetscape Navigator [ 35 ]がありました。さらに、Macでインターネットコンテンツをホストできるサーバー製品もいくつか登場しました。この期間、Macはマイクロコンピュータ市場全体のシェアが比較的小さいにもかかわらず、インターネットに接続されているクライアントの数は他のプラットフォームの約2~3倍でした。[ 36 ]
世界がLANとWANの両方でIPへと急速に移行するにつれ、Appleはますます時代遅れになっていく2つのコードベースを、ますます広範囲のマシンで維持することと、PowerPCベースのマシンの導入という課題に直面した。これがOpen Transportの取り組みにつながり、MacTCPとAppleTalkの両方をUnix標準のSTREAMSから採用したまったく新しいコードベースで再実装した。初期バージョンには問題があり、しばらくの間安定しなかった。[ 37 ]その時点で、Appleは最終的に失敗に終わるCoplandの取り組みに深く関わっていた。
NeXTの買収とそれに続くMac OS Xの開発により、AppleTalkは完全にレガシーシステムとなった。Mac OS Xには、レーザープリンタやファイル共有など、多数の既存のAppleTalkデバイスをサポートするためにAppleTalkのサポートが追加されたが、当時一般的だった代替接続ソリューション、特にプリンタ用のUSB接続の普及により、AppleTalkの需要は限定的だった。Appleがこれらの製品カテゴリーの多くを廃止し、すべての新しいシステムがIPベースになったことで、AppleTalkは次第に使われなくなっていった。
iMac G3はLocalTalkハードウェアを搭載していない最初のMacintoshでした。[ 38 ] AppleTalkのサポートは2009年のMac OS X Snow LeopardでmacOSシリーズから最終的に削除されましたが、[ 39 ] TCP経由のAFPのサポートは残りました。
しかし、AppleTalkの廃止によって、その使いやすさとIPルーティングを組み合わせたネットワークソリューションへのニーズが減ることはなかった。Appleは、AirPortルーターの導入から、ゼロコンフィギュレーションネットワークシステムの開発、そしてそれを自社で実装したRendezvous(後にBonjourと改名)に至るまで、こうした取り組みを数多く主導してきた。
macOS 11 Big Surでは、AFP over TCP のサポートがレガシーサポートから削除されました。
Linux 7.2 では AppleTalk のサポートが削除されました。[ 40 ]
AppleTalkの設計は、OSIモデルに基づくプロトコル階層構造を採用していた。初期のLANシステムの大半とは異なり、AppleTalkは典型的なXerox XNSシステムを使用して構築されたわけではない。対象はイーサネットではなく、ルーティングに48ビットアドレスを使用する必要もなかった。しかしながら、AppleTalkシステムの多くの部分は、XNSに直接対応する機能を持っている。
AppleTalk の重要な差別化要因の 1 つは、システムを完全に自己構成することを目的とした 2 つのプロトコルが含まれていたことです。AppleTalkアドレス解決プロトコル( AARP ) により、AppleTalk ホストはネットワーク アドレスを自動的に生成でき、名前バインディング プロトコル( NBP ) は、ネットワーク アドレスをユーザーが読みやすい名前にマッピングする動的なシステムでした。AARP と同様のシステムは、Banyan VINESなど他のシステムにも存在していました。2002 年頃から、Rendezvous ( DNS ベースのサービス検出、マルチキャスト DNS、およびリンクローカル アドレス指定の組み合わせ) が、AppleTalk と同様の機能と使いやすさを IP を使用して提供しました。[ 41 ] [ 42 ]
AARPとNBPはどちらも、「コントローラ」デバイスがデフォルトのメカニズムをオーバーライドできるようにする方法を定義していました。そのコンセプトは、ルータが情報を提供したり、システムを既知のアドレスと名前に「ハードワイヤリング」できるようにすることでした。新しいノードが空きアドレスを検索する際にAARPが問題を引き起こす可能性がある大規模ネットワークでは、ルータを追加することで「チャット」を減らすことができました。AARPとNBPが協力して、AppleTalkは使いやすいネットワークシステムになりました。新しいマシンは、接続して必要に応じて名前を付けることでネットワークに追加されました。NBPのリストは、Chooserと呼ばれるプログラムによって検査され、ローカルネットワーク上のマシンのリストがファイルサーバーやプリンタなどのクラスに分類されて表示されました。
AppleTalk アドレスは 4 バイトの値でした。これは、2 バイトのネットワーク番号、1 バイトのノード番号、および 1 バイトのソケット番号で構成されていました。これらのうち、ルーターから取得されるネットワーク番号のみが設定を必要としました。各ノードは、異なるノードが誤って同じ番号を選択した場合の競合を処理するプロトコル (当初はLocalTalk Link Access Protocol LLAP、後に Ethernet/EtherTalk では AppleTalk Address Resolution Protocol、AARP) [ 43 ]に従って、独自のノード番号を動的に選択しました。ソケット番号については、AppleTalk プロトコル自体に固有の特別な目的のために、いくつかのよく知られた番号が予約されていました。これらを除いて、すべてのアプリケーションレベルのプロトコルは、クライアント側とサーバー側の両方で動的に割り当てられたソケット番号を使用することが想定されていました。
このような動的な性質のため、ユーザーがアドレスを指定してサービスにアクセスすることは想定されませんでした。その代わりに、すべてのサービスには名前が付けられており、人間が選択した名前はユーザーにとって意味のあるものであり、かつ競合の可能性を最小限に抑えるのに十分な長さであることが期待されました。
NBP名はソケット番号とノード番号を含むアドレスに変換されるため、AppleTalkにおける名前はマシンが提供するサービスに直接対応付けられ、マシン自体の名前とは完全に分離されていました。そのため、サービスを別のマシンに移動しても、サービス名が同じであれば、ユーザーはサービスへのアクセスを継続するために特別な操作を行う必要はありませんでした。また、同じマシン上で、ネットワーク接続の競合を起こすことなく、同じ種類のサービスをいくつでもホストすることができました。
これに対し、DNSのAレコードでは、名前はマシンのアドレスに変換されますが、サービスを提供している可能性のあるポート番号は含まれません。そのため、特定のサービスにアクセスするために特定のマシン名を使用することに慣れているユーザーは、サービスが別のマシンに移動されるとアクセスができなくなります。これは、サービスを参照する際に実際のマシン名ではなくサービスを示すCNAMEレコードを使用することを徹底することで多少軽減できますが、ユーザーがそのような慣習に従うことを保証する方法はありません。KerberosやActive Directoryなどの新しいプロトコルでは、 DNS SRVレコードを使用してサービスを名前で識別します。これはAppleTalkモデルに非常に近いものです。
AppleTalkアドレス解決プロトコル(AARP)は、AppleTalkアドレスをリンク層アドレスに解決します。[ 44 ]これは機能的にはARPと同等であり、ARPと非常によく似た方法でアドレス解決を行います。[ 45 ]
AARP は比較的シンプルなシステムです。電源を入れると、AppleTalk マシンはAARP プローブ パケットをブロードキャストしてネットワーク アドレスを要求し、ルータなどのコントローラから応答を待ちます。アドレスが提供されない場合、「ベース サブネット」である 0 からランダムに 1 つが選択されます。次に、「このアドレスを選択します」という別のパケットをブロードキャストし、ネットワーク上の他のマシンが苦情を言うかどうかを待ちます。他のマシンがそのアドレスを持っている場合、新しく接続するマシンは別のアドレスを選択し、空いているアドレスが見つかるまで試行を続けます。[ 33 ]マシンが多いネットワークでは、空いているアドレスが見つかるまでに数回試行する必要がある場合があるため、パフォーマンス上の理由から、成功したアドレスはNVRAMに記録され、将来のデフォルト アドレスとして使用されます。つまり、マシンを一度に数台ずつ追加する実際のほとんどの設定では、アドレスが実質的に固定されるまでに 1 回または 2 回の試行しか必要ありません。
AppleTalkデータストリームプロトコル(ADSP)は、AppleTalkプロトコルスイートに比較的後から追加されたもので、TCPスタイルの信頼性の高いコネクション指向トランスポートが必要であることが明らかになった際に導入されました。TCPとの主な違いは以下のとおりです。
Apple Filing Protocol (AFP)(旧称 AppleTalk Filing Protocol)は、 AppleShareファイル サーバーとの通信に使用されるプロトコルです。AppleTalk Session Protocol (従来の DDP 経由の AFP 用) またはData Stream Interface (TCP 経由の AFP 用) をベースに構築されており、ユーザー認証 (双方向乱数交換を含むさまざまな認証方法に拡張可能) や Macintosh HFSファイルシステム固有の操作を実行するためのサービスを提供します。他のほとんどの AppleTalk プロトコルは Snow Leopard で削除されましたが、AFP over TCP は Big Sur まで macOS で使用され続けました。
AppleTalkセッションプロトコル(ASP)は、AppleTalkトランザクションプロトコル(ATP)の上に構築された中間プロトコルであり、ATPはAFPの基盤となった。ASPは、任意のコマンドに対する応答を要求したり、帯域外ステータス照会を実行したりするための基本的なサービスを提供した。また、サーバーがクライアントに非同期のアテンションメッセージを送信することも可能にした。
AppleTalkトランザクションプロトコル(ATP)は、DDPを基盤として構築された、AppleTalk向けの最初の信頼性の高いトランスポート層プロトコルでした。開発当時、TCPのような完全で信頼性の高いコネクション指向プロトコルは、AppleTalkの想定される用途のほとんどにおいて実装コストが高すぎると考えられていました。そのため、ATPは接続の確立や切断を必要としない、単純な要求/応答の交換方式を採用していました。
ATP要求パケットに対しては、最大8つの応答パケットが返信される可能性がある。要求者は、受信した応答パケットを示すビットマスクを含む確認応答パケットを送信し、応答者は残りのパケットを再送信する。
ATPは「少なくとも1回」モードまたは「厳密に1回」モードのいずれかで動作できます。厳密に1回モードは、冪等性を持たない操作に不可欠でした。このモードでは、応答側は要求元からの解放パケットが正常に受信されるまで、またはタイムアウトが経過するまで、応答バッファのコピーをメモリに保持します。このようにして、同じトランザクションIDを持つ重複した要求に対して、実際の操作を再度実行することなく、同じ応答データを再送信することで応答できます。[ 47 ]
データグラム配信プロトコル(DDP)は、最も低レベルのデータリンク非依存型トランスポートプロトコルでした。DDPは配信保証のないデータグラムサービスを提供しました。NBP、RTMP、ZIPなどのインフラストラクチャプロトコルを含むすべてのアプリケーションレベルプロトコルは、DDPの上に構築されています。AppleTalkのDDPは、 OSI(Open Systems Interconnection)通信モデルのネットワーク層にほぼ相当します。
名前バインディングプロトコル (NBP) は、AppleTalk の名前を管理するための動的で分散型のシステムでした。サービスがマシン上で起動すると、人間の管理者が選択した名前が登録されました。この時点で、NBP は他のマシンが同じ名前を既に登録していないことを確認するシステムを提供しました。その後、クライアントがそのサービスにアクセスしたい場合、NBP を使用してマシンにクエリを実行してそのサービスを見つけました。NBP は、ブラウジング機能 (「利用可能なすべてのサービスの名前は何ですか?」) と、特定の名前のサービスを見つける機能を提供しました。[ 44 ]名前は人間が読みやすく、スペースと大文字と小文字を含み、検索のサポートも含まれていました。
AppleTalk Echo Protocol (AEP) は、ネットワーク ノードの到達可能性をテストするために設計されたトランスポート層プロトコルです。[ 44 ] AEP は、ネットワーク ノードに送信するパケットを生成し、パケットのタイプ フィールドで AEP パケットとして識別されます。パケットは最初に送信元 DDP に渡されます。AEP パケットとして識別された後、パケットは宛先の DDP によって検査されるノードに転送されます。パケットが AEP パケットとして識別された後、パケットはコピーされ、パケット内のフィールドが変更されて AEP 応答パケットが作成され、送信元ノードに返されます。
プリンタアクセスプロトコル(PAP)は、PostScriptプリンタと通信するための標準的な方法でした。これはATPの上に構築されていました。[ 44 ] PAP接続が開かれると、各エンドは相手にATPリクエストを送信しました。これは基本的に「もっとデータを送ってください」という意味でした。クライアントはサーバーに対してPostScriptコードのブロックを送信して応答し、サーバーは結果として生成される可能性のある診断メッセージで応答することができ、その後、別の「もっとデータを送ってください」リクエストが送信されました。このATPの使用により、自動フロー制御が提供されました。各エンドは、応答すべき未処理のATPリクエストがある場合にのみ、相手にデータを送信できました。
PAPは、別のATPトランザクションによって処理される帯域外ステータス照会機能も提供していました。PAPサーバーは、1つのクライアントからの印刷ジョブの処理中でも、他の多数のクライアントからのステータス要求に応答し続けることができました。これにより、LAN上で印刷待ちをしている他のMacintoshは、プリンタがビジー状態であること、そして処理中のジョブの内容を示すステータスメッセージを表示することができました。
ルーティングテーブルメンテナンスプロトコル(RTMP)は、ルーターがネットワークのトポロジーについて互いに情報を共有するためのプロトコルでした。[ 44 ]これは、AppleTalkの中で定期的な非要求ブロードキャストを必要とする唯一の部分でした。10秒ごとに、各ルーターは、認識しているすべてのネットワーク番号と、それらがどれだけ離れていると考えているかのリストを送信する必要がありました。
ゾーン情報プロトコル(ZIP)は、AppleTalkのネットワーク番号をゾーン名に関連付けるプロトコルでした。[ 44 ]ゾーンは、人間にとって意味のあるネットワークの細分化(たとえば、「経理部」)でしたが、ネットワーク番号はトポロジー的に連続したネットワークのセクションに割り当てる必要がありましたが、ゾーンはネットワークの複数の異なる不連続な部分を含むことができました。

AppleTalk の初期デフォルトハードウェア実装は、 Macintoshの内蔵RS-422ポートを230.4 kbit/sで使用するLocalTalkと呼ばれる高速シリアルプロトコルでした。LocalTalk は、RS-422 ポートにスプリッタボックスを使用して、1 つのポートからアップストリームとダウンストリームのケーブルを提供していました。トポロジーはバス型で、各接続されたマシンから次のマシンへとケーブルがデイジーチェーン接続され、 LocalTalkセグメントで許可される最大 32 台まで接続できました。このシステムは今日の基準からすると低速でしたが、当時は PC マシンでのネットワーク接続には追加コストと複雑さが伴ったため、オフィスでネットワーク接続されたパーソナルコンピュータは Mac だけというケースが一般的でした。UNIX や VAX ワークステーションなどの他の大型コンピュータは、通常イーサネット経由でネットワーク接続されていました。
他の物理的な実装も利用可能でした。LocalTalk の非常に人気のある代替品は、Farallon Computing, Inc. ( Netopiaに社名変更、2007 年にMotorolaに買収)のサードパーティ ソリューションであるPhoneNETでした。これも RS-422 ポートを使用し、Apple の LocalTalk ポート ドライバに関しては LocalTalk と区別がつかなかったものの、固定電話を接続するのと同じケーブルである、4 線 6 極のモジュラー コネクタを備えた非常に安価な標準電話ケーブル上で動作しました。2 対目のワイヤを使用するため、2 回線がない場合でも、ネットワーク デバイスを既存の電話ジャック経由で接続することができました。今日のネットワーク ハブやスイッチを先取りする形で、Farallon は PhoneNet をスター構成とバス構成の両方で使用できるソリューションを提供しました。パッシブスター接続 (電話線が中央のポイントで単純にブリッジ接続される) と、 「PhoneNet Star Controller」ハブ ハードウェアを使用したアクティブスターの両方に対応していました。スター構成では、配線の問題は 1 つのデバイスにしか影響せず、問題の特定が容易でした。 PhoneNetは、低コスト、柔軟性、そして容易なトラブルシューティングといった特長から、1990年代初頭までMacネットワークにおいて圧倒的なシェアを誇った。
AppleTalkプロトコルは、イーサネット(最初は同軸ケーブル、その後ツイストペアケーブル)とトークンリングの物理層上でも動作するようになり、AppleはそれぞれEtherTalkとTokenTalkと名付けました。1990年代を通じてPC業界でイーサネットが広く普及するにつれ、EtherTalkは徐々にAppleTalkの主要な実装方法となりました。AppleTalkとTCP/IPの他に、イーサネットネットワークではDECnetやIPXなどの他のプロトコルも同時に伝送することができました。
Macとは対照的に、1980年代後半には、最も普及していたオフィスコンピューティングプラットフォームであるMS-DOSを実行するPC互換機向けの支配的なLANハードウェア標準は存在しなかった[ 19 ] [ 27 ] 。Appleは1987年初頭にAppleTalk PCカードを発表し、PCがAppleTalkネットワークに参加してLaserWriterプリンタに印刷できるようにした[ 48 ] 。 1年後にはAppleShare PCがリリースされ、PCがAppleShareファイルサーバにアクセスできるようにした[ 49 ] 。
「TOPS Teleconnector」[ 50 ]は、AppleTalkシステム上でMS-DOSネットワークシステムを介してMS-DOS PCが通信できるようにするもので、PC用のAppleTalkインターフェースカードと、ファイル、ドライブ、プリンタの共有などの機能を可能にするネットワークソフトウェア一式で構成されていました。PC専用のAppleTalkネットワークの構築を可能にするだけでなく、TOPSソフトウェアがインストールされたPCとMac間の通信も可能にしました。(TOPSがインストールされていないMacは同じネットワークを使用できましたが、他のAppleマシンとの通信のみでした。)MacのTOPSソフトウェアは、使いやすさや堅牢性、クラッシュの少なさの点でApple独自のソフトウェアの品質には及びませんでしたが、DOSソフトウェアはDOSの基準では比較的使いやすく、堅牢でした。
BSDおよびLinuxオペレーティングシステムは、Netatalkと呼ばれるオープンソースプロジェクトを通じてAppleTalkをサポートしています。Netatalkは完全なプロトコルスイートを実装しており、Macintoshコンピュータのネイティブファイルサーバーまたはプリントサーバーとして機能するだけでなく、ネットワーク経由でLocalTalkプリンタに印刷することも可能です。
Windows Server オペレーティングシステムは、 Windows NTからWindows Server 2003までAppleTalk をサポートしていました。Miramar は、2007 年に CA によって販売が終了された PC MacLAN 製品に AppleTalk を組み込んでいました。GroupLogicは、 Macintosh と Windows の統合のためのExtremeZ-IPサーバー ソフトウェアに AppleTalk プロトコルをバンドルし続けており、 Windows Server 2008およびWindows Vistaとその以前のバージョンをサポートしています。HELIOS Software GmbH は、HELIOS UB2サーバーの一部として、AppleTalk プロトコル スタックの独自の実装を提供しています。これは基本的に、さまざまなプラットフォームで動作するファイルおよびプリント サーバー スイートです。
さらに、コロンビア大学は、Ultrix、SunOS、BSD、IRIXなど、さまざまなUnix系OS向けにプロトコルスイートを実装したColumbia AppleTalk Package(CAP)をリリースしました。このパッケージは現在、積極的にメンテナンスされていません。