ニュース・システム

 並行分散ソフトウェア/並列分散ソフトウェア

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

このページは、次の URL にあります。
http://www.cs.tsukuba.ac.jp/~yas/sie/pdsoft-2005/2006-01-13 /news-system.html
あるいは、次のページから手繰っていくこともできます。
http://www.cs.tsukuba.ac.jp/~yas/sie/
http://www.cs.tsukuba.ac.jp/~yas/

■ニュース・システムの仕組み

◆ネットワーク・ニュース

編集でカットされない、誰でもメッセージを発信できるという意味では、n対 nの通信。

◆ニュースシステムの設計目標

P2P (Peer to Peer) で、成功している例。

◆ニュースの記事の形式

Path: orchid-news.coins.tsukuba.ac.jp!gama.is.tsukuba.ac.jp!nadesico.cc.tsukuba.ac.jp!news-sv.sinet!news.ecc.u-tokyo.ac.jp!not-for-mail
From: committee@fj-news.org
Newsgroups: fj.news.lists,fj.news.group,fj.archives.documents
Subject: Active Newsgroups List of fj (2005/1/20)
Followup-To: fj.news.group
Date: 20 Jan 2005 14:12:06 +0900
Organization: fj Newsgroups Management Committee
Lines: 1105
Sender: kuno@ux101.ecc.u-tokyo.ac.jp
Approved: committee@fj-news.org
Message-ID: <active-newsgroups.part1.20050120@fj-news.org>
Reply-To: committee@fj-news.org
NNTP-Posting-Host: ux101.ecc.u-tokyo.ac.jp
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-2022-jp
X-Trace: news.ecc.u-tokyo.ac.jp 1106197659 22382 133.11.50.145 (20 Jan 2005 05:07:39 GMT)
X-Complaints-To: usenet@news.ecc.u-tokyo.ac.jp
NNTP-Posting-Date: Thu, 20 Jan 2005 05:07:39 +0000 (UTC)
User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50
Xref: orchid-news.coins.tsukuba.ac.jp fj.news.lists:1093 fj.news.group:583 fj.archives.documents:183


Archive-name: fj-news/active-newsgroups/part1
Original-author: saitoh@ics.es.osaka-u.ac.jp (SAITOH akinori)
Last-change: 2004/11/09 by miya@fairyring.org

fjのニュースグループの一覧とその解説

・現在 fj にあるニュースグループ 411 個の名前と説明文です。

・この文書は「JUNET利用の手引 (第1版)」に由来するもので、
  現在はfjニュースグループ管理委員会(committee@fj-news.org)が
  維持管理を担当しています。

  出所 (題名と日付) を明示する限りにおいて、引用、転載、複製等は、
  著作者等に断りなしに、自由におこなって構いません。
  文書の一部を他の著作物に流用する等の利用は、完全に自由とします。
・・・

◆記事のヘッダ

Newsgroups:
ニュース・グループ
From:
差出人の電子メールアドレス
Subject:
記事の題名(題目、表題)。
Date:
記事が書かれた日付
Message-ID:
メッセージ識別子。その記事に対して世界中で重複がないように付けられた文字
Path:
記事が通過したサーバ。

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

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

サーバ NNTP

◆NNTP

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

表4 NNTPのコマンド

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

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

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

表5 NNTPの応答

--------------------------------------------------------------------
応答コード	説明
--------------------------------------------------------------------
100		ヘルプのテキストが続く。
200		要求受け付け可能である(投稿可)。
201		要求受け付け可能である(投稿不可)。 
205		通信路を切断する。
211		ニュース・グループが選ばれた。
		記事の数、記事番号の上限、下限、ニュース・グループ名。
235		記事の転送は成功した。
335		記事を送れ。最後は、CR-LF . CR-LF 。
400		サービスを中断する。
411		そのようなニュース・グループがない。
421		もうそのニュース・グループには次の記事がない。
435		その記事は欲しくない。(もう既に受け取っている)
436		転送に失敗した。後でもう一度転送しB$iて欲しい。
437		転送に失敗した。もう転送するな。
500		コマンドが認識できなった。
501		コマンドの文法に誤りがあった。
502		アクセスが制限されている。
--------------------------------------------------------------------

