NNTP(ネットワークニュース転送プロトコル)の仕組みと歴史
現代のSNSや掲示板の先駆けとも言えるUsenet(ユーズネット)をご存知でしょうか。このネットワーク上でニュース記事を効率的にやり取りするために開発されたのが、NNTP(Network News Transfer Protocol)です。NNTPは、サーバー間での記事転送や、ユーザーがクライアントソフトを通じて記事を読み書きするための標準的な通信規約です。
Key Facts
- 目的:Usenetニュース記事のサーバー間転送およびユーザーによる閲覧・投稿を実現する。
- 誕生:1986年にRFC 977として仕様が策定された。
- 標準ポート:通常はTCPポート119を使用し、暗号化通信(NNTPS)では563を使用する。
- 進化:2006年にRFC 3977およびRFC 4642によって仕様が更新され、TLSによるセキュリティが強化された。
NNTPの誕生背景と進化
初期のUsenetは、UUCP(Unix-to-Unix Copy)という仕組みに基づいていました。これは、強力なタイムシェアリングシステムであるニュースサーバー同士が、電話回線を用いて1対1で直接データを転送する方式でした。当時の利用者は、サーバーに直接ログインしてローカルディスク上の記事を閲覧していました。
しかし、LAN(ローカルエリアネットワーク)の普及に伴い、個人のPCからネットワーク経由でニュースを閲覧したいという需要が高まりました。そこで、メール送信に使われるSMTP(Simple Mail Transfer Protocol)をモデルにしつつ、ニュースグループの特性に合わせて最適化されたのがNNTPです。
このプロトコルの策定には、カリフォルニア大学サンディエゴ校のBrian Kantor氏やカリフォルニア大学バークレー校のPhil Lapsley氏らが尽力し、1986年3月にRFC 977として公開されました。その後、2006年には長年の拡張機能を統合したRFC 3977がリリースされ、現代的な仕様へとアップデートされています。
技術的な仕様と通信ポート
NNTPは、ニュースリーダー(ニュースクライアント)と呼ばれる専用ソフトウェアを通じて利用されます。クライアントはNNTPを用いてサーバーに接続し、記事の取得や投稿を行います。
通信に使用されるポート番号は、用途に応じて以下のように使い分けられています。
| ポート番号 | 名称/用途 | 特徴 |
|---|---|---|
| 119 | NNTP (標準) | 一般的なニュース記事の送受信に使用。 |
| 433 | NNSP | サーバー間での大量の記事転送に使用。 |
| 563 | NNTPS | TLS(Transport Layer Security)を用いた暗号化接続。 |
セキュリティ面では、ポート563による直接的な暗号化接続のほか、ポート119で接続した後にSTARTTLSコマンドを使用して通信を暗号化に切り替える手法も定義されています(RFC 4642)。
関連概念とサーバーソフトウェア
NNRPについて
1990年代初頭、クライアント専用の特化型プロトコルとしてNNRP(Network News Reader Protocol)が提案されました。最終的に完全な実装には至りませんでしたが、InterNetNews(INN)のnnrpdプログラムなどでその名称が残り、現在でもクライアント向けのNNTPコマンドセットを指して「NNRP」と呼ぶことがあります。
代表的なサーバーソフトウェア
NNTPを運用するためのサーバーソフトウェアには、以下のようなものがあります。
- InterNetNews (INN): 高機能なニュースサーバー。
- C News: 古くから利用されている実装。
- Leafnode: 効率的な配信を目的とした設計。
- Apache James: メールおよびニュースサーバー機能を提供。
- DIABLO: バックボーンマシン向けに設計された転送システム。
Frequently Asked Questions
NNTPとSMTPの違いは何ですか?
どちらもテキストベースの転送プロトコルですが、SMTPは特定の宛先へメールを届けるためのものであるのに対し、NNTPはニュースグループという共有スペースに記事を公開し、不特定多数が閲覧できるように設計されています。
NNTPSとは何ですか?
NNTP over SSL/TLSの略称で、通信内容を暗号化してプライバシーとセキュリティを確保した接続方式のことです。主にTCPポート563が使用されます。
ニュースリーダーとは何ですか?
Usenet上の記事を閲覧・投稿するための専用クライアントソフトウェアのことです。NNTPプロトコルを通じてサーバーにアクセスし、ユーザーに使いやすい形式で記事を表示します。
NNTPは現在も使われていますか?
Webベースの掲示板やSNSに主役を譲りましたが、一部のニュースグループやアーカイブ、特定のコミュニティでは依然として利用されており、プロトコルとしての仕様は維持されています。