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

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

Capítulo 3: Camada de Transporte

Apresentações semelhantes


Apresentação em tema: "Capítulo 3: Camada de Transporte"— Transcrição da apresentação:

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

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

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

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

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

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

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

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 DP: 5775 SP: 5775 SP (source port) provê “endereço de retorno” 3: Camada de Transporte

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

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

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

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

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

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

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

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

17 Retransmissão seletiva
remetente receptor dados de cima: se próx. no. de seq na janela, envia pacote timeout(n): reenvia pacote n, reiniciar temporizador ACK(n) marca pacote n “recebido” 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) fora de ordem: buffer 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] ACK(n) senão: ignora 3: Camada de Transporte

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

19 Segunda parte 3: Camada de Transporte

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

21 TCP: Tempo de Resposta (RTT – Round Trip Time) e Temporização
P: como escolher valor do temporizador TCP? maior que o RTT note: RTT pode variar muito curto: temporização prematura retransmissões são desnecessárias 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) 3: Camada de Transporte

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

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

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

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

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

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

28 Controle de Fluxo do TCP: como funciona
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 Garante que o buffer do receptor não transbordará (Suponha que o receptor TCP segmentos fora de ordem) espaço livre no buffer = RcvWindow = RcvBuffer-[LastByteRcvd - LastByteRead] 3: Camada de Transporte

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

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

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

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

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

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. 3: Camada de Transporte


Carregar ppt "Capítulo 3: Camada de Transporte"

Apresentações semelhantes


Anúncios Google