Transporte Referência:

Slides:



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

Capítulo 3: Camada de Transporte
TCP: Visão geral RFCs: 793, 1122, 1323, 2018, 2581 ponto a ponto:
Missão da camada de enlace Serviços oferecidos TCP UDP
Capítulo 3: Camada de Transporte
Bruno Rafael de Oliveira Rodrigues
Redes I Os Protocolos Prof. Dr. Amine BERQIA
TCP: Visão geral RFCs: 793, 1122, 1323, 2018, 2581 Ponto-a-ponto:
FEUPDEECRedes de Computadores, 4º Ano de EEC, ramo de ACI TCP (Transmission Control Protocol) Abril, 98Isidro Vila Verde 1 Aspectos Gerais.
URL: Redes Prof. Edgard Jamhour URL:
Capítulo 3: Camada de Transporte
TCP: Visão geral RFCs: 793, 1122, 1323, 2018, 2581 ponto a ponto:
Capítulo 3: Camada de Transporte
Conteúdo do Capítulo Serviços da camada de transporte
Conteúdo do Capítulo Serviços da camada de transporte
Capítulo 3: Camada de Transporte
Interação Cliente Servidor
TCP Serviço de Transporte Confiável
TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 ponto-a-ponto:
Camada de Transporte Teleprocessamento e Redes
Desempenho do Controle de Congestionamento
3: Camada de Transporte1 Metas do capítulo: compreender os princípios atrás dos serviços da camada de transporte: o entrega de segmentos o transferência.
Prof. Marcelo Diniz Fonte:
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/
Comutação Comutação ou chaveamento em uma rede de comunicação refere-se a alocação de recursos da rede (meios de transmissão e equipamentos) para a envio.
Obtenção de IP TCP UDP.
Universidade do Vale do Rio dos Sinos - São Leopoldo -
REVISÃO MÓDULO 3(Camada de Transporte)
TCP (Transmission Control Protocol)
PROTOCOLOS DE COMUNICAÇÃO
Escola Secundária Filipa de Vilhena Ano Lectivo 2010/ Turma IGR1
Software de Rede Willamys Araújo.
Modelo de referência OSI
Interconexão e Transporte em Redes
User Datagram Protocol
URI - Santo Ângelo - DECC
Comparação entre as camadas
Direita ou esquerda ??? ? 3: Nível de Transporte.
Camada de Transporte OSI
Aula 64 – TEC 11ºF Redes de computadores Prof. António dos Anjos.
Capítulo 3: Camada de Transporte
Camada de Transporte prof. Eduardo.
Transmission Control Protocol TCP
ESPECIFICAÇÃO de PROTOCOLOS de TRANSPORTE
Transmission Control Protocol TCP
Comunicação de dados Protocolos básicos de enlace de dados.
Protocolos de Janela Deslizante
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando.
TCP Conexão Fiabilidade Full Duplex Entrega ordenada Controlo de fluxo
Escola Secundaria Sebastião da Gama Trabalho realizado por: André Santos 12ºL nº:2 Prof: Carlos Pereira.
REDES DE COMPUTADORES Camada de Transporte Professor: M.Sc. Carlos Oberdan Rolim.
Camada de Transporte: protocolo TCP Parte 1
MODELO DE REFERÊNCIA TCP/IP
Protocolo TCP e UDP Ricardo Costa Nº 10 12ºL.
Disciplina: Comunicação de Dados Ricardo Bento 12ºL.
Arquitectura tcp. Camada tcp Ao contrário do protocolo UDP, o TCP representa um grande incremento de qualidade relativamente ao protocolo IP que lhe serve.
1) A camada de transporte provê comunicação lógica entre hosts.
TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 ponto-a-ponto:
Redes de computadores: Camada de Transporte Prof. Dr. Amine BERQIA
Arquitetura TCP/IP Aplicação Transporte Rede Enlace Física.
Rede de Computadores MAT164 – Redes de Computadores I Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação.
Administração e Projeto de Redes Material de apoio Camada de Transporte Cap.4 10/02/2010.
Redes de computadores e a Internet
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando.
3: Camada de Transporte 3b-1 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 Transporte não orientado.
Prof. Ivair Teixeira Redes de Computadores.
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.
Curso Superior em Redes de Computadores Camada de Transporte Prof. Sales Filho.
Escola de Ciência e Tecnologia Arquitetura TCP/IP Arquitetura TCP/IP Protocolos TCP, UDP e ICMP Etienne César R. de Oliveira
Transcrição da apresentação:

