TCP – Transmission Control Protocol

 

Protocolos

 

Os dois protocolos da Camada de Transporte são:

 

TCP – Transmission Control Protocol: orientado a conexão (connection-oriented).

 

UDP – User Datagram Protocol: não orientado a conexão (connectionless).

 

 

 

TCP – Transmission Control Protocol

 

A principal função do protocolo TCP é prover serviços orientados a conexão às camadas superiores.

 

Todas as funções de controle de erro, fluxo ou seqüência não realizados pelas camadas inferiores tem aqui lugar, e não serão executados em nenhuma camada superior.

 

Ele trabalha end-to-end, ou seja, atua nas entidades que estão se comunicando. Os roteadores não têm funções da camada de transporte.

 

O TCP é encapsulado no protocolo IP.

 

Vários serviços dependem do TCP e são encapsulados por ele, como o HTTP, FTP, WWW, etc, como ilustrado abaixo:

 

 

 

Cabeçalho TCP (RFC 793)

 

 

Representação da RFC

 

Arquivo de trace

 

Source e Destination Ports

 

·         Servem para identificar qual o serviço que está sendo acessado e qual o serviço que está solicitando o acesso, respectivamente;

 

·         Os números são determinados pelo IANA, e anexo há uma lista parcial.

 

·         Os valores das portas são divididos nos seguintes grupos;

Faixa de Endereços

Denominação

Uso

0 – 1023

“Well-Known”

Reservado; não disponíveis

1024 – 49151

Registrados

Requerem registro junto ao IANA

49152 – 65535

Dinâmicos ou privados

Podem ser usados em qualquer tempo

Alguns exemplos de portas importantes estão indicadas abaixo. A RFC 1700 estabeleceu os valores até 1994, quando, conforme a RCF 3232, ela foi substituída por uma base de dados online, a ser mantida pela IANA.

 

Porta

Função

20

FTP – Dados

21

FTP – Comandos

23

TELNET

25

SMTP

53

DNS

80/443

HTTP/HTTPS

110

POP3

123

NTP

 

 

Sequence, Acknoledgement Numbers e Code Bits

 

Estes valores servem para estabelecer e manter uma conexão.

 

O estabelecimento da conexão se dá num processo chamado “three-way handshake”.

 

Como pode ser visto ao lado, três tipo de mensagens estão envolvidas, determinadas pelos code bits respectivos

 

SYN

 

SYNACK

 

ACK

 

Apenas depois desse processo é que a operação de comunicação propriamente será efetuada.

 

 

Os demais code bits, usados em outros processos de comunicação TCP são os seguintes:

 

URG – Urgent Pointer

ACK – Acknowledgement

PSH – Push Data

RST – Reset the connection

SYN – Synchronize sequence numbers

FIN – Sender has reached end of byte stream

 

A seqüência ao lado ilustra o funcionamento dos números desde o three-way handshake e durante o desenvolvimento da comunicação.

 

Acompanhe o desenvolvimento da conexão, junto com o arquivo de trace.

 

Anexo, artigo a respeito do three-way handshake.

 

Representado de outra forma, seque um outro exemplo de negociação, referente ao trace file anexo.

 

 

Data Offset

 

Indica o tamanho do cabeçalho TCP e serve para indicar à aplicação onde começam os dados, devido ao campo Options.

 

Window

 

Indica o número de octetos que o destinatário está aguardando para receber, iniciando com o octeto ACK

 

 

O TCP usa a tecnologia de Sliding Window (Janela Deslizante) para controlar o fluxo.

 

O termo “Janela” refere-se à quantidade de bytes que o destinatário está apto para receber. As duas figuras abaixo ilustram o processo de envio dos pacotes, ao passo que janela “desliza”.

 

 

Checksum

 

Valor usado para verificar se houve corrupção ou do cabeçalho ou dos dados.

 

Urgent Pointer

 

Quando o code bit URG está ativo, o campo Urgent Pointer indica o ponto até o qual a mensagem é urgente; o uso deste campo dependo do sistema operacional e aplicação.

 

 

 

 

Referência

 

TCP Tutorial - http://www.auggy.mlnet.com/ibm/3376c212.html#tcp