世界コンピュータ将棋選手権出場クライアントに対応していただくこと

2006年1月10日
CSA選手権LAN化計画担当

目次

  1. 世界コンピュータ将棋選手権のLAN対応について
  2. 対局プロトコル
    1. サーバの役割
    2. クライアントの必須要件
    3. クライアントにとって必須でない要件
  3. ネットワーク設定とケーブル
    1. IP設定
    2. Ethernetケーブル
  4. LAN運用上の注意事項
  5. LANの通信品質
  6. インターネットを利用した事前テストの実施について
  7. さいごに
  8. 本文書の改訂履歴
※本文書は、CSAサーバ プロトコル ver.1.1.1の内容を前提としています。 また、選手権でのLAN対応に不可欠な部分の確認については、サーバプロトコルのほか、ネットワーク設定とケーブルの項をお読みください。

1. 世界コンピュータ将棋選手権のLAN対応について

 世界コンピュータ将棋選手権(以下、選手権)では、2006年5月開催予定の第16回より、段階的にEthernetによるローカルエリアネットワーク(LAN)を経由した対局に移行されるはこびとなりました。 第16回の段階では、従来通りRS-232Cによる通信を必須とし、LAN対局は任意にて導入していただくことになりますが、近い将来にRS-232Cを廃止し、LAN対局を必須とする方式に徐々に移行する予定となっております。 LAN対局では、従来のように対局するコンピュータ同士をRS-232Cケーブルで直結して通信を行う方法とは異なり、選手権に参加するすべてのコンピュータは、Ethernetケーブルとスイッチングハブを用いて選手権の主催者側が用意する審判サーバ機器に接続していただきます。 これによって対局を行うコンピュータがクライアントとなるクライアント/サーバシステムを対局前に構築し、サーバ機器を経由した通信によってすべての対局を行います。 以下、参加するコンピュータをクライアント、審判サーバ機器をサーバと呼称いたします。

 このたびのLAN対局への移行は、従来からのRS-232C対局における下記の課題の解決を直接の目的としています。

 以上のメリットに加え、対局の観戦が容易になるという副次的な効果があります。 今回の選手権から、LANで行われる対局は、サーバの仲介によって会場のプロジェクタに映し出される予定です。 これにより、会場にて多くの対局を同時に観戦することができるようになります。 さらに今回の選手権では、LAN対局がインターネットで生中継され、世界中のインターネットユーザがリアルタイムに観戦できるようになる予定です。 コンピュータ将棋は、その魅力を全世界に発信することで、ますます注目される存在になることができるでしょう。

 しかしながら、導入期間中は新たなプロトコルへの対応作業が必要になることをご了承願います。 第16回選手権では、LAN対局への対応は任意といたしますが、できる限り多くの参加者に対応していただけますようお願い申し上げます。 本文書は、選手権でのLAN対局のルールの説明に加え、参加者の皆さんによるLAN対応をできる限り容易にすることを目的として作成されています。 LAN対局に対応したコンピュータ同士の対局では、上記のとおり機器の移動は生じません。 LAN対局に対応したコンピュータとRS-232Cのみのコンピュータとの対局では、RS-232Cにて対局を行っていただくことになりますが、原則として前者の移動は不要といたします。

2. 対局プロトコル

 LAN対局は、CSAサーバプロトコル ver.1.1.1に従って行われます。 本節では、このプロトコルにおいて、選手権に関して特記すべき部分について述べます。

2.1. サーバの役割

 前節にて述べたとおり、サーバはプロトコルにしたがい、通信の妥当性の検証と消費時間の計測を担当します。 妥当でない通信を検知し、排除することによって、LANを正常に保つ役割も負います。 従来と異なり、サーバが計測した消費時間が常に正規の消費時間となります。 指し手ごとの消費時間は、プロトコルにしたがって1手ごとの指し手に付加され、対局する双方のクライアントに送信されます。

2.2. クライアントの必須要件

 LAN対局において、クライアントは、プロトコルに規定された動作のうち、最低限、下記が可能なように実装されていなければなりません。

 ログインに必要なログイン名とパスワードは、選手権参加手続きの過程において、以下の形式にて申請されたものを用います。

