25
Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Embed Size (px)

Citation preview

Page 1: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Interconexão e Transporte em Redes

Prof. Ricardo S. Casado

Page 2: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Transferência Confiável de Dados

• É um processo que ocorre não só na camada de transporte mas também na camada de enlace (Swithes e Roteadores consequentemente);

• Com um canal confiável nenhum dos dados é corrompido e nem perdido e todos são entregues na ordem em que foram enviados;

• Porém a transferência confiável de dados é um problema de redes de computadores que se não for está entre os primeiros da lista.

Page 3: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Camadas Modelo OSI

Page 4: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Transferência Confiável

Page 5: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Transferência confiável de Dados

• É responsabilidade de um protocolo de transferência confiável de dados implementar essa abstração de serviço;

• A tarefa é dificultada pelo fato de que a camada a baixo do protocolo de transferência pode não ser confiável;

• Ex: O TCP é um protocolo de transferência confiável de dados que é implementado sobre uma camada de rede fim-a-fim não confiável (IP);

Page 6: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Pacote perdido

Page 7: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

ACK Perdido

Page 8: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Protocolos de transferência confiável de dados com paralelismo

• Vamos considerar um caso ideal de dois hospedeiros, um localizado na costa oeste e outro na costa leste do brasil.

• O atraso de propagação de ida e volta à velocidade da luz, Tprop, entre esses dois sistemas finais é de aproximadamente 30 milissegundos.

• Suponha que eles estejam conectados por um canal com capacidade de transmissão (R), de 1 gigabit (10^9 bits) por segundo. Para um tamanho de pacote (L) de 1 Kbyte (8 mil bits) por pacote, incluindo o campo de cabeçalho e também de dados.

Page 9: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Protocolos de transferência confiável de dados com paralelismo

• O tempo necessário para realmente transmitir o pacote para o enlace de 1Gbps é:

• Tprop = Velocidade da luz (fibra)

• L = Tamanho do pacote• R = Capacidade de transmissão do canal

Page 10: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Paralelismo

Page 11: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Pare e espere

Page 12: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Paralelismo

Page 13: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Pare e espere

• A figura 1 mostra que, com nosso protocolo pare e espere, se o remetente começar a enviar o pacote em t = 0, então em t = L/R = 8 microssegundos, o último bit entrará no canal do lado remetente.

• O pacote então faz sua jornada de 15 milissegundos atravessando o país, com o último bit do pacote emergindo no destinatário em t = RTT/2 + L/R = 15,008 milissegundos.

Page 14: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Pare e espere

• Supondo, para simplificar, que pacotes ACK sejam extremamente pequenos (para ignorarmos seu tempo de transmissão) e que o destinatário pode enviar um ACK logo que receber o último bit de um pacote de dados, o ACK emergirá de volta no remetente em t = RTT + L/R = 30,008 milissegundos, o remetente esteve enviando por apenas 0,008 milissegundos.

Page 15: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Pare e espere

• Se definirmos a utilização do remetente (ou do canal) como a fração de tempo em que o remetente está realmente ocupado enviando bits para dentro do canal, analisando a 1 figura mostra que o protocolo pare e espere tem uma utilização do remetente Uremet bastante desanimadora.

Page 16: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Pare e espere

• Portanto o remetente ficou ocupado apenas 2,7 centésimos de 1% do tempo. Visto de outra maneira ele só foi capaz de enviar 1.000 bytes em 30,008 milissegundos, uma vazão efetiva de apenas 267Kbps, mesmo estando disponível para envio um enlace de 1Gbps.

• Imagine o desperdício e isso que desconsideramos o tempo de processamento das camadas inferiores nos sistemas finais e também o atraso de processamento e fila do roteadores.

Page 17: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Paralelismo

• A solução para este problema de desempenho em particular é simples: em vez de operar em modo pare e espere, o remetente é autorizado a enviar vários pacotes sem esperar por reconhecimentos, como mostra a figura 2 (pipelining).

Page 18: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Pipelining

Page 19: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Retransmissão

Cenário com perdado ACK

Temporização prematura,ACKs cumulativos

Page 20: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Controle de Fluxo

lado receptor da conexão TCP possui um buffer de recepção:

Processos de aplicação podem ser lentos para ler o buffer

Serviço de speed-matching: encontra a taxa de envio adequada à taxa de vazão da aplicação receptora

Controle de fluxoTransmissor não deve esgotar os buffers de recepção enviando dados rápido demais

Page 21: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Controle de Fluxo

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaço disponível no buffer= RcvWindow= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a área disponível incluindo valor RcvWindow nos segmentos

· Transmissor limita os dados não confimados ao RcvWindow Garantia contra overflow no buffer do receptor

Page 22: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Gerenciamento de Conexão TCP TCP transmissor estabelece conexão com o receptor antes de trocar segmentos de dados

Inicializar variáveis: Números de seqüência Buffers, controle de fluxo (ex. RcvWindow)

Cliente: iniciador da conexão Socket clientSocket = new Socket(“hostname","port number"); Servidor: chamado pelo cliente Socket connectionSocket = welcomeSocket.accept();Three way handshake:Passo 1: sistema final cliente envia TCP SYN ao servidor Especifica número de seqüência inicial

Passo 2: sistema final servidor que recebe o SYN, responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o número de seqüência inicial do servidor

Passo 3: o sistema final cliente reconhece o SYNACK

Page 23: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Gerenciamento de Conexão TCP

Fechando uma conexão:

cliente fecha o socket: clientSocket.close();

Passo 1: o cliente envia o segmento TCP FIN ao servidor

Passo 2: servidor recebe FIN, responde com ACK. Fecha a conexão, envia FIN

Page 24: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Gerenciamento da Conexão TCP

Passo 3: cliente recebe FIN, responde com ACK.

Entra “espera temporizada” - vai responder com ACK

a FINs recebidos

Passo 4: servidor, recebe ACK. Conexão fechada

Nota: com uma pequena modificação, pode-se manipular FINs simultâneos

Page 25: Interconexão e Transporte em Redes Prof. Ricardo S. Casado

Gerenciamento da Conexão TCP

Estados do cliente Estados do servidor