Transporte Referência: Slides extraídos do material dos professores Jim Kurose e Keith Ross relativos ao livro “Redes de Computadores e a Internet – Uma abordagem top- down”, segunda e terceira edições Alterações nos slides, incluindo sequenciamento, textos, figuras e novos slides, foram realizadas conforme necessidade

Protocolos e Serviços de Transporte Fornecem comunicação lógicas entre processos de aplicação em diferentes hosts Os protocolos de transporte são executados nos sistemas finais da rede serviço de transporte vs serviços de rede : camada de rede: transferência de dados entre computadores (end systems) camada de transporte: transferência de dados entre processos utiliza e aprimora os serviços oferecidos pela camada de rede aplicação transporteeerede enlace física transporte lógico fim-a-fim rede enlace física rede enlace física rede enlace física rede enlace física rede enlace física aplicação transporte rede enlace física

Protocolos da Camada de Transporte Serviços de Transporte da Internet: confiável, seqüencial e unicast (TCP) congestionamento controle de fluxo orientado à conexão não confiável, não seqüencial, entrega unicast or multicast: UDP serviços não disponíveis: tempo-real garantia de banda multicast confiável application transporte rede enlace física transporte lógico fim-a-fim rede enlace física rede enlace física rede enlace física rede enlace física rede enlace física application transporte rede enlace física

Multiplexação de Aplicações Segmento - unidade de dados trocada entre entidades da camada de transporte TPDU: transport protocol data unit (unidade de dados do protocolo de transporte) Demultiplexação: entrega de segmentos recebidos aos processos de aplicação corretos receptor P3 P4 dados da camada de aplicação M M aplicação transporte rede cabeçalho do segmento P1 P2 M M aplicação transporte rede aplicação transporte rede segmento H t M H n segmento

Multiplexação de Aplicações reunir dados de múltiplos processo de aplicação, juntar cabeçalhos com informações para demultiplexação 32 bits porta origem porta destino outros campos de cabeçalho multiplexação/demultiplexação: baseada nos número de porta do transmissor, número de porta do receptor e endereços IP números de porta origem e destino em cada segmento lembre: portas com números bem-conhecidos são usadas para aplicações específicas dados de aplicação (mensagem) formato do segmento TCP/UDP

Multiplexação: exemplos porta origem: x porta dest.: 23 cliente Web host C host A servidor B porta origem:23 port dest.: x IP Origem: C IP Dest: B porta origem: y porta dest.: 80 IP Origem: C IP Dest: B porta origem: x porta dest.: 80 aplicação Telnet IP Origem: A IP Dest: B porta origem : x porta dest.: 80 Servidor Web B cliente Web host A aplicação: servidor Web

UDP: User Datagram Protocol [RFC 768] protocolo de transporte da Internet “sem gorduras” “sem frescuras” serviço “best effort” , segmentos UDP podem ser: perdidos entregues fora de ordem para a aplicação sem conexão: não há apresentação entre o UDP transmissor e o receptor cada segmento UDP é tratado de forma independente dos outros Porque existe um UDP? não há estabelecimento de conexão (que pode redundar em atrasos) simples: não há estado de conexão nem no transmissor, nem no receptor cabeçalho de segmento reduzido não há controle de congestionamento: UDP pode enviar segmentos tão rápido quanto desejado (e possível)

