RFC761 日本語訳
0761 DoD standard Transmission Control Protocol. J. Postel. January 1980. (Format: TXT=167049 bytes) (Status: UNKNOWN)
プログラムでの自動翻訳です。
RFC一覧
英語原文
RFC: 761 IEN: 129
RFC: 761IEN: 129
DOD STANDARD
DOD規格
TRANSMISSION CONTROL PROTOCOL
通信制御プロトコル
January 1980
1980年1月
prepared for
用意をします。
Defense Advanced Research Projects Agency Information Processing Techniques Office 1400 Wilson Boulevard Arlington, Virginia 22209
ディフェンス先端研究はオフィス1400ウィルソン・Boulevardアーリントン、政府機関情報処理Techniquesヴァージニア 22209を映し出します。
by
by
Information Sciences Institute University of Southern California 4676 Admiralty Way Marina del Rey, California 90291 January 1980 Transmission Control Protocol
南カリフォルニア4676海軍本部Wayマリナデルレイの情報Sciences Institute大学、カリフォルニア90291 1980年1月の通信制御プロトコル
TABLE OF CONTENTS
目次
PREFACE ........................................................ iii
PREFACE… iii
1. INTRODUCTION ..................................................... 1
1. 序論… 1
1.1 Motivation .................................................... 1 1.2 Scope ......................................................... 2 1.3 About This Document ........................................... 2 1.4 Interfaces .................................................... 3 1.5 Operation ..................................................... 3
1.1動機… 1 1.2範囲… 2 1.3 このドキュメントに関して… 2 1.4 連結します… 3 1.5操作… 3
2. PHILOSOPHY ....................................................... 7
2. 哲学… 7
2.1 Elements of the Internetwork System ........................... 7 2.2 Model of Operation ............................................ 7 2.3 The Host Environment .......................................... 8 2.4 Interfaces .................................................... 9 2.5 Relation to Other Protocols ................................... 9 2.6 Reliable Communication ....................................... 10 2.7 Connection Establishment and Clearing ........................ 10 2.8 Data Communication ........................................... 12 2.9 Precedence and Security ...................................... 13 2.10 Robustness Principle ......................................... 13
2.1 インターネットワークシステムのElements… 7 操作の2.2モデル… 7 2.3 ホスト環境… 8 2.4 連結します… 9 他のプロトコルとの2.5関係… 9 2.6 信頼できるコミュニケーション… 10 2.7 コネクション確立と開拓地… 10 2.8データ通信… 12 2.9の先行とセキュリティ… 13 2.10堅牢性の原則… 13
3. FUNCTIONAL SPECIFICATION ........................................ 15
3. 機能的な仕様… 15
3.1 Header Format ................................................ 15 3.2 Terminology .................................................. 19 3.3 Sequence Numbers ............................................. 24 3.4 Establishing a connection .................................... 29 3.5 Closing a Connection ......................................... 35 3.6 Precedence and Security ...................................... 38 3.7 Data Communication ........................................... 38 3.8 Interfaces ................................................... 42 3.9 Event Processing ............................................. 52
3.1 ヘッダー形式… 15 3.2用語… 19 3.3の一連番号… 24 3.4 取引関係を築きます… 29 3.5 接続を終えます… 35 3.6の先行とセキュリティ… 38 3.7データ通信… 38 3.8 連結します… 42 3.9 イベント処理… 52
GLOSSARY ............................................................ 75
用語集… 75
REFERENCES .......................................................... 83
参照… 83
[Page i]
[ページi]
January 1980 Transmission Control Protocol
1980年1月の通信制御プロトコル
[Page ii]
[ページii]
January 1980 Transmission Control Protocol
1980年1月の通信制御プロトコル
PREFACE
序文
This document describes the DoD Standard Transmission Control Protocol (TCP). There have been eight earlier editions of the ARPA TCP specification on which this standard is based, and the present text draws heavily from them. There have been many contributors to this work both in terms of concepts and in terms of text. This edition incorporates the addition of security, compartmentation, and precedence concepts into the TCP specification.
このドキュメントはDoD Standard通信制御プロトコル(TCP)について説明します。 この規格が基づいているARPA TCP仕様の8つの以前の版がありました、そして、現在のテキストは大いにそれらを引き出します。 概念とテキストに関してこの仕事への多くの貢献者がありました。 この版はセキュリティ、コンパートメント、および先行概念の追加をTCP仕様に取り入れます。
Jon Postel
ジョン・ポステル
Editor
エディタ
[Page iii]
[ページiii]
January 1980 RFC:761 IEN:129 Replaces: IENs 124, 112, 81, 55, 44, 40, 27, 21, 5
1980年1月のRFC: 761 IEN: 129 取り替えます: IENs124、112、81、55、44、40、27、21、5
DOD STANDARD
DOD規格
TRANSMISSION CONTROL PROTOCOL
通信制御プロトコル
1. INTRODUCTION
1. 序論
The Transmission Control Protocol (TCP) is intended for use as a highly reliable host-to-host protocol between hosts in packet-switched computer communication networks, and especially in interconnected systems of such networks.
通信制御プロトコル(TCP)は使用のためにパケット交換型コンピュータ通信ネットワーク、および特にそのようなネットワークの相互接続システムのホストの間の高信頼性ホスト間プロトコルとして意図します。
This document describes the functions to be performed by the Transmission Control Protocol, the program that implements it, and its interface to programs or users that require its services.
このドキュメントは、通信制御プロトコル、それを実装するプログラム、およびそのインタフェースによってサービスを必要とするプログラムかユーザに実行されるために機能について説明します。
1.1. Motivation
1.1. 動機
Computer communication systems are playing an increasingly important role in military, government, and civilian environments. This document primarily focuses its attention on military computer communication requirements, especially robustness in the presence of communication unreliability and availability in the presence of congestion, but many of these problems are found in the civilian and government sector as well.
コンピュータ通信系は軍、政府、および民間人環境におけるますます重要な役割を果たしています。 このドキュメントは混雑があるとき主として軍用コンピュータコミュニケーション要件における注意、コミュニケーション非信頼性があるとき特に丈夫さ、および有用性の焦点を合わせますが、これらの問題の多くがまた、民間人と政府部門で見つけられます。
As strategic and tactical computer communication networks are developed and deployed, it is essential to provide means of interconnecting them and to provide standard interprocess communication protocols which can support a broad range of applications. In anticipation of the need for such standards, the Deputy Undersecretary of Defense for Research and Engineering has declared the Transmission Control Protocol (TCP) described herein to be a basis for DoD-wide inter-process communication protocol standardization.
戦略の、そして、戦術のコンピュータ通信ネットワークが発展して、配布されるとき、それらとインタコネクトする手段を提供して、広範囲なアプリケーションをサポートすることができる標準のプロセス間通信プロトコルを提供するのは不可欠です。 そのような規格の必要性を予測して、ResearchとEngineeringのためのDefenseの次官代理は、ここに説明された通信制御プロトコル(TCP)がDoD全体の相互プロセス通信プロトコル標準化の基礎であると宣言しました。
TCP is a connection-oriented, end-to-end reliable protocol designed to fit into a layered hierarchy of protocols which support multi-network applications. The TCP provides for reliable inter-process communication between pairs of processes in host computers attached to distinct but interconnected computer communication networks. Very few assumptions are made as to the reliability of the communication protocols below the TCP layer. TCP assumes it can obtain a simple, potentially unreliable datagram service from the lower level protocols. In principle, the TCP should be able to operate above a wide spectrum of communication systems ranging from hard-wired connections to packet-switched or circuit-switched networks.
TCPはマルチネットワークアプリケーションをサポートするプロトコルの層にされた階層構造に収まるように設計された接続指向の、そして、終わりから終わりに信頼できるプロトコルです。 TCPは異なりましたが、インタコネクトされたコンピュータ通信ネットワークに付けられたホストコンピュータの組のプロセスの信頼できる相互プロセスコミュニケーションに備えます。 ほんのわずかな仮定は通信プロトコルの信頼性に関してTCP層の下でされます。 TCPは、下のレベルプロトコルから簡単で、潜在的に頼り無いデータグラムサービスを得ることができると仮定します。 原則として、TCPはハード・ワイヤード接続からパケットで切り換えられるまで及ぶ通信系か回路交換ネットワークの広いスペクトルを超えて作動するはずであることができます。
[Page 1]
[1ページ]
January 1980 Transmission Control Protocol Introduction
1980年1月の通信制御プロトコル序論
TCP is based on concepts first described by Cerf and Kahn in [1]. The TCP fits into a layered protocol architecture just above a basic Internet Protocol [2] which provides a way for the TCP to send and receive variable-length segments of information enclosed in internet datagram "envelopes". The internet datagram provides a means for addressing source and destination TCPs in different networks. The internet protocol also deals with any fragmentation or reassembly of the TCP segments required to achieve transport and delivery through multiple networks and interconnecting gateways. The internet protocol also carries information on the precedence, security classification and compartmentation of the TCP segments, so this information can be communicated end-to-end across multiple networks.
TCPは最初に[1]でサーフとカーンによって説明された概念に基づいています。 TCPはすぐTCPがインターネットデータグラム「封筒」に同封された情報の可変長のセグメントを送って、受ける方法を提供する基本的なインターネットプロトコル[2]を超えて層にされたプロトコルアーキテクチャに収まります。 インターネットデータグラムは異なったネットワークでソースと目的地がTCPsであると扱うための手段を提供します。 また、インターネットプロトコルはどんな断片化にも対処するか、またはTCPセグメントの再アセンブリが複数のネットワークとゲートウェイとインタコネクトするのによる輸送と配送を達成するのが必要です。 したがって、この情報は、コミュニケートしている複数のネットワークの向こう側の終わりからまた、インターネットプロトコルがTCPセグメントの先行、セキュリティ分類、およびコンパートメントの情報を運んで、終わりであるかもしれません。
Protocol Layering
プロトコルレイヤリング
+---------------------+ | higher-level | +---------------------+ | TCP | +---------------------+ | internet protocol | +---------------------+ |communication network| +---------------------+
+---------------------+ | よりハイレベル| +---------------------+ | TCP| +---------------------+ | インターネットプロトコル| +---------------------+ |通信ネットワーク| +---------------------+
Figure 1
図1
Much of this document is written in the context of TCP implementations which are co-resident with higher level protocols in the host computer. As a practical matter, many computer systems will be connected to networks via front-end computers which house the TCP and internet protocol layers, as well as network specific software. The TCP specification describes an interface to the higher level protocols which appears to be implementable even for the front-end case, as long as a suitable host-to-front end protocol is implemented.
より高い平らなプロトコルがホストコンピュータにある状態で、このドキュメントの多くがコレジデントであるTCP実装の文脈に書かれています。 実際問題として、多くのコンピュータ・システムが、TCPとインターネットプロトコルがそれの家を層にするフロントエンドコンピュータを通してネットワークに関連づけられて、特定のソフトウェアをネットワークでつなぐでしょう。 TCP仕様はフロントエンドケースにさえ実装可能であるように見えるインタフェースをより高い平らなプロトコルに説明します、ホストからフロントエンドへの適当なプロトコルが実装される限り。
1.2. Scope
1.2. 範囲
The TCP is intended to provide a reliable process-to-process communication service in a multinetwork environment. The TCP is intended to be a host-to-host protocol in common use in multiple networks.
TCPが信頼できるプロセス間通信サービスを「マルチ-ネットワーク」環境に提供することを意図します。 TCPは複数のネットワークにおける共用のホスト間プロトコルであることを意図します。
1.3. About this Document
1.3. このDocumentに関して
This document represents a specification of the behavior required of any TCP implementation, both in its interactions with higher level protocols and in its interactions with other TCPs. The rest of this
このドキュメントはどんなTCP実装についても必要である振舞いの仕様を表します、より高い平らなプロトコルと他のTCPsとのその相互作用における相互作用で両方の、。 この残り
[Page 2]
[2ページ]
January 1980 Transmission Control Protocol Introduction
1980年1月の通信制御プロトコル序論
section offers a very brief view of the protocol interfaces and operation. Section 2 summarizes the philosophical basis for the TCP design. Section 3 offers both a detailed description of the actions required of TCP when various events occur (arrival of new segments, user calls, errors, etc.) and the details of the formats of TCP segments.
セクションはプロトコルインタフェースと操作の非常に簡潔な意見を提供します。 セクション2はTCPデザインの哲学的な基礎をまとめます。 セクション3は様々なイベントが起こるときTCPについて必要である動作(新しいセグメント、ユーザ呼び出し、誤りなどの到着)の詳述とTCPセグメントの形式の詳細の両方を提供します。
1.4. Interfaces
1.4. インタフェース
The TCP interfaces on one side to user or application processes and on the other side to a lower level protocol such as Internet Protocol.
TCPはユーザへの半面かアプリケーション・プロセスの上と、そして、インターネットプロトコルなどの下のレベルプロトコルへの反対側の上に連結します。
The interface between an application process and the TCP is illustrated in reasonable detail. This interface consists of a set of calls much like the calls an operating system provides to an application process for manipulating files. For example, there are calls to open and close connections and to send and receive letters on established connections. It is also expected that the TCP can asynchronously communicate with application programs. Although considerable freedom is permitted to TCP implementors to design interfaces which are appropriate to a particular operating system environment, a minimum functionality is required at the TCP/user interface for any valid implementation.
アプリケーション・プロセスとTCPとのインタフェースは詳細に妥当な例証されます。 このインタフェースはオペレーティングシステムがファイルを操作するためのアプリケーション・プロセスに提供する呼び出しのような1セットの呼び出しから成ります。 例えば、確立した接続での手紙を接続を開いて、終えて、送って、受け取るという要求があります。 また、TCPがアプリケーション・プログラムで非同期に交信できると予想されます。かなりの自由が特定のオペレーティングシステム環境に適切なインタフェースを設計するTCP作成者に受入れられますが、最小の機能性がどんな有効な実装にもTCP/ユーザーインタフェースで必要です。
The interface between TCP and lower level protocol is essentially unspecified except that it is assumed there is a mechanism whereby the two levels can asynchronously pass information to each other. Typically, one expects the lower level protocol to specify this interface. TCP is designed to work in a very general environment of interconnected networks. The lower level protocol which is assumed throughout this document is the Internet Protocol [2].
2つのレベルが情報を互いに非同期に渡すことができるメカニズムがあると思われるのを除いて、TCPと下のレベルプロトコルとのインタフェースは本質的には不特定です。 通常、人は、下のレベルプロトコルがこのインタフェースを指定すると予想します。 TCPは、相互接続ネットワークの非常に一般的な環境で働くように設計されています。 このドキュメント中で想定される下のレベルプロトコルはインターネットプロトコル[2]です。
1.5. Operation
1.5. 操作
As noted above, the primary purpose of the TCP is to provide reliable, securable logical circuit or connection service between pairs of processes. To provide this service on top of a less reliable internet communication system requires facilities in the following areas:
上で述べたように、TCPのプライマリ目的は信頼できて、手に入れられる論理回路か接続サービスを組のプロセスの間に提供することです。 それほど高信頼でないインターネット通信系の上でこのサービスを提供するのは以下の領域の施設を必要とします:
Basic Data Transfer Reliability Flow Control Multiplexing Connections Precedence and Security
基礎データ転送信頼性のフロー制御マルチプレクシングコネクションズ先行とセキュリティ
The basic operation of the TCP in each of these areas is described in the following paragraphs.
それぞれのこれらの領域でのTCPの基本的な操作は以下のパラグラフで説明されます。
[Page 3]
[3ページ]
January 1980 Transmission Control Protocol Introduction
1980年1月の通信制御プロトコル序論
Basic Data Transfer:
基礎データは移されます:
The TCP is able to transfer a continuous stream of octets in each direction between its users by packaging some number of octets into segments for transmission through the internet system. In this stream mode, the TCPs decide when to block and forward data at their own convenience.
TCPは、インターネットシステムを通してトランスミッションのために何らかの数の八重奏をセグメントにパッケージすることによって、ユーザの間の各方向に八重奏の連続したストリームを移すことができます。 このストリームモードで、TCPsはそれら自身の便利にいつデータを妨げて、転送するかを決めます。
For users who desire a record-oriented service, the TCP also permits the user to submit records, called letters, for transmission. When the sending user indicates a record boundary (end-of-letter), this causes the TCPs to promptly forward and deliver data up to that point to the receiver.
また、記録指向のサービスを望んでいるユーザに関しては、TCPは、ユーザがトランスミッションのために手紙と呼ばれる記録を提出するのを可能にします。 送付ユーザが境界の記録(手紙の端)を示すとき、これは、TCPsが即座にデータを受信機にそのポイントまで転送して、提供することを引き起こします。
Reliability:
信頼性:
The TCP must recover from data that is damaged, lost, duplicated, or delivered out of order by the internet communication system. This is achieved by assigning a sequence number to each octet transmitted, and requiring a positive acknowledgment (ACK) from the receiving TCP. If the ACK is not received within a timeout interval, the data is retransmitted. At the receiver, the sequence numbers are used to correctly order segments that may be received out of order and to eliminate duplicates. Damage is handled by adding a checksum to each segment transmitted, checking it at the receiver, and discarding damaged segments.
TCPはインターネット通信系によって故障していた状態で破損するか、失われているか、コピーされるか、または提供されるデータから回復しなければなりません。 これは、伝えられて、受信TCPから肯定応答(ACK)を必要とする各八重奏に一連番号を割り当てることによって、達成されます。 ACKがタイムアウト間隔以内に受け取られないなら、データは再送されます。 受信機では、一連番号は、正しく故障していた状態で受け取られるかもしれないセグメントを命令して、写しを排除するのに使用されます。 損害は受信機でそれをチェックして、伝えられた各セグメントにチェックサムを加えることによって、扱われました、そして、捨てるのはセグメントを破損しました。
As long as the TCPs continue to function properly and the internet system does not become completely partitioned, no transmission errors will affect the users. TCP recovers from internet communication system errors.
TCPsが、適切に機能し続けて、インターネットシステムが完全に仕切られるようにならない限り、どんな伝送エラーもユーザに影響しないでしょう。 TCPはインターネットコミュニケーションシステム・エラーから回復します。
Flow Control:
フロー制御:
TCP provides a means for the receiver to govern the amount of data sent by the sender. This is achieved by returning a "window" with every ACK indicating a range of acceptable sequence numbers beyond the last segment successfully received. For stream mode, the window indicates an allowed number of octets that the sender may transmit before receiving further permission. For record mode, the window indicates an allowed amount of buffer space the sender may consume, this may be more than the number of data octets transmitted if there is a mismatch between letter size and buffer size.
TCPは受信機が送付者によって送られたデータ量を決定する手段を提供します。 これは、あらゆるACKが首尾よく受け取られた最後のセグメントを超えてさまざまな許容できる一連番号を示していて「窓」を返すことによって、達成されます。 ストリームモードのために、窓はさらなる許可を受ける前に送付者が伝えるかもしれない許容数の八重奏を示します。 レコード・モードのために、窓が送付者が消費するかもしれないバッファ領域の許容量を示して、これは手紙サイズとバッファサイズの間には、ミスマッチがあればデータ八重奏の数が伝わったより多いかもしれません。
[Page 4]
[4ページ]
January 1980 Transmission Control Protocol Introduction
1980年1月の通信制御プロトコル序論
Multiplexing:
マルチプレクシング:
To allow for many processes within a single Host to use TCP communication facilities simultaneously, the TCP provides a set of addresses or ports within each host. Concatenated with the network and host addresses from the internet communication layer, this forms a socket. A pair of sockets uniquely identifies each connection. That is, a socket may be simultaneously used in multiple connections.
独身のHostの中の多くのプロセスが同時にTCP通信機器を使用するのを許容するために、TCPは各ホストの中で1セットのアドレスかポートを提供します。 インターネットコミュニケーション層からのネットワークとホスト・アドレスで連結されていて、これはソケットを形成します。 1組のソケットは唯一各接続を特定します。 すなわち、ソケットは同時に、複数の接続に使用されるかもしれません。
The binding of ports to processes is handled independently by each Host. However, it proves useful to attach frequently used processes (e.g., a "logger" or timesharing service) to fixed sockets which are made known to the public. These services can then be accessed through the known addresses. Establishing and learning the port addresses of other processes may involve more dynamic mechanisms.
プロセスへのポートの結合は各Hostによって独自に扱われます。 しかしながら、頻繁に使用されたプロセス(例えば、「きこり」か時分割サービス)を公表される固定ソケットに取り付けるのが役に立つと判明します。 そして、知られているアドレスを通ってこれらのサービスにアクセスできます。 他のプロセスのポートアドレスを確立して、学ぶと、よりダイナミックなメカニズムはかかわるかもしれません。
Connections:
コネクションズ:
The reliability and flow control mechanisms described above require that TCPs initialize and maintain certain status information for each data stream. The combination of this information, including sockets, sequence numbers, and window sizes, is called a connection. Each connection is uniquely specified by a pair of sockets identifying its two sides.
信頼性と上で説明されたフロー制御メカニズムは、TCPsが各データ・ストリームのためのある状態情報を初期化して、保守するのを必要とします。 ソケット、一連番号、およびウィンドウサイズを含むこの情報の組み合わせは接続と呼ばれます。 各接続は2つの側を特定する1組のソケットによって唯一指定されます。
When two processes wish to communicate, their TCP's must first establish a connection (initialize the status information on each side). When their communication is complete, the connection is terminated or closed to free the resources for other uses.
2つのプロセスであるときに、伝える願望、それらのTCPのものは最初に、接続を確立しなければなりません(それぞれの側で状態情報を初期化してください)。 それらのコミュニケーションが完全であるときに、接続は、他の用途のためのリソースを解放するために終えられるか、または閉店します。
Since connections must be established between unreliable hosts and over the unreliable internet communication system, a handshake mechanism with clock-based sequence numbers is used to avoid erroneous initialization of connections.
頼り無いホストの間と、そして、頼り無いインターネット通信系の上で接続を確立しなければならないので、時計ベースの一連番号がある握手メカニズムは接続の誤った初期化を避けるのに使用されます。
Precedence and Security:
先行とセキュリティ:
The users of TCP may indicate the security and precedence of their communication. Provision is made for default values to be used when these features are not needed.
TCPのユーザは彼らのコミュニケーションのセキュリティと先行を示すかもしれません。 これらの特徴は必要でないときに、デフォルト値が使用されるのを設備をします。
[Page 5]
[5ページ]
January 1980 Transmission Control Protocol
1980年1月の通信制御プロトコル
[Page 6]
[6ページ]
January 1980 Transmission Control Protocol
1980年1月の通信制御プロトコル
2. PHILOSOPHY
2. 哲学
2.1. Elements of the Internetwork System
2.1. インターネットワークシステムのElements
The internetwork environment consists of hosts connected to networks which are in turn interconnected via gateways. It is assumed here that the networks may be either local networks (e.g., the ETHERNET) or large networks (e.g., the ARPANET), but in any case are based on packet switching technology. The active agents that produce and consume messages are processes. Various levels of protocols in the networks, the gateways, and the hosts support an interprocess communication system that provides two-way data flow on logical connections between process ports.
インターネットワーク環境はゲートウェイを通して順番にインタコネクトされるネットワークに接続されたホストから成ります。 ここで、ネットワークが企業内情報通信網(例えば、イーサネット)か大きいネットワークのどちらかであるかもしれません(例えば、アルパネット)が、どのような場合でも、パケット交換技術に基づいていると思われます。 メッセージを出して、消費する活発なエージェントはプロセスです。 ネットワークにおける、様々なレベルのプロトコル、ゲートウェイ、およびホストはプロセスポートの間の論理的な接続に関する両用データフローを提供するプロセス間通信システムをサポートします。
We specifically assume that data is transmitted from host to host through means of a set of networks. When we say network, we have in mind a packet switched network (PSN). This assumption is probably unnecessary, since a circuit switched network or a hybrid combination of the two could also be used; but for concreteness, we explicitly assume that the hosts are connected to one or more packet switches of a PSN.
私たちは、データが1セットのネットワークによってホストからホストまで送られると明確に思います。 ネットワークを言うとき、私たちはパケット交換網(PSN)を考えています。 この仮定はたぶん不要です、また、回路交換網か2つのもののハイブリッド組み合わせを使用できたので。 しかし、具体性のために、私たちは、ホストがPSNの1個以上のパケット交換機に接続されると明らかに思います。
The term packet is used generically here to mean the data of one transaction between a host and a packet switch. The format of data blocks exchanged between the packet switches in a network will generally not be of concern to us.
用語パケットは、ホストとパケット交換機の間の1つのトランザクションに関するデータを意味するのにここで一般的に使用されます。 一般に、パケット交換機の間でネットワークで交換されたデータ・ブロックの形式は私たちにとって重要にならないでしょう。
Hosts are computers attached to a network, and from the communication network's point of view, are the sources and destinations of packets. Processes are viewed as the active elements in host computers (in accordance with the fairly common definition of a process as a program in execution). Even terminals and files or other I/O devices are viewed as communicating with each other through the use of processes. Thus, all communication is viewed as inter-process communication.
ホストはネットワークと、通信ネットワークの観点から取り付けられたコンピュータがパケットのソースと目的地であるということです。 プロセスは能動素子としてホストコンピュータ(実行におけるプログラムとしてのプロセスのかなり一般的な定義に従って)で見なされます。 端末とファイルか他の入出力デバイスさえプロセスの使用で互いにコミュニケートすると見なされます。 したがって、すべてのコミュニケーションが相互プロセスコミュニケーションとして見なされます。
Since a process may need to distinguish among several communication streams between itself and another process (or processes), we imagine that each process may have a number of ports through which it communicates with the ports of other processes.
プロセスが、それ自体と別のプロセス(または、プロセス)の間のいくつかのコミュニケーションストリームの中で区別する必要があるかもしれないので、私たちは、各プロセスにはそれが他のプロセスのポートで交信するポートの数があるかもしれないと想像します。
2.2. Model of Operation
2.2. 操作のモデル
Processes transmit data by calling on the TCP and passing buffers of data as arguments. The TCP packages the data from these buffers into segments and calls on the internet module to transmit each segment to the destination TCP. The receiving TCP places the data from a segment into the receiving user's buffer and notifies the receiving user. The TCPs include control information in the segments which they use to ensure reliable ordered data transmission.
プロセスは、TCPを訪問して、議論としてデータに関するバッファを渡すことによって、データを送ります。 TCPは、これらのバッファからのデータをセグメントにパッケージして、インターネットモジュールが各セグメントを目的地TCPに伝えるよう呼びかけます。 受信TCPはデータをセグメントから受信ユーザのバッファの中に置いて、受信ユーザに通知します。 TCPsはそれらが信頼できる規則正しいデータ伝送を確実にするのに使用するセグメントで制御情報を含んでいます。
[Page 7]
[7ページ]
January 1980 Transmission Control Protocol Philosophy
1980年1月の通信制御プロトコル哲学
The model of internet communication is that there is an internet protocol module associated with each TCP which provides an interface to the local network. This internet module packages TCP segments inside internet datagrams and routes these datagrams to a destination internet module or intermediate gateway. To transmit the datagram through the local network, it is embedded in a local network packet.
インターネットコミュニケーションのモデルはインタフェースを企業内情報通信網に提供する各TCPに関連しているインターネットプロトコルモジュールがあるということです。 このインターネットモジュールは、インターネットデータグラムの中にTCPセグメントをパッケージして、目的地インターネットモジュールか中間ゲートウェイにこれらのデータグラムを発送します。 企業内情報通信網を通してデータグラムを送るために、それは企業内情報通信網パケットに埋め込まれています。
The packet switches may perform further packaging, fragmentation, or other operations to achieve the delivery of the local packet to the destination internet module.
パケット交換機は、目的地インターネットモジュールに地方のパケットの配送を達成するために一層のパッケージ、断片化、または他の操作を実行するかもしれません。
At a gateway between networks, the internet datagram is "unwrapped" from its local packet and examined to determine through which network the internet datagram should travel next. The internet datagram is then "wrapped" in a local packet suitable to the next network and routed to the next gateway, or to the final destination.
ネットワークの間のゲートウェイでは、インターネットデータグラムは、地方のパケットから「開けられ」て、インターネットデータグラムが次にどのネットワークを通って移動するはずであるかを決定するために調べられます。 インターネットデータグラムは、次に、次のネットワークに適した地方のパケットで「包装され」て、隣のゲートウェイ、または、最終的な目的地に発送されます。
A gateway is permitted to break up an internet datagram into smaller internet datagram fragments if this is necessary for transmission through the next network. To do this, the gateway produces a set of internet datagrams; each carrying a fragment. Fragments may be broken into smaller ones at intermediate gateways. The internet datagram fragment format is designed so that the destination internet module can reassemble fragments into internet datagrams.
これが次のネットワークを通したトランスミッションに必要であるなら、ゲートウェイが、より小さいインターネットデータグラム・フラグメントにインターネットデータグラムを壊れさせるのが許容されています。 これをするために、ゲートウェイは1セットのインターネットデータグラムを生産します。 それぞれのキャリングa断片。 より小さいものは中間ゲートウェイで断片に細かく分けられるかもしれません。 インターネットデータグラム・フラグメント形式は、目的地インターネットモジュールがインターネットデータグラムに断片を組み立て直すことができるように、設計されています。
A destination internet module unwraps the segment from the datagram (after reassembling the datagram, if necessary) and passes it to the destination TCP.
目的地インターネットモジュールは、データグラム(データグラムを組み立て直した後に必要なら)からセグメントを開けて、目的地TCPにそれを通過します。
This simple model of the operation glosses over many details. One important feature is the type of service. This provides information to the gateway (or internet module) to guide it in selecting the service parameters to be used in traversing the next network. Included in the type of service information is the precedence of the datagram. Datagrams may also carry security information to permit host and gateways that operate in multilevel secure environments to properly segregate datagrams for security considerations.
操作のこの単純モデルは多くの詳細を言い繕います。 1つの重要な特徴がサービスのタイプです。 これは、サービスパラメタが次のネットワークを横断する際に使用されるのを選択する際にそれを誘導するためにゲートウェイ(または、インターネットモジュール)に情報を供給します。 サービス情報のタイプで含まれているのは、データグラムの先行です。 また、データグラムは、セキュリティ問題のために適切にデータグラムを隔離するために多レベル安全な環境で手術されるホストとゲートウェイを可能にするためにセキュリティ情報を運ぶかもしれません。
2.3. The Host Environment
2.3. ホスト環境
The TCP is assumed to be a module in a time sharing operating system. The users access the TCP much like they would access the file system. The TCP may call on other operating system functions, for example, to manage data structures. The actual interface to the network is assumed to be controlled by a device driver module. The TCP does not call on the network device driver directly, but rather calls on the internet datagram protocol module which may in turn call on the device driver.
TCPはタイムシェアリングオペレーティングシステムによるモジュールであると思われます。 彼らがファイルシステムにアクセスするようにユーザはTCPにアクセスします。 例えば、TCPは、データ構造を管理するために他のオペレーティングシステム機能を訪問するかもしれません。 デバイスドライバモジュールでネットワークへの実際のインタフェースが制御されると思われます。 TCPは直接ネットワークデバイスドライバを訪問しませんが、むしろ順番にデバイスドライバを訪問するかもしれないインターネットデータグラムプロトコルモジュールを訪問します。
[Page 8]
[8ページ]
January 1980 Transmission Control Protocol Philosophy
1980年1月の通信制御プロトコル哲学
Though it is assumed here that processes are supported by the host operating system, the mechanisms of TCP do not preclude implementation of the TCP in a front-end processor. However, in such an implementation, a host-to-front-end protocol must provide the functionality to support the type of TCP-user interface described above.
ここでプロセスがホスト・オペレーティング・システムによってサポートされると思われますが、TCPのメカニズムはフロントエンドプロセッサでTCPの実装を排除しません。 しかしながら、そのような実装に、ホストからフロントエンドへのプロトコルは、上で説明されたTCP-ユーザーインタフェースのタイプをサポートするために機能性を提供しなければなりません。
2.4. Interfaces
2.4. インタフェース
The TCP/user interface provides for calls made by the user on the TCP to OPEN or CLOSE a connection, to SEND or RECEIVE data, or to obtain STATUS about a connection. These calls are like other calls from user programs on the operating system, for example, the calls to open, read from, and close a file.
TCP/ユーザーインタフェースは、TCPの上のユーザによってオープンかCLOSE a接続、SENDかRECEIVEデータにかけられた電話か接続に関してSTATUSを入手するために提供されます。 これらの呼び出しがオペレーティングシステムのユーザ・プログラムからの他の呼び出しに似ていて、例えば、開くという要求は、ファイルを読んで、閉じます。
The TCP/internet interface provides calls to send and receive datagrams addressed to TCP modules in hosts anywhere in the internet system. These calls have parameters for passing the address, type of service, precedence, security, and other control information.
TCP/インターネットインタフェースはインターネットシステムでどこでもホストでTCPモジュールに扱われたデータグラムを送って、受け取るという要求を提供します。 これらの呼び出しには、アドレス、サービスのタイプ、先行、セキュリティ、および他の制御情報を通過するためのパラメタがあります。
2.5. Relation to Other Protocols
2.5. 他のプロトコルとの関係
The following diagram illustrates the place of the TCP in the protocol hierarchy:
以下のダイヤグラムはプロトコル階層でTCPの場所を例証します:
+------+ +-----+ +-----+ +-----+ |Telnet| | FTP | |Voice| ... | | Application Level +------+ +-----+ +-----+ +-----+ | | | | +-----+ +-----+ +-----+ | TCP | | RTP | ... | | Host Level +-----+ +-----+ +-----+ | | | +-------------------------------+ | Internet Protocol | Gateway Level +-------------------------------+ | +---------------------------+ | Local Network Protocol | Network Level +---------------------------+ |
+------+ +-----+ +-----+ +-----+ |telnet| | FTP| |声| ... | | アプリケーションレベル+------+ +-----+ +-----+ +-----+ | | | | +-----+ +-----+ +-----+ | TCP| | RTP| ... | | ホストレベル+-----+ +-----+ +-----+ | | | +-------------------------------+ | インターネットプロトコル| ゲートウェイレベル+-------------------------------+ | +---------------------------+ | 企業内情報通信網プロトコル| ネットワークレベル+---------------------------+ |
Protocol Relationships
プロトコル関係
Figure 2.
図2。
[Page 9]
[9ページ]
January 1980 Transmission Control Protocol Philosophy
1980年1月の通信制御プロトコル哲学
It is expected that the TCP will be able to support higher level protocols efficiently. It should be easy to interface higher level protocols like the ARPANET Telnet [3] or AUTODIN II THP to the TCP.
TCPが効率的により高い平らなプロトコルをサポートできると予想されます。 アルパネットのTelnet[3]やAUTODIN II THPのような、より高い平らなプロトコルをTCPに連結するのは簡単であるはずです。
2.6. Reliable Communication
2.6. 信頼できるコミュニケーション
A stream of data sent on a TCP connection is delivered reliably and in order at the destination.
データのストリームは、TCP接続が確かと目的地での注文で提供されるのを転送しました。
Transmission is made reliable via the use of sequence numbers and acknowledgments. Conceptually, each octet of data is assigned a sequence number. The sequence number of the first octet of data in a segment is the sequence number transmitted with that segment and is called the segment sequence number. Segments also carry an acknowledgment number which is the sequence number of the next expected data octet of transmissions in the reverse direction. When the TCP transmits a segment, it puts a copy on a retransmission queue and starts a timer; when the acknowledgment for that data is received, the segment is deleted from the queue. If the acknowledgment is not received before the timer runs out, the segment is retransmitted.
トランスミッションを一連番号と承認の使用で信頼できるようにします。 概念的に、一連番号はデータの各八重奏に割り当てられます。 セグメントにおける、データの最初の八重奏の一連番号は、そのセグメントで伝えられた一連番号であり、セグメント一連番号と呼ばれます。 また、セグメントは反対の方向へのトランスミッションの次の予想されたデータ八重奏の一連番号である確認応答番号を運びます。 TCPがセグメントを伝えるとき、コピーを再送キューに置いて、タイマを始動します。 そのデータのための承認が受け取られているとき、セグメントは待ち行列から削除されます。 タイマがなくなる前に承認が受け取られていないなら、セグメントは再送されます。
An acknowledgment by TCP does not guarantee that the data has been delivered to the end user, but only that the receiving TCP has taken the responsibility to do so.
TCPによる承認は、データがエンドユーザに提供されましたが、受信TCPがそうする責任を取るだけであったのを保証しません。
To govern the flow of data into a TCP, a flow control mechanism is employed. The the data receiving TCP reports a window to the sending TCP. This window specifies the number of octets, starting with the acknowledgment number that the data receiving TCP is currently prepared to receive.
データの流れをTCPに治めるために、フロー制御メカニズムは採用しています。 TCPを受けるデータは発信しているTCPに窓を報告します。 この窓は八重奏の数を指定します、データ受信TCPが現在受けるように準備される確認応答番号から始まって。
2.7. Connection Establishment and Clearing
2.7. コネクション確立と開拓地
To identify the separate data streams that a TCP may handle, the TCP provides a port identifier. Since port identifiers are selected independently by each operating system, TCP, or user, they might not be unique. To provide for unique addresses at each TCP, we concatenate an internet address identifying the TCP with a port identifier to create a socket which will be unique throughout all networks connected together.
TCPが扱うかもしれない別々のデータ・ストリームを特定するために、TCPはポート識別子を提供します。 ポート識別子が各オペレーティングシステム、TCP、またはユーザによって独自に選択されるので、彼らはユニークでないかもしれません。 各TCPにユニークなアドレスに備えるために、私たちは一緒に接続されたすべてのネットワーク中でユニークになるソケットを作成するためにポート識別子とTCPを同一視するインターネットアドレスを連結します。
A connection is fully specified by the pair of sockets at the ends. A local socket may participate in many connections to different foreign sockets. A connection can be used to carry data in both directions, that is, it is "full duplex".
接続は終わりにソケットの組によって完全に指定されます。 地方のソケットは異なった外国ソケットに多くの接続に参加するかもしれません。 両方の方向によるデータを運ぶのに接続を使用できます、すなわち、それは「全二重」です。
TCPs are free to associate ports with processes however they choose. However, several basic concepts seem necessary in any implementation.
彼らがどのように選んでも、TCPsは自由にポートをプロセスに関連づけることができます。 しかしながら、いくつかの基本概念がどんな実装でも必要に見えます。
[Page 10]
[10ページ]
January 1980 Transmission Control Protocol Philosophy
1980年1月の通信制御プロトコル哲学
There must be well-known sockets which the TCP associates only with the "appropriate" processes by some means. We envision that processes may "own" ports, and that processes can only initiate connections on the ports they own. (Means for implementing ownership is a local issue, but we envision a Request Port user command, or a method of uniquely allocating a group of ports to a given process, e.g., by associating the high order bits of a port name with a given process.)
TCPがどうでも「適切な」プロセスだけに関連づけるよく知られるソケットがあるに違いありません。 私たちはそれを思い描きます。プロセスはポートを「所有するかもしれません」、そして、プロセスはそれらが所有しているポートの上で接続を開始できるだけです。 (所有権を実装するための手段はローカルの問題ですが、私たちはRequest Portユーザコマンド、または唯一与えられたプロセス、例えば、交際するのによるポートのグループに与えられたプロセスのポート名の高位のビットを割り当てるメソッドを思い描きます。)
A connection is specified in the OPEN call by the local port and foreign socket arguments. In return, the TCP supplies a (short) local connection name by which the user refers to the connection in subsequent calls. There are several things that must be remembered about a connection. To store this information we imagine that there is a data structure called a Transmission Control Block (TCB). One implementation strategy would have the local connection name be a pointer to the TCB for this connection. The OPEN call also specifies whether the connection establishment is to be actively pursued, or to be passively waited for.
接続はオープン呼び出しで地方のポートと外国ソケット議論で指定されます。 代わりに、TCPはユーザがその後の呼び出しにおける接続について言及する(短い)の市内接続名前を提供します。 接続に関して覚えていなければならないいくつかのことがあります。 この情報を保存するために、私たちは、Transmission Control Block(TCB)と呼ばれるデータ構造があると想像します。 1つの実装戦略が、市内接続名が指針であることをこの接続のためのTCBに持っているでしょう。 また、オープン呼び出しは、コネクション確立が活発に追求されることになっているか、または受け身に待たれることになっているかを指定します。
A passive OPEN request means that the process wants to accept incoming connection requests rather than attempting to initiate a connection. Often the process requesting a passive OPEN will accept a connection request from any caller. In this case a foreign socket of all zeros is used to denote an unspecified socket. Unspecified foreign sockets are allowed only on passive OPENs.
プロセスが入って来る接続を受け入れたがっている受け身のオープン要求手段は開始するのを試みるよりむしろ接続を要求します。 しばしば、受け身のオープンを要求するプロセスはどんな訪問者からも接続要求を受け入れるでしょう。 この場合、すべてのゼロの外国ソケットは、不特定のソケットを指示するのに使用されます。 不特定の外国ソケットは受け身のOPENsだけに許容されています。
A service process that wished to provide services for unknown other processes could issue a passive OPEN request with an unspecified foreign socket. Then a connection could be made with any process that requested a connection to this local socket. It would help if this local socket were known to be associated with this service.
それが他の未知のプロセスのためのサービスを提供したがっていたサービス過程は不特定の外国ソケットによる受け身のオープン要求を出すかもしれません。 そして、この地方のソケットに接続を要求したどんなプロセスでも接続を作ることができました。 この地方のソケットがこのサービスに関連させているのが知られているなら、それは助かるでしょうに。
Well-known sockets are a convenient mechanism for a priori associating a socket address with a standard service. For instance, the "Telnet-Server" process might be permanently assigned to a particular socket, and other sockets might be reserved for File Transfer, Remote Job Entry, Text Generator, Echoer, and Sink processes (the last three being for test purposes). A socket address might be reserved for access to a "Look-Up" service which would return the specific socket at which a newly created service would be provided. The concept of a well-known socket is part of the TCP specification, but the assignment of sockets to services is outside this specification.
よく知られるソケットはソケットが標準のサービスで扱う先験的な仲間のための便利なメカニズムです。 例えば、「telnetサーバ」プロセスは永久に特定のソケットに割り当てられるかもしれません、そして、他のソケットはFile Transfer、Remote Job Entry、Text Generator、Echoer、およびSinkプロセス(テスト目的のためのものである最後の3)のために予約されるかもしれません。 ソケットアドレスは新たに作成されたサービスが提供される特定のソケットを返す「ルックアップ」サービスへのアクセスのために予約されるかもしれません。 よく知られるソケットの概念はTCP仕様の一部ですが、この仕様の外でサービスへのソケットの課題があります。
Processes can issue passive OPENs and wait for matching calls from other processes and be informed by the TCP when connections have been established. Two processes which issue calls to each other at the same time are correctly connected. This flexibility is critical for
プロセスを、他のプロセスから受け身のOPENsを発行して、合っている電話を待っていて、TCPは、接続がいつ確立されたかを知らすことができます。 同時に互いに呼び出しを発行する2つのプロセスが正しく接続されます。 この柔軟性はきわどいです。
[Page 11]
[11ページ]
January 1980 Transmission Control Protocol Philosophy
1980年1月の通信制御プロトコル哲学
the support of distributed computing in which components act asynchronously with respect to each other.
コンポーネントが互いに関して非同期に行動する分散コンピューティングのサポート。
There are two cases for matching the sockets in the local request and an incoming segment. In the first case, the local request has fully specified the foreign socket. In this case, the match must be exact. In the second case, the local request has left the foreign socket unspecified. In this case, any foreign socket is acceptable as long as the local sockets match.
ローカルの要求と入って来るセグメントでソケットを合わせるための2つのケースがあります。 前者の場合、ローカルの要求は外国ソケットを完全に指定しました。 この場合、マッチは正確であるに違いありません。 2番目の場合では、ローカルの要求は外国ソケットを不特定のままにしました。 この場合、合っている限り、どんな外国ソケットも許容できます。
If there are several pending passive OPENs (recorded in TCBs) with the same local socket, an incoming segment should be matched to a request with the specific foreign socket in the segment, if such a request exists, before selecting a request with an unspecified foreign socket.
数個の未定の受け身のOPENsが同じ地方のソケットであれば(TCBsに記録されます)、入って来るセグメントは特定の外国ソケットでセグメントで要求に合わせられるべきです、そのような要求が存在しているなら、不特定の外国ソケットによる要求を選択する前に。
The procedures to establish and clear connections utilize synchronize (SYN) and finis (FIN) control flags and involve an exchange of three messages. This exchange has been termed a three-way hand shake [4].
確立する手順と明確な接続が利用する、(SYN)と終り(FIN)の指揮旗を同期させてください、そして、3つのメッセージの交換にかかわってください。 この交換は3者間の手の震動[4]と呼ばれました。
A connection is initiated by the rendezvous of an arriving segment containing a SYN and a waiting TCB entry created by a user OPEN command. The matching of local and foreign sockets determines when a connection has been initiated. The connection becomes "established" when sequence numbers have been synchronized in both directions.
接続はSYNを含む到着セグメントとユーザオープン命令で作成された待ちTCBエントリーのランデブーで開始されます。 地方の、そして、外国のソケットのマッチングは、接続がいつ開始されたかを決定します。 一連番号が両方の方向と同期したとき、接続は「確立する」ようになります。
The clearing of a connection also involves the exchange of segments, in this case carrying the FIN control flag.
また、この場合FIN指揮旗を運んで、接続の開拓地はセグメントの交換にかかわります。
2.8. Data Communication
2.8. データ通信
The data that flows on a connection may be thought of as a stream of octets, or as a sequence of records. In TCP the records are called letters and are of variable length. The sending user indicates in each SEND call whether the data in that call completes a letter by the setting of the end-of-letter parameter.
接続に流れるデータは八重奏のストリームとして、または、記録の系列として考えられるかもしれません。 TCPでは、記録は、手紙と呼ばれて、可変長のものです。 送付ユーザは、それぞれのSEND呼び出しでそれのデータが呼ぶかどうかが手紙の端のパラメタの設定のそばで手紙を完成するのを示します。
The length of a letter may be such that it must be broken into segments before it can be transmitted to its destination. We assume that the segments will normally be reassembled into a letter before being passed to the receiving process. A segment may contain all or a part of a letter, but a segment never contains parts of more than one letter. The end of a letter is marked by the appearance of an EOL control flag in a segment. A sending TCP is allowed to collect data from the sending user and to send that data in segments at its own convenience, until the end of letter is signaled then it must send all unsent data. When a receiving TCP has a complete letter, it must not wait for more data from the sending TCP before passing the letter to the receiving process.
手紙の長さがそのようなものであるかもしれないので、それを目的地に送ることができる前に、セグメントをそれに細かく分けなければなりません。 私たちは、受信プロセスに通過される前に通常、セグメントが手紙に組み立て直されると思います。 セグメントは手紙のすべてか一部を含むかもしれませんが、セグメントは1つ以上の文字の部分を決して含んでいません。 手紙の端はセグメントにおける、EOL指揮旗の外観によって示されます。 送付TCPは送付ユーザからデータを集めて、手紙の端が合図されるまで、それ自身の便利でそのデータをセグメントで送ることができて、次に、それはすべてのunsentデータを送らなければなりません。 受信TCPに完全な手紙があるとき、受信プロセスへの手紙を渡す前に、それは発信しているTCPからの、より多くのデータを待ってはいけません。
[Page 12]
[12ページ]
January 1980 Transmission Control Protocol Philosophy
1980年1月の通信制御プロトコル哲学
There is a coupling between letters as sent and the use of buffers of data that cross the TCP/user interface. Each time an end-of-letter (EOL) flag is associated with data placed into the receiving user's buffer, the buffer is returned to the user for processing even if the buffer is not filled. If a letter is longer than the user's buffer, the letter is passed to the user in buffer size units, the last of which may be only partly full. The receiving TCP's buffer size may be communicated to the sending TCP when the connection is being established.
TCP/ユーザーインタフェースに交差する送られるとしての手紙とデータに関するバッファの使用の間には、カップリングがあります。 手紙の端(EOL)の旗が受信ユーザのバッファの中に置かれるデータに関連している各回、バッファがいっぱいにしないでも、処理のためにバッファをユーザに返します。 手紙がユーザのバッファより長いなら、手紙はバッファサイズ単位のユーザに渡されます。その最終は一部だけ完全であるかもしれません。 接続が確立されているとき、受信TCPのバッファサイズは発信しているTCPに伝えられるかもしれません。
The TCP is responsible for regulating the flow of segments on the connections, as a way of preventing itself from becoming saturated or overloaded with traffic. This is done using a window flow control mechanism. The data receiving TCP reports to the data sending TCP a window which is the range of sequence numbers of data octets that data receiving TCP is currently prepared to accept.
TCPは接続でのセグメントの流れを規制するのに責任があります、トラフィックで飽和状態にされているか、または積みすぎられたなるのからのそれ自体を防ぐ方法として。 これはウィンドウフロー制御メカニズムを使用し終わっています。 TCPを受けるデータは、TCPを受けるデータが現在受け入れるように準備されるとデータ八重奏の一連番号の範囲である窓をTCPに送るデータに報告します。
TCP also provides a means to communicate to the receiver of data that at some point further along in the data stream than the receiver is currently reading there is urgent data. TCP does not attempt to define what the user specifically does upon being notified of pending urgent data, but the general notion is that the receiving process should take action to read through the end urgent data quickly.
また、TCPは受信機よりデータでポイント遠い何らかのストリームで現在のそこでの読書が緊急のデータであるということであるデータの受信機に交信する手段を提供します。 TCPは、ユーザが未定の緊急のデータについて通知されるとき明確にすることを定義するのを試みませんが、一般的な概念は受信プロセスが終わりまですばやく緊急のデータを読むために行動を取るはずであるということです。
2.9. Precedence and Security
2.9. 先行とセキュリティ
The TCP makes use of the internet protocol type of service field and security option to provide precedence and security on a per connection basis to TCP users. Not all TCP modules will necessarily function in a multilevel secure environment, some may be limited to unclassified use only, and others may operate at only one security level and compartment. Consequently, some TCP implementations and services to users may be limited to a subset of the multilevel secure case.
TCPはサービスのタイプがさばいて、セキュリティが接続基礎あたりのaで先行とセキュリティをTCPユーザに提供するためにゆだねるインターネットプロトコルを利用します。 すべてのTCPモジュールが必ず多レベル安全な環境で機能するというわけではないでしょう、そして、或るものは非分類された使用だけに制限されるかもしれません、そして、他のものは1つのセキュリティー・レベルとコンパートメントだけで働くかもしれません。 その結果、ユーザに対するいくつかのTCP実装とサービスが多レベルの安全なケースの部分集合に制限されるかもしれません。
TCP modules which operate in a multilevel secure environment should properly mark outgoing segments with the security, compartment, and precedence. Such TCP modules should also provide to their users or higher level protocols such as Telnet or THP an interface to allow them to specify the desired security level, compartment, and precedence of connections.
多レベル安全な環境で作動するTCPモジュールは適切にセキュリティ、コンパートメント、および先行を外向的なセグメントに付けるべきです。 また、そのようなTCPモジュールが彼らのユーザに提供されるべきですか、またはTelnetかTHPなどの、より高い平らなプロトコルは接続の必要なセキュリティー・レベル、コンパートメント、および先行を指定するのを許容するインタフェースを提供します。
2.10. Robustness Principle
2.10. 堅牢性の原則
TCP implementations should follow a general principle of robustness: be conservative in what you do, be liberal in what you accept from others.
TCP実装は丈夫さの一般的な原則に従うべきです: あなたがすることで保守的であってください、そして、あなたが他のものから受け入れるもので寛容であってください。
[Page 13]
[13ページ]
January 1980 Transmission Control Protocol
1980年1月の通信制御プロトコル
[Page 14]
[14ページ]
January 1980 Transmission Control Protocol
1980年1月の通信制御プロトコル
3. FUNCTIONAL SPECIFICATION
3. 機能的な仕様
3.1. Header Format
3.1. ヘッダー形式
TCP segments are sent as internet datagrams. The Internet Protocol header carries several information fields, including the source and destination host addresses [2]. A TCP header follows the internet header, supplying information specific to the TCP protocol. This division allows for the existence of host level protocols other than TCP.
インターネットデータグラムとしてTCPセグメントを送ります。インターネットプロトコルヘッダーはいくつかの情報フィールドを運びます、ソースと目的地ホスト・アドレス[2]を含んでいて。 TCPプロトコルに特定の情報を提供して、TCPヘッダーはインターネットヘッダーについて来ます。 この分割はホストの存在のためにTCP以外の平らなプロトコルを許容します。
TCP Header Format
TCPヘッダー形式
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgment Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | |U|A|E|R|S|F| | | Offset| Reserved |R|C|O|S|Y|I| Window | | | |G|K|L|T|N|N| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ソースポート| 仕向港| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 一連番号| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 確認応答番号| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | データ| |U|A|E|R|S|F| | | 相殺されます。| 予約されます。|R|C|O|S|Y|I| 窓| | | |G|K|L|T|N|N| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | チェックサム| 緊急の指針| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | オプション| 詰め物| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | データ| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TCP Header Format
TCPヘッダー形式
Note that one tick mark represents one bit position.
1つのダニ麻痺が1つのビット位置を表すことに注意してください。
Figure 3.
図3。
Source Port: 16 bits
ソースポート: 16ビット
The source port number.
ソースポート番号。
Destination Port: 16 bits
仕向港: 16ビット
The destination port number.
目的地ポートナンバー。
[Page 15]
[15ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
Sequence Number: 32 bits
一連番号: 32ビット
The sequence number of the first data octet in this segment (except when SYN is present).
このセグメント(SYNが存在している時を除いた)の最初のデータ八重奏の一連番号。
Acknowledgment Number: 32 bits
確認応答番号: 32ビット
If the ACK control bit is set this field contains the value of the next sequence number the sender of the segment is expecting to receive. Once a connection is established this is always sent.
ACKコントロールビットが設定されるなら、この分野はセグメントの送付者が受けると予想している次の一連番号の値を含んでいます。 いったん接続を確立すると、いつもこれを送ります。
Data Offset: 4 bits
データは相殺されます: 4ビット
The number of 32 bit words in the TCP Header. This indicates where the data begins. The TCP header including options is an integral number of 32 bits long.
TCP Headerの32ビットの単語の数。 これは、データがどこで始まるかを示します。 長い間、オプションを含むTCPヘッダーは32ビットの整数です。
Reserved: 6 bits
予約される: 6ビット
Reserved for future use. Must be zero.
今後の使用のために、予約されます。 ゼロにならなければならなくなってください。
Control Bits: 8 bits (from left to right):
ビットを制御してください: 8ビット(左から右までの):
URG: Urgent Pointer field significant ACK: Acknowledgment field significant EOL: End of Letter RST: Reset the connection SYN: Synchronize sequence numbers FIN: No more data from sender
URG: 緊急のPointerは重要なACKをさばきます: 承認分野の重要なEOL: 手紙RSTの端: 接続SYNをリセットしてください: 一連番号FINを連動させてください: 送付者からのそれ以上のデータがありません。
Window: 16 bits
窓: 16ビット
The number of data octets beginning with the one indicated in the acknowledgment field which the sender of this segment is willing to accept.
もので始まるデータ八重奏の数は、承認分野でどれを受け入れるかを構わないこのセグメントの送付者が、思っている示しました。
Checksum: 16 bits
チェックサム: 16ビット
The checksum field is the 16 bit one's complement of the one's complement sum of all 16 bit words in the header and text. If a segment contains an odd number of header and text octets to be checksummed, the last octet is padded on the right with zeros to form a 16 bit word for checksum purposes. The pad is not transmitted as part of the segment. While computing the checksum, the checksum field itself is replaced with zeros.
チェックサム分野はヘッダーとテキストでのすべての16ビットの単語の1の補数合計の16ビットの1の補数です。 セグメントがchecksummedされるべきヘッダーとテキスト八重奏の奇数を含んでいるなら、最後の八重奏は右でゼロで水増しされて、チェックサム目的に対する16ビットの単語を形成します。 パッドはセグメントの一部として送られません。 チェックサムを計算している間、チェックサム野原自体をゼロに取り替えます。
The checksum also covers a 96 bit pseudo header conceptually prefixed to the TCP header. This pseudo header contains the Source
また、チェックサムは概念的にTCPヘッダーへ前に置かれた96ビットの疑似ヘッダーをカバーしています。 この疑似ヘッダーはSourceを含んでいます。
[Page 16]
[16ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
Address, the Destination Address, the Protocol, and TCP length. This gives the TCP protection against misrouted segments. This information is carried in the Internet Protocol and is transferred across the TCP/Network interface in the arguments or results of calls by the TCP on the IP.
アドレス、Destination Address、プロトコル、およびTCPの長さ。 これはmisroutedセグメントに対するTCP保護を与えます。 この情報は、インターネットプロトコルで運ばれて、議論におけるTCP/ネットワーク・インターフェースか呼び出しの結果の向こう側にIPのTCPによって移されます。
+--------------------------+ | Source Address | +--------------------------+ | Destination Address | +--------------------------+ | zero | PTCL | TCP Length | +--------------------------+
+--------------------------+ | ソースアドレス| +--------------------------+ | 送付先アドレス| +--------------------------+ | ゼロ| PTCL| TCPの長さ| +--------------------------+
The TCP Length is the TCP header plus the data length in octets (this is not an explicitly transmitted quantity, but is computed from the total length, and the header length).
TCP LengthはTCPヘッダーと八重奏でデータの長さ(これは、明らかに伝えられた量ではありませんが、全長、およびヘッダ長から計算される)です。
Urgent Pointer: 16 bits
緊急の指針: 16ビット
This field communicates the current value of the urgent pointer as a positive offset from the sequence number in this segment. The urgent pointer points to the sequence number of the octet following the urgent data. This field should only be interpreted in segments with the URG control bit set.
この分野は積極的なオフセットとして一連番号からこのセグメントで緊急の指針の現行価値を伝えます。 緊急のデータに従って、緊急の指針は八重奏の一連番号を示します。 URGコントロールビットがセットした状態で、この分野はセグメントで解釈されるだけであるべきです。
Options: variable
オプション: 変数
Options may occupy space at the end of the TCP header and are a multiple of 8 bits in length. All options are included in the checksum. An option may begin on any octet boundary. There are two cases for the format of an option:
オプションは、TCPヘッダーの端で場所を塞ぐかもしれなくて、長さが8ビットの倍数です。 すべてのオプションがチェックサムに含まれています。 オプションはどんな八重奏境界でも始まるかもしれません。 オプションの形式のための2つのケースがあります:
Case 1: A single octet of option-kind.
ケース1: オプション種類のただ一つの八重奏。
Case 2: An octet of option-kind, an octet of option-length, and the actual option-data octets.
ケース2: オプション種類の八重奏、オプション長さの八重奏、および実際のオプションデータ八重奏。
The option-length counts the two octets of option-kind and option-length as well as the option-data octets.
オプション長さはオプションデータ八重奏と同様にオプション種類とオプション長さの2つの八重奏を数えます。
Note that the list of options may be shorter than the data offset field might imply. The content of the header beyond the End-of-Option option should be header padding (i.e., zero).
オプションのリストがデータオフセット分野が含意するかもしれないより短いかもしれないことに注意してください。 オプションのEndオプションを超えたヘッダーの内容はヘッダー詰め物であるべきです(すなわち、ゼロ)。
A TCP must implement all options.
TCPはすべてのオプションを実装しなければなりません。
[Page 17]
[17ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
Currently defined options include (kind indicated in octal):
現在定義されたオプションは(8進で示された種類)を含んでいます:
Kind Length Meaning ---- ------ ------- 0 - End of option list. 1 - No-Operation. 100 - Reserved. 105 4 Buffer Size.
親切な長さの意味---- ------ ------- 0--オプションリストの終わり。 1--操作がありません。 100--予約されています。 105 4はサイズをバッファリングします。
Specific Option Definitions
特定のオプション定義
End of Option List
オプションリストの終わり
+--------+ |00000000| +--------+ Kind=0
+--------+ |00000000| +--------+ 種類=0
This option code indicates the end of the option list. This might not coincide with the end of the TCP header according to the Data Offset field. This is used at the end of all options, not the end of each option, and need only be used if the end of the options would not otherwise coincide with the end of the TCP header.
このオプションコードはオプションリストの終わりを示します。 Data Offset分野に従って、これはTCPヘッダーの端と同時に起こらないかもしれません。 これは、それぞれのオプションの終わりではなく、すべてのオプションの終わりに使用されて、そうでなければ、オプションの終わりがTCPヘッダーの端と同時に起こらないなら、使用されるだけでよいです。
No-Operation
操作がありません。
+--------+ |00000001| +--------+ Kind=1
+--------+ |00000001| +--------+ 種類=1
This option code may be used between options, for example, to align the beginning of a subsequent option on a word boundary. There is no guarantee that senders will use this option, so receivers must be prepared to process options even if they do not begin on a word boundary.
例えば、このオプションコードは、その後のオプションの始まりを語境界に並べるのにオプションの間で使用されるかもしれません。 送付者がこのオプションを使用するという保証が全くないので、語境界で始まらないでも、オプションを処理するように受信機を準備しなければなりません。
Buffer Size
バッファサイズ
+--------+--------+---------+--------+ |01000101|00000100| buffer size | +--------+--------+---------+--------+ Kind=105 Length=4
+--------+--------+---------+--------+ |01000101|00000100| バッファサイズ| +--------+--------+---------+--------+ 親切な=105長さ=の4
[Page 18]
[18ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
Buffer Size Option Data: 16 bits
サイズオプションデータをバッファリングしてください: 16ビット
If this option is present, then it communicates the receive buffer size at the TCP which sends this segment. This field should only be sent in the initial connection request (i.e., in segments with the SYN control bit set). If this option is not used, the default buffer size of one octet is assumed.
このオプションが存在しているなら、それはこのセグメントを送るTCPで受信バッファサイズを伝えます。 初期の接続要求でこの野原を送るだけであるべきです(すなわち、SYNコントロールビットがあるセグメントでは、セットしてください)。 このオプションが使用されていないなら、1つの八重奏のデフォルトバッファサイズは想定されます。
Padding: variable
詰め物: 変数
The TCP header padding is used to ensure that the TCP header ends and data begins on a 32 bit boundary. The padding is composed of zeros.
TCPヘッダー詰め物は、TCPヘッダーが終わって、データが32ビット境界で始まるのを保証するのに使用されます。 詰め物はゼロで構成されます。
3.2. Terminology
3.2. 用語
Before we can discuss very much about the operation of the TCP we need to introduce some detailed terminology. The maintenance of a TCP connection requires the remembering of several variables. We conceive of these variables being stored in a connection record called a Transmission Control Block or TCB. Among the variables stored in the TCB are the local and remote socket numbers, the security and precedence of the connection, pointers to the user's send and receive buffers, pointers to the retransmit queue and to the current segment. In addition several variables relating to the send and receive sequence numbers are stored in the TCB.
以前、私たちは私たちが何らかの詳細な用語を紹介する必要があるTCPの操作に関してたいへん議論できます。 TCP接続の維持はいくつかの変数を覚えていることを必要とします。 私たちはTransmission Control BlockかTCBと呼ばれる接続記録に格納されるこれらの変数を想像します。 TCBに格納された変数の中に、接続の地方の、そして、リモートなソケット番号、セキュリティ、および先行があって、ユーザのものへのポインタは、バッファ(再送キューと、そして、現在のセグメントへのポインタ)を送って、受け取ります。 一連番号を送って、受けてください。添加におけるいくつかの変数が関係する、TCBでは、格納されます。
Send Sequence Variables
系列変数を送ってください。
SND.UNA - send unacknowledged SND.NXT - send sequence SND.WND - send window SND.BS - send buffer size SND.UP - send urgent pointer SND.WL - send sequence number used for last window update SND.LBB - send last buffer beginning ISS - initial send sequence number
SND.UNA--不承認のSND.NXTを送ります--系列SND.WND--ウィンドウSND.BS--バッファサイズSND.UP--緊急のポインタSND.WL--初期で最後の窓がSND.LBBをアップデートするので(最後のバッファにISSを始めさせてください)使用される一連番号を送らせるのは一連番号を送ります。
Receive Sequence Variables
系列変数を受け取ってください。
RCV.NXT - receive sequence RCV.WND - receive window RCV.BS - receive buffer size RCV.UP - receive urgent pointer RCV.LBB - receive last buffer beginning IRS - initial receive sequence number
RCV.NXT--系列RCV.WNDを受けます--受信バッファサイズRCV.UP--緊急のポインタRCV.LBB--IRSを始める最後のバッファを受け取るのを受けるというRCV.BSが頭文字をつける窓を受けるのは一連番号を受けます。
[Page 19]
[19ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
The following diagrams may help to relate some of these variables to the sequence space.
以下のダイヤグラムは、これらの変数のいくつかに系列スペースに関連するのを助けるかもしれません。
Send Sequence Space
系列スペースを送ってください。
1 2 3 4 ----------|----------|----------|---------- SND.UNA SND.NXT SND.UNA +SND.WND
1 2 3 4 ----------|----------|----------|---------- SND.UNA SND.NXT SND.UNA+SND.WND
1 - old sequence numbers which have been acknowledged 2 - sequence numbers of unacknowledged data 3 - sequence numbers allowed for new data transmission 4 - future sequence numbers which are not yet allowed
1--新しいデータ伝送4のために許容された2つ(不承認のデータ3の一連番号)の承認された一連番号である古い一連番号--まだ許容されていない将来の一連番号
Send Sequence Space
系列スペースを送ってください。
Figure 4.
図4。
Receive Sequence Space
系列スペースを受けてください。
1 2 3 ----------|----------|---------- RCV.NXT RCV.NXT +RCV.WND
1 2 3 ----------|----------|---------- RCV.NXT RCV.NXT+RCV.WND
1 - old sequence numbers which have been acknowledged 2 - sequence numbers allowed for new reception 3 - future sequence numbers which are not yet allowed
1--まだ許容されていない2つ(新しいレセプション3のために許容された一連番号)の承認された将来の一連番号である古い一連番号
Receive Sequence Space
系列スペースを受けてください。
Figure 5.
図5。
There are also some variables used frequently in the discussion that take their values from the fields of the current segment.
また、現在のセグメントの分野からそれらの値を取る議論に頻繁に使用されるいくつかの変数があります。
[Page 20]
[20ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
Current Segment Variables
現在のセグメント変数
SEG.SEQ - segment sequence number SEG.ACK - segment acknowledgment number SEG.LEN - segment length SEG.WND - segment window SEG.UP - segment urgent pointer SEG.PRC - segment precedence value
SEG.SEQ--セグメント一連番号SEG.ACK--セグメント確認応答番号SEG.LEN--セグメントの長さのSEG.WND--セグメントウィンドウSEG.UP--セグメントの緊急のポインタSEG.PRC--セグメント先行価値
A connection progresses through a series of states during its lifetime. The states are: LISTEN, SYN-SENT, SYN-RECEIVED, ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, TIME-WAIT, CLOSE-WAIT, CLOSING, and the fictional state CLOSED. CLOSED is fictional because it represents the state when there is no TCB, and therefore, no connection. Briefly the meanings of the states are:
接続は生涯一連の州を通って進歩をします。 州は以下の通りです。 LISTEN、SYN-SENT、SYN-RECEIVED、ESTABLISHED、FIN-WAIT-1、FIN-WAIT-2、タイム誌-WAIT、CLOSE-WAIT、CLOSING、および作り事の州のCLOSED。 TCBがなく、およびしたがって、接続が全くないとき、状態を表すので、CLOSEDは作り事です。 簡潔に、州の意味は以下の通りです。
LISTEN - represents waiting for a connection request from any remote TCP and port.
LISTEN--どんなリモートTCPとポートからも接続要求の待ちを表します。
SYN-SENT - represents waiting for a matching connection request after having sent a connection request.
SYN-SENT--接続要求を送った後に合っている接続要求を待ちながら、表します。
SYN-RECEIVED - represents waiting for a confirming connection request acknowledgment after having both received and sent a connection request.
SYN-RECEIVED--両方を持った後の承認が接続要求を受け取って、送ったという確認接続要求を待ちながら、表します。
ESTABLISHED - represents an open connection, ready to transmit and receive data segments.
ESTABLISHED--データ・セグメントを送受信する準備ができているオープンな接続の代理をします。
FIN-WAIT-1 - represents waiting for a connection termination request from the remote TCP, or an acknowledgment of the connection termination request previously sent.
FIN-WAIT-1--リモートTCPからの接続終了要求、または以前に送られた接続終了要求の承認を待ちながら、表します。
FIN-WAIT-2 - represents waiting for a connection termination request from the remote TCP.
FIN-WAIT-2--リモートTCPから接続終了要求の待ちを表します。
TIME-WAIT - represents waiting for enough time to pass to be sure the remote TCP received the acknowledgment of its connection termination request.
タイム誌-WAIT--通ることができるくらいの時間リモートTCPが接続終了要求の承認を受けたのを確信しているのを待ちながら、表します。
CLOSE-WAIT - represents waiting for a connection termination request from the local user.
CLOSE-WAIT--地元のユーザから接続終了要求の待ちを表します。
CLOSING - represents waiting for a connection termination request acknowledgment from the remote TCP.
CLOSING--リモートTCPから接続終了要求承認を待ちながら、表します。
CLOSED - represents no connection state at all.
CLOSED--接続状態を全く表しません。
[Page 21]
[21ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
A TCP connection progresses from one state to another in response to events. The events are the user calls, OPEN, SEND, RECEIVE, CLOSE, ABORT, and STATUS; the incoming segments, particularly those containing the SYN and FIN flags; and timeouts.
TCP接続は1つの州から別の州まで出来事に対応して進歩をします。 出来事は、ユーザの呼び出しと、オープンと、SENDと、RECEIVEと、CLOSEと、ABORTと、STATUSです。 入って来るセグメント、特にSYNを含むもの、およびFIN旗。 そして、タイムアウト。
The Glossary contains a more complete list of terms and their definitions.
Glossaryは用語に関する、より多くの全リストと彼らの定義を含んでいます。
The state diagram in figure 6 only illustrates state changes, together with the causing events and resulting actions, but addresses neither error conditions nor actions which are not connected with state changes. In a later section, more detail is offered with respect to the reaction of the TCP to events.
6図の州のダイヤグラムは、引き起こす出来事と結果として起こる動作と共に州の変化を例証するだけですが、エラー条件も州の変化に接続されない動作も記述しません。 後のセクションでは、TCPの反応に関してその他の詳細を出来事に提供します。
[Page 22]
[22ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
+---------+ ---------\ active OPEN | CLOSED | \ ----------- +---------+<---------\ \ create TCB | ^ \ \ snd SYN passive OPEN | | CLOSE \ \ ------------ | | ---------- \ \ create TCB | | delete TCB \ \ V | \ \ +---------+ CLOSE | \ | LISTEN | ---------- | | +---------+ delete TCB | | rcv SYN | | SEND | | ----------- | | ------- | V +---------+ snd SYN,ACK / \ snd SYN +---------+ | |<----------------- ------------------>| | | SYN | rcv SYN | SYN | | RCVD |<-----------------------------------------------| SENT | | | snd ACK | | | |------------------ -------------------| | +---------+ rcv ACK of SYN \ / rcv SYN,ACK +---------+ | -------------- | | ----------- | x | | snd ACK | V V | CLOSE +---------+ | ------- | ESTAB | | snd FIN +---------+ | CLOSE | | rcv FIN V ------- | | ------- +---------+ snd FIN / \ snd ACK +---------+ | FIN |<----------------- ------------------>| CLOSE | | WAIT-1 |------------------ -------------------| WAIT | +---------+ rcv FIN \ / CLOSE +---------+ | rcv ACK of FIN ------- | | ------- | -------------- snd ACK | | snd FIN V x V V +---------+ +---------+ |FINWAIT-2| | CLOSING | +---------+ +---------+ | rcv FIN | rcv ACK of FIN | ------- Timeout=2MSL | -------------- V snd ACK ------------ V delete TCB +---------+ delete TCB +---------+ |TIME WAIT|----------------->| CLOSED | +---------+ +---------+
+---------+ ---------\活発なオープン| 閉じられます。| \ ----------- +---------+ <。---------\\はTCBを作成します。| ^ \ \snd SYNの受け身のオープン| | \\を閉じてください。------------ | | ---------- \\はTCBを作成します。| | TCB\\Vを削除してください。| \ \ +---------+ 近く| \ | 聴いてください。| ---------- | | +---------+はTCBを削除します。| | rcv SYN| | 発信してください。| | ----------- | | ------- | +に対して---------+ snd SYN、ACK/\snd SYN+---------+ | | <、-、-、-、-、-、-、-、-、-、-、-、-、-、-、-、-- ------------------>|、|、| SYN| rcv SYN| SYN| | RCVD|<-----------------------------------------------| 発信します。| | | snd ACK| | | |------------------ -------------------| | +---------+ SYN\/rcv SYN、ACK+のrcv ACK---------+ | -------------- | | ----------- | x| | snd ACK| V V| 閉鎖+---------+ | ------- | ESTAB| | snd FIN+---------+ | 閉鎖| | rcv FIN V------- | | ------- +---------+ snd FIN/\snd ACK+---------+ | フィン| <、-、-、-、-、-、-、-、-、-、-、-、-、-、-、-、-- ------------------>| 閉鎖| | 待ち-1|------------------ -------------------| 待ち| +---------+ rcv FIN\/CLOSE+---------+ | FINのrcv ACK------- | | ------- | -------------- snd ACK| | snd FIN V x V V+---------+ +---------+ |FINWAIT-2| | 閉じます。| +---------+ +---------+ | rcv FIN| FINのrcv ACK| ------- タイムアウトは2MSLと等しいです。| -------------- V snd ACK------------ VはTCB+を削除します。---------+はTCB+を削除します。---------+ |時間待ち|、-、-、-、-、-、-、-、-、-、-、-、-、-、-、-、--、>| 閉じられます。| +---------+ +---------+
TCP Connection State Diagram Figure 6.
TCP接続州のダイヤグラムの数値6。
[Page 23]
[23ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
3.3. Sequence Numbers
3.3. 一連番号
A fundamental notion in the design is that every octet of data sent over a TCP connection has a sequence number. Since every octet is sequenced, each of them can be acknowledged. The acknowledgment mechanism employed is cumulative so that an acknowledgment of sequence number X indicates that all octets up to but not including X have been received. This mechanism allows for straight-forward duplicate detection in the presence of retransmission. Numbering of octets within a segment is that the first data octet immediately following the header is the lowest numbered, and the following octets are numbered consecutively.
デザインにおける根本的な観念はTCP接続の上に送られたデータのあらゆる八重奏には一連番号があるということです。 あらゆる八重奏が配列されるので、それぞれのそれらを承認できます。 使われた承認メカニズムが累積しているので、一連番号Xの承認は、含んでいないXだけまでのすべての八重奏が受けられたのを示します。 このメカニズムは「再-トランスミッション」があるとき簡単な写しのために検出を許します。 セグメントの中の八重奏の付番はすぐにヘッダーに続く最初のデータ八重奏が番号付で最も低く、以下の八重奏が連続して付番されるということです。
It is essential to remember that the actual sequence number space is finite, though very large. This space ranges from 0 to 2**32 - 1. Since the space is finite, all arithmetic dealing with sequence numbers must be performed modulo 2**32. This unsigned arithmetic preserves the relationship of sequence numbers as they cycle from 2**32 - 1 to 0 again. There are some subtleties to computer modulo arithmetic, so great care should be taken in programming the comparison of such values. The typical kinds of sequence number comparisons which the TCP must perform include:
実際の一連番号スペースが有限であって、もっとも、非常に大きいのを覚えているのは不可欠です。 このスペースは0〜2**32--1から変化します。 スペースが有限であるので、一連番号に対処するすべての演算が実行された法2**32であるに違いありません。 再び2**1〜32--0から循環するとき、この無記名の演算は一連番号の関係を保存します。 コンピュータモジュロ演算へのいくつかの微妙さがあります、非常にすばらしいので、そのような値の比較をプログラムしながら、注意を中に入れるべきです。 TCPが実行しなければならない典型的な種類の一連番号比較は:
(a) Determining that an acknowledgment refers to some sequence number sent but not yet acknowledged.
(a) 承認が送りましたが、まだ承認していなかった何らかの一連番号について言及することを決定します。
(b) Determining that all sequence numbers occupied by a segment have been acknowledged (e.g., to remove the segment from a retransmission queue).
(b) セグメントによって占領されたすべての一連番号が承認されたことを(例えば再送キューからセグメントを取り除く)決定すること。
(c) Determining that an incoming segment contains sequence numbers which are expected (i.e., that the segment "overlaps" the receive window).
(c) 入って来るセグメントが予想される一連番号を含むことを決定する、(すなわち、セグメントが「重なる」、受信、窓)
[Page 24]
[24ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
On send connections the following comparisons are needed:
接続は発信します。以下の比較が必要です:
older sequence numbers newer sequence numbers
より古い一連番号、 より新しい一連番号
SND.UNA SEG.ACK SND.NXT | | | ----|----XXXXXXX------XXXXXXXXXX---------XXXXXX----|---- | | | | | | | | | Segment 1 Segment 2 Segment 3
SND.UNA SEG.ACK SND.NXT| | | ----|----XXXXXXX------XXXXXXXXXX---------XXXXXX----|---- | | | | | | | | | セグメント1セグメント2セグメント3
<----- sequence space ----->
<。----- 系列スペース----->。
Sending Sequence Space Information
送付系列スペース情報
Figure 7.
図7。
SND.UNA = oldest unacknowledged sequence number
SND.UNAは最も古い不承認の一連番号と等しいです。
SND.NXT = next sequence number to be sent
SND.NXTは送られる次の一連番号と等しいです。
SEG.ACK = acknowledgment (next sequence number expected by the acknowledging TCP)
SEG.ACKは承認と等しいです。(承認しているTCPによって予想された次の一連番号)
SEG.SEQ = first sequence number of a segment
SEG.SEQはセグメントの最初の一連番号と等しいです。
SEG.SEQ+SEG.LEN-1 = last sequence number of a segment
SEG.SEQ+SEG.LEN-1はセグメントの最後の一連番号と等しいです。
A new acknowledgment (called an "acceptable ack"), is one for which the inequality below holds:
新しい承認(「許容できるack」と呼ばれる)は以下の不平等が成立するものです:
SND.UNA < SEG.ACK =< SND.NXT
SND.UNA<SEG.ACKは<SND.NXTと等しいです。
All arithmetic is modulo 2**32 and that comparisons are unsigned. "=<" means "less than or equal".
すべての演算が法2**32です、そして、比較は無記名です。 「=<」は「以下か等しいこと」を意味します。
A segment on the retransmission queue is fully acknowledged if the sum of its sequence number and length is less than the acknowledgment value in the incoming segment.
再送キューのセグメントはその一連番号と長さの合計が入って来るセグメントの承認値以下であるなら完全に承認されます。
SEG.LEN is the number of octets occupied by the data in the segment. It is important to note that SEG.LEN must be non-zero; segments which do not occupy any sequence space (e.g., empty acknowledgment segments) are never placed on the retransmission queue, so would not go through this particular test.
SEG.LENはセグメントのデータによって占領された八重奏の数です。 SEG.LENが非ゼロであるに違いないことに注意するのは重要です。 少しの系列スペース(例えば、空の確認応答セグメント)も占めないセグメントが、再送キューに決して置かれないので、この特定のテストに直面していないでしょう。
[Page 25]
[25ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
On receive connections the following comparisons are needed:
接続は受信します。以下の比較が必要です:
older sequence numbers newer sequence numbers
より古い一連番号、 より新しい一連番号
RCV.NXT RCV.NXT+RCV.WND | | ---------XXX|XXX------XXXXXXXXXX---------XXX|XX--------- | | | | | | | | Segment 1 Segment 2 Segment 3
RCV.NXT RCV.NXT+RCV.WND| | ---------XXX|XXX------XXXXXXXXXX---------XXX|XX--------- | | | | | | | | セグメント1セグメント2セグメント3
<----- sequence space ----->
<。----- 系列スペース----->。
Receiving Sequence Space Information
系列スペース情報を受け取ります。
Figure 8.
エイト環。
RCV.NXT = next sequence number expected on incoming segments
RCV.NXTは入って来るセグメントで予想された次の一連番号と等しいです。
RCV.NXT+RCV.WND = last sequence number expected on incoming segments, plus one
RCV.NXT+RCV.WNDは入って来るセグメント、および1で予想された最後の一連番号と等しいです。
SEG.SEQ = first sequence number occupied by the incoming segment
SEG.SEQは入って来るセグメントによって占領された最初の一連番号と等しいです。
SEG.SEQ+SEG.LEN-1 = last sequence number occupied by the incoming segment
SEG.SEQ+SEG.LEN-1は入って来るセグメントによって占領された最後の一連番号と等しいです。
A segment is judged to occupy a portion of valid receive sequence space if
セグメントが有効の部分を占領すると判断されるAは系列スペースを受けます。
0 =< (SEG.SEQ+SEG.LEN-1 - RCV.NXT) < (RCV.NXT+RCV.WND - RCV.NXT)
0 =<(SEG.SEQ+SEG.LEN-1--RCV.NXT)<。(RCV.NXT+RCV.WND--RCV.NXT)
SEG.SEQ+SEG.LEN-1 is the last sequence number occupied by the segment; RCV.NXT is the next sequence number expected on an incoming segment; and RCV.NXT+RCV.WND is the right edge of the receive window.
SEG.SEQ+SEG.LEN-1はセグメントによって占領された最後の一連番号です。 RCV.NXTは入って来るセグメントで予想された次の一連番号です。 そして、RCV.NXT+RCV.WNDが正しい縁である、窓を受けてください。
Actually, it is a little more complicated than this. Due to zero windows and zero length segments, we have four cases for the acceptability of an incoming segment:
実際に、それはこれより複雑です。 窓がなくてゼロ・レングスセグメントのため、私たちには、入って来るセグメントの受容性のための4つのケースがあります:
[Page 26]
[26ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
Segment Receive Test Length Window ------- ------- -------------------------------------------
セグメントはテスト長さのウィンドウを受けます。------- ------- -------------------------------------------
0 0 SEG.SEQ = RCV.NXT
0 0SEG.SEQはRCV.NXTと等しいです。
0 >0 RCV.NXT =< SEG.SEQ < RCV.NXT+RCV.WND
0 >0RCV.NXTは<SEG.SEQ<RCV.NXT+RCV.WNDと等しいです。
>0 0 not acceptable
許容できない>0 0
>0 >0 RCV.NXT < SEG.SEQ+SEG.LEN =< RCV.NXT+RCV.WND
>0>0RCV.NXT<SEG.SEQ+SEG.LENは<RCV.NXT+RCV.WNDと等しいです。
Note that the acceptance test for a segment, since it requires the end of a segment to lie in the window, is somewhat more restrictive than is absolutely necessary. If at least the first sequence number of the segment lies in the receive window, or if some part of the segment lies in the receive window, then the segment might be judged acceptable. Thus, in figure 8, at least segments 1 and 2 are acceptable by the strict rule, and segment 3 may or may not be, depending on the strictness of interpretation of the rule.
窓で嘘をつくのがセグメントの終わりを必要とするのでセグメントのための受取り検査が絶対にである必要な状態でいくらか制限していることに注意してください。 中にセグメントの最初の一連番号がある、窓を受けてください。さもないと、中にセグメントの一部がいくつかならある、窓を受けてください、そして、次に、セグメントは許容できると判断されるかもしれません。 したがって、エイト環では、少なくともセグメント1と2は厳しい規則で許容できます、そして、セグメント3は許容できます、規則の解釈の厳しさによって。
Note that when the receive window is zero no segments should be acceptable except ACK segments. Thus, it should be possible for a TCP to maintain a zero receive window while transmitting data and receiving ACKs.
受信してください。それに注意してください、いつ、窓によるACKセグメントを除いて、いいえが区分するゼロが許容できるべきであるということであるか。 したがって、TCPが、ゼロがデータを送って、ACKsを受けている間窓を受けると主張するのは、可能であるべきです。
We have taken advantage of the numbering scheme to protect certain control information as well. This is achieved by implicitly including some control flags in the sequence space so they can be retransmitted and acknowledged without confusion (i.e., one and only one copy of the control will be acted upon). Control information is not physically carried in the segment data space. Consequently, we must adopt rules for implicitly assigning sequence numbers to control. The SYN and FIN are the only controls requiring this protection, and these controls are used only at connection opening and closing. For sequence number purposes, the SYN is considered to occur before the first actual data octet of the segment in which it occurs, while the FIN is considered to occur after the last actual data octet in a segment in which it occurs. The segment length includes both data and sequence space occupying controls. When a SYN is present then SEG.SEQ is the sequence number of the SYN.
私たちは、また、ある制御情報を保護するのにナンバリングスキームを利用しました。 これは、混乱なしでそれらを再送して、承認できる(すなわち、コントロールの唯一無二のコピー1部は作用される)ようにそれとなく系列スペースのいくつかの指揮旗を含んでいることによって、達成されます。 制御情報はセグメントデータ領域で物理的に運ばれません。 その結果、私たちは制御するためにそれとなく一連番号を割り当てるための規則を採用しなければなりません。 SYNとFINがこの保護を必要とする唯一のコントロールであり、これらのコントロールは、接続始まりだけで使用されて、終えられています。 一連番号目的のために、SYNがそれが起こるセグメントの最初の実際のデータ八重奏の前に起こると考えられます、FINが最後の実際のデータ八重奏の後にそれが起こるセグメントで起こると考えられますが。 セグメントの長さはコントロールを占領するデータと系列スペースの両方を含んでいます。 SYNがその時存在しているとき、SEG.SEQはSYNの一連番号です。
Initial Sequence Number Selection
初期シーケンス番号選択
The protocol places no restriction on a particular connection being used over and over again. A connection is defined by a pair of sockets. New instances of a connection will be referred to as incarnations of the connection. The problem that arises owing to this
プロトコルは幾重にも使用されている特定の接続に関して制限を全く課しません。 接続は1組のソケットによって定義されます。 接続の新しい例は接続の肉体化と呼ばれるでしょう。 これで起こる問題
[Page 27]
[27ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
is -- "how does the TCP identify duplicate segments from previous incarnations of the connection?" This problem becomes apparent if the connection is being opened and closed in quick succession, or if the connection breaks with loss of memory and is then reestablished.
--「TCPは接続の前の肉体化から写しセグメントをどのように特定しますか?」 接続は迅速な継承かそれとも記憶喪失と分かれて、あるかどうかで、接続が次に、復職していた状態で開かれて、閉店しているなら、この問題は明らかになります。
To avoid confusion we must prevent segments from one incarnation of a connection from being used while the same sequence numbers may still be present in the network from an earlier incarnation. We want to assure this, even if a TCP crashes and loses all knowledge of the sequence numbers it has been using. When new connections are created, an initial sequence number (ISN) generator is employed which selects a new 32 bit ISN. The generator is bound to a (possibly fictitious) 32 bit clock whose low order bit is incremented roughly every 4 microseconds. Thus, the ISN cycles approximately every 4.55 hours. Since we assume that segments will stay in the network no more than tens of seconds or minutes, at worst, we can reasonably assume that ISN's will be unique.
混乱を避けるために、私たちは、以前の肉体化からネットワークで同じ一連番号がまだ存在しているかもしれない間、接続の1回の肉体化からのセグメントが使用されるのを防がなければなりません。 これを保証したいと思います、TCPがそれが使用している一連番号に関するすべての知識を墜落し、失っても。 新しい接続が創造されるとき、初期シーケンス番号(ISN)ジェネレータは採用しています(32ビットの新しいISNを選択します)。 ジェネレータは下位のビットがおよそあらゆる4マイクロセカンド単位で増加される32ビットの(ことによると架空)の時計に縛られます。 したがって、ISNは4.55時間毎に循環します。 何十秒だけかも分間、セグメントがネットワークに残ると思って、最悪の場合は、私たちは、ISNがユニークになると合理的に思うことができます。
For each connection there is a send sequence number and a receive sequence number. The initial send sequence number (ISS) is chosen by the data sending TCP, and the initial receive sequence number (IRS) is learned during the connection establishing procedure.
ある各接続のために、aは一連番号を送ります、そして、aは一連番号を受けます。 (ISS)がデータによって選ばれている一連番号は初期でTCPを送ります、そして、初期は一連番号(IRS)を受けます。接続の間、手順を確立しながら、学習されます。
For a connection to be established or initialized, the two TCPs must synchronize on each other's initial sequence numbers. This is done in an exchange of connection establishing messages carrying a control bit called "SYN" (for synchronize) and the initial sequence numbers. As a shorthand, messages carrying the SYN bit are also called "SYNs". Hence, the solution requires a suitable mechanism for picking an initial sequence number and a slightly involved handshake to exchange the ISN's. A "three way handshake" is necessary because sequence numbers are not tied to a global clock in the network, and TCPs may have different mechanisms for picking the ISN's. The receiver of the first SYN has no way of knowing whether the segment was an old delayed one or not, unless it remembers the last sequence number used on the connection (which is not always possible), and so it must ask the sender to verify this SYN.
接続が設立されるか、または初期化されるために、2TCPsが互いの初期シーケンス番号で連動しなければなりません。 "SYN"と呼ばれるコントロールビットを運ぶメッセージを確立する接続の交換でこれをする、(連動、)、そして、初期シーケンス番号。 また、速記として、SYNビットを運ぶメッセージは「SYNs」と呼ばれます。 したがって、初期シーケンス番号を選んで、わずかにかかわった握手がISNのものを交換するように、解決策は適当なメカニズムを必要とします。 「3、道の握手、」、一連番号がネットワークでグローバルな時計に結ばれないで、TCPsにはISNを選ぶための異なったメカニズムがあるかもしれないので、必要です。 最初のSYNの受信機には接続(いつも可能であるというわけではない)のときに使用された最後の一連番号を覚えていない場合セグメントが古い遅れたものであったかどうかを知る方法が全くないので、それは、このSYNについて確かめるように送付者に頼まなければなりません。
The "three way handshake" and the advantages of a "clock-driven" scheme are discussed in [4].
「3、道の握手、」 [4]で「時計駆動」の計画の利点について議論します。
Knowing When to Keep Quiet
いつ静かにしているかを知っています。
To be sure that a TCP does not create a segment that carries a sequence number which may be duplicated by an old segment remaining in the network, the TCP must keep quiet for a maximum segment lifetime (MSL) before assigning any sequence numbers upon starting up or recovering from a crash in which memory of sequence numbers in use was
TCPがネットワークに残っている古いセグメントによってコピーされるかもしれない一連番号を運ぶセグメントを作成しないで、TCPが使用中の一連番号に関するメモリがそうであったクラッシュから始動するか、または回復するときどんな一連番号も割り当てる前に最大のセグメント生涯(MSL)静かな状態で保たなければならないのを確信しているように
[Page 28]
[28ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
lost. For this specification the MSL is taken to be 2 minutes. This is an engineering choice, and may be changed if experience indicates it is desirable to do so. Note that if a TCP is reinitialized in some sense, yet retains its memory of sequence numbers in use, then it need not wait at all; it must only be sure to use sequence numbers larger than those recently used.
無くなる。 この仕様において、2分になるようにMSLを取ります。 これと工学選択であり、経験が、そうするのが望ましいのを示すなら、変えるかもしれません。 TCPが何らかの意味で再初期化されますが、使用中の一連番号に関するメモリを保有するならそれが待つ必要はないことに完全に注意してください。 それは確実に最近使用されたものより大きい一連番号を使用するだけでよいです。
It should be noted that this strategy does not protect against spoofing or other replay type duplicate message problems.
この戦略がスプーフィングから守らないことに注意されるべきであるか、または他の再生タイプはメッセージ問題をコピーします。
3.4. Establishing a connection
3.4. 取引関係を築きます。
The "three-way handshake" is the procedure used to establish a connection. This procedure normally is initiated by one TCP and responded to by another TCP. The procedure also works if two TCP simultaneously initiate the procedure. When simultaneous attempt occurs, the TCP receives a "SYN" segment which carries no acknowledgment after it has sent a "SYN". Of course, the arrival of an old duplicate "SYN" segment can potentially make it appear, to the recipient, that a simultaneous connection initiation is in progress. Proper use of "reset" segments can disambiguate these cases. Several examples of connection initiation follow. Although these examples do not show connection synchronization using data-carrying segments, this is perfectly legitimate, so long as the receiving TCP doesn't deliver the data to the user until it is clear the data is valid (i.e., the data must be buffered at the receiver until the connection reaches the ESTABLISHED state). The three-way handshake reduces the possibility of false connections. It is the implementation of a trade-off between memory and messages to provide information for this checking.
「3方向ハンドシェイク」は取引関係を築くのに用いられた手順です。 通常、この手順に1TCPによって開始されて、別のTCPによって応じられます。 また、2TCPが同時に手順に着手するなら、手順は利きます。 同時の試みが起こると、TCPは"SYN"を送った後に承認を全く運ばない"SYN"セグメントを受けます。 もちろん、古い写し"SYN"セグメントの到着で、それは同時接続開始が進行しているのを受取人にとって潜在的に現れさせることができます。 「リセット」セグメントの適切な使用はこれらのケースのあいまいさを除くことができます。 接続開始のいくつかの例が従います。 これらの例はデータを運ぶセグメントを使用することで同期を接続に示しませんが、これは完全に正統です、データが有効であることが(接続がESTABLISHED状態に着くまで、受信機ですなわち、データをバッファリングしなければなりません)、明確になるまで受信TCPがデータをユーザに送らない限り。 3方向ハンドシェイクは偽の接続の可能性を減少させます。 それはメモリとこの照合のための情報を提供するメッセージの間のトレードオフの実現です。
The simplest three-way handshake is shown in figure 9 below. The figures should be interpreted in the following way. Each line is numbered for reference purposes. Right arrows (-->) indicate departure of a TCP segment from TCP A to TCP B, or arrival of a segment at B from A. Left arrows (<--), indicate the reverse. Ellipsis (...) indicates a segment which is still in the network (delayed). An "XXX" indicates a segment which is lost or rejected. Comments appear in parentheses. TCP states represent the state AFTER the departure or arrival of the segment (whose contents are shown in the center of each line). Segment contents are shown in abbreviated form, with sequence number, control flags, and ACK field. Other fields such as window, addresses, lengths, and text have been left out in the interest of clarity.
最も簡単な3方向ハンドシェイクは9未満が中で計算するのが示されます。 数字は以下の方法で解釈されるべきです。 各線は参照目的のために付番されます。 右向きの矢、(--、>)、TCPセグメントのTCP AからTCP Bまでの出発、またはA.Left矢からのBにおけるセグメントの到着を示してください、(<--、)、逆を示してください。 省略(…)はまだネットワーク(延着する)にはあるセグメントを示します。 "XXX"は失われているか、または拒絶されるセグメントを示します。 コメントは括弧に現れます。 TCP州は州のAFTERを表します。セグメント(コンテンツはそれぞれの線のセンターに示される)の出発か到着。 セグメント内容は一連番号でコントロールが旗を揚げて、ACKがさばく簡略化されたフォームに示されます。 窓や、アドレスや、長さや、テキストなどの他の分野は明快のために省かれました。
[Page 29]
[29ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
TCP A TCP B
TCPはTCP Bです。
1. CLOSED LISTEN
1. 閉じられて、聴いてください。
2. SYN-SENT --> <SEQ=100><CTL=SYN> --> SYN-RECEIVED
2. SYNによって送られた(><SEQ=100><CTL=SYN>)>はSYN受信されました。
3. ESTABLISHED <-- <SEQ=300><ACK=101><CTL=SYN,ACK> <-- SYN-RECEIVED
3. 確立した<(<SEQ=300><ACK=101><CTL=SYN、ACK><)はSYN受信されました。
4. ESTABLISHED --> <SEQ=101><ACK=301><CTL=ACK> --> ESTABLISHED
4. 設立された確立した(><SEQ=101><ACK=301><CTL=ACK>)>。
5. ESTABLISHED --> <SEQ=101><ACK=301><CTL=ACK><DATA> --> ESTABLISHED
5. 設立された確立した(><SEQ=101><ACK=301><CTL=ACK><データ>)>。
Basic 3-Way Handshake for Connection Synchronization
接続同期のための基本的な3ウェイ握手
Figure 9.
図9。
In line 2 of figure 9, TCP A begins by sending a SYN segment indicating that it will use sequence numbers starting with sequence number 100. In line 3, TCP B sends a SYN and acknowledges the SYN it received from TCP A. Note that the acknowledgment field indicates TCP B is now expecting to hear sequence 101, acknowledging the SYN which occupied sequence 100.
9図の線2では、SYNセグメントに一連番号100から始まって、一連番号を使用するのを示させることによって、TCP Aは始まります。 線3では、TCP BはSYNを送って、それが承認分野が、TCP Bが、現在系列101を聞くと予想しているのを示すTCP A.Noteから受けたSYNを承認します、系列100を占領したSYNを承認して。
At line 4, TCP A responds with an empty segment containing an ACK for TCP B's SYN; and in line 5, TCP A sends some data. Note that the sequence number of the segment in line 5 is the same as in line 4 because the ACK does not occupy sequence number space (if it did, we would wind up ACKing ACK's!).
線4では、空のセグメントがACKを含んでいて、TCP AはTCPビーズSYNのために応じます。 そして、線5では、TCP Aはいくつかのデータを送ります。 ACKが一連番号スペースを占めないので(それがそうするなら、私たちはACKing ACKのもの!のねじを巻くでしょうに)、線4のように線5における、セグメントの一連番号が同じであることに注意してください。
Simultaneous initiation is only slightly more complex, as is shown in figure 10. Each TCP cycles from CLOSED to SYN-SENT to SYN-RECEIVED to ESTABLISHED.
10が中で計算するのが示されるように同時の開始はわずかにだけ複雑です。 各TCPはCLOSEDからSYN-SENTまでESTABLISHEDへのSYN-RECEIVEDに循環します。
The principle reason for the three-way handshake is to prevent old duplicate connection initiations from causing confusion. To deal with this, a special control message, reset, has been devised. If the receiving TCP is in a non-synchronized state (i.e., SYN-SENT, SYN-RECEIVED), it returns to LISTEN on receiving an acceptable reset. If the TCP is in one of the synchronized states (ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, TIME-WAIT, CLOSE-WAIT, CLOSING), it aborts the connection and informs its user. We discuss this latter case under "half-open" connections below.
3方向ハンドシェイクの原則理由は年取った写し接続開始が混乱を引き起こすのを防ぐことです。 これに対処するために、特別なコントロールメッセージ(リセット)は工夫されました。 受信TCPが非連動している状態(すなわち、SYN-SENT、SYN-RECEIVED)にあるなら、許容できるリセットを受けるとき、それはLISTENに戻ります。 TCPが連動している州(ESTABLISHED、FIN-WAIT-1、FIN-WAIT-2、タイム誌-WAIT、CLOSE-WAIT、CLOSING)の1つにあるなら、それは、接続を中止して、ユーザに知らせます。 私たちは以下での「半開きな」接続でこの後者のケースについて議論します。
[Page 30]
[30ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
TCP A TCP B
TCPはTCP Bです。
1. CLOSED CLOSED
1. 閉じられた状態で、閉じられます。
2. SYN-SENT --> <SEQ=100><CTL=SYN> ...
2. SYNによって送られます--><SEQ=100><CTL=SYN>…。
3. SYN-RECEIVED <-- <SEQ=300><CTL=SYN> <-- SYN-SENT
3. SYNによって容認された<(<SEQ=300><CTL=SYN><)はSYN発信しました。
4. ... <SEQ=100><CTL=SYN> --> SYN-RECEIVED
4. ... <SEQ=100><CTL=SYN>-->はSYN受信されました。
5. SYN-RECEIVED --> <SEQ=101><ACK=301><CTL=ACK> ...
5. SYNを受け取られていさせます--><SEQ=101><ACK=301><CTL=ACK>…。
6. ESTABLISHED <-- <SEQ=301><ACK=101><CTL=ACK> <-- SYN-RECEIVED
6. 確立した<(<SEQ=301><ACK=101><CTL=ACK><)はSYN受信されました。
7. ... <SEQ=101><ACK=301><CTL=ACK> --> ESTABLISHED
7. ... <SEQ=101><ACK=301><CTL=ACK>--設立された>。
Simultaneous Connection Synchronization
同時接続同期
Figure 10.
図10。
TCP A TCP B
TCPはTCP Bです。
1. CLOSED LISTEN
1. 閉じられて、聴いてください。
2. SYN-SENT --> <SEQ=100><CTL=SYN> ...
2. SYNによって送られます--><SEQ=100><CTL=SYN>…。
3. (duplicate) ... <SEQ=1000><CTL=SYN> --> SYN-RECEIVED
3. (写し) ... <SEQ=1000><CTL=SYN>-->はSYN受信されました。
4. SYN-SENT <-- <SEQ=300><ACK=1001><CTL=SYN,ACK> <-- SYN-RECEIVED
4. SYNによって送られた<(<SEQ=300><ACK=1001><CTL=SYN、ACK><)はSYN受信されました。
5. SYN-SENT --> <SEQ=1001><CTL=RST> --> LISTEN
5. SYNによって送られた(><SEQ=1001><CTL=RST>)>は聴かれます。
6. ... <SEQ=100><CTL=SYN> --> SYN-RECEIVED
6. ... <SEQ=100><CTL=SYN>-->はSYN受信されました。
7. SYN-SENT <-- <SEQ=400><ACK=101><CTL=SYN,ACK> <-- SYN-RECEIVED
7. SYNによって送られた<(<SEQ=400><ACK=101><CTL=SYN、ACK><)はSYN受信されました。
8. ESTABLISHED --> <SEQ=101><ACK=401><CTL=ACK> --> ESTABLISHED
8. 設立された確立した(><SEQ=101><ACK=401><CTL=ACK>)>。
Recovery from Old Duplicate SYN
古い写しSYNからの回復
Figure 11.
図11。
As a simple example of recovery from old duplicates, consider
古い写しからの回復の簡単な例と、考えてください。
[Page 31]
[31ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
figure 11. At line 3, an old duplicate SYN arrives at TCP B. TCP B cannot tell that this is an old duplicate, so it responds normally (line 4). TCP A detects that the ACK field is incorrect and returns a RST (reset) with its SEQ field selected to make the segment believable. TCP B, on receiving the RST, returns to the LISTEN state. When the original SYN (pun intended) finally arrives at line 6, the synchronization proceeds normally. If the SYN at line 6 had arrived before the RST, a more complex exchange might have occurred with RST's sent in both directions.
図11 線3では、古い写しSYNはTCP B. TCPに到着します。Bは、これが古い写しであると言うことができません、したがって、通常、それは(線4)について応答します。 TCP Aはそれを検出します。ACK分野は、不正確であり、セグメントがSEQ分野で信用できるようになっていて、選択されるRST(リセット)を返します。 RSTを受けるとき、TCP BはLISTEN状態に戻ります。 オリジナルのSYN(意図していた状態で、だじゃれを言う)が最終的に線6に到着すると、通常、同期は続きます。 線6のSYNがRSTの前で到着したなら、より複雑な交換はRSTのものを両方の方向に送って起こったでしょうに。
Half-Open Connections and Other Anomalies
半開きなコネクションズと他の例外
An established connection is said to be "half-open" if one of the TCPs has closed or aborted the connection at its end without the knowledge of the other, or if the two ends of the connection have become desynchronized owing to a crash that resulted in loss of memory. Such connections will automatically become reset if an attempt is made to send data in either direction. However, half-open connections are expected to be unusual, and the recovery procedure is mildly involved.
TCPsの1つが終わりにもう片方に関する知識なしで接続を終えるか、中止した、または接続の2つの終わりが記憶喪失をもたらしたクラッシュで反連動するようになったなら、確立した接続は「半開きである」と言われます。 どちらかの指示のデータを送るのを試みをするなら、そのような接続は自動的にリセットになるでしょう。 しかしながら、半開きな接続が珍しいと予想されて、リカバリ手順は穏やかにかかわります。
If at site A the connection no longer exists, then an attempt by the user at site B to send any data on it will result in the site B TCP receiving a reset control message. Such a message should indicate to the site B TCP that something is wrong, and it is expected to abort the connection.
接続がもうサイトAに存在していないと、どんなデータもそれに送るサイトBのユーザによる試みはリセットコントロールメッセージを受け取るサイトB TCPをもたらすでしょう。 そのようなメッセージは何か問題があって、接続を中止すると予想されるのをサイトB TCPに示すべきです。
Assume that two user processes A and B are communicating with one another when a crash occurs causing loss of memory to A's TCP. Depending on the operating system supporting A's TCP, it is likely that some error recovery mechanism exists. When the TCP is up again, A is likely to start again from the beginning or from a recovery point. As a result, A will probably try to OPEN the connection again or try to SEND on the connection it believes open. In the latter case, it receives the error message "connection not open" from the local (A's) TCP. In an attempt to establish the connection, A's TCP will send a segment containing SYN. This scenario leads to the example shown in figure 12. After TCP A crashes, the user attempts to re-open the connection. TCP B, in the meantime, thinks the connection is open.
2つのユーザ・プロセスAとBがクラッシュがいつAのTCPに記憶喪失を引き起こしながら起こるかを伝えることであるとお互いと仮定してください。 AのTCPを支持するオペレーティングシステムによって、何らかのエラー回復メカニズムが存在しそうです。 TCPが再び上がっているとき、Aは始めか回復ポイントから再開しそうです。 その結果、Aは、たぶん再びオープンとして接続を裁くか、またはそれが開くと信じている接続のときにSENDに試みるでしょう。 後者の場合では、それは地方の(A)のTCPから「オープンでない接続」というエラーメッセージを受け取ります。 接続を確立する試みでは、AのTCPはSYNを含むセグメントを送るでしょう。 このシナリオは12が中で計算するのが示された例につながります。 TCP Aがクラッシュした後に、ユーザは、接続を再開させるのを試みます。 TCP Bは、差し当たり接続がオープンであると思います。
[Page 32]
[32ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
TCP A TCP B
TCPはTCP Bです。
1. (CRASH) (send 300,receive 100)
1. (クラッシュ) (300を送ってください、そして、100を受け取ってください)
2. CLOSED ESTABLISHED
2. 確立していた状態で、閉じられます。
3. SYN-SENT --> <SEQ=400><CTL=SYN> --> (??)
3. SYNによって送られた(><SEQ=400><CTL=SYN>)>。(??)
4. (!!) <-- <SEQ=300><ACK=100><CTL=ACK> <-- ESTABLISHED
4. (!!) <-- <SEQ=300><ACK=100><CTL=ACK><--設立されます。
5. SYN-SENT --> <SEQ=100><CTL=RST> --> (Abort!!)
5. SYNによって送られた(><SEQ=100><CTL=RST>)>。(中止になってください!)
6. CLOSED
6. 閉じられます。
7. SYN-SENT --> <SEQ=400><CTL=SYN> -->
7. SYNによって送られた(><SEQ=400><CTL=SYN>)>。
Half-Open Connection Discovery
半開きな接続発見
Figure 12.
図12。
When the SYN arrives at line 3, TCP B, being in a synchronized state, responds with an acknowledgment indicating what sequence it next expects to hear (ACK 100). TCP A sees that this segment does not acknowledge anything it sent and, being unsynchronized, sends a reset (RST) because it has detected a half-open connection. TCP B aborts at line 5. TCP A will continue to try to establish the connection; the problem is now reduced to the basic 3-way handshake of figure 9.
SYNが線3に到着するとき、連動している状態にあって、TCP Bは何が次にそれを配列するかを示すのが聞くと予想する承認(ACK100)で応じます。 TCP Aが、このセグメントがそれが送ったものは何も承認しないのがわかって、存在は、非連動して、それが半開きな接続を検出したので、リセット(RST)を送ります。 TCP Bは線5で中止になります。 TCP Aは、接続を確立しようとし続けるでしょう。 問題は今、図9の基本的な3ウェイ握手に減少します。
An interesting alternative case occurs when TCP A crashes and TCP B tries to send data on what it thinks is a synchronized connection. This is illustrated in figure 13. In this case, the data arriving at TCP A from TCP B (line 2) is unacceptable because no such connection exists, so TCP A sends a RST. The RST is acceptable so TCP B processes it and aborts the connection.
TCP Aがクラッシュして、TCP Bがそれが連動している接続であると考えることに関するデータを送ろうとするとき、おもしろい代替のケースは現れます。 これは図13で例証されます。 どんなそのような接続も存在していないのでこの場合TCP B(線2)からTCP Aに到着するデータが容認できないので、TCP AはRSTを送ります。RSTが許容できて、TCP Bは、それを処理するので、接続を中止します。
[Page 33]
[33ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
TCP A TCP B
TCPはTCP Bです。
1. (CRASH) (send 300,receive 100)
1. (クラッシュ) (300を送ってください、そして、100を受け取ってください)
2. (??) <-- <SEQ=300><ACK=100><DATA=10><CTL=ACK> <-- ESTABLISHED
2. (??) <-- <SEQ=300><ACK=100><データは10><CTL=ACK><と等しいです--設立されます。
3. --> <SEQ=100><CTL=RST> --> (ABORT!!)
3. --><SEQ=100><CTL=RST>-->。(中止になってください!)
Active Side Causes Half-Open Connection Discovery
アクティブ側は半開きな接続発見を引き起こします。
Figure 13.
図13。
In figure 14, we find the two TCPs A and B with passive connections waiting for SYN. An old duplicate arriving at TCP B (line 2) stirs B into action. A SYN-ACK is returned (line 3) and causes TCP A to generate a RST (the ACK in line 3 is not acceptable). TCP B accepts the reset and returns to its passive LISTEN state.
14図では、受け身の接続がSYNを待っていて、私たちは、2TCPsがAとBであることがわかりました。 TCP B(線2)に到着する古い写しは動作にBをかき回します。 SYN-ACKは(線3)を返して、TCP AにRSTを発生させます(線3におけるACKは許容できません)。 TCP Bはリセットを受け入れて、受け身のLISTEN状態に戻ります。
TCP A TCP B
TCPはTCP Bです。
1. LISTEN LISTEN
1. 聴取、聴取
2. ... <SEQ=Z><CTL=SYN> --> SYN-RECEIVED
2. ... <SEQ=Z><CTL=SYN>-->はSYN受信されました。
3. (??) <-- <SEQ=X><ACK=Z+1><CTL=SYN,ACK> <-- SYN-RECEIVED
3. (??) <-- <SEQ=X><ACK=Z+1><CTL=SYN、ACK><--SYN受信します。
4. --> <SEQ=Z+1><CTL=RST> --> (return to LISTEN!)
4. --><SEQ=Z+1><CTL=RST>-->。(戻って、聴いてください!)
5. LISTEN LISTEN
5. 聴取、聴取
Old Duplicate SYN Initiates a Reset on two Passive Sockets
古いDuplicate SYN Initiatesは2Passive Socketsの上のResetです。
Figure 14.
図14。
A variety of other cases are possible, all of which are accounted for by the following rules for RST generation and processing.
他のさまざまなケースが可能です、すべて。どれがRST世代と処理のための以下の規則で説明されるかについて。
Reset Generation
リセット世代
As a general rule, reset (RST) should be sent whenever a segment arrives which apparently is not intended for the current or a future incarnation of the connection. A reset should not be sent if it is not clear that this is the case. Thus, if any segment arrives for a nonexistent connection, a reset should be sent. If a segment ACKs
概して、接続の現在の肉体化か将来の肉体化のために明らかに意図しないセグメントが到着するときはいつも、リセット(RST)を送るべきです。 これがそうであることが明確でないなら、リセットを送るべきではありません。 したがって、何かセグメントが実在しない接続のために到着するなら、リセットを送るべきです。 aであるなら、ACKsを区分してください。
[Page 34]
[34ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
something which has never been sent on the current connection, then one of the following two cases applies.
当時現在の1歳の接続で一度も送られたことがない以下の2つのケースについて何かが適用されます。
1. If the connection is in any non-synchronized state (LISTEN, SYN-SENT, SYN-RECEIVED) or if the connection does not exist, a reset (RST) should be formed and sent for any segment that acknowledges something not yet sent. The RST should take its SEQ field from the ACK field of the offending segment (if the ACK control bit was set), and its ACK bit should be reset (zero), except to refuse a initial SYN. A reset is also sent if an incoming segment has a security level or compartment which does not exactly match the level and compartment requested for the connection. If the precedence of the incoming segment is less than the precedence level requested a reset is sent.
1. 接続がどんな非連動している州(LISTEN、SYN-SENT、SYN-RECEIVED)にもあるか、または接続が存在していないなら、リセット(RST)は形成されるべきです、そして、どんなセグメントのためにも送って、それはまだ何か送られなかったものを承認します。 RSTは怒っているセグメントのACK分野からSEQグラウンドに出るはずです、そして、(ACKコントロールビットが設定されたなら)ACKビットはリセットであるべきです(ゼロ)、初期のSYNを拒否するのを除いて。 また、入って来るセグメントにまさに接続のために要求されたレベルとコンパートメントに合っていないセキュリティー・レベルかコンパートメントがあるなら、リセットを送ります。 入って来るセグメントの先行が先行以下であるなら、レベルは、リセットが送られるよう要求しました。
2. If the connection is in a synchronized state (ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, TIME-WAIT, CLOSE-WAIT, CLOSING), any unacceptable segment should elicit only an empty acknowledgment segment containing the current send-sequence number and an acknowledgment indicating the next sequence number expected to be received.
2. 接続が連動している状態(ESTABLISHED、FIN-WAIT-1、FIN-WAIT-2、タイム誌-WAIT、CLOSE-WAIT、CLOSING)にあるなら、どんな容認できないセグメントも空の確認応答セグメント含有だけを引き出すべきである、電流、一連番号を発信させる、そして、受け取られると予想された次の一連番号を示す承認。
Reset Processing
リセット処理
All reset (RST) segments are validated by checking their SEQ-fields. A reset is valid if its sequence number is in the window. In the case of a RST received in response to an initial SYN any sequence number is acceptable if the ACK field acknowledges the SYN.
すべてのリセット(RST)セグメントが、それらのSEQ-分野をチェックすることによって、有効にされます。 一連番号が窓にあるなら、リセットは有効です。 初期のSYNに対応して受け取られたRSTの場合では、ACK分野がSYNを承認するなら、どんな一連番号も許容できます。
The receiver of a RST first validates it, then changes state. If the receiver was in the LISTEN state, it ignores it. If the receiver was in SYN-RECEIVED state and had previously been in the LISTEN state, then the receiver returns to the LISTEN state, otherwise the receiver aborts the connection and goes to the CLOSED state. If the receiver was in any other state, it aborts the connection and advises the user and goes to the CLOSED state.
当時の変化は、RSTの受信機が最初にそれを有効にすると述べます。 受信機がLISTEN状態にあったなら、それはそれを無視します。 受信機はSYN-RECEIVED状態にあって、以前にLISTEN状態にあったなら受信機がLISTEN状態に戻って、さもなければ、受信機は、接続を中止して、CLOSED状態に行きます。 受信機がいかなる他の状態にもあったなら、それは、接続を中止して、ユーザにアドバイスして、CLOSED状態に行きます。
3.5. Closing a Connection
3.5. 接続を終えます。
CLOSE is an operation meaning "I have no more data to send." The notion of closing a full-duplex connection is subject to ambiguous interpretation, of course, since it may not be obvious how to treat the receiving side of the connection. We have chosen to treat CLOSE in a simplex fashion. The user who CLOSEs may continue to RECEIVE until he is told that the other side has CLOSED also. Thus, a program could initiate several SENDs followed by a CLOSE, and then continue to RECEIVE until signaled that a RECEIVE failed because the other side has CLOSED. We assume that the TCP will signal a user, even if no RECEIVEs are outstanding, that the other side has closed, so the user
CLOSEは「私には、送らないそれ以上のデータが全くあります」と意味する操作です。 どのように接続の受信側面を治療するかが明白でないかもしれないので、全二重接続を終えるという概念はもちろんあいまいな解釈を受けることがあります。 私たちは、シンプレクスファッションでCLOSEを扱うのを選びました。 彼がもう片方に面があると言われるまで、CLOSEsがRECEIVEに続けるかもしれないユーザはCLOSEDも持っています。 したがって、反対側にはCLOSEDがあるのでRECEIVEが失敗したと合図されるまで、プログラムは、CLOSEによって続かれた数個のSENDsを開始して、次に、RECEIVEに続くことができました。 私たちは、どんなRECEIVEsも傑出していなくてもTCPがユーザに合図して、反対側が閉じたと思って、そうはユーザです。
[Page 35]
[35ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
can terminate his side gracefully. A TCP will reliably deliver all buffers SENT before the connection was CLOSED so a user who expects no data in return need only wait to hear the connection was CLOSED successfully to know that all his data was received at the destination TCP.
優雅に彼の側を終えることができます。 接続がCLOSEDになる前にTCPがすべてのバッファSENTを確かに届けるので、データを全く予想しないユーザは、代わりに彼のすべてのデータが目的地TCPに受け取られたのを知るために接続が首尾よくCLOSEDであったと聞くのを待つだけでよいです。
There are essentially three cases:
本質的には、3つのケースがあります:
1) The user initiates by telling the TCP to CLOSE the connection
1) ユーザは、TCPに言うことによって、CLOSEに接続を開始します。
2) The remote TCP initiates by sending a FIN control signal
2) FIN制御信号を送るのによるリモートTCP開始
3) Both users CLOSE simultaneously
3) 同時の両方のユーザCLOSE
Case 1: Local user initiates the close
ケース1: 地元のユーザは閉鎖を開始します。
In this case, a FIN segment can be constructed and placed on the outgoing segment queue. No further SENDs from the user will be accepted by the TCP, and it enters the FIN-WAIT-1 state. RECEIVEs are allowed in this state. All segments preceding and including FIN will be retransmitted until acknowledged. When the other TCP has both acknowledged the FIN and sent a FIN of its own, the first TCP can ACK this FIN. It should be noted that a TCP receiving a FIN will ACK but not send its own FIN until its user has CLOSED the connection also.
この場合、外向的なセグメント待ち行列にFINセグメントを構成して、置くことができます。 ユーザからの一層のSENDsは全くTCPによって受け入れられないでしょう、そして、それはFIN-WAIT-1状態に入れます。 RECEIVEsはこの状態に許容されています。 FINに先行して、含むすべてのセグメントが承認されるまで再送されるでしょう。 いつ、もう片方のTCPには両方があるかが、FINを承認して、それ自身のFIN、最初のTCP缶のACKにこのFINを送りました。 ユーザが接続のもCLOSEDを持つまで、FINを受けるa TCPがACKを望んでいますが、それ自身のFINを送らないことに注意されるべきです。
Case 2: TCP receives a FIN from the network
ケース2: TCPはネットワークからFINを受けます。
If an unsolicited FIN arrives from the network, the receiving TCP can ACK it and tell the user that the connection is closing. The user should respond with a CLOSE, upon which the TCP can send a FIN to the other TCP. The TCP then waits until its own FIN is acknowledged whereupon it deletes the connection. If an ACK is not forthcoming, after a timeout the connection is aborted and the user is told.
そして、求められていないFINがネットワークから到着して、受信TCP缶のACKがそれである、接続が閉じているとユーザに言ってください。 ユーザはCLOSEと共に応じるべきです。そこでは、TCPがもう片方のTCPにFINを送ることができます。 接続を削除するそうするとそれ自身のFINが承認されるまで、そしてTCPは待っています。 ACKが用意されていないなら、タイムアウトの後に接続は中止されます、そして、ユーザは言われます。
Case 3: both users close simultaneously
ケース3: 両方のユーザは同時に、閉じます。
A simultaneous CLOSE by users at both ends of a connection causes FIN segments to be exchanged. When all segments preceding the FINs have been processed and acknowledged, each TCP can ACK the FIN it has received. Both will, upon receiving these ACKs, delete the connection.
接続の両端のユーザによる同時のCLOSEはFINセグメントを交換させます。 FINsに先行するすべてのセグメントが処理されて、承認されたとき、各TCPはそれが受けたACK FINを承認できました。 これらのACKsを受けるとき、両方が接続を削除するでしょう。
[Page 36]
[36ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
TCP A TCP B
TCPはTCP Bです。
1. ESTABLISHED ESTABLISHED
1. 確立していた状態で、設立されます。
2. (Close) FIN-WAIT-1 --> <SEQ=100><CTL=FIN> --> CLOSE-WAIT
2. (近い)です。 フィン待1ち--><SEQ=100><CTL=フィン>-->の厳密な待ち
3. FIN-WAIT-2 <-- <SEQ=300><ACK=101><CTL=ACK> <-- CLOSE-WAIT
3. フィン待2ち<--<SEQ=300><ACK=101><CTL=ACK><--厳密な待ち
4. (Close) TIME-WAIT <-- <SEQ=301><CTL=FIN> <-- CLOSING
4. (近い)です。 時間待ち<--<SEQ=301><CTLはフィン><と等しいです--閉じます。
5. TIME-WAIT --> <SEQ=100><ACK=301><CTL=ACK> --> CLOSED
5. 時間待ち--><SEQ=100><ACK=301><CTL=ACK>-->は閉じました。
6. (2 MSL) CLOSED
6. (2MSL) 閉じられます。
Normal Close Sequence
正常な近い系列
Figure 15.
図15。
TCP A TCP B
TCPはTCP Bです。
1. ESTABLISHED ESTABLISHED
1. 確立していた状態で、設立されます。
2. (Close) (Close) FIN-WAIT-1 --> <SEQ=100><CTL=FIN> ... FIN-WAIT-1 <-- <SEQ=300><CTL=FIN> <-- ... <SEQ=100><CTL=FIN> -->
2. (近い)です。 (近い)です。 フィン待1ち--><SEQ=100><CTLはフィン>と等しいです… <SEQ=300><CTLがフィン><と等しいというフィン待1ち<… <SEQ=100><CTL=フィン>-->。
3. CLOSING --> <SEQ=100><ACK=301><CTL=ACK> ... CLOSING <-- <SEQ=300><ACK=101><CTL=ACK> <-- ... <SEQ=100><ACK=301><CTL=ACK> -->
3. 閉鎖--><SEQ=100><ACK=301><CTL=ACK>… <(<SEQ=300><ACK=101><CTL=ACK><)を閉じます… <SEQ=100><ACK=301><CTL=ACK>-->。
4. CLOSED CLOSED
4. 閉じられた状態で、閉じられます。
Simultaneous Close Sequence
同時の近い系列
Figure 16.
図16。
[Page 37]
[37ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
3.6. Precedence and Security
3.6. 先行とセキュリティ
The intent is that connection be allowed only between ports operating with exactly the same security and compartment values and at the higher of the precedence level requested by the two parts.
意図は接続がまさに同じセキュリティとコンパートメント値で作動するポートの間とだけ、そして、先行レベルについて、より高いこと2つの部品によって要求されたで許されているということです。
The precedence levels are:
先行レベルは以下の通りです。
flash override - 111 flash - 110 immediate - 10X priority - 01X routine - 00X
フラッシュオーバーライド--111フラッシュ--110の即座(10X優先権)の01Xルーチン--00X
The security levels are:
セキュリティー・レベルは以下の通りです。
top secret - 11 secret - 10 confidential - 01 unclassified - 00
最高機密--11秘密--10の秘密(非分類された01)の00
The compartments are assigned by the Defense Communications Agency. The defaults are precedence: routine, security: unclassified, compartment: zero. A host which does not implement precedence or security feature should clear these fields to zero for segments it sends.
コンパートメントはDefense Communications Agencyによって割り当てられます。 デフォルトは先行です: ルーチン、セキュリティ: 非分類されている、コンパートメント: ゼロ。 どれが先行を実行しないか、そして、保証が特集するホストはそれが送るセグメントのためにこれらの分野をゼロまでクリアするべきです。
A connection attempt with mismatched security/compartment values or a lower precedence value should be rejected by sending a reset.
ミスマッチしているセキュリティ/コンパートメント値か下側の先行値がある接続試みは、リセットを送ることによって、拒絶されるべきです。
Note that TCP modules which operate only at the default value of precedence will still have to check the precedence of incoming segments and possibly raise the precedence level they use on the connection.
それでも、単に先行のデフォルト値で作動するTCPモジュールが入って来るセグメントの先行をチェックして、ことによるとそれらが接続のときに使用する先行レベルを上げなければならないことに注意してください。
3.7. Data Communication
3.7. データ通信
Once the connection is established data is communicated by the exchange of segments. Because segments may be lost due to errors (checksum test failure), or network congestion, TCP uses retransmission (after a timeout) to ensure delivery of every segment. Duplicate segments may arrive due to network or TCP retransmission. As discussed in the section on sequence numbers the TCP performs certain tests on the sequence and acknowledgment numbers in the segments to verify their acceptability.
接続がいったん確立されると、データはセグメントの交換で伝えられます。 セグメントが誤り(チェックサムテスト失敗)、またはネットワークの混雑のため失われるかもしれないので、TCPはあらゆるセグメントの配送を確実にするのに、「再-トランスミッション」(タイムアウトの後の)を使用します。 写しセグメントはネットワークかTCP retransmissionのため到着するかもしれません。 一連番号のセクションで議論するように、TCPは彼らの受容性について確かめるためにセグメントで系列と確認応答番号のあるテストを実行します。
The sender of data keeps track of the next sequence number to use in the variable SND.NXT. The receiver of data keeps track of the next
データの送付者は可変SND.NXTで使用する次の一連番号の動向をおさえます。 データの受信機は次の動向をおさえます。
[Page 38]
[38ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
sequence number to expect in the variable RCV.NXT. The sender of data keeps track of the oldest unacknowledged sequence number in the variable SND.UNA. If the data flow is momentarily idle and all data sent has been acknowledged then the three variables will be equal.
可変RCV.NXTで予想する一連番号。 データの送付者は可変SND.UNAで最も古い不承認の一連番号の動向をおさえます。 データフローがしばらく、無駄であり、データが送ったすべてが承認されたなら、3つの変数が等しくなるでしょう。
When the sender creates a segment and transmits it the sender advances SND.NXT. When the receiver accepts a segment it advances RCV.NXT and sends an acknowledgment. When the data sender receives an acknowledgment it advances SND.UNA. The extent to which the values of these variables differ is a measure of the delay in the communication.
送付者がセグメントを作成して、それを伝えるとき、送付者はSND.NXTを進めます。 受信機がセグメントを受け入れるとき、それは、RCV.NXTを進めて、承認を送ります。 データ送付者が承認を受けるとき、それはSND.UNAを進めます。 これらの変数の値が異なる範囲はコミュニケーションでの遅れの測定です。
Normally the amount by which the variables are advanced is the length of the data in the segment. However, when letters are used there are special provisions for coordination the sequence numbers, the letter boundaries, and the receive buffer boundaries.
通常、量は変数が高度であるセグメントのデータの長さです。 しかしながら、手紙がそこで使用されるとき、特別条項はコーディネートのためのものです。一連番号、手紙限界、および受信バッファ限界。
End of Letter Sequence Number Adjustments
手紙一連番号調整の終わり
There is provision in TCP for the receiver of data to optionally communicate to the sender of data on a connection at the time of the connection synchronization the receiver's buffer size. If this is done the receiver must use this fixed size of buffers for the lifetime of the connection. If a buffer size is communicated then there is a coordination between receive buffers, letters, and sequence numbers.
データの受信機が任意に接続同期時点の接続に関するデータの受信機のバッファサイズの送付者に交信するために、TCPへの支給があります。 これが完了しているなら、受信機はバッファのこの固定サイズを接続の生涯に使用しなければなりません。 バッファサイズが伝えられるなら、受信バッファと、手紙と、一連番号の間には、コーディネートがあります。
Each time a buffer is completed either due to being filled or due to an end of letter, the sequence number is incremented through the end of that buffer.
その都度、バッファがいっぱいにされるため完成するか、または手紙の端のため、一連番号はそのバッファの端まで増加されます。
That is, whenever an EOL is transmitted, the sender advances its send sequence number, SND.NXT, by an amount sufficient to consume all the unused space in the receiver's buffer. The amount of space consumed in this fashion is subtracted from the send window just as is the space consumed by actual data.
すなわち、EOLが伝えられるときはいつも、送付者が進む、それ、一連番号を送ってください、SND.NXT、受信機のバッファのすべての未使用のスペースを消費できるくらいの量に従って。 こんなやり方で消費されたスペースの合計から引かれる、ちょうど実際のデータによって消費されたスペースのように窓を送ってください。
And, whenever an EOL is received, the receiver advances its receive sequence number, RCV.NXT, by an amount sufficient to consume all the unused space in the receiver's buffer. The amount of space consumed in this fashion is subtracted from the receive window just as is the space consumed by actual data.
そして、EOLが受け取られているときはいつも、受信機が進む、それ、一連番号を受けてください、RCV.NXT、受信機のバッファのすべての未使用のスペースを消費できるくらいの量に従って。 こんなやり方で消費されたスペースの合計から引かれる、ちょうど実際のデータによって消費されたスペースのように窓を受けてください。
[Page 39]
[39ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
older sequence numbers newer sequence numbers
より古い一連番号、 より新しい一連番号
| Buffer 1 | Buffer 2 | | ----+-------------------------------+----------------- XXXXXXXXXXXXXXXXXXXXX+++++++++++ | | | |<-----SEG.LEN------>| | | | | | | | SEG.SEQ A B
| バッファ1| バッファ2| | ----+-------------------------------+----------------- XXXXXXXXXXXXXXXXXXXXX+++++++++++| | | | <、-、-、-、--SEG.LEN------>|、|、|、|、|、|、|、| SEG.SEQはBです。
XXX - data octets from segment +++ - phantom data
XXX--セグメント+++からのデータ八重奏--幻影のデータ
<----- sequence space ----->
<。----- 系列スペース----->。
End of Letter Adjustment
手紙調整の終わり
Figure 17.
図17。
In the case illustrated above, if the segment does not carry an EOL flag, the next value of SND.NXT or RCV.NXT will be A. If it does carry an EOL flag, the next value will be B.
RCV.NXTがセグメントがEOL旗、SND.NXTの次の値を運ばないか、A.Ifになるなら上で例証された場合では、EOL旗を運んで、次の値はBになるでしょう。
The exchange of buffer size and sequencing information is done in units of octets. If no buffer size is stated, then the buffer size is assumed to be 1 octet. The receiver tells the sender the size of the buffer in a SYN segment that contains the 16 bit buffer size data in an option field in the TCP header.
ユニットの八重奏でバッファサイズと配列情報の交換をします。 バッファサイズが全く述べられないなら、バッファサイズは1つの八重奏であると思われます。 受信機はTCPヘッダーというオプション・フィールドに16ビットのバッファサイズデータを保管しているSYNセグメントのバッファのサイズの送付者に言います。
Each EOL advances the sequence number (SN) to the next buffer boundary
各EOLは一連番号(SN)を次のバッファ限界に進めます。
While LBB < SEG.SEQ+SEG.LEN Do LBB <- LBB + BS End SN <- LBB
LBB<SEG.SEQ+SEG.LENはLBB<BS終わりのSN LBB+<LBBをしますが
where LBB is the Last Buffer Beginning, and BS is the buffer size.
LBBがLast Buffer Beginningであり、BSがバッファサイズであるところ。
The CLOSE user call implies an end of letter, as does the FIN control flag in an incoming segment.
CLOSEユーザ呼び出しはFIN指揮旗のように入って来るセグメントで手紙の端を含意します。
The Communication of Urgent Information
緊急の情報に関するコミュニケーション
The objective of the TCP urgent mechanism is to allow the sending user to stimulate the receiving user to accept some urgent data and to permit the receiving TCP to indicate to the receiving user when all the currently known urgent data has been received by the user.
TCPの緊急のメカニズムの目的は送付ユーザがいくつかの緊急のデータを受け入れて、受信TCPが、すべての現在知られている緊急のデータがいつユーザによって受け取られたかを受信ユーザに示すことを許可するために受信ユーザを刺激するのを許容することです。
[Page 40]
[40ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
This mechanism permits a point in the data stream to be designated as the end of "urgent" information. Whenever this point is in advance of the receive sequence number (RCV.NXT) at the receiving TCP, that TCP should tell the user to go into "urgent mode"; when the receive sequence number catches up to the urgent pointer, the TCP should tell user to go into "normal mode". If the urgent pointer is updated while the user is in "read fast" mode, the update will be invisible to the user.
このメカニズムは、データ・ストリームのポイントが「緊急」の情報の終わりとして指定されるのを可能にします。 いつ、このポイントがあるかの前、受信TCPで一連番号(RCV.NXT)を受けてください、そして、そのTCPは、「緊急のモード」に入るようにユーザに言うはずです。 いつ、緊急の指針、TCPに上がっているキャッチが「正規モード」に入るとユーザに言うべきである一連番号を受けてくださいか。 ユーザが「速く読んでください」モードでいる間、緊急の指針をアップデートすると、アップデートはユーザにとって目に見えなくなるでしょう。
The method employs a urgent field which is carried in all segments transmitted. The URG control flag indicates that the urgent field is meaningful and should be added to the segment sequence number to yield the urgent pointer. The absence of this flag indicates that the urgent pointer has not changed.
メソッドはセグメントが伝えたすべてで運ばれる緊急の野原を使います。 URG指揮旗は、緊急の分野が重要であることを示して、緊急の指針をもたらすためにセグメント一連番号に言い足されるべきです。 この旗の欠如は、緊急の指針が変化していないのを示します。
To send an urgent indication the user must also send at least one data octet. If the sending user also indicates end of letter, timely delivery of the urgent information to the destination process is enhanced.
また、緊急の指示にユーザを送るのは少なくとも1つのデータ八重奏を送らなければなりません。 また、送付ユーザが手紙の端を示すなら、目的地プロセスへの緊急の情報のタイムリーな配送は機能アップされます。
Managing the Window
窓を管理します。
The window sent in each segment indicates the range of sequence number the sender of the window (the data receiver) is currently prepared to accept. There is an assumption that this is related to the currently available data buffer space available for this connection. The window information is a guideline to be aimed at.
窓は、各セグメントが窓(データ受信装置)の送付者が現在受け入れる用意ができている一連番号の範囲を示すのを送りました。 これがこの接続に利用可能な現在利用可能なデータバッファ領域に関連するという仮定があります。 窓の情報は目的とされるガイドラインです。
Indicating a large window encourages transmissions. If more data arrives than can be accepted, it will be discarded. This will result in excessive retransmissions, adding unnecessarily to the load on the network and the TCPs. Indicating a small window may restrict the transmission of data to the point of introducing a round trip delay between each new segment transmitted.
大きい窓を示すと、トランスミッションは奨励します。 より多くのデータが受け入れることができるより到着すると、それは捨てられるでしょう。 これは過度の「再-トランスミッション」をもたらして、不必要にネットワークとTCPsの上の負荷に加えるでしょう。 小さい窓がそれぞれの新しいセグメントに周遊旅行遅れを取り入れるまでデータの伝達を制限するかもしれないのを示すのが伝わりました。
The mechanisms provided allow a TCP to advertise a large window and to subsequently advertise a much smaller window without having accepted that much data. This, so called "shrinking the window," is strongly discouraged. The robustness principle dictates that TCPs will not shrink the window themselves, but will be prepared for such behavior on the part of other TCPs.
提供されたメカニズムで、それだけのデータを受け入れていなくて、TCPは大きい窓の広告を出して、次に、はるかに小さい窓の広告を出します。 そのように「窓を縮小します」と呼ばれたこれは強くがっかりしています。 堅牢性の原則は、TCPsが自分たちで窓を縮小しませんが、他のTCPs側のそのような振舞いのために準備されると決めます。
The sending TCP must be prepared to accept and send at least one octet of new data even if the send window is zero. The sending TCP should regularly retransmit to the receiving TCP even when the window is zero. Two minutes is recommended for the retransmission interval when the window is zero. This retransmission is essential to guarantee
発信してください。新しいデータの少なくとも1つの八重奏を受け入れて、送るように発信しているTCPを準備しなければならない、窓はゼロです。 窓がゼロでさえあるときに、発信しているTCPは定期的に受信TCPに再送するはずです。 2分は窓がゼロである再送信間隔の間、推薦されます。 この「再-トランスミッション」は、保証するのに不可欠です。
[Page 41]
[41ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
that when either TCP has a zero window the re-opening of the window will be reliably reported to the other.
TCPがaゼロを窓の再開に窓を付けさせると、それはもう片方に確かに報告されるでしょう。
The sending TCP packages the data to be transmitted into segments which fit the current window, and may repackage segments on the retransmission queue. Such repackaging is not required, but may be helpful.
発信しているTCPは現在の窓に合うセグメントに伝えられるためにデータをパッケージして、再送キューのときにセグメントを包装し直すかもしれません。 そのような包装し直すのは、必要ではありませんが、役立っているかもしれません。
Users must keep reading connections they close for sending until the TCP says no more data.
ユーザは彼らがTCPがそれ以上のデータを全く言わないまで発信するために終える接続を読み続けなければなりません。
In a connection with a one-way data flow, the window information will be carried in acknowledgment segments that all have the same sequence number so there will be no way to reorder them if they arrive out of order. This is not a serious problem, but it will allow the window information to be on occasion temporarily based on old reports from the data receiver.
一方向データフローとの関係では、窓の情報はしたがって故障していた状態で到着して、追加注文へのどんな道もそれらでないつもりであったならそこに同じ一連番号を持っている確認応答セグメントですべて、運ばれるでしょう。 これは深刻な問題ではありませんが、それで、窓の情報は時々、一時データ受信装置からの古いレポートに基づくでしょう。
3.8. Interfaces
3.8. インタフェース
There are of course two interfaces of concern: the user/TCP interface and the TCP/IP interface. We have a fairly elaborate model of the user/TCP interface, but only a sketch of the interface to the lower level protocol module.
もちろん、関心の2つのインタフェースがあります: ユーザ/TCPインタフェースとTCP/IPは連結します。 私たちはユーザ/TCPインタフェースのかなり細かいモデル、しかし、インタフェースのスケッチしか下のレベルプロトコルモジュールに持っていません。
User/TCP Interface
ユーザ/TCPインタフェース
The functional description of user commands to the TCP is, at best, fictional, since every operating system will have different facilities. Consequently, we must warn readers that different TCP implementations may have different user interfaces. However, all TCPs must provide a certain minimum set of services to guarantee that all TCP implementations can support the same protocol hierarchy. This section specifies the functional interfaces required of all TCP implementations.
TCPへのユーザコマンドの機能的な記述はせいぜい作り事です、あらゆるオペレーティングシステムには異なった施設があるので。 その結果、私たちは、異なったTCP実装には異なったユーザインタフェースがあるかもしれないと読者に警告しなければなりません。 しかしながら、すべてのTCPsが、すべてのTCP実装が同じプロトコル階層をサポートできるのを保証するためにある最小のサービスを提供しなければなりません。 このセクションはすべてのTCP実装について必要である機能的なインタフェースを指定します。
TCP User Commands
TCPユーザコマンド
The following sections functionally characterize a USER/TCP interface. The notation used is similar to most procedure or function calls in high level languages, but this usage is not meant to rule out trap type service calls (e.g., SVCs, UUOs, EMTs).
以下のセクションはUSER/TCPインタフェースを機能上特徴付けます。 使用される記法は高級言語におけるほとんどの手順かファンクションコールと同様ですが、この用法は罠タイプ業務通話を除外することになっていません(例えば、SVCs、UUOs、EMTs)。
The user commands described below specify the basic functions the TCP must perform to support interprocess communication. Individual implementations should define their own exact format, and may provide combinations or subsets of the basic functions in
以下で説明されたユーザコマンドはTCPがプロセス間通信をサポートするために実行しなければならない基本機能を指定します。 個々の実装は、それら自身の正確な書式を定義するべきであり、基本機能の組み合わせか部分集合を中に提供するかもしれません。
[Page 42]
[42ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
single calls. In particular, some implementations may wish to automatically OPEN a connection on the first SEND or RECEIVE issued by the user for a given connection.
シングルは呼びます。 特に、いくつかの実装が与えられた接続のためにユーザによって発行された最初のSENDかRECEIVEで自動的にオープンに接続を願うかもしれません。
In providing interprocess communication facilities, the TCP must not only accept commands, but must also return information to the processes it serves. The latter consists of:
プロセス間通信施設を提供する際に、TCPはコマンドを受け入れるだけでよくはありませんが、また、それが役立つプロセスに情報を返さなければなりません。 後者は以下から成ります。
(a) general information about a connection (e.g., interrupts, remote close, binding of unspecified foreign socket).
(a) 接続(例えば、中断、リモート閉鎖、不特定の外国ソケットの結合)に関する一般情報。
(b) replies to specific user commands indicating success or various types of failure.
(b) 成功を示す特定のユーザコマンドか様々なタイプの失敗に関する回答。
Open
開いてください。
Format: OPEN (local port, foreign socket, active/passive [, buffer size] [, timeout] [, precedence] [, security/compartment]) -> local connection name
形式: オープン(地方のポート、アクティブであるか受け身[サイズをバッファリングする]の外国ソケット[タイムアウト][先行][セキュリティ/コンパートメント])->市内接続名
We assume that the local TCP is aware of the identity of the processes it serves and will check the authority of the process to use the connection specified. Depending upon the implementation of the TCP, the local network and TCP identifiers for the source address will either be supplied by the TCP or by the processes that serve it (e.g., the program which interfaces the TCP network). These considerations are the result of concern about security, to the extent that no TCP be able to masquerade as another one, and so on. Similarly, no process can masquerade as another without the collusion of the TCP.
私たちは、地方のTCPがそれが役立つプロセスのアイデンティティを意識しているのを得て、接続が指定した使用にプロセスの権限をチェックするつもりです。 TCPかそれ(例えば、TCPネットワークを連結するプログラム)に役立つプロセスはソースアドレスのためにTCPの実装、企業内情報通信網、およびTCP識別子に頼るのを供給するでしょう。 これらの問題はセキュリティに関して重要な結果です、どんなTCPも別の1などのふりをすることができないという範囲に。 同様に、どんなプロセスもTCPの共謀なしで別のもののふりをすることができません。
If the active/passive flag is set to passive, then this is a call to LISTEN for an incoming connection. A passive open may have either a fully specified foreign socket to wait for a particular connection or an unspecified foreign socket to wait for any call. A fully specified passive call can be made active by the subsequent execution of a SEND.
アクティブであるか受け身の旗が受動態に設定されるなら、これは接続要求のためのLISTENへの呼び出しです。 受け身の戸外には、特定の接続か不特定の外国ソケットがどんな電話も待つのを待つ完全に指定された外国ソケットがあるかもしれません。 SENDのその後の実行で完全に指定された受け身の電話はアクティブにかけることができます。
A full-duplex transmission control block (TCB) is created and partially filled in with data from the OPEN command parameters.
全二重伝送制御ブロック(TCB)は、作成されて、オープンコマンドパラメタからのデータで部分的に記入されます。
On an active OPEN command, the TCP will begin the procedure to synchronize (i.e., establish) the connection at once.
すなわち、活発なオープン命令のときにTCPが連動するように手順を始める、(設立、)、接続、すぐに。
The buffer size, if present, indicates that the caller will always receive data from the connection in that size of buffers. This buffer size is a measure of the buffer between the user and
存在しているなら、バッファサイズは、訪問者がバッファのそのサイズにおける接続からデータをいつも受け取るのを示します。 そしてこのよりもみ皮製のサイズがユーザの間のバッファの測定である。
[Page 43]
[43ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
the local TCP. The buffer size between the two TCPs may be different.
地方のTCP。 2TCPsの間のバッファサイズは異なっているかもしれません。
The timeout, if present, permits the caller to set up a timeout for all buffers transmitted on the connection. If a buffer is not successfully delivered to the destination within the timeout period, the TCP will abort the connection. The present global default is 30 seconds. The buffer retransmission rate may vary; most likely, it will be related to the measured time for responses from the remote TCP.
存在しているなら、タイムアウトは、訪問者が接続のときに伝えられたすべてのバッファのためにタイムアウトをセットアップすることを許可します。 バッファがタイムアウト時間中に首尾よく送付先に提供されないと、TCPは接続を中止するでしょう。 現在のグローバルなデフォルトは30秒です。 バッファ「再-トランスミッション」レートは異なるかもしれません。 たぶん、リモートTCPから応答のための測定時間に関連するでしょう。
The TCP or some component of the operating system will verify the users authority to open a connection with the specified precedence or security/compartment. The absence of precedence or security/compartment specification in the OPEN call indicates the default values should be used.
オペレーティングシステムのTCPか何らかの部品が指定された先行かセキュリティ/コンパートメントとの関係を開くユーザ権威について確かめるでしょう。 オープン呼び出しにおける、先行かセキュリティ/コンパートメント仕様の欠如は、デフォルト値が使用されるべきであるのを示します。
TCP will accept incoming requests as matching only if the security/compartment information is exactly the same and only if the precedence is equal to or higher than the precedence requested in the OPEN call.
先行がオープンで要求された先行よりセキュリティ/コンパートメント情報がまさに単に同じであり、等しいか、または高い場合にだけマッチングが呼ぶようにTCPは入って来る要求を受け入れるでしょう。
The precedence for the connection is the higher of the values requested in the OPEN call and received from the incoming request, and fixed at that value for the life of the connection.
接続のための先行は、オープン呼び出しで要求されていて、入って来る要求から受け取られた値で、より高く、接続の寿命のためのその値で固定されています。
Depending on the TCP implementation, either a local connection name will be returned to the user by the TCP, or the user will specify this local connection name (in which case another parameter is needed in the call). The local connection name can then be used as a short hand term for the connection defined by the <local socket, foreign socket> pair.
TCP実装によって、市内接続名がTCPによってユーザに返されるだろうか、またはユーザはこの市内接続名を指定するでしょう(その場合、別のパラメタが呼び出しで必要です)。 そして、<の地方のソケット(外国人のソケット>組)によって定義された接続に短い手の期間として市内接続名を使用できます。
Send
発信してください。
Format: SEND(local connection name, buffer address, byte count, EOL flag, URGENT flag [, timeout])
形式: 発信してください。(市内接続名、バッファアドレス、バイト・カウント、URGENTが旗を揚げさせるEOL旗[タイムアウト])
This call causes the data contained in the indicated user buffer to be sent on the indicated connection. If the connection has not been opened, the SEND is considered an error. Some implementations may allow users to SEND first; in which case, an automatic OPEN would be done. If the calling process is not authorized to use this connection, an error is returned.
この呼び出しで、示されたユーザバッファに含まれたデータを示された接続に送ります。 接続が開かれていないなら、SENDは誤りであると考えられます。 いくつかの実装が最初に、SENDにユーザを許容するかもしれません。 その場合、自動オープンをするでしょう。 呼び出しプロセスがこの接続を使用するのが認可されないなら、誤りは返されます。
If the EOL flag is set, the data is the End Of a Letter, and the EOL bit will be set in the last TCP segment created from the
EOL旗が設定されるなら、データは、End OfのLetterと、最後のTCPのセットが作成されたセグメントであるつもりであったなら噛み付かれたEOLです。
[Page 44]
[44ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
buffer. If the EOL flag is not set, subsequent SENDs will appear to be part of the same letter.
バッファリングします。 EOL旗が設定されないと、その後のSENDsは、同じ手紙の一部であるように見えるでしょう。
If the URGENT flag is set, segments resulting from this call will have the urgent pointer set to indicate that some of the data associated with this call is urgent. This facility, for example, can be used to simulate "break" signals from terminals or error or completion codes from I/O devices. The semantics of this signal to the receiving process are unspecified. The receiving TCP will signal the urgent condition to the receiving process as long as the urgent pointer indicates that data preceding the urgent pointer has not been consumed by the receiving process. The purpose of urgent is to stimulate the receiver to accept some urgent data and to indicate to the receiver when all the currently known urgent data has been received.
URGENT旗が設定されると、この呼び出しから生じるセグメントは緊急の指針が、この呼び出しに関連しているデータのいくつかが緊急であることを示すように設定させるでしょう。 入出力デバイスから端末、誤りまたは完了コードからの「中断」信号をシミュレートするのに例えばこの施設を使用できます。 受信プロセスへのこの信号の意味論は不特定です。 緊急の指針が、緊急の指針に先行するデータが受信プロセスによって消費されていないのを示す限り、受信TCPは受信プロセスに緊急の状態に合図するでしょう。 緊急の目的はいくつかの緊急のデータを受け入れて、すべての現在知られている緊急のデータがいつ受け取られたかを受信機に示すために受信機を刺激することです。
The number of times the sending user's TCP signals urgent will not necessarily be equal to the number of times the receiving user will be notified of the presence of urgent data.
送付ユーザのTCPが緊急の状態で合図するという回の数は必ず受信ユーザが緊急のデータの存在について通知されるという回の数と等しくなるというわけではないでしょう。
If no foreign socket was specified in the OPEN, but the connection is established (e.g., because a LISTENing connection has become specific due to a foreign segment arriving for the local socket), then the designated buffer is sent to the implied foreign socket. In general, users who make use of OPEN with an unspecified foreign socket can make use of SEND without ever explicitly knowing the foreign socket address.
オープンでどんな外国ソケットも指定しませんでしたが、接続を確立するなら(例えば、LISTENing接続が地方のソケットのために到着する外国セグメントのために特定になったので)、暗示している外国ソケットに指定されたバッファを送ります。 一般に、明らかに外国ソケットアドレスを知らないで、不特定の外国ソケットによるオープンを利用するユーザはSENDを利用できます。
However, if a SEND is attempted before the foreign socket becomes specified, an error will be returned. Users can use the STATUS call to determine the status of the connection. In some implementations the TCP may notify the user when an unspecified socket is bound.
しかしながら、外国ソケットが指定されるようになる前にSENDが試みられると、誤りは返されるでしょう。 ユーザは接続の状態を決定するというSTATUS要求を使用できます。 いくつかの実装では、不特定のソケットが制限されているとき、TCPはユーザに通知するかもしれません。
If a timeout is specified, then the current timeout for this connection is changed to the new one.
タイムアウトが指定されるなら、この接続のための現在のタイムアウトは新しい方に変わります。
In the simplest implementation, SEND would not return control to the sending process until either the transmission was complete or the timeout had been exceeded. However, this simple method is both subject to deadlocks (for example, both sides of the connection might try to do SENDs before doing any RECEIVEs) and offers poor performance, so it is not recommended. A more sophisticated implementation would return immediately to allow the process to run concurrently with network I/O, and, furthermore, to allow multiple SENDs to be in progress.
最も簡単な実装では、トランスミッションが終了していたか、またはタイムアウトが超えられるまで、SENDは送付プロセスにコントロールを返さないでしょう。 しかしながら、この簡単なメソッドが行き詰まりを条件とした両方(例えば、どんなRECEIVEsもする前に、接続の両側はSENDsをしようとするかもしれない)であり、不十分な性能を提供するので、それは推薦されません。 より洗練された実装はすぐに、戻って、プロセスが、そして、その上、同時にネットワーク入出力と共に稼働して、複数のSENDsが進行しているのを許容するのを許容するでしょう。
[Page 45]
[45ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
Multiple SENDs are served in first come, first served order, so the TCP will queue those it cannot service immediately.
複数のSENDsが先着順のオーダーで役立たれているので、TCPはそれがすぐに修理できないものを列に並ばせるでしょう。
We have implicitly assumed an asynchronous user interface in which a SEND later elicits some kind of SIGNAL or pseudo-interrupt from the serving TCP. An alternative is to return a response immediately. For instance, SENDs might return immediate local acknowledgment, even if the segment sent had not been acknowledged by the distant TCP. We could optimistically assume eventual success. If we are wrong, the connection will close anyway due to the timeout. In implementations of this kind (synchronous), there will still be some asynchronous signals, but these will deal with the connection itself, and not with specific segments or letters.
私たちはそれとなく、SENDが後で給仕TCPからある種のSIGNALか疑似中断を引き出す非同期なユーザーインタフェースを仮定しました。 代替手段はすぐに応答を返すことです。 例えば、SENDsは即座の地方の承認を返すかもしれません、送られたセグメントが遠方のTCPによって承認されていなかったとしても。 私たちは楽観的に終局の成功を仮定できました。 私たちが間違っていると、接続はタイムアウトのためとにかく閉じるでしょう。 それでも、いくつかの非同期な信号がありますが、この種類(同期)の実装では、これらは特定のセグメントかどんな手紙でも接続自体に対処するか、ないことのようになるでしょう。
NOTA BENE: In order for the process to distinguish among error or success indications for different SENDs, it might be appropriate for the buffer address to be returned along with the coded response to the SEND request. TCP-to-user signals are discussed below, indicating the information which should be returned to the calling process.
背板嘆願: 異なったSENDsのために誤りか成功指摘の中で区別するプロセスにおいて整然とします、SEND要求へのコード化された応答と共にバッファアドレスを返すのは適切であるかもしれません。 呼び出しプロセスに返されるべきである情報を示して、以下でTCPからユーザへの信号について議論します。
Receive
受信してください。
Format: RECEIVE (local connection name, buffer address, byte count)
形式: 受信してください。(市内接続名、バッファアドレス、バイト・カウント)
This command allocates a receiving buffer associated with the specified connection. If no OPEN precedes this command or the calling process is not authorized to use this connection, an error is returned.
このコマンドは指定された接続に関連している受信バッファを割り当てます。 どんなオープンもこのコマンドに先行しないか、または呼び出しプロセスがこの接続を使用するのが認可されないなら、誤りは返されます。
In the simplest implementation, control would not return to the calling program until either the buffer was filled, or some error occurred, but this scheme is highly subject to deadlocks. A more sophisticated implementation would permit several RECEIVEs to be outstanding at once. These would be filled as, segments arrive. This strategy permits increased throughput at the cost of a more elaborate scheme (possibly asynchronous) to notify the calling program that a letter has been received or a buffer filled.
最も簡単な実装では、バッファがいっぱいにされたか、または何らかの誤りが発生するまで、コントロールは呼ぶプログラムに戻らないでしょうが、この体系は行き詰まりを非常に受けることがあります。 より洗練された実装は、数個のRECEIVEsがすぐに傑出していることを許可するでしょう。 これらとして、いっぱいにされて、セグメントは到着します。 この戦略は、より精巧な体系(ことによると非同期な)の費用における増強されたスループットが、手紙を受け取ったか、またはバッファがいっぱいになったことを呼ぶプログラムに通知することを許可します。
If insufficient buffer space is given to reassemble a complete letter, the EOL flag will not be set in the response to the RECEIVE. The buffer will be filled with as much data as it can hold. The last buffer required to hold the letter is returned with EOL signaled.
完全な手紙を組み立て直すために不十分なバッファ領域を与えると、RECEIVEへの応答でEOL旗を設定しないでしょう。 バッファは保持できるのと同じくらい多くのデータで満たされるでしょう。 EOLが合図されている状態で、手紙を保持しなければならなかった最後のバッファを返します。
[Page 46]
[46ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
The remaining parts of a partly delivered letter will be placed in buffers as they are made available via successive RECEIVEs. If a number of RECEIVEs are outstanding, they may be filled with parts of a single long letter or with at most one letter each. The return codes associated with each RECEIVE will indicate what is contained in the buffer.
それらを連続したRECEIVEsを通して利用可能にするとき、一部提供された手紙の残存部分をバッファに置くでしょう。 多くのRECEIVEsが傑出しているなら、彼らは部品でただ一つの長い文字か高々それぞれ1つの文字で満たされるかもしれません。 各RECEIVEに関連している復帰コードはバッファに含まれていることを示すでしょう。
If a buffer size was given in the OPEN call, then all buffers presented in RECEIVE calls must be of exactly that size, or an error indication will be returned.
オープン呼び出しでバッファサイズを与えたなら、RECEIVE呼び出しで提示されたすべてのバッファがちょうどそのサイズのものであるに違いありませんか誤り表示を返すでしょう。
The URGENT flag will be set only if the receiving user has previously been informed via a TCP-to-user signal, that urgent data is waiting. The receiving user should thus be in "read-fast" mode. If the URGENT flag is on, additional urgent data remains. If the URGENT flag is off, this call to RECEIVE has returned all the urgent data, and the user may now leave "read-fast" mode.
緊急のデータが待っているというTCPからユーザへの信号で受信ユーザは以前に知識がある場合にだけ、URGENT旗が設定されるでしょう。 その結果、受信ユーザは「-速く読んでください」モードでいるべきです。 URGENT旗がオンであるなら、追加緊急のデータは残っています。 URGENT旗がオフであるなら、RECEIVEへのこの呼び出しはすべての緊急のデータを返しました、そして、ユーザは今、「速読してください」をモードに出るかもしれません。
To distinguish among several outstanding RECEIVEs and to take care of the case that a letter is smaller than the buffer supplied, the return code is accompanied by both a buffer pointer and a byte count indicating the actual length of the letter received.
数個の傑出しているRECEIVEsの中で区別して、バッファが供給したより小さく、復帰コードがバッファ指針とバイト・カウントの両方によって伴われることに手紙がそうであるケースに注意するために、手紙の実際の長さを示すのは受信されました。
Alternative implementations of RECEIVE might have the TCP allocate buffer storage, or the TCP might share a ring buffer with the user. Variations of this kind will produce obvious variation in user interface to the TCP.
TCPがRECEIVEの代替の実装で緩衝記憶装置を割り当てるかもしれませんか、またはTCPはリングバッファをユーザと共有するかもしれません。 この種類の変化はユーザーインタフェースの明白な変化をTCPに発生させるでしょう。
Close
閉鎖
Format: CLOSE(local connection name)
形式: 閉鎖(市内接続名)
This command causes the connection specified to be closed. If the connection is not open or the calling process is not authorized to use this connection, an error is returned. Closing connections is intended to be a graceful operation in the sense that outstanding SENDs will be transmitted (and retransmitted), as flow control permits, until all have been serviced. Thus, it should be acceptable to make several SEND calls, followed by a CLOSE, and expect all the data to be sent to the destination. It should also be clear that users should continue to RECEIVE on CLOSING connections, since the other side may be trying to transmit the last of its data. Thus, CLOSE means "I have no more to send" but does not mean "I will not receive any more." It may happen (if the user level protocol is not well thought out) that the closing side is unable to get rid
このコマンドは閉じられるために指定された接続を引き起こします。 接続がオープンでないか、または呼び出しプロセスがこの接続を使用するのが認可されないなら、誤りは返されます。 接続を終えるのは傑出しているSENDsが伝えられるという(そして、再送されます)意味における優雅な操作であることを意図します、フロー制御が可能にするとき、すべてが修理されるまで。 したがって、いくつかのSEND電話をかけて、CLOSEで続いて、すべてのデータが目的地に送られると予想するのは許容できるべきです。 また、ユーザがCLOSING接続でのRECEIVEに続くのも、明確であるはずです、反対側がデータの最終を伝えようとしているかもしれないので。 したがって、CLOSEは、「私はそれ以上発信するために持っていません」と意味しますが、「私はもう受信するつもりではありません。」と意味しません。 終わり側が排除するようになることができないのは起こるかもしれません(ユーザレベルプロトコルがよく考え抜かれないなら)。
[Page 47]
[47ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
of all its data before timing out. In this event, CLOSE turns into ABORT, and the closing TCP gives up.
外で調節する前のすべてのデータについて。 このイベントでは、CLOSEはABORTに変わります、そして、終わりのTCPはあきらめます。
The user may CLOSE the connection at any time on his own initiative, or in response to various prompts from the TCP (e.g., remote close executed, transmission timeout exceeded, destination inaccessible).
ユーザは彼自身のイニシアチブのときにいつでもであることにおける、または、TCPからの様々なプロンプトに対応した接続(例えば、実行されたリモート閉鎖、タイムアウトが超えていたトランスミッション、近づきがたい目的地)のCLOSEがそうするかもしれません。
Because closing a connection requires communication with the foreign TCP, connections may remain in the closing state for a short time. Attempts to reopen the connection before the TCP replies to the CLOSE command will result in error responses.
接続を終えるのが外国TCPとのコミュニケーションを必要とするので、接続は短い間終わりの州に留まるかもしれません。 TCPがCLOSEコマンドに答える前に接続を再開させる試みは誤り応答をもたらすでしょう。
Close also implies end of letter.
また、閉鎖は手紙の端を含意します。
Status
状態
Format: STATUS(local connection name)
形式: 状態(市内接続名)
This is an implementation dependent user command and could be excluded without adverse effect. Information returned would typically come from the TCB associated with the connection.
これは、実装に依存するユーザコマンドであり、悪影響なしで除くことができました。 返された情報は接続に関連しているTCBから通常来るでしょう。
This command returns a data block containing the following information:
このコマンドは以下の情報を含むデータ・ブロックを返します:
local socket, foreign socket, local connection name, receive window, send window, connection state, number of buffers awaiting acknowledgment, number of buffers pending receipt (including partial ones), receive buffer size, urgent state, precedence, security/compartment, and default transmission timeout.
地方のソケット、外国ソケット、市内接続名、窓を受けてください、そして、窓を送ってください、と接続は述べて、承認を待つバッファの数(領収書(部分的なものを含んでいる)までバッファの数)はバッファサイズ、緊急の状態、先行、セキュリティ/コンパートメント、およびデフォルトトランスミッションタイムアウトを受けます。
Depending on the state of the connection, or on the implementation itself, some of this information may not be available or meaningful. If the calling process is not authorized to use this connection, an error is returned. This prevents unauthorized processes from gaining information about a connection.
接続の状態、または、実装自体によって、この情報のいくつかが、利用可能であるか、または重要でないかもしれません。 呼び出しプロセスがこの接続を使用するのが認可されないなら、誤りは返されます。 これは、権限のないプロセスが接続に関して情報を得るのを防ぎます。
[Page 48]
[48ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
Abort
アボート
Format: ABORT (local connection name)
形式: アボート(市内接続名)
This command causes all pending SENDs and RECEIVES to be aborted, the TCB to be removed, and a special RESET message to be sent to the TCP on the other side of the connection. Depending on the implementation, users may receive abort indications for each outstanding SEND or RECEIVE, or may simply receive an ABORT-acknowledgment.
このコマンドはすべての未定のSENDs、中止されるべきRECEIVES、取り除かれるべきTCB、および接続の反対側の上のTCPに送られるべき特別なRESETメッセージを引き起こします。 実装によって、ユーザは、各傑出しているSENDかRECEIVEのためにアボート指摘を受けるか、または単にABORT-承認を受けるかもしれません。
TCP-to-User Messages
TCPからユーザへのメッセージ
It is assumed that the operating system environment provides a means for the TCP to asynchronously signal the user program. When the TCP does signal a user program, certain information is passed to the user. Often in the specification the information will be an error message. In other cases there will be information relating to the completion of processing a SEND or RECEIVE or other user call.
オペレーティングシステム環境がTCPがユーザ・プログラムに非同期に合図する手段を提供すると思われます。 TCPがユーザ・プログラムに合図すると、ある情報はユーザに渡されます。 しばしば仕様では、情報はエラーメッセージになるでしょう。 他の場合には、SENDかRECEIVEを処理する完成に関連する情報か他のユーザ呼び出しがあるでしょう。
The following information is provided:
以下の情報を提供します:
Local Connection Name Always Response String Always Buffer Address Send & Receive Byte count (counts bytes received) Receive End-of-Letter flag Receive End-of-Urgent flag Receive
地方のConnection Name Always Response String Always Buffer Address SendとReceive Byteカウント(バイトが受けたカウント)は手紙のEnd旗の緊急のReceive End旗のReceiveを受けます。
TCP/Network Interface
TCP/ネットワーク・インターフェース
The TCP calls on a lower level protocol module to actually send and receive information over a network. One case is that of the ARPA internetwork system where the lower level module is the Internet Protocol [2]. In most cases the following simple interface would be adequate.
TCPは、下のレベルプロトコルモジュールが実際にネットワークの上に情報を送って、受け取るよう呼びかけます。 1つのケースが下のレベルモジュールがインターネットプロトコル[2]であるところのARPAインターネットワークシステムのものです。 多くの場合、以下の簡単なインタフェースは適切でしょう。
[Page 49]
[49ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
The following two calls satisfy the requirements for the TCP to internet protocol module communication:
以下の2つの呼び出しがインターネットプロトコルモジュールコミュニケーションにTCPのための要件を満たします:
SEND (dest, TOS, TTL, BufPTR, len, Id, DF, options => result)
発信してください。(>dest、TOS、TTL、BufPTR、len、Id、DF、オプション=結果)
where:
どこ:
dest = destination address TOS = type of service TTL = time to live BufPTR = buffer pointer len = length of buffer Id = Identifier DF = Don't Fragment options = internet option data result = response OK = datagram sent ok Error = error in arguments or local network error
dest=目的地は生体のBufPTR=バッファ指針len=長さの識別子DFバッファId==へのサービスTTL=時間のタイプがそうしないTOS=に応答OK=データグラムが議論における間違いないError=誤りか企業内情報通信網誤りを送ったインターネットオプションデータFragmentオプション=結果=を扱います。
Note that the precedence is included in the TOS and the security/compartment is passed as an option.
先行がTOSに含まれていて、セキュリティ/コンパートメントがオプションとして通り過ぎられることに注意してください。
RECV (BufPTR => result, source, dest, prot, TOS, len)
RECV(>結果、ソース、dest、prot、TOS、BufPTR=len)
where:
どこ:
BufPTR = buffer pointer result = response OK = datagram received ok Error = error in arguments source = source address dest = destination address prot = protocol TOS = type of service options = internet option data len = length of buffer
応答OK=バッファ指針BufPTR=結果=データグラムはバッファのインターネットオプションデータlen=サービスオプションのソースアドレスdest=目的地アドレスprot=プロトコルTOS=議論ソース=タイプ=長さで間違いないError=誤りを受けました。
Note that the precedence is in the TOS, and the security/compartment is an option.
先行がTOSにあって、セキュリティ/コンパートメントがオプションであることに注意してください。
When the TCP sends a segment, it executes the SEND call supplying all the arguments. The internet protocol module, on receiving this call, checks the arguments and prepares and sends the message. If the arguments are good and the segment is accepted by the local network, the call returns successfully. If either the arguments are bad, or the segment is not accepted by the local network, the call returns unsuccessfully. On unsuccessful returns, a reasonable report should be made as to the cause of the
TCPがセグメントを送るとき、それはすべての議論を供給するSEND呼び出しを実行します。 インターネットプロトコルモジュールは、メッセージをこの呼び出しを受けるとき議論をチェックして、準備して、送ります。 議論が良く、セグメントが企業内情報通信網によって受け入れられるなら、呼び出しは首尾よく戻ります。 議論が悪いか、またはセグメントが企業内情報通信網によって受け入れられないなら、呼び出しは戻って失敗した。 失敗のリターンのときに、妥当なレポートは原因に関して作られるべきです。
[Page 50]
[50ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
problem, but the details of such reports are up to individual implementations.
しかし、問題、そのようなレポートの詳細は個々の実装まで達しています。
When a segment arrives at the internet protocol module from the local network, either there is a pending RECV call from TCP or there is not. In the first case, the pending call is satisfied by passing the information from the segment to the TCP. In the second case, the TCP is notified of a pending segment.
セグメントが企業内情報通信網からインターネットプロトコルモジュールに到着するとき、TCPからの未定のRECV呼び出しがあるか、またはありません。 前者の場合、未定の呼び出しは、セグメントからTCPまで情報を通過することによって、満たされています。 2番目の場合では、未定のセグメントについてTCPに通知します。
The notification of a TCP may be via a pseudo interrupt or similar mechanism, as appropriate in the particular operating system environment of the implementation.
TCPの通知が疑似中断か同様のメカニズムであるかもしれません、実装の特定のオペレーティングシステム環境で、適切です。
A TCP's RECV call may then either be immediately satisfied by a pending segment, or the call may be pending until a segment arrives.
次に、TCPのRECV呼び出しがすぐに、未定のセグメントによって満たされるかもしれませんか、またはセグメントが到着するまで、呼び出しは未定であるかもしれません。
We note that the Internet Protocol provides arguments for a type of service and for a time to live. TCP uses the following settings for these parameters:
私たちは、インターネットプロトコルが一種のサービスと生きる時間に議論を提供することに注意します。 TCPはこれらのパラメタに以下の設定を使用します:
Type of Service = Precedence: none, Package: stream, Reliability: higher, Preference: speed, Speed: higher; or 00011111.
サービスのタイプは先行と等しいです: なにも、パッケージ: Reliability、流れてください: より高い、Preference: Speed、疾走してください: より高い。 または、00011111。
Time to Live = one minute, or 00111100.
Liveへの時間は1つ分、または00111100と等しいです。
Note that the assumed maximum segment lifetime is two minutes. Here we explicitly ask that a segment be destroyed if it cannot be delivered by the internet system within one minute.
想定された最大のセグメント寿命が2分であることに注意してください。 ここで、私たちは、1分以内にインターネットシステムでそれを提供できないならセグメントが破壊されるように明らかに頼みます。
[Page 51]
[51ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
3.9. Event Processing
3.9. イベント処理
The activity of the TCP can be characterized as responding to events. The events that occur can be cast into three categories: user calls, arriving segments, and timeouts. This section describes the processing the TCP does in response to each of the events. In many cases the processing required depends on the state of the connection.
イベントに応じるとしてTCPの活動を特徴付けることができます。 起こるイベントは3つのカテゴリに投げかけることができます: ユーザ呼び出し、到着しているセグメント、およびタイムアウト。 このセクションはTCPがそれぞれのイベントに対応してする処理について説明します。 多くの場合、必要である処理は接続の状態に依存します。
Events that occur:
起こるイベント:
User Calls
ユーザ呼び出し
OPEN SEND RECEIVE CLOSE ABORT STATUS
戸外が発信する、近いアボート状態を取ってください。
Arriving Segments
到着セグメント
SEGMENT ARRIVES
セグメントは到着します。
Timeouts
タイムアウト
USER TIMEOUT RETRANSMISSION TIMEOUT
ユーザタイムアウト再送タイムアウト
The model of the TCP/user interface is that user commands receive an immediate return and possibly a delayed response via an event or pseudo interrupt. In the following descriptions, the term "signal" means cause a delayed response.
TCP/ユーザーインタフェースのモデルはユーザコマンドがイベントか疑似中断で即座のリターンとことによると遅延応答を受けるということです。 以下の記述では、「信号」という用語は、遅延応答を引き起こすことを意味します。
Error responses are given as character strings. For example, user commands referencing connections that do not exist receive "error: connection not open".
文字列として誤り応答を与えます。 例えば、存在しない接続に参照をつけるユーザコマンドが受信される、「誤り:」 「オープンでない接続。」
Please note in the following that all arithmetic on sequence numbers, acknowledgment numbers, windows, et cetera, is modulo 2**32 the size of the sequence number space. Also note that "=<" means less than or equal to.
以下で一連番号、確認応答番号、窓などですべて算数でそれに注意してください、そして、法2**32は一連番号スペースのサイズですか? また、その「=<」がそれほど意味しないことに注意してください。
A natural way to think about processing incoming segments is to imagine that they are first tested for proper sequence number (i.e., that their contents lie in the range of the expected "receive window" in the sequence number space) and then that they are generally queued and processed in sequence number order.
入って来るセグメントを処理すると考える自然な方法はそれらがその時一連番号オーダーでそれらが最初に、適切な一連番号がないかどうかテストされて(すなわち、それらの内容が予想の範囲にあるのが一連番号スペースで「窓を受ける」)、一般に、列に並ばせられて、処理されると想像することです。
[Page 52]
[52ページ]
January 1980 Transmission Control Protocol Functional Specification
1980年1月の通信制御プロトコルの機能的な仕様
When a segment overlaps other already received segments we reconstruct the segment to contain just the new data, and adjust the header fields to be consistent.
セグメントが他の既に容認されたセグメントを重ね合わせるとき、私たちは、まさしく新しいデータを含むようにセグメントを再建して、一貫しているようにヘッダーフィールドを調整します。
[Page 53]
[53ページ]
January 1980 Transmission Control Protocol Functional Specification OPEN Call
1980年1月の通信制御プロトコルの機能的な仕様オープンコール
OPEN Call
オープンコール
CLOSED STATE (i.e., TCB does not exist)
閉じている状態(すなわち、TCBは存在していません)
Create a new transmission control block (TCB) to hold connection state information. Fill in local socket identifier, foreign socket, precedence, security/compartment, and user timeout information. Verify the security and precedence requested are allowed for this user, if not return "error: precedence not allowed" or "error: security/compartment not allowed." If active and the foreign socket is unspecified, return "error: foreign socket unspecified"; if active and the foreign socket is specified, issue a SYN segment. An initial send sequence number (ISS) is selected and the TCP receive buffer size is selected (if applicable). A SYN segment of the form <SEQ=ISS><CTL=SYN> is sent (this may include the buffer size option if applicable). Set SND.UNA to ISS, SND.NXT to ISS+1, SND.LBB to ISS+1, enter SYN-SENT state, and return.
新しいトランスミッション制御ブロック(TCB)を作成して、接続州の情報を保持してください。 ローカルのソケット識別子、外国ソケット、先行、セキュリティ/コンパートメント、およびユーザタイムアウト情報に記入してください。 セキュリティについて確かめて、戻らないでもこのユーザのために許容されている、先行が、要求した「誤り:」 または、「先行は許容しなかった」、「誤り:」 「許容されなかったセキュリティ/コンパートメント。」 能動態と外国ソケットが不特定であるなら、戻ってください、「誤り:」 「外国ソケット不特定」。 能動態と外国ソケットが指定されるなら、SYNセグメントを発行してください。 一連番号(ISS)は、選択されていてTCPです。イニシャルが発信する、受信バッファサイズは選択されます(適切であるなら)。 フォーム<SEQ=ISS><CTL=SYN>のSYNセグメントを送ります(適切であるなら、これはバッファサイズオプションを含むかもしれません)。 ISSにSND.UNAを設定してください、ISS+1へのSND.NXT(ISS+1へのSND.LBB)はSYN-SENT状態に入って、戻ります。
If the caller does not have access to the local socket specified, return "error: connection illegal for this process". If there is no room to create a new connection, return "error: insufficient resources".
訪問者が地方のソケットへのアクセスを指定させないなら、戻ってください、「誤り:」 「このプロセスのための接続不法入国者。」 新しい接続を創造する余地が全くなければ、戻ってください、「誤り:」 「不十分なリソース。」
LISTEN STATE SYN-SENT STATE SYN-RECEIVED STATE ESTABLISHED STATE FIN-WAIT-1 STATE FIN-WAIT-2 STATE TIME-WAIT STATE CLOSE-WAIT STATE CLOSING STATE
状態を閉じて、SYNによって送られた州のSYNによって容認された州の確立した州のフィン州の待1ち州のフィン待2ちの州の時間待ち状態の近い待ち状態を聴いてください。
Return "error: connection already exists".
リターン、「誤り:」 「接続は既に存在しています。」
[Page 54]
[54ページ]
January 1980 Transmission Control Protocol Functional Specification SEND Call
1980年1月の通信制御プロトコルの機能的な仕様は呼び出しを送ります。
SEND Call
呼び出しを送ってください。
CLOSED STATE (i.e., TCB does not exist)
閉じている状態(すなわち、TCBは存在していません)
If the user should no have access to such a connection, then return "error: connection illegal for this process".
いいえがユーザであるならそのようなa接続に近づく手段を持つべきであり、次に、戻ってください、「誤り:」 「このプロセスのための接続不法入国者。」
Otherwise, return "error: connection does not exist".
さもなければ、戻ってください、「誤り:」 「接続は存在していません。」
LISTEN STATE
状態を聴いてください。
If the foreign socket is specified, then change the connection from passive to active, select an ISS, and select the receive buffer size. Send a SYN segment, set SND.UNA to ISS, SND.NXT to ISS+1 and SND.LBB to ISS+1. Enter SYN-SENT state. Data associated with SEND may be sent with SYN segment or queued for transmission after entering ESTABLISHED state. The urgent bit if requested in the command should be sent with the first data segment sent as a result of this command. If there is no room to queue the request, respond with "error: insufficient resources". If Foreign socket was not specified, then return "error: foreign socket unspecified".
外国ソケットが指定されるなら、受動態からアクティブになるまでの接続を変えてください、そして、ISSを選択してください、そして、受信バッファサイズを選択してください。 SYNセグメントを送ってください、そして、ISSへのSND.UNA、ISS+1へのSND.NXT、およびISS+1へのSND.LBBを設定してください。 SYN-SENT状態に入ってください。 SENDに関連しているデータをSYNセグメントと共に送るか、またはESTABLISHED状態に入った後に、トランスミッションのために列に並ばせるかもしれません。 コマンドで要求するなら、最初のデータ・セグメントをこのコマンドの結果、送付で緊急のビットを送るべきです。 要求を列に並ばせる余地が全くなければ、応じてください、「誤り:」 「不十分なリソース。」 Foreignソケットが指定されなかったなら戻ってください、「誤り:」 「外国ソケット不特定です」。
SYN-SENT STATE
SYNによって送られた状態
Queue for processing after the connection is ESTABLISHED. Typically, nothing can be sent yet, anyway, because the send window has not yet been set by the other side. If no space, return "error: insufficient resources".
処理には、接続がESTABLISHEDになった後に列を作ってください。 窓を送ってください。通常、まだ、とにかく何も送ることができない、反対側によってまだ設定されていません。 スペースでないなら、戻ってください、「誤り:」 「不十分なリソース。」
SYN-RECEIVED STATE
SYNによって容認された状態
Queue for later processing after entering ESTABLISHED state. If no space to queue, respond with "error: insufficient resources".
ESTABLISHED状態に入った後に後で処理するには、列を作ってください。 列に並ばせて、応じるスペースでない、「誤り:」 「不十分なリソース。」
ESTABLISHED STATE
設立された状態
Segmentize the buffer, send or queue it for output, with a piggybacked acknowledgment (acknowledgment value = RCV.NXT) with the data. If there is insufficient space to remember this buffer, simply return "error: insufficient resources".
出力のためにデータがある便乗している承認(承認値はRCV.NXTと等しい)でバッファをSegmentizeするか、発信するか、またはそれを列に並ばせます。 このバッファを覚えているために不十分なスペースがあれば、単に戻ってください、「誤り:」 「不十分なリソース。」
If remote buffer size is not one octet, and, if this is the end of a letter, do the following end-of-letter/buffer-size adjustment processing:
これが手紙の端であり、リモートバッファサイズが1つの八重奏でないなら、以下のバッファ手紙の端/サイズの調節処理をしてください:
[Page 55]
[55ページ]
January 1980 Transmission Control Protocol Functional Specification SEND Call
1980年1月の通信制御プロトコルの機能的な仕様は呼び出しを送ります。
if EOL = 0 then
EOLがその時0と等しいなら
SND.NXT <- SEG.SEQ + SEG.LEN
SND.NXT<SEG.SEQ+SEG.LEN
if EOL = 1 then
EOLがその時1と等しいなら
While SND.LBB < SEG.SEQ + SEG.LEN Do SND.LBB <- SND.LBB + SND.BS End SND.NXT <- SND.LBB
SND.LBB<SEG.SEQ+SEG.LENはSND.LBB<SND.BS終わりのSND.NXT SND.LBB+<SND.LBBをしますが
If the urgent flag is set, then SND.UP <- SND.NXT-1 and set the urgent pointer in the outgoing segment.
緊急の旗が設定されて、次に、SND.UP<がSND.NXT-1であり、セットが外向的なセグメントの緊急の指針であるなら。
FIN-WAIT-1 STATE FIN-WAIT-2 STATE TIME-WAIT STATE
フィン待1ち州のフィン待2ち州の時間待ち状態
Return "error: connection closing" and do not service request.
リターン、「誤り:」 「接続閉鎖、」 どんなサービスのリクエストもしないでください。
CLOSE-WAIT STATE
近い待ち状態
Segmentize any text to be sent and queue for output. If there is insufficient space to remember the SEND, return "error: insufficient resources"
Segmentizeする、送られて、出力のために列を作るどんなテキスト。 SENDを覚えているために不十分なスペースがあれば、戻ってください、「誤り:」 「不十分なリソース」
CLOSING STATE
状態を閉じます。
Respond with "error: connection closing"
応じる、「誤り:」 「接続閉鎖」
[Page 56]
[56ページ]
January 1980 Transmission Control Protocol Functional Specification RECEIVE Call
1980年1月の通信制御プロトコルの機能的な仕様は呼び出しを受けます。
RECEIVE Call
呼び出しを受けてください。
CLOSED STATE (i.e., TCB does not exist)
閉じている状態(すなわち、TCBは存在していません)
If the user should no have access to such a connection, return "error: connection illegal for this process".
ユーザがそうするならいいえがそのような接続に近づく手段を持って、戻ってください、「誤り:」 「このプロセスのための接続不法入国者。」
Otherwise return "error: connection does not exist".
さもなければ、戻ってください、「誤り:」 「接続は存在していません。」
LISTEN STATE SYN-SENT STATE SYN-RECEIVED STATE
州のSYNによって送られた州のSYNによって容認された状態を聴いてください。
Queue for processing after entering ESTABLISHED state. If there is no room to queue this request, respond with "error: insufficient resources".
処理には、ESTABLISHED状態に入った後に、列を作ってください。 待ち行列へのこれが要求して、応じる余地が全くない、「誤り:」 「不十分なリソース。」
ESTABLISHED STATE
設立された状態
If insufficient incoming segments are queued to satisfy the request, queue the request. If there is no queue space to remember the RECEIVE, respond with "error: insufficient resources".
不十分な入って来るセグメントが要望に応じるために列に並ばせられるなら、要求を列に並ばせてください。 いいえが待ち行列がRECEIVEを覚えているために区切って、応じるある、「誤り:」 「不十分なリソース。」
Reassemble queued incoming segments into receive buffer and return to user. Mark "end of letter" (EOL) if this is the case.
列に並ばせられた入って来るセグメントを受信バッファの中に組み立て直してください、そして、ユーザに戻ってください。 これがそうであるなら「手紙の端」(EOL)をマークしてください。
If RCV.UP is in advance of the data currently being passed to the user notify the user of the presence of urgent data.
RCV.UPが現在ユーザに渡されるデータの前にあるなら、緊急のデータの存在についてユーザに通知してください。
When the TCP takes responsibility for delivering data to the user that fact must be communicated to the sender via an acknowledgment. The formation of such an acknowledgment is described below in the discussion of processing an incoming segment.
TCPがデータをユーザに提供するのに責任を取るとき、承認でその事実を送付者に伝えなければなりません。 そのような承認の構成は以下で入って来るセグメントを処理する議論で説明されます。
FIN-WAIT-1 STATE FIN-WAIT-2 STATE
フィン待1ち州のフィン待2ち状態
Reassemble and return a letter, or as much as will fit, in the user buffer. Queue the request if it cannot be serviced immediately.
同じくらい手紙、またはユーザバッファで合うのと同じくらい多くを組み立て直して、返してください。 すぐにそれを調整できないなら、要求を列に並ばせてください。
[Page 57]
[57ページ]
January 1980 Transmission Control Protocol Functional Specification RECEIVE Call
1980年1月の通信制御プロトコルの機能的な仕様は呼び出しを受けます。
TIME-WAIT STATE CLOSE-WAIT STATE
時間待ち状態の近い待ち状態
Since the remote side has already sent FIN, RECEIVEs must be satisfied by text already reassembled, but not yet delivered to the user. If no reassembled segment text is awaiting delivery, the RECEIVE should get a "error: connection closing" response. Otherwise, any remaining text can be used to satisfy the RECEIVE.
遠隔地側が既にFINを送ったので、既に組み立て直されましたが、まだユーザに提供されなかったテキストでRECEIVEsを満たさなければなりません。 どんな組み立て直されたセグメントテキストも配送を待っていないなら、RECEIVEがaを得るはずである、「誤り:」 「接続閉鎖」応答。 さもなければ、RECEIVEを満たすのにどんな残っているテキストも使用できます。
CLOSING STATE
状態を閉じます。
Return "error: connection closing"
リターン、「誤り:」 「接続閉鎖」
[Page 58]
[58ページ]
January 1980 Transmission Control Protocol Functional Specification CLOSE Call
1980年1月の通信制御プロトコルの機能的な仕様危機一髪
CLOSE Call
危機一髪
CLOSED STATE (i.e., TCB does not exist)
閉じている状態(すなわち、TCBは存在していません)
If the user should no have access to such a connection, return "error: connection illegal for this process".
ユーザがそうするならいいえがそのような接続に近づく手段を持って、戻ってください、「誤り:」 「このプロセスのための接続不法入国者。」
Otherwise, return "error: connection does not exist".
さもなければ、戻ってください、「誤り:」 「接続は存在していません。」
LISTEN STATE
状態を聴いてください。
Any outstanding RECEIVEs should be returned with "error: closing" responses. Delete TCB, return "ok".
どんな傑出しているRECEIVEsもともに帰られるべきである、「誤り:」 応答を「閉じます」。 TCBを削除してください、そして、「OKに」戻ってください。
SYN-SENT STATE
SYNによって送られた状態
Delete the TCB and return "error: closing" responses to any queued SENDs, or RECEIVEs.
TCBとリターンを削除してください、「誤り:」 いずれかへの応答を「閉じる」と、SENDs、またはRECEIVEsが列に並ばせました。
SYN-RECEIVED STATE
SYNによって容認された状態
Queue for processing after entering ESTABLISHED state or segmentize and send FIN segment. If the latter, enter FIN-WAIT-1 state.
ESTABLISHED状態に入った後に、処理のために列を作ってくださいか、FINセグメントをsegmentizeして、送ってください。 後者であるなら、FIN-WAIT-1状態に入ってください。
ESTABLISHED STATE
設立された状態
Queue this until all preceding SENDs have been segmentized, then form a FIN segment and send it. In any case, enter FIN-WAIT-1 state.
すべての前のSENDsがsegmentizedされるまで、これを列に並ばせてください、そして、次に、FINセグメントを形成してください、そして、それを送ってください。 どのような場合でも、FIN-WAIT-1状態に入ってください。
FIN-WAIT-1 STATE FIN-WAIT-2 STATE
フィン待1ち州のフィン待2ち状態
Strictly speaking, this is an error and should receive a "error: connection closing" response. An "ok" response would be acceptable, too, as long as a second FIN is not emitted (the first FIN may be retransmitted though).
厳密に言うと、これが誤りであり、aを受けるべきである、「誤り:」 「接続閉鎖」応答。 また、第2のFINが放たれていない(もっとも、最初のFINは再送されるかもしれません)限り、「間違いありません、な」応答は許容できるでしょう。
[Page 59]
[59ページ]
January 1980 Transmission Control Protocol Functional Specification CLOSE Call
1980年1月の通信制御プロトコルの機能的な仕様危機一髪
TIME-WAIT STATE
時間待ち状態
Strictly speaking, this is an error and should receive a "error: connection closing" response. An "ok" response would be acceptable, too. However, since the FIN has been sent and acknowledged, nothing should be sent (or retransmitted).
厳密に言うと、これが誤りであり、aを受けるべきである、「誤り:」 「接続閉鎖」応答。 また、「間違いありません、な」応答は許容できるでしょう。 しかしながら、FINが送られて、承認されたので、何も送るべきではありません(または、再送されます)。
CLOSE-WAIT STATE
近い待ち状態
Queue this request until all preceding SENDs have been segmentized; then send a FIN segment, enter CLOSING state.
すべての前のSENDsがsegmentizedされるまで、この要求を列に並ばせてください。 次に、FINセグメントを送ってください、そして、CLOSING状態に入れてください。
CLOSING STATE
状態を閉じます。
Respond with "error: connection closing"
応じる、「誤り:」 「接続閉鎖」
[Page 60]
[60ページ]
January 1980 Transmission Control Protocol Functional Specification ABORT Call
1980年1月の通信制御プロトコルの機能的な仕様アボート呼び出し
ABORT Call
アボート呼び出し
CLOSED STATE (i.e., TCB does not exist)
閉じている状態(すなわち、TCBは存在していません)
If the user should no have access to such a connection, return "error: connection illegal for this process".
ユーザがそうするならいいえがそのような接続に近づく手段を持って、戻ってください、「誤り:」 「この過程のための接続不法入国者。」
Otherwise return "error: connection does not exist".
さもなければ、戻ってください、「誤り:」 「接続は存在していません。」
LISTEN STATE
状態を聴いてください。
Any outstanding RECEIVEs should be returned with "error: connection reset" responses. Delete TCB, return "ok".
どんな傑出しているRECEIVEsもともに帰られるべきである、「誤り:」 「接続リセット」応答。 TCBを削除してください、そして、「OKに」戻ってください。
SYN-SENT STATE
SYNによって送られた状態
Delete the TCB and return "reset" responses to any queued SENDs, or RECEIVEs.
どんな列に並ばせられたSENDsや、またはRECEIVEsへのTCBとリターン「リセット」応答も削除してください。
SYN-RECEIVED STATE
SYNによって容認された状態
Send a RST of the form:
形式のRSTを送ってください:
<SEQ=SND.NXT><ACK=RCV.NXT><CTL=RST,ACK>
<SEQ=SND.NXT><ACK=RCV.NXT><CTL=RST、ACK>。
and return any unprocessed SENDs, or RECEIVEs with "reset" code, delete the TCB.
そして、リターンの未加工のいずれもSENDs、または「リセット」コードがあるRECEIVEsがTCBを削除します。
ESTABLISHED STATE
設立された状態
Send a reset segment:
リセットセグメントを送ってください:
<SEQ=SND.NXT><ACK=RCV.NXT><CTL=RST,ACK>
<SEQ=SND.NXT><ACK=RCV.NXT><CTL=RST、ACK>。
All queued SENDs and RECEIVEs should be given "reset" responses; all segments queued for transmission (except for the RST formed above) or retransmission should be flushed, delete the TCB.
すべてがSENDsを列に並ばせました、そして、「リセット」応答をRECEIVEsに与えるべきです。 トランスミッション(上に形成されたRSTを除いた)か「再-トランスミッション」のために列に並ばせられたセグメントがそうするべきであるすべてが洗い流されて、TCBを削除してください。
[Page 61]
[61ページ]
January 1980 Transmission Control Protocol Functional Specification ABORT Call
1980年1月の通信制御プロトコルの機能的な仕様アボート呼び出し
FIN-WAIT-1 STATE FIN-WAIT-2 STATE
フィン待1ち州のフィン待2ち状態
A reset segment (RST) should be formed and sent:
リセットセグメント(RST)を形成して、送るべきです:
<SEQ=SND.NXT><ACK=RCV.NXT><CTL=RST,ACK>
<SEQ=SND.NXT><ACK=RCV.NXT><CTL=RST、ACK>。
Outstanding SENDs, RECEIVEs, CLOSEs, and/or segments queued for retransmission, or segmentizing, should be flushed, with "connection reset" notification to the user, delete the TCB.
傑出しているSENDs(「再-トランスミッション」、またはsegmentizingが洗い流されるべきであるユーザへの「接続リセット」通知で列に並ばせられたRECEIVEs、CLOSEs、そして/または、セグメント)はTCBを削除します。
TIME-WAIT STATE
時間待ち状態
Respond with "ok" and delete the TCB.
「OK」で応じてください、そして、TCBを削除してください。
CLOSE-WAIT STATE
近い待ち状態
Flush any pending SENDs and RECEIVEs, returning "connection reset" responses for them. Form and send a RST segment:
それらのために「接続リセット」応答を返して、あらゆる未定のSENDsとRECEIVEsを洗い流してください。 RSTセグメントを形成して、送ってください:
<SEQ=SND.NXT><ACK=RCV.NXT><CTL=RST,ACK>
<SEQ=SND.NXT><ACK=RCV.NXT><CTL=RST、ACK>。
Flush all segment queues and delete the TCB.
すべてのセグメント待ち行列を洗い流してください、そして、TCBを削除してください。
CLOSING STATE
状態を閉じます。
Respond with "ok" and delete the TCB; flush any remaining segment queues. If a CLOSE command is still pending, respond "error: connection reset".
「OK」で応じてください、そして、TCBを削除してください。 あらゆる残っているセグメント待ち行列を洗い流してください。 CLOSEコマンドがまだ未定であるなら、応じてください、「誤り:」 「接続リセット。」
[Page 62]
[62ページ]
January 1980 Transmission Control Protocol Functional Specification STATUS Call
1980年1月の通信制御プロトコルの機能的な仕様状態呼び出し
STATUS Call
状態呼び出し
CLOSED STATE (i.e., TCB does not exist)
閉じている状態(すなわち、TCBは存在していません)
If the user should no have access to such a connection, return "error: connection illegal for this process".
ユーザがそうするならいいえがそのような接続に近づく手段を持って、戻ってください、「誤り:」 「この過程のための接続不法入国者。」
Otherwise return "error: connection does not exist".
さもなければ、戻ってください、「誤り:」 「接続は存在していません。」
LISTEN STATE
状態を聴いてください。
Return "state = LISTEN", and the TCB pointer.
「状態はLISTENと等しい」、およびTCBポインタを返してください。
SYN-SENT STATE
SYNによって送られた状態
Return "state = SYN-SENT", and the TCB pointer.
「状態はSYN-SENTと等しい」、およびTCBポインタを返してください。
SYN-RECEIVED STATE
SYNによって容認された状態
Return "state = SYN-RECEIVED", and the TCB pointer.
「状態はSYN-RECEIVEDと等しい」、およびTCBポインタを返してください。
ESTABLISHED STATE
設立された状態
Return "state = ESTABLISHED", and the TCB pointer.
「状態はESTABLISHEDと等しい」、およびTCBポインタを返してください。
FIN-WAIT-1 STATE
フィン待1ち状態
Return "state = FIN-WAIT-1", and the TCB pointer.
「FIN-WAIT-1インチ、およびTCB状態=ポインタ」を返してください。
FIN-WAIT-2 STATE
フィン待2ち状態
Return "state = FIN-WAIT-2", and the TCB pointer.
「FIN-WAIT-2インチ、およびTCB状態=ポインタ」を返してください。
TIME-WAIT STATE
時間待ち状態
Return "state = TIME-WAIT and the TCB pointer.
「タイム誌-WAITとTCB状態=ポインタ」を返してください。
CLOSE-WAIT STATE
近い待ち状態
Return "state = CLOSE-WAIT", and the TCB pointer.
「状態はCLOSE-WAITと等しい」、およびTCBポインタを返してください。
CLOSING STATE
状態を閉じます。
Return "state = CLOSING", and the TCB pointer.
「状態はCLOSINGと等しい」、およびTCBポインタを返してください。
[Page 63]
[63ページ]
January 1980 Transmission Control Protocol Functional Specification SEGMENT ARRIVES
1980年1月の通信制御プロトコルの機能的な仕様セグメントは到着します。
SEGMENT ARRIVES
セグメントは到着します。
If the state is CLOSED (i.e., TCB does not exist) then
その時状態がCLOSED(すなわち、TCBは存在していない)であるなら
all data in the incoming segment is discarded. An incoming segment containing a RST is discarded. An incoming segment not containing a RST causes a RST to be sent in response. The acknowledgment and sequence field values are selected to make the reset sequence acceptable to the TCP that sent the offending segment.
入って来るセグメントのすべてのデータが捨てられます。 RSTを含む入って来るセグメントは捨てられます。 RSTを含まない入って来るセグメントで、応答でRSTを送ります。 承認と系列分野値でリセット系列が怒っているセグメントを送ったTCPに許容できるようになるのが選択されます。
If the ACK bit is off, sequence number zero is used,
ACKビットがオフであるなら、一連番号ゼロは使用されています。
<SEQ=0><ACK=SEG.SEQ+SEG.LEN><CTL=RST,ACK>
<SEQ=0><ACK=SEG.SEQ+SEG.LEN><CTL=RST、ACK>。
If the ACK bit is on,
ACKビットがオンであるなら
<SEQ=SEG.ACK><CTL=RST>
<SEQ=SEG.ACK><CTL=RST>。
Return.
戻ってください。
If the state is LISTEN then
その時状態がLISTENであるなら
first check for an ACK
まず最初に、ACKがないかどうかチェックしてください。
Any acknowledgment is bad if it arrives on a connection still in the LISTEN state. An acceptable reset segment should be formed for any arriving ACK-bearing segment, except another RST. The RST should be formatted as follows:
まだLISTEN状態での接続に到達するなら、どんな承認も悪いです。 許容できるリセットセグメントはどんなACKを持っている到着セグメントのためにも形成されるべきです、別のRSTを除いて。RSTは以下の通りフォーマットされるべきです:
<SEQ=SEG.ACK><CTL=RST>
<SEQ=SEG.ACK><CTL=RST>。
Return.
戻ってください。
An incoming RST should be ignored. Return.
入って来るRSTは無視されるべきです。 戻ってください。
if there was no ACK then check for a SYN
ACKが全くなかったなら、SYNがないかどうかチェックしてください。
If the SYN bit is set, check the security. If the security/compartment on the incoming segment does not exactly match the security/compartment in the TCB then send a reset and return. If the SEG.PRC is less than the TCB.PRC then send a reset and return. If the SEG.PRC is greater than the TCB.PRC then set TCB.PRC<-SEG.PRC. Now RCV.NXT and RCV.LBB are set to SEG.SEQ+1, IRS is set to SEG.SEQ and any other control or text should be queued for processing later. ISS should be selected and a SYN segment sent of the form:
SYNビットが設定されるなら、セキュリティをチェックしてください。 入って来るセグメントのセキュリティ/コンパートメントがまさにTCBでセキュリティ/コンパートメントに合っていないなら、リセットとリターンを送ってください。 SEG.PRCがTCB.PRC以下であるなら、リセットとリターンを送ってください。 SEG.PRCがTCB.PRCより大きいなら、TCB.PRC<-SEG.PRCを設定してください。 RCV.NXTとRCV.LBBがSEG.SEQ+1に用意ができているので、IRSはSEG.SEQに用意ができています、そして、いかなる他のコントロールかテキストも後で処理のために列に並ばせられるべきです。 ISSは選択されるべきでした、そして、SYNセグメントはフォームを発信させました:
[Page 64]
[64ページ]
January 1980 Transmission Control Protocol Functional Specification SEGMENT ARRIVES
1980年1月の通信制御プロトコルの機能的な仕様セグメントは到着します。
<SEQ=ISS><ACK=RCV.NXT><CTL=SYN,ACK>
<SEQ=ISS><ACK=RCV.NXT><CTL=SYN、ACK>。
SND.NXT and SND.LBB are set to ISS+1 and SND.UNA to ISS. The connection state should be changed to SYN-RECEIVED. Note that any other incoming control or data (combined with SYN) will be processed in the SYN-RECEIVED state, but processing of SYN and ACK should not be repeated. If the listen was not fully specified (i.e., the foreign socket was not fully specified), then the unspecified fields should be filled in now.
SND.NXTとSND.LBBはISSへのISS+1とSND.UNAに用意ができています。 接続状態はSYN-RECEIVEDに変わるべきです。 いかなる他の入って来るコントロールかデータ(SYNに結合される)もSYN-RECEIVED状態で加工処理されますが、SYNとACKの処理が繰り返されるべきでないことに注意してください。 聴取、完全に指定されているというわけではなくて(すなわち、外国ソケットは完全に指定されたというわけではありません)、そして、不特定の分野は現在、記入されるべきです。
if there was no SYN but there was other text or control
SYNが全くありませんでしたが、他のテキストかコントロールがあったなら
Any other control or text-bearing segment (not containing SYN) must have an ACK and thus would be discarded by the ACK processing. An incoming RST segment could not be valid, since it could not have been sent in response to anything sent by this incarnation of the connection. So you are unlikely to get here, but if you do, drop the segment, and return.
いかなる他のコントロールかテキストを持つセグメント(SYNを含んでいない)も、ACKを持たなければならなくて、その結果、ACK処理で捨てられるでしょう。 入って来るRSTセグメントは有効であったはずがありません、接続のこの肉体化によって送られたものは何もに対応してそれを送ることができなかったので。 ここに到着しそうではありませんが、到着するなら、セグメントを落としてください、そして、戻ってください。
If the state is SYN-SENT then
その時状態がSYN-SENTであるなら
first check for an ACK
まず最初に、ACKがないかどうかチェックしてください。
If SEG.ACK =< ISS, or SEG.ACK > SND.NXT, or the security/compartment in the segment does not exactly match the security/compartment in the TCB, or the precedence in the segment is less than the precedence in the TCB, send a reset
SEG.ACKが<ISS、またはSEG.ACK>SND.NXTと等しいか、セグメントのセキュリティ/コンパートメントがまさにTCBでセキュリティ/コンパートメントに合っていないか、セグメントにおける先行がTCBでの先行以下であるなら、リセットを送ってください。
<SEQ=SEG.ACK><CTL=RST>
<SEQ=SEG.ACK><CTL=RST>。
and discard the segment. Return.
そして、セグメントを捨ててください。 戻ってください。
If SND.UNA =< SEG.ACK =< SND.NXT and the security/compartment and precedence are acceptable then the ACK is acceptable. SND.UNA should be advanced to equal SEG.ACK, and any segments on the retransmission queue which are thereby acknowledged should be removed.
<SND.UNA=SEG.ACKが<SND.NXTと等しく、セキュリティ/コンパートメントと先行が許容できるなら、ACKは許容できます。 SEG.ACKと等しいようにSND.UNAを進めるべきです、そして、再送キューのその結果承認されるどんなセグメントも取り除くべきです。
if the ACK is ok (or there is no ACK), check the RST bit
ACKが間違いないなら(ACKが全くありません)、RSTビットをチェックしてください。
If the RST bit is set then signal the user "error: connection reset", enter CLOSED state, drop the segment, delete TCB, and return.
RSTビットが設定されるならユーザに合図してください、「誤り:」 「リセットされた接続」、CLOSED状態に入れてください、そして、セグメントを落としてください、そして、TCBを削除してください、そして、戻ってください。
if the ACK is ok (or there is no ACK) and it was not a RST, check the SYN bit
ACKが間違いなく(ACKが全くありません)、それがRSTでなかったなら、SYNビットをチェックしてください。
[Page 65]
[65ページ]
January 1980 Transmission Control Protocol Functional Specification SEGMENT ARRIVES
1980年1月の通信制御プロトコルの機能的な仕様セグメントは到着します。
If the SYN bit is on and the security/compartment and precedence are acceptable then, RCV.NXT and RCV.LBB are set to SEG.SEQ+1, IRS is set to SEG.SEQ. If SND.UNA > ISS (our SYN has been ACKed), change the connection state to ESTABLISHED, otherwise enter SYN-RECEIVED. In any case, form an ACK segment:
SYNビットがオンであり、セキュリティ/コンパートメントと先行がその時許容できるなら、RCV.NXTとRCV.LBBはSEG.SEQ+1に用意ができていて、IRSはSEG.SEQに用意ができています。 SND.UNA>ISS(私たちのSYNはACKedである)であるなら、接続状態をESTABLISHEDに変えてください。さもなければ、SYN-RECEIVEDを入れてください。 どのような場合でも、ACKセグメントを形成してください:
<SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK>
<SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK>。
and send it. Data or controls which were queued for transmission may be included.
そして、それを送ってください。 トランスミッションのために列に並ばせられたデータかコントロールが含まれるかもしれません。
If SEG.PRC is greater than TCB.PRC set TCB.PRC<-SEG.PRC.
SEG.PRCがTCB.PRCより大きいなら、TCB.PRC<-SEG.PRCを設定してください。
If there are other controls or text in the segment then continue processing at the fifth step below where the URG bit is checked, otherwise return.
セグメントに他のコントロールかテキストがあれば、URGビットがチェックされるところの下の第5ステップで処理し続けてください。さもなければ、戻ってください。
[Page 66]
[66ページ]
January 1980 Transmission Control Protocol Functional Specification SEGMENT ARRIVES
1980年1月の通信制御プロトコルの機能的な仕様セグメントは到着します。
Otherwise,
そうでなければ
first check sequence number
最初のチェック一連番号
SYN-RECEIVED STATE ESTABLISHED STATE FIN-WAIT-1 STATE FIN-WAIT-2 STATE TIME-WAIT STATE CLOSE-WAIT STATE CLOSING STATE
SYNによって容認された州は、状態を閉じながら、州のフィン待1ち州のフィン待2ちの州の時間待ち状態の近い待ち状態を確立しました。
Segments are processed in sequence. Initial tests on arrival are used to discard old duplicates, but further processing is done in SEG.SEQ order. If a segment's contents straddle the boundary between old and new, only the new parts should be processed.
セグメントは連続して処理されます。 古い写しを捨てるのに到着次第初期のテストを使用しますが、SEG.SEQオーダーでさらなる処理をします。 セグメントの内容が古く新しいことの間の境界にまたがっているなら、新しい部分だけが加工処理されるべきです。
There are four cases for the acceptability test for an incoming segment:
入って来るセグメントのための受容性テストのための4つのケースがあります:
Segment Receive Test Length Window ------- ------- -------------------------------------------
セグメントはテスト長さのウィンドウを受けます。------- ------- -------------------------------------------
0 0 SEG.SEQ = RCV.NXT
0 0SEG.SEQはRCV.NXTと等しいです。
0 >0 RCV.NXT =< SEG.SEQ < RCV.NXT+RCV.WND
0 >0RCV.NXTは<SEG.SEQ<RCV.NXT+RCV.WNDと等しいです。
>0 0 not acceptable
許容できない>0 0
>0 >0 RCV.NXT < SEG.SEQ+SEG.LEN =< RCV.NXT+RCV.WND
>0>0RCV.NXT<SEG.SEQ+SEG.LENは<RCV.NXT+RCV.WNDと等しいです。
Note that the test above guarantees that the last sequence number used by the segment lies in the receive-window. If the RCV.WND is zero, no segments will be acceptable, but special allowance should be made to accept valid ACKs, URGs and RSTs.
上が最後の一連番号にそれを保証するテストが、中のセグメント偽りで窓を受信するのを使用したことに注意してください。 RCV.WNDがゼロであるなら、どんなセグメントも許容できないでしょうが、有効なACKs、URGs、およびRSTsを受け入れるのを特別な考慮をするべきです。
If an incoming segment is not acceptable, an acknowledgment should be sent in reply:
入って来るセグメントが許容できないなら、回答で承認を送るべきです:
<SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK>
<SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK>。
If the incoming segment is unacceptable, drop it and return.
入って来るセグメントが容認できないなら、それとリターンを落としてください。
[Page 67]
[67ページ]
January 1980 Transmission Control Protocol Functional Specification SEGMENT ARRIVES
1980年1月の通信制御プロトコルの機能的な仕様セグメントは到着します。
second check security and precedence
2番目に、セキュリティと先行はチェックします。
If the security/compartment and precedence in the segment do not exactly match the security/compartment and precedence in the TCB then form a reset and return.
セグメントにおけるセキュリティ/コンパートメントと先行がまさにTCBでセキュリティ/コンパートメントと先行に合っていないなら、リセットとリターンを形成してください。
Note this check is placed following the sequence check to prevent a segment from an old connection between these parts with a different security or precedence from causing an abort of the current connection.
系列チェックに続いて、このチェックが置かれることに注意して、異なったセキュリティか先行とのこれらの部品の間の年取った関係からのセグメントが現在の接続のアボートを引き起こすのを防いでください。
third check the ACK field,
3番目にACK分野をチェックしてください。
SYN-RECEIVED STATE
SYNによって容認された状態
If the RST bit is off and SND.UNA < SEG.ACK =< SND.NXT then set SND.UNA <- SEG.ACK, remove any acknowledged segments from the retransmission queue, and enter ESTABLISHED state.
RSTビットがオフであり、SND.UNA<SEG.ACKが<SND.NXTと等しいなら、SND.UNA<SEG.ACKを設定してください、そして、再送キューからあらゆる承認されたセグメントを移してください、そして、ESTABLISHED状態に入れてください。
If the segment acknowledgment is not acceptable, form a reset segment,
セグメント承認が許容できないなら、リセットセグメントを形成してください。
<SEQ=SEG.ACK><CTL=RST>
<SEQ=SEG.ACK><CTL=RST>。
and send it, unless the incoming segment is an RST (or there is no ACK), in which case, it should be discarded, then return.
そして、それを送ってください、その場合、捨てられて、入って来るセグメントがRST(ACKが全くない)でないなら、それは、次に、戻るべきです。
ESTABLISHED STATE
設立された状態
If SND.UNA < SEG.ACK =< SND.NXT then, set SND.UNA <- SEG.ACK. Any segments on the retransmission queue which are thereby entirely acknowledged are removed. Users should receive positive acknowledgments for buffers which have been SENT and fully acknowledged (i.e., SEND buffer should be returned with "ok" response). If the ACK is a duplicate, it can be ignored.
SND.UNA<SEG.ACKがその時<SND.NXTと等しいなら、SND.UNA<SEG.ACKを設定してください。 再送キューのその結果完全に承認されるどんなセグメントも取り除きます。 ユーザはSENTであって完全に承認されたバッファのための肯定応答を受けるべきです(「間違いありません、な」応答と共にすなわち、SENDバッファを返すべきです)。 ACKが写しであるなら、それを無視できます。
If the segment passes the sequence number and acknowledgment number tests, the send window should be updated. If SND.WL =< SEG.SEQ, set SND.WND <- SEG.WND and set SND.WL <- SEG.SEQ.
窓を送ってください。セグメントが終わるなら一連番号と確認応答番号がテストされる、アップデートするべきです。 SND.WLが<SEG.SEQと等しいなら、SND.WND<SEG.WNDとセットSND.WL<SEG.SEQを設定してください。
If the remote buffer size is not one, then the end-of-letter/buffer-size adjustment to sequence numbers may have an effect on the next expected sequence number to be acknowledged. It is possible that the remote TCP will acknowledge with a SEG.ACK equal to a sequence number of an
リモートバッファサイズが1でないなら、一連番号へのバッファ手紙の端/サイズの調節は、承認されるために次の予想された一連番号に効果を持っているかもしれません。 それはリモートTCPがaで一連番号と等しいSEG.ACKを承認するのが可能です。
[Page 68]
[68ページ]
January 1980 Transmission Control Protocol Functional Specification SEGMENT ARRIVES
1980年1月の通信制御プロトコルの機能的な仕様セグメントは到着します。
octet that was skipped over at the end of a letter. This a mild error on the remote TCPs part, but not cause for alarm.
手紙の末尾に飛ばされた八重奏。 リモートTCPsにおける軽い誤りがアラームのために離れていますが、引き起こさないこれ。
FIN-WAIT-1 STATE FIN-WAIT-2 STATE
フィン待1ち州のフィン待2ち状態
In addition to the processing for the ESTABLISHED state, if the retransmission queue is empty, the user's CLOSE can be acknowledged ("ok") but do not delete the TCB.
ESTABLISHED状態への処理に加えて、再送キューが空であるなら、ユーザのCLOSEは承認できますが(「OK」)、TCBを削除しません。
TIME-WAIT STATE
時間待ち状態
The only thing that can arrive in this state is a retransmission of the remote FIN. Acknowledge it, and restart the 2 MSL timeout.
この状態に到着できる唯一のものがリモートFINの「再-トランスミッション」です。 それを承認してください、そして、2MSLタイムアウトを再開してください。
CLOSE-WAIT STATE
近い待ち状態
Do the same processing as for the ESTABLISHED state.
ESTABLISHED状態のように同じ処理をしてください。
CLOSING STATE
状態を閉じます。
If the ACK acknowledges our FIN then delete the TCB (enter the CLOSED state), otherwise ignore the segment.
ACKが、次に、私たちのFINがTCBを削除する(CLOSED状態に入る)と認めるなら、さもなければ、セグメントを無視してください。
fourth check the RST bit,
4番目にRSTビットをチェックしてください。
SYN-RECEIVED STATE
SYNによって容認された状態
If the RST bit is set then, if the segment has passed sequence and acknowledgment tests, it is valid. If this connection was initiated with a passive OPEN (i.e., came from the LISTEN state), then return this connection to LISTEN state. The user need not be informed. If this connection was initiated with an active OPEN (i.e., came from SYN-SENT state) then the connection was refused, signal the user "connection refused". In either case, all segments on the retransmission queue should be removed.
セグメントが系列と承認テストに合格したならRSTビットがその時設定されるなら、有効です。 この接続が受け身のオープン(すなわち、LISTEN状態から、来た)で開始されたなら、この接続をLISTEN状態に返してください。 ユーザは知識がある必要はありません。 この接続が活発なオープン(すなわち、SYN-SENT状態から、来た)で開始されたなら、接続は拒否されて、信号は「接続は拒否した」ユーザです。 どちらの場合ではも、再送キューのすべてのセグメントを取り除くべきです。
[Page 69]
[69ページ]
January 1980 Transmission Control Protocol Functional Specification SEGMENT ARRIVES
1980年1月の通信制御プロトコルの機能的な仕様セグメントは到着します。
ESTABLISHED FIN-WAIT-1 FIN-WAIT-2 CLOSE-WAIT CLOSING STATE
状態を閉じる確立したフィン待1ちフィン待2ちの厳密な待ち
If the RST bit is set then, any outstanding RECEIVEs and SEND should receive "reset" responses. All segment queues should be flushed. Users should also receive an unsolicited general "connection reset" signal. Enter the CLOSED state, delete the TCB, and return.
RSTビットがその時設定されるなら、どんな傑出しているRECEIVEsとSENDも「リセット」応答を受けるはずです。 すべてのセグメント待ち行列が洗い流されるべきです。 また、ユーザは求められていない一般的な「接続リセット」信号を受け取るべきです。 CLOSED状態に入れてください、そして、TCBを削除してください、そして、戻ってください。
TIME-WAIT
時間待ち
Enter the CLOSED state, delete the TCB, and return.
CLOSED状態に入れてください、そして、TCBを削除してください、そして、戻ってください。
fifth, check the SYN bit,
5番目に、SYNビットをチェックしてください。
SYN-RECEIVED ESTABLISHED STATE
SYNによって容認された設立された状態
If the SYN bit is set, check the segment sequence number against the receive window. The segment sequence number must be in the receive window; if not, ignore the segment. If the SYN is on and SEG.SEQ = IRS then everything is ok and no action is needed; but if they are not equal, there is an error and a reset must be sent.
SYNビットが設定されるなら、セグメント一連番号をチェックしてください、窓を受けてください。 セグメント一連番号があるに違いない、窓を受けてください。 そうでなければ、セグメントを無視してください。 SYNがオンであり、SEG.SEQがIRSと等しいなら、すべてが間違いありません、そして、動作は全く必要ではありません。 しかし、それらが等しくないなら、誤りがあります、そして、リセットを送らなければなりません。
If a reset must be sent it is formed as follows:
リセットを送らなければならないなら、以下の通りそれを形成します:
<SEQ=SEG.ACK><CTL=RST>
<SEQ=SEG.ACK><CTL=RST>。
The connection must be aborted as if a RST had been received.
まるでRSTを受け取ったかのように接続を中止しなければなりません。
FIN-WAIT STATE-1 FIN-WAIT STATE-2 TIME-WAIT STATE CLOSE-WAIT STATE CLOSING STATE
状態を閉じるフィン待ち状態1フィン待ち状態2の時間待ち状態の近い待ち状態
This case should not occur, since a duplicate of the SYN which started the current connection incarnation will have been filtered in the SEG.SEQ processing. Other SYN's will have been rejected by this test as well (see SYN processing for ESTABLISHED state).
本件は現れるはずがありません、現在の接続肉体化を始めたSYNの写しがSEG.SEQ処理でフィルターにかけられてしまうだろうので。 SYNの他のものはまた、このテストで拒絶されてしまうでしょう(ESTABLISHED状態にSYN処理を見てください)。
[Page 70]
[70ページ]
January 1980 Transmission Control Protocol Functional Specification SEGMENT ARRIVES
1980年1月の通信制御プロトコルの機能的な仕様セグメントは到着します。
sixth, check the URG bit,
6番目に、URGビットをチェックしてください。
ESTABLISHED STATE FIN-WAIT-1 STATE FIN-WAIT-2 STATE
確立した州のフィン待1ち州のフィン待2ち状態
If the URG bit is set, RCV.UP <- max(RCV.UP,SEG.UP), and signal the user that the remote side has urgent data if the urgent pointer (RCV.UP) is in advance of the data consumed. If the user has already been signaled (or is still in the "urgent mode") for this continuous sequence of urgent data, do not signal the user again.
URGビットが設定されるなら、RCV.UP<は、(RCV.UP、SEG.UP)に最大限にして、緊急の指針(RCV.UP)が消費されたデータの前にあるなら遠隔地側には緊急のデータがあるとユーザに合図します。 ユーザが緊急のデータのこの連続した系列のために既に合図されたなら(または、まだ「緊急のモード」で、あります)、再びユーザに合図しないでください。
TIME-WAIT STATE CLOSE-WAIT STATE CLOSING
時間待ち状態近い待ち状態閉鎖
This should not occur, since a FIN has been received from the remote side. Ignore the URG.
これは、遠隔地側からFINを受け取ったので、起こるべきではありません。 URGを無視してください。
seventh, process the segment text,
7番目に、セグメントテキストを処理してください。
ESTABLISHED STATE
設立された状態
Once in the ESTABLISHED state, it is possible to deliver segment text to user RECEIVE buffers. Text from segments can be moved into buffers until either the buffer is full or the segment is empty. If the segment empties and carries an EOL flag, then the user is informed, when the buffer is returned, that an EOL has been received.
ESTABLISHED状態では、一度、ユーザRECEIVEバッファにセグメントテキストを提供するのは可能です。 バッファが完全であるか、またはセグメントが空になるまで、セグメントからのテキストをバッファの中に動かすことができます。 バッファを返すとき、セグメントがEOL旗を空にして、運ぶなら、EOLが受け取られたとユーザを知らします。
If buffer size is not one octet, then do the following end-of-letter/buffer-size adjustment processing:
バッファサイズが1つの八重奏でないなら、以下のバッファ手紙の端/サイズの調節処理をしてください:
if EOL = 0 then
EOLがその時0と等しいなら
RCV.NXT <- SEG.SEQ + SEG.LEN
RCV.NXT<SEG.SEQ+SEG.LEN
if EOL = 1 then
EOLがその時1と等しいなら
While RCV.LBB < SEG.SEQ+SEG.LEN Do RCV.LBB <- RCV.LBB + RCV.BS End RCV.NXT <- RCV.LBB
RCV.LBB<SEG.SEQ+SEG.LENはRCV.LBB<RCV.BS終わりのRCV.NXT RCV.LBB+<RCV.LBBをしますが
When the TCP takes responsibility for delivering the data to the user it must also acknowledge the receipt of the data. Send an acknowledgment of the form:
また、TCPがデータをユーザに提供するのに責任を取るとき、それはデータの領収書を受け取ったことを知らせなければなりません。 形式の承認を送ってください:
[Page 71]
[71ページ]
January 1980 Transmission Control Protocol Functional Specification SEGMENT ARRIVES
1980年1月の通信制御プロトコルの機能的な仕様セグメントは到着します。
<SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK>
<SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK>。
This acknowledgment should be piggybacked on a segment being transmitted if possible without incurring undue delay.
この承認は、できれば、不当な遅延を被らないで伝えられながら、セグメントで背負われるべきです。
FIN-WAIT-1 STATE FIN-WAIT-2 STATE
フィン待1ち州のフィン待2ち状態
If there are outstanding RECEIVEs, they should be satisfied, if possible, with the text of this segment; remaining text should be queued for further processing. If a RECEIVE is satisfied, the user should be notified, with "end-of-letter" (EOL) signal, if appropriate.
傑出しているRECEIVEsがあれば、できれば、彼らはこのセグメントのテキストに満足するべきです。 テキストのままで残っているのはさらなる処理のために列に並ばせられるべきです。 RECEIVEが満たされているなら、ユーザは、「手紙の端」(EOL)信号で通知されていて、適切であるべきです。
TIME-WAIT STATE CLOSE-WAIT STATE
時間待ち状態の近い待ち状態
This should not occur, since a FIN has been received from the remote side. Ignore the segment text.
これは、遠隔地側からFINを受け取ったので、起こるべきではありません。 セグメントテキストを無視してください。
eighth, check the FIN bit,
8番目に、FINビットをチェックしてください。
Send an acknowledgment for the FIN. Signal the user "connection closing", and return any pending RECEIVEs with same message. Note that FIN implies EOL for any segment text not yet delivered to the user. If the current state is ESTABLISHED, enter the CLOSE-WAIT state. If the current state is FIN-WAIT-1, enter the CLOSING state. If the current state is FIN-WAIT-2, enter the TIME-WAIT state.
FINのために承認を送ってください。 ユーザ「接続閉鎖」に合図してください、そして、同じメッセージがあるあらゆる未定のRECEIVEsを返してください。 FINがまだユーザに提供されていなかった少しのセグメントテキストのためにもEOLを含意することに注意してください。 現状がESTABLISHEDであるなら、CLOSE-WAIT状態に入ってください。 現状がFIN-WAIT-1であるなら、CLOSING状態に入ってください。 現状がFIN-WAIT-2であるなら、タイム誌-WAIT状態に入ってください。
and return.
そして、戻ってください。
[Page 72]
[72ページ]
January 1980 Transmission Control Protocol Functional Specification USER TIMEOUT
1980年1月の通信制御プロトコルの機能的な仕様ユーザタイムアウト
USER TIMEOUT
ユーザタイムアウト
For any state if the user timeout expires, flush all queues, signal the user "error: connection aborted due to user timeout" in general and for any outstanding calls, delete the TCB, and return.
何かが、タイムアウトが吐き出すユーザ、すべてが列に並ばせる水洗がユーザを示すかどうかと述べる、「誤り:」 一般にとどんな傑出している呼び出しのためにも「接続はユーザタイムアウトのため中止になったこと」は、TCBを削除して、戻ります。
RETRANSMISSION TIMEOUT
再送タイムアウト
For any state if the retransmission timeout expires on a segment in the retransmission queue, send the segment at the front of the retransmission queue again, reinitialize the retransmission timer, and return.
再送タイムアウトが「再-トランスミッション」のセグメントで期限が切れるなら、どんな状態も列を作って、再び再送キューの前部におけるセグメントを送って、再送信タイマーを再初期化して、戻るので。
[Page 73]
[73ページ]
January 1980 Transmission Control Protocol
1980年1月の通信制御プロトコル
[Page 74]
[74ページ]
January 1980 Transmission Control Protocol
1980年1月の通信制御プロトコル
GLOSSARY
用語集
1822 BBN Report 1822, "The Specification of the Interconnection of a Host and an IMP". The specification of interface between a host and the ARPANET.
1822BBNは1822、「ホストと悪童のインタコネクトの仕様」を報告します。 ホストとアルパネットとのインタフェースの仕様。
ACK A control bit (acknowledge) occupying no sequence space, which indicates that the acknowledgment field of this segment specifies the next sequence number the sender of this segment is expecting to receive, hence acknowledging receipt of all previous sequence numbers.
ACK Aコントロールにこのセグメントの承認分野がこのセグメントの送付者が受けると予想している次の一連番号を指定するのを示す系列スペースを全く占めないことで噛み付きました(承認します)、したがって、前のすべての一連番号の領収書を受け取ったことを知らせて。
ARPANET message The unit of transmission between a host and an IMP in the ARPANET. The maximum size is about 1012 octets (8096 bits).
アルパネットはアルパネットでホストとIMPの間のトランスミッションのユニットを通信させます。 最大サイズはおよそ1012の八重奏(8096ビット)です。
ARPANET packet A unit of transmission used internally in the ARPANET between IMPs. The maximum size is about 126 octets (1008 bits).
トランスミッションのアルパネットパケットAユニットはIMPsの間のアルパネットで内用しました。 最大サイズはおよそ126の八重奏(1008ビット)です。
buffer size An option (buffer size) used to state the receive data buffer size of the sender of this option. May only be sent in a segment that also carries a SYN.
バッファサイズAnオプション(バッファサイズ)は以前はよくこのオプションの送付者の受信データバッファサイズを述べていました。 また、SYNを運ぶセグメントで送るだけであるかもしれません。
connection A logical communication path identified by a pair of sockets.
1組のソケットによって特定された接続のA論理的な通信路。
datagram A message sent in a packet switched computer communications network.
データグラムAメッセージは、パケットがコンピュータ通信網を切り換えたのを送りました。
Destination Address The destination address, usually the network and host identifiers.
通常目的地が扱う目的地Address、ネットワーク、およびホスト識別子。
EOL A control bit (End of Letter) occupying no sequence space, indicating that this segment ends a logical letter with the last data octet in the segment. If this end of letter causes a less than full buffer to be released to the user and the connection buffer size is not one octet then the end-of-letter/buffer-size adjustment to the receive sequence number must be made.
EOL Aコントロールは系列スペースを全く占めないことで(Letterの端)に噛み付きました、このセグメントが最後のデータ八重奏で論理的な手紙をセグメントに終わらせるのを示して。 一連番号を受けてください。次に、手紙のこの端でユーザと接続バッファサイズにあまり完全でないバッファを発表するなら1つの八重奏がサイズの調節を手紙の端/バッファリングしない、作らなければなりません。
[Page 75]
[75ページ]
January 1980 Transmission Control Protocol Glossary
1980年1月の通信制御プロトコル用語集
FIN A control bit (finis) occupying one sequence number, which indicates that the sender will send no more data or control occupying sequence space.
FIN Aは、1つの一連番号(送付者がどんなより多くのデータもコントロールも系列スペースを占めさせないのを示す)を占領しながら、ビット(終り)を制御します。
fragment A portion of a logical unit of data, in particular an internet fragment is a portion of an internet datagram.
データの論理装置の断片A部分、インターネット断片は特に、インターネットデータグラムの一部です。
FTP A file transfer protocol.
FTP Aファイル転送プロトコル。
header Control information at the beginning of a message, segment, fragment, packet or block of data.
データのメッセージ、セグメント、断片、パケットまたは1ブロックの始めのヘッダーControl情報。
host A computer. In particular a source or destination of messages from the point of view of the communication network.
Aコンピュータを接待してください。 通信ネットワークの観点からの特にソースかメッセージの送信先。
Identification An Internet Protocol field. This identifying value assigned by the sender aids in assembling the fragments of a datagram.
識別Anインターネットプロトコル分野。 値が送付者で割り当てたこの特定はデータグラムの断片を組み立てる際に支援されます。
IMP The Interface Message Processor, the packet switch of the ARPANET.
IMP Interface Message Processor、アルパネットのパケット交換機。
internet address A source or destination address specific to the host level.
インターネットアドレスAソースかホストレベルに特定の送付先アドレス。
internet datagram The unit of data exchanged between an internet module and the higher level protocol together with the internet header.
データのユニットがインターネットヘッダーと共にインターネットモジュールと、より高い平らなプロトコルの間で交換したインターネットデータグラム。
internet fragment A portion of the data of an internet datagram with an internet header.
インターネットヘッダーがあるインターネットデータグラムに関するデータのインターネット断片A部分。
IP Internet Protocol.
IPインターネットプロトコル。
IRS The Initial Receive Sequence number. The first sequence number used by the sender on a connection.
Initial Receive Sequenceが付番するIRS。 接続のときに送付者によって使用された最初の一連番号。
[Page 76]
[76ページ]
January 1980 Transmission Control Protocol Glossary
1980年1月の通信制御プロトコル用語集
ISN The Initial Sequence Number. The first sequence number used on a connection, (either ISS or IRS). Selected on a clock based procedure.
初期の一連番号のISN。 接続(ISSかIRSのどちらか)のときに使用された最初の一連番号。 ベースの時計の上で手順を選択しました。
ISS The Initial Send Sequence number. The first sequence number used by the sender on a connection.
Initial Send Sequenceが付番するISS。 接続のときに送付者によって使用された最初の一連番号。
leader Control information at the beginning of a message or block of data. In particular, in the ARPANET, the control information on an ARPANET message at the host-IMP interface.
データのメッセージか1ブロックの始めのリーダーControl情報。 特にアルパネットにおける、ホスト-IMPインタフェースのアルパネットメッセージに関する制御情報。
left sequence This is the next sequence number to be acknowledged by the data receiving TCP (or the lowest currently unacknowledged sequence number) and is sometimes referred to as the left edge of the send window.
左の系列Thisが次のTCP(または、最も低い現在不承認の一連番号)を受けるデータによって承認されるべき一連番号であり、時々左の縁と呼ばれる、窓を送ってください。
letter A logical unit of data, in particular the logical unit of data transmitted between processes via TCP.
データの手紙A論理装置、特にTCPを通してプロセスの間に送られたデータの論理装置。
local packet The unit of transmission within a local network.
ローカルの中のトランスミッションのユニットがネットワークでつなぐ地方のパケット。
module An implementation, usually in software, of a protocol or other procedure.
通常プロトコルか他の手順のソフトウェアのモジュールAn実装。
MSL Maximum Segment Lifetime, the time a TCP segment can exist in the internetwork system. Arbitrarily defined to be 2 minutes.
MSL Maximum Segment Lifetime、TCPセグメントがインターネットワークシステムに存在できる時。 2分になるように任意に定義されています。
octet An eight bit byte.
八重奏An eightはバイトに噛み付きました。
Options An Option field may contain several options, and each option may be several octets in length. The options are used primarily in testing situations; for example, to carry timestamps. Both the Internet Protocol and TCP provide for options fields.
An Optionがさばくオプションはいくつかのオプションを含むかもしれません、そして、各オプションは長さがいくつかの八重奏であるかもしれません。 オプションは主としてテスト状況で使用されます。 例えばタイムスタンプを運ぶために。 インターネットプロトコルとTCPの両方がオプション野原に備えます。
packet A package of data with a header which may or may not be
そうするかもしれないヘッダーがあるデータのパケットAパッケージ
[Page 77]
[77ページ]
January 1980 Transmission Control Protocol Glossary
1980年1月の通信制御プロトコル用語集
logically complete. More often a physical packaging than a logical packaging of data.
論理的に完全です。 データの論理的なパッケージよりしばしば物理的なパッケージ。
port The portion of a socket that specifies which logical input or output channel of a process is associated with the data.
プロセスのどの論理的な入力か出力チャネルがデータに関連しているかを指定するソケットの一部を移植してください。
process A program in execution. A source or destination of data from the point of view of the TCP or other host-to-host protocol.
実行におけるAプログラムを処理してください。 TCPか他のホスト間プロトコルの観点からのデータのソースか目的地。
PSN A Packet Switched Network. For example, the ARPANET.
PSN Aパケット交換網。 例えば、アルパネット。
RCV.BS receive buffer size, the remote buffer size
RCV.BS受信バッファサイズ、リモートバッファサイズ
RCV.LBB receive last buffer beginning
RCV.LBBは最後のバッファ始めに受信します。
RCV.NXT receive next sequence number
RCV.NXTは次の一連番号を受けます。
RCV.UP receive urgent pointer
RCV.UPは緊急の指針を受けます。
RCV.WND receive window
RCV.WNDは窓を受けます。
receive last buffer beginning This is the sequence number of the first octet of the most recent buffer. This value is use in calculating the next sequence number when a segment contains an end of letter indication.
Thisが最新のバッファの最初の八重奏の一連番号である最後のバッファ始めを受けてください。 セグメントがいつ手紙指示の終わりを含むかを次の一連番号に見込むことにおいてこの値は使用です。
receive next sequence number This is the next sequence number the local TCP is expecting to receive.
次の一連番号を受けてください。Thisは地方TCPが受けると予想している次の一連番号です。
receive window This represents the sequence numbers the local (receiving) TCP is willing to receive. Thus, the local TCP considers that segments overlapping the range RCV.NXT to RCV.NXT + RCV.WND - 1 carry acceptable data or control. Segments containing sequence numbers entirely outside of this range are considered duplicates and discarded.
Thisが受けるために、地方の(受信)TCPが望んでいる一連番号を表す窓を受けてください。 したがって、地方のTCPは、--セグメントがRCV.NXT+RCV.WNDに範囲RCV.NXTを重ね合わせて、1が許容できるデータかコントロールを運ぶと考えます。 この範囲の完全に外に一連番号を含むセグメントが、写しであると考えられて、捨てられます。
[Page 78]
[78ページ]
January 1980 Transmission Control Protocol Glossary
1980年1月の通信制御プロトコル用語集
RST A control bit (reset), occupying no sequence space, indicating that the receiver should delete the connection without further interaction. The receiver can determine, based on the sequence number and acknowledgment fields of the incoming segment, whether it should honor the reset command or ignore it. In no case does receipt of a segment containing RST give rise to a RST in response.
受信機が一層の相互作用なしで接続を削除するはずであるのを示して、系列スペースを全く占めないで、RST Aはビット(リセット)を制御します。 受信機は一連番号と承認に基づいて入って来るセグメントの分野を決定できます、リセットコマンドを光栄に思うべきであるか、またはそれを無視するべきであることにかかわらず。 RSTを含むセグメントの領収書は応答でRSTを決して、もたらしません。
RTP Real Time Protocol: A host-to-host protocol for communication of time critical information.
RTPのリアルタイムのプロトコル: 時間重要情報に関するコミュニケーションのためのホスト間プロトコル。
Rubber EOL An end of letter (EOL) requiring a sequence number adjustment to align the beginning of the next letter on a buffer boundary.
次の手紙の始まりをバッファ限界に並べるために一連番号調整を必要とする文字(EOL)のゴムEOL Anエンド。
SEG.ACK segment acknowledgment
SEG.ACKセグメント承認
SEG.LEN segment length
SEG.LENセグメントの長さ
SEG.PRC segment precedence value
SEG.PRCセグメント先行価値
SEG.SEQ segment sequence
SEG.SEQセグメント系列
SEG.UP segment urgent pointer field
SEG.UPのセグメントの緊急の指針分野
SEG.WND segment window field
SEG.WNDセグメント窓の分野
segment A logical unit of data, in particular a TCP segment is the unit of data transfered between a pair of TCP modules.
データのセグメントA論理装置、TCPセグメントは特に、1組のTCPモジュールの間でtransferedされたデータのユニットです。
segment acknowledgment The sequence number in the acknowledgment field of the arriving segment.
承認における一連番号がさばく到着セグメントのセグメント承認。
segment length The amount of sequence number space occupied by a segment, including any controls which occupy sequence space.
何かを含んでいて、一連番号スペースの量がセグメントで占領したセグメントの長さは、どれが系列スペースを占めるかを制御します。
[Page 79]
[79ページ]
January 1980 Transmission Control Protocol Glossary
1980年1月の通信制御プロトコル用語集
segment sequence The number in the sequence field of the arriving segment.
系列の数がさばく到着セグメントのセグメント系列。
send last buffer beginning This is the sequence number of the first octet of the most recent buffer. This value is used in calculating the next sequence number when a segment contains an end of letter indication.
Thisが最新のバッファの最初の八重奏の一連番号である最後のバッファ始めを送ってください。 セグメントがいつ手紙指示の終わりを含むかを次の一連番号に見込む際にこの値は使用されます。
send sequence This is the next sequence number the local (sending) TCP will use on the connection. It is initially selected from an initial sequence number curve (ISN) and is incremented for each octet of data or sequenced control transmitted.
系列を送ってください。Thisは(発信)地方のTCPが接続のときに使用する次の一連番号です。 それが、初めは、初期シーケンス番号カーブ(ISN)から選択されて、データの各八重奏のために増加されたか、または配列されたコントロールは送られました。
send window This represents the sequence numbers which the remote (receiving) TCP is willing to receive. It is the value of the window field specified in segments from the remote (data receiving) TCP. The range of sequence numbers which may be emitted by a TCP lies between SND.NXT and SND.UNA + SND.WND - 1.
(受信)リモートTCPが受けても構わないと思っている一連番号をThisが表す窓に送ってください。 それは(データ受信)リモートTCPからセグメントで指定された窓の分野の値です。 SND.NXTとSND.UNA+SND.WNDの間には、TCPによって放たれるかもしれない一連番号の範囲があります--1。
SND.BS send buffer size, the local buffer size
SND.BSはバッファサイズ、地方のバッファサイズを送ります。
SND.LBB send last buffer beginning
SND.LBBは最後のバッファを始まらせます。
SND.NXT send sequence
SND.NXTは系列を送ります。
SND.UNA left sequence
SND.UNAは系列を残しました。
SND.UP send urgent pointer
SND.UPは緊急の指針を送ります。
SND.WL send sequence number at last window update
SND.WLは最近の窓のアップデートで一連番号を送ります。
SND.WND send window
SND.WNDは窓を送ります。
socket An address which specifically includes a port identifier, that is, the concatenation of an Internet Address with a TCP port.
明確に、ポート識別子(すなわち、TCPポートによるインターネットAddressの連結)を含んでいるソケットAnアドレス。
[Page 80]
[80ページ]
January 1980 Transmission Control Protocol Glossary
1980年1月の通信制御プロトコル用語集
Source Address The source address, usually the network and host identifiers.
通常ソースのAddressが演説するソース、ネットワーク、およびホスト識別子。
SYN A control bit in the incoming segment, occupying one sequence number, used at the initiation of a connection, to indicate where the sequence numbering will start.
SYN Aコントロールに入って来るセグメントで噛み付きました、系列付番がどこで始まるかを示すために接続の手引きで使用される1つの一連番号を占領して。
TCB Transmission control block, the data structure that records the state of a connection.
TCB Transmission制御ブロック、接続の状態を記録するデータ構造。
TCB.PRC The precedence of the connection.
TCB.PRC、接続の先行。
TCP Transmission Control Protocol: A host-to-host protocol for reliable communication in internetwork environments.
TCP通信制御プロトコル: インターネットワーク環境における信頼できるコミュニケーションのためのホスト間プロトコル。
TOS Type of Service, an Internet Protocol field.
ServiceのTOS Type、インターネットプロトコル分野。
Type of Service An Internet Protocol field which indicates the type of service for this internet fragment.
このインターネットのためのサービスのタイプを示すService Anインターネットプロトコル分野のタイプは断片化します。
URG A control bit (urgent), occupying no sequence space, used to indicate that the receiving user should be notified to do urgent processing as long as there is data to be consumed with sequence numbers less than the value indicated in the urgent pointer.
系列スペースを全く占めないで、噛み付かれた(緊急の)URG Aコントロールは、以前はよく一連番号が緊急の指針で示された値より少ない状態で消費されるためにデータがある限り、受信ユーザが緊急処理をするように通知されるべきであるのを示していました。
urgent pointer A control field meaningful only when the URG bit is on. This field communicates the value of the urgent pointer which indicates the data octet associated with the sending user's urgent call.
URGが噛み付いた場合にだけ重要な緊急の指針A制御フィールドはオンです。 この分野は送付ユーザの至急通話に関連しているデータ八重奏を示す緊急の指針の値を伝えます。
[Page 81]
[81ページ]
January 1980 Transmission Control Protocol
1980年1月の通信制御プロトコル
[Page 82]
[82ページ]
January 1980 Transmission Control Protocol
1980年1月の通信制御プロトコル
REFERENCES
参照
[1] Cerf, V., and R. Kahn, "A Protocol for Packet Network Intercommunication," IEEE Transactions on Communications, Vol. COM-22, No. 5, pp 637-648, May 1974.
Communications、Vol.COM-22、No.5、pp637-648(1974年5月)の[1] サーフ、V.とR.カーン、「パケット網相互通信のためのプロトコル」IEEE Transactions。
[2] Postel, J. (ed.), "DOD Standard Internet Protocol," Defense Advanced Research Projects Agency, Information Processing Techniques Office, RFC 760, IEN 128, January 1980.
[2] ポステル、J.編、「DODの標準のインターネットプロトコル」、ディフェンス先端研究は政府機関を映し出します、情報処理テクニックオフィス、RFC760、IEN128、1980年1月。
[3] Feinler, E. and J. Postel, ARPANET Protocol Handbook, Network Information Center, SRI International, Menlo Park, CA, January 1978.
[3] Feinler、E.、およびJ.ポステル(アルパネットプロトコルハンドブック)は1978年1月にインフォメーション・センター、SRIインターナショナル、メンローパーク、カリフォルニアをネットワークでつなぎます。
[4] Dalal, Y. and C. Sunshine, "Connection Management in Transport Protocols," Computer Networks, Vol. 2, No. 6, pp. 454-473, December 1978.
[4]DalalとY.とC.サンシャイン、「トランスポート・プロトコルにおける接続管理」、コンピュータNetworks、Vol.2、No.6、ページ 454-473と、1978年12月。
[Page 83]
[83ページ]
January 1980 Transmission Control Protocol
1980年1月の通信制御プロトコル
[Page 84]
[84ページ]
一覧
スポンサーリンク