制御メッセージ//RFC 850

制御メッセージ (USENET)

[2] USENET制御メッセージ (control message) は、 ニュースグループ記事に関する制御命令を記述したメッセージです。

仕様書

動作 (verb)

  cancel	850	1036	son	usefor
  checkgroups		1036	son	usefor
  ihave 	850	1036	son	usefor
  mvgroup				usefor
  newgroup	850	1036	son	usefor
  rmgroup	850	1036	son	usefor
  sendme	850	1036	son	usefor
  sendsys	850	1036	son
  senduuname	850
  version	850	1036	son
  whogets			son

構文

BNF

RFC 850, RFC 1036, son-of-RFC1036, draft-usefor-article (06) から
  control-field = Control / obs-control-field
  Control = "Control:" FWS Control-content
  
  Control-content     = CONTROL-verb-arguments
  CONTROL-verb-arguments = CONTROL-newgroup / CONTROL-rmgroup
                      / CONTROL-mvgroup / CONTROL-checkgroup
                      / CONTROL-cancel / CONTROL-ihave
                      / CONTROL-sendme
                      / verb token	;; future extension
                      / obs-CONTROL-verb-arguments
  verb                = token
  arguments           = *(CFWS value) / obs-arguments
  
  CONTROL-newgroup    = "newgroup" newgroup-arguments
  newgroup-arguments  = CFWS newsgroup-name [CFWS newgroup-flag]
  newgroup-flag       = "moderated" / obs-newgroup-flag
  
  CONTROL-rmgroup     = "rmgroup" rmgroup-arguments
  rmgroup-arguments   = CFWS newsgroup-name
  
  CONTROL-mvgroup     = "mvgroup" mvgroup-arguments
  mvgroup-arguments   = CFWS newsgroup-name CFWS newsgroup-name
                             [CFWS newgroup-flag]
  
  CONTROL-checkgroup  = "checkgroups" checkgroup-arguments
  checkgroup-arguments= [chkscope] [chksernr]
  chkscope            = 1*(CFWS ["!"] newsgroup-name)
  chksernr            = CFWS "#" 1*DIGIT
  
  CONTROL-cancel      = "cancel" cancel-arguments
  cancel-arguments    = CFWS msg-id / obs-cancel-arguments
  
  CONTROL-ihave       = "ihave" ihave-arguments
  CONTROL-sendme      = "sendme" ihave-arguments
  ihave-arguments     = CFWS *(msg-id SP) relayer-name
                      / obs-ihave-arguments
  relayer-name        = path-identity
  ihave-body          = *(msg-id CRLF)
  
  obs-control-field   = Also-Control
  Also-Control        = "Also-Control:" FWS Control-content
                        	;; son-of-RFC1036
  Subject-content    /= obs-Subject-control
  obs-Subject-control = "cmsg" FWS Control-content
  obs-CONTROL-verb-arguments = CONTROL-sendsys	;; son-of-RFC1036
                      / CONTROL-whogets / CONTROL-version
                      / CONTROL-senduuname	;; RFC 850
  obs-arguments       = *(WSP 1*(%x21-7E))	;; son-of-RFC1036
  obs-newgroup-flag   = "y" / "m"	;; See usefor-article 7.2.1 NOTE
                      / "unmoderated"	;; son-of-RFC1036
  obs-cancel-arguments= WSP msg-id *(WSP msg-id)	;; son-of-RFC1036
  obs-ihave-arguments = WSP *(msg-id WSP)	;; son-of-RFC1036
  
  CONTROL-sendsys     = "sendsys" sendsys-arguments
  sendsys-arguments   = [CFWS relayer-name ]
  
  CONTROL-version     = "version"
  
  CONTROL-whogets     = "whogets" whogets-arguments
  whogets-arguments   = newsgroup-name [WSP relayer-name]
  
  CONTROL-senduuname  = "senduuname"

(ここまで)

制御メッセージに使う領域

Control:領域。通常はここを使います。この領域があると、 記事全体が制御メッセージ関連の内容のみと見なされます。 RFC 850, RFC 1036, son-of-RFC1036, draft-usefor-article。

Also-Control:領域。 son-of-RFC1036 が定義していましたが、 draft-usefor-article が廃止しています。この領域は Control: 領域とは 異なり、メッセージそのものは通常の記事と同様に扱われます。

Supersedes:領域は、Also-Control:領域から cancel だけを 取り出したようなもので、 (歴史的にはこちらが元祖のようですが、) 指定した記事の更新版となります。 See also Article-Updates:領域, Obsoletes:領域

Subject:領域は、かつて「cmsg」から始まる場合に、 続く内容がControl:領域同様に解釈されました。

Newsgroups:領域は、新聞組名の最後に「.ctl」をつけることで、 制御メッセージと見なしていた時代がありました。

関連

歴史

