Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Redes de Computadores
Prof. Brivaldo Junior
Universidade Federal de Mato Grosso do Sul
26 de maio de 2017
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Visao Geral
1 Camada de Transporte
2 Transferencia Confiavel
3 Protocolo do Bit Alternante
4 Janela Deslizante para Transmissao Confiavel
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Protocolos e Servicos de Transporte
comunicacao logica entre aplicativos
executando em diferentes hosts
protocolos de transporte executam em
sistemas finais
lado emissor: quebra as mensagens
do aplicativo em segmentos e repassa
para a camada de rede
lado receptor: reconstroi os
segmentos em mensagens e repassa
para a camada de aplicacao
varios protocolos de transporte
Internet: TCP e UDP
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Protocolos e Servicos de Transporte
Camada de Rede:comunicacao logica entre oshostsCamada de Transporte:comunicacao logica entre osprocessos
confia, melhora, servicos dacamada de rede
Analogia: 12 criancas na casa de Anaenviando cartas para 12 criancas nacasa de Bill
hosts = casas
processos = criancas
mensagens dos aplicativos = cartas nos
envelopes
protocolo de transporte = Ana e Bill que
entregam corretamente para a crianca destino
protocolo de rede = servico de correios
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Protocolos de Transporte na Internet
confiavel, em ordem de entrega (TCP)
controle de congestionamento
controle de fluxo
configuracao inicial para conexao
nao confiavel, entrega fora de ordem
(UDP)
extensao do “melhor esforco” do IP
sem frescuras
servicos nao disponıveis:
garantias de atraso
garantias de largura de banda
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Multiplexacao/Demultiplexacao
Multiplexacao no Emissor: manipula informacoes nos sockets e adiciona ocabecalho de transporte para demultiplexacao posterior.Demultiplexacao no Receptor: usa o cabecalho para entregar ossegmentos recebidos para o socket correto.
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Como a Demultiplexacao Funciona
host recebe os datagramas IPcada datagrama tem um endereco IP
origem e um destino
cada datagrama transporta um
segmento da camada de transporte
cada segmento tem um porta origem
e uma destino
hosts usam endereco IP enumeros de portas paradirecionar o segmento aosocket apropriado
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Exemplo de Demultiplexacao Nao Orientada a Conexao
Observem que as portas usadas na comunicacao mudam apenas a posicaodentro do segmento da camada de transporte.
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Demultiplexacao Orientada a Conexao
socket TCP e identificado por uma 4-tupla:endereco IP origem
numero da porta origem
endereco IP destino
numero da porta destino
demux: receptor usa os quatro valores para direcionar o segmento aosocket apropriadoservidor pode suportar varios sockets TCP simultaneamente:
cada socket identificado por sua propria 4-tupla
servidores web tem diferentes sockets para cada cliente conectado.
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Exemplo de Demultiplexacao Orientada a Conexao
Observem que um mesmo host pode estar conectado com o mesmo servidorusando diferentes sockets.
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
UDP: User Datagram Protocol [RFC 768]
protocolo de transporte na Internet “sem frescuras”, “no osso”servico de “melhor esforco”. Os segmentos UDP podem ser:
perdidos
entregues fora de ordem para a aplicacao
conexao sem estadosem configuracao inicial entre o emissor e receptor UDP
cada segmento UDP e manipulado de forma independente
UDP e usado:aplicativos de streaming multimıdia (tolerantes a perdas e sensıveis a vazao)
DNS, SNMP
transferencia confiavel sobre UDP:camada de aplicacao adiciona confiabilidade e capacidade de recuperacao de erros
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
UDP: cabecalho do segmentoPor que UDP?
sem estabelecimento de conexao (o que reduz atrasos), o que o torna simples
cabecalho pequeno
sem controle de congestionamento: UDP pode ser enviado tao rapido quanto seja necessario
O tamanho (length) do segmento UDP e contabilizado em bytes e inclui otamanho do cabecalho.
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
UDP: checksum
Objetivo: detectar erros (bits trocados) em um segmento de transmissao
Emissor:
trata o conteudo, incluindo os
cabecalhos, como sequencias de inteiros
de 16-bits
checksum: soma (em complemento de
um) do conteudo dos segmentos
valor do checksum e armazenado no
campo do UDP correspondente
Receptor:
calcula o checksum do segmento recebido
verifica se o valor e igual ao que esta
armazenado no campo de checksum
NAO: erros detectadosSIM: sem erros detectados
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Checksum da Internet: exemplo
Exemplo: adicionar dois inteiros de 16-bits 1
Se nenhum erro for introduzido, ao se somar as palavras de 16-bits com o checksum, o resultado deve
ser uma cadeia de 1’s (1111111111111111). Se aparecer algum 0, um erro ocorreu.
1observe que o bit mais significativo deve ser adicionado ao resultadoBrivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Princıpios da Transferencia Confiavel
Importante para aplicacoes, camadas de enlace e
transporte. As caracterısticas nao confiaveis de um
canal determinarao a complexidade do protocolo
confiavel de transporte.
A construcao de um modelo de transferencia
confiavel e descrito do livro texto. Vamos focar no
protocolo final rdt3.0 e explorar como podemos
melhora-lo.
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Protocolo do Bit Alternante: Operacao Sem Perdas
Iremos observar o processo deenvio e espera de pacotes antes doenvio do proximo pacote(protocolo stop-and-wait) queveremos ao analisar o envio emserie de pacotes (pipeline).
Na operacao sem perdas, paracada pacote enviado, temosum pacote relativo ao ACK dobit alternante confirmando arecepcao do pacote.
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Protocolo do Bit Alternante: Perda de Pacote
Quando temos uma perda, enecessario esperar um tempo(timeout) antes de tentarretransmitir o pacote.
Esse processo ocorre toda vezque um pacote e perdido e naoe confirmado em uma janelade tempo pre-determinada.
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Protocolo do Bit Alternante: Perda de ACK
Como o emissor nao recebeu oACK de confirmacao, ele irareenviar o pacote novamenteapos um certo tempo(timeout).
A acao do emissor e similar aquando o pacote e perdido.
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Protocolo do Bit Alternante: Timeout Prematuro
Se o timeout for muito curto,o pacote ou mesmo o ACKpodem estar trafegando pelarede e, por isso nao chegaramao destino.
Com um tempo muito curto, opacote sera enviado duas vezese o receptor devera detectarque esta recebendo uma versaoduplicada do mesmo arquivo.
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Performance do rdt3.0
O rdt3.0 esta correto, mas sua performance e terrıvel.
Ex.: em um enlace de 1 Gbps (R), um atraso de propagacao de 15ms e um pacote com 8.000 bits
(L):
Dtransf = LR
= 8.000109bps
= 8x10−6 segundos = 8µ
Uemissor: utilizacao do emissor e igual a fracao de tempo em que o emissor ficouocupado enviando:
Usender = L/RRTT+L/R = 0,008ms
30,008ms = 0, 00027 (ou seja, menos de 1% de uso)
Se o RTT=30msec, um pacote de 1KB a cada 30msec vai resultar em uma vazaode 267kbits/seg em um enlace de 1Gbps
O protocolo de rede esta limitando os recursos fısicos! (Culpado: protocolo stop-and-wait).
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Funcionamento do stop-and-wait no rdt3.0
Usender =L/R
RTT+L/R = 0,00830,008 = 0, 00027
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Protocolos para Pipeline
pipelining: o emissor envia varios pacotes (viajantes) mesmo que naotenham sido reconhecidos os anteriores ainda.
o intervalo dos numeros de sequencia precisa ser incrementadobuferizacao no emissor e no receptor
dois protocolos de pipelining: go-Back-N e Repeticao SeletivaBrivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Pipelining: aumenta a utilizacao
Usender =3L/R
RTT+L/R = 0,02430,008 = 0, 00081. Aumenta a utilizacao em 3 vezes!
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Protocolos de Pipeline: Visao Geral
Go-back-NO emissor pode ter N pacotes nao
confirmados no pipeline
receptor envia somente ACK’s
cumulativos
nao envia o ACK se tiver uma lacuna
O emissor possui um temporizador para
o pacote nao confirmado mais antigo.
quando o tempo do temporizador
expirar, todos os pacotes nao
confirmados sao retransmitidos
Repeticao SeletivaO emissor pode ter N pacotes nao
confirmados no pipeline
O receptor envia ACK’s individuais para cada
pacote
O emissor mantem um temporizador para
cada pacote nao confirmado
quando o tempo do temporizador expirar,
retransmite apenas o pacote nao
confirmado
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Go-Back-N: emissor
k-bits numeros de sequencia no cabecalho do pacote
“janela” de ate N pacotes nao confirmados consecutivos
ACK(n): ACK’s de todos os pacotes incluindo o numero de sequencia n - ACK cumulativo
pode receber ACK’s duplicados
possui um temporizador para o pacote em “voo” mais antigo
timeout(n) retransmite os n pacotes e todos os pacotes com numero de sequencia alto na janela
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Go-Back-N: em operacao
O receptor descarta pacotes fora de
ordem
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Repeticao Seletiva
O receptor, individualmente, confirma o recebimento de todos os pacotescorretos recebidos
faz buffer de pacotes, se necessario, para uma eventual entrega em ordem para acamada superior
emissor so reenvia pacotes cujo ACK nao foi recebidotemporizador de envio para cada pacote nao confirmado
janela de envioN sequencias consecutivaslimite de sequencia de enviados e pacotes nao confirmados
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Repeticao Seletiva: janelas do emissor e receptor
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Repeticao Seletiva
Emissor:
Numero de sequencia disponıvel? envia
dados. Senao, devolve a camada
superior para transmissao posterior.
timeout(n): reenvia o pacote n e
reinicia o temporizador
ACK(n) de um pacote dentro da janela:
marca o pacote n como recebido
se n tiver o menor numero de
sequencia nao confirmado, avanca a
base da janela (send base) para o
proximo numero de sequencia nao
confirmado.
Receptor:
Pacote dentro da janela de recebimento:
envia ACK seletivo ao pacote n
se fora de ordem: bufferiza
em ordem: se o numero de sequencia for
igual ao numero de sequencia da base da
janela, entrega os pacotes ja confirmados
em sequencia para a camada superior.
pacotes com numero de sequencia entre
[rcv base−N , rcv base− 1] devem ser
confirmados mesmo que ja tenham sido
reconhecidos pelo destino
ignote qualquer outro pacote
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Repeticao Seletiva: em operacao
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Repeticao Seletiva: o dilema (sem problema)
Notem que o numero de sequencia 0 vai ser do novo pacote e nao de umainformacao errada.
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Repeticao Seletiva: o dilema (sem problema)
Notem que o numero de sequencia 0 vai ser do novo pacote e nao de umainformacao errada.
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Repeticao Seletiva: o dilema (oops!!!)
Qual a relacao entre o numero de sequencia e o tamanho da janela para evitareste problema?
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Repeticao Seletiva: o dilema (oops!!!)
Qual a relacao entre o numero de sequencia e o tamanho da janela para evitareste problema?
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Resumo dos Mecanismos de Transferencia Confiavel
Mecanismo Uso, Comentarios
Soma de VerificacaoUsada para detectar erros em bits em um pacotetransmitido.
Temporizador Usado para controlar temporizacao e retransmissao.
Numero de SequenciaUsado para numerar os pacotes transmitidosdo emissor ao receptor.
ACK (reconhecimento)Usado para o receptor avisar ao emissor que recebeuum ou mais pacotes.
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Resumo dos Mecanismos de Transferencia Confiavel
Mecanismo Uso, Comentarios
Reconhecimento NegativoUsado pelo destinatario para informar que um pacotecom numero de sequencia anterior nao foi recebidocorretamente.
Janela, paralelismoRestricao de envio dentro de uma janela commecanismos para aumentar o uso da rede.
Brivaldo Junior Redes de Computadores
Camada de TransporteTransferencia Confiavel
Protocolo do Bit AlternanteJanela Deslizante para Transmissao Confiavel
Perguntas?
Brivaldo Junior Redes de Computadores
Top Related