none
Windows標準TCPIPポートでのWindowSizen0 RRS feed

  • 質問

  • Windows標準TCPIPポートでのWindowSizeに関する質問
    PC側:
    OS:windows7 
    ドライバ:V3仕様
    ポート:windows標準TCPIP
    プロトコル:RAW
    Printer側:
    Ethernet,TCPIPスタックハード構成のIC実装。
    WindowSize Optionなし

    PC側の標準TCPIPポートの初期WindowSizeは、64240Bytesになってますが、Printer側は、データ受信毎にWindowSize更新のため1Byteダミーデータを返す必要があります。
    標準TCPIPポートWindowSizeは、ダーミデータ受信毎に-1されるために、64240回のデータ転送と制限されしまいます。

    転送回数の制限をなくす方法は、あるでしょうか。?
    2018年8月20日 1:33

すべての返信

  • fk001 さん、こんにちは。フォーラム オペレーターの立花です。
    MSDN フォーラムへご投稿くださいましてありがとうございます。

    現在 Internet Information Services フォーラムへご投稿
    いただいておりますが、内容から Windows クライアント開発
    フォーラムの方が情報が寄せられやすいとおもいましたので
    移動させていただきますね。

    それでは皆様からのご返信をおまちください。


    参考になった投稿には回答としてマークの設定にご協力ください
    MSDN/TechNet Community Support 立花楓

    2018年8月20日 2:09
    モデレータ
  • 標準TCPIPポートWindowSizeは、ダーミデータ受信毎に-1されるために、64240回のデータ転送と制限されしまいます。
    Window Sizeは本当に1バイトずつ減っていくのでしょうか? またこの記述を読む限り、Window Sizeが最終的に 0 になると読み取れますが信じられません。Window Sizeはどのように確認されたのでしょうか? 確認手段を提示してください。
    2018年8月20日 6:03
  • https://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=33955&rev=&no=0 同じ人?< br>リンクが入らなかった
    • 編集済み Jitta 2018年8月20日 6:22 リンクが入らなかった
    2018年8月20日 6:20
  • Windows標準TCPIPポートでのWindowSizeに関する質問
    PC側:
    OS:windows7 
    ドライバ:V3仕様
    ポート:windows標準TCPIP
    プロトコル:RAW
    Printer側:
    Ethernet,TCPIPスタックハード構成のIC実装。
    WindowSize Optionなし

    PC側の標準TCPIPポートの初期WindowSizeは、64240Bytesになってますが、Printer側は、データ受信毎にWindowSize更新のため1Byteダミーデータを返す必要があります。
    標準TCPIPポートWindowSizeは、ダーミデータ受信毎に-1されるために、64240回のデータ転送と制限されしまいます。

    転送回数の制限をなくす方法は、あるでしょうか。?

    ちょっと大きな勘違いがあるように思います。

    Window Size は、受信側が受け溜めることのできるバッファサイズです。ですから、送信側であるはずの PC 側のサイズを気にする必要がなぜあるのでしょうか。TCP/IP の標準ポートだったら、プリンターからデータを返す必要はなかったと思うのですが?プリンターの情報は SNMP で取っていたように思います。

    マルチポストの指摘をするつもりはなくて、「ACK の為に1バイト送信しなければならない」という質問をどこかで見たような気がして、それのつもりでした。で、ACK の為に送信するから Window Size が減っていくのをなんとかしたい、というような質問をどこかでされていますか?それについても「質問の内容がわからない」というような返信があったと思うのですが、まぁ、とりあえず、TCP/IP 通信について調べ直してみてはいかがでしょうか。

    で、プリンターで使用しているネットワークカードが勝手に1バイト返すから、プリンターのファームでも制御できない、ということなら。

    一番は、使用するカードを変える。そんな怪しい実装をしているものを信用しない。

    次善は、面倒だけど、ポートモニターかランゲージモニターを作って、返信を読み取る。


    Jitta@わんくま同盟

    2018年8月20日 12:03
  • 返答メールありがとうございます。

    下記がWindowSize変化のキャプチャチャートです。

    IPaddress   PC:192.168.0.10  Printer:192.168.0.3

    上から7行   PC⇒Printer    TCP [Ack]  Win=1

    上から9行   PC⇒Printer    TCP [TCPZEROWINDOW]

    お手数をおかけします。よろしくお願いします。

    2018年8月24日 6:57
  • 会社のプリンターが標準 TCP/IP ポートでした。テストプリント中のパケットを見てみましたが、プリンター側からの ACK では、Length が 0 でした。

    プリンター側の実装のどこかがおかしいと考えられます。


    Jitta@わんくま同盟

    2018年8月27日 12:03