MLINK(えむりんく)は、パソコン通信で使用されるバイナリ転送プロトコルの一種である。最低限の通信制御を行う他は一切データを加工せずに転送するため、構造が非常に簡単で、高速転送が可能である。日本の草の根BBSで生まれた独自のプロトコル。

特徴 構造が非常に簡単。 データ転送に際してパケット化を行わず、連続して転送する。 エラー検出機能を持たない。 ファイル名やファイルサイズ、タイムスタンプなどのファイル情報を転送することができる。 一度に複数のファイルを転送することができる(バッチ転送)。 コントロールコードのクォート(置換)処理を行わない。

手順 通信制御に使われるコードと値は以下の通りである。 INI : 4Dh(’M’) ABT : 41h(’A’) ETR : 45h(’E’)

基本的な流れ 受信側 送信側 INI → ← ファイル情報 INI → ← ファイルデータ ETR → (1ファイル転送終了) INI → ← ファイル情報 (中略) ETR → (全てのファイルを転送終了) INI → ← ファイル情報(「送信すべきファイルはもうない」) ETR → (通信終了) 受信側がINIを送出する。 送信側がファイル情報を送出する。 受信側がINIを送出する。 送信側がファイルデータを送出する。 受信側がETRを送出する。 受信側がINIを送出する。 全てのファイルを転送し終わっている場合を除き、手順2に戻る。 送信側が全てのファイルを送出し終わった旨のファイル情報を送出する。 受信側がETRを送出し、通信を終了する。

ファイルデータは転送すべきデータをそのまま連続して送出する。パケット化やコード変換などは一切行わない。

中断処理 何らかの事情により転送を中断したい場合はABTを送出する。

ファイル情報 ファイルデータの転送に先立って転送するファイル情報は、以下のフォーマットに従う。 ファイル名 空白(20h) ファイルサイズ 空白(20h) ファイル更新日 空白(20h) ファイル更新時刻 CR(0Dh) 可変長 1バイト 可変長 1バイト 10バイト 1バイト 8バイト 1バイト ファイル名 ファイル名をセットする。MS-DOSでの使用を意識しているためか、空白文字は使用できない。 ファイルサイズ ファイルの大きさを10進数ASCII文字列でセットする。 ファイル更新日 ファイルの更新日をYYYY/MM/DD形式のASCII文字列でセットする。 ファイル更新時刻 ファイルの更新時刻をHH:MM:SS形式のASCII文字列でセットする。

全てのファイルを転送し終わっている場合はCR(0Dh) のみをファイル情報として送出する。

関連項目 バイナリ転送プロトコル