YMODEM-g
読み:ワイモデムジー
外語:YMODEM-g
YMODEM
をベースとしたファイル転送プロトコルの一つ。
目次
概要
特徴
仕様
シーケンス
顕著な差
実装
概要
YMODEMは、XMODEMに対してファイル情報の送信やバッチ転送に対応したが、
ACK
待ちのタイムロスは改善されなかった。
そこでYMODEM-gは、ヘッダー情報以外のブロックに対し、ACKを返信せず、ACK返信を待たず、どんどん送信する。
当然
誤り訂正
が行なえないので、エラーフリーの環境でなければならず、下層に
ITU-T V.42
(
LAPM
)などの
誤り訂正
機能が別途必要になる。
特徴
このプロトコルでは、エラーチェックの一切をしない。エラーは発生しないことになっているからである。従って、途中でエラーが発生しても、それを通知する手だて(例えばNAKを送る等)は一切無いのも特徴である。
仕様
基本的なプロトコルは、
YMODEM
とほぼ同じで、X/Y/Y-g全てに対応した実装を作ることも難しくない。
シーケンス
ファイル送信の最初は、
誤り訂正
が
チェックサム
ならNAK、
CRC
なら'G'を送信することから始まる。'C'ではなく'G'であるのが違いである。
但し、ヘッダー情報の後、ACKに続いて送られるコード(データ要求のコード)は'C'のままである。'G'なのは、各ファイルの最初の送信要求時の符号のみである。
データ長が128バイトならブロック開始文字がSOH、1024バイトなら
STX
であるのも同様である。
ヘッダー情報の仕様、バッチ転送の仕様もYMODEMと同じである。
顕著な差
YMODEM-gでは、ACK待ちをしない。ほぼ垂れ流しと同様となり、従って速いことになる。
最初のヘッダーと、最後のEOTにだけは、ACK待ちがある。しかし、データ本体に対してはACK待ちをせず、受信側もACK/NAKは一切送信しない。
つまり、送信側は一つのブロックを送ったあと、すぐに次のブロックを送る。受信側はただひたすらに受信する。
高速であるが、唯一注意せねばならないのは、
フロー制御
である。受信側の
バッファー
が溢れてしまっては元も子もない。一般的には、フロー制御は
ハードウェアフロー
によって行なわれる。
実装
通常YMODEM-gといえばバッチ転送有りのものを指すのだが、日本ではバッチ転送無しのものも作られてしまったため、バッチ転送ありのものをYMODEM-g/BATと呼ぶようになった。海外ではバッチ転送ありで固定である。
電話回線を含めた全ての伝送経路上に於いてパケットロス等の異常が発生した場合でも一切再送を行なわないため、その時点でダウンロードに失敗する。
これは草の根BBSサーバー
mmm
やNET-COCK、
BIG-MODEL
などで使われている。
再検索