問題タブ [lwip]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
615 参照

http - lwip を使用した HTTP GET が途中で停止する

サーバーから HTTP GET を実行するクライアントとして lwip を使用しています。私が受け取りたいファイルはおよそ 75kB です。最初の ~9kB を正しく取得しましたが、それ以上データが到着しません。スタックに到着する各パケットは、適切に ACK されます。

長いコードを短くするために、次のコマンドで netconn インターフェースを使用しています。いくつかのパケットが到着するまでエラーは発生しません。この後、netconn_recv はタイムアウトを開始し、約 15 分後にサーバーがパケットを送信して接続を閉じます (これは、接続が少なくとも何らかの意味でまだ機能していることを示しています)。

次に何を試すべきか、誰かヒントを教えてもらえますか? ありがとう

0 投票する
0 に答える
638 参照

beagleboneblack - LWIP と StarterWare を使用した Beaglebone パケット スニファー

私は、BeagleBone Black をローカル ネットワークのパケット スニファー (およびロガー) として使用することを計画しているプロジェクトに取り組んでいます。Starterware の例である echo_server と http_server を使用しましたが、これらは問題なく動作します。しかし、TCP/IP の内部操作に精通していないため、既存の Starterware コード ベースを変更してプロミスキャス モードのパケット スニッフィングを実装する方法がわかりません。この LWIP のポートが意図した用途で機能する場合と機能しない場合がある理由について、何か提案や理由がある人はいますか? ありがとう、

0 投票する
1 に答える
3581 参照

udp - FreeRTOS + LWIP -UDP データ転送

私はlwipスタックにちょっと慣れていません。開発ボードから PC に UDP プロトコル経由でデータを送信しようとしています。そして、それらの間でイーサネットケーブルを使用します。

サーバー (ソースボード) に 192.168.1.75:88 の IP アドレスを指定しました。私のコンピュータの IP アドレスは 192.168.1.2:90 です。この構成を設定してプログラムを実行すると、wireshark で何も盗聴できません。つまり、udp パッケージの交換はまったくありません。しかし、すべての宛先アドレスを 255.255.255.255 または 0.0.0.0 に変更すると、一部のパッケージを盗聴できます。

必要な IP アドレスに udp パッケージを送信できないのはなぜですか?

Main.c

SendUDP タスク

0 投票する
1 に答える
952 参照

c - lwIP Raw TCP 接続で HTTP 要求に対する複数の応答を受信できない

データをエンキューしてサーバーに送信しようとすると、複数の HTTP 要求に対する応答を受信できません。

サーバーへの接続を確立し、tcp_write() 関数を使用して、connected_callback() 関数 (サーバーへの接続が確立されるとすぐに呼び出される) 内で HTTP 要求をすぐに発行できます。ただし、次の構文を使用して 2 つ以上の HTTP リクエストを生成しようとすると:

すべてのデータをサーバーに送信することに成功しましたが、2 番目の HTTP 要求のデータをまったく受信しません。最初のリクエスト (JSON ファイル) のペイロードを出力することはできましたが、.dee ファイルについては何も受信できませんでした。lwIP と一緒に HTTP リクエストをキューに入れるための特定の指示はありますか、それとも何か不足していますか?

私の問題を正確に分析するためにさらにコードが必要な場合は、遠慮なく言ってください。

ありがとう!

0 投票する
1 に答える
790 参照

tcp - lwip tcp/ip チェックサム エラー

LWIP: SSI 出力の長さが原因で TCP/IP チェックサム エラーが発生する場合がある

ARM LPC4357 (LPCOpen 2.1.12、2014 年 5 月 15 日) で実行されている LWIP 1.4.1 を使用しています。私は httpserver_raw を使用しており、いくつかの SSI ハンドラーを追加しました。

システムは、タグを含む行のサイズと SSI ハンドラが出力するバイト数の両方に敏感であることがわかりました。タグは出力に含まれます。タグを展開する場合:

(2 つのスペースがタグの前にあり、フォーラムの書式設定です!) タグが 1、3、5、7 などの文字で展開されると、ブラウザは出力を受信できず、Wireshark はチェックサム エラーを報告します。タグが 2、4、6、8 などの文字で展開されると、ブラウザーは出力を受け取り、Wireshark は OK を報告します。

タグの前からスペースを削除すると、状況が逆転します。さらに、タグが 129 文字を超える場合 (122 の可能性あり)、出力は常に問題ありません (まだ障害は確認されていません)。

SSI 出力が >=129 バイトの場合、http_write() 関数は長さ 122 (ヘッダーとタグ)、122 (SSI の最初の部分)、および 7 (SSI の残りの部分) で呼び出されます。2 番目の tcp_write() を 122 にすると、チェックサムの問題が解決するようです。(SSI 出力をセグメントに分割すること自体が奇妙です。最大 122 のチャンクでの送信は、タグまでのリソース ファイルのサイズによって駆動されるようです)。

UART printf() と Wireshark を使用して SSI 出力を検査しましたが、すべて正しいように見え、出力に破損はありません。http_write() の長さは、出力と同様に正しいです。

私は tcp_write() まで追跡しましたが、その時点で自分自身を疑い始めました。確かに tcp_write() を壊すことはできませんか? 組み込みターゲットまたは実際に tcp_write() で LWIP SSI を使用した人はいますか?

0 投票する
2 に答える
4590 参照

snmp - LWIP を使用して SNMP エージェントから送信できるオクテット文字列の最大長

ザイリンクス SDK の LWIP ライブラリを使用してデバイスに SNMP エージェントを実装しようとしています。

エージェントの実装に成功し、コマンド (snmpget、snmpset、snmpwalk) に応答するようにエージェントをデバイス上で実行しました。

しかし、OID が 255 を超える長さのオクテット文字列を返す必要がある場合、エージェントは疑わしい動作をします。長さが 255 を超えるオクテット文字列を渡そうとすると、その oid に関するデータを受信せず、エージェントはその後切断され、それ以上のコマンドに応答しません。

長さ <255 の snmp オクテット文字列は問題なく正しく受信されます (問題はありません)。LWIP SNMP エージェントにはオクテット文字列のサイズに制限があるのだろうか..?

0 投票する
1 に答える
1361 参照

tcp - フロー制御の実装 - 方法

TCP/IP (FreeRTOS + LwiP を使用) を使用して 1k データを送信しています。ドキュメントから、TCP/IP プロトコルにはスタック自体の内部にフロー制御があることを理解しましたが、このフロー制御はネットワーク バッファに依存しています。以下で説明する私のシナリオでこれをどのように処理できるかわかりません。

  1. WiFi から TCP/IP を使用して 1k サイズのデータ​​を受信します (このデータ レートは 20Mb/s になります)

  2. 受信した Wifi データは 10k サイズのキューに入れられます。各ブロックのサイズは 1K です。

  3. キューから各ブロックが取得され、1Mb/s の低レートで別のインターフェイスに送信されます

このシナリオでは、wifi <-> キューからのデータ間に手動でフロー制御を実装する必要がありますか? どうすればこれを達成できますか?

0 投票する
0 に答える
160 参照

freebsd - freebsd に lwip を実装するには?

freebsdでユーザー ランド プロトコル スタックを使用しようとしていますが、lwipを見つけてダウンロードしました。しかし、私はfreebsdが初めてで、freebsd 10.1にインストールできません。インストールして使用するのを手伝ってください。リンクまたはチュートリアルはありますか?

このリンクからダウンロードします