[NT]TELNET プロトコル

文書翻訳 文書翻訳
文書番号: 231866 - 対象製品
この記事は、以前は次の ID で公開されていました: JP231866
すべて展開する | すべて折りたたむ

目次

概要

Telnet プロトコル

Telnet は、アプリケーションを遠隔で実行する機能をユーザーに提供し、遠隔管理を支援します。Telnet は、ほとんどすべての OS で利用することができ、異種混合のネットワーク環境での統合を容易にします。

詳細

ユーザーにとって最も分かりやすい Telnet の使用例は、リモート コンピュータへのログイン セッションを実行するために、ローカルの telnet プログラム (クライアント プログラムと呼ばれる) による簡単なターミナルを使用するものです。この場合は、telnet サーバー プログラムが通信の処理を行います

telnet サーバーは、クライアントから受信したデータをリモート ログイン サーバーなどの、他のさまざまなタイプのプロセスに転送することができます。
telnet は RFC854 に記述され、1983 年に発行されました。

ネットワーク仮想端末.

通信は TCP/IP を用いて確立され、ネットワーク仮想端末 (NVT) と呼ばれる機能を基礎にしています。クライアント環境において、telnet プログラムは、受信 NVT コードをクライアントの表示装置が理解できるコードに変換し、またクライアントが生成したキーボード コードを発信用の NVT コードに変換します。

NVT では、文字用として 7 ビットのコードを使用します。RFC においてプリンタと呼ばれる表示装置が行うことは 7 ビットのコードによって示されるプリンタ用 "標準" ASCII 文字の表示、および特定の制御コードの認識と処理だけです。
7 ビット文字は、最上位有効ビットが 0 に設定された 8 ビットのバイトとして送信されます。行の終わりは CR (キャリッジ リターン) とそれに続く LF (改行) として送信されます。キャリッジ リターン自体を送信する場合は、キャリッジ リターンとそれに続く NUL (全ビットが 0) として送信されます。

NVT ASCII は SMTP や FTP などその他の多くのインターネット プロトコルで使用されています。

ネットワーク仮想端末は、以下の制御コードを理解する必要があります。
  +----------------------------------------------------------------------------+
  |名前                | コード | 10 進値 | 機能                               |
  +----------------------------------------------------------------------------+
  | NULL               | NUL    | 0       | オペレーションなし                 |
  +----------------------------------------------------------------------------+
  |改行                | LF     | 10      | プリンタの水平位置を維持したままで |
  |                    |        |         | 次の印刷ラインに印刷ヘッドを移動し |
  |                    |        |         | ます。                            |
  +----------------------------------------------------------------------------+
  |キャリッジ リターン | CR     | 13      | 現在の行の左マージンに印刷ヘッドを |
  |                    |        |         | 移動します。                      |
  +----------------------------------------------------------------------------+
以下の制御コードはオプションですが、指定された定義済みの効果を画面上に示す必要があります。
  +----------------------------------------------------------------------------+
  |名前            | コード | 10 進値 |機能                                    |
  +----------------------------------------------------------------------------+
  |ベル            | BEL    | 7       |音声または視覚的な信号を生成します。   |
  |                |        |         |(印刷ヘッドは移動しません。)            |
  +----------------------------------------------------------------------------+
  |バック スペース | BS     | 8       |印刷ヘッドを 1 文字分左マージンの方向に |
  |                |        |         |移動します。[印刷装置では、このメカニズ |
  |                |        |         |ムは、一般に複合文字を作成するために用  |
  |                |        |         |いられます。複合文字は 2 つの基本文字を |
  |                |        |         |二重に印刷して作成されます。]           |
  +----------------------------------------------------------------------------+
  |水平タブ        | HT     | 9       |プリンタを次の水平タブ停止位置に移動しま|
  |                |        |         |す。タブ停止位置を相互に規定し設定する方|
  |                |        |         |法は、現在のところ決定しておりません。 |
  +----------------------------------------------------------------------------+
  |垂直タブ        | VT     | 11      |プリンタを次の垂直タブ停止位置に移動しま|
  |                |        |         |す。タブ停止位置を相互に規定し設定する方|
  |                |        |         |法は、現在のところ決定しておりません。 |
  +----------------------------------------------------------------------------+
  |用紙送り        | FF     | 12      |プリンタの水平位置を維持したままプリンタ|
  |                |        |         |を次のページの上端に移動します。       |
  |                |        |         |[表示装置では一般に、これにより画面の更 |
  |                |        |         |新とカーソルの左上端への移動が行われま  |
  |                |        |         |す。]                                   |
  +----------------------------------------------------------------------------+
