Trabalho de Segmento do TCP
A unidade de transferência entre o software TCP de duas máquinas é chamado um segmento. Os segmentos são trocados para estabelecer conexões, transferir dados, enviar reconhecimentos e fechar conexões. Dado que TCP usa a técnica de Piggybacking, um reconhecimento viajando de uma máquina A a B pode ir no mesmo segmento de dados que estão sendo enviados de A a B, embora o reconhecimento refere-se a dados enviados da máquina B a A.
O formato do segmento TCP é o seguinte:
O cabeçalho de segmento do TCP
A Figura 3 mostra o layout de um segmento TCP. Cada segmento começa com um cabeçalho de formato fixo de 20 bytes. O cabeçalho fixo pode ser seguido por opções de cabeçalho. Depois das opções, se for o caso, pode haver até 65.535 – 20 – 20 = 65.495 bytes de dados, onde o primeiro valor 20 se refere ao cabeçalho IP e o segundo ao cabeçalho TCP. Segmentos sem quaisquer dados são válidos e são comumente usados para confirmações e mensagens de controle.
Figura 3: O cabeçalho TCP
Analisaremos o cabeçalho TCP campo a campo. Os campos Source port e Destination port identificam os pontos terminais locais da conexão. As portas conhecidas são definidas em www.iana.org, mas cada host pode alocar as outras portas como desejar. Uma porta e o endereço IP de seu host formam um único ponto terminal de 48 bits. Os números dos pontos terminais de origem e de destino identificam a conexão.
Os campos Sequence number e Acknowledgement number desempenham suas funções habituais. Observe que o segundo especifica o próximo byte esperado e não o ultimo byte recebido corretamente. Ambos têm 32 bits, pois cada byte de dados é numerado em um fluxo TCP.
O campo TCP header length informa quantas palavras de 32 bits existem no cabeçalho TCP. Essa informação e necessária, porque o campo Options tem tamanho variável; assim, o mesmo acontece com o cabeçalho. Tecnicamente, na verdade, esse campo indica o inicio dos dados dentro do segmento com