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

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

© 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.

Apresentações semelhantes


Apresentação em tema: "© 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."— Transcrição da apresentação:

1 © 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 estes slides gratuitamente a todos (professores, alunos, leitores). Eles estão em formato do PowerPoint para que você possa incluir, modificar e excluir slides (incluindo este) e o conteúdo do slide, de acordo com suas necessidades. Eles obviamente representam muito trabalho da nossa parte. Em retorno pelo uso, pedimos apenas o seguinte: Se você usar estes slides (por exemplo, em sala de aula) sem muita alteração, que mencione sua fonte (afinal, gostamos que as pessoas usem nosso livro!). Se você postar quaisquer slides sem muita alteração em um site Web, que informe que eles foram adaptados dos (ou talvez idênticos aos) nossos slides, e inclua nossa nota de direito autoral desse material. Obrigado e divirta-se! JFK/KWR Todo o material copyright 1996-2009 J. F Kurose e K. W. Ross, Todos os direitos reservados. © 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 1

2 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 2 Nota sobre o uso destes slides ppt: Partes dos slides originais foram suprimidas ou alteradas para adaptar o material à ementa da disciplina Redes 1 da Unirio. Todo o material copyright 1996-2009 J. F Kurose e K. W. Ross, Todos os direitos reservados. © 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 2 Capítulo 3 Camada de transporte

3 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 3 Capítulo 3: Camada de transporte Objetivos do capítulo: r entender princípios por trás dos serviços da camada de transporte: m multiplexação/demul- tiplexação m transferência de dados confiável m controle de fluxo m controle de congestionamento r aprender sobre os protocolos da camada de transporte na Internet: m UDP: transporte sem conexão m TCP: transporte orientado a conexão m controle de congestionamento TCP

4 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 4 Capítulo 3: Esboço r 3.1 Serviços da camada de transporte r 3.2 Multiplexação e demultiplexação r 3.3 Transporte não orientado para conexão: UDP r 3.4 Princípios da transferência confiável de dados r 3.5 Transporte orientado para conexão: TCP m estrutura de segmento m transferência confiável de dados m controle de fluxo m gerenciamento da conexão r 3.6 Princípios de controle de congestionamento r 3.7 Controle de congestionamento no TCP

5 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 5 Serviços e protocolos de transporte r oferecem comunicação lógica entre processos de aplicação rodando em hospedeiros diferentes r protocolos de transporte rodam em sistemas finais m lado remetente: divide as msgs da aplicação em segmentos, passa à camada de rede m lado destinatário: remonta os segmentos em msgs, passa à camada de aplicação r mais de um protocolo de transporte disponível às aplicações m Internet: TCP e UDP aplicação transporte rede enlace física aplicação transporte rede enlace física transporte lógico fim a fim

6 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 6 rede enlace física rede enlace física Protocolos da camada de transporte da Internet r remessa confiável mantendo ordem das mensagens (TCP) m estabelecimento de conexão m controle de congestionamento m controle de fluxo r remessa não confiável e sem garantia de ordem: UDP m extensão sem luxo do IP, apenas agregando números das porta de protocolo r serviços não disponíveis (nem no TCP, nem no UDP): m garantias de atraso m garantias de largura de banda aplicação transporte rede enlace física network data link physical rede enlace física rede enlace física rede enlace física rede enlace física aplicação transporte rede enlace física logical end-end transport

7 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 7 Capítulo 3: Esboço r 3.1 Serviços da camada de transporte r 3.2 Multiplexação e demultiplexação r 3.3 Transporte não orientado para conexão: UDP r 3.4 Princípios da transferência confiável de dados r 3.5 Transporte orientado para conexão: TCP m estrutura de segmento m transferência confiável de dados m controle de fluxo m gerenciamento da conexão r 3.6 Princípios de controle de congestionamento r 3.7 Controle de congestionamento no TCP

8 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 8 Processos se comunicando processo: programa rodando dentro de um hospedeiro r no mesmo hospedeiro, dois processos se comunicam usando a comunicação entre processos (definida pelo SO). r processos em hospedeiros diferentes se comunicam trocando mensagens pela rede processo cliente: processo que inicia a comunicação processo servidor: processo que espera para ser contactado