以下に、telnet コマンドを利用して、NNTP サーバに接続した様子を示す。 telnet $NNTPSERVER 119 group fj.news.lists article 423 quit
% telnet $NNTPSERVER 119 [←]
Trying 130.158.86.3...
Connected to orchid-c.coins.tsukuba.ac.jp.
Escape character is '^]'.
200 orchid-news.coins.tsukuba.ac.jp InterNetNews NNRP server INN 2.3.1 ready (po
sting ok).
group fj.news.lists[←]
211 5 1088 1095 fj.news.lists
article 1093[←]
220 1093 <active-newsgroups.part1.20050120@fj-news.org> article
Path: orchid-news.coins.tsukuba.ac.jp!gama.is.tsukuba.ac.jp!nadesico.cc.tsukuba.ac.jp!news-sv.sinet!news.ecc.u-tokyo.ac.jp!not-for-mail
From: committee@fj-news.org
Newsgroups: fj.news.lists,fj.news.group,fj.archives.documents
Subject: Active Newsgroups List of fj (2005/1/20)
Followup-To: fj.news.group
Date: 20 Jan 2005 14:12:06 +0900
Organization: fj Newsgroups Management Committee
Lines: 1105
Sender: kuno@ux101.ecc.u-tokyo.ac.jp
Approved: committee@fj-news.org
Message-ID: <active-newsgroups.part1.20050120@fj-news.org>
Reply-To: committee@fj-news.org
NNTP-Posting-Host: ux101.ecc.u-tokyo.ac.jp
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-2022-jp
X-Trace: news.ecc.u-tokyo.ac.jp 1106197659 22382 133.11.50.145 (20 Jan 2005 05:07:39 GMT)
X-Complaints-To: usenet@news.ecc.u-tokyo.ac.jp
NNTP-Posting-Date: Thu, 20 Jan 2005 05:07:39 +0000 (UTC)
User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50
Xref: orchid-news.coins.tsukuba.ac.jp fj.news.lists:1093 fj.news.group:583 fj.archives.documents:183
<中略>
.
quit[←]
205 .
Connection closed by foreign host.
% []
ここで、強調で示した部分が、キーボードからのタイプである。 この例では、ホスト $NNTPSERVER のポート番号119(nntp)のポート に、TCP/IPにより接続を試みている。続く3行は、telnet コマンドによる定 型的な表示である。通信路が開設されると、サーバは、"200" という応答を返している。これは、NNTP で定義されている応答であり、サー バが、要求を受け付け可能であり、かつ、要求としては投稿要求(POST)も受 け付けることを意味している。"200" 以降の文字列は、コメン トである。

接続されると、"group" というコマンドをサーバに送っ ている。これに対して、サーバは、"211" という応答に続けて、 記事の数、記事番号の上限、下限、ニュース・グループ名を送っている。

次に "article" コマンドを送っている。これによ り記事が転送されている。記事の最後には、"." からなる行が ある。これが、articleコマンドに対する応答の終 りを示している。

最後に "quit" というコマンドをサーバに送ってい る。これにたいして、サーバは、205 という応答を返し、続いて TCP/IP の通 信路を切断している。その下の Connection closed... は telnet コマンドが生成したメッセージである。

参考

NNTP は、現在改定作業中。 http://www.ietf.org/ids.by.wg/nntpext.html

◆INN newsfeed

ME:!*/!local::
orchid-news.coins.tsukuba.ac.jp/orchid-news.coins.tsukuba.ac.jp:campus.*,coins.*,comp.*,denjo.*,fj.*,gnu.*,news.*,okinawa.*,tnn.*,tsukuba.*:Tm:innfeed!
news.ie.u-ryukyu.ac.jp/ie.u-ryukyu.ac.jp:fj.*,okinawa.*:Tm:innfeed!
nadesico.cc.tsukuba.ac.jp/nadesico.cc.tsukuba.ac.jp:comp.*,sci.*,rec.*,news.*,soc.*,talk.*,misc.*,fj.*,gnu.*,tsukuba.*,campus.*,tnn.*:Tm:innfeed!
news.esys.tsukuba.ac.jp/news.esys.tsukuba.ac.jp:coins.*,tsukuba.*:Tm:innfeed!
keknews.kek.jp/keknews:tsukuba.*:Tm:innfeed!
転送の様子
maple% telnet gama.is.tsukuba.ac.jp nntp[←]
Trying 130.158.80.241 ...
Connected to gama.is.tsukuba.ac.jp.
Escape character is '^]'.
200 gama.is.tsukuba.ac.jp InterNetNews server INN 1.5.1sec2 25-Jul-1997 ready
IHAVE  <YAS.98Feb2175819@is.tsukuba.ac.jp>
335
Newsgroups: denjo.test[←]
Path: is.tsukuba.ac.jp!gama.is.tsukuba.ac.jp!is.tsukuba.ac.jp!yas[←]
From: yas@is.tsukuba.ac.jp (Yasushi Shinjo)[←]
Subject: from maple[←]
Date: Mon, 2 Feb 1998 08:58:17 GMT[←]
Nntp-Posting-Host: hlla-gw[←]
Organization: Institute of Information Sciences and Electronics, University of[←]
Tsukuba[←]
Sender: news@is.tsukuba.ac.jp (News Manager)[←]
Message-ID: <YAS.98Feb2175819@is.tsukuba.ac.jp>[←]
Lines: 2[←]
[←]
fake Path: gama.is.tsukuba.ac.jp!is.tsukuba.ac.jp!yas[←]
1998/02/02 17:58:13[←]
.[←]
235
QUIT[←]
205 .
Connection closed by foreign host.
maple% []