正規の対局では、必ず試合用のログイン名とパスワードを使用してください。 また、テストのため対局前もしくは対局の合間にサーバへの接続を行う場合は、必ずテスト用のログイン名とパスワードを使用してください。 チーム単独でテストを行う場合は、試合用ログイン名とテスト用ログイン名を使って対戦を行っていただきます。 また、他のチームとの対戦テストを行う場合は、ともにテスト用ログイン名を用いていただきます。 選手権会場での準備の際、対局とテストを適宜すみやかに行えるよう、両方のログイン名でログインする準備を整えておいてください。

 ログイン後、クライアントは、受け取った対局通知メッセージの終端を検出した後、対局を行うため 'AGREE' をサーバに回答する必要があります。 対局開始直後、手番を持つクライアント、すなわち 'Your_Turn:' と 'To_Move:' の内容が同一の対局通知メッセージを受信しているクライアントは最初の手を指さなければならず、もう一方のクライアントは指し手を受信するまで指し手を送信してはいけません。 対局が開始されてから終了するまで、クライアントは、相手の指し手を解釈し、それに応じて局面を正しい状態で記憶し、それに応じた指し手をサーバに送信し続ける必要があります。 また、TCP/IPのコネクション切断によってログアウトと同様の手続きを行うことが可能ですが、異常終了と区別できるよう、極力ログアウトコマンドの送信によってログアウトを行うようにしてください。

 前節にて述べたとおり、正規の消費時間はすべてサーバが計測したものを採用します。 クライアントは、常にこの時間を基づいて残り時間を計測し、かつ1手ごとの消費時間が多くなりすぎないよう時間を計測しつつ指し手を送信し、時間切れを回避しなければなりません。

 なお、何らかのトラブルの発生によってLAN対局が継続不可能になった場合は、審判の判定にしたがって、途中の局面からRS-232Cによる対局に移行していただきます。このとき、やむなく機器の移動を行っていただく場合があります。ご了承ください。

2.3. クライアントにとって必須でない要件

 プロトコルでは、対局通知メッセージによって対局条件を提示するための書式が定義されています。 ここで記述される事項は、一部を除いて、あらかじめ選手権のルールによって固定されています。 メッセージの内容のうちの固定された情報に関しては、クライアントがあらかじめその内容に適応していれば、それらを解釈する必要はありません。 具体的には、選手権ではサーバを経由する対局プロトコルを用い、持ち時間は1,500秒すなわち25分を全体の持ち時間とし、1手あたり最低1秒を消費します。 千日手は引き分けとして指し直しを行わず、持将棋における勝利宣言ルールが有効となります

 また、対局ごとに変化する情報も、指し手の決定に直接影響しない情報か、または事前に知ることのできる情報のいずれかに限られますので、事前の設定が適切に行われていれば、メッセージの 対局通知を示す、'BEGIN Game_Summary' の行で開始され 'END Game_Summary' の行で終了するメッセージのうち、対局ごとに変化するのは、以下の項目のみです。

このうち前3者は、対局の内容とは直接の関係はありません。 'Your_Turn:' は、第16回においては、手番が事前に通知されますので、通知に応じた設定が適切に行われていれば、この項目の内容を解釈する必要はありません。 'To_Move:' および事前の指し手は、中断した対局が再開される場合を除き、前者は常に '+' となり、後者は存在しません。 第16回においては、中断した対局の再開はRS-232Cを用いて行われますので、両者の内容を解釈する必要はありません。

3. ネットワーク設定とケーブル

 本節では、対局プロトコルを除く部分における各種設定、および必要な準備について述べます。 通信に用いられるTCP/IPにおける、IP(Internet Protocol)に関してのサーバおよびクライアントの設定内容、および参加者の皆さんに準備していただくEthernetケーブルは、下記のとおりとなります。

3.1. IP設定

 LAN対局においては、DNS(Domain Name Service)による名前の設定は行われません。 したがって、クライアントからサーバへの接続は、接続時に直接IPアドレスを用いてサーバを指定してください。

 IPはバージョン4が用いられます。 したがって、すべてのIPアドレスは32ビット長で表現されます。 IPアドレスおよびポート番号に関する設定は、以下のとおりです。

クライアントのIPアドレスは、選手権参加申込受付終了後、各参加者に個別に通知いたします。 LAN対局時は、DHCP(Dynamic Host Configuration Protocol)によるIPアドレスの自動割り当ては行われません。 なお、参加者が250を超えた場合、サブネットマスクおよびクライアントのIPアドレスは変更される予定です。

3.2. Ethernetケーブル

 選手権に用いられるLANは、カテゴリ3以上の伝送能力を持つEthernetケーブルおよびスイッチングハブを介してサーバとクライアントを接続することによって構築されます。 各参加者は、10BASE-Tや100BASE-TX、もしくはそれ以上の性能を有する、RJ-45コネクタを持つ普及型の3メートル〜5メートルのEthernetストレートケーブルを1本持参してください。 それを会場にて指定されたスイッチングハブに接続することによって、クライアントをLANに接続していただきます。 各参加者のコンピュータを接続したスイッチングハブは、さらに上流のスイッチングハブに接続され集約されます。 サーバは上流のスイッチングハブに接続され、各クライアントとの通信を行います。