RFC 850

[4] 3. Control Messages

This section lists the control messages currently defined. The body of the Control header is the control message. Messages are a sequence of zero or more words, separated by white space (blanks or tabs). The first word is the name of the control message, remaining words are parameters to the message. The remainder of the header and the body of the message are also potential parameters; for example, the From line might suggest an address to which a response is to be mailed.

Implementors and administrators may choose to allow control messages to be automatically carried out, or to queue them for manual processing. However, manually processed messages should be dealt with promptly.

3.1 Cancel

     cancel <message ID>

If an article with the given message ID is present on the local system, the article is cancelled. This mechanism allows a user to cancel an article after the article has been distributed over the network.

Only the author of the article or the local super user is allowed to use this message. The verified sender of a message is the Sender line, or if no Sender line is present, the From line. The verified sender of the cancel message must be the same as either the Sender or From field of the original message. A verified sender in the cancel message is allowed to match an unverified From in the original message.

3.2 Ihave/Sendme

     ihave <message ID list> <remotesys>
     sendme <message ID list> <remotesys>

This message is part of the "ihave/sendme" protocol, which allows one site (say "A") to tell another site ("B") that a particular message has been received on A. Suppose that site A receives article "ucbvax.1234", and wishes to transmit the article to site B. A sends the control message "ihave ucbvax.1234 A" to site B (by posting it to newsgroup "to.B"). B responds with the control message "sendme ucbvax.1234 B" (on newsgroup to.A) if it has not already received the article. Upon receiving the Sendme message, A sends the article to B.

This protocol can be used to cut down on redundant traffic between sites. It is optional and should be used only if the particular situation makes it worthwhile. Frequently, the outcome is that, since most original messages are short, and since there is a high overhead to start sending a new message with UUCP, it costs as much to send the Ihave as it would cost to send the article itself.

One possible solution to this overhead problem is to batch requests. Several message ID's may be announced or requested in one message. If no message ID's are listed in the control message, the body of the message should be scanned for message ID's, one per line.

3.3 Newgroup

     newgroup <groupname>

This control message creates a new newsgroup with the name given. Since no articles may be posted or forwarded until a newsgroup is created, this message is required before a newsgroup can be used. The body of the message is expected to be a short paragraph describing the intended use of the newsgroup.

3.4 Rmgroup

     rmgroup <groupname>

This message removes a newsgroup with the given name. Since the newsgroup is removed from every site on the network, this command should be used carefully by a responsible administrator.

3.5 Sendsys

     sendsys (no arguments)

The "sys" file, listing all neighbors and which newsgroups are sent to each neighbor, will be mailed to the author of the control message (Reply-to, if present, otherwise From). This information is considered public information, and it is a requirement of membership in USENET that this information be provided on request, either automatically in response to this control message, or manually, by mailing the requested information to the author of the message. This information is used to keep the map of USENET up to date, and to determine where netnews is sent.

The format of the file mailed back to the author should be the same as that of the "sys" file. This format has one line per neighboring site (plus one line for the local site), containing four colon separated fields. The first field has the site name of the neighbor, the second field has a newsgroup pattern describing the newsgroups sent to the neighbor. The third and fourth fields are not defined by this standard. A sample response:

     From cbosgd!mark  Sun Mar 27 20:39:37 1983
     Subject: response to your sendsys request
     To: mark@cbosgd.UUCP
     
     Responding-System: cbosgd.UUCP
     cbosgd:osg,cb,btl,bell,net,fa,to,test
     ucbvax:net,fa,to.ucbvax:L:
     cbosg:net,fa,bell,btl,cb,osg,to.cbosg:F:/usr/spool/outnews/cbosg
     cbosgb:osg,to.cbosgb:F:/usr/spool/outnews/cbosgb
     sescent:net,fa,bell,btl,cb,to.sescent:F:/usr/spool/outnews/sescent
     npois:net,fa,bell,btl,ug,to.npois:F:/usr/spool/outnews/npois
     mhuxi:net,fa,bell,btl,ug,to.mhuxi:F:/usr/spool/outnews/mhuxi

3.6 Senduuname (uuname 送ってちょ)

     senduuname      (no arguments) (引数なし)

The "uuname" program is run, and the output is mailed to the author of the control message (Reply-to, if present, otherwise From). This program lists all uucp neighbors of the local site. This information is used to make maps of the UUCP network. The sys file is not the same as the UUCP L.sys file. The L.sys file should never be transmitted to another party without the consent of the sites whose passwords are listed therein.

「uuname」 (uu名) プログラムが実行され、出力が 制御メッセージの著者 (指定されていれば Reply-to (返信先) に、 なければ From (送信元)に) メイルで送られます。この位プログラムは 局地サイトの全ての uucp 隣人を列挙します。この情報は UUCP 網の地図を作ります。 sys ファイルは UUCP L.sys ファイルと 同じではありません。 L.sys ファイルは合言葉が列せられている サイトの同意無しに第三者に転送されることは決してあるべきではありません。