◆故障への対応

サーバやネットワークが落ちることがある。 核攻撃が無くても落ちる。

冗長リンクを持つと、同じ記事が複数の隣接するサーバから送られて来る。

◆冗長のリンク

図? 冗長リンクを含むニュースの配送

図? 冗長リンクを含むニュースの配送

◆記事の重複への対応(1)

履歴を利用する。
#gama[lib-news] 113# tail history
<19980131213101.QAA14061@ladder03.news.aol.com> 886406952~-~886282319   rec.collecting.sport.hockey/46595
<8E8622E.0015000738.uuout@venture.fipnet.fi>    886406953~-~886231080   comp.sys.ibm.pc.demos/3590
<34D57354.592B@pp.kolumbus.fi>  886406953~-~886403924   comp.sys.ibm.pc.games.action/24913
   886406953~-~886282077   control/403867
<01bd2b53$921e9680$LocalHost@santotan>  886406953~-~886282077
<6b3s6k$85k$1@talia.mad.ibernet.es>     886406953~-~886403962   comp.sys.ibm.pc.games.flight-sim/52150
<34cd5ecb.20149236@nntp.best.com>       886406953~-~885929344   rec.arts.sf.tv.babylon5.moderated/10108
<34d4eeb3.2546651@news.txdirect.net>    886406953~-~886370114   rec.backcountry/9841
  886406954~-~885923414   misc.fitness.weights/21696
<6b3s8r$dp0@sjx-ixn5.ix.netcom.com>     886406954~-~886404085   comp.sys.ibm.pc.games.flight-sim/52151
#gama[lib-news] 114# ls -l history*
-rw-rw-r--   1 news     110490739 Feb  2 17:09 history
-rw-rw-r--   1 news          122 Feb  2 17:14 history.dir
-rw-rw-r--   1 news      8294372 Feb  2 17:09 history.pag
#gama[lib-news] 115#
同じ記事を送ろうとしたとき。
maple% telnet gama.is.tsukuba.ac.jp nntp[←]
Trying 130.158.80.241 ...
Connected to gama.is.tsukuba.ac.jp.
Escape character is '^]'.
200 gama.is.tsukuba.ac.jp InterNetNews server INN 1.5.1sec2 25-Jul-1997 ready
Trying 130.158.80.241 ...
Connected to gama.is.tsukuba.ac.jp.
Escape character is '^]'.
200 gama.is.tsukuba.ac.jp InterNetNews server INN 1.5.1sec2 25-Jul-1997 ready
IHAVE  <YAS.98Feb2175819@is.tsukuba.ac.jp>
435 Duplicate
QUIT[←]
205 .
Connection closed by foreign host.
maple% []

◆記事の重複への対応(2)

Path: の利用 図? 冗長リンクを含むニュースの配送

Aで投稿された記事が、B,C,Dを通って E までやってきた時には、Path: には、通ってきたニュースのサイトの名前が入る。

Path: E!D!C!B!A!username
サイト E のサーバは、この記事は サイト A を通ったと判断し、その記事を サイト A には送らない。

実際の Path: の例。

