Prof. Marcelo Diniz Fonte:

Slides:



Advertisements
Apresentações semelhantes
REDES DE COMPUTADORES Prof. Evandro Cantú.
Advertisements

Circuitos Lógicos e Organização de Computadores Capítulo 6 – Blocos com Circuitos Combinacionais Ricardo Pannain
Sistemas Distribuídos
Capítulo 3: Camada de Transporte
Capítulo 3: Camada de Transporte
Capítulo 3: Camada de Transporte
Transporte em Nanoestruturas. I) Transporte balístico Um material unidimensional (confinado em duas dimensões) transporta carga quando uma voltagem é
FORTRAN 90 Denise Yumi Takamura.
INTRODUÇÃO À COMPUTAÇÃO PARALELA
Estruturas de Dados para projeto de SGBD. Estruturas de dados analisadas Estruturas de nível Esparso Denso Combinadas Arvore B+ Tabela de hash.
Prof. Marcelo Diniz Fonte:
Treinamento GP3 USP – GEFIM Abril de 2004 Alcides Pietro, PMP.
Sistemas Operacionais
Prof. Dr. Helder Anibal Hermini
Cecilia Rocha Ryerson University, Canada Seminário: Políticas Públicas e SAN CERESAN,Universidade Federal Fluminense (UFF) Niterói, 07/10/2010.
Reconstrução filogenética: Inferência Bayesiana
1. Equivalência entre portas 2. Derivação de expressões booleanas 3
Criptografia Quântica : Um Estudo
Compressão por Hardware
Servidores e Programação Web Redes de Computadores.
Mais sobre classes Baseada no Livro: Deitel&Deitel - C++ How To program Cap. 7 Prentice Hall 1994 SCE 213 Programação Orientada a Objetos, ICMC - USP 2.
O Fluxo de Testes © Alexandre Vasconcelos
1 © 2005 by Pearson Education O que é Internet? 1.2 Borda da rede 1.3 Núcleo da rede 1.4 Acesso à rede e meio físico 1.5 Estrutura da Internet.
Mestrado em Engenharia Elétrica - UFPR
1 Rejane Ramos Uma Estrutura para Protocolos Maleáveis de Roteamentos na Internet CURITIBA 2004 Trabalho apresentada à Disciplina de Comunicação de Dados.
Serviços Integrados na Arquitetura da Internet Apresentação: Fernando Nadal.
Redes de Computadores MR-OSI
Planejando seu site Objetivos Abordagem Sílvia Dota.
CT-300 – Seminário de Tese 1/25 Um Framework Padrão para Simulação de Modelos de Robôs Móveis de Robôs Móveis Juliano A. Pereira Prof. Carlos H. C. Ribeiro.
1. Função: - Criar meios para que o processador possa comunicar-se com todos estes componentes com a maior velocidade e confiabilidade possíveis. - Na.
Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação.
TA 733 A – Operações Unitárias II
I – Informação Digital – Tema de Discussão Escola Politécnica da USP MBA EPUSP em Gestão e Engenharia do Produto EP018 O Produto Internet e suas Aplicações.
I – Comunicação – Redes – Física / Enlace Escola Politécnica da USP MBA EPUSP em Gestão e Engenharia do Produto EP018 O Produto Internet e suas Aplicações.
I – Informação Digital – Trabalho Grupo Escola Politécnica da USP MBA EPUSP em Gestão e Engenharia do Produto EP-018 – O Produto Internet e suas Aplicações.
FUNDAÇÃO CARLOS CHAGAS
Implementação Do JXTA Como Protocolo De Transporte Do JacORB
TÉCNICAS DE CODIFICAÇÃO DE SINAIS
TÉCNICAS DE CODIFICAÇÃO DE SINAIS
TE 043 CIRCUITOS DE RÁDIO-FREQÜÊNCIA
Introdução à Codificação de Canal Evelio M. G. Fernández
Divisão em Camadas Exemplo: Uma viagem aérea.
Camada de transporte Objetivos do capítulo:
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
Redes Embutidas - Prof a Luiza Mourelle 1 1 Topologias As topologias de redes intrachip podem ser agrupadas em duas classes principais: as redes diretas.
Recursividade Estrutura de Dados.
The Data Warehouse Toolkit
Conceitos, Arquiteturas e Protocolos
Redes para Automação Industrial Luiz Affonso Guedes
LINGUAGENS DE PROGRAMAÇÃO
Internet Aula 03. Histórico Durante a guerra fria, os EUA tiveram a necessidade de interligar laboratórios que trabalhavam para os militares; Essa interligação.
Capítulo 2: Introdução às Redes de Computadores
Conceitos Básicos de Redes de Computadores e acesso a Internet
Sistemas Operacionais e Windows XP Aula 04 – DCA0302.
04:27 Introdução Tipos de Fluxo de Dados e de Arquivos Manipulação de Arquivos em Java Classes FileReader e FileWriter Classes FileInputStream e FileOutputStream.
SUPERVISÃO E CONTROLE OPERACIONAL DE SISTEMAS Prof. André Laurindo Maitelli DCA-UFRN.
Paulo Roberto Freire Cunha
3: Camada de Transporte3a-1 Capítulo 3: Camada de Transporte Objetivos: compreender os princípios atrás dos serviços da camada de transporte: multiplexação/
Anália Lima (alc5) Bruno Gentilini (bgda) Eduardo Souza (efs) Ivan França (ilfn) Infra-Estrutura de comunicação Aula Prática Programação de Sockets TCP.
Infra-Estrutura de Comunicação (IF678) Aula Prática 02 – CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando.
Comparação entre as camadas
Capítulo 3: Camada de Transporte
1 2 Observa ilustração. Cria um texto. Observa ilustração.
3: Camada de Transporte3a-1 Chapter 3 Camada de Transportes Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose,
CALENDÁRIO SEXY Ele & Ela. CALENDÁRIO SEXY Ele & Ela.
ESPECIFICAÇÃO de PROTOCOLOS de TRANSPORTE
Rio Verde - Goiás - Brasil
Redes de computadores e a Internet
3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r entender os princípios atrás dos serviços da camada de transporte: m.
responsabilidades dessas camadas?
Transcrição da apresentação:

Prof. Marcelo Diniz Fonte: http://wps.aw.com/br_kurose_rede_1/ Redes de Computadores 1 Prof. Marcelo Diniz Fonte: http://wps.aw.com/br_kurose_rede_1/ 3: Camada de Transporte

Capítulo 3: Camada de Transporte Metas do capítulo: entender 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 sobre os protocolos da camada de transporte da Internet: UDP: transporte não orientado a conexões TCP: transporte orientado a conexões Controle de congestionamento do TCP 3: Camada de Transporte

Conteúdo do Capítulo 3 3.1 Serviços da camada de transporte 3.2 Multiplexação e demultiplexação 3.3 Transporte não orientado para conexão: UDP 3.4 Princípios da transferência confiável de dados 3.6 Princípios de controle de congestionamento 3: Camada de Transporte

Serviços e protocolos de transporte aplicação transporte rede enlace física transporte lógico fim a fim fornecem comunicação lógica entre processos de aplicação executando em diferentes hospedeiros os protocolos de transporte são executados nos sistemas finais: lado transmissor: quebra as mensagens da aplicação 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

Camadas de Transporte x rede Analogia doméstica: 12 crianças enviando cartas para 12 crianças processos = crianças mensagens da apl. = cartas nos envelopes hospedeiros = casas protocolo de transporte = Anna e Bill 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 os processos depende de, estende serviços da camada de rede 3: Camada de Transporte

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 “gorduras” do “melhor esforço” do IP serviços não disponíveis: garantias de atraso máximo garantias de largura de banda mínima 3: Camada de Transporte

Conteúdo do Capítulo 3 3.1 Serviços da camada de transporte 3.2 Multiplexação e demultiplexação 3.3 Transporte não orientado para conexão: UDP 3.4 Princípios da transferência confiável de dados 3.6 Princípios de controle de congestionamento 3: Camada de Transporte

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