formato do segmento UDP Mais sobre UDP muito usado por aplicações de mutimídia contínua (streaming) tolerantes à perda sensíveis à taxa outros usos do UDP: DNS SNMP transferência confiável sobre UDP: acrescentar confiabilidade na camada de aplicação recuperação de erro específica de cada aplicação 32 bits porta origem porta destino Tamanho, em bytes do segmento UDP, incluíndo cabeçalho tamanho checksum Dados de Aplicação (mensagem) formato do segmento UDP

UDP checksum Objetivo: detectar “erros” (ex.,bits trocados) no segmento transmitido Transmissor: trata o conteúdo do segmento como seqüencia de inteiros de 16 bits checksum: soma (complemento de 1 da soma) do conteúdo do segmento transmissor coloca o valor do checksum no campo de checksum do UDP Receptor: computa o checksum do segmento recebido verifica se o checksum calculado é igual ao valor do campo checksum: NÃO - error detectado SIM - não há erros. Mas, talvez haja erros apesar disto!

Princípios de Transferência Confiável de Dados Importante nas camadas de aplicação, transporte e enlace Caracteristicas dos canais não confiáveis determinarão a complexidade dos protocolos confiáveis de transferência de dados Necessário usar ACKs (e também NACKs, mas são desnecessários)

Há um problema fatal! O que acontece se o ACK é corrompido? transmissor não sabe o que aconteceu no receptor! não pode apenas retransmitir: possível duplicata O que fazer? Transmissor envia ACKs para reconhecer os ACKs do receptor? O que acontece se estes ACKs se perdem? retransmitir os ACKs, mas isto poderia causar a retransmissão de um pacote recebido corretamente! Tratando duplicatas: transmissor acrescenta número de seqüência em cada pacote Transmissor reenvia o último pacote se ACK for perdido receptor descarta (não passa para a aplicação) pacotes duplicados stop and wait Transmissor envia um pacote e então espera pela resposta do receptor

Discussão (Stop and Wait) Transmissor: adiciona número de seqüência ao pacote Dois números (0 e 1) bastam. Porque? deve verificar se os ACKs recebidos estão corrompidos estado da transmissão deve “lembrar” se o pacote “corrente” tem número de seqüência 0 ou 1 Receptor: deve verificar se o pacote recebido é duplicado estado indica se o pacote 0 ou 1 é esperado nota: receptor pode não saber se seu últino ACK foi recebido pelo transmissor

Protocolos com Paralelismo (pipelining) Paralelismo: transmissor envia vários pacotes “ao mesmo tempo” (em seqüência), todos esperando para serem reconhecidos faixa de números de seqüência deve ser aumentada armazenamento no transmissor e/ou no receptor (a) operação do protocolo stop-and-wait (a) operação do protocolo com paralelismo Duas formas genéricas de protocolos com paralelismo: go- Back-N, retransmissão seletiva

Go-Back-N Transmissor: Número de seqüência com k bits no cabeçalho do pacote “janela” de até N, pacotes não reconhecidos, consecutivos, são permitidos ACK(n): reconhece todos os pacotes até o número de seqüência N (incluindo este limite). “ACK cumulativo” pode receber ACKS duplicados (veja receptor) temporizador para cada pacote enviado e não confirmado timeout(n): retransmite pacote n e todos os pacotes com número de seqüência maior que estejam dentro da janela

GBN em ação

Retransmissão Seletiva receptor reconhece individualmente todos os pacotes recebidos corretamente armazena pacotes, quando necessário, para eventual entrega em ordem para a camada superior transmissor somente reenvia os pacotes para os quais um ACK não foi recebido transmissor temporiza cada pacote não reconhecido janela de transmissão N números de seqüência consecutivos novamente limita a quantidade de pacotes enviados, mas não reconhecidos

Retransmissão seletiva: janelas do transmissor e do receptor (a) visão dos números de seqüência pelo transmissor (b) visão dos números de seqüência pelo receptor

