TCP / UDP
TCP
•
Definição:
TCP (que
significa Transmission Control Protocol, em português: Protocolo de
Controle de Transmissão) é um dos principais protocolos da camada de transporte
do modelo TCP/IP. Ele permite, a nível das aplicações, gerir os dados em
proveniência da (ou com destino à) camada inferior do modelo (ou seja, o
protocolo IP). Quando os dados são 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
conexão, isto é, ele permite a duas máquinas comunicantes, controlar o estado
da transmissão.
UDP
•
Definição:
UDP
(User Datagram Protocol – Protocolo de Datagrama do Usuário) é um protocolo
mais rápido do que o TCP, pelo fato de não verificar o reconhecimento das
mensagens enviadas. Por este mesmo motivo, não é confiável como o TCP. O
protocolo é não-orientado à conexão, e não provê muitas funções: não controla o
fluxo, podendo os datagramas chegar fora de seqüência ou até mesmo não chegar
ao destinatário. Contém identificação das portas de origem e destino, iguais às
do TCP. Também contém os campos tamanho (UDP length) e soma de verificação (UDP
checksum), sendo que os datagramas que não consistem estes campos, ao chegar no
destino, são descartados, cabendo à camada de aplicação recuperá-los.
•
Finalidades:
•
TCP
entrega ordenadamente os datagramas provenientes do protocolo IP: Isto é, garantir que os pacotes sejam
entregues sem alterações, sem terem sido corrompidos e na ordem correta. O TCP
tem uma série de mecanismos para garantir esta entrega;
•
TCP
verifica a onda de dados para evitar uma saturação da rede;
•
TCP
formata os dados em segmentos de comprimento variável para
"entregá-los" ao protocolo IP
•
TCP
permite o multiplex dos dados, quer dizer, faz circular, simultaneamente, as
informações que proveem de fontes (aplicações, por exemplo) distintas numa
mesma linha
•
O
UDP possui basicamente as mesmas funções, porém ele não é orientado a conexão e
por isso não faz o controle de fluxo, erro e nem de sequenciamento.
•
Camadas
Transporte
A
camada de transporte é a camada responsável pela transferência eficiente,
confiável e econômica dos dados entre a máquina de origem e a máquina de
destino, independente do tipo, topologia ou configuração das redes físicas
existentes entre elas, garantindo ainda que os dados cheguem sem erros e na
sequência correta.
•
Portas
Porta de Origem e
Porta de Destino: Contém os números das portas TCP definidos para programas aplicativos.
Uma porta e o endereço IP de seu host formam um único ponto terminal de 48
bits, que vai identificar a conexão;
•
Portas de 0 a
1023: reservadas para aplicações de domínio público;
•
Portas de 1024 a
49151: reservadas para aplicações comerciais registradas;
•
Portas de 49152
a 65535: portas dinâmicas ou privadas.
O acesso das aplicações à camada de transporte é feito
através de portas que recebem um número inteiro para cada tipo de aplicação,
podendo também tais portas serem criadas à medida que novas necessidades vão
surgindo com o desenvolvimento de novas aplicações. As portas mais comumente
utilizadas tem números pré-definidos e são chamadas de portas-bem-conhecidas, como mostrado na tabela abaixo:
Formato dos dados em TCP:
Formato dos dados em TCP:
Campos:
Porta Fonte (16 bits): Porta relativa à aplicação corrente na máquina fonte
Porta de Destino (16 bits): Porta relativa à aplicação corrente na máquina de destino
Número de ordem (32 bits): Quando a bandeira SYN é 0, o número de ordem é o da primeira palavra do segmento corrente.
Quando SYN é 1, o número de ordem é igual ao número de ordem inicial utilizado para sincronizar os números de sequência (ISN)
Número de aviso de recepção (32 bits): O número de aviso de recepção, igualmente chamado número de pagamento, corresponde ao número (de ordem) do próximo segmento esperado, e não o número do último segmento recebido.
Defasagem dos dados (4 bits) : localiza o início dos dados no pacote. A defasagem é essencial aqui porque o campo de opções é de dimensão variável.
Reservada(6 bits): Campo inutilizado atualmente, mas previsto para o futuro.
As bandeiras(flags) (6x1 bit): representam informações 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 recepção.
- PSH (PUSH): se esta bandeira estiver em 1, o pacote funciona de acordo com o método PUSH.
- RST: se esta bandeira estiver em 1, a conexão é reiniciada.
- SYN: A Bandeira TCP SYN indica um pedido de estabelecimento de conexão.
- FIM: se esta bandeira estiver em 1, a conexão é interrompida.
Soma de controle: (Checksum ou CRC) : A soma de controle é realizada fazendo a soma dos campos de dados do cabeçalho, para poder verificar a integridade do cabeçalho.
Ponteiro de emergência (16 bits): Indica o número de ordem a partir do qual a informação se torna urgente.
Opções (Dimensão variável): Opções diversas
Preenchimento: Preenche-se o espaço que fica após as opções com zeros, para ter um comprimento múltiplo de 32 bit.
Formato de dados UDP:
- Porta Fonte : trata-se do número de porta que corresponde à aplicação emissora do segmento UDP. Este campo representa um endereço de resposta para o destinatário. Assim, este campo é opcional, isto significa que se não se precisar a porta fonte, as 16 bits deste campo serão postas a zero, neste caso o destinatário não poderá responder (isto não é necessariamente necessário, nomeadamente para mensagens unidirecionais.
- Porta Destino : Este campo contém a porta que corresponde à aplicação da máquina destinatário à qual nos dirigimos.
- Comprimento : Este campo precisa o comprimento total do segmento, incluindo o cabeçalho, ora o cabeçalho tem um comprimento de 4 x 16 bits (são 8 x 8 bits), então o campo comprimento é necessariamente superior ou igual a 8 bytes.
- Soma de controlo : Trata-se de uma soma de controlo realizada de maneira a poder controlar a integridade do segmento.
Referências:
0 comentários :
Observação: somente um membro deste blog pode postar um comentário.