付録B.3 バージョン5以前でのソケット関数の処理の流れ

ここでは,バージョン5以前のTP1/NET/TCP/IPが,次の場合に発行するソケット関数の処理の流れを示します。

TCP/IPソケットと相手システム間のパケット送受信のタイミングはTP1/NET/TCP/IPが動作するOSの実装に依存します。実装によっては,実際のパケット送受信のタイミングが,図に示したパケット送受信のタイミングと異なる場合があります。

なお,バージョン7でのソケット関数の処理の流れについては,「付録G ソケット関数の処理の流れ」を参照してください。

図B-1 クライアント型コネクションの確立(バージョン5以前)

[図データ]

(凡例)
ACK:確認応答フラグ
SYN:コネクション確立要求フラグ
注※1
キープアライブを使用する場合(コネクション定義(mcftalccn -k)のkeepaliveオペランドにyesを指定),発行します。
注※2
TCP_NODELAYを使用する場合(コネクション定義(mcftalccn -k)のnodelayオペランドにyesを指定),発行します。
注※3
自システムのポート番号を指定した場合,発行します。
注※4
自システムのホスト名,IPアドレスまたはポート番号を指定した場合,発行します。
注※5
パケットの送受信は,TP1/NET/TCP/IPと非同期に行われます。バージョン5以前のTP1/NET/TCP/IPは,相手システムからのSYNおよびACKを待ち合わせません。

 

図B-2 クライアント型コネクションの確立障害(相手システムのサービス未起動)(バージョン5以前)

[図データ]

(凡例)
SYN:コネクション確立要求フラグ
RST:コネクション強制切断フラグ
注※1
キープアライブを使用する場合(コネクション定義(mcftalccn -k)のkeepaliveオペランドにyesを指定),発行します。
注※2
TCP_NODELAYを使用する場合(コネクション定義(mcftalccn -k)のnodelayオペランドにyesを指定),発行します。
注※3
自システムのポート番号を指定した場合,発行します。
注※4
自システムのホスト名,IPアドレスまたはポート番号を指定した場合,発行します。
注※5
同じ処理を行います。
注※6
パケットの送受信は,TP1/NET/TCP/IPと非同期に行われます。バージョン5のTP1/NET/TCP/IPは,相手システムからのRSTを待ち合わせません。
注※7
コネクション確立障害時の確立再試行間隔(コネクション定義(mcftalccn -b)のbretryintオペランドの指定値)だけ待ち合わせます。
注※8
最大でコネクション確立障害時の確立再試行回数(コネクション定義(mcftalccn -b)のbretrycntオペランドの指定値)だけ繰り返します。

 

図B-3 クライアント型コネクションの確立障害(相手システム未起動またはネットワーク障害)(バージョン5以前)

[図データ]

(凡例)
SYN:コネクション確立要求フラグ
注※1
キープアライブを使用する場合(コネクション定義(mcftalccn -k)のkeepaliveオペランドにyesを指定),発行します。
注※2
TCP_NODELAYを使用する場合(コネクション定義(mcftalccn -k)のnodelayオペランドにyesを指定),発行します。
注※3
自システムのポート番号を指定した場合,発行します。
注※4
自システムのホスト名,IPアドレスまたはポート番号を指定した場合,発行します。
注※5
コネクション確立障害時の確立再試行間隔(コネクション定義(mcftalccn -b)のbretryintオペランドの指定値)だけ待ち合わせます。
注※6
最大でコネクション確立障害時の確立再試行回数(コネクション定義(mcftalccn -b)のbretrycntオペランドの指定値)だけ繰り返します。