Por que o servidor envia o pacote RST para o cliente após o fechamento normal?

3

Estou testando o teste de estresse do servidor. SO do servidor e sistema operacional cliente é o CentOS6.4.

cliente tenta conectar 3000, uma conexão envia uma solicitação http, pela ferramenta de teste de carga, weighttp. mas, cliente obter erro. este erro é a conexão redefinida pelo peer. Eu capturei pacotes por wireshark.

0.523605     10.0.0.2 -> 10.0.0.1     TCP 74 45763 > ddi-tcp-1 [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSval=178982970 TSecr=0 WS=128
0.533484     10.0.0.1 -> 10.0.0.2     TCP 74 ddi-tcp-1 > 45763 [SYN, ACK] Seq=0 Ack=1 Win=14480 Len=0 MSS=1460 SACK_PERM=1 TSval=178914097 TSecr=178982970 WS=128
0.589445     10.0.0.2 -> 10.0.0.1     TCP 66 45763 > ddi-tcp-1 [ACK] Seq=1 Ack=1 Win=14720 Len=0 TSval=178982993 TSecr=178914097
0.789282     10.0.0.2 -> 10.0.0.1     TCP 166 45763 > ddi-tcp-1 [PSH, ACK] Seq=1 Ack=1 Win=14720 Len=99 TSval=178983235 TSecr=178914097
0.839889     10.0.0.1 -> 10.0.0.2     TCP 66 ddi-tcp-1 > 45763 [ACK] Seq=1 Ack=100 Win=14592 Len=0 TSval=178914363 TSecr=17898323
0.845196     10.0.0.1 -> 10.0.0.2     TCP 303 ddi-tcp-1 > 45763 [PSH, ACK] Seq=1 Ack=100 Win=14592 Len=237 TSval=178914374 TSecr=178983235
0.845203     10.0.0.1 -> 10.0.0.2     TCP 678 ddi-tcp-1 > 45763 [PSH, ACK] Seq=238 Ack=100 Win=14592 Len=612 TSval=178914374 TSecr=178983235
1.071341     10.0.0.1 -> 10.0.0.2     TCP 915 [TCP Retransmission] ddi-tcp-1 > 45763 [PSH, ACK] Seq=1 Ack=100 Win=14592 Len=849 TSval=178914640 TSecr=178983235
1.076500     10.0.0.2 -> 10.0.0.1     TCP 66 45763 > ddi-tcp-1 [ACK] Seq=100 Ack=850 Win=16384 Len=0 TSval=178983531 TSecr=178914640
1.076575     10.0.0.2 -> 10.0.0.1     TCP 66 45763 > ddi-tcp-1 [FIN, ACK] Seq=100 Ack=850 Win=16384 Len=0 TSval=178983531 TSecr=178914640
1.076844     10.0.0.1 -> 10.0.0.2     TCP 66 ddi-tcp-1 > 45763 [FIN, ACK] Seq=850 Ack=101 Win=14592 Len=0 TSval=178914649 TSecr=178983531
1.337245     10.0.0.2 -> 10.0.0.1     TCP 66 45763 > ddi-tcp-1 [ACK] Seq=101 Ack=851 Win=16384 Len=0 TSval=178983535 TSecr=178914649
1.463888     10.0.0.1 -> 10.0.0.2     TCP 66 [TCP Retransmission] ddi-tcp-1 > 45763 [FIN, ACK] Seq=850 Ack=101 Win=14592 Len=0 TSval=178914911 TSecr=178983531
1.471462     10.0.0.2 -> 10.0.0.1     TCP 66 [TCP Dup ACK 9057#1] 45763 > ddi-tcp-1 [ACK] Seq=101 Ack=851 Win=16384 Len=0 TSval=178983923 TSecr=178914649
1.586270     10.0.0.1 -> 10.0.0.2     TCP 54 ddi-tcp-1 > 45763 [RST] Seq=851 Win=0 Len=0

Eu não entendo. Por que o servidor envia o pacote RST para o cliente após o fechamento normal?

Sinto muito pela minha péssima habilidade em inglês.

Obrigado pelo replay.

Eu capto pacotes no lado do servidor e no lado do cliente. servidor é muito atraso.

pacotes de servidores

  8.537458     10.0.0.2 -> 10.0.0.1     TCP 74 51446 > ddi-tcp-1 [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSval=720269 TSecr=0 WS=128
  8.537461     10.0.0.1 -> 10.0.0.2     TCP 74 ddi-tcp-1 > 51446 [SYN, ACK] Seq=0 Ack=1 Win=14480 Len=0 MSS=1460 SACK_PERM=1 TSval=691010 TSecr=720269 WS=128
 10.279094     10.0.0.2 -> 10.0.0.1     TCP 165 51446 > ddi-tcp-1 [PSH, ACK] Seq=1 Ack=1 Win=14720 Len=99 TSval=722038 TSecr=691010
 10.281834     10.0.0.1 -> 10.0.0.2     TCP 54 ddi-tcp-1 > 51446 [RST] Seq=1 Win=0 Len=0

pacotes do cliente

  6.959709     10.0.0.2 -> 10.0.0.1     TCP 74 51446 > ddi-tcp-1 [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSval=720269 TSecr=0 WS=128
  6.964438     10.0.0.1 -> 10.0.0.2     TCP 74 ddi-tcp-1 > 51446 [SYN, ACK] Seq=0 Ack=1 Win=14480 Len=0 MSS=1460 SACK_PERM=1 TSval=691010 TSecr=720269 WS=128
  7.000836     10.0.0.2 -> 10.0.0.1     TCP 66 51446 > ddi-tcp-1 [ACK] Seq=1 Ack=1 Win=14720 Len=0 TSval=720315 TSecr=691010
  7.002803     10.0.0.2 -> 10.0.0.1     TCP 165 51446 > ddi-tcp-1 [PSH, ACK] Seq=1 Ack=1 Win=14720 Len=99 TSval=720315 TSecr=691010
  7.222562     10.0.0.2 -> 10.0.0.1     TCP 165 [TCP Retransmission] 51446 > ddi-tcp-1 [PSH, ACK] Seq=1 Ack=1 Win=14720 Len=99 TSval=720562 TSecr=691010
  7.514462     10.0.0.1 -> 10.0.0.2     TCP 66 ddi-tcp-1 > 49507 [FIN, ACK] Seq=850 Ack=101 Win=14592 Len=0 TSval=691534 TSecr=720767
  7.703119     10.0.0.2 -> 10.0.0.1     TCP 165 [TCP Retransmission] 51446 > ddi-tcp-1 [PSH, ACK] Seq=1 Ack=1 Win=14720 Len=99 TSval=721054 TSecr=691010
  8.686885     10.0.0.2 -> 10.0.0.1     TCP 165 [TCP Retransmission] 51446 > ddi-tcp-1 [PSH, ACK] Seq=1 Ack=1 Win=14720 Len=99 TSval=722038 TSecr=691010
  8.709193     10.0.0.1 -> 10.0.0.2     TCP 60 ddi-tcp-1 > 51446 [RST] Seq=1 Win=0 Len=0

Eu verifiquei os log (/ var / log / messaeges), mas, eu não consegui achar que o servidor atingiu os limites.

Estou tentando resolver o porblem. Obrigada!

    
por JunJapanease 15.12.2013 / 13:40

2 respostas

1

O fechamento não parece muito gracioso no lado do servidor devido à retransmissão do FIN, ACK @ 1.463888, como se não tivesse visto o ACK @ 1.337245

Meu melhor palpite é que o ACK inicial @ 1.337245 eventualmente seja processado após 1.463888 e o RST é para o ACK subsequente @ 1.471462

Tente fazer a captura em 10.0.0.1 ao mesmo tempo para comparar os dois lados da conexão e ver quando / se os pacotes aparecerem no servidor.

Também parece haver um atraso significativo para o cliente fechar inicial ACK @ 1.337245, que também poderia ser um fator contribuinte. Os clientes anteriores ACK @ 1.076500 é após uma retransmissão também. Talvez você esteja se aproximando do limite do sistema do cliente? Tente dividir as solicitações do cliente em duas ou mais caixas para removê-las como possível fator limitante.

    
por 15.12.2013 / 15:40
0

Eu alterei os cookies de sincronização de 1 a 0.

Este problema está resolvido!

Muito obrigado!

    
por 22.12.2013 / 07:29

Tags