NVT キーボードは、キー、キーの組み合わせ、またはキー シーケンスを用いて全部で 128 個の ASCII コードを生成できなければなりません。

コマンド.

telnet プロトコルでは多種のコマンドを用いてクライアント サーバー接続を制御します。これらのコマンドは、データ ストリーム内に含めて送信されます。各コマンドは最上位有効ビットを 1 に設定することによりデータと区別されます。(データは第 8 ビットが 0 に設定された 7 ビットとして転送されます。)
コマンドは常に Interpret as command (IAC) 文字によって示されます。

以下に全コマンドを示します。
  +----------------------------------------------------------------------------+
  | 名前 | 10 進コード | 意味                 | 説明                           |
  +----------------------------------------------------------------------------+
  | SE   | 240         | サブネゴシエーション |                                |
  |      |             | パラメータの終わり   |                                |
  +----------------------------------------------------------------------------+
  | NOP  | 241         | オペレーションなし   |                                |
  +----------------------------------------------------------------------------+
  | DM   | 242         | Data Mark            | データ ストリーム内の同期イベン|
  |      |             |                      | トの位置を示します。          |
  |      |             |                      | 必ず TCP 緊急通知と共に指定され|
  |      |             |                      | なければなりません。          |
  +----------------------------------------------------------------------------+
  | BRK  | 243         | Break                | "ブレーク" または "アテンション|
  |      |             |                      | キー" が hi であったことを示し |
  |      |             |                      | ます。                        |
  +----------------------------------------------------------------------------+
  | IP   | 244         | Suspend              | NVT が接続されているプロセスの |
  |      |             |                      | 割込みまたは中止を行います。  |
  +----------------------------------------------------------------------------+
  | AO   | 245         | Abort output         | 実行している現在のプロセスが終 |
  |      |             |                      | 了してもユーザーに出力を送信し |
  |      |             |                      | ないようにします。            |
  +----------------------------------------------------------------------------+
  | AYT  | 246         | Are you there        | AYT が受信されたという視覚的な |
  |      |             |                      | 証拠を NVT に送信します。     |
  +----------------------------------------------------------------------------+
  | EC   | 247         | Erase character      | 受信側はデータ ストリームから最|
  |      |             |                      | 後の未消去文字を削除します。  |
  +----------------------------------------------------------------------------+
  | EL   | 248         | Erase line           | データ ストリームからすべての文字|
  |      |             |                      | を削除します (ただし前回の     |
  |      |             |                      | CRLF は除きます)。            |
  +----------------------------------------------------------------------------+
  | GA   | 249         | Go ahead             | 特定の状況で使用して、相手方に |
  |      |             |                      | 送信可能であることを伝えます。|
  +----------------------------------------------------------------------------+
  | SB   | 250         | Subnegotiation       | 指定されたオプションでサブネゴ |
  |      |             |                      | シエーションを開始する。      |
  +----------------------------------------------------------------------------+
  | WILL | 251         | will                 | 指定されたオプションでの実行開 |
  |      |             |                      | 始要求、または現在の実行の確認 |
  |      |             |                      | を指示します。                |
  +----------------------------------------------------------------------------+
  | WONT | 252         | wont                 | 指定されたオプションでの実行ま |
  |      |             |                      | たは実行の継続の拒否を指示し   |
  |      |             |                      | ます。                        |
  +----------------------------------------------------------------------------+
  | DO   | 253         | do                   | 指定されたオプションでの相手方 |
  |      |             |                      | による実行の要求、または相手方 |
  |      |             |                      | による実行の要求の確認を指示し |
  |      |             |                      | ます。                        |
  +----------------------------------------------------------------------------+
  | DONT | 254         | dont                 | 指定されたオプションでの、相手 |
  |      |             |                      | 方による実行の停止、または相手 |
  |      |             |                      | 方による実行停止の要求の確認を |
  |      |             |                      | 指示します。                  |
  +----------------------------------------------------------------------------+
  | IAC  | 255         | Interpret as command | コマンドとして解釈します。    |
  +----------------------------------------------------------------------------+
