ネットワークニュースの仕組み

共通科目情報処理(上級)、インターネットの仕組み、2003年02月21日

                                       電子・情報工学系
                                       新城 靖
                                       <yas@is.tsukuba.ac.jp>

このページは、次の URL にあります。
http://www.hlla.is.tsukuba.ac.jp/~yas/ipe/taiiku-kougi-2002/2003-02-21
あるいは、次のページから手繰っていくこともできます。
http://www.hlla.is.tsukuba.ac.jp/~yas/ipe/
http://www.hlla.is.tsukuba.ac.jp/~yas/index-j.html
http://www.ipe.tsukuba.ac.jp/~yshinjo/

■復習

■最終発表

■今日の重要な話

参考

情報処理演習読本 第8章 ネットニュース by 武藤先生

■ネットワークニュース

ネットワーク・ニュース(network news)、あるいは、ネットニュース (netnews)は、電子メールと並び古くから使われているインターネットのアプ リケーション。

ネットワーク・ニュースのメッセージを読み書きするには、ニュース・リーダ と呼ばれるプログラムを使う。

ニュース・リーダの種類:

Netscape Messenger
Outlook Express
mnews(えむにゅーす)
階層構造に基づくニュース・リーダ。 サーバで動作する。電子メールも読み書きできる。
GNUS (にゅーず)
emacs (mule) の中で使える。サーバで動作する。

■ネットワーク・ニュースの基本的な考え方と操作

ネットワーク・ニュース(network news) あるいは、 ネットニュース(netnews) は、インターネットで「1対多の通信」を実現するための仕掛けの1つ。 Usenet と呼ばれることもある。 ネットワーク・ニュースでは、ある書き手が発したメッセージを、大勢の人が 読む。ネットワーク・ニュースでは、メッセージの事を新聞に たとえて「 記事(article) 」と呼ぶ。 1つひとつの記事は、電子メールと同じく、基本的にはテキストである。

◆記事の転送、サーバ、保存期間

図?は、ネットワーク・ニュースの記事が配送される様子を表わしている。

ネットワーク・ニュースの記事転送の仕組み

図? ネットワーク・ニュースの記事転送の仕組み

各LAN上のどれかのコンピュータでは、ネットワーク・ニュースのサーバ (NNTPサーバ) が動いている。そのサーバは、LAN内の他のコンピュータで動いているニュー ス・リーダからの要求に従って、自分が保存している記事を提供する。また、 投稿された記事や他のサーバから受け取った記事を、他のサーバへ転送する。 この時、サーバ間、および、サーバとニュース・リーダの間で使われる、 TCP/IP上の通信プロトコルは、 NNTP (Network News Transfer Protocol) である。

このように、ネットワーク・ニュースの記事はサーバ間で次々にコピーされる 形で伝わっていく。この時、世界中の数百万のサーバの中には、コピーに 失敗することがある。こういう現象を、「記事が落ちる」という。 また、コピーには、どうしても遅れか生じる。電子メールが1分もかからな いで届くような間でも、ネットワーク・ニュースの場合は、数時間はかかると こともある。また、途中のサーバが止まっていると、記事が落ちな いまでも、そこで何日か足止めされることがある。

ニュース・リーダ(news reader) は、ユーザと対話しながら、サーバから記事を取り寄せたりサーバに記事を送っ たりするプログラムである。

ネットワーク・ニュースでは、毎日膨大な量の記事が投稿されている。それ を保存するためのディスク容量には、限りがある。よって、記事は、あ る保存期間が過ぎると自動的に消されるようになっている。 これを、 エクスパイア(expire) するという。保存期間は、サーバによって異なるか、普通は2週間程 度である。

◆記事の形式

ネットワーク・ニュースの記事は、次のようなテキストです。


------------------------------------------------------------------------------
Newsgroups: fj.news.reader
From: shiro@is.tsukuba.ac.jp (Shiro Yagi)
Subject: E-Mail facility of news readers
Date: Thu, 20 Mar 1997 00:55:50 GMT
Organization: Institute of Information Sciences and Electronics, Univ of Tsukuba
Message-ID: <SHIRO.02Mar20005550@is.tsukuba.ac.jp>

こんにちは。白やぎです。

ニュース・リーダの電子メールも読み書き機能では、どれが便利一
番便利でしょうか。GNUS でも、メールが読めると聞いたのですけ
れど。

♪♪ 白やぎ
♪♪ http://www.is.tsukuba.ac.jp/~shiro/
------------------------------------------------------------

ネットワーク・ニュースの記事の構造は、 電子メールと共通である。 電子メールもネットワーク・ニュースの記事も、空行で ヘッダ(header、頭) と 本文(body) にわかれる。

