Camada de Transporte: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Linha 47: Linha 47:
;Cabeçalho do protocolo UDP:
;Cabeçalho do protocolo UDP:
[[Arquivo:PacoteUDP.png]]
[[Arquivo:PacoteUDP.png]]
===Checksum===
Permite a '''detecção de erros''' nos dados transmitidos. Para isto, o emissor UDP faz o complemento de 1 da soma de todos as palavras de 16 bits do pacote e coloca o resultado no campo ''cheksum''.
Por exemplo, suponha que temos três palavras de 16 bits sendo transmitidas:
  0110011001100110
  0101010101010101
  0000111100001111
A soma será
  0110011001100110
  0101010101010101
+________________
  1011101110111011
Adicionando a terceira palavra a esta soma
  1011101110111011
  0000111100001111
+________________
  1100101011001010
O '''complemento de 1''' é obtido invertendo cada bit 1 por 0 e vice-versa. Desta forma o complemento da soma será '''0011010100110101''', o qual será o cheksum. No lado do receptor UDP, todas as palavras de 16 bits recebidas são adicionadas, incluindo o cheksum. Se não houve erros na transmissão, a soma será '''1111111111111111'''. Se um dos bits for 0, então é sabido que houve erros.


----
----

Edição das 18h51min de 6 de maio de 2014

Protocolos de Transporte da Internet

Os Protocolos de Transporte da Internet estão situados entre a camada aplicação e a camada rede da Arquitetura Internet e tem a função de prover um canal de comunicação lógico fim-a-fim entre os processos de aplicação rodando em diferentes computadores.

Os dois Protocolos de Transporte da Internet são o TCP e o UDP:

  • TCP
    Oferece um serviço orientado a conexão, com transmissão de dados garantida ou livre de erros.
    UDP
    Oferece um serviço não orientado a conexão, com transmissão de dados tipo melhor esforço, portanto sujeita a erros.

Multiplexação de aplicações através de portas

A camada rede e o protocolo IP são responsáveis por entregar datagramas, ou pacotes IP, de um host a outro host, identificados pelos endereços IP origem e destino.

Como em cada host podem haver vários processos de aplicação rodando, a camada transporte, com os protocolos TCP e UDP, são responsáveis por entregar pacotes, chamados segmentos, de um processo rodando em um host origem a outro processo rodando no host destino, identificados pelos números de porta origem e destino.

Exemplo 1
Cliente e servidor HTTP
Um servidor de aplicações espera conexões em portas bem conhecidas. Por exemplo, um servidor Web utiliza a porta 80 para aceitar conexões. Quando um navegador Web inicia uma seção, ele envia ao servidor um segmento TCP com porta destino 80 e coloca como número de porta origem uma porta que não esteja sendo utilizada no host cliente, por exemplo, a porta 18123. A porta 18123 será onde o cliente vai esperar a resposta do servidor. Quando o servidor recebe o segmento, ele verifica que o mesmo é endereçado a porta 80 e então sabe que se trata da aplicação Web. No envio da resposta o servidor inverte as portas origem e destino. Enviando ao cliente um segmento com porta destino 18123 e origem 80.
Portas reservadas e portas de uso geral
Definidas na RFC 1700.
  • Portas de 0 a 1023: Portas reservadas, utilizadas pela aplicações bem conhecidas.
  • Portas de 1024 a 65535: Portas de uso geral.

Algumas portas reservadas:

13  TCP daytime  Daytime 
13  UDP daytime  Daytime 
20  TCP ftp-data File Transfer [Default Data]
21  TCP ftp File Transfer [Control] 
22  TCP ssh      SSH Remote Login Protocol
23  TCP telnet   Telnet
25  TCP smtp     Simple Mail Transfer
53  UDP domain   Domain Name Server
80  TCP www-http World Wide Web HTTP
110 TCP pop3     Post Office Protocol - Ver 3
443 TCP https    http protocol over TLS/SSL
Exemplo 2
Três clientes e um servidor Web
No host A temos dois processos cliente Web acessando o servidor C (porta 80), cada um identificado por uma porta origem (1028 e 1029, respectivamente). No host B temos outro processo cliente (porta 1155) está acessando o servidor C (porta 80). O servidor encaminha as respostas ao cliente identificando o IP e a porta correspondente.

Protocolo UDP

O protocolo UDP provê um serviço de transporte não orientado a conexão, ou melhor esforço.

Além das informações do IP origem e IP destino e outras informações da camada rede, cada pacote entregue pelo UDP acrescenta a identificação da porta origem e porta destino e um um campo de checksum que implementa um mecanismo de detecção de erros.

Cabeçalho do protocolo UDP

Checksum

Permite a detecção de erros nos dados transmitidos. Para isto, o emissor UDP faz o complemento de 1 da soma de todos as palavras de 16 bits do pacote e coloca o resultado no campo cheksum.

Por exemplo, suponha que temos três palavras de 16 bits sendo transmitidas:

 0110011001100110
 0101010101010101
 0000111100001111

A soma será

 0110011001100110
 0101010101010101
+________________
 1011101110111011

Adicionando a terceira palavra a esta soma

 1011101110111011
 0000111100001111
+________________
 1100101011001010

O complemento de 1 é obtido invertendo cada bit 1 por 0 e vice-versa. Desta forma o complemento da soma será 0011010100110101, o qual será o cheksum. No lado do receptor UDP, todas as palavras de 16 bits recebidas são adicionadas, incluindo o cheksum. Se não houve erros na transmissão, a soma será 1111111111111111. Se um dos bits for 0, então é sabido que houve erros.


Autoria
Evandro Cantú / IFPR - Câmpus Foz do Iguaçu