Sie sind auf Seite 1von 4

O protocolo TCP

Junho 2014

As caractersticas do protocolo TCP


O TCP (que significa Transmission Control Protocol, em portugus: Protocolo de Controle de Transmisso) um dos principais
protocolos da camada de transporte do modelo TCP/IP. Ele permite, a nvel das aplicaes, gerir os dados em provenincia da (ou
com destino ) camada inferior do modelo (ou seja, o protocolo IP). Quando os dados so fornecidos ao protocolo IP, este
encapsula-os em datagramas IP, fixando o campo protocolo em 6 (para saber que o protocolo ascendente o TCP...). O TCP um
protocolo orientado para a conexo, isto , ele permite a duas mquinas comunicantes, controlar o estado da transmisso.
As principais caractersticas do protocolo TCP so:
TCP entrega ordenadamente os datagramas provenientes do protocolo IP
TCP verifica a onda de dados para evitar uma saturao da rede
TCP formata os dados em segmentos de comprimento varivel para "entreg-los" ao protocolo IP
TCP permite o multiplex dos dados, quer dizer, faz circular, simultaneamente, as informaes que proveem de fontes
(aplicaes, por exemplo) distintas numa mesma linha
TCP permite a incio e o fim de uma comunicao de maneira educada.

O objectivo do TCP
Graas ao protocolo TCP, as aplicaes podem comunicar de forma segura (graas ao sistema de avisos de recepo do protocolo
TCP), independentemente das camadas inferiores. Isto significa que os roteadores (que trabalham na camada Internet) teem como
nico papel o encaminhamento dos dados sob a forma de datagramas, sem se preocuparem com o controle dos dados, porque este
realizado pela camada de transporte (mais concretamente pelo protocolo TCP).
Durante uma comunicao atravs do protocolo TCP, as duas mquinas devem estabelecer uma conexo. A mquina emissora (a
que pede a conexo) chama-se cliente, enquanto a mquina receptora se chama servidor. Diz-se ento que estamos num ambiente
Cliente-Servidor.
As mquinas em tal ambiente comunicam em modo ligado, ou seja, que a comunicao feita nos dois sentidos.
Para permitir o bom desenrolar da comunicao e de todos os controles que a acompanham, os dados so encapsulados, isto ,
juntamos ao pacote de dados um cabealho que vai sincronizar as transmisses e assegurar a sua recepo.
Outra particularidade do TCP poder controlar o dbito dos dados graas sua capacidade para emitir mensagens de dimenso
varivel: estas mensagens so chamadas de "segmentos".

A funo multiplex
O TCP permite efetuar uma tarefa importante: multiplex/desmultiplex, quer dizer, fazer transitar numa mesma linha dados que
proveem de aplicaes diversas ou, em outras palavras, pr em srie informaes que chegam em paralelo.

|180px|]
Estas operaes so realizadas graas ao conceito de portas (ou sockets), ou seja, um nmero associado a um tipo de aplicao
que, combinada com um endereo IP, determina, de maneira nica, uma aplicao que roda numa dada mquina.

O formato dos dados em TCP

Um segmento TCP constitudo do seguinte modo:

0 1 2 3 4 5 6 7 8 9 10

11

12

Porta Fonte

13

14

15

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Porta de destino

Nmero de ordem
Nmero de aviso de recepo
Defasagem
reservada
dados

URG ACK PSH RST SYN FIN Janela

Soma de controle
Opes

Ponteiro de emergncia
Preenchimento

Dados
Significado dos diferentes campos:
Porta Fonte (16 bits): Porta relativa aplicao corrente na mquina fonte
Porta de Destino (16 bits): Porta relativa aplicao corrente na mquina de destino
Nmero de ordem (32 bits): Quando a bandeira SYN 0, o nmero de ordem o da primeira palavra do segmento corrente.
Quando SYN 1, o nmero de ordem igual ao nmero de ordem inicial utilizado para sincronizar os nmeros de sequncia (ISN)
Nmero de aviso de recepo (32 bits): O nmero de aviso de recepo, igualmente chamado nmero de pagamento,
corresponde ao nmero (de ordem) do prximo segmento esperado, e no o nmero do ltimo segmento recebido.
Defasagem dos dados (4 bits) : localiza o incio dos dados no pacote. A defasagem essencial aqui porque o campo de
opes de dimenso varivel
Reservada(6 bits): Campo inutilizado atualmente, mas previsto para o futuro
As bandeiras(flags) (6x1 bit): representam informaes suplementares:
URG: se esta bandeira estiver em 1 o pacote deve ser tratado urgentemente.
ACK: se esta bandeira estiver em 1 o pacote um aviso de recepo.
PSH (PUSH): se esta bandeira estiver em 1, o pacote funciona de acordo com o mtodo PUSH.
RST: se esta bandeira estiver em 1, a conexo reiniciada.
SYN: A Bandeira TCP SYN indica um pedido de estabelecimento de conexo.
FIM: se esta bandeira estiver em 1, a conexo interrompida.
Janela (16 bits): Campo permitindo conhecer o nmero de bytes que o receptor quer receber, sem aviso de recepo.
Soma de controle: (Checksum ou CRC) : A soma de controle realizada fazendo a soma dos campos de dados do
cabealho, para poder verificar a integridade do cabealho.
Ponteiro de emergncia (16 bits): Indica o nmero de ordem a partir do qual a informao se torna urgente.
Opes (Dimenso varivel): Opes diversas
Preenchimento: Preenche-se o espao que fica aps as opes com zeros, para ter um comprimento mltiplo de 32 bits

Fiabilidade das transferncias