電子メールと共通のフィールド:

ネットワーク・ニュースに独自のフィールドで、特に重要なもの

◆ニュース・グループの木構造

記事は、 ニュース・グループ(newsgroup) と呼ばれる仕組みを使って分類されている。世界中で1日に投稿される記事 は、数百万にもなる。それらの記事を全部読むことはできない。 ニュース・グループという仕組みを利用して記事を分類し、各自が興味を持っ ている記事を簡単に見つけられるようにしている。 それぞれの記事のヘッダのNewsgroups: フィールドには、その記事がど のニュース・グループに属しているかが書かれている。

ニュース・グループには、次のように、「.」で区切られたアルファベット や数字などで名前が付けられている。

fj.rec.music
日本関係のニュース・グループ群 fj (From Japan)で、レクリエーション (recreation)関係で、音楽に関する記事を集めるためのニュース・グループ
fj.comp.lang.c
日本関係のニュース・グループ群 fj (From Japan)で、コンピュー タ関係で、言語関係で、C言語についての記事を集めるためのニュー ス・グループ

ニュース・グループの名前は、英語で、かつ長いものは省略形で 付けられてる。

ニュース・グループの名前は、全体として、 木構造(tree structure) になっています。木構造が使われている理由は、 ファイルの名前付けや DNS (Domain Name System) と同様に、非常に多くのニュース・グループを扱えることによる。

ニュース・リーダの中でも、mnews や vin は、ユーザがニュー ス・グループの木構造にそってニュース・グループを選んでいくことになる。 ニュース・リーダによっては、ユーザは、木構造をあまり意識せず、自分が 興味があるグループを自分が好きな順序で選んでいくことができるようになっている。

1つの記事は、普通、1つのニュース・グループにだけ現われる。記事を投 稿する時に、複数のニュース・グループに現われるようにすることを、 クロスポスト という。

よいニュース・リーダなら、クロスポストされた記事を見つけると、一度 だけユーザに提示し、別のニュース・グループでは既読として扱い、提示しな いという機能がある。クロスポストの機能を使わずに、同じ内容の記事を 複数のニュース・グループに別々に投稿することを マルチポスト という。マルチポストは、特別な場合を除いて、避けるべきである。い くら大事で有益な情報でも、何度も同じ記事を読むことを望む人はいない。

◆配布範囲