9 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 9 Endereçando processos r para receber mensagens, processo deve ter um identificador r dispositivo hospedeiro tem endereço IP exclusivo de 32 bits  exercício: use ipconfig no prompt de comando (Windows) p/ obter seu endereço IP (ou ifconfig no Linux) r Perg.: Basta o endereço IP do hospedeiro em que o processo é executado para identificar o processo? r Resp.: Não, muitos processos podem estar rodando no mesmo hospedeiro r Identificador inclui endereço IP e números de porta associados ao processo no hospedeiro. r Num host, cada processo que usa a rede possui um número de porta m servidores usam portas pré- definidas m clientes usam portas aleatórias  use netstat no prompt de comando p/ ver portas em uso r Ex. de portas pré-definidas: m servidor HTTP: 80 m servidor de correio: 25

10 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 10 Sockets r processo envia/recebe mensagens de/para seu socket m canal de comunicação do processo com o mundo externo, gerenciado pelo SO Interface entre camada de aplicação e camada de transporte m processo enviando “empurra” mensagem pelo socket m processo enviando conta com protocolo de transporte no SO, que leva a mensagem ao socket do processo receptor m pode ser TCP ou UDP processo TCP com buffers, variáveis socket hospedeiro ou servidor processo socket Internet controlado pelo SO controlado pelo desenvolvedor da aplicação hospedeiro ou servidor TCP com buffers, variáveis

11 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 11 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 hospedeiro 1 hospedeiro 2 hospedeiro 3 = processo = socket entregando segmentos recebidos ao socket correto demultiplexação no destinatário: colhendo dados de múltiplos sockets, envelopando dados com cabeçalho (usados depois para demultiplexação) multiplexação no remetente:

12 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 12 Como funciona a demultiplexação r hospedeiro recebe datagramas IP m cada datagrama tem endereço IP de origem, endereço IP de destino m cada datagrama carrega 1 segmento da camada de transporte m cada segmento tem número de porta de origem, destino r hospedeiro usa endereços IP & números de porta para direcionar segmento ao socket apropriado # porta origem# porta destino 32 bits dados da aplicação (mensagem) outros campos de cabeçalho formato do segmento TCP/UDP

13 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 13 Demultiplexação não orientada a conexão (UDP) r servidor cria sockets com números de porta definidos: DatagramSocket mySocket1 = new DatagramSocket(12534); r socket UDP no destino identificado por tupla de apenas dois elementos: (endereço IP de destino, número da porta de destino) r quando hospedeiro recebe segmento UDP: m verifica número de porta de destino no segmento m direciona segmento UDP para socket com esse número de porta m datagramas com diferentes endereços IP de origem e/ou números de porta de origem direcionados para o mesmo socket

14 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 14 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”) oferece “porta de retorno” associada ao IP de retorno. (DP = Destination Port) Demultiplexação não orientada a conexão (UDP)

15 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 15 Demultiplexação orientada para conexão (TCP) r devido à dinâmica de funcionamento do TCP, podem haver conexões coexistindo em paralelo r socket TCP no receptor identificado por tupla de 4 elementos: m endereço IP de origem m número de porta de origem m endereço IP de destino m número de porta de destino r servidor TCP pode admitir muitos sockets TCP simultâneos: m mesma porta de destino associada a cada socket m mas cada socket é identificado por sua própria tupla de 4 r p/ex., servidores Web têm diferentes sockets para cada cliente conectado

16 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 16 Demultiplexação orientada a conexão (TCP): servidor Web threaded cliente IP:B P1 cliente IP: A P1P2 servidor IP: C SP: 9157 DP: 80 SP: 9157 DP: 80 P4 P3 D-IP:C S-IP: A D-IP:C S-IP: B SP: 5775 DP: 80 D-IP:C S-IP: B E como seriam as portas e IPs das mensagens de resposta do servidor TCP para cada cliente???

17 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 17 Capítulo 3: Esboço r 3.1 Serviços da camada de transporte r 3.2 Multiplexação e demultiplexação r 3.3 Transporte não orientado para conexão: UDP r 3.4 Princípios da transferência confiável de dados r 3.5 Transporte orientado para conexão: TCP m estrutura de segmento m transferência confiável de dados m controle de fluxo m gerenciamento da conexão r 3.6 Princípios de controle de congestionamento r 3.7 Controle de congestionamento no TCP