Telnet のオプション.

オプションは、クライアントとサーバーに、接続に関する共通の視点を提供します。
オプションは、コマンドの使用により接続中いつでもネゴシエーションを行うことができます。各オプションは個別の RFC に記述されています。

以下に共通オプションの一部を示します。
  +----------------------------------------------+
  | 10 進コード   | 名前                  | RFC  | 
  +----------------------------------------------+
  | 3             | Suppress Go Ahead     | 858  | 
  +----------------------------------------------+
  | 5             | status                | 859  | 
  +----------------------------------------------+
  | 1             | echo                  | 857  | 
  +----------------------------------------------+
  | 6             | timing mark           | 860  | 
  +----------------------------------------------+
  | 24            | terminal type         | 1091 | 
  +----------------------------------------------+
  | 31            | window size           | 1073 | 
  +----------------------------------------------+
  | 32            | terminal speed        | 1079 |
  +----------------------------------------------+
  | 33            | remote flow control   | 1372 |
  +----------------------------------------------+
  | 34            | linemode              | 1184 |
  +----------------------------------------------+
  | 36            | environment variables | 1408 |
  +----------------------------------------------+
telnet による通信における一方のノードが、ローカルまたはリモートでオプションを有効または無効にすることができます。起動側は次の形式の 3 バイトのコマンドを送信します。
  +----------------------------------+
  | IAC | 動作のタイプ  | オプション |
  +----------------------------------+
応答も同じ形式です。

動作は次のいずれかです。
  +-------------------------------------------------------------------------+
  | 説明        | 10 進数コード | 動作                                      |
  +-------------------------------------------------------------------------+
  | WILL        | 251           | 送信側が実行を要求します。               |
  +-------------------------------------------------------------------------+
  | DO          | 253           | 送信側が相手方による実行を要求します。   |
  +-------------------------------------------------------------------------+
  | WONT        | 252           | 送信側は実行を要求しません。             |
  +-------------------------------------------------------------------------+
  | DONT        | 254           | 送信側は相手方による実行を要求しません。 |
  +-------------------------------------------------------------------------+
各コマンドに対して、以下のようなさまざまな応答が可能です。
  +----------------------------------------------------------------------------+
  | 送信側による送信 | 受信側による応答                     | 注意             |
  +----------------------------------------------------------------------------+
  | WILL DO          | 送信側は、受信側が特定の機能が処理   | オプションは有効 |
  |                  | 可能な場合は、その機能を使用します。| になります。    |
  +----------------------------------------------------------------------------+
  | WILL DONT        | 受信側は、そのオプションをサポート   | オプションは有効 |
  |                  | できないことを通知します。          | になりません。  |
  +----------------------------------------------------------------------------+
  | DO WILL          | 送信側は、特定のオプションを使用し   | オプションは有効 |
  |                  | たい場合には、送信側からのトラフィッ | になります。    |
  |                  | クを処理できることを通知します。    |                  |
  +----------------------------------------------------------------------------+
  | DO WONT          | 受信側はそのオプションをサポート     | オプションは有効 |
  |                  | できないことを通知します。          | になりません     |
  +----------------------------------------------------------------------------+
  | WONT DONT        | オプションが無効になります。        | 有効な応答は     |
  |                  |                                      | DONT のみです。 |
  +----------------------------------------------------------------------------+
  | DONT WONT        | オプションが無効になります。        | 有効な応答は     |
  |                  |                                      | WONT のみです。 |
  +----------------------------------------------------------------------------+