配布範囲 ( Distribution: とは、 普通、記事が配られる範囲を制限する(小さくする)機能である。 配布範囲の例としては、 学内、社内、市内などが考えられます。典型的な使い方は、 たとえば、fj などのもともと世界区のニュース・グループに、学内に限定し た話題を投稿する時に、配布範囲として「学内」を指定して投稿するというこ とである。

特別な配布範囲:

local
そのサーバ内。
world
そのニュース・グループを講読している全てのサーバ。

配布範囲の機能は、現在の所、あまりうまく活用されていない。 多くの場合は、空のままでよい。配布範囲が空の場合、 world という意味になる。

◆ニュース・リーダの操作

ニュース・リーダの操作には、次のようなものがあります。
  1. 記事を読む
  2. 記事を書く(ポストする、投稿する)
  3. ある記事に続けて記事を書く(フォローアップする)
  4. 電子メールで返事を出す
  5. 記事をキャンセルする
  6. 記事を保存する
  7. 環境を整える
記事を読むには、まず、ニュース・グループを選ぶことから始まる。 次に、Subject: や From: を見て、その記事を読むかどうかを 決める。

ニュース・グループの中には、自分には興味がないものもある。ニュース・ リーダには、そのようなニュース・グループを、表示しない機能がある。 このことを、ニュース・グループを購読しない状態にするとか、 アンサブスクライブ(unsubscribe) するという。多くのニュース・リーダは、新しいニュース・グループを 購読する状態 ( サブスクライブ(subscribe) された状態 ) にする。ユーザは、興味があればそのままの状態にしておき、興味がなけれ ば、アンサブスクライブする。

1つのニュース・グループでは、各記事には、サーバが受け取った順に付けら れた番号が付けられている。 記事番号 と呼ぶことがある。ニュース・リーダは、標準では、この記事番号の順番 に記事を提示する。Subject: や、 スレッド の順序で並べ変えて関連する話題を連続的に読めるように提示する機能がある ニュース・リーダもある。記事番号、ニュース・サーバごとに異なる。 記事を参照する時には、 Message_ID: を使う。

記事を書くには、記事の形式で説明 したようなテキストを作成し、サーバ・プロセスに渡すことになる。この 作業を、記事を投稿する、 あるいは、 ポストするという。

ネットワーク・ニュースの記事を投稿するのは、電子メールを出すことと非常 によく似ている。異なる点は、 電子メールの受取人の電子メールのアドレス(To:)の代わりに、ニュー ス・グループ名(Newsgroups:)を指定する所、および、 配布範囲 (Distribution:)を指定することである。

投稿された記事は、すぐには読めない。これは、効率のため、ある程度ため 込んでまとめて処理されるからである。うまく投稿されたかどうかを確認するに は、場合によっては10分〜15分ほど待つ必要がある。そして、1度 ニュース・リーダをを終了して、再び実行しなおすか、新着記事をチェックす る操作を行うと、見えるようになる。

ネットワーク・ニュースでは、記事を投稿する時に、他の人が書いた記事を引 用しつつ自分の意見を書き加える形で行なうことがよく行われる。この方法の 投稿ことを、 フォローアップ(followup) という。ネットワーク・ニュースの記事を読むと直ぐに気が付くように、 記事の大部分はフォローアップ記事である。どのニュース・リーダも、フォ ローアップ記事を簡単に投稿できるような機能を持っている。

記事をクロスポスト記事するには、 Newsgroups: ヘッダに、ニュース・グループを「,」で区切りながら並べる。 また、クロスポストする時には、同時に Followup-To: を付け、以後の議論が続けたいニュース・グループを指定することができる。 これが付いた記事にフォローアップしようとすると、ニュース・リーダは、こ こに指定されたニュース・グループをNewsgroups: に設定する。

ネットワーク・ニュースでは、フォローアップで話を進めていくことが基本だが、 記事を書いた人に電子メールを出して詳しい話を聞いたり、 詳しい情報提供をしたりすることも行われる。 このことを、電子メールと同様に、 リプライ(reply) するという。

電子メールと違って、ネットワーク・ニュースでは、一度投稿した記事を 取り消すことができる。これを、記事を キャンセル(cancel)、きゃんせる するという。キャンセルできるのは、自分が投稿した記事だけである。 普通のニュース・リーダなら、キャンセルする機能があります。

記事は、保存期間が終ると消えるので、ネットワーク・ニュースの記事で、有 益なものを見つけた時には、ファイルに保存する必要がある。ニュース・ リーダでは、記事を保存する機能がある。

◆サーバの選択

ニュース・リーダは、LAN上で動いているネットワーク・ニュースのサーバ を探して接続する。この時、どのサーバを使うかを指定する方法には、 ニュース・リーダの設定画面や プログラムを実行する時に与えるパラメタ (引数や環境変数 NNTPSERVER ) が使われる。ポー ト番号は、標準では 119 が使われるので、普通は、ホスト名だけを指定する。 ニュース・リーダの中には、119 以外のポート番号に接続できるものや、複数 のサーバに接続できるものもある。

◆記事ファイルを直接アクセスする

サーバ・プロセスが動いているホストでは、直接、サーバが管理しているファ イルを参照して、記事を読むこともできる。NNTP が普及する前は、この方 法が一般的であった。現在では、自宅のパソコンでオフラインでニュースを読む時 にこの方法が使われることがある。 この場合、次のようなファイルやディレクトリが重要になる。

activeファイル。
現在有効なニュース・グループの名前と記事の番号の範囲を保持したファ イル。/usr/local/news/etc/activeや/usr/lib/news/active という名前のファイルが使われることが多い。
スプール・ディレクトリ
記事本体を保持している場所。 /usr/local/news/spool/articles/や /var/spool/news/ という名前 がよく使われる。各記事は、このディレクトリ以下に、ニュース・グループ名 の「.」「/」に変えたディレクトリの下の 記事番号の名前のファイルに保存される。
)

■ネットワーク・ニュースに関する知っておきたいこと

◆ニュース・グループの紹介

◆トップ・ドメイン とAUP

「.」で区切られたニュース・グループの名前のうち、一番左のものを トップ・ドメイン(top domain) と呼ぶ。トップ・ドメインが同じニュース・グループは、普通、 配布範囲 AUP が共通である。 fj などの伝統的なニュース・グループは、AUP として「非営利目的の記事の み投稿してよい」という AUP を持っていることが多い。これは、企業か らの商品の広告や宣伝を禁じたものである。ただし、宣伝ではなければ、製品の 話をするのは、まったく問題がない。よい製品の評価が書かれた記事は、 歓迎される。

トップドメインの例:

サーバ限定

local
このニュース・サーバだけのグループ

地域関連(世界に配布されているものもある)