Como funciona a demultiplexação computador 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) O hospedeiro usa os endereços IP e os números das portas para direcionar o segmento ao socket apropriado porta origem porta destino 32 bits dados da aplicação (mensagem) outros campos do cabeçalho formato de segmento TCP/UDP 3: Camada de Transporte

Demultiplexação não orientada a conexões Quando o hospedeiro 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 podem ser encaminhados para o mesmo socket Cria sockets com números de porta: DatagramSocket mySocket1 = new DatagramSocket(9911); DatagramSocket mySocket2 = new DatagramSocket(9922); socket UDP identificado pela dupla: (end IP dest, no. da porta destino) 3: Camada de Transporte

Demultiplexação não orientada a 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) fornece “endereço de retorno” 3: Camada de Transporte

Demultiplexação Orientada a Conexões Socket TCP identificado pela quádrupla: 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 quádrupla 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

Demultiplexação Orientada a Conexões (cont) cliente IP: A P4 P5 P6 P2 P1 P3 SP: 5775 DP: 80 S-IP: B D-IP:C SP: 9157 SP: 9157 DP: 80 DP: 80 Cliente IP:B servidor IP: C S-IP: A S-IP: B D-IP:C D-IP:C 3: Camada de Transporte

Demultiplexação Orientada a Conexões: Servidor Web com Threads cliente IP: A P4 P2 P1 P3 SP: 5775 DP: 80 S-IP: B D-IP:C SP: 9157 SP: 9157 DP: 80 DP: 80 Cliente IP:B servidor IP: C S-IP: A S-IP: B D-IP:C D-IP:C 3: Camada de Transporte

Conteúdo do Capítulo 3 3.1 Serviços da camada de transporte 3.2 Multiplexação e demultiplexação 3.3 Transporte não orientado para conexão: UDP 3.4 Princípios da transferência confiável de dados 3.6 Princípios de controle de congestionamento 3: Camada de Transporte

UDP: User Datagram Protocol [RFC 768] Protocolo de transporte da Internet mínimo, “sem gorduras”, Serviço “melhor esforço”, segmentos UDP podem ser: perdidos entregues à aplicação fora de ordem 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 nem no remetente, nem no receptor cabeçalho de segmento reduzido Não há controle de congestionamento: UDP pode transmitir tão rápido quanto desejado (e possível) 3: Camada de Transporte

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

Soma de Verificação (checksum) UDP Objetivo: detectar “erros” (ex.: bits trocados) no segmento transmitido Transmissor: 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 transmissor coloca complemento do valor da soma no campo checksum de UDP Receptor: calcula checksum do segmento recebido verifica se checksum computado é tudo um ‘FFFF’: NÃO - erro detectado SIM - nenhum erro detectado. Mas ainda pode ter erros? Veja depois …. 3: Camada de Transporte

Exemplo do Checksum Internet Note que: Ao adicionar números, o transbordo (vai um) do bit mais significativo deve ser adicionado ao resultado Exemplo: adição de dois inteiros de 16-bits 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 Kurose and Ross forgot to say anything about wrapping the carry and adding it to low order bit transbordo soma soma de verificação 3: Camada de Transporte

Conteúdo do Capítulo 3 3.1 Serviços da camada de transporte 3.2 Multiplexação e demultiplexação 3.3 Transporte não orientado para conexão: UDP 3.4 Princípios da transferência confiável de dados 3.6 Princípios de controle de congestionamento 3: Camada de Transporte

Princípios de Transferência confiável de dados (rdt) importante nas camadas de transporte, 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

Transferência confiável: o ponto de partida rdt_send(): chamada de cima, (ex.: pela apl.). Passa dados p/ serem entregues à camada sup. do receptor deliver_data(): chamada pela entidade de transporte p/ entregar dados p/ camada superior lado transmissor lado receptor udt_send(): chamada pela entidade de transporte, p/ transferir pacotes para o receptor sobre o canal não confiável rdt_rcv(): chamada quando pacote chega no lado receptor do canal 3: Camada de Transporte

