1

クライアントプログラムがリモートWebサーバーへのTCP接続を確立できないという問題に戸惑っています。

シーン

ubuntuサーバー12.04LTSに基づくクライアントプログラム。

192.168.1.118(クライアントプログラム)<------- TCP ---------> sync.oncecode.com(Webサーバー)

現象

クライアントはSYNを送信し、WebサーバーはSYN / ACKで応答し、クライアントはすぐにRSTを送信します。TCP/IPヘッダーに何も表示されません。誰かが私にここで何が起こっているのか手がかりを教えてもらえますか?アイデアが足りなくなった...

[ Tcpdumpログ]

21:31:31.622576 IP 192.168.1.118.51441 > sync.oncecode.com.http: Flags [S], seq 3468888759, win 5360, options [mss 536,sackOK,TS val 40855676 ecr 0,nop,wscale 7], length 0

        0x0000:  4500 003c 537d 4000 4006 ee75 c0a8 0176  E..<S}@.@..u...v
        0x0010:  2a79 0c32 c8f1 0050 cec3 0ab7 0000 0000  *y.2...P........
        0x0020:  a002 14f0 f8f7 0000 0204 0218 0402 080a  ................
        0x0030:  026f 687c 0000 0000 0103 0307            .oh|........

21:31:31.690808 IP sync.oncecode.com.http > 192.168.1.118.51441: Flags [S.], seq 1535159088, ack 3468888760, win 5792, options [mss 1440,sackOK,TS val 971694021 ecr 40830368,nop,wscale 6], length 0

        0x0000:  4500 003c 0000 4000 3606 4bf3 2a79 0c32  E..<..@.6.K.*y.2
        0x0010:  c0a8 0176 0050 c8f1 5b80 ab30 cec3 0ab8  ...v.P..[..0....
        0x0020:  a012 16a0 6d6e 0000 0204 05a0 0402 080a  ....mn..........
        0x0030:  39ea dfc5 026f 05a0 0103 0306            9....o......
21:31:31.690826 IP 192.168.1.118.51441 > sync.oncecode.com.http: Flags [R], seq 3468888760, win 0, length 0

        0x0000:  4500 0028 0000 4000 4006 4207 c0a8 0176  E..(..@.@.B....v
        0x0010:  2a79 0c32 c8f1 0050 cec3 0ab8 0000 0000  *y.2...P........
        0x0020:  5004 0000 145a 0000  

[追加]ファイアウォールがシャットダウンしているようです、確認しました

olele@ubuntu:~$ sudo iptables -L

Chain INPUT (policy ACCEPT)

target     prot opt source               destination


Chain FORWARD (policy ACCEPT)

target     prot opt source               destination


Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination
4

1 に答える 1

1

tihuBird、次のいずれかを誤解した場合は訂正してください。

パケットキャプチャショーは、タイムスタンプオプション値がのクライアントSYNあり40855676サーバーのSYN+ACK応答には、のタイムスタンプエコー応答が含まれています40830368

問い合わせの最初の行は、サーバーがSYNパケットキャプチャ内のもの以外に応答したことである必要があります。

その正しいTCPプロトコルスタックは、ハンドシェイク中にTSecrが有効であることを確認しますか?

完全に不合理ではありません。エコー応答は過去にタイムスタンプ値で戻ってきました。

ルーターを再起動した後も問題が解決しない理由を教えてください。しかし、クライアントサーバーを再起動すると、問題は修正されます。Webサーバーの応答が遅い原因は何ですか。

そのため、クライアント(?)のNATを実行しているルーターを再起動しても、問題は解決しませんでした。クライアントを再起動し、問題は修正されましたか?

クライアントとルーターのインターネットに面した側の両方でパケットキャプチャを実行することをお勧めします。この証拠がなければ、他の何かは単なる憶測であり、問​​題が再発するまで待つ必要があります。

サーバーの応答が遅くない可能性があり、クライアントマシンのネットワークインターフェイスカード/ドライバーに問題があったと思われます。クライアント+ルーターのパケットキャプチャは、この仮説を反証できるはずです。

最近のほとんどのネットワークカードには、パフォーマンスに関連するさまざまなTCP「オフロード」オプションがあることに注意してください。これらのオプションの1つが微妙に壊れていて、再起動するとこの状態が解消された可能性があります。オフロード機能を無効にする(そしてOSにTCPの詳細をより多く管理させる)ことも問題を修正し、NICが原因であることが証明される可能性があります。

于 2012-11-16T10:13:39.230 に答える