
Olhando a imagem abaixo, retirada do livro de Ilya Grigorik - High Performance Browser Networking, posso entender que o pacote SYN escolhe um número de sequência aleatório que é incrementado no pacote SYN ACK (N+1). Finalmente, no pacote ACK, ambos os números de sequência (N+1) e de confirmação (N+1) são incrementados.
Ao testar com o Wireshark, obtive o pacote ACK com número de reconhecimento = N+1, mas oNúmero de sequência = N. Isso é um erro do autor quando diz que no pacote ACK os números de sequência e de reconhecimento são incrementados?
Responder1
RFC 793estadosrepetidamenteque o número de confirmação é o número de sequência deo próximo pacote que o final espera receber. Assim, será sempre maior que o número de sequência.
Por exemplo, na seção 2.6:
Os segmentos também carregam um número de confirmação que é o número de sequência do próximo octeto de dados esperado de transmissões na direção reversa.
Na seção 3.1:
Número de confirmação: 32 bits
Se o bit de controle ACK estiver definido, este campo contém o valor do próximo número de sequência que o remetente do segmento espera receber. Depois que uma conexão é estabelecida, ela é sempre enviada.
A Seção 3.3 explica em detalhes como funcionam os números de sequência e por que funcionam dessa maneira. Você provavelmente achará isso muito mais esclarecedor do que seu livro.