18 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 18 UDP: User Datagram Protocol [RFC 768 ] r protocolo de transporte da Internet “sem luxo”, básico r serviço de “melhor esforço”, segmentos UDP podem ser: m perdidos m entregues à aplicação fora da ordem r sem conexão: m sem handshaking entre remetente e destinatário UDP m cada segmento UDP tratado independente dos outros Por que existe um UDP? r sem estabelecimento de conexão (que pode gerar atraso) r mais simples, pois não guarda estado de conexão (menos processamento no servidor e no cliente) r cabeçalho de segmento pequeno (menos overhead) r sem controle de congestionamento, UDP pode transmitir à taxa mais rápida possível

19 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 19 UDP: cabeçalho e aplic. r normalmente usado para streaming de aplicações de multimídia m tolerante a perdas m sensível à taxa r outros usos do UDP m DNS (resolução de nomes) m SNMP (gerência de redes) r e para se ter transferência confiável por UDP? m algoritmo de recuperação de erro tem que ser implementado pela aplicação! # porta origem# porta dest. 32 bits dados da aplicação (mensagem) formato de segmento UDP tamanho soma verif. tamanho, em bytes, do segmento UDP, incluindo cabeçalho

20 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 20 Capítulo 3: Esboço r 3.1 Serviços da camada de transporte r 3.2 Multiplexação e demultiplexação r 3.3 Transporte não orientado para conexão: UDP r 3.4 Princípios da transferência confiável de dados r 3.5 Transporte orientado para conexão: TCP m estrutura de segmento m transferência confiável de dados m controle de fluxo m gerenciamento da conexão r 3.6 Princípios de controle de congestionamento r 3.7 Controle de congestionamento no TCP

21 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 21 Transferência confiável de dados (rdt): introdução lado remetente lado destinatário rdt_send(): chamado pela aplicação no remetente p/ enviar dados à aplicação no destinatário udt_send(): chamado pela rdt para transferir pacote por canal não confiável (unreliable channel) ao destinatário rdt_rcv(): chamado quando pacote chega no lado destinatário pelo canal não confiável deliver_data(): chamado pela rdt para enviar dados p/aplicação

22 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 22 r Pacotes podem se perder ou comrromper m soma de verificação ou CRC para detectar erros r reconhecimentos (ACKs): m destinatário diz explicitamente ao remetente que o pacote foi recebido OK m Porém ACKs podem também se perder ou corromper r emissor não fica eternamente esperando ACKs m estipula timeout para a chegada de um ACK m reenvia pacote se timeout estourar m duplicatas podem chegar no destinatário caso timeout no emissor estoure antes da chegada do ACK m emissor precisa saber de qual pacote se refere o ACK r pacotes e ACKs numerados p/ identificar duplicatas Transferência confiável de dados:

23 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 23 tratando de duplicatas: r destinatário descarta (não sobe para aplicação) pacote duplicado e envia novo ACK r emissor ignora ACKs duplicados Transferência confiável de dados: podem ser usados ACKs cumulativos: r envia ACK identificando último pacote recebido numa sequência r emissor entende que pacotes anteriores foram recebidos corretamente m pressupõe (re-)ordenamento de pacotes no destinatário

24 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 24 Transferência confiável de dados: Stop-and-Wait r Só envia novo pacote quando o anterior é confirmado

25 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 25 Transferência confiável de dados: Stop-and-Wait

26 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 26 Transferência confiável de dados: Stop-and-Wait

27 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 27 Paralelismo: utilização aumentada Aumento de utilização por fator de 3!

28 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 28 Protocolos com paralelismo paralelismo: remetente permite múltiplos pacotes “no ar”, ainda a serem reconhecidos m intervalo de números de sequência deve ser aumentado m buffering no remetente e/ou destinatário r duas formas genéricas de protocolo com paralelismo: Go-Back-N, repetição seletiva

