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/ desmultiplexação controle de fluxo controle de congestionamento Sumário do Capítulo: serviços da camada de transporte multiplexação/desmultiplexação transporte sem conexão: UDP transporte orientado a conexão: TCP transferência confiável controle de fluxo gerenciamento de conexões principles de controle de congestionamento controle de congestionamento em 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 terminais serviços das camadas de transporte X rede: camada de rede : dados transferidos entre sistemas camada de transporte: dados transferidos entre processos depende de, estende serviços da camada de rede 3: Camada de Transporte

3 Protocolos da camada de transporte
aplicação transporte rede enlace física transporte lógico fim a fim Serviços de transporte na Internet: entrega confiável, ordenada, ponto a ponto (TCP) congestionamento controle de fluxo estabelecimento de conexão (setup) entrega não confiável, (“melhor esforço”), não ordenada, ponto a ponto ou multiponto: UDP serviços não disponíveis: tempo-real garantias de banda multiponto confiável 3: Camada de Transporte

4 Multiplexação/desmultiplexação
Lembrança: segmento - unidade de dados trocada entre entidades da camada de transporte = TPDU: transport protocol data unit Desmultiplexação: entrega de segmentos recebidos para os processos da camada de apl corretos receptor P3 P4 dados da camada de aplicação M M aplicação transporte rede cabeçalho de segmento P1 P2 M M aplicação transporte rede aplicação transporte rede segmento H t M H n segmento 3: Camada de Transporte

5 Multiplexação/desmultiplexação
juntar dados de múltiplos processos de apl, envelopando dados com cabeçalho (usado depois para desmultiplexação) porta remetente porta receptor 32 bits dados da aplicação (mensagem) outros campos do cabeçalho multiplexação/desmultiplexação: baseadas em números de porta e endereços IP de remetente e receptor números de porta de remetente/receptor em cada segmento lembrete: número de porta bem conhecido para aplicações específicas formato de segmento TCP/UDP 3: Camada de Transporte

6 Multiplexação/desmultiplexação: exemplos
estação A porta orig.: x porta dest: 23 servidor B Web client host C porta orig:23 porta dest: x IP orig : C IP dest: B porta orig: y porta dest: 80 IP orig: C IP dest: B porta orig: x porta dest: 80 uso de portas: apl. simples de telnet IP orig: A IP dest: B porta orig: x porta dest: 80 servidor WWW B cliente WWW estação A uso de portas : servidor WWW 3: Camada de Transporte

7 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

8 Mais sobre UDP outros usos de UDP (por quê?):
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) UDP segment format 3: Camada de Transporte

9 Checksum UDP Meta: detecta “erro” (e.g., bits invertidos) no segmento transmitido Remetente: trata conteúdo do segmento como sequê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 Receiver: computa 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

10 TCP: Visão geral RFCs: 793, 1122, 1323, 2018, 2581 ponto a ponto:
1 remetente, 1 receptor fluxo de bytes, ordenados, confiável: não estruturado em msgs dutado: 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 MSS: tamanho máximo de segmento 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

11 TCP: estrutura do segmento
no. porta origem no. porta dest 32 bits dados da aplicação (tam. variável) número de seqüência número de reconhecimento janela receptor ptr dados urg. checksum F S R P A U tam. cab. sem uso Opções (tam. variável) URG: dados urgentes (pouco usados) contagem de dados por bytes (não segmentos!) ACK: no. ACK válido PSH: envia dados já (pouco usado) no. bytes rcpt quer aceitar RST, SYN, FIN: gestão de conexão (comandos de estabelecimento, liberação) checksum Internet (como UDP) 3: Camada de Transporte

12 Princípios de Transferência confiável de dados (rdt)
importante nas camadas de: Transporte e de Enlace na lista dos 10 tópicos mais importantes em redes! características do canal não confiável determinam a complexidade de um protocolo de transferência confiável de dados (rdt) 3: Camada de Transporte

13 TCP: números de Seq. e ACKs
Nos. de seq.: “número”dentro do fluxo de bytes do primeiro byte de dados do segmento ACKs: no. de seq do próx. byte esperado do outro lado ACK cumulativo P: como receptor trata segmentos fora da ordem? R: espec do TCP omissa - deixado ao implementador Estação A Estação B Usuário tecla ‘C’ Seq=42, ACK=79, data = ‘C’ B reconhece chegada de ‘C’, ecoa ‘C’ de volta Seq=79, ACK=43, data = ‘C’ A reconhece chegada do ‘C’ ecoado Seq=43, ACK=80 tempo cenário simples de telnet 3: Camada de Transporte

14 TCP geração de ACKs [RFCs 1122, 2581]
Evento chegada de segmento em ordem sem lacunas, anteriores já reconhecidos um ACK retardado pendente chegada de segmento fora de ordem, com no. de seq. maior que esperado -> lacuna chegada de segmento que preenche a lacuna parcial ou completamente Ação do receptor TCP ACK retardado. Espera até 500ms p/ próx. segmento. Se não chegar segmento, envia ACK envia imediatamente um único ACK cumulativo envia ACK duplicado, indicando no. de seq.do próximo byte esperado ACK imediato se segmento no início da lacuna 3: Camada de Transporte

