[GTER] Dúvida TCP ZeroWindow

Rafael M. Koike r.koike at terra.com.br
Mon Nov 8 13:41:23 -02 2010


 
 Foi o IP 192.168.45.182 quem enviou ZeroWindow para 192.168.63.6.
Neste caso o cliente é quem está falando para o servidor parar de
enviar que o buffer já encheu.
 On Seg 08/11/10 12:35 , Plínio Monteiro Brandão
pliniomonteiro at gmail.com sent:
  Obrigado Rafael,
 Mais uma dúvida.
 No exemplo citado usamos como referência a linha:
 98413 16:55:40.664694 192.168.45.182 192.168.63.6 TCP [TCP
ZeroWindow] 8790
 > 9112 [PSH, ACK] Seq=109502 Ack=136365 Win=0 Len=165
 Só que o cliente é o 192.168.45.182 e o receptor (server) é o
192.168.63.6.
 Nesse caso sua explicação permanece a mesma?
 Porque no meu entendimento, o Win=0 é que a janela de recebimento
do
 receptor (192.168.63.6) está zerada, não podendo mais receber, já
que o
 cliente envia baseado na janela de recebimento do servidor (conforme
figura
 http://www.tcpipguide.com/free/diagrams/tcpswflow.png [1]). Seria
isso ou estou
 confundindo?
 --
 Plínio M. Brandão
 +55 51 8174.5074
 +55 82 9993.5583
 Em 8 de novembro de 2010 12:26, Rafael M. Koike escreveu:
 > Plinio,
 >
 > O TCP trabalha com MTU (Maximum Transfer Unit) Unidade Maxima de
 > Transferencia que é quantos bytes um unico cabeçalho TCP
transporta
 > (Geralemente configurado para 1500) mas normalmente transporta
menos.
 > E o TCP Window que é no protocolo TCP que é orientado a conexão
e
 > estabelece um hand-shake para iniciar a transmissão precisa a
cada X pacotes
 > TCP enviar uma confirmação de que aquela sequencia foi enviada
corretamente
 > e que o transmissor pode enviar a proxima sequencia de pacotes TCP
 > É uma definição de quantos bytes podem ser enviados até que o
receptor
 > envie um ACK (Acknowledge) ao transmissor par que ele contine
enviando.
 > O Window é utilizado para que a comunicação não fique
sobrecarregada de
 > ACKs a cada envio de pacote TCP (Ou seja, a cada pacote de 1500
bytes o
 > receptor envia um ACK falando que pode continuar transmitindo)
 > Dai em meios de transmissoes confiaveis voce pode definir TCP
Windows de
 > alguns KBytes ou MBytes) e com isso voce tem um overhead bem
menor.
 > No caso de um pacote do receptor para o emissor com flag Zero
Window, o
 > receptor está dizendo: Ei!, pare de enviar dados pois não tenho
 > buffer/memória para processá-los na velocidade que voce está
enviando!
 > E isto provavelmente quer dizer que apesar do transmisor e
receptor ter
 > negociado uma janela X de dados até o ACK o receptor não está
dando conta do
 > recado e não está processando dados rapido o suficiente.
 > Talvez seja devido a uma conexão gigabit muito rápida para um
servidor
 > "parrudo" enviando dados e um desktop ou servidor pequeno
recebendo.
 > Neste caso um tunning do TCP Window ou uma revisada no hardware do
receptor
 > devem resolver o problema
 >
 >
 >
 >
 >
 > *On Seg 08/11/10 10:23 , Plínio Monteiro Brandão
pliniomonteiro at gmail.comsent [3]:
 > *
 >
 > Pessoal,
 >
 > Estou com uma dúvida relacionada a Flag TCP ZeroWindow que
aparece no
 > Wireshark. O ambiente que estou vivenciando no momento é o
seguinte:
 >
 > Cliente: 192.168.45.182
 > Servidor: 192.168.45.178
 >
 > De acordo com o capture realizado aparece a seguinte linha:
 >
 > 98412 16:55:40.664670 192.168.45.182 -> 192.168.45.178 TCP [TCP
ZeroWindow]
 >
 > > 8790 > 9112 [PSH, ACK] Seq=109502 Ack=136365 Win=0 Len=165
 >
 > >
 >
 >
 > Entretanto, estamos com dúvida em relação a saída do Campo
*WIN* no
 > Wireshark. A primeira impressão é que a saída está relacionada
a Window do
 > source (192.168.45.182), mas de acordo co o TCPGUIDE, essa window
estaria
 > relacionada com o tamanho da window do servidor (192.168.45.178).
Segue o
 > texto e o link que foi usado como referência:
 >
 >
http://www.tcpipguide.com/free/t_TCPWindowSizeAdjustmentandFlowControl.htm
[4]
 >
 > We have seen the importance of the concept of *window size* to
TCP's
 > sliding
 >
 > > window mechanism. In a connection between a client and a server,
the
 > client
 >
 > > tells the server the number of bytes it is willing to receive at
one time
 >
 > > from the server; this is the client's *receive window*, which
becomes the
 >
 > > server's *send window*. Likewise, the server tells the client
how many
 >
 > > bytes of data it is willing to take from the client at one time;
this is
 > the
 >
 > > server's *receive window* and the client's *send window*.
 >
 > >
 >
 >
 > http://www.tcpipguide.com/free/diagrams/tcpswflow.png [6]
 >
 > Vocês já passaram por alguma situação desse tipo? Alguém pode
ajudar na
 > interpretação dessa saída e no conceito do TCP?
 >
 > Desde já agradeço.
 >
 > --
 > Plínio M. Brandão
 > +55 51 8174.5074
 > +55 82 9993.5583
 > --
 > gter list https://eng.registro.br/mailman/listinfo/gter [8]
 >
 >
 >
 --
 gter list https://eng.registro.br/mailman/listinfo/gter [10]



More information about the gter mailing list