KISS (Keep It Simple, Stupid [1] ) は、アマチュア無線で使用されるシリアル端末ノードコントローラ(TNC) デバイスと通信するためのプロトコルです。これにより、TNC はより多くの機能を 1 つのデバイスに統合し、通信を標準化できます。KISS は Mike Cheponis とPhil Karnによって開発され、IP パケットを含む AX.25 パケット無線フレームを非同期シリアルリンク経由で送信できるようにし、 KA9Q NOSプログラムで使用できるようになりました。[1]
説明
KISS プロトコルは、非同期シリアル通信が可能なシンプルな組み込みデバイスに簡単に実装できるように設計されています。任意のデータの転送が可能ですが、フロー制御やエラー処理はサポートされていません。
KISS はシリアル ライン インターネット プロトコルフレーミングを使用しますが、SLIP のように生の IP パケットをカプセル化するのではなく、独自のシンプルなプロトコルを定義します。KISSプロトコル メッセージは、共通の TNC 制御変数の設定と、TNC によって転送される任意のメッセージ パケットの送信を提供します。パケットは任意のものである可能性がありますが、KISS で一般的に使用されるプロトコルにはAX.25とIPv4があります。
特殊文字
SLIP と同様に、連続する FEND コードは空のフレームとして解釈されません。代わりに、最後の FEND コード以外はすべて破棄する必要があります。これは同期に使用でき、受信機の AGC が安定する時間を与えるために使用できます。
転送されるデータに FEND または FESC コードが含まれる場合は、エスケープする必要があります。FEND コードは FESC、TFEND として送信され、FESC は FESC、TFESC として送信されます。2 つの FESC が連続するとプロトコル違反となり、送信中止の信号として使用できます。これにより、受信者 (通常は TNC) は後続のデータを有効なフレームの一部として誤って解釈することを避けることができます。次の FEND の前に受信されたデータは適切に破棄されます。
コマンドコード
これらのコードはいずれもホストから TNC に送信できますが、TNC からホストに送信できるのは「データ フレーム」コードのみです。「マルチポート TNC では、タイプ インジケータ バイトの上位 4 ビットで最大 16 個のポートのうち 1 つを指定できます。」[1]
コマンド バイトはここでは16 進数で示されていますが、16 進文字列ではなくバイトとして送信されます。Return コマンドを除くすべてのケースで、上位ニブルはコマンドが適用されるポート (マルチポート TNC 上) を示します。
TNC は、ベンダーの裁量により、他の非標準コマンドをサポートする場合があります。
パケットフォーマット
TNCポート0から「TEST」という文字を送信します。
TNCポート5から「Hello」という文字を送信します。
( 16 進バイト 50 はバイナリ 0101 0000 であり、マルチポート TNC は 0101 -> 5 なので「データ フレーム、ポート 5」と解釈します )
バイト0xC0、0xDBをTNCポート0から送信します。
サンプル メッセージの両方のバイトはエスケープが必要なので、それぞれ 2 バイトのシーケンスとして送信されます。TNC は送信前にエスケープを解除します。
KISSモードを終了する
KISS モードから戻った後の TNC の動作はベンダーによって異なります。一部のベンダーは、ライン指向の「ノード クライアント」または「メールボックス」コマンド クライアントを提供します。
一般的な用途
代替案
- 6パック[2] [3]
参照
- シリアルラインインターネットプロトコル(SLIP)
参考文献
- ^ abc Mike Chepponis、K3MC; Phil Karn、KA9Q (1987)。KISS TNC: シンプルなホスト対TNC通信プロトコル。ARRL 6th Computer Networking Conference。Redondo Beach CA。2022年6月7日時点のオリジナルよりアーカイブ。
{{cite conference}}: CS1 maint: 数値名: 著者リスト (リンク) - ^ 「6PACK は PC から TNC への「リアルタイム」プロトコルです」。2022 年 12 月 27 日時点のオリジナルよりアーカイブ。2012 年 4 月 8 日閲覧。
- ^ 「6pack プロトコル — Linux カーネルのドキュメント」。docs.kernel.org。
外部リンク
- Device::TNC::KISS Perlインターフェース、KISS モード TNC、R Bernard Davison 著、CPAN (2007)
- TNC-2 KISS ソースコード (Z-80 アセンブリ言語): https://github.com/cheponis/KISS-TNC2