tsukuba
筑波地域のためのニュースグループ(主に日本語)
kyushu
九州地域のためのニュースグループ(主に日本語)
okinawa
沖縄関係のニュースグループ(主に日本語)
nara
奈良周辺地域のためのニュースグループ(主に日本語)

日本発世界行き

fj
From Japan 日本発世界行きのニュースグループ(主に日本語) [[[脚注]]]
japan
日本発世界行きのニュースグループ(主に日本語)
tnn
IIJの提供する主に国内向けのニュースグループ(主に日本語)

世界区

comp
コンピュータ関係のニュースグループ(英語)
news
net-newsのためのニュースグループ(英語)
sci
科学(science)関係のニュースグループ(英語)
soc
社会(social)関係のニュースグループ(英語)
rec
趣味(recreation)関係のニュースグループ(英語)
gnu
GNU(ぐにゅー)関係のニュースグループ(英語)

◆特殊な名前

ニュース・グループの名前には、普通の英単語が使われるが、 短縮形やニュース・グループ名に使われて特殊な意味を持つものがある。

comp
computerの省略形。
sys
systemの省略形。コンピュータの主にハードウェア。機種依存の話。
rec
recreationの省略形。レクレーションの意味。お楽しみ。
sci
scienceの省略形。科学。自然科学が多い。
soc
socialの省略形。社会科学。
lang
languageの省略形。言語。コンピュータ言語を意味することが多い。
engr
engineeringの省略形。工学。
mail-lists
mailing listsの省略形。メーリング・リストとネットワーク・ニュースが相互乗り入れしている。
misc
その他の意味。たとえば、fj.comp.lang には、fj.comp.lang.c,fj.comp.lang.java などあらかじめそれぞれの言語専用のニュース・グループ が作られてる。それ以外の言語に関しては、fj.comp.lang.miscを使う。
binaries
もともとは、2進数の意味するが、ネットワーク・ニュースでは「テキスト・ データではい」という意味を持つ。具体的には、機械語によるプログラムや画 像を意味する。
general
全ての人が読むことになっているニュース・グループ。新聞の1面に相当する。
annouce
重要な情報が流れる。generalとほぼ同じ意味。

◆ネットワーク・ニュースを楽しく有効に使うためのヒント

インターネットを利用する上での一般的な注意事項は、 ネチケット (original documents in English) にも記述されてる。 電子メールを有効に利用するための形式と内容に関するヒント も参考になる。 以下に、ネットワーク・ニュースを利用する時、特に記事を投稿する時に注 意すべき点を示す。

◆ニュース・グループの選択

投稿する時には、 適切なニュース・グループを探して選択する。 クロスポストする時には、 Followup-To: を付け、 以後の議論が続けたいニュース・グループを指定する。 マルチポストは、特別な場合を除いて、避けるべきである。い くら大事で有益な情報でも、何度も同じ記事を読むことを望む人はいない。

◆Subject: をきちんと書く

Subject: 、大勢の読み手にとって、あなたの記事を読むか読まないかを決め る大事なキーワードになる。記事を投稿する時には、内容を連想できるような よい Subject: を付ける。「質問」とか「教えて」というのは、多くの場合、 適切ではない。その理由は、ネットワーク・ニュースの記事の応酬は、最初は、 質問から始まるからである。

◆署名は短く

署名は、簡潔で短いものが好まれている。「JUNETの手引き第1版」で既に 現われている目安としては、「4行以内」というものがある。

◆引用は簡潔に

フォローアップやリプライをする時には、ニュース・リーダは、たいてい元記 事の内容がすべて引用された状態を作り出す。この場合、必要な部分だけ を引用し、かつ、引用した部分より、自分が書いた行の方が多くなるようにする。

◆キャンセル機能には限界がある

たとえ記事をキャンセルしたとしても、即座に記事が消えるのは、自分が使っ ているサーバだけである。世界中のサーバで記事が消えるのには、普通の記事の 配送と同じように、時間がかかる。というのも、記事のキャンセルも コントロール・メッセージ と呼ばれる特殊な記事を配送することで行なわれているからである。コントロー ル・メッセージの記事が落ちると、その範囲では記事はキャンセルされずに残 ることになる。また、キャンセルする前に誰かがフォローアップ記事を投 稿している可能性もある。記事のキャンセルをする時(本当は記事を投稿す る時)には、このような仕組みを理解してから行う。

◆フォローアップかリプライか

