シリアル・LAN変換をするときに、シリアルのフロー制御を使用すればTCPパケットの送信/受信をコントロールしてデータ喪失を防ぐことが出来ます。
TCP/IP通信では、受付可能byte数をTCP接続相手に連絡するパケットがあり、これにより受信側の処理が追いつかず、受付可能byte数が少ない場合、送信側に送信を控えさせる事が可能です。
LANTRONIX社デバイスサーバは、受付可能byte数をTCP接続相手に連絡、TCP/IP通信を制御しデータ喪失を防ぎます。 下記の場合に制御がかかります。
a. シリアル側デバイスにおいて内部処理が追いつかず、RTS/CTS制御の「RTSネゲート」を出して
相手にシリアル送信を止めてもらう。 これに伴いTCP/IP通信も制御する。
b. シリアル側デバイスにおいて内部処理が追いつかず、XON/XOFF制御の「XOFF」を出して
相手にシリアル送信を止めてもらう。 これに伴いTCP/IP通信も制御する。
(フロー制御の話ではありませんが、シリアル送信がLAN側受信より遅く処理が間に合わない場合も同じ)
------------------------------------------------------------------------------------------------------
上記a. b.を行うにあたり設定出来るフロー制御方式は以下の通りとなります。
・No Flow: フロー制御を使用しません。
・CTS/RTS: ハードウェアフロー制御を使用します。
・Xon/Xoff: ソフトウェアフロー制御を使用します。
データ送信停止はXoff 、再開するときはXonを用います。
制御命令Xon/Xoffはデバイスサーバ内部で処理され、デバイスサーバの向こうへは出ません。
Xoff : 0x13 (Ctrl+s)
Xon : 0x11 (Ctrl+q) (08/11/12誤記訂正)
・Xon/Xoff pass characters to host: ソフトウェアフロー制御を使用します。
データ送信停止はXoff 、再開するときはXonを用います。
制御命令Xon/Xoffはデバイスサーバ内部で処理され、デバイスサーバの向こうへも出ます。
Evolution OS製品には本設定が無いのでご注意下さい。
------------------------------------------------------------------------------
Com Port Redirector (CPR)でRTS/CTSフロー制御を使用する場合,「RFC2217機能」を設定すると
アプリケーションから直接RTS/CTS制御も可能です。