It is optional for a site to provide this information. Some reply should be made to the author of the control message, so that a transmission error won't be blamed. It is also permissible for a site to run the uuname program (or in some other way determine the uucp neighbors) and edit the output, either automatically or manually, before mailing the reply back to the author. The file should contain one site per line, beginning with the uucp site name. Additional information may be included, separated from the site name by a blank or tab. The phone number or password for the site should NOT be included, as the reply is considered to be in the public domain. (The uuname program will send only the site name and not the entire contents of the L.sys file, thus, phone numbers and passwords are not transmitted.)

この情報を提供するかどうかはサイトの判断に拠ります。...

The purpose of this message is to generate and maintain UUCP mail routing maps. Thus, connections over which mail can be sent using the site!user syntax should be included, regardless of whether the link is actually a UUCP link at the physical level. If a mail router should use it, it should be included. Since all information sent in response to this message is optional, sites are free to edit the list, deleting secret or private links they do not wish to publicise.

3.7 Version

     version (no arguments)

The name and version of the software running on the local system is to be mailed back to the author of the article (Reply-to if present, otherwise From).

RFC 1036

[5] 3. Control Messages
    This section lists the control messages currently defined.  The body
    of the "Control" header line is the control message.  Messages are a
    sequence of zero or more words, separated by white space (blanks or
    tabs).  The first word is the name of the control message, remaining
    words are parameters to the message.  The remainder of the header
    and the body of the message are also potential parameters; for
    example, the "From" line might suggest an address to which a
    response is to be mailed.
    Implementors and administrators may choose to allow control messages
    to be carried out automatically, or to queue them for annual
    processing.  However, manually processed messages should be dealt
    with promptly.
    Failed control messages should NOT be mailed to the originator of
    the message, but to the local "usenet" account.

3.1. Cancel (取消し)

                     cancel <Message-ID>

If a message with the given Message-ID is present on the local system, the message is cancelled. This mechanism allows a user to cancel a message after the message has been distributed over the network.

指定された Message-ID のメッセージが局地系統にある時、 メッセージは取り消されます。この機構により利用者は メッセージがネットワークに配布された後から取り消すことが出来るようになります。

If the system is unable to cancel the message as requested, it should not forward the cancellation request to its neighbor systems.

系統が要求されたメッセージを取り消すのが不可能な時、 取消し要求を隣の系統に転送するべきではありません。

Only the author of the message or the local news administrator is allowed to send this message. The verified sender of a message is the "Sender" line, or if no "Sender" line is present, the "From" line. The verified sender of the cancel message must be the same as either the "Sender" or "From" field of the original message. A verified sender in the cancel message is allowed to match an unverified "From" in the original message.

メッセージの著者または局地ニュース管理者だけが このメッセージを送ることが出来ます。メッセージの送信者の確認には 「Sender」(送信者)行, 「Sender」行が無い場合は「From」(送信元)行を使います。 確認する取消しメッセージの送信者は元のメッセージの 「Sender」領域または「From」領域のどちらかと同じでなければなりません。 確認される取消しメッセージの送信者は確認されない元のメッセージの「From」 と一致しても構いません。

3.2. Ihave/Sendme (持ってます/送ってちょ)

                   ihave <Message-ID list> [<remotesys>]
                   sendme <Message-ID list> [<remotesys>]

This message is part of the ihave/sendme protocol, which allows one host (say A) to tell another host (B) that a particular message has been received on A. Suppose that host A receives message "<1234@ucbvax.Berkeley.edu>", and wishes to transmit the message to host B.

このメッセージは ihave/endme プロトコルの一部で、 あるホスト (A とする) が他のホスト B に、あるメッセージを A が受信したと 知らせることが出来ます。ホスト A がメッセージ 「<1234@ucbvax.Berkeley.edu>」 を受信して、メッセージをホスト B に転送しようとすると仮定します。

A sends the control message "ihave <1234@ucbvax.Berkeley.edu> A" to

 host B (by posting it to newsgroup to.B).  B responds with the
control message "sendme <1234@ucbvax.Berkeley.edu> B" (on newsgroup
to.A), if it has not already received the message.  Upon receiving
the sendme message, A sends the message to B.

A は制御メッセージ「ihave <1234@ucbvax.Berkeley.edu> A」 をホスト B に (新聞組 to.B に投稿することで) 送信します。 B はメッセージを既に受け取っていない場合 制御メッセージに「sendme <1234@ucbvax.Berkeley.edu> B」と (新聞組 to.A で) 反応します。 sendme メッセージを受け取ったら、 A はメッセージを B に送ります。