たとえば、送信側が相手方に Suppress Go Ahead を要求する場合、次のバイト シーケンスを送信します。
  +--------------------------------+
  | IAC | WILL | Suppress Go Ahead |
  +--------------------------------+
3 バイト シーケンスの最終バイトでは、要求する動作を指定します。

オプション値の中には、オプションのサポートが合意された時点で伝達される必要のあるものがあります。これは、サブ オプション ネゴシエーションを用いて実行されます。値は、次の形式で値照会コマンドおよび応答を用いてネゴシエートされます。
  +---------------------------------------------+
  | IAC | SB | オプション コード | 1 | IAC | SE |
  +---------------------------------------------+
および
  +---------------------------------------------+
  | IAC | SB | オプション コード | 0 | IAC | SE |
  +---------------------------------------------+
たとえば、クライアントがサーバーに対して端末タイプを確認する場合、次のようなやり取りが行われます。
  +----------------------------------------------------------------------------+
  | CLIENT || IAC | WILL | Terminal Type |   |     | 
  +----------------------------------------------------------------------------+
  | SERVER || IAC | DO   | Terminal Type |   |     | 
  +----------------------------------------------------------------------------+
  | CLIENT || IAC | SB   | Terminal Type | 1 | IAC | SE |   |   | 
  +----------------------------------------------------------------------------+
  | SERVER || IAC | SB   | Terminal Type | 0 | V   | T  | 2 | 2 | 0 | IAC | SE |
  +----------------------------------------------------------------------------+
最初のやり取りでは、端末タイプ (オプション番号 24) の処理が確立します。
その後サーバーは、クライアントに対して、その端末タイプに関係付ける値を問い合わせます。

シーケンス SB,24,1 は、オプション タイプ 24 に関するサブ オプションネゴシエーションおよび要求した値 (1) を示します。IAC,SE シーケンスは、このリクエストの終了を示します。

応答 IAC,SB,24,0,'V'... は、オプション タイプ 24 に関するサブ オプションネゴシエーションおよび指定された値 (0) を示します。IAC,SE シーケンスはこの応答 (および指定された値) の終了を示します。

値のコード化は、オプションに固有ですが、上記の文字のシーケンスは共通です。

Telnet オプションの説明