29 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 29 Protocolos com paralelismo Go-back-N: visão geral r remetente: até N pacotes não reconhecidos no canal r destinatário: só envia ACKs cumulativos m não envia ACK se houver uma lacuna (pacote recebido fora de ordem) r remetente: tem temporizador para pacote sem ACK mais antigo m se o temporizador expirar: retransmite todos os (até N) pacotes sem ACK Repetição seletiva: visão geral r remetente: até N pacotes não reconhecidos no canal r destinatário: reconhece (ACK) pacotes individuais m mas poderia trabalhar com ACK cumulativo r remetente: mantém temporizador para cada pacote sem ACK m se o temporizador expirar: retransmite apenas o pacote sem ACK

30 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 30 Go-Back-N remetente: r # seq. de k bits no cabeçalho do pacote r “janela” de até N pcts consecutivos sem ACK permitidos r ACK(n): ACK de todos pcts até inclusive # seq. n – “ACK cumulativo” m pode receber ACKs duplicados (ver destinatário) r temporizador para cada pacote no ar r timeout(n): retransmite pct n e todos pcts com # seq. mais alto na janela

31 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 31 GBN em operação

32 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 32 Repetição seletiva: janelas de remetente, destinatário

33 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 33 Repetição seletiva em operação

34 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 34 Capítulo 3: Esboço r 3.1 Serviços da camada de transporte r 3.2 Multiplexação e demultiplexação r 3.3 Transporte não orientado para conexão: UDP r 3.4 Princípios da transferência confiável de dados r 3.5 Transporte orientado para conexão: TCP m estrutura de segmento m transferência confiável de dados m controle de fluxo m gerenciamento da conexão r 3.6 Princípios de controle de congestionamento r 3.7 Controle de congestionamento no TCP

35 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 35 TCP: Visão geral RFCs: 793, 1122, 1323, 2018, 2581 r dados full duplex: m dados bidirecionais fluem na mesma conexão m MSS: tamanho máximo do segmento em bytes r orientado a conexão: m estabelecimento de sessão inicia estado do remetente e destinatário antes da troca de dados r fluxo controlado: m remetente não sobrecarrega buffer no destinatário r ponto a ponto: m um remetente, um destinatário r cadeia de bytes confiável, em ordem r paralelismo: m congestionamento TCP e controle de fluxo definem tamanho da janela de transm. r buffers de envio & recepção

36 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 36 Estrutura do segmento TCP porta origem porta destino 32 bits dados da aplicação (tamanho variável) número sequência número reconhecimento janela recepção ponteiro dados urg. soma verificação F SR PAU compr. cab. não usado opções (tamanho variável) URG: dados urgentes (quase não usado) ACK: # ACK válido PSH: empurrar dados agora (quase não usado) RST, SYN, FIN: estab. conexão (comandos setup, teardown) # bytes destinatário pode aceitar contagem por bytes de dados (não segmentos!) soma de verificação da Internet (como em UDP)

37 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 37 #s sequência e ACKs do TCP cenário telnet simples (1 byte por mensagem) #’s de sequência: m “número” do 1 o byte dos dados do segmento, considerando cadeia de bytes sendo enviada ACKs: m # seq do próximo byte esperado do outro lado m usa ACK cumulativo

38 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 38 Capítulo 3: Esboço r 3.1 Serviços da camada de transporte r 3.2 Multiplexação e demultiplexação r 3.3 Transporte não orientado para conexão: UDP r 3.4 Princípios da transferência confiável de dados r 3.5 Transporte orientado para conexão: TCP m estrutura de segmento m transferência confiável de dados m controle de fluxo m gerenciamento da conexão r 3.6 Princípios de controle de congestionamento r 3.7 Controle de congestionamento no TCP

39 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 39 Transferência confiável de dados no TCP r TCP cria serviço de transferência confiável em cima do serviço não confiável do IP r segmentos em paralelo r ACKs cumulativos r TCP usa único temporizador de retransmissão r retransmissões são disparadas por: m eventos de timeout m ACKs duplicados r usa mecanismo de retransmissão seletiva

40 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 40 TCP: cenários de retransmissão Hosp. A Seq = 100, 20 bytes dados ACK = 100 tempo Timeout prematuro Hosp. B Seq = 92, 8 bytes dados ACK = 120 Seq = 92, 8 bytes dados Seq = 92 timeout ACK = 120 Hosp. A Seq = 92, 8 bytes dados ACK = 100 loss timeout Cenário de ACK perdido Hosp. B X Seq = 92, 8 bytes dados ACK = 100 tempo Seq = 92 timeout SendBase = 100 SendBase = 120 SendBase = 120 Sendbase = 100