4. LAN運用上の注意事項

 LAN対局における各種のトラブルを極力減らすため、LANに接続されるクライアントは、下記の注意事項が遵守されるよう実装および設定され、また正しく運用されなければなりません。

 クライアントは、最低限の接続確認、サーバへの接続、最低限の指し手の送信、およびそれらのための経路情報の獲得に関する最低限の通信を除いて、不必要な通信および対局に無関係な通信を行ってはいけません。 具体的には、ICMPパケットによるエコー要求および応答、TCPパケットによる対局のための通信、ARP要求および応答を必要に応じて行うほかは、情報を送信してはいけません。 他のクライアントとの通信も行ってはいけません。 これは、LAN上の不必要なパケットを極力排除することによって、LANの混雑やルーティング情報の撹乱を防ぎ、LANの安定運用を確実なものにするためです。 特に、クライアントがコンピュータウィルスやワームに感染していないこと、HTTPサーバやDHCPサーバ、将棋以外のネットワークアプリケーションなどが動作していないことは、事前に充分に確認してください。

 上記は、異常な動作をする他のクライアントの影響を受けることなく正常に動作しなければならないことを含みます。 すなわち、他のクライアントからウィルスを感染させられたり、対局と無関係な通信に応答したりしないよう、充分配慮されていなければなりません。

 また、クライアントと、クライアントが接続されるスイッチングハブとの間の接続は確実に行い、通信品質が保たれるようにしてください。

5. LANの通信品質

 各クライアントが接続されるスイッチングハブとサーバとの間の通信品質、およびサーバの通信品質は、主催者側の責任において、下記のように確保されます。

6. インターネットを利用した事前テストの実施について

 LAN対局のクライアント実装が正常に動作することを確認するため、CSAでは、インターネットを経由してアクセス可能な対局サーバを準備しています。 テスト用サーバでは、試合用とテスト用の両方のログイン名を使用してログインすることができます。 なお、過去にGPW杯、コンピュータ将棋オープン戦、王者戦のいずれかに参加された方は、その際に使われたログイン名を使用することができます。 ログイン名をすでに申請済の参加者は、下記のインターネット対局サーバに接続することによって、テストを行うことができます。

テスト用サーバへの接続は、IPアドレスを用いる選手権でのLAN対局と異なり、DNSを利用してサーバ名でアクセスしていただきます。 また、クライアントのサブネットマスクやIPアドレスなどには、各クライアントの接続環境に応じた設定を用いてください。

 テスト用サーバにログインした直後、同様にログイン直後の他のクライアントが存在していない場合は、テスト用サーバは何も送信せず次のクライアントを待ちます。 同様のクライアントが存在する場合、もしくは他のクライアントがログインした場合は、その両者が対局を行うための対局通知メッセージがテスト用サーバからただちに送信されます。 LAN対局と同様、両者が対局通知メッセージに対して 'AGREE' をテスト用サーバに回答することによって対局が開始され、テストを行えます。 試合用とテスト用のログイン名で2つのクライアントをログインさせることにより、単独の参加チームだけでテストを行うことができます。

 テスト用サーバは、対局が終了した後、もしくは一度送信された対局通知メッセージがいずれかのクライアントによって拒絶され不成立となった後のクライアントには対局通知メッセージを送信しません。 この状態からテスト対局をを行う場合は、いったんログアウトして再度ログインするか、もしくは下記のメッセージをテスト用サーバに送信することによって、再度対局通知メッセージを受信する必要があります。

CHALLENGE
これはテスト用サーバ接続時にのみ有効なメッセージであり、プロトコルには規定されていません。 また、LAN対局では意味を持ちません。 テスト用サーバは、上記のメッセージを送信したクライアントを、ログイン直後のクライアントと同様、対局通知メッセージを送信する対象のクライアントとみなします。 同様のクライアントが他に存在しない場合、テスト用サーバは、
CHALLENGE ACCEPTED
というメッセージをクライアントに送信し、次のクライアントを待つ状態に入ったことを示します。 同様のクライアントが存在する場合、もしくは他のクライアントが現れた場合は、ログイン直後と同様、ただちに対局通知メッセージが両者に送信されます。 以上の要領により、テストを継続することができます。

7. さいごに

 LAN対局への移行をスムーズに行うためには、参加者の皆さんのご協力が不可欠です。 第16回選手権ではLANの導入は任意(推奨)となっていますが、1チームでも多くの参加をお願いいたします。 LAN対局の導入は、初期においては今までになかったトラブルが発生する可能性もありますが、中・長期的には現行のシステムの課題を改善し、より対局に集中できる運営が可能になる、と主催者側では判断しております。

 また、LANからインターネットへの対局のリアルタイム中継が可能になることにより、コンピュータ将棋の強さを全世界にアピールすることができ、注目を集めることによって、コンピュータ将棋のさらなる発展が期待されます。

 本文書について不明な点がありましたら、csa_protocol@computer-shogi.orgまでお気軽にお問い合わせください。

8. 本文書の改訂履歴