フォローアップ記事を投稿するか、電子メールでリプライするかは、内容による。 普通は、フォローアップ記事を投稿することが好まれる。あなたの 返事や、その返事に対する相手からの返事が、あなた以外にも役に立つことで あれば、電子メールでリプライするのではなく、フォローアップ記事にすべき である。ネットワーク・ニュースは、大勢の人が読んでいるので、多数の電子メー ルによる返事が元記事を投稿した人の所に来る可能性がある。そうなると 元記事を投稿した人は、同じ内容の返事を何通も書かないといけなくなるかも しれない。また、元記事を投稿した人よりも他の人の方がもっとよい答えを 持っていることも多い。

◆電子メールをネットワーク・ニュース投稿する前には許可をもらう

電子メールは、紙の手紙と同じように、私信として扱うということになっている。 私信なので、基本的には、個人と個人の間での秘密のものである。他人 に見せる時には、紙の手紙を他人に見せるのと同じ程度の注意が必要である。ネッ トワーク・ニュースに投稿する時には、事前に書いた人の了解を得るべきである。

◆お礼よりも要約や他の場所での貢献

ネットワーク・ニュースは、Give & Take の精神で成り立って いる。お礼を言うのも大切だが、そりよりも、何か教えてもらったら、次 に同じ話題や自分の得意分野で困っている人を助けてあげることがより大切になる。 お礼だけの記事を読みたい人は、いない。たくさんのフォローアップがあり、 有益な情報が得られた時や、電子メールで送られてきた時には、要約を投稿す ると喜ばれる。

◆静かな大勢の読者を意識する

フォローアップ記事の場合、形式上は返事を書くようにして記事を書くが、 これは、形式上の話である。元の記事を書いた人だけではなく他にも大勢の人が 読んでいることを忘れてはならない。

揚げ足とりや相手をやり込めるためだけの記事の投稿は、誰の利益にもならない。 投稿した本人の評判も下がり、かつ、大勢の読者の貴重な時間が失 われることになるからである。

◆記事の責任は投稿者にある

ネットワーク・ニュースに出す記事の責任は、投稿者にある。ニュース・ システムの管理者や投稿者が属している組織には関係ない。どんな発言 をするのも自由であるが、この自由は、結果の責任をとることができる人が享受 すべき自由である。

◆平等な社会

ネットワーク・ニュースの前では、学生も教官も平社員も社長も皆平等になる。 この性質をうまく利用して議論を楽しむことが大切である。一部の 掲示板で見られるような、メッセージの削除の権限をもつような議長はいない。

ネットワーク・ニュースでは、ニュース・グループのリストを管理するために 管理人を置いている場合が多い。その場合でも、管理人は、リストの維持 という点では特別な仕事をしているが、普段の活動では、まったく の普通の参加者と平等な立場にある。

◆お互いの人格・意見の尊重

ネットワーク・ニュースでは、意見がぶつかり合う所が面白い。 この時、お互いの意見を尊重することを忘れてはならない。説得や教育は、 ネットワーク・ニュースでは、なかなかうまくいいかない。議論の相手の 親でも教師でもない場合は、最終的には、どうすることもできないと思ってよい。

ある時期、記事の内容ではなくて、漢字変換のミス、言葉遣いの間違いなど表 面的なことだけを指摘して、元々の記事の内容につしては何もかかないという ような記事を投稿することが流行した。こういう方法は、ネットワーク・ ニュースのためのソフトウェアの開発の局面や、参加者が少ないうちには有効 だったのかもしれない。しかし今日のように、ネットワーク・ニュースの参 加者が増え、何万人という読者がいるという状況では、もはや有効な方法では なくなっている。にもかかわらず、続けているのは、個人の趣味である。他人 の趣味は尊重するのがネットワーク・ニュースですが、 この講義の受講者には、真似をしてほしくない趣味である。

◆ポジティブ・フィードバック

ネットワーク・ニュースでは、フォローアップがフォローアップを呼んでその 話題が増えていく。投稿される記事を内容を自分が望む方向に進めるため には、この性質をうまく使うとよい。すなわち、自分でも読みたい ような記事を投稿すればよい。また、投稿してほしくないような記事を 見たら、「そんな記事を投稿するな」と投稿するよりも、無視する 方が効果的である。

◆ネットワーク・ニュースの記事のヘッダのまとめ

ネットワーク・ニュースの記事の構造は、 電子メールと共通になっている。 電子メールもネットワーク・ニュースの記事も、空行で ヘッダ(header、頭) と 本文(body) にわかれる。

電子メールと共通のヘッダ