Path: gama.is.tsukuba.ac.jp!is.tsukuba.ac.jp!hagi!chiba-ns!odins-suita!news.cs.ritsumei.ac.jp!nf2.spnet.ne.jp!nf1.spnet.ne.jp!news.hits.ad.jp!spinnews!spin-hsd0-tky!news-relay.jpn!hpujjpo!hpscit.sc.hp.com!sdd.hp.com!vixen.cso.uiuc.edu!logbridge.uoregon.edu!hammer.uoregon.edu!cs.uoregon.edu!news.nero.net!takikawm
From: fj-committee@cow.nara.sharp.co.jp
Newsgroups: fj.news.lists,fj.news.group,fj.archives.answers
Subject: Active Newsgroups List of fj (1998/1/15)
Date: 16 Jan 1998 01:18:53 GMT
Organization: Fj Newsgroups Management Committee
Lines: 1033
Message-ID: <fj.active.newsgroups.19980115@cow.nara.sharp.co.jp>
References: <fj.active.newsgroups.19971228@cow.nara.sharp.co.jp>

◆制御メッセージ(Control Message)

Path: gama.is.tsukuba.ac.jp!is.tsukuba.ac.jp!hagi!ume!igakukei!news.cs.ritsumei.ac.jp!kuis-news!kuee-news!tamaru-news!Q.T.Honey!news.hbl.or.jp!news.ksi.co.jp!spinosk!threeWeb-news!nf2.iij.ad.jp!nr0.iij.ad.jp!news.iij.ad.jp!newsgw.yokohama.tao.or.jp!news.yokohama.tao.or.jp!citron!miyano
From: fj-committee@cow.nara.sharp.co.jp
Newsgroups: fj.rec.trading-cards
Subject: cmsg newgroup fj.rec.trading-cards
Control: newgroup fj.rec.trading-cards
Date: 12 Jan 1998 23:53:28 GMT
Message-ID: <newgroup.fj.rec.trading-cards.19980113@cow.nara.sharp.co.jp>

For your newsgroups file:
fj.rec.trading-cards	Topics and discussions on trading-cards

◆よく使われるコントロール・メッセージ

--------------------------------------------------------------------
名前
--------------------------------------------------------------------
cancel <message-id>	記事のキャンセル
newgrop groupname [moderated]
			ニュース・グループの作成
rmgroup groupname	ニュース・グループの削除
checkgroups		activeファイルの確認
ihave	systemname	送りたい記事のリスト
sendme	systemname	送って欲しい記事のリスト
sendsys			sysファイルの転送要求
version			ニュース・システムのバージョンの転送
--------------------------------------------------------------------

◆問題点

ニュース・システムは、権限のない制御メッセージに弱かった。

◆ディジタル署名

送られてきたメッセージが送信者本人のものであることを識別・確認する。

◆ディジタル署名つきのコントロール・メッセージ

Path: bounce-back
From: committee@fj-news.org (Fj Newsgroups Management Committee)
Newsgroups: fj.comp.dev.pc-card
Subject: cmsg newgroup fj.comp.dev.pc-card
Control: newgroup fj.comp.dev.pc-card
Approved: yas@is.tsukuba.ac.jp
Message-ID: <newgroup.fj.comp.dev.pc-card.19990112@fj-news.org>
Date: Tue, 12 Jan 1999 07:12:37 -0000
Lines: 26
X-Info: ftp://ftp.isc.org/pub/pgpcontrol/README.html
	ftp://ftp.isc.org/pub/pgpcontrol/README
X-PGP-Sig: 2.6.3ia Subject,Control,Message-ID,Date,From,Sender
	iQCVAwUBNpr16hf4TH9gf12pAQHabwP/SLnIuV26QMrAB6EdSahCzHniDvlmwjWB
	EXbPine+y0zcoSWYtj0h1ZBuY9HTV8h/Y3WMGEbsZ7UTDrK8HKYh3agEB1ZRQEe8
	jY3Ya1WCTk8ht7WGqf6mfihJB9pyXy2tkTLjaJ3CwjyQ/OGx+Ogo+4kr1oZeJ/Vt
	pC9OH+/G0CI=
	=KxP+

For your newsgroups file:
fj.comp.dev.pc-card	Discussion on PC Card(JEIDA/PCMCIA Card).

◆まとめ

ニュース・システムに見られる分散システム構築の技術
↑[もどる] ←[12月22日] ・[1月13日] →[1月20日]
Last updated: 2006/01/13 02:02:55
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>