rdt1.0: transferência confiável sobre canais confiáveis Canal de transmissão perfeitamente confiável não há erros de bits não há perda de pacotes Funcionamento transmissor e receptor: transmissor envia dados pelo canal receptor lê os dados do canal 3: Camada de Transporte

rdt2.0: canal com erros de bits Como recuperar esses erros? reconhecimentos (ACKs): receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente reconhecimentos negativos (NAKs): receptor avisa explicitamente ao transmissor que o pacote tinha erros transmissor reenvia o pacote ao receber um NAK novos mecanismos no rdt2.0 (em relação ao rdt1.0): detecção de erros retorno ao transmissor: mensagens de controle (ACK,NAK) receptor->transmissor 3: Camada de Transporte

rdt2.0 tem uma falha fatal! O que acontece se o ACK/NAK for corrompido? Transmissor não sabe o que se passou no receptor! não pode apenas retransmitir: possibilidade de pacotes duplicados O que fazer? retransmitir, mas pode causar retransmissão de pacote recebido certo! Lidando c/ duplicatas: transmissor inclui número de seqüência em cada pacote transmissor retransmite o último pacote se ACK/NAK chegar com erro receptor descarta (não entrega a aplicação) pacotes duplicados 3: Camada de Transporte

rdt3.0: canais com erros e perdas Nova hipótese: canal de transmissão também pode perder pacotes (dados ou ACKs) checksum, nº. de seq., ACKs, retransmissões podem ajudar, mas não serão suficientes P: como lidar com perdas? transmissor espera até ter certeza que se perdeu pacote ou ACK, e então retransmite desvantagens? Abordagem: transmissor aguarda um tempo “razoável” pelo ACK retransmite se nenhum ACK for recebido neste intervalo se pacote (ou ACK) apenas atrasado (e não perdido): retransmissão será duplicata, mas uso de no. de seq. já cuida disto receptor deve especificar nº. de seq do pacote sendo reconhecido requer temporizador 3: Camada de Transporte

Conteúdo do Capítulo 3 3.1 Serviços da camada de transporte 3.2 Multiplexação e demultiplexação 3.3 Transporte não orientado para conexão: UDP 3.4 Princípios da transferência confiável de dados 3.6 Princípios de controle de congestionamento 3: Camada de Transporte

Princípios de Controle de Congestionamento informalmente: “muitas fontes enviando dados acima da capacidade da rede de tratá-los” diferente de controle de fluxo! Sintomas: perda de pacotes (saturação de buffers nos roteadores) longos atrasos (enfileiramento nos buffers dos roteadores) um dos 10 problemas mais importantes em redes! 3: Camada de Transporte

Causas/custos de congestionamento: cenário 1 dois remetentes, dois receptores um roteador, buffers infinitos sem retransmissão grandes retardos qdo. congestionada máxima vazão alcançável 3: Camada de Transporte

Causas/custos de congestionamento: cenário 2 Um roteador, buffers finitos retransmissão pelo remetente de pacote perdido Hospedeiro A lout lin : dados originais Hospedeiro C l'in : dados originais mais dados retransmitidos Hospedeiro B Buffers de enlace de saída finitos compartilhados Hospedeiro D 3: Camada de Transporte

Causas/custos de congestionamento: cenário 3 quatro remetentes caminhos com múltiplos enlaces temporização/retransmissão Hospedeiro A lout lin : dados originais l'in : dados originais mais dados retransmitidos Buffers de enlace de saída finitos compartilhados Hospedeiro B 3: Camada de Transporte

Abordagens de controle de congestionamento Duas abordagens gerais para controle de congestionamento: Controle de congestionamento fim a fim : não usa realimentação explícita da rede congestionamento é inferido a partir das perdas, e dos atrasos observados nos sistemas finais abordagem usada pelo TCP Controle de congestionamento assistido pela rede: roteadores enviam informações para os sistemas finais bit indicando congestionamento taxa explícita para envio pelo transmissor 3: Camada de Transporte