From:
その記事を書いた人( 差出人 )の電子メールのアドレス。
Reply-To:
返事を出す時に使われるアドレス。電子メールを読むプログラムには、 返事を出す機能がある。その時、普通は、From: に書かれているア ドレスが使われる、Reply-To: がある場合には、それが優先される。
Subject:
サブジェクト。 記事の題名(題目、表題)。
Date:
記事が投稿された日付と時刻。
Message-ID:
メッセージ識別子 (メッセージID、Message-ID, Message identifier)。これは、その 記事に対して世界中で重複がないように付けられた名前。 ニュースグループに固有のヘッダ
Newsgroups:
その記事が属するニュース・グループの名前。
Followup-To:
その記事にフォローアップ記事を投稿する時に推奨される ニュース・グループの名前。
Distribution:
その記事の配布範囲。省略さた場合は、そのニュース・グループを購読している全サーバを意味します。
Organization:
その記事を書いた人が所属している組織。
References:
その記事を書く時に参考にした記事の Message_ID: のリスト。
Path:
その記事が通ってきたニュース・サーバの名前のリスト。
Expires:
保存期間のヒント。
Control:
コントロール・メッセージの印。
Approved:
議長付きのニュース・グループで議長の承認を得た印。
ネットワーク・ニュースには、To: がない。その変わりに Newsgroups: がある。

◆スレッド

フォローアップ記事には、電子メールの返信と同様に、Subject: に Re:がつく。ネットワーク・ニュースの記事の場合、さら に、References: ヘッダに、元になった記事の履歴が残されている。 この履歴にそって記事を結んでいる線を スレッド(thread) という。ニュース・リーダの中には、1つのニュース・グループをスレッ ドに添って記事を追いかけて読むことが簡単にできるように、記事を並べ変え る(ソートする)機能を持っているものがある。

◆フィルタリング、kill file

ニュース・グループや Subject: や From: は、読むべき記事を 選ぶために非常に重要な要素である。この時、ニュース・リーダが自動的に興味 がない記事を消してくれたら便利である。このような機能を kill file という。この機能を持つニュース・リーダは、kill file にかかれたパタンにマッ チした記事を、自動的に既読として扱い、他の既読記事と同様に標準ではユー ザに提示しなくなる。

一般に、興味がある記事を興味がない記事を自動的に分類する機能を フィルタリングという。最近では、kill file の他に、優先度を付けたり、 NoCeM などを使って spam記事 を自動的に見えないようにする機能をもっているニュー ス・リーダもあります。

◆議長付きのニュース・グループ(moderated)

ニュース・グループには普通のもの( unmoderated )と 議長付き のもの( moderated )がある。 記事を読む時には、両者に違いはないが、記事を投稿する時に違いがある。 議長付きのものは、投稿去れた記事は、いったん電子メールで議長 に送られる。議長が認めたものは、議長により投稿される。この時、議長 の電子メール・アドレスがApproved: ヘッダに付けられる。

◆rot13とrot47

ネットワーク・ニュースの記事として、たとえば、ネタばらしのような内容を 投稿する時、 rot13 という暗号を使うことがある。 これは、暗号化も復号化も、アルファベット26文字を13個文字分ずらす (rotate)という簡単な暗号法です。rot13 の考え方を日本語の漢字に拡張したものが rot47 である。

ニュース・リーダには、最初から rot13, rot47 に対応しているものがある。 対応していないニュース・リーダの場合は、 nkf コマンド(サーバで動くプログラム)を使って 暗号化/復号化を行なう。次のように


nkf -r
-r オプションを付けると、標準入力を ASCII は、rot13、漢 字は、rot47 で変換して、標準出力に出する。(サーバで動作する)ニュース・リーダからこの機 能を使うには、ファイルに保存してから行なうか、パイプに対する出力機能を 利用する。

◆~/.newsrc

(Unixサーバで動作する)ニュース・リーダには、一度読んだ記事を記録して、次に実行された時にはそ れをスキップする機能がある。この時に使われるファイルが ~/.newsrc である。これは、次のような形式のテキストである。

----------------------------------------------------------------------
news.group.name1: 1-5368
news.group.name2: 1-2978,3159
news.group.name3!
----------------------------------------------------------------------
このように、1つのニュース・グループの未読と既読の情報が1行で表現されている。 ニュース・グループの名前にコロン:が付いている ものは、サブスクライブされたものである。その後ろには、読んだ記事の番号の リストが続く。たとえば、1-5368 は、記事番号1から5368 までを読んだことを意味する。連続していない時には、コンマ ,で区切られる。 (Unixサーバで動作する)多くのニュース・リーダで共通の形式を使っているの で、複数のニュース・リーダを使い分けることもできる。

~/.newsrc には、もう1つ、それぞれのニュース・グループを購読 しているかどうかを記録する機能もある。上の例では、ニュース・グルー プの名前に!が付いているものが、アンサブスクライブされた ものである。

