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
  • プリンタ
  • ネットワークコントローラなど

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を実現します。

KASAGO IPv4とKASAGO IPv6のオプション対応はどのようになっていますか?

KASAGO IPv4のオプションは下のようになっています。 (2004年7月現在)

KASAGO IPv4 KASAGO IPv6
PPP (Server, Client) ○(開発キットに含まれます)
FTP (Server, Client)
TFTP (Server, Client)
Telnet (Server)
BOOTP (Client, Relay Agent)
DHCP (Client, Relay Agent)
Web Server 対応中
SMTP (Mail Client) 対応中
POP3 (Mail Client) 対応中
DNS (Resolver)
SNMP (Agent)
IGMP (Multicast)
NAT
IPsec
Mobile IPv6
H.323
SIP

CPU対応はどのようになっていますか?

KASAGO IPv4、KASAGO IPv6はCPU非依存のコードです。ワールドワイドでさまざまなCPU上でご使用いただいております。下に、図研エルミックにおけるKASAGO IPv4の移植実績の一部をご紹介します。

  • Renesas: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

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

動作に必要な環境は何ですか?

下記の環境が必要です。

  • ANSI C準拠 コンパイラ等の開発環境
  • プロトコルスタックに必要なROMまたはFlash ROM
  • 同時に使用するアクティブなソケットが必要とする十分なRAM
  • Ethernetコントローラ等のネットワークコントローラ
  • タイマ

組込みサイズ(ROMサイズ)はどのくらいですか?

使用するCPU、コンパイラ、要求されるパフォーマンスなどによりコードサイズは異なります。M68EN360環境でOSを使用しない場合、最小の組込みサイズは、おおよそ48KBで、RTOSを使用する通常の実装の場合は64KBから100KBを必要とします。 また、KASAGO IPv6(IPv4/IPv6デュアルスタック)のサイズは、平均140KBから160KBを必要とします。

1ソケットあたり使用するメモリサイズ(RAM)はどの程度必要ですか?

データサイズやウィンドウサイズ等に依存するため、必要なメモリサイズは環境に依存します。通常、TCPソケット 約400Byte、UDP ソケット 約200Byteのメモリを動的に確保し、使用します。

ヒープメモリはどのくらい必要ですか?

ソケットを生成するためだけであれば数百バイト程度で十分なのですが、実際にはTCPで送受信を行い、アプリケーションで受信データを引き取れない場合なども考慮すると、ウィンドウサイズ分のエリアが必要になると考えられます。ウィンドウサイズはデフォルト値8KBで、送受信両方あります。

スタックサイズはどのくらい必要ですか?

使用するOSにも依存しますが、通常、KASAGOを利用するタスクごとに4KB程度確保することをお勧めします。ITRONのように、割込みごとにスタックエリアを定義する仕様のOSであるなら、3KB程度確保することをお勧めします。

カーネルインタフェースとして、イベントフラグは使用できますか?

KASAGOでは、イベントフラグを使用することができますが、排他制御等の処理を全てカウンティングセマフォで行なうことが可能です。

カウンティングセマフォはどのくらい必要ですか?

通常の実装では、ソケットインタフェースを含め、KASAGOのインタフェース関数を使用しているタスク数+2個必要です。ここでのタスク数とは、タイマタスク、受信タスクがありますので、少なくとも、KASAGOをコールしている、アプリケーションタスク+4個分のカウンティングセマフォを用意する必要があります。実装方法によって異なる場合がありますので、少し余分に準備されることを推奨します。

PCMCIA LANカードを使用する場合、ネットワークインタフェースを動的に追加することは可能ですか?

可能です。ネットワークのポートを使用する際にインタフェースの追加、削除が可能です。これは、PPPのクライアント、サーバのモード切り替えについても同様です。

「KASAGO IPv4」という名前の由来は?

開発コードがそのまま製品名称になりました。 当社の社長が釣り好きで「煮て良し」「焼いて良し」の魚は「かさご」という考えでKASAGOの名称に決まりました。KASAGOはソースコードでユーザに提供されるため、そのまま使ってもよし、改造もユーザにお任せという考えからKASAGOを製品名として使用しております。