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 |
|
||||||||||||||||||||||||||
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; |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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.
|
|||||||||||||||||||||||||||
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
|
|||||||||||||||||||||||||||