Números de Seqüência e Reconhecimento TCP

1

Analisei outras questões envolvendo os tópicos relevantes, mas ainda não estou claro sobre isso.

Acabei de ler isto explicação da sequência TCP & números de confirmação . Cerca de metade do caminho, há este diagrama:

Próximo ao final da página, a explicação da etapa final, etapa 4, inclui este texto:

Note that the sequence number of the segment in line 4 is the same as in line 3 because the ACK does not occupy sequence number space.

So keep in mind that any packets generated, which are simply acknowledgments (in other words, have only the ACK flag set and contain no data) to previously received packets, never increment the sequence number.

Atualmente, estou com dificuldades para entender isso:

  • Eu posso ver claramente que o número de seqüência no pacote enviado na etapa 4 tem o mesmo número de sequência que o pacote enviado em passo 3 .
  • Também fica claro que o número de confirmação também é o mesmo nessas etapas
  • Basicamente, o autor parece estar dizendo que o pacote step 4 é idêntico ao pacote step 3 , exceto que a etapa 4 pacote contém dados / payload.

Com relação aos meus dois primeiros pontos, isso está correto? (como no caso o autor acertou?) Com relação ao meu terceiro ponto, isso está correto? E finalmente, assumindo que a resposta às duas primeiras perguntas é basicamente 'sim' , então é a razão que esses números são os mesmos em ambos os pacotes porque não houve nenhum pacote intermediário recebido do < em> servidor de gateway ?

Estou buscando esclarecimentos gerais sobre isso.

    
por Totem 04.05.2014 / 19:55

1 resposta

3
  • Sim, o número de sequência e o número de confirmação nos pacotes 3 e 4 serão de fato idênticos.
  • Não, os pacotes não são exatamente iguais. Diferenças que você pode ver incluem:
    • O pacote 4 também pode ter o sinalizador PSH definido.
    • Se os carimbos de data / hora estiverem em uso, eles poderão diferir entre 3 e 4.
    • A soma de verificação provavelmente será diferente.
  • A razão pela qual o número de sequência é o mesmo no pacote 3 e 4 é que o pacote 3 não contém dados de carga útil.
  • O número de confirmação do motivo é o mesmo nos pacotes 3 e 4, ou seja, nenhum dado foi recebido do servidor nesse meio tempo.

O pacote 3 é redundante. A camada TCP poderia decidir esperar alguns microssegundos antes de enviá-la e ir direto para o pacote 4, se o aplicativo escrevesse algo no soquete durante esses microssegundos.

Posso recomendar o uso do Wireshark para inspecionar o tráfego real em seu computador, o que pode ajudar a ter uma ideia do que está acontecendo.

    
por 04.05.2014 / 20:50