redes de computadores 2 - camada de transporte (princípios de funcionamento & udp & tcp) -
DESCRIPTION
Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -. Paulo Roberto Freire Cunha [email protected]. T E L N E T. H T T P. S M T P. S N M P. F T P. Aplicação do Usuário. UDP. TCP. IP. ARP. PPP. Interface de rede. - PowerPoint PPT PresentationTRANSCRIPT
Redes de Computadores 2
- Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -
Paulo Roberto Freire [email protected]
Redes de Computadores 2 (baseado nos slides do Kurose)
Revisão ...
Camada de Abstração do Hardware
Interface de rede
ARP PPP
IP
UDP TCP
Interface de Sockets
Drivers
FTP
TELNET
DNS
HTTP
SMTP
SNMP
Aplicaçãodo Usuário
processos se comunicam enviando/ recebendo mensagens através de sockets (API)
socket é a interface entre o processo da aplicação e a camada de transporte
um processo identifica o outro processo que ele quer se comunicar através de um endereço IP e uma porta
Camada de Transporte
Redes de Computadores 2 (baseado nos slides do Kurose)
Princípios da Camada de Transporte
funções básicas multiplexação/
demultiplexação
transporte de dados
confiável
controle de fluxo
controle de
congestionamento
Visão Geral serviços da camada de
transporte
transporte sem conexão:
UDP
transporte de dados
confiável
transporte orientado a
conexão: TCP
controle de
congestionamento no TCP
Redes de Computadores 2 (baseado nos slides do Kurose)
Princípios da Camada de Transporte
Camada de Abstração do Hardware
Interface de rede
ARP PPP
IP
UDP TCP
Interface de Sockets
Drivers
FTP
TELNET
DNS
HTTP
SMTP
SNMP
Aplicaçãodo Usuário
CAMADA DE TRANSPORTE
Redes de Computadores 2 (baseado nos slides do Kurose)
Serviços da Camada de Transporte
fornece comunicação entre
aplicações que executam
em hosts separados
os serviços da camada de
rede transferem dados
entre “sistemas finais”
os serviços da camada de
transporte transferem
dados entre “processos”
aplicaçãotransport
redeenlacefísica
aplciaçãotransport
redeenlacefísica
redeenlacefísica
redeenlacefísica
redeenlacefísica
redeenlacefísicanetwork
data linkphysical
Transporte lógico fim-a-fim
Redes de Computadores 2 (baseado nos slides do Kurose)
Serviços de Transporte na Internet
TCP confiável
unicast
ordenado
estabelecimento da
conexão
controle de
congestionamento
controle de fluxo
UDP
não-confiável
unicast / multicast
não-ordenado
Não tem um serviço Multicast confiável,
em tempo real ou
com garantia de largura banda
O projeto de uma aplicação
deve definir que serviço deverá
ser usado.
Redes de Computadores 2 (baseado nos slides do Kurose)
Multiplexação/Demultiplexação
demultiplexação envia segmentos
(unidade de dados
trocada entre
entidades da camada
de transporte) para a
aplicação correta
“executada no
receptor”
multiplexação
coleta dados de
múltiplos processos e
coloca um cabeçalho
“executada no
transmissor”
Redes de Computadores 2 (baseado nos slides do Kurose)
Multiplexação/Demultiplexação
aplicaçãotransporte
rede
M´P2
aplicaçãotransporte
rede
HtHnsegment
segmento Maplicaçãotransporte
rede
P1M
M M´P4
cabeçalhodo segmento
dado da camada de aplicação
Redes de Computadores 2 (baseado nos slides do Kurose)
Multiplexação/Demultiplexação
baseadas no IP e no
número das portas do
transmissor receptor
cada segmento tem o
número da porta da
origem e do destino
portas específicas das
aplicações
porta origem # porta dest. #
32 bits
dados
resto do cabeçalho
Formato do Segmento UDP/TCP
Redes de Computadores 2 (baseado nos slides do Kurose)
Multiplexação/Demultiplexação
são reservados 16 bits para as portas (65536
portas)
0-1023 portas reservadas (RFC 1700)
ftp (20,21)
http (80)
smtp (25)
telnet (23)
> 1023 livres
Redes de Computadores 2 (baseado nos slides do Kurose)
Multiplexação/Demultiplexação
host A servidor Bporta orig.: xporta dest:23
porta orig.:23porta dest: x
telnet
Cliente WEBhost A
Cliente WEBhost C
IP orig: CIP dest: B
porta orig: xporta
dest:80
IP orig: CIP dest: B
porta orig: yport dest: 80
Servidor WEB
IP orig.: AIP Dest: B
porta orig: xporta
dest:80
ServidorWEB B
Redes de Computadores 2 (baseado nos slides do Kurose)
UDP – User Datagram Protocol
RFC 768
tipo de serviço fornecido à
camada de aplicação “melhor esforço”
perda de pacotes
pacotes fora de ordem
“sem-conexão” não há um
estabelecimento inicial
(handshake) da conexão
cada pacote é tratado de
forma independente
benefícios do uso do UDP
o handshake (como no TCP) pode causar atrasos
simplicidade (não mantém o estado da conexão no cliente/servidor)
cabeçalho de dados pequeno (TCP –20)
ausência de controle de congestionamento
Redes de Computadores 2 (baseado nos slides do Kurose)
UDP
aplicações que usam o UDP
multimídia tolerante a perdas sensível a taxa de
transmissão telefonia na Internet
protocolos de aplicação que usam UDP
DNS SNMP RIP
32 bits
Datagrama (max. 516 bytes)
porta orig # porta dest #
dados
length checksum
Redes de Computadores 2 (baseado nos slides do Kurose)
UDP – exemplo 1
paulista goiana
7345 7070
8+12 crc
Hello World
7345 7070
8+12 crc
Hello World
7070 7345
8+12 crc
HELLO WORLD
7070 7345
8+12 crc
HELLO WORLD
Redes de Computadores 2 (baseado nos slides do Kurose)
UDP – exemplo 2 [CLOCK]
paulista goiana
7345 7070
8+5 crc
CLOCK
7345 7070
8+5 crc
CLOCK
7070 7345
8+8 crc
10:45:30
7070 7345
8+8 crc
10:45:30
Redes de Computadores 2 (baseado nos slides do Kurose)
UDP – exemplo 2 [MJVM]
paulista goiana
7345 7070
8+5 crc
MJVM
7345 7070
8+5 crc
MJVM
7070 7345
8+6 crc
304516
7070 7345
8+6 crc
304516
Redes de Computadores 2 (baseado nos slides do Kurose)
Checksum UDP
Transmissor
calcula o checksum
trata todo o datagrama
como seqüência de 16
bits
soma todas as seqüência
calcula o complemento
Receptor soma todas as
seqüências de 16 bits do datagrama
se a soma for 11111111, então OK
se a soma contiver um 0, então ERRO
Objetivo: Detectar erros nos dados transmitidos
Redes de Computadores 2 (baseado nos slides do Kurose)
Checksum UDP
0110011001100110
0101010101010101
0000111100001111
0110011001100110
0101010101010101
10111011101110110000111100001111
+
+
1100101011001010
0011010100110101complemento
checksum
Princípios de Transferência Confiável de Dados
Redes de Computadores 2 (baseado nos slides do Kurose)
Confiabilidade das Camadas
Cam
ad
a d
eTR
AN
SPO
RTE
Cam
ad
a d
eA
PLI
CA
ÇÃ
OR
ED
E
Transmissor Receptor
Canal Confiável
Dado Dado
Serviço Confiável Fornecido
Canal NÃO-Confiável
Protocolo Confiável(emissor)
Protocolo Confiável(receptor)
Dado
udt_send()
rdt_send()
Pacote Pacote rdt_rcv()
deliver_data()Dado
Implementação do Serviço Confiável
As características do canal
Não-Confiável definem a complexidade
do protocolo confiável
Redes de Computadores 2 (baseado nos slides do Kurose)
Princípios de Transferência Confiável de Dados
Transmissorreceptor
udt_send(): chamada por rdt para transferência em um canal não-confiável
rdt_send(): chamada da aplicação
deliver_data(): chamada por rdt para enviar o dado para aplicação
Canal NÃO-Confiável
Protocolo Confiável(emissor)
Protocolo Confiável(receptor)
Dado
udt_send()
rdt_send()
Pacote Pacote rdt_rcv()
deliver_data()Dado
rdt_rcv(): chamado quando o pacote chega ao receptor
Redes de Computadores 2 (baseado nos slides do Kurose)
Protocolos para Transmissão Confiável
rdt 1.0 canal confiável
rdt 2.0 canal não-confiável
(com erros)
perda de bits
uso de ACK/NACK
problema: ACK/NACK
corrompidos
rdt 2.1 canal com erros numeração dos pacotes
(0 ou 1) pacotes são
retransmitidos se o ACK/NACK for corrompido
duplicatas são eliminadas
problema: o receptor não sabe se o ACK/NACK foi recebido
Redes de Computadores 2 (baseado nos slides do Kurose)
Protocolos para Transmissão Confiável
rdt 2.2
canal com erros
não usa o NACK
o ACK segue com o
número do último
pacote transmitido
rdt 3.0 canal com erro e
perdas ack e # do pacote
ajuda, mas não é suficiente
o emissor espera um certo tempo e retransmite o pacote
Redes de Computadores 2 (baseado nos slides do Kurose)
Protocolos com Pipeline
vários pacotes são
transmitidos antes
do receptor
receber um ack de
que a transmissão
foi realizada com
sucesso
exemplos de
protocolos
Go-back-N
Retransmissão
seletiva
Redes de Computadores 2 (baseado nos slides do Kurose)
Protocolos com Pipeline
Go-back-N
usa janelas
pacotes com número de
seqüência
ACK(n): reconhece os pacotes
até n
temporizador para cada pacote
se acontecer um timeout(n),
o pacote n e todos os pacotes
com número de seqüência
maiores são retransmitidos
Retransmissão seletiva todos os pacotes são
reconhecidos
individualmente
um temporizador é
mantido para cada
pacote não reconhecido
apenas os pacotes não
reconhecidos são
retransmitidos