ニュースレターNo.83/2023年3月発行
インターネットことはじめ
ファイル共有
1. ファイルを共有する
82号の本コーナーで紹介したように、 インターネット上のクラウドストレージサービスでファイルを共有することは、 2023年現在では当たり前になっています。 82号ではその前段階としてのファイル共有にも触れました。 今回は、インターネット以外でのファイル共有ことはじめを追いかけてみます。
いまやLANは当たり前の存在となり、とあるPCに記録されたファイルを、 別のPCから読み書きできます。 またエンドユーザーであっても、 ネットワークにつながったファイルサーバないしNASにデータを保存、 共有することも珍しくありません。 こうしたファイル共有にはWindowsやmacOSでは主にServer Message Block (SMB)、 Unix系OSではそれに加え、 Network File System (NFS)といったプロトコルが使われます。
2. Windowsでの共有
SMB普及以前、1980年代後半はMS-DOSをクライアントとする、 Novell社のNetWareという専用OSによるファイルサーバがある程度普及していました。 Netwareは下位プロトコルとしてTCP/IPではなくIPX (Internetwork Packet Exchange) / SPX (Sequenced Packet Exchange)を使っていて、 当時のSMBよりも機能が優れていました。 そしてWindows 3.1までは実質的にMS-DOSの拡張という形態だったので、 これをそのまま利用していました。
SMBが普及し始めたのは1990年代初頭で、 Windows 3.1 for WorkgroupsないしWindows 95がネットワーク機能としてアピールしていました。 当初はサーバとしてIBM社とMicrosoft社が共同開発したOS/2というOSが必要でしたが、 Windows NT登場以降はWindowsだけで完結するようになります。 その後、SMBの通信プロトコルに標準的なTCP/IPが採用され、 1990年代後半にはNetWareをほぼ駆逐するに至りました。
3. Macintoshでの共有
現代のMacintoshは前述のようにWindowsと同じプロトコルを使っていますが、 当初はAFP (AppleTalk Filing Protocol)というApple Computer社独自のプロコトルを使っていました。 1984年にAppleTalkとしてネットワーク機能が発表された時には接続ケーブルとしてRS-422を使っており、 イーサネットやTCP/IPとの互換性はありません。 その代わり複雑な設定を必要とせず、ケーブルをつなげば動くという簡便さと、 当時としても高価だったプリンタを共有できることから、 Macintoshユーザーの間に広く普及します。 その後イーサネットが普及すると、 イーサネット上で動作するAppleTalk (EtherTalk)が開発されましたが、 徐々に各種機能がTCP/IPベースに移行し、 Mac OS X 10.6の時点でAppleTalkは使われなくなりました。
4. Unixでの共有
Unix系OSでは、サン・マイクロシステムズ社によって、1984年に発表、 1985年に実装されたUnix用の分散ファイルシステムである、 NFSが広く使われてきました。 当初からTCP/IPベースで、1989年にはRFC1094として標準化されています。 2000年代にはバージョン4となりました。 現代的なUnixでは当然のようにSMBをサポートしていますが、 Unixシステム間ではNFSでファイルを共有するのが一般的です。
5. LAN以前
日本においてLANがエンドユーザーに普及したのは、 早くてもWindows 95以降、すなわち1995年以降です。 それ以前の1980年代はLANにしてもインターネットにしても夢の世界のお話で、 現実にはダイヤルアップでモデムを介してパソコン通信や草の根ネットに接続するのがせいぜいでした。 チャットやメール、掲示板こそありましたが、 当初は任意のファイルをやりとりすることはできませんでした。 こんな時代でも、自作したソフトウェアなどを互いに交換したいという要望はありました。
6. テキスト化と圧縮
当時ファイルを交換するために工夫されたのが、 ファイルをテキストに変換/分割してメールとしてやりとりしたり、 掲示板に掲載する方法です。 uuencodeに始まり、ishなど、分割/統合を自動的に行い、 ある程度のエラーを訂正できる高度な変換ソフトも開発されました。 その延長線上にある技術として、 電子メールでさまざまなファイルフォーマットを取り扱えるようにした、 MIME (Multipurpose Internet Mail Extension)が挙げられます。 このおかげで、現代の我々は簡単にメールにファイルを添付できます。
7. ファイル転送プロトコル
テキストに変換することなく、 バイナリファイルを直接やりとりできるようにすることで効率を高める技術は、 1980年代のパソコン通信で既に使われていました。 その例として、モデムを介した通信で用いられたXMODEM / YMODEM / ZMODEM、 コロンビア大学で開発されたKermitなどが挙げられます。 これらは転送コマンドによりファイル単位で送受信を行うプロトコルであり、 その点ではインターネットの標準的なファイル転送プロトコルである、 FTPやHTTPなどと同様です。
しかし、 下位の通信レイヤーでエラー訂正やフロー制御を行うFTPやHTTPとは異なり、 これらのプロトコルでは通信プロトコル自体にエラー訂正やフロー制御が含まれています。 そのため、TCP/IPが標準プロトコルとして広く普及し、 通信の信頼性が向上して以降、 ファイル転送プロトコルにはFTPやHTTP、 それらを暗号化してより安全にしたSFTPやHTTPSが、 広く普及することとなりました。