Redes de
Computadores I
Prof. Mateus Raeder
Universidade do Vale do Rio dos Sinos
- São Leopoldo -
Camada de Transporte
• É responsável pela transmissão lógica dos
dados
– A camada de enlace é responsável pela
transmissão física
• Dois tipos de transmissão:
– Orientado a conexão
• TCP – Transmission Control Protocol
– Não orientado a conexão
• UDP – User Datagram Protocol
Redes de Computadores I – Prof. Mateus Raeder
Camada de Transporte
• O transporte dos dados pode ser tratado na
camada de enlace
– Entretanto, o transporte trabalha com a pior
hipótese (enlace não controlar o transporte)
– Isto, então, é tratado logicamente na Camada
de Transporte
• Na camada de Rede (abaixo do
Transporte), sabe-se apenas o host destino
– Sem distinções entre qual aplicação receberá
Redes de Computadores I – Prof. Mateus Raeder
Camada de Transporte
• TCP e UDP acrescentam um mecanismo
que escolhe diferentes “locais de entrega”
em um host
– Porta
• Vários aplicativos enviam e recebem
mensagens individualmente
• Necessário, pois os Sistemas Operacionais
geralmente são multitarefa
– Várias tarefas ao mesmo tempo
Redes de Computadores I – Prof. Mateus Raeder
Camada de Transporte
• Portas identificam os diferentes processos
sendo executados
– São definidas como um número inteiro positivo
– Processos que utilizam a rede utilizam
determinada porta para comunicação
• Um processo transmissor precisa conhecer
não somente o endereço IP do destino, mas
também a porta a ser utilizada
– Identifica host e aplicação
Redes de Computadores I – Prof. Mateus Raeder
Camada de Transporte
• Além da identificação do destino, a porta
de origem deve ser enviada também
– Assim, o processo receptor pode responder a
mensagem ao processo origem
Origem
Destino
198.12.3.11:27789
200.19.10.1:16784
198.12.3.11:27789
200.19.10.1:16784
Identifica a conexão, permitindo
Várias conexões entre Origem e Destino
Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol)
• Protocolo do nível de transporte
• Entrega de mensagens sem conexão
– Não confiável
• O UDP também permite a distinção entre os
vários processos (aplicativos) nos hosts
• Uma mensagem UDP carrega dados, porta
de destino e porta de origem
• Mensagens UDP são Datagramas
Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol)
• Aplicações que utilizam UDP são totalmente
responsáveis por lidar com confiabilidade
–
–
–
–
–
Perda de mensagens
Duplicação de mensagens
Retardo de mensagens
Erros de transmissão
Erros de conexão
Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol)
0
31
16
Porta Origem
Porta Destino
Tamanho
Checksum
Dados
• Datagrama UDP possui 2 partes
– Cabeçalho
– Dados
Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol)
0
31
16
Porta Origem
Porta Destino
Tamanho
Checksum
Dados
• Portas Origem e Destino
– Número de 16 bts, utilizado para entregar os
datagramas entre os programas
Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol)
0
31
16
Porta Origem
Porta Destino
Tamanho
Checksum
Dados
• Tamanho
– Tamanho total incluindo cabeçalho e dados
– Contagem de octetos (valor mínimo é 8)
Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol)
0
31
16
Porta Origem
Porta Destino
Tamanho
Checksum
Dados
• Checksum
– Soma de verificação
– Verifica se o Datagrama UDP está correto
VERIFICA mas não RECUPERA erros
Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol)
• Checksum
– Campo opcional
• Preenchido com zeros no caso de não ser usado
• Mínimo overhead possível
– Unicamente para verificar se os dados
chegaram intactos e possam ser usados
– Para realizar o Checksum, o UDP utiliza mais
informações do que existem no seu cabeçalho
– Adiciona-se um pseudocabeçalho ao
datagrama
Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol)
• Checksum
– O pseudocabeçalho é criado com o IP origem e
destino e o campo protocolo
• De onde vem estas informações?
– Do datagrama IP, e não do UDP
– O Tamanho é o único campo extraído do UDP
0
31
16
IP Origem
IP Destino
00000000 (zeros)
Protocol
Tamanho
Pseudoheader
Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol)
• Checksum
– Acrescenta um octeto de zeros para preencher,
fazendo-o um múltiplo de 16 bits
– A soma de verificação é calculada com todo o
objeto
– IMPORTANTE: pseudoheader não percorre a rede
0
31
16
IP Origem
IP Destino
00000000 (zeros)
Protocol
Tamanho
Pseudoheader
Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol)
• Checksum
– Remetente
• O remetente calcula a soma dos valores contidos nos
campos
• Realiza complemento de 1 no resultado
• Coloca no campo checksum da mensagem
– Destino
• Cria o pseudocabeçalho
• Realiza o mesmo cálculo do remetente
• Soma o resultado ao checksum
Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol)
• Checksum
– Se o resultado for 0, não houve erros na
mensagem
– Checksum é opcional
• Coloca-se 0 quando não deseja
– E se o checksum no remetente resultar em 0?
• Neste caso, todos os bits do checksum são marcados
em 1
Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol)
0
31
16
Porta Origem
Porta Destino
Tamanho
Checksum
Dados
• Dados
– Dados do usuário
– O que será entregue para a Camada de Aplicação
Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol)
• Encapsulamento
Cabeçalho
Ethernet
Cabeçalho
UDP
Dados
Cabeçalho
IP
Cabeçalho
UDP
Dados
Cabeçalho
IP
Cabeçalho
UDP
Dados
Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol)
• Multiplexação e demultiplexação
– Multiplexar: dados que saem da Camada de
Aplicação e passam para a Camada de Transporte
• Acrescentar informações
– Demultiplexar: dados que saem da Camada de
Transporte e passam para a Camada de Aplicação
• Retirar informações
– Baseados nas portas definidas na comunicação
• No destino, UDP aceita as mensagens da Camada de
Rede e desmultiplexa com base na porta destino do UDP
Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol)
• Multiplexação e demultiplexação
– UDP recebe um datagrama
– Verifica se a porta de destino combina com
alguma das que podem ser utilizadas
– Caso não haja, envia uma mensagem de erro ICMP
de porta inalcançável (port unreacheable),
descartando o datagrama
– Se encontra a combinação informada, enfileira na
porta da aplicação
• Fila cheia: mensagem descartada
Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol)
• Multiplexação e demultiplexação
Porta X
Porta Y
Porta Z
Porta W
UDP: realiza a
demultiplexação de
acordo com a porta
Camada de Rede
Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol)
• UDP não realiza diversas ações
–
–
–
–
Controle de fluxo
Controle de erros
Retransmissão de mensagens incorretas
Sequenciamento de mensagens
• Fornece apenas a principal tarefa dos
protocolos de transporte
– Entrega dos dados na Camada de Aplicação
Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol)
• Trata-se de um protocolo simples
– Implementação
– Utilização
• Aplicações de tempo real (como Voz sobre IP
(VoIP), por exemplo) necessitam desta
simplicidade
• Deve ser utilizado em aplicações que não
requerem segurança nos dados
– Velocidade e simplicidade
Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol)
• Desvantagens
– Não confirma a entrega dos dados
– Não ordena os dados enviados
– Os erros devem ser tratados na aplicação
• Vantagens
– Facilidade de implementação e utilização
– Menos overhead na rede
• Sem mensagens de controle
Redes de Computadores I – Prof. Mateus Raeder
TCP (Transmission Control Protocol)
• O protocolo TCP implementa a funcionalidade
não implementada no UDP
– Orientação a conexão
– Trata-se, então, de uma implementação mais
complexa
• O protocolo TCP tem o objetivo de sanar os
erros de envio das camadas mais baixas
– Todas entregando pacotes de forma não confiável
Redes de Computadores I – Prof. Mateus Raeder
TCP (Transmission Control Protocol)
• As aplicações inúmeras vezes necessitam
enviar grandes volumes de dados entre si
• Sistemas não confiáveis e não orientados a
conexão
– Trazem tarefas nem sempre desejáveis aos
programadores, pois eles são os que precisam
controlar os erros que vão ocorrer
• O TCP realiza estes controles para os
aplicativos
Redes de Computadores I – Prof. Mateus Raeder
TCP (Transmission Control Protocol)
• Quatro características
– Orientação de streams
• Dados são considerados streams (fluxo) de bits
• O receptor recebe a mesma sequência de bytes que o
remetente enviou
– Circuito virtual:
• Como uma chamada telefônica (chamada/aceita)
• A comunicação deve ser autorizada
• Durante transferência, protocolos continuam se
comunicando para eventuais erros
Redes de Computadores I – Prof. Mateus Raeder
TCP (Transmission Control Protocol)
• Quatro características
– Transmissão bufferizada:
• Programas enviam streams de dados através do circuito
virtual
• Repassam diversos octetos para o protocolo
• Cada aplicativo pode enviar a quantidade de dados que
achar necessário
• O protocolo, então, entrega estes octetos na mesma
ordem que recebeu
• O protocolo pode, então, dividir o stream de dados em
quantas partes ele desejar
Redes de Computadores I – Prof. Mateus Raeder
TCP (Transmission Control Protocol)
• Quatro características
– Transmissão bufferizada (cont.):
• Quanto mais dados houver no datagrama, mais eficaz e
com menos tráfego na rede será a comunicação
• Se a aplicação gerar blocos muito extensos, o protocolo
pode dividir em pequenas partes para transmissão
– Conexão full duplex
• Permitem transferência de dados nas duas direções
– De A  B e de B  A
Redes de Computadores I – Prof. Mateus Raeder
TCP (Transmission Control Protocol)
• O TCP garante os fluxos de uma máquina para
a outra sem duplicação e sem perda de
dados
• Utiliza-se a técnica conhecida como
Confirmação Positiva com Retransmissão
– Positive Acknowledgement with Retransmition
• Esta técnica requer que um destinatário envia
uma mensagem de confirmação (ACK)
Redes de Computadores I – Prof. Mateus Raeder
TCP (Transmission Control Protocol)
• O remetente mantém registro de cada
pacote enviado
– aguarda confirmação para enviar o próximo
pacote
• Quando envia um pacote, dispara um timer
– Retransmite o pacote quando o timer expira sem
um ACK retornado
Redes de Computadores I – Prof. Mateus Raeder
TCP (Transmission Control Protocol)
• Envio sem problemas na transmissão
Origem
Envio do pacote 1
Destino
Recebe pacote 1
Envio do ACK 1
Recebe ACK 1
Envio do pacote 2
Recebe pacote 2
Envio do ACK 2
Recebe ACK 2
Redes de Computadores I – Prof. Mateus Raeder
TCP (Transmission Control Protocol)
• Envio com problemas na transmissão
Origem
Destino
Envio do pacote 1
Início timer
Fim do timer
Retransmite pacote 1
Recebe pacote 1
Envio do ACK 1
Recebe ACK 1
Redes de Computadores I – Prof. Mateus Raeder
Download

Prof. Mateus Raeder