[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[WitchFan 00300] Re: X-modem



こばやしです

<200008141745.CAA12507@cds.ne.jp> の、
   "[WitchFan 00295] Re: X-modem " において、
   ""Shigeki 'anmitsu' Yamamoto" <anmitsu@cds.ne.jp>"さんは書きました:

>それでもって、
>
>> http://www.ascend.co.jp/techdoc/glossary/x.html
>>  モデム用誤り制御プロトコル。Xmodem を使用するモデムは、データを128 バ
>> イトのブロックごとに転送する。受信したブロックに誤りがない場合は、ACK 
>> を返す。エラーを検出した場合はNAK を返し、通信先のモデムはデータを送り
>> 直す。
>これは『Xon/Xoff』のことではないかと。

「モデムは」ってのが悪いんだと思いますが、これはまさしくXMODEMの事です

おおざっぱに説明すると、

1)受信側が先にNAKを送る
2)送信側がデータのブロックを1つ送る
3)受信側はデータとチェックバイトを比較して、
3-1)OKならACKを送る
3-2)NGならNAKを送る
4)受信側は3)を受け取り
4-1)ACKなら次のブロックを送信
4-2)NAKなら現在のブロックをもう一度送信
5)データが終わるまで3)〜4)を繰り返す。
データの終わりはデータブロックの代わりにEOTを送信

#4)を見れば最初になんでNAKなのか判るとおもいます(^^)

で、データブロックは基本的には
ヘッダ1byte+ブロック番号1byte×2+データ128byte+チェックサム1byte
形式ですが、いくつか変種があり、
・チェックサムの変わりにCRCを使用(XMODEM/CRC)
・データが1024byteでCRC使用(XMODEM-1k)
・ACK/NAKを見ないで次のブロックを送る(Flying XMODEM)
があります。
ちなみにXMODEMはファイル名やファイルサイズを送らないので、
そのへんの情報は欠落してしまいます。

>ほえ〜〜〜。XmodemでCRCが使われているって話は聞いたことないような。。。

てな訳でCRCを使っているモノもあります。

しかしやっぱりXMODEMも忘れ去られてるんですねぇ…

--------
  へへ    こばやし けんいち / Kenichi Kobayashi
ミ II ミ   E-Mail  : kenichi@imasy.or.jp
   ̄ ̄∫   WWW     : http://www.imasy.or.jp/~kenichi/
           PostPet : cat@hauN.org ← 引っ越しました!!


ML Archives