15 TCP em ação: Tráfego http
Cliente Servidor TCP Syn Ack, Syn Ack Fyn Estabelecimento da Conexão (3 Way Hand-shake) TCP TCP HTTP request TCP HTTP response TCP Transmissão dos Dados com Manutenção da Conexão Controle de fluxo através da técnica do Janelamento !!! HTTP response TCP HTTP response TCP Encerramento da Conexão TCP TCP 3: Camada de Transporte

16 TCP em ação: Tráfego http (cont)
Cliente Servidor PO: 2031, PD: 80, Seq: 100, Ack: 0, Janela: 3 Syn Ack, Syn Ack Fyn PO:80, PD: 2031, Seq: 25, Ack: 101, Janela: 3 PO: 2031, PD: 80, Seq: 101, Ack: 26, Janela: 3 PO: 2031, PD: 80, Seq: 102, Ack: 26, Janela: 3 PO:80, PD: 2031, Seq: 26, Ack: 103, Janela: 3 PO:80, PD: 2031, Seq: 27, Ack: 103, Janela: 3 PO:80, PD: 2031, Seq: 28, Ack: 103, Janela: 3 PO:80, PD: 2031, Seq: 29, Ack: 103, Janela: 3 PO: 2031, PD: 80, Seq: 103, Ack: 30, Janela: 3 PO:80, PD: 2031, Seq: 30, Ack: 104, Janela: 3 PO:80, PD: 2031, Seq: 31, Ack: 104, Janela: 3 PO:80, PD: 2031, Seq: 32, Ack: 104, Janela: 3 PO: 2031, PD: 80, Seq: 104, Ack: 33, Janela: 3 PO:80, PD: 2031, Seq: 33, Ack: 105, Janela: 3 PO:80, PD: 2031, Seq: 34, Ack: 105, Janela: 3 PO:80, PD: 2031, Seq: 35, Ack: 105, Janela: 3 PO: 2031, PD: 80, Seq: 105, Ack: 36, Janela: 3 PO:80, PD: 2031, Seq: 36, Ack: 106, Janela: 3 PO: 2031, PD: 80, Seq: 106, Ack: 37, Janela: 3 3: Camada de Transporte

17 TCP: cenários de retransmissão
Host A Estação A Estação B Host B Seq=92, 8 bytes de dados Seq=92, 8 bytes de dados Seq=100, 20 bytes de dados ACK=100 Temp.p/ Seq=92 temporização X ACK=100 Temp. p/ Seq=100 ACK=120 perda Seq=92, 8 bytes de dados Seq=92, 8 bytes de dados ACK=120 ACK=100 tempo tempo cenário do ACK perdido temporização prematura, ACKs cumulativos 3: Camada de Transporte

18 TCP: Controle de Fluxo controle de fluxo
receptor: explicitamente avisa o remetente da quantidade de espaço livre disponível (muda dinamicamente) campo RcvWindow no segmento TCP remetente: mantém a quantidade de dados transmitidos, porém ainda não reconhecidos, menor que o valor mais recente de RcvWindow remetente não esgotaria buffers do receptor por transmitir muito, ou muito rápidamente RcvBuffer = tamanho do Buffer de recepção RcvWindow = espaço vazio no Buffer buffering pelo receptor 3: Camada de Transporte

19 TCP: Gerenciamento de Conexões
Lembrete: Remetente, receptor TCP estabelecem “conexão” antes de trocar segmentos de dados inicializam variáveis TCP: nos. de seq. buffers, info s/ controle de fluxo (p.ex. RcvWindow) cliente: iniciador de conexão Socket clientSocket = new Socket("hostname","port number"); servidor: contactado por cliente Socket connectionSocket = welcomeSocket.accept(); Inicialização em 3 tempos: Passo 1: sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no. inicial de seq Passo 2: sistema servidor recebe SYN, responde com segmento de controle SYNACK reconhece SYN recebido aloca buffers especifica no. inicial de seq. servidor-> receptor 3: Camada de Transporte

20 TCP: Gerenciamento de Conexões (cont.)
Encerrando uma conexão: cliente fecha soquete: clientSocket.close(); Passo 1: sistema cliente envia segmento de controle FIN ao servidor Passo 2: servidor recebe FIN, responde com ACK. Encerra a conexão, enviando FIN. cliente servidor fechar FIN ACK fechar FIN ACK espera temporizada fechada 3: Camada de Transporte

21 TCP: Gerenciamento de Conexões (cont.)
Passo 3: cliente recebe FIN, responde com ACK. Entre em “espera temporizada” - responderá com ACK a FINs recebidos Step 4: servidor, recebe ACK. Conexão encerrada. Note: com pequena modificação, consegue tratar de FINs simultâneos. cliente servidor fechando FIN ACK fechando FIN ACK espera temporizada fechada fechada 3: Camada de Transporte

22 Princípios de Controle de Congestionamento
informalmente: “muitas fontes enviando muitos dados muito rapidamente para a rede poder tratar” differente 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

23 Capítulo 3: Sumário Princípios atrás dos serviços da camada de transporte: multiplexação/ desmultiplexação transferência confiável de dados controle de fluxo instanciação e implementação na Internet UDP TCP Próximo capítulo: saímos da “borda” da rede (camadas de aplicação e transporte) entramos no “núcleo”da rede 3: Camada de Transporte


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

Apresentações semelhantes


Anúncios Google