This protocol can be used to cut down on redundant traffic between hosts. It is optional and should be used only if the particular situation makes it worthwhile. Frequently, the outcome is that, since most original messages are short, and since there is a high overhead to start sending a new message with UUCP, it costs as much to send the ihave as it would cost to send the message itself.

このプロトコルはホスト間混雑を減らすのに使うことが出来ます。 これは使っても使わなくても構わなく、使うだけの価値がある場合に限って 使うべきです。よく、ほとんどの元のメッセージは短くて、 新しいメッセージを UUCP で送り始める一般諸経費(オーバーヘッド) が大きいので、メッセージ自身を送るのより多い経費がかかる 結果になったりします。

One possible solution to this overhead problem is to batch requests. Several Message-ID's may be announced or requested in one message. If no Message-ID's are listed in the control message, the body of the message should be scanned for Message-ID's, one per line.

一般諸経費問題の一つの可能な解は要求を束にすることです。 複数の Message-ID を一つのメッセージで知らせたり要求したりしても 構いません。制御メッセージに Message-ID が一つも列せられていない時は、 メッセージの本体を一行一個の Message-ID とします。

3.3. Newgroup (新組)

                      newgroup <groupname> [moderated]

This control message creates a new newsgroup with the given name. Since no messages may be posted or forwarded until a newsgroup is created, this message is required before a newsgroup can be used. The body of the message is expected to be a short paragraph describing the intended use of the newsgroup.

    If the second argument is present and it is the keyword moderated,
    the group should be created moderated instead of the default of
    unmoderated.  The newgroup message should be ignored unless there is
    an "Approved" line in the same message header.

3.4. Rmgroup (消組)

                            rmgroup <groupname>
    This message removes a newsgroup with the given name.  Since the
    newsgroup is removed from every host on the network, this command
    should be used carefully by a responsible administrator.  The
    rmgroup message should be ignored unless there is an "Approved:"
    line in the same message header.

3.5. Sendsys (sys 送ってちょ)

                           sendsys (no arguments) (引数なし)
    The sys file, listing all neighbors and the newsgroups to be sent to
    each neighbor, will be mailed to the author of the control message
    ("Reply-To", if present, otherwise "From").  This information is
    considered public information, and it is a requirement of membership
    in USENET that this information be provided on request, either
    automatically in response to this control message, or manually, by
    mailing the requested information to the author of the message.
    This information is used to keep the map of USENET up to date, and
    to determine where netnews is sent.

全ての隣人と各隣人に送られる新聞組のを一覧にした sys ファイル を制御メッセージの著者 (あれば「Reply-To」、なければ「From」) にメイルで送ります。この情報は公共の情報とみなされるもので、 この情報を要求があれば制御メッセージへの自動応答, または手動のどちらかで、要求された情報をメッセージの著者にメイルで送る ことが USENET 会員の義務です。この情報は USENET 地図を更新し 電子ニュースがどこに送られるのかを決めるのに使われます。

    The format of the file mailed back to the author should be the same
    as that of the sys file.  This format has one line per neighboring
    host (plus one line for the local host), containing four colon
    separated fields.  The first field has the host name of the
    neighbor, the second field has a newsgroup pattern describing the
    newsgroups sent to the neighbor.  The third and fourth fields are
    not defined by this standard.  The sys file is not the same as the
    UUCP L.sys file.  A sample response is:
      From: cbosgd!mark  (Mark Horton)
      Date: Sun, 27 Mar 83 20:39:37 -0500
      Subject: response to your sendsys request
      To: mark@cbosgd.ATT.COM
      Responding-System: cbosgd.ATT.COM
      cbosgd:osg,cb,btl,bell,world,comp,sci,rec,talk,misc,news,soc,to,
            test
      ucbvax:world,comp,to.ucbvax:L:
      cbosg:world,comp,bell,btl,cb,osg,to.cbosg:F:/usr/spool/outnews
            /cbosg
      cbosgb:osg,to.cbosgb:F:/usr/spool/outnews/cbosgb
      sescent:world,comp,bell,btl,cb,to.sescent:F:/usr/spool/outnews
            /sescent
      npois:world,comp,bell,btl,ug,to.npois:F:/usr/spool/outnews/npois
      mhuxi:world,comp,bell,btl,ug,to.mhuxi:F:/usr/spool/outnews/mhuxi

3.6. Version (版)

                           version (no arguments) (引数なし)
    The name and version of the software running on the local system is
    to be mailed back to the author of the message ("Reply-to" if
    present, otherwise "From").

3.7. Checkgroups (組確認)

    The message body is a list of "official" newsgroups and their
    description, one group per line.  They are compared against the list
    of active newsgroups on the current host.  The names of any obsolete
    or new newsgroups are mailed to the user "usenet" and descriptions
    of the new newsgroups are added to the help file used when posting
    news.

メモ