2. LwIPについて知る

Baidu百科事典のLwIPの概要:https ://baike.baidu.com/item/lwip/10694326

lwipは、スウェーデンのコンピュータサイエンス研究所(SICS)のAdam Dunkelsによって開発された小さなオープンソースTCP / IPプロトコルスタックです。実装の焦点は、TCPプロトコルの主な機能を維持しながら、RAMの使用量を減らすことです。

LwIPは軽量(軽量)IPプロトコルであり、オペレーティングシステムのサポートの有無にかかわらず実行できます。LwIP実装の焦点は、TCPプロトコルの主な機能を維持しながらRAMの占有を減らすことです。実行するのに必要なRAMは数十KB、ROMは40Kだけなので、LwIPプロトコルスタックはローエンドの組み込みシステムに適しています。使用。

lwIPプロトコルスタックは主にメモリ使用量とコードサイズを削減する方法に焦点を当てているため、lwIPは組み込みシステムなどの限られたリソースを持つ小さなプラットフォームに適用できます。処理とメモリの要件を簡素化するために、lwIPはAPIを削減したため、一部のデータをコピーする必要はありません。

RAW APIは、プロトコルスタックとアプリケーションをプロセスに配置します。このインターフェイスは関数コールバックテクノロジーに基づいており、このインターフェイスを使用するアプリケーションは継続的な操作を実行する必要がありません。ただし、これにより、アプリケーションの記述が難しくなり、コードを理解しにくくなります。データを受信するために、アプリケーションはコールバック関数をプロトコルスタックに登録します。コールバック関数は特定の接続に関連付けられており、関連付けられた接続がパケットに到達すると、プロトコルスタックによってコールバック関数が呼び出されます。これには利点と欠点の両方があります。利点は、アプリケーションとTCP / IPプロトコルスタックが同じプロセス内に存在するため、データの送受信時にプロセスが切り替えられないことです。主な欠点は、TCP / IP処理と連続操作を並行して行うことができないため、アプリケーションが長期間の連続操作に陥り、通信パフォーマンスが低下することです。この欠点は、アプリケーションを2つの部分(通信用と計算用)に分割することで克服できます。

lwip APIは、受信と処理をスレッドに入れます。このように、処理フローが少し遅れている限り、受信がブロックされ、頻繁なパケット損失や無応答などの深刻な問題が直接発生します。したがって、受信とプロトコル処理を分離する必要があります。LwIPの作者は明らかにこれを考慮しており、rawapiの記事では説明していませんが、この問題に対処するためにtcpip_input()関数を提供してくれました。そういえば、読者はtcpip_input()関数によって配信されたメッセージの送信元に対する答えを知っている必要があります。ネットワークドライバーを作成すると、その受信部分がタスクの形で作成されます。データパケットが到着したら、イーサネットパケットヘッダーを削除してIPパケットを取得し、tcpip_input()関数を直接呼び出してmboxメールボックスに配信します。配信が完了した後、受信タスクは引き続き次のデータパケットを受信し、配信されたIPパケットは引き続きTCPIPスレッドによって処理されます。このように、IPパケットの処理時間が長すぎても、頻繁にパケットが失われることはありません。これはlwip APIです。

BSD APIは、open-read-write-closeモデルに基づくUNIX標準APIを提供します。その最大の特徴は、アプリケーションを他のシステムに移植するのが簡単ですが、組み込みシステムでは比較的非効率であり、より多くのリソースを消費します。これは、当社の組み込みアプリケーションにとっては耐えられない場合があります。

 

LWIPソースコードの構成

 

3つの重要なフォルダーdoc、src、test

ドキュメントの重要なドキュメント

    rawapi.txt(プロトコルスタックの使用方法をユーザーに通知します)

    sys_arch.txt(移行時に使用)

srcの構成

    apiフォルダー(LWIPのシーケンシャルAPIとソケットAPIが含まれています)

    コアフォルダー(LwIPコアソースコード)

    インクルードフォルダー(プロトコルスタックで使用されるヘッダーファイル)

    netifフォルダー(基盤となるネットワークインターフェイスに関連するファイルが含まれています)

テスト構成(プロトコルスタックカーネルテスト関数)

公開された163元の記事 ウォンの賞賛183 ビュー120 000 +

おすすめ

転載: blog.csdn.net/qq_31339221/article/details/99708797