Cursos / Redes de Computadores / Redes de Computadores I / Aula

arrow_back Aula 13 - Protocolo TCP

Formato do pacote

A Figura 4 mostra o formato do cabeçalho TCP. Explicaremos apenas os principais campos. Não se preocupe em compreender o significado de todos os campos neste momento, ainda é cedo para isso. Você precisará entender o funcionamento do protocolo para realmente entender o significado de alguns campos. Utilize essa seção como referência, ou seja, ao longo da aula, volte a ela, à medida que estudar cada funcionalidade do protocolo TCP, e veja os campos relacionados a tal funcionalidade.

Os campos SYN, ACK, PSH, RST, SYN e FIN são formados por apenas um bit, podendo ter o valor 0 (zero) ou 1 (um).

Formato do pacote TCP

Porta de Origem: Porta utilizada pela aplicação transmitindo o pacote.

Porta de Destino: Porta que identifica a aplicação para quem o pacote deve ser entregue.

Número de sequência:Número de sequência do pacote que é utilizado nas confirmações dos pacotes recebidos. Na verdade, representa a posição do primeiro byte deste pacote dentro do fluxo de bytes já transmitidos. Se em uma conexão já tivessem sido transmitidos 8499 bytes, o Número de Sequência do próximo pacote seria 8500.

Número de confirmação: Só é válido quando o flag ACK estiver definido e indica o número do byte reconhecido. Suponha que se deseja confirmar um pacote recebido que tinha 9000 no campo Numero de Sequência e possuía 500 bytes, assim, o valor deste campo seria 9501, indicando que os bytes da conexão até o número 9500 já foram recebidos.

Tamanho do cabeçalho: Indica o tamanho do cabeçalho TCP (em número de palavras de 32 bits), ou seja, multiplique o valor do campo por 4 para obter o tamanho do cabeçalho em bytes. É necessário porque podem existir campos opcionais (representados pelo retângulo chamado Opções no formato do pacote TCP da Figura 4).

SYN: Se contém 1, indica que o pacote é um pedido de conexão.

ACK: Se contém 1, indica que é um pacote de confirmação. Se SYN também contém 1, indica que é uma confirmação de um pedido de conexão. Se SYN contém 0, é uma confirmação de dados e o campo Número de Confirmação contém o número do pacote sendo confirmado.

FIN: Pedido de encerramento de conexão.

RST (Reset): Encerrando uma conexão porque algo estranho aconteceu na conexão. Protege contra ataques ou erros. Um pacote contendo esse bit definido também é enviado pelo sistema operacional quando a máquina recebe um pacote de pedido de conexão e não existe nenhuma aplicação escutando na porta indicada.

PSH (Push): Usado pelo remetente para solicitar que os dados sejam entregues à aplicação de destino o mais rápido possível, após o pacote chegar naquela máquina.

URG (Urgent): Indicar que o valor do campo Ponteiro Urgente é válido.

Tamanho da janela: Usado para indicar o tamanho disponível no buffer. Veja a explicação sobre controle de fluxo.

TCP (Checksum): Campo de verificação de erros no cabeçalho TCP. Semelhante ao campo checksum do cabeçalho IP, por exemplo.

Ponteiro Urgente: Usado pela origem para indicar onde se encontra algum dado urgente dentro do segmento.

Opções: O cabeçalho TCP pode conter campos opcionais. O mais utilizado chama-se MSS (Max Segment Size – Tamanho máximo do segmento) e indica qual deve ser o tamanho máximo de cada pacote TCP gerado pela máquina para tentar evitar os pacotes IP que vão conter os segmentos fragmentados. O valor colocado neste campo é baseado no tamanho da parte de dados da camada de enlace da máquina gerando o pacote.

Dados: Não é um campo do cabeçalho! Ele apenas indica que após o cabeçalho TCP o pacote contém a mensagem recebida da camada de aplicação.

Versão 5.3 - Todos os Direitos reservados