41 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 41 Host A Seq = 92, 8 bytes dados ACK = 100 perda timeout Cenário ACK cumulativo Host B X Seq = 100, 20 bytes dados ACK = 120 tempo SendBase = 120

42 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 42 Hosp. A timeout Hosp. B tempo X reenvia seq X2 seq # x1 seq # x2 seq # x3 seq # x4 seq # x5 ACK x1 ACKs duplicados três vezes Retransmissão rápida

43 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 43 Capítulo 3: Esboço r 3.1 Serviços da camada de transporte r 3.2 Multiplexação e demultiplexação r 3.3 Transporte não orientado para conexão: UDP r 3.4 Princípios da transferência confiável de dados r 3.5 Transporte orientado para conexão: TCP m estrutura de segmento m transferência confiável de dados m controle de fluxo m gerenciamento da conexão r 3.6 Princípios de controle de congestionamento r 3.7 Controle de congestionamento no TCP

44 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 44 Controle de fluxo TCP r lado receptor da conexão TCP tem um buffer de recepção: r serviço de compatibilização de velocidades: compatibiliza a taxa de envio do remetente com a de leitura da aplicação receptora r processo da aplicação pode ser lento na leitura do buffer remetente não estourará buffer do destinatário transmitindo muitos dados muito rapidamente controle de fluxo datagramas IP dados TCP (no buffer) espaço de buffer (atualmente) não usado processo da aplicação

45 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 45 Controle de fluxo TCP: como funciona (suponha que destinatário TCP descarte segmentos fora de ordem)  espaço de buffer não usado: = rwnd = RcvBuffer-[LastByteRcvd - LastByteRead]  destinatário: anuncia espaço de buffer não usado incluindo valor de rwnd no cabeçalho do segmento  remetente: limita # de bytes com ACKa rwnd m garante que buffer do destinatário não estoura rwnd RcvBuffer datagramas IP dados TCP (no buffer) espaço de buffer (atualmente) não usado processo da aplicação

46 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 46 Capítulo 3: Esboço r 3.1 Serviços da camada de transporte r 3.2 Multiplexação e demultiplexação r 3.3 Transporte não orientado para conexão: UDP r 3.4 Princípios da transferência confiável de dados r 3.5 Transporte orientado para conexão: TCP m estrutura de segmento m transferência confiável de dados m controle de fluxo m gerenciamento da conexão r 3.6 Princípios de controle de congestionamento r 3.7 Controle de congestionamento no TCP

47 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 47 Gerenciamento da conexão TCP lembre-se: Remetente e destinatário TCP estabelecem “conexão” antes que troquem segmentos dados r inicializa variáveis TCP: m #s seq.:  buffers, informação de controle de fluxo (p/ex. RcvWindow ) r cliente: inicia a conexão Socket clientSocket = new Socket("hostname","port #"); r servidor: contactado pelo cliente Socket connectionSocket = welcomeSocket.accept(); apresentação de 3 vias: etapa 1: hosp. cliente envia segmento SYN do TCP ao servidor m especifica # seq. inicial m sem dados etapa 2: hosp. servidor recebe SYN, responde com segmento SYNACK m servidor aloca buffers m especifica # seq. inicial do servidor etapa 3: cliente recebe SYNACK, responde com segmento ACK, que pode conter dados

48 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 48 fechando uma conexão: cliente fecha socket: clientSocket.close(); etapa 1: sistema final do cliente envia segmento de controle TCP FIN ao servidor etapa 2: servidor recebe FIN, responde com ACK. Fecha conexão, envia FIN. etapa 3: cliente recebe FIN, responde com ACK m entra em “espera temporizada” – responderá com ACK aos FINs recebidos etapa 4: servidor recebe ACK - conexão fechada Nota: Com pequena modificação, pode tratar de FINs simultâneos.

49 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 49 Tempo de ida e volta e timeout do TCP P : Como definir o valor de timeout do TCP? r maior que RTT, claro m mas RTT varia! r se muito curto: timeout prematuro m retransmissões desnecessárias r se muito longo: demora a reagir quando da perda de segmento P: Como estimar o RTT?  SampleRTT : tempo medido da transmissão do segmento até receber o ACK m ignora retransmissões  SampleRTT variará, queremos um RTT estimado que seja “o mais estável”  faz média de vários SampleRTT’s recentes, não usa apenas SampleRTT atual