ニュース・リーダによっては、ユーザに、~/.newsrc の順にニュー ス・グループを提示するものがある。このときには、時々このファイルを sort コマンドでソートしたり、エディタで修正するとよい。

複数のサーバに接続してネットワーク・ニュースを読む場合、 ~/.newsrc をサーバごとに用意する必要がある。というのも、 ここに記録される記事番号は、サーバによった異なるからである。この場合、環 境変数 NEWSRC を工夫して切り替えるか、ニュース・リーダ の実行時のオプションで切り替える。ニュース・リーダの中(mnewsやGNUS)は、次のよう なファイル名をまず探すものがある。

~/.newsrc-hostname
hostname は、サーバが動いているホスト名である。

◆コントロール・メッセージ

ネットワーク・ニュースでは、新たにニュース・グループが作られたり 削除される。この情報を伝えるために、 コントロール・メッセージ(control message) という仕掛けが使われる。コントロール・メッセージは、Control: というヘッダが付いた記事で、普通の記事と同じようにサーバ間を伝わってい く。コントロール・メッセージを受け取ったサーバは、隣のサーバにコピー するだけでなく、定められた機能を実行する。記事のキャンセルにもコント ロール・メッセージが使われている。

◆spamに関する議論

ネットワーク・ニュースは、誰でも記事が出せるという今までのマスメディア にはない性質がある。これは、マスメディアには載らないような個人の意 見を発表する場として利用するには重要な性質だが、この性質を悪用して、 AUP を無視して、多くの参加者に望まれていない商業目的の宣伝を繰り返す会社が 現れ、ネットワーク・ニュース社会の問題になっている。同一内容の記 事を、非常に多くのニュース・グループにマルチポストすることを EMP(Excessive Multi-Post)、 クロスポストすることを ECP(Excessive Cross-Posit)、 そのような形態で投稿された迷惑な記事を spam記事 という。

Spam記事の取り扱いは、ネットワーク・ニュースで非常に大きな問題になっている。 第三者がある基準を設けてspamキャンセルすべきだと主張し、実行し ている人もいれば、第三者によるキャンセルはいかなる場合もやってはならな いとして、個人ごとやサーバごとに対処すべきだとしている人もいる。 たとえば、NoCeM という機能を使えば、ネット ワーク・ニュースに投稿されたspam記事のリストを既読にしてしまうことができる。

◆匿名による投稿

匿名による投稿も、問題になっている。ネットワーク・ニュースでは、伝統的に記事 に個人の本名を出すことで、個人の責任を明確にするという習慣がある。 一方で、匿名による新聞の投書と同様に、匿名が必要な局面もある。それ を援助する目的で、匿名による投稿を許しているサーバがある。しかし、 その目的を理解せず、乱用している人もいて、問題になっている。

◆NNTP による記事のアクセス

NNTP(Network News Transfer Protocol) とは、ネットワーク・ニュースの記 事の転送や、記事の読み書きを行うためのプロトコルである。mnews や GNUS などのネットワーク・ニュースを読み書きするソフトウェアは、クライアント として NNTP サーバとの間に TCP/IP による通信路を開設する。そして、クラ イアントは、記事を要求する文字列や、ニュース・グループの一覧を要求する コマンドをサーバに送る。これに対してサーバは、要求された記事やニュース・ グループの一覧をクライアントに返す。表1に、クライアントからサーバへ送 られるNNTPのコマンド、表2に、サーバからクライアントへ返される応答を示 す。

表1 NNTPのコマンド

--------------------------------------------------------------------
GROUP	ニュース・グループ名
	ニュース・グループを選択する。結果として、記事の数、記事の番号
	の上限と下限が返される。

ARTICLE 記事番号
	その記事の内容を得る。ニュース・グループが選択されている状態の
	時に使える。

ARTICLE 
	メッセージIDの記事の内容を得る。
HELP
	ヘルプ・メッセージの表示
QUIT
	終了
POST
	記事を投稿する。
--------------------------------------------------------------------

表2 NNTPの応答

--------------------------------------------------------------------
応答コード	説明
--------------------------------------------------------------------
100		ヘルプのテキストが続く。
200		要求受け付け可能である(投稿可)。
201		要求受け付け可能である(投稿不可)。 
205		通信路を切断する。
211		ニュース・グループが選ばれた。
		記事の数、記事番号の上限、下限、ニュース・グループ名。
400		サービスを中断する。
411		そのようなニュース・グループがない。
421		もうそのニュース・グループには次の記事がない。
500		コマンドが認識できなった。
501		コマンドの文法に誤りがあった。
502		アクセスが制限されている。
--------------------------------------------------------------------

以下に、telnet コマンドを利用して、NNTP サーバに接続した様子を示す。

