シーリンク

SEAlinkは、 XMODEM下位互換性を持つファイル転送プロトコルですが、スライディングウィンドウシステムを採用することでスループットを向上させています。SEAlinkは、有名なARCプログラムの開発元であるSystem Enhancement Associatesによって開発されたSEAdog FidoNetメーラーの一部として1986年に開発されました。ライセンスには「クレジット表記」というシンプルな条件が付けられていましたが、FidoNetメーラー以外では広く使用されることはありませんでした。SEAlinkをはじめとするXMODEM拡張機能のほとんどは、 ZMODEMの導入により急速に廃止されました

説明

XMODEMは送信するファイルを、128バイトずつの番号付きパケットに分割します。パケットは1つずつ受信側に送信され、受信側は文字を送信して正常に受信できたことを確認するか、代わりに を送信して再送信を要求します。その後、次のパケットで転送が続行されます。 ACKNAK

ACKまたは の送信に必要な時間はNAKほぼゼロですが、電話システム自体の伝播遅延によって遅延が発生します。 0.1 秒の遅延はまったく珍しくなく、海外の回線ではさらに長くなることがあります。つまり、XMODEM の最大転送速度は、モデム自体の速度よりも電話システムの関数になります。 300ビット/秒ACKでは、パケットの送信に約 3.5 秒かかり、0.1 秒の遅延は重要ではないため、これは深刻な問題ではありません。ただし、9600 ビット/秒では、パケットの送信に約 0.1 秒しかかかりません。つまり、送信者がまたはの到着を待つ間に、潜在的なスループットの少なくとも半分が失われます NAK

SEAlinkは「スライディングウィンドウ」を用いることでこの問題に対処します。この場合、送信側はパケットを連続的に送信します。受信側はパケットを「送信」ACKする必要がありますが、各パケットにパケット番号を付与することで、送信側はどのパケットが正常に送信され、どのパケットが失敗したかを識別できます。「ウィンドウ」とは、パケットを「送信」する前に送信できるパケットの数を指します。SEAlinkの場合、ウィンドウは6パケットで、一度に最大768バイトのデータを送信できます。 NAKACKNAKACKNAK

SEAlinkは、既存のXMODEM実装との完全な下位互換性を持つように設計されました。受信側では、通常の文字ACKまたはと共に、パケット番号(すべてのXMODEMパケットに含まれる)を返すだけで済みましたNAK。SEAlinkの送信側は、最初のACKまたはを受信するとNAK、パケット番号を「認識」し、ウィンドウの使用を継続します。パケット番号がない場合、SEAlink以外のXMODEMに送信しているとみなされ、ウィンドウサイズが1に設定されます。

その他の機能

SEAlinkには、他のXMODEM派生製品に搭載されている多くの機能も搭載されています。注目すべきは、ファイル情報の送信とバッチファイル転送をサポートするために FidoNet関連のTeLinkプロトコルで導入された「ゼロパケット」の使用です。

SEAlinkはこの「標準」に小さな変更を加え、パケットの40番目の位置に「オーバードライブ」を使用するかどうかを示すバイトを追加しました。オーバードライブを有効にすると、40番目のバイトに0以外の数値を設定することで、受信側はACKメッセージではなく、sのみを受信するようになります。これは、受信側から送信側への帯域幅NAKを削減することを目的としており、非常に低速なバックチャネル(例えば Telebitモデムでは75ビット/秒)を備えた初期の高速モデムの多くにとって重要な考慮事項でした。

後に「RESYNC」が追加され、ファイル転送を中断した場所から再開できるようになりました。RESYNCでは、送信側がこの機能をサポートしていることを示すために、ゼロパケット(バイト42)に別のインジケーターが追加されました。この場合、受信側は常にローカルに同一のファイル名が存在するかどうかを確認し、存在する場合はSYN通常のACKまたはの代わりに 文字を送信しますNAKSYNの後には、再開するパケット番号が続きます。

参考文献

  • SEAlink 1.20 プログラムとソースコード
「https://en.wikipedia.org/w/index.php?title=SEAlink&oldid=1022599815」より取得