SSC0641 Redes de Computadores

Documentos relacionados
Protocolos com paralelismo (pipelining) Pipelining: aumento da utilização

Redes de Computadores Camada de Transporte Protocolo TCP

Redes de computadores e a Internet. Capítulo 3. Camada de transporte

Camada de Transporte

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581

TCP - controle de fluxo

TCP Round Trip Time e temporização

TCP - controle de fluxo

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581

TCP - formato do segmento. Formato do segmento TCP (fonte: Kurose)

Redes de Computadores

Redes de Computadores

Camada de Transporte. Redes Industriais Rone Ilídio UFSJ CAP

Causas/custos do congestionamento: cenário 1

Redes de Computadores

Redes de Computadores e Aplicações. Aula 43 - Camada de Transporte TCP (Transmission Control Protocol)

Camada de Transporte. Protocolos TCP e UDP

Redes de Computadores

TCP: Visão geral RFCs: 793, 1122, 1323, 2018, 2581

Nível de Transporte Portas, Protocolos UDP e TCP

PTC Aula Princípios do controle de congestionamento 3.7 Controle de congestionamento no TCP

PTC Aula Princípios da transferência de dados confiável 3.5 Transporte orientado para conexão: TCP

3Camada de transporte

TCP - multiplexação/demultiplexação

Arquitetura de Redes de Computadores

Redes de Computadores I

Protocolos TCP e UDP. Protocolo TCP. Protocolo TCP. A necessidade de uma comunicação segura: Transmission Control Protocol

TCP - estabelecimento de conexão

Capítulo 3 Camada de transporte

Redes de Computadores

Capítulo 3 Camada de transporte

PTC Aula A camada de transporte. (Kurose, p ) 15/03/2017

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581

PROTOCOLOS DE COMUNICAÇÃO

Capítulo 3 Camada de transporte

Capítulo 3. Camada de transporte

SSC0641 Redes de Computadores

Camada de Transporte Protocolos TCP e UDP

: TMS M

Capítulo 6. A camada de transporte

PTC Aula Transporte orientado para conexão: TCP. (Kurose, p ) (Peterson, p e ) 23/05/2017

Redes de computadores. Protocolo TCP

Redes de Computadores RES 12502

Capítulo 3 Camada de transporte

Jéfer Benedett Dörr

Redes de computadores e a Internet

AULA 3 - REDES. Prof. Pedro Braconnot Velloso

Redes de Computadores

Camada de transporte. Serviços

Capítulo 3: Camada de Transporte

Redes de Computadores

Arquitetura de Redes TCP/IP. Camada de Transporte

Capítulo 3 Camada de Transporte

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

SSC0641 Redes de Computadores

Redes de Computadores

Desempenho de Redes de Computadores. Ricardo Couto A. da Rocha 2015

GA-027 Redes de Computadores

Redes de Computadores e a Internet

Universidade Federal de Minas Gerais Departamento de Ciência da Computação

Camada de Transporte

TCP 1 TCP. Manuel P. Ricardo

SSC0641 Redes de Computadores

Camada de Transporte Parte II Gerson Porciúncula 5 semestre

Redes de computadores e a Internet. Capítulo3. Camada de transporte

Redes de Computadores

TCP / IP. Marcos Monteiro, MBA, ITIL V3, Perito computacional Forense. contato@marcosmonteiro.com.

Funções da. Os principais serviços oferecidos pela camada de transporte são: Controle de conexão, Fragmentação, Endereçamento e Confiabilidade.

EEL878 - Redes de Computadores I. Prof. Luís Henrique Maciel Kosmalski Costa.

Redes de Computadores

Camada de Transporte

EEL878 - Redes de Computadores I

Funções da Camada de

Redes TCP/IP. Protocolos de Transporte e Aplicação

Cap. 03 Camada de Transporte

Roteiro Resumido. Camada de Transporte. Parte III. Camada de Transporte. Camada de Transporte. Redes de Computadores 25/4/2017

Capítulo 3. Camada de transporte. Pearson. Todos os direitos reservados.1

Camada Transporte. 2 Camada de Transporte