----------------------------------------------------------------------
% telnet newshost nntp [←]
Trying XXX.YYY.ZZZ.UUU ...
Connected to newshost.
Escape character is '^]'.
200 newshost InterNetNews NNRP server INN 2.3.1 ready (posting ok).
help[←]
100 This server accepts the following commands:
ARTICLE     BODY         GROUP
HEAD        LAST         LIST
NEXT        POST         QUIT
STAT        NEWGROUPS    HELP
IHAVE       NEWNEWS      SLAVE

Additionally, the following extention is supported:

XHDR        Retrieve a single header line from a range of articles.
XHIST       Retrieve history file.
XMIME       Control MIME  article handling.

Bugs to Stan Barber (Internet: nntp@tmc.edu; UUCP: ...!bcm!nntp)
.
quit[←]
205 newshost closing connection.  Goodbye.
Connection closed by foreign host.
% []
----------------------------------------------------------------------
ここで、強調で示した部分が、キーボードからのタイプである。 この例では、ホスト newshost のポート番号119(nntp)のポートに、 TCP/IPにより接続を試みている。2行目から4行目は、telnet コマンドによる 定型的な表示である。通信路が開設されると、サーバは、 "200" という応答を返している。これは、NNTP で定義されて いる応答であり、サーバが、要求を受け付け可能であり、かつ、要求としては 投稿要求(POST)も受け付けることを意味している。"200" 以 降の文字列は、コメントである。

第6行では、"help" というコマンドをサーバに送っ ている。これに対して、サーバは、"100" という応答に続けて、 受け付け可能なコマンドなど、簡単な使い方を返している。23行目に "." からなる行がある。これが、1つのコマンドに対する応答 の終りを示している。

次に、24行において、"quit" というコマンドをサーバに送っている。これに たいして、サーバは、205 という応答を返し、続いて TCP/IP の通信路を切断 している。26行目は、telnet コマンドが生成したメッセージである。

■ニュース・リーダ

◆Netscape Messenger

Windows, Linux, MacOS, その他で動作する。 初期設定が必要。

◆Outlook Express

Windows で動作する。 初期設定が必要。

◆mnews

Unix サーバで動作する。

mnews は、ユーザがニュース・グループの木構造にそってニュース・グ ループを選んでいくタイプのニュース・リーダである。 mnews では、ネットワーク・ニュースだけでなく、電子メールを読み 書きすることもできる。mnews を電子メールの読み書きだけに使っ ている人もいる。

mnews を使うには、まず、Telnet (TeraTerm) でサーバに接続する。 次に、「icho% 」に対して、「mnews [←]」と打つ。 mnews を終了するには、何度か「q」キーを押す。

詳しい使い方:

■実習

◆ニュース・リーダの設定

ニュース・リーダを設定して、ネットワーク・ニュースの記事を読みなさい。

◆ニュースグループの調査

自分が興味があるニュース・グループを探しなさい。

◆記事の保存

読んだ記事の中で、面白い記事、または、将来役立ちそうな記事を保存しなさい。

◆課題6:記事の保存と批評

保存した記事、および、その記事に対する批評(よい所、悪い所、賛成できる 所、反対な所)を、電子メールで新城に送りなさい。電子メールの宛先と題名 は、次のようにすること。

To: yas@is.tsukuba.ac.jp
Subject: [ipe-inet] Report6: Netnews article

締め切りは、2003年2月28日金曜日とする。

注意:記事を投稿する必要はない。

◆NNTP によるニュース・サーバへのアクセス

telnet コマンドを使って、NNTP サーバ NNTP_SERVER_HOST() にアクセスし、 ネットワーク・ニュースの記事を画面に表示させなさい。その記事のニュース・ グループ、ニュース・グループ内の番号、記事の先頭の20行程度を報告書に添 付しなさい。このとき、 表1に示したコマンド、GROUP と ARTICLE を使うと よい。

注意すべきこととして、GROUP コマンドでは、ニュース・グループ名を一度に 与えることがあげられる。たとえば、comp.sys.mac というニュース・グルー プならば、次のように、一度に全部のニュース・グループ名を与える。

GROUP comp.lang.ruby
次のように、部分的に与えることはできない。
GROUP comp
GROUP lang
GROUP ruby
vin や mnews では、ニュース・グループを階層構造を持つものとして利用者 に提示している。しかしながら、NNTP のレベルにおいては、そのような階層 構造は存在しない。

その他の NNTP のコマンドを使ってみなさい。NNTP の定義は、 RFC977 という ドキュメントにある。


↑[もどる] ←[2月14日] ・[2月21日]
Last updated: Date:
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>