Cursos / Redes de Computadores / Redes de Computadores I / Aula
Como os pacotes TCP são transmitidos dentro de pacotes IP, eles podem chegar fora de ordem na máquina de destino. Para resolver esse problema, o TCP numera os pacotes que transmite e insere o número de cada pacote em um campo no seu cabeçalho. Desse modo, a máquina de destino pode colocar os pacotes na ordem antes de passá-los para a camada de aplicação.
Suponha que a máquina A transmitiu os pacotes 1, 2 e 3 para a máquina B, mas eles chegaram à máquina B na ordem 1, 3 e 2. Ao receber o pacote 1, o TCP o entrega para a camada de aplicação. Depois disso, ele recebe o pacote 3, mas como ainda não recebeu o pacote de número 2, ele guarda o pacote 3 em um buffer até que receba o pacote 2. Quando isso acontecer ele entrega o pacote 2 e o pacote 3 para a camada de aplicação, nessa ordem.
Embora tenhamos dito que o campo do cabeçalho TCP para identificar os pacotes numera cada pacote (pacote 1, pacote 2, etc.), na verdade, ele indica, contando com o primeiro byte do pacote, quantos bytes já foram transmitidos. Desse modo, se desde o início da conexão já tiverem sido transmitidos 5000 bytes de A para B, o próximo pacote que A transmitir terá como “número do pacote” 5001. Apesar dessa diferença, a forma de usar este valor é a mesma como ele realmente fosse o número do pacote. Além disso, cada máquina mantém o seu contador, pois o número de bytes transmitidos em cada sentido da conexão normalmente é diferente. Iremos continuar nos referindo a ele como número do pacote porque deixa o texto muito mais simples, e conceitualmente é a mesma coisa – a diferença diz respeito apenas a forma como a ideia é implementada.
Veja aqui a explicação, em vídeo, sobre o ordenamento dos pacotes TCP
Versão 5.3 - Todos os Direitos reservados