O protocolo TCP assegura a transferncia dos dados de maneira fivel, embora utilize o protocolo IP, que no integra nenhum
controle de entrega de datagrama.
Na realidade, o protocolo TCP possui um sistema de aviso de recepo que permite ao cliente e ao servidor terem a certeza da
recepo, correcta e mtua, dos dados.
Durante a emisso de um segmento, um nmero de ordem (tambm chamado de nmero de sequncia) associado. Na
recepo de um segmento de dado, a mquina receptora vai devolver um segmento de dado cuja bandeira ACK 1 (para assinalar
que se trata de um aviso de recepo), acompanhado de um nmero de aviso de recepo igual ao nmero de ordem precedente.

Alm disso, graas a um cronmetro desencadeado a partir da recepo de um segmento na mquina emissora, o segmento
reenviado assim que o tempo fixado esgotar, porque, neste caso, a mquina emissora considera que o segmento se perdeu...

Contudo, se o segmento no se perder e chegar ao destino mesmo assim , a mquina receptora saber, graas ao nmero de
ordem, que se trata de uma cpia e conservar apenas o ltimo segmento a chegar ao destino...

Estabelecimento de uma ligao


J que este processo de comunicao, feito graas a uma emisso de dados e a um aviso de recepo, se baseia em um nmero
de ordem (geralmente chamado nmero de sequncia), necessrio que as mquinas emissoras e receptoras (cliente e servidor)
conheam o nmero de ordem inicial da outra mquina.
Frequentemente, o estabelecimento da ligao entre duas aplicaes feito de acordo com o seguinte esquema :
As portas TCP devem estar abertas
A aplicao no servidor passiva,ou seja, a aplicao est escuta, espera de uma conexo.
A aplicao no cliente faz um pedido de conexo ao servidor cuja aplicao est em abertura passiva. Diz-se que a aplicao
do cliente est "em abertura ativa"
Ento, as duas mquinas devero sincronizar as suas sequncias graas a um mecanismo chamado habitualmente three ways
handshake (aperto de mos em trs tempos), que encontramos tambm no encerramento de sesso.
Este dilogo inicia a comunicao e se desenrola em trs tempos, como seu nome indica:
Inicialmente a mquina emissora (o cliente) transmite um segmento cuja bandeira SYN de 1 (para assinalar que se trata de
um segmento de sincronizao), com um nmero de ordem NO., que se chama nmero de ordem inicial do cliente
A seguir, a mquina receptora (o servidor) recebe o segmento inicial que provem do cliente e envia-lhe um aviso de recepo,
isto , um segmento cuja bandeira ACK de 1 e a bandeira SYN de 1 (porque ainda se trata de uma sincronizao). Este
segmento contm o nmero de ordem desta mquina (do servidor), que o nmero de ordem inicial do cliente. O campo mais
importante deste segmento o campo de aviso de recepo, que contm o nmero de ordem inicial do cliente, incrementado
de 1
Por ltimo, o cliente transmite ao servidor um aviso de recepo, ou seja, um segmento cuja bandeira ACK de 1, cuja
bandeira SYN de zero (no se trata mais de um segmento de sincronizao). O seu nmero de ordem incrementado e o
nmero de aviso de recepo representa o nmero de ordem inicial do servidor, incrementado de 1

Depois desta sequncia com trs trocas, as duas mquinas sincronizadas e a comunicao podem comear !
Existe uma tcnica de hacker, chamada spoofing IP, que corrompe esta relao de aprovao , com fins maliciosos!

Mtodo da janela que desliza


Em muitos casos, possvel limitar o nmero de avisos de recepo, a fim de descongestionar a rede, fixando um nmero de
sequncia na extremidade do qual umaviso de recepo um necessrio. Este nmero , na verdade, armazenado no campo
janela do item TCP/IP.
Efetivamente, este mtodo chamado de "mtodo da janela que desliza" porque, de uma certa maneira, definimos um trecho de
sequncias que no teem necessidade de aviso de recepo e, este trecho se desloca medida que os avisos de recepo so
recebidos.

Alm disso, a dimenso desta janela no fixa. Com efeito, o servidor pode incluir nos seus avisos de recepo, armazenando no
campo da janela, a dimenso da janela que lhe parece mais adequada. Assim, quando o aviso de recepo indica um pedido de
aumento da janela, o cliente vai mover a borda direita da janela.

Por outro lado, no caso de uma diminuio, o cliente no vai mover a borda direita da janela para a esquerda, mas esperar que a
borda esquerda avance (com a chegada dos avisos de recepo).

Fim de uma conexo


O cliente pode pedir para terminar uma conexo assim como o servidor.
O fim da conexo feita da seguinte maneira:
Uma das mquinas envia um segmento com a bandeira FIM em 1 e a aplicao posta em estado de espera de fim, ou seja,
ela acaba de receber o segmento em curso e ignora os seguintes.
Depois da recepo deste segmento, a outra mquina envia um aviso de recepo com a bandeira FIM em 1 e continua a
expedir os segmentos em curso. Depois disso, a mquina informa aplicao que um segmento FIM foi recebido, e envia um
segmento FIM para outra mquina, que encerra a conexo...

Mais informaes
Para mais informaes sobre o protocolo TCP, o melhor se referir ao RFC 793, que explica de maneira detalhada o protocolo :
RFC 793 original
TCP protocol Protocolo TCP Das TCP Protokoll Le protocole TCP Il protocollo TCP
Este documento, intitulado O protocolo TCP a partir de Kioskea (pt.kioskea.net) est disponibilizado sob a licena Creative Commons. Voc pode copiar,
modificar cpias desta pgina, nas condies estipuladas pela licena, como esta nota aparece claramente.

Das könnte Ihnen auch gefallen