50 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 50 EstimatedRTT = (1-  )*EstimatedRTT +  *SampleRTT r média móvel exponencial ponderada r influência da amostra passada diminui exponencialmente rápido  valor típico:  = 0,125 Estimando RTT

51 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 51 definindo o timeout  EstimtedRTT mais “margem de segurança”  grande variação em EstimatedRTT -> maior margem de seg. r primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT: TimeoutInterval = EstimatedRTT + 4*DevRTT DevRTT = (1-  )*DevRTT +  *|SampleRTT-EstimatedRTT| (geralmente,  = 0,25) depois definir intervalo de timeout Timeout do TCP

52 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 52 Capítulo 3: Esboço r 3.1 Serviços da camada de transporte r 3.2 Multiplexação e demultiplexação r 3.3 Transporte não orientado para conexão: UDP r 3.4 Princípios da transferência confiável de dados r 3.5 Transporte orientado para conexão: TCP m estrutura de segmento m transferência confiável de dados m controle de fluxo m gerenciamento da conexão r 3.6 Princípios de controle de congestionamento r 3.7 Controle de congestionamento no TCP

53 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 53 Controle de congestionamento TCP: busca por largura de banda r “procura por largura de banda”: aumenta taxa de transmissão no recebimento do ACK até por fim ocorrer perda; depois diminui taxa de transmissão m continua a aumentar no ACK, diminui na perda (pois largura de banda disponível está mudando, dependendo de outras conexões na rede) ACKs sendo recebidos, de modo que aumenta taxa X X X X X perda e diminuição de taxa taxa de emissão tempo comportamento “dente de serra” do TCP

54 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 54 Controle de congestionamento TCP: detalhes r remetente limita taxa limitando número de bytes sem ACK “na pipeline”:  cwnd: difere de rwnd (como, por quê?)  remetente limitado por min(cwnd,rwnd) r aproximadamente,  cwnd é dinâmico, função do congestionamento de rede percebido taxa = cwnd RTT bytes/seg LastByteSent-LastByteAcked  cwnd bytes cwnd RTT ACK(s)

55 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 55 Controle de congestionamento TCP: mais detalhes evento de perda de segmento: reduzindo cwnd r timeout: sem resposta do destinatário  corta cwnd para 1 r 3 ACKs duplicados: pelo menos alguns segmentos passando (lembre-se da retransmissão rápida)  corta cwnd pela metade, menos agressivamente do que no timeout ACK recebido: aumenta cwnd r fase de partida lenta: m aumento exponencialmente rápido (apesar do nome) no início da conexão, ou após o timeout r prevenção de congestionamento: m aumento linear AIMD: Aditive Increase, Multiplicative Decrease

56 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 56 Tipos populares de TCP

57 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 57 Resumo: controle de congestionamento TCP  quando cwnd < ssthresh, remetente na fase de partida lenta, janela cresce exponencialmente.  quando cwnd > = ssthresh, remetente está na fase de prevenção de congestionamento, janela cresce linearmente.  quando ocorre o ACK duplicado triplo, ssthresh definido como cwnd/2, cwnd definido como ~ ssthresh  quando ocorre o timeout, ssthresh definido como cwnd/2, cwnd definido como 1 MSS.

58 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 58 objetivo da equidade: se K sessões TCP compartilharem o mesmo enlace de gargalo da largura de banda R, cada uma deve ter uma taxa média de R/K conexão TCP 1 capacidade de gargalo do roteador R conexão TCP 2 Equidade do TCP

59 © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 59 Por que o TCP é justo? duas sessões concorrentes: r aumento aditivo dá inclinação 1, pois vazão aumenta r diminuição multiplicativa diminui vazão proporcionalmente R R compartilhamento de largura de banda igual Vazão da conexão 1 Vazão da conexão 2 prevenção de cong.: aumento aditivo perda: diminui janela por fator de 2 prevenção de congestionamento: aumento aditivo perda: diminui janela por fator de 2


Carregar ppt "© 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."

Apresentações semelhantes


Anúncios Google