Novas Propostas para Protocolos de Streaming Luiz Eduardo Fontes Mello de Almeida

Jéfer Benedett Dörr

Redes de Computadores. Prof. André Y. Kusumoto

TCP: Visão geral RFCs: 793, 1122, 1323, 2018, TCP: nos. de seq. e ACKs. TCP: estrutura do segmento. TCP: Tempo de Resposta (RTT) e Temporização

Roteiro Resumido. Camada de Transporte. Parte III. Camada de Transporte. Camada de Transporte. Redes de Computadores 14/08/2015

Fragmentos das máquinas de estados finitos do RDT 2.2 (fonte: Kurose)

Aplicações de Redes de Computadores

Redes de Comunicações 2. Camada Transporte: TCP e UDP

Redes de Computadores

Serviços de Comunicações Capítulo 3

Camada de transporte. serviços providos a camadas superiores. qualidade de serviço. parâmetros-alvo (opções a negociar)

FUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão

Redes de Computadores

EXERCÍCIOS DE REVISÃO REDES DE COMPUTADORES EDGARD JAMHOUR. Segundo Bimestre

Exercícios de Revisão Redes de Computadores I. Spanning-Tree Camada de Transporte DNS DHCP

Rede de computadores Protocolos TCP. Professor Carlos Muniz

Redes de Computadores

TRANSPORTE. Prof. Me. Hélio Esperidião

Protocolos de Interligação de Redes Locais e a Distância Protocolos de Transporte. Thiago Leite

REDES DE COMPUTADORES Camada de Transporte. Alexandre Augusto Giron

Redes de Computadores Aula 5

SSC0641 Redes de Computadores

Transcrição:

SSC0641 Redes de Computadores Capítulo 3 - Camada de Transporte Prof. Jó Ueyama Março/2011 SSC0641-2011 1

Mecanismos: Transferência de Confável de Dados Soma de verifcação Temporizador Número de Seqüência Mensagem de Reconhecimento Mensagem de Reconhecimento Negativo Janela SSC0641-2011 2

TCP Transmission Control Protocol. RFCs: 793, 1122, 1323, 2018, 2581. SSC0641-2011 3

TCP: Visão Geral Fim a fm: Estados de conexão inteiramente nos dois sistemas fnais e não nos roteadores Orientado à conexão: apresentação: troca de mensagens de controle; inicia o estado do transmissor e do receptor antes da troca de dados. Confável; Full-duplex: Transmissão bidirecional na mesma conexão. SSC0641-2011 4

TCP: Visão Geral Bufers de transmissão e de recepção: Stream seqüencial de bytes; MSS (maximum segment size): quantidade máxima de dados da camada de aplicação. MTU (maximum transmission unit): tamanho máximo do quadro (camada de enlace) que remetente pode enviar. Exemplos: 1460 bytes, 536 bytes. Controle de fuxo: Transmissor não esgota a capacidade do receptor. SSC0641-2011 5

TCP: Visão Geral Suporte Paralelismo: Múltiplos segmentos sem confrmação; Controle de congestionamento e de fuxo defnem tamanho da janela. Applet ilustrando controle de fuxo: http://media.pearsoncmg.com/aw/aw_kuro se_network_2/applets/fow/fowcontrol.html SSC0641-2011 6

Estrutura do Segmento TCP URG: dados urgentes (pouco usados) ACK: campo de ACK PSH: envio de dados é válido urgente p/ aplicação RST, SYN, FIN: estabelecer conexão (comandos de criação e término) contagem por bytes de dados (não segmentos!) número de bytes receptor está pronto para aceitar Internet checksum (como no UDP) SSC0641-2011 7

