none
HttpClientが動かない/MTU値の設定方法 RRS feed

  • 質問

  • こんにちわ。PAPI-COMと申します。
    Windowsでの開発暦は15年くらい。組込みの仕事を始めて1年くらいです。

    【質問】
    (1).NET Micro FrameworkでEthernetのMTU値の設定を変える方法はありますか。あったら教えてください。
    (2)また、下記問題の解決方法またはヒントがあれば教えてください。

    【問題】
    EMX Development SystemというマイコンボードとWiMAXの通信モジュールWS2001を繋げて遠隔地のデータ取りをする装置を作ろうとしているのですが、Microframeworkのサンプルコード「HttpClient」がうまく動かないという現象があって困っています。
    もちろん、HttpClientをEMXで動くように改造してあり、EMXを自社のLANに繋ぐと問題なくWebページのデータを取得できます。
    また、PCにWS2001を繋いだときは普通にWebブラウジングができるので、これはEMXとWS2001を組み合わせたときだけに発生する問題です。

    問題の詳細:
    1度読んだWebサイトは2度読めない。
    10分くらい放置したりWS2001の電源を入れなおしたりすると再び読めるようになったりならなかったりする。
    プログラムの再起動やEMXボードの再起動では直らない。
    具体的にはHttpWebRequest.GetResponse()が帰ってこなくなる。
    TimeoutおよびReadWriteTimeoutを5000msに設定したが、帰ってくるようにはならなかった。

    具体的に書くと守秘義務に抵触するかもしれないのでボカしますが、WiMAXのほうは然るべき所に相談中であり、その中で、EMX側のMTU値の設定を変えてみたらどうかというアドバイスをいただきました。
    MicroframeworkでのMTUの設定方法がわからないのでお手上げ状態になっています。

    よろしくお願いします。
    2012年6月19日 6:42

すべての返信

  • 大分古い問い合わせですが、たまたま最近RTIP/lwip両方のPorting KitのLANのソースコード見る機会がありましたので、参考情報です。

    GHI Electronics社のEMXモジュールの場合はソースコードが公開されていないので、正確なことはわかりませんが、Micro Frameworkの移植で使用されるLANドライバのMTU値はdefine値で1500固定となっています。MFDeploy等のコンフィグレーション変更手段やNetowork関連のAPIでは、変更できないと考えた方が良さそうです。

    2013年6月28日 16:15
    モデレータ