Retransmissão seletiva em ação

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 ponto-a-ponto: um transmissor, um receptor confiável, seqüêncial byte stream: não há distorção nas mensagens pipelined: (transmissão de vários pacotes em confirmação) Controle de congestionamento e de fluxo definem tamanho da janela buffers de transmissão e de recepção dados full-duplex: transmissão bi-direcional na mesma conexão MSS: maximum segment size orientado à conexão: handshaking (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados controle de fluxo: transmissor não esgota a capacidade do receptor socket port TCP buffe de txr buffer de rx segment aplicação envia dados lê dados

Estrutura do Segmento TCP 32 bits URG: dados urgentes (pouco usado) contagem por bytes de dados (não segmentos!) porta origem porta destino número de seqüência ACK: campo de ACK é válido número de reconhecimento tam. cabec. não usado PSH: produz envio de dados (pouco usado) U A P R S F janela de recep. checksum dados urgentes número de bytes receptor está pronto para aceitar RST, SYN, FIN: estabelec. de conexão (comandos de criação e término) Opções (tamanho variável) dados de aplicação (tamanho variável) Internet checksum (como no UDP)

Números de Seqüência e ACKs do TCP número do primeiro byte no segmentos de dados ACKs: número do próximo byte esperado do outro lado ACK cumulativo: forma como o receptor trata segmentos fora de ordem alguns pontos ficam a critério da implementação como fazer Host A Host B Usuário digita ‘C’ Seq=42, ACK=79, data = ‘C’ host confirma recepção de ‘C’, e ecoa o ’C’ de volta Seq=79, ACK=43, data = ‘C’ host confirma recepção do ‘C’ ecoado Seq=43, ACK=80 tempo cenário telnet simples

TCP: Estabelecimento de Conexão TCP transmissor estabelece conexão com o receptor, antes mesmo de enviar 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

TCP: Término de Conexão 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. 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.

armazenamento de recepção TCP: Controle de Fluxo controle de fluxo receptor: explicitamente informa o transmissor da área livre no buffer (dinamicamente mudando) campo RcvWindow no segmento TCP transmissor: mantém a quantidade de dados transmitidos mas não reconhecidos menor que o último RcvWindow recebido transmissor não deve esgotar os buffers de receção enviando dados rápido demais RcvBuffer = tamanho do Buffer de recepção do TCP RcvWindow = total de espaço livre no buffer armazenamento de recepção

TCP Round Trip Time e Temporização Q: como escolher o valor da temporização do TCP (time-out)? maior que o RTT nota: RTT varia muito curto: temporização prematura retransmissões desnecessárias muito longo: a reação à perda de segmento fica lenta Q: Como estimar o RTT? SampleRTT: tempo medido da transmissão de um segmento até a respectiva confirmação ignora retransmissões e segmentos reconhecidos de forma cumulativa SampleRTT varia de forma rápida, é desejável um amortecedor para a estimativa do RTT usar várias medidas recentes, não apenas o último SampleRTT obtido

TCP Round Trip Time e Temporização EstimatedRTT = (1-x)*EstimatedRTT + x*SampleRTT Média móvel com peso exponential influencia de uma dada amostra decresce de forma exponencial valor típico de x: 0.1 Definindo a temporização EstimtedRTT mais “margem de segurança” grandes variações no EstimatedRTT -> maior margem de segurança Temporização = EstimatedRTT + 4*Desvios Desvios = (1-x)*Desvio + x*|SampleRTT-EstimatedRTT|

TCP Round Trip Time e Temporização

Princípios de Controle de Congestionamento informalmente: “muitas fontes enviando dados acima da capacidade da rede tratá-los” diferente de controle de fluxo! sintomas: perda de pacotes (saturação de buffer nos roteadores) atrasos grandes (filas nos buffers dos roteadores) um dos 10 problemas mais importantes na Internet!

Causas/custos do congestionamento Causas/custos do congestionamento: cenário 3  in  in  Quatro transmissores  Caminhos com múltiplos saltos  Temporizações/retransmissões P.: o que acontece quando e aumentam?

TCP: Controle Congestionamento controle fim-a-fim (não há assistência da rede) taxa de transmissão é limitada pelo tamanho da janela, Congwin, sobre os segmentos: Congwin w segmentos, cada um com MSS bytes enviados em um RTT: vazão = w * MSS RTT Bytes/seg

TCP: Controle Congestionamento Realiza um “teste” para reconhecer a taxa possível: idealmente: transmitir tão rápido quanto possível (Congwin tão grande quanto possível) sem perdas aumentar Congwin até que ocorra perda (congestionamento) perda: diminuir Congwin, então ir testando (aumentando) outra vez Duas “fases”” slow start congestion avoidance Variáveis importantes: Congwin threshold: define o limite entre a fase slow start e a fase congestion avoidance

TCP Slowstart algoritmo Slowstart Congwin++ Host A Host B algoritmo Slowstart one segment initializar: Congwin = 1 para (cada segmento reconhecido Congwin++ até (evento perda OU CongWin > threshold) RTT two segments four segments aumento exponencial (por RTT) no tamanho da janela (não tão lento!) evento de perda : temporização (Tahoe TCP) e/ou 3 ACKs duplicados (Reno TCP) tempo

TCP: Congestion Avoidance /* acabou slowstart */ /* Congwin > threshold */ Até (evento perda) { cada w segmentos “acked”: Congwin++ } threshold = Congwin/2 Congwin = 1 (*) realiza slowstart (*) (*) TCP Reno pula a fase slowstart (recuperaçaõ rápida) após três ACKs duplicados

Retransmissão Rápida TCP AIMD Com freqüência, o tempo de expiração é relativamente longo: Longo atraso antes de reenviar um pacote perdido Pode-se detectar segmentos perdidos por meio de ACKs duplicados: - Transmissor freqüentemente envia muitos segmentos ao receptor - Se um segmento é perdido, haverá desordenamento e, portanto, muitos ACKs duplicados. ACK duplicado: receptor reenvia ACK do último byte de dados recebido em ordem qdo chega um segmento fora de ordem Se o transmissor recebe 3 ACKs para o mesmo dado, ele supõe que o segmento após o dado confirmado foi perdido: Retransmissão rápida: perda é decretada e reenvia-se o segmento antes do temporizador expirar

TCP AIMD AIMD Redução multiplicativa: diminui o CongWin pela metade após o evento de perda Aumento aditivo: aumenta o CongWin com 1 MSS a cada RTT na ausência de eventos de perda: probing conexão TCP de longa-vida

Eqüidade do TCP Objetivo de eqüidade: se K sessões TCP compartilham o mesmo enlace do gargalo com largura de banda R, cada uma deve ter taxa média de R/K

Porque o TCP é justo? Duas sessões competindo pela banda:  O aumento aditivo fornece uma inclinação de 1, quando a vazão aumenta  Redução multiplicativa diminui a vazão proporcionalmente perda: reduz janela por um fator de 2 prevenção de congestionamento: aumento aditivo

Eqüidade Eqüidade do TCP Eqüidade e UDP  Aplicações multimedia normalmente não usam TCP  Não querem a taxa estrangulada pelo controle de congestionamento  Em vez disso, usam UDP:  Trafega áudio/vídeo a taxas constantes, toleram perda de pacotes várea de pesquisa: TCP amigável Eqüidade e conexões TCP paralelas  Nada previne as aplicações de abrirem conexões paralelas entre 2 hosts.  Web browsers fazem isso  Exemplo: enlace de taxa R suportando 9 conexões;  Novas aplicações pedem 1 TCP, obtém taxa de R/10  Novas aplicações pedem 11 TCPs, obtém R/2!