上記の多くのオプションは自明ですが、いくつか説明が必要なものがあります。
Suppress Go Ahead.
規定では、telnet の実装は、デフォルトで "半二重" モードです。つまり、データトラフィックは一度に一方向にしか進むことができず、一方向のトラフィックの終わりを示すために特別の動作を必要としますが、これにより他の方向でトラフィックを開始することができます。[これはアマチュアおよび CB 無線のオペレータによる "roger" および "over" の使用に似ています。] この種の動作は、データ ストリームの GA 文字に含まれます。
最新のリンクでは、標準的に全二重モードが可能であり、"Suppress Go Ahead" オプションが有効です。
Echo .
通常、Echo オプションはサーバーによって有効にされ、サーバーが受信したすべての文字をエコーすることを示します。"Suppress Go Ahead" と "Echo" の組み合わせは "character at a time" モードと呼ばれ、個々の文字が個別に転送され、エコーされることを意味します。
擬似ライン モードと呼ばれる取決めがあります。これは、"Suppress Go Ahead" または "Echo" の両方ではなく一方が有効な場合、telnet は "line at a time" モードで動作し、行全体が各エンドで組み立てられて、1 回の "go" で転送されることを意味します。
Linemode .
このオプションは擬似ライン モードと置換します。
Remote flow control.
Ctrl-S/Ctrl-Q の特別なフロー制御の効果の実装場所を制御します。
Telnet control function.
telnet プロトコルには多数の制御機能が用意されています。これらは、クライアント (通常は特別なキーまたはキーの組み合わせ) またはサーバーによって検出された条件に応じて起動されます。検出された条件により、特別な文字がデータ ストリームに組み込まれます。
Interrupt Process .
サーバー プロセスの中断または終了を実行するためにクライアントによって使用されます。通常、ユーザーはキーボードで Ctrl-C を入力します。データ ストリームに IP (244) 文字が組み込まれます。
Abort Output .
リモート プロセス出力の転送の抑止に使用されます。データ ストリームに AO (238) 文字が組み込まれます。
Are You There.
リンクの操作およびリモート プロセスの確認のため、相手方からの視覚的な応答を誘発するために使用されます。データ ストリームに AYT (246) 文字が組み込まれます。
Erase character.
直前の文字をディスプレイから削除するためにディスプレイに送信されます。データ ストリームに EC (247) 文字が組み込まれます。
Erase line.
現在の入力行を削除します。データ ストリームに EL (248) 文字が組み込まれます。
Data Mark .
AO や IP などの一部の制御機能では即時動作を必要とします。このため、データがバッファに保存されて、(おそらく誤動作した) リモート プロセスからの入力リクエストを待機している場合は問題が生じることがあります。
この問題を解決するために、DM (242) 文字が TCP Urgent セグメントで送信されます。これにより、受信側に対して検査すべき文字 (IP、AO、および AYT など) に関するデータ ストリームの検査を指示します。
これは telnet 同期メカニズムと呼ばれます。TCP Urgent セグメント以外の DM には影響しません。
Telnet コマンド.
Windows NT および大部分の Unix システムでは、telnet セッションは telnet コマンドを用いて起動されます。ほとんどのユーザーは単純に次のように入力します。
  telnet remote_host
しかし、telnet だけを入力すると、さまざまなオプションおよびサブ コマンドを利用できます。

以下に sfuclnt から sfusrvr への telnet セッションの例を示します。
  C:\>telnet

  Microsoft (R) Windows NT (TM) Version 4.00 (Build 1381)
  Welcome to Microsoft Telnet Client
  Telnet Client Build 5.00.99034.1
  Escape Character is 'CTRL+]'
  Microsoft Telnet> open sfusrvr

  **** 画面がクリアされ、次のように表示されます。

  Microsoft (R) Windows NT (TM) Version 4.00 (Build 1381)
  Welcome to Microsoft Telnet Service
  Telnet Server Build 5.00.99034.1
  login: sfu
  password: ********

  **** 画面が再びクリアされ、次のように表示されます。

  *==================================
  Welcome to Microsoft Telnet Server.
  *==================================
  C:\>

関連情報

Telnet の詳細については、RFC 854 を参照してください。RFC のインターネットからの入手方法は次のとおりです。すべての RFC のハードコピーは NIC から個別に、または予約申し込みにより入手できます。(詳細は NIC@NIC.DDN.MIL を参照してください。) オンライン コピーは NIC.DDN.MIL から FTP または Kermit を介して rfc/rfc854.txt または rfc/rfc854.PS として入手できます (854 は RFC 番号で、前にゼロは付きません) 。
また、RFC を自動 NIC メール サーバーから電子メールによって要求することもできます。SERVICE@NIC.DDN.MIL にメッセージを送信します。
メッセージの件名に、テキスト バージョンが必要な場合 "rfc 854" を、PostScript バージョンが必要な場合は "rfc 854.PS" と記入します。
RFC インデックスを入手する場合は、メッセージの件名に "rfc index" と記入します。

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 231866 (最終更新日 1999-06-17) をもとに作成したものです。

プロパティ

文書番号: 231866 - 最終更新日: 2003年8月22日 - リビジョン: 3.0
この資料は以下の製品について記述したものです。
  • Microsoft Windows NT Services for UNIX Add-On Pack
  • Microsoft Windows NT Server 3.5
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 3.5
  • Microsoft Windows NT Workstation 3.51
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
キーワード:?
kbinfo kbfaq sfu KB231866
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com