Conexão TCP Transmissor estabelece conexão com o receptor antes de trocar segmentos de dados. Inicializar variáveis: Números de sequência Bufers, controle de fuxo (ex.: RcvWindow) Cliente: iniciador da conexão Socket clientsocket = new Socket( hostname","port number"); Servidor: chamado pelo cliente Socket connectionsocket = welcomesocket.accept(); SSC0641-2011 8

Three way handshake: 1: sistema fnal cliente envia TCP SYN ao servidor especifca número de seqüência inicial. 2: sistema fnal servidor que recebe o SYN, responde com segmento SYNACK reconhece o SYN recebido; aloca bufers; especifca o número de seqüência inicial do servidor. TCP: Estabelecimento de Conexão 3: sistema fnal cliente reconhece o ACK. SSC0641-2011 9

TCP: Fechando a Conexão cliente fecha o socket: clientsocket.close(); 1: o cliente envia o segmento TCP FIN ao servidor. 2: servidor recebe FIN, responde com ACK. Fecha a conexão, envia FIN. 3: cliente recebe FIN, responde com ACK. Entra espera temporizada - vai responder com ACK a FINs recebidos. 4: servidor, recebe ACK Conexão fechada. SSC0641-2011 10

TCP: Máquina de Estados Estados do cliente Estados do servidor SSC0641-2011 11

Números de seqüência e ACK Números de seqüência: Número do primeiro byte nos segmentos de dados. ACKs: Número do próximo byte esperado do outro lado; ACK cumulativo. Como o receptor trata segmentos fora de ordem? A especifcação do TCP não defne, fca a critério do implementador. SSC0641-2011 12

Estudo de Caso: Telnet SSC0641-2011 13

Como determinar o valor dos temporizadores? SSC0641-2011 14

Como determinar o valor dos temporizadores? Maior que o RTT (Round Trip Time)! Porém RTT varia! Muito curto: temporização prematura. Retransmissões desnecessárias. Muito longo: a reação à perda de segmento fca lenta. Como estimar o RTT? SSC0641-2011 15

Amostras de RTT SampleRTT: tempo medido da transmissão de um segmento até a respectiva confrmaçã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. SSC0641-2011 16

Estimando o RTT EstimatedRTT = (1-α)*EstimatedRTT + α*samplertt Média móvel com peso exponencial Infuência de uma dada amostra decresce de forma exponencial Valor típico: α = 0,125 SSC0641-2011 17

Exemplo de Estimativa do RTT SSC0641-2011 18

Defnindo a temporização EstimatedRTT mais margem de segurança. Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT: β DevRTT = (1-β )*DevRTT + * SampleRTT-EstimatedRTT (tipicamente β = 0.25) SSC0641-2011 19

Defnindo a temporização Então ajustar o intervalo de temporização: TimeoutInterval = EstimatedRTT + 4*DevRTT SSC0641-2011 20

TCP: Transferência de Dados Confável SSC0641-2011 21

TCP cria serviços de rdt em cima do serviço não-confável do IP. segmentos em paralelo; ACKs cumulativos; TCP usa tempo de retransmissão simples. Retransmissões são disparadas por: eventos de tempo de confrmação; ACKs duplicados. TCP: Transferência de Dados Confável SSC0641-2011 22

Eventos do Transmissor TCP Dado recebido da aplicação: cria segmento com número de sequência; Número de sequência é o número do bytestream do 1 o byte de dados no segmento; inicia o temporizador se ele ainda não estiver em execução (considera o segmento nãoconfrmado mais antigo); tempo de expiração: TimeOutInterval. SSC0641-2011 23

Eventos do Transmissor TCP Tempo de confrmação (timeout): retransmite o segmento que provocou o tempo de confrmação; reinicia o temporizador. ACK recebido: Quando houver o ACK de segmentos anteriormente não confrmados: atualizar o que foi confrmado; iniciar o temporizador se houver segmentos pendentes. SSC0641-2011 24

SSC0641-2011 25

TCP: Retransmissão Cenário com perda do ACK Temporização prematura, ACKs cumulativos SSC0641-2011 26

TCP: Retransmissão Cenário de ACK cumulativo SSC0641-2011 27

Geração de ACK [RFC 1122,2581] Evento no receptor Segmento chega em ordem, não há lacunas, segmentos anteriores já aceitos Segmento chega em ordem, não há lacunas, um ACK atrasado pendente. Segmento chega fora de ordem, número de seqüência chegou maior: gap detectado. Chegada de segmento que parcial ou completamente preenche o gap. Ação do receptor TCP ACK retardado. Espera até 500 ms pelo próximo segmento. Se não chegar, envia ACK. Imediatamente envia um ACK cumulativo. Envia ACK duplicado, indicando número de seqüência do próximo byte esperado. Reconhece imediatamente se o segmento começa na borda inferior do gap. SSC0641-2011 28

Retransmissão Rápida Com frequência, o tempo de expiração é relativamente longo... Detecta segmentos perdidos por meio de ACKs duplicados: transmissor frequentemente envia muitos segmentos back-to-back, e se um segmento é perdido, haverá muitos ACKs duplicados. Se o transmissor recebe 3 ACKs para o mesmo dado, supõe que o segmento após foi perdido: Retransmissão rápida: reenvia o segmento antes de o temporizador expirar. SSC0641-2011 29

TCP: Controle de fuxo SSC0641-2011 30

Controle de Fluxo do TCP Lado receptor da conexão TCP possui um buffer de recepção: Controle de fluxo Transmissor não deve esgotar os buffers de recepção enviando dados rápido demais. Serviço de speed-matching: encontra a taxa de envio adequada à taxa de vazão da aplicação receptora. Processos de aplicação podem ser lentos para ler o buffer SSC0641-2011 31

Controle de Fluxo do TCP: Como funciona? Receptor informa a área disponível incluindo valor RcvWindow nos segmentos Transmissor limita os dados não confinados ao RcvWindow Garantia contra overflow no buffer do receptor (suponha que o receptor TCP descarte segmentos fora de ordem) Espaço disponível no buffer = RcvWindow = RcvBuffer-[LastByteRcvd - LastByteRead] SSC0641-2011 32

TCP: Controle de congestionamento SSC0641-2011 33

Congestionamento Informalmente: muitas fontes enviando dados acima da capacidade da rede de tratá-los. Diferente de controle de fuxo! Sintomas: perda de pacotes (saturação de bufer nos roteadores); atrasos grandes (flas nos bufers dos roteadores). SSC0641-2011 34

Fim-a-fm: Mecanismos de Controle de Congestionamento Não usa realimentação explícita da rede. Congestionamento é inferido a partir das perdas e dos atrasos observados nos sistemas fnais. Abordagem usada pelo TCP. SSC0641-2011 35

Assistido pela rede: Mecanismos de Controle de Congestionamento Roteadores enviam informações para os sistemas fnais. Bit único indicando o congestionamento (SNA, DECbit, TCP/IP ECN, ATM). Taxa explícita do transmissor poderia ser enviada. SSC0641-2011 36

Mecanismos de Controle de Congestionamento SSC0641-2011 37

TCP: Controle de Congestionamento SSC0641-2011 38

TCP: Controle de Congestionamento Controle fm-a-fm (sem assistência da rede). Transmissor limita a transmissão: LastByteSent - LastByteAcked CongWin Aproximadamente, rate = CongWin / RTT Bytes/seg CongWin é dinâmico, função de congestionamento das redes detectadas. SSC0641-2011 39

Como o transmissor detecta congestionamento? Através da perda de segmentos! A perda é detectada por: tempo de confrmação (timeout); ou 3 ACKs duplicados. Consequentemente, transmissor TCP reduz a taxa (CongWin) após o evento de perda. SSC0641-2011 40

TCP: Controle de Congestionamento Algoritmo possui três mecanismos: Aumento Aditivio, Diminuição Multiplicativa (AIMD); Partida lenta; Reação a eventos de esgotamento de temporização. SSC0641-2011 41

TCP: AIMD (additive increase/multiplicative decrease) 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. SSC0641-2011 42

TCP: Partida Lenta Quando a conexão começa, CongWin = 1 MSS Exemplo: MSS = 500 bytes e RTT = 200 ms. Taxa inicial = 20 kbps. Largura de banda disponível pode ser >> MSS/RTT Desejável aumentar rapidamente até a taxa respeitável. SSC0641-2011 43

TCP: Partida Lenta Quando a conexão começa, a taxa aumenta de modo exponencial até a ocorrência do primeiro evento de perda. Dobra o CongWin a cada RTT. Faz-se incrementando o CongWin para cada ACK recebido. Resumindo: taxa inicial é lenta, mas aumenta de modo exponencialmente rápido. RTT Hospedeiro A Hospedeiro B um segmento dois segmentos quatro segmentos tempo SSC0641-2011 44

TCP Reno: Reação a timeouts Após 3 ACKs duplicados: CongWin é cortado pela metade; janela então cresce linearmente. Após timeout de confirmação: CongWin é ajustado para 1 MSS; janela então cresce exponencialmente até um limite, então cresce linearmente. Filosofia: se ocorreu timeout, dados não estão sendo entregues! SSC0641-2011 45

TCP: Reação a timeouts Quando o aumento exponencial deve tornarse linear? Quando CongWin obtiver 1/2 do seu valor antes do tempo de confrmação. Implementação: No evento de perda, o limiar (variável) é ajustado para 1/2 do CongWin logo antes do evento de perda. SSC0641-2011 46

TCP: Controle de Congestionamento Quando CongWin está abaixo do limite (Threshold), o transmissor em fase de slow-start, a janela cresce exponencialmente. Quando CongWin está acima do limite (Threshold), o transmissor em fase de congestionavoidance, a janela cresce linearmente. Quando ocorrem três ACK duplicados, o limiar (Threshold) é ajustado em CongWin/2 e CongWin é ajustado para Threshold. Quando ocorre tempo de confrmação (timeout), o Threshold é ajustado para CongWin/2 e o CongWin é ajustado para 1 MSS. SSC0641-2011 47

Justiça (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. SSC0641-2011 48

Justiça e UDP Aplicações multimídia 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 SSC0641-2011 49

Justiça e Conexões TCP Paralelas Nada previne as aplicações de abrirem conexões paralelas entre 2 hospedeiros! 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 (uma única aplicação com a metade da banda por criar conexões paralelas) SSC0641-2011 50

Quanto tempo demora para receber um objeto de um servidor Web após enviar um pedido? Ou seja, qual a latência? Ignorando o congestionamento, o atraso é infuenciado por: estabelecimento de conexão TCP; atraso de transferência de dados; partida lenta. Modelagem do atraso TCP SSC0641-2011 51

Suponha um enlace entre o cliente e o servidor com taxa de dados R. Seja: S: MSS (bits); O: tamanho do objeto (bits). Não há retransmissões (sem perdas e corrupção de dados). Janela de congestionamento (W): estática; dinâmica. Modelagem do atraso TCP - Hipóteses SSC0641-2011 52

Janela de Congestionamento Estática Primeiro caso: WS/R > RTT + S/R ou seja, o ACK para o primeiro segmento na primeira janela retorna antes de enviar todos os dados. atraso = 2RTT + O/R SSC0641-2011 53

Janela de Congestionamento Estática Segundo caso: WS/R < RTT + S/R ou seja, o ACK chega após enviar a janela de dados completa. K = O/WS (No. de janelas de dados q abrange o objeto) atraso = 2RTT + O/R + (K-1) [S/R + RTT - WS/R] SSC0641-2011 54

Janela Dinâmica Agora suponha que a janela cresca de acordo com os procedimentos da fase partida lenta. SSC0641-2011 55

Janela de Congestionamento Componentes do atraso: Dinâmica - Atraso 2 RTT para estabelecimento de conexão e requisição. O/R para transmitir um objeto. Servidor com Q períodos inativos devido à partida lenta. SSC0641-2011 56

Modelagem de atraso: Assuma que uma página Web consista em: 1 página HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit) HTTP HTTP não persistente: M + 1 conexões TCP nos servidores Tempo de resposta = (M + 1)O/R + (M + 1)2RTT + soma dos períodos de inatividade HTTP persistente: 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)O/R + 3RTT + soma dos períodos de inatividade SSC0641-2011 57

A seguir... Saímos da borda da rede (camadas de aplicação e de transporte). Vamos para o núcleo da rede. SSC0641-2011 58