A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

Apresentações semelhantes


Apresentação em tema: "3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:"— Transcrição da apresentação:

1 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte: m multiplexação/ demultiplexação m transferência confiável de dados m controle de fluxo m controle de congestionamento r aprender os protocolos da camada de transporte da Internet: m UDP: transporte sem conexão m TCP: transporte orientado a conexões m Controle de congestionamento do TCP

2 3: Camada de Transporte 3a-2 Serviços e protocolos de transporte r provê comunicação lógica entre processos de aplicação executando em hospedeiros diferentes r protocolos de transporte executam em sistemas finais: m lado transmissor: quebra as mensagens das aplicações em segmentos, repassa-os para a camada de rede m lado receptor: remonta as mensagens a partir dos segmentos, repassa-as para a camada de aplicação r existem mais de um protocolo de transporte disponível para as aplicações m Internet: TCP e UDP aplicação transporte rede enlace física rede enlace física aplicação transporte rede enlace física rede enlace física rede enlace física rede enlace física rede enlace física transporte lógico fim a fim

3 3: Camada de Transporte 3a-3 Camadas deTransporte x rede r camada de rede: comunicação lógica entre hospedeiros r camada de transporte: comunicação lógica entre processos m depende de, estende serviços da camada de rede Analogia doméstica: 12 crianças enviando cartas para 12 crianças r processos = crianças r mensagens da apl. = cartas r hosts = casas r protocolo de transporte = Envelope r protocolo da camada de rede = serviço postal

4 3: Camada de Transporte 3a-4 Protocolos da camada de transporte Internet r entrega confiável, ordenada (TCP) m controle de congestionamento m controle de fluxo m estabelecimento de conexão (setup) r entrega não confiável, não ordenada: UDP m extensão sem frescuras do melhor esforço do IP r serviços não disponíveis: m garantias de atraso m garantias de largura de banda aplicação transporte rede enlace física rede enlace física aplicação transporte rede enlace física rede enlace física rede enlace física rede enlace física rede enlace física transporte lógico fim a fim

5 3: Camada de Transporte 3a-5 Multiplexação/demultiplexação aplicação transporte rede enlace física P1 aplicação transporte rede enlace física aplicação transporte rede enlace física P2 P3 P4 P1 host 1 host 2 host 3 = processo= socket Entrega dos segmentos recebidos ao socket correto Demultiplexação no receptor: reúne dados de muitos sockets, envelopa os dados com o cabeçalho (usado posteriormente para a demultiplexação) Multiplexação no transm.:

6 3: Camada de Transporte 3a-6 r host recebe os datagramas IP m cada datagrama possui os endereços IP da origem e do destino m cada datagrama transporta 1 segmento da camada de transporte m cada segmento possui números das portas origem e destino (lembre: números de portas bem conhecidas para aplicações específicas) r host usa os endereços IP e os números das portas para direcionar o segmento ao socket apropriado Como funciona a demultiplexação porta remetenteporta receptor 32 bits dados da aplicação (mensagem) outros campos do cabeçalho formato de segmento TCP/UDP

7 3: Camada de Transporte 3a-7 Demultiplexação sem Conexões r Crie sockets com números de porta: DatagramSocket mySocket1 = new DatagramSocket(99111); DatagramSocket mySocket2 = new DatagramSocket(99222); r socket UDP identificado pela dupla: (end IP dest, no. da porta destino) r Quando host recebe segmento UDP: m verifica no. da porta de destino no segmento m encaminha o segmento UDP para o socket com aquele no. de porta r Datagramas IP com diferentes endereços IP origem e/ou números de porta origem são encaminhados para o mesmo socket

8 3: Camada de Transporte 3a-8 Demultiplexação sem Conexões (cont) DatagramSocket serverSocket = new DatagramSocket(6428); Cliente IP:B P2 cliente IP: A P1 P3 servidor IP: C SP: 6428 DP: 9157 SP: 9157 DP: 6428 SP: 6428 DP: 5775 SP: 5775 DP: 6428 SP (source port) provê endereço de retorno

9 3: Camada de Transporte 3a-9 Demultiplexação Orientada a Conexões r Socket TCP identificado pela 4- dupla: m endereço IP origem m número da porta origem m endereço IP destino m número da porta destino r receptor usa todos os quatro valores para direcionar o segmento para o socket apropriado r Servidor pode dar suporte a muitos sockets TCP simultâneos: m cada socket é identificado pela sua própria 4-dupla r Servidores Web têm sockets diferentes para cada conexão cliente m HTTP não persistente terá sockets diferentes para cada pedido

10 3: Camada de Transporte 3a-10 Conteúdo do Capítulo 3 r 3.1 Serviços da camada de transporte r 3.2 Multiplexação e demultiplexação r 3.3 UDP: Transporte não orientado a conexão r 3.4 Princípios da transferência confiável de dados r 3.5 Transporte orientado a conexão: TCP m transferência confiável m controle de fluxo m gerenciamento de conexões r 3.6 Princípios de controle de congestionamento r 3.7 Controle de congestionamento do TCP

11 3: Camada de Transporte 3a-11 UDP: User Datagram Protocol [RFC 768] r Protocolo de transporte da Internet mínimo, sem frescura, r Serviço melhor esforço, segmentos UDP podem ser: m perdidos m entregues à aplicação fora de ordem do remesso r sem conexão: m não há setup UDP entre remetente, receptor m tratamento independente de cada segmento UDP Por quê existe um UDP? r elimina estabelecimento de conexão (o que pode causar retardo) r simples: não se mantém estado da conexão no remetente/receptor r pequeno cabeçalho de segmento r sem controle de congestionamento: UDP pode transmitir o mais rápido possível

12 3: Camada de Transporte 3a-12 Mais sobre UDP r muito utilizado para apls. de meios contínuos (voz, vídeo) m tolerantes de perdas m sensíveis à taxa de transmissão r outros usos de UDP (por quê?): m DNS (nomes) m SNMP (gerenciamento) r transferência confiável com UDP: incluir confiabilidade na camada de aplicação m recuperação de erro específica à apl.! porta origemporta dest. 32 bits Dados de aplicação (mensagem) Formato do segmento UDP comprimento checksum Comprimento em bytes do segmento UDP, incluindo cabeçalho

13 3: Camada de Transporte 3a-13 Checksum UDP Remetente: r trata conteúdo do segmento como seqüência de inteiros de 16-bits r campo checksum zerado r checksum: soma (adição usando complemento de 1) do conteúdo do segmento r remetente coloca complemento do valor da soma no campo checksum de UDP Receptor: r calcula checksum do segmento recebido r verifica se checksum computado é zero: m NÃO - erro detectado m SIM - nenhum erro detectado. Mas ainda pode ter erros? Veja depois …. Meta: detectar erro (e.g., bits invertidos) no segmento transmitido

14 3: Camada de Transporte 3a-14 Go-back-N (GBN) Remetente: r Admite janela de até N pacotes consecutivos não reconhecidos r ACK(n): reconhece todos os pacotes. r temporizador para cada pacote em trânsito r timeout(n): retransmite pacote n e todos os pacotes com no. de seq maiores na janela

15 3: Camada de Transporte 3a-15 GBN em ação

16 3: Camada de Transporte 3a-16 Retransmissão seletiva r receptor reconhece individualmente todos os pacotes recebidos corretamente m armazena pacotes no buffer, conforme necessário, para posterior entrega em-ordem à camada superior r remetente apenas re-envia pacotes para os quais ACK não recebido m temporizador de remetente para cada pacote sem ACK r janela do remetente m N nos. de seq consecutivos m outra vez limita nos. de seq de pacotes enviados, mas ainda não reconhecidos

17 3: Camada de Transporte 3a-17 Retransmissão seletiva dados de cima: r se próx. no. de seq na janela, envia pacote timeout(n): r reenvia pacote n, reiniciar temporizador ACK(n) r marca pacote n recebido r se n for menor pacote não reconhecido, avança base da janela ao próx. no. de seq não reconhecido pacote n envia ACK(n) r fora de ordem: buffer r em ordem: entrega (tb. entrega pacotes em ordem no buffer), avança janela p/ próxima pacote ainda não recebido pacote n em [rcvbase-N,rcvbase-1] r ACK(n) senão: r ignora receptor remetente

18 3: Camada de Transporte 3a-18 Formação do pacote Formado por 32 bytes contendo os seguintes dados:

19 3: Camada de Transporte 3a-19 Segunda parte

20 3: Camada de Transporte 3a-20 TCP: Visão geral RFCs: 793, 1122, 1323, 2018, 2581 r transmissão full duplex: m fluxo de dados bi- direcional na mesma conexão r orientado a conexão: m handshaking (troca de msgs de controle) inicia estado de remetente, receptor antes de trocar dados r fluxo controlado: m receptor não será afogado r ponto a ponto: m 1 remetente, 1 receptor r fluxo de bytes, ordenados, confiável: r com paralelismo (pipelined): m tam. da janela ajustado por controle de fluxo e congestionamento do TCP r buffers de envio e recepção

21 3: Camada de Transporte 3a-21 TCP: Tempo de Resposta (RTT – Round Trip Time) e Temporização P: como escolher valor do temporizador TCP? r maior que o RTT m note: RTT pode variar r muito curto: temporização prematura m retransmissões são desnecessárias r muito longo: reação demorada à perda de segmentos P: como estimar RTT? RTTamostra : tempo medido entre a transmissão do segmento e o recebimento do ACK correspondente RTT_amostra vai variar, queremos um amaciador de RTT estimado usa várias medições recentes, não apenas o valor corrente ( RTT_amostra)

22 3: Camada de Transporte 3a-22 TCP: Tempo de Resposta (RTT) e Temporização RTT_estimado = (1- )* RTT_estimado + *RTT_amostra r média corrente exponencialmente ponderada r influência de cada amostra diminui exponencialmente com o tempo valor típico de = 0,125 RTT_estimado = (1- )* 1 + *1,5 RTT_estimado = 0, ,18 RTT_estimado = 1,01

23 3: Camada de Transporte 3a-23 TCP: Tempo de Resposta (RTT) e Temporização Escolhendo o intervalo de temporização RTT_estimado mais uma margem de segurança r primeiro estima o quanto a RTTamostra desvia do RTT_estimado: r Então, seta o temporizador para: Temporização = RTT_estimado + 4*Desvio_RTT Desvio_RTT = (1- )* Desvio_RTT + *|RTT_amostra - RTT_estimado|

24 3: Camada de Transporte 3a-24 TCP: Tempo de Resposta (RTT) e Temporização Temporização = RTT_estimado + 4*Desvio_RTT Desvio_RTT = (1- )* 0 + 0,165 * |1,50 – 1| Desvio_RTT = 0, ,085 Desvio_RTT = 0,92 Temporização = 1,01 + 4* 0,92 Temporização = 4,69

25 3: Camada de Transporte 3a-25 Eventos do transmissor TCP: Dados recebidos da apl.: r Cria segmento com no. de seqüência (nseq) r nseq é o número de seqüência do primeiro byte do segmento r Liga o temporizador r Valor do temporizador: calculado anteriormente estouro do temporizador: r Retransmite o segmento que causou o estouro do temporizador r Reinicia o temporizador Recepção de Ack: r Se reconhecer segmentos ainda não reconhecidos m atualizar informação sobre o que foi reconhecido m religa o temporizador se ainda houver segmentos pendentes (não reconhecidos)

26 3: Camada de Transporte 3a-26 TCP: cenários de retransmissão Host A Seq=100, 20 bytes data ACK=100 tempo estouro prematuro do temporizador Host B Seq=92, 8 bytes data ACK=120 Seq=92, 8 bytes data Seq=92 timeout ACK=120 Host A Seq=92, 8 bytes data ACK=100 loss timeout cenário de perda de ACK Host B X Seq=92, 8 bytes data ACK=100 tempo Seq=92 timeout SendBase = 100 SendBase = 120 SendBase = 120 Sendbase = 100

27 3: Camada de Transporte 3a-27 Controle de Fluxo do TCP r Lado receptor da conexão TCP possui um buffer de recepção: r serviço de casamento de velocidades: adaptando a taxa de transmissão à taxa de leitura da aplicação receptora r Processo da apl. pode demorar a ler do receptor o transmissor não inundará o buffer do receptor transmitindo muito e rapidamente Controle de fluxo

28 3: Camada de Transporte 3a-28 Controle de Fluxo do TCP: como funciona (Suponha que o receptor TCP segmentos fora de ordem) espaço livre no buffer = RcvWindow = RcvBuffer-[LastByteRcvd - LastByteRead] O receptor anuncia o espaço livre incluindo o valor da RcvWindow nos segmentos O transmissor limita os dados não reconhecidos ao tamanho da RcvWindow m Garante que o buffer do receptor não transbordará

29 3: Camada de Transporte 3a-29 TCP: Gerenciamento de Conexões Inicialização em 3 tempos: Passo 1: sistema cliente envia segmento de controle SYN do TCP ao servidor m especifica no. inicial de seq m não envia dados Passo 2: sistema servidor recebe SYN, responde com segmento de controle SYNACK m aloca buffers m especifica no. inicial de seq. servidor-> receptor Passo 3: receptor recebe SYNACK, responde com segmento ACK que pode conter dados.

30 3: Camada de Transporte 3a-30 Princípios de Controle de Congestionamento Congestionamento: r informalmente: muitas fontes enviando muitos dados muito rapidamente para a rede poder tratar r diferente de controle de fluxo! r manifestações: m perda de pacotes (esgotamento de buffers em roteadores) m longos atrasos (enfileiramento nos buffers dos roteadores) r um dos 10 problemas mais importantes em redes!

31 3: Camada de Transporte 3a-31 Causas/custos de congestionamento: cenário 1 r dois remetentes, dois receptores r um roteador, buffers infinitos r sem retransmissão r grandes retardos qdo. congestionada r vazão máxima alcançável unlimited shared output link buffers Host A in : original data Host B out

32 3: Camada de Transporte 3a-32 Causas/custos de congestionamento: cenário 2 r Um roteador, buffers finitos r retransmissão pelo remetente de pacote perdido finite shared output link buffers Host A in : original data Host B out ' in : original data, plus retransmitted data

33 3: Camada de Transporte 3a-33 Abordagens de controle de congestionamento Controle de congestionamento fim a fim : r não tem realimentação explícita pela rede r congestionamento inferido a partir das perdas, retardo observados pelo sistema terminal r abordagem usada pelo TCP Controle de congestionamento com apoio da rede: r roteadores realimentam os sistemas terminais m bit indicando congestionamento (SNA, DECbit, TCP/IP ECN, ATM) m taxa explícita p/ envio pelo remetente Duas abordagens amplas para controle de congestionamento:

34 3: Camada de Transporte 3a-34 Resumo: Controle de Congestionamento do TCP Quando a CongWin está abaixo do limiar, transmissor está na fase de início lento, janela cresce exponencialmente. Quando a CongWin está acima do limiar, transmissor está na fase de evitar congestionamento, janela cresce linearmente. Quando chegam ACKs triplicados, Limiar passa a ser CongWin/2 e CongWin passa ao valor do Limiar. Quando estoura o temporizador, Limiar passa a ser CongWin/2 e CongWin passa a ser 1 MSS.


Carregar ppt "3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:"

Apresentações semelhantes


Anúncios Google