KASAGO IPv4 / KASAGO IPv6についてよくあるご質問
TCP/IP通信を行うための弊社ライブラリである、KASAGO IPv4 / KASAGO IPv6について解説いたします。
KASAGO IPv4と他のTCP/IPの違いはどのような点ですか?
組込み機器用TCP/IPスタックの中には、UNIXベースのTCP/IPを組込み型に移植されたものや、きちんとRFCをサポートしていないものが多く見られますが、KASAGO IPv4は基本設計からすべての開発を自社で行い、十分なRFCのサポートを行っている数少ない組込み専用のTCP/IPプロトコルスタックです。
組込み型、リアルタイムOS上(Non-OSでも使用可能)で使用されることを前提として設計、開発されたことにより、高いパフォーマンスとコンパクトなサイズ、高い信頼性が実現されています。
KASAGO IPv4やKASAGO IPv6の品質について教えてください。
KASAGO IPv4は、基本設計からすべて自社で開発しTCP/IPプロトコルと組込みシステムに関するノウハウを凝縮した製品です。品質の維持のために、下のようなテストを行なっています。
- ・ソースコード提供を前提とした、コーディング標準に基づくプログラム
- ・各種コンパイルテスト、各ターゲットでの動作試験
- ・マクロ試験
- ・耐久試験
- ・ANVLツールによる、RFC適合試験
- ・TAHIなどの相互接続試験及び各システムとの接続確認試験
KASAGO IPv4のこれまでの採用実績を教えてください。
KASAGO IPv4は1998年の販売開始以来、ワールドワイドで約600社/900セット以上に採用されています。下記の例のように、携帯端末やデジタル家電から、ネットワーク機器、産業用機器など幅広い分野で採用されています。
- ・携帯電話
- ・PDA
- ・デジタルカメラ
- ・カーナビ
- ・STB
- ・セキュリティシステム
- ・AV機器
- ・玩具
- ・POS
- ・プリンタ
- ・PLC(プログラマブル ロジック コントローラ)
- ・ドライブレコーダ
- ・ボイスレコーダなど
KASAGO IPv4とKASAGO IPv6の違いを教えてください。
KASAGO IPv4は図研エルミックが開発した機器組込み用のTCP/IPプロトコルスタックです。1998年より販売を行っています。
KASAGO IPv6は、KASAGO IPv4の新バージョンで、IPv6をサポートしたIPv4/IPv6デュアルスタックです。
2002年に国内では初の組込み用IPv6プロトコルスタックとして発売されました。
KASAGO IPv6はKASAGO IPv4とSocket I/F仕様やドライバI/Fを共通化されているので、KASAGO IPv4のユーザ様にも容易にアップデートしていただくことが可能です。
速度を上げるための機構にはどのようなものがありますか?
KASAGO IPv4およびKASAGO IPv6は、データ送受信処理を高速に処理できるように設計されています。
具体的には、関数コールを最小にすることはもちろん、ソケットツリーの検索を高速化するアルゴリズムを採用したり、ZeroCopy送受信機能※1をサポートしたりしています。また、TCP/IPにおいては、Delayed ACK、Nagleアルゴリズム、Slow Start、32Bit ウィンドウサイズ等 のサポートにより高速転送を実現します。
※1:スタック内でデータコピーを行わず送受信を行います。分割送信可能なLANコントローラを使用した場合は、ドライバを含むZeroCopyを実現します。
CPU対応はどのようになっていますか?
KASAGO IPv4、KASAGO IPv6はCPU非依存のコードです。ワールドワイドでさまざまなCPU上でご使用いただいております。
下に、図研エルミックにおけるKASAGO IPv4の移植実績の一部をご紹介します。
- ・Renesas:RZ/A1、RZ/T1、R-IN32、RX62N、RX63N、RX64M、SH2、SH3、SH4、SH Mobile、H8/H8S、M16C、M32
- ・NEC:V850、VR4100、VR5500
- ・Toshiba:TX19xx、TX49xx
- ・ARM:ARM7、ARM7T、ARM9、ARM9T、Strong ARM
- ・Freescale:MPC860、MC68300、MPC8250、MPC8255、MPC855
- ・Zilog:eZ80
- ・Texas Instruments:TMS320シリーズ、DM64xシリーズ
- ・Intel:186、386、486、Xscale 803xx、StrongARM、Celeron、Pentium
- ・ソシオ:SC1810
RTOS対応はどのようになっていますか?
KASAGO IPv4、KASAGO IPv6はRTOS非依存のコードです。ワールドワイドでさまざまなRTOS上でご使用いただいております。
下に、図研エルミックにおける実績の一部をご紹介します。
- ・ELX-ITRON (図研エルミック製 ITRON仕様RTOS)
- ・ELX-RISC (図研エルミック製 RTOS)
- ・各社ITRON仕様RTOS
- ・T-Kernel
- ・ThreadX
- ・μC/OS
- ・Windows CE 2.12
- ・VxWorks
- ・eT-Kernel
動作に必要な環境は何ですか?
下記の環境が必要です。
- ・ANSI C準拠 コンパイラ等の開発環境
- ・プロトコルスタックに必要なROMまたはFlash ROM
- ・同時に使用するアクティブなソケットが必要とする十分なRAM
- ・Ethernetコントローラ等のネットワークコントローラ
- ・タイマ
組込みサイズ(ROMサイズ)はどのくらいですか?
使用するCPU、コンパイラ、要求されるパフォーマンスなどによりコードサイズは異なります。
Renesas製RX63N向け環境では以下のようになります。
KASAGO IPv6では約238Kbyte
KASAGO IPv4では約155Kbyte
KASAGO IPv4 Lightでは約118KByte
1ソケットあたり使用するメモリサイズ(RAM)はどの程度必要ですか?
ソケットの送信バッファ、受信バッファ(デフォルト8KB)を含めると、 最大で17KB程度消費される可能性があります。
※ソケット送受信バッファはサイズ調整することが可能です。
ヒープメモリはどのくらい必要ですか?
KASAGO IPv4では32KB、KASAGO IPv6では48KB程度あれば、 ソケット送受信バッファを含め、デフォルト設定でTCP1接続が問題なく行えます。
スタックサイズはどのくらい必要ですか?
KASAGOを利用するタスクごとに4KB程度確保することをお勧めします。
カーネルインタフェースとして、イベントフラグは使用できますか?
KASAGOでは、イベントフラグを使用することができますが、排他制御等の処理を全てカウンティングセマフォで行なうことが可能です。
カウンティングセマフォはどのくらい必要ですか?
通常の実装では、ソケットインタフェースを含め、KASAGOのインタフェース関数を使用しているタスク数+2個必要です。ここでのタスク数とは、タイマタスク、受信タスクがありますので、少なくとも、KASAGOをコールしている、アプリケーションタスク+4個分のカウンティングセマフォを用意する必要があります。実装方法によって異なる場合がありますので、少し余分に準備されることを推奨します。