| 原作者 | アダム・ダンケルス |
|---|---|
| 開発者 | lwIP 開発者グループ |
| 安定版リリース | 2.2.0 [1]
/ 2023年9月25日 |
| リポジトリ |
|
| 書かれた | C |
| オペレーティング·システム | 複数 |
| プラットフォーム | 組み込みシステム |
| タイプ | IPスタック |
| ライセンス | 修正BSDライセンス |
| Webサイト | www.nongnu.org/lwip/ |
lwIP (軽量 IP ) は、組み込みシステム向けに設計された、広く使用されているオープンソースの TCP/IP スタックです。lwIP はもともとスウェーデン コンピュータ サイエンス研究所のAdam Dunkelsによって開発され、現在は世界中の開発者ネットワークによって開発および保守されています。
lwIPは、 Intel/Altera、Analog Devices、[2] Xilinx、[3] TI、ST、Freescaleなど、多くの組み込みシステムメーカーによって使用されています。
lwIP ネットワーク スタック
lwIP ネットワーク スタック実装の焦点は、フルスケールの TCP スタックを維持しながらリソース使用量を削減することです。[4]これにより、lwIP は数十キロバイトの空き RAM と約 40 キロバイトのコード ROM のスペースを備えた組み込みシステムでの使用に適しています。
lwIP プロトコル実装
TCP/IPスタック以外にも、lwIPにはネットワークインターフェース、オペレーティングシステムエミュレーション層、バッファ、メモリ管理セクションなどの重要な部分がいくつかあります。オペレーティングシステムエミュレーション層とネットワークインターフェースは、lwIPコードとオペレーティングシステムカーネル間の共通インターフェースを提供するため、ネットワークスタックをオペレーティングシステムに移植することができます。[4]
lwIP のネットワーク スタックには、複数のネットワーク インターフェイスを介したパケット転送を処理できるインターネット層のIP (インターネット プロトコル) 実装が含まれています。 [4] lwIP v2.0.0 以降、 IPv4とIPv6 の両方がデュアル スタックでサポートされています。[5]ネットワークのメンテナンスとデバッグのために、lwIP はICMP (インターネット制御メッセージ プロトコル) を実装しています。[4] IGMP (インターネット グループ管理プロトコル) は、マルチキャスト トラフィック管理用にサポートされています。ICMPv6 ( MLDを含む)は、 IPv6 の使用をサポートするために実装されています。[引用が必要]
lwIP には、データ リンク層でイーサネットをサポートするための IPv4 ARP (アドレス解決プロトコル) と IPv6近隣探索プロトコルの実装が含まれています。lwIP は、データ リンク層のPPP (ポイントツーポイント プロトコル) 実装の上で動作することもできます。[引用が必要]
トランスポート層では、lwIPは輻輳制御、RTT推定、高速回復/高速再送信を備えたTCP(伝送制御プロトコル)を実装しています。 [4] UDP (ユーザーデータグラムプロトコル)は、実験的なUDP-Lite拡張で実装されています。 [引用が必要]
APIとソケット
lwIPは、ネットワークスタックのパフォーマンスを向上させるために、コピー不要の特殊なアプリケーションプログラミングインターフェイス(API)を提供します。BerkeleyソケットAPIはオプションです。[4]使用するAPIに応じて、 rawソケットまたはraw pcbs(プロトコル制御ブロック)が提供されます。[6]
アプリケーション層のサポート
アプリケーション層では、lwIP ネットワーク スタックは、次のプロトコルの実装を通じてサポートされる場合があります。DNS (ドメイン ネーム システム)、SNMP (簡易ネットワーク管理プロトコル) エージェント (v1、v2、または v3)、プライベート MIB (管理情報ベース) サポートおよび MIB コンパイラ。
lwIP TCP/IP スタックを実装するオペレーティング システムは、アプリケーション層でさまざまなクライアントとサーバーをサポートすることができます。たとえば、IPv4 DHCP (Dynamic Host Configuration Protocol) クライアントや IPv4リンク ローカル アドレス(AutoIP) などです。特殊な生の API アプリケーションには、 HTTPサーバー、SNTPクライアント、SMTPクライアント、NetBIOSネーム サーバー、mDNSレスポンダー、MQTTクライアント、TFTPサーバーなどがあります。[引用が必要]
OS実装
lwIPはReactOSやGenode [7]のネットワークスタックとして使用され、 MinixやGNU Hurdではネットワークサーバーの実装に使用できます。
参照
参考文献
- ^ 「lwIP 2.2.0 リリース」 。2023年 10 月 11 日閲覧。
- ^ 「Blackfin プロセッサを使用した複雑な VDK/LwIP アプリケーションの構築」、Kaushal Sanghai、Analog Devices Inc. 2008 年 9 月
- ^ Siva Velusamy、LightWeight IP (lwIP) アプリケーション例、Xilinx Inc. 2009 年 6 月
- ^ abcdef Wu, Yanwen編 (2010). ソフトウェア工学と知識工学:理論と実践。ベルリン: Springer。p. 639。ISBN 978-3-642-03717-7。
- ^ 「LwIP: アップグレード」。
- ^ lwIP 関数のドキュメント
- ^ 「Genode OS Framework 9.11 のリリース ノート」。
外部リンク
- アダム・ダンケルズの最初のLwip論文
- lwIP 開発
- lwIP ドキュメント wiki
- lwIP 関数のドキュメント
- lwIP 旧ホームページ (廃止)
- Microchip による LwIP 使用ガイド (pdf)
