Redes de Computadores e a Internet



Documentos relacionados
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

TCP - estabelecimento de conexão

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

TCP - multiplexação/demultiplexação

Redes de Computadores. Camada de Transporte

Camada Transporte. 2 Camada de Transporte

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

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

2 Controle de Congestionamento do TCP

Controle de Congestionamento em TCP Parte 2. Prof. Dr. S. Motoyama

Arquitetura TCP/IP. Parte XI Transporte orientado a conexão (TCP) Fabrízzio Alphonsus A. M. N. Soares

Redes de Computadores Camada de Transporte Protocolo TCP

Qualidade em Servicos de Rede Prof. Eduardo Maronas Monks Roteiro de Laboratorio Camada de Transporte Parte II

Camada de Transporte. Protocolos TCP e UDP

Redes de Computadores

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

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Controle de Congestionamento

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

SSC0641 Redes de Computadores

Capítulo 7 CAMADA DE TRANSPORTE

Teleprocessamento e Redes

REDES DE COMPUTADORES Camada de Transporte. Alexandre Augusto Giron

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

6 de Julho de Exercício 23 Para que servem portas na camada de transporte?

Camada de transporte. Serviços

Exercícios de Revisão Redes de Computadores Edgard Jamhour. Segundo Bimestre

Capítulo 3 Camada de Transporte

Camada de Transporte. Prof. Leonardo Barreto Campos

Camada de Transporte, protocolos TCP e UDP

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

Capítulo 3: Camada de Transporte

Transporte. Sua função é: Promover uma transferência de dados confiável e econômica entre máquina de origem e máquina de destino.

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

Redes de Computadores. Trabalho de Laboratório Nº7

REDES DE COMPUTADORES

TCP - controle de fluxo

Camada Transporte Parte 2. Prof. Dr. S. Motoyama

Redes de Computadores

Redes de Computadores_Marcelo Furtado Pratica 2- Qualidade de serviços

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

Redes de Computadores. Camada de Transporte de Dados: protocolos TCP e UDP Prof. MSc Hugo Vieira L. Souza

TCP - controle de fluxo

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010

3 Qualidade de serviço na Internet

CAMADA DE TRANSPORTE

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Capítulo 3 Camada de transporte

Tecnologia de Redes de Computadores

Redes de Computadores

Capítulo 7 CAMADA DE TRANSPORTE

A Camada de Transporte

Fundamentos de Redes. Protocolos de Transporte. Djamel Sadok Dênio Mariz.

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

Jones Bunilha Radtke. Tarefas:

Redes de Computadores II

Nível de Transporte Portas, Protocolos UDP e TCP

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

Camada de transporte. Camada de transporte

Arquitetura de Redes de Computadores

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

Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação. Associação dos Instrutores NetAcademy - Julho de Página

Redes de Computadores

Traceroute É uma ferramenta de diagnóstico que rastreia a rota de um pacote através de uma rede de computadores e que utiliza os protocolos IP e ICMP.

CCNA 2 Conceitos Básicos de Roteadores e Roteamento

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

Causas/custos do congestionamento: cenário 1

1. PRINCIPAIS PROTOCOLOS TCP/IP

Redes de Computadores e a Internet

Redes de Computadores e a Internet

Redes de Computadores e a Internet

Redes de Computadores

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

Introdução à Redes de Computadores

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

Redes de Computadores. TCP Orientação à Conexão. Prof. Othon M. N. Batista Mestre em Informática

Visão geral da arquitetura do roteador

Rede de Computadores II

Camada de Transporte

PEL/FEN Redes de Computadores 2015/1 Primeira Lista de Exercícios Prof. Marcelo Gonçalves Rubinstein

Arquitetura TCP/IP. Parte VI Entrega de pacotes sem conexão (IP) Fabrízzio Alphonsus A. M. N. Soares

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

Redes WAN. Redes de Longa Distância Prof. Walter Cunha

Camada de Transporte TCP/IP e Aplicação

TCP Round Trip Time e temporização

PROJETO DE REDES

Curso de especialização em Teleinformática Disciplina Sistemas Distribuídos Prof. Tacla

UNIVERSIDADE. Sistemas Distribuídos

Redes de Computadores

Cliente-servidor com Sockets TCP

Redes de Computadores

GA-027 Redes de Computadores

CCNA 1 Conceitos Básicos de Redes. Módulo 11 Camada de Transporte TCP/IP Camada de Aplicação

Camada de Transporte. BCC361 Redes de Computadores Universidade Federal de Ouro Preto Departamento de Ciência da Computação

Transcrição:

Redes de Computadores e a Internet Magnos Martinello Universidade Federal do Espírito Santo - UFES Departamento de Informática - DI Laboratório de Pesquisas em Redes Multimidia - LPRM 2011

Camada de Transporte 3.1 Serviços da camada de transporte 3.2 Multiplexação e demultiplexação 3.3 Transporte não orientado a conexão: UDP 3.4 Princípios de transferência confiável de dados 3.5 Transporte orientado a conexão: TCP Estrutura do segmento Transferência confiável dos dados Controle de fluxo 3.6 Princípios do controle de congestionamento 3.7 Controle do congestionamento do TCP

TCP: Visão Geral RFCs: 793, 1122, 1323, 2018, 2581 ponto-a-ponto: Um emissor e um receptor Fluxo de bytes confiável e em ordem Paralelismo (pipelened): Tamanho da janela de congestionamento e fluxo é ajustado dinâmicamente Buffers de envio e recepção s o c k e t d o o r a p p l i c a t i o n w r i t e s d a t a T C P s e n d b u f f e r s e g m e n t a p p l i c a t i o n r e a d s d a t a T C P r e c e i v e b u f f e r Dados full duplex: Fluxo de dados bidirecional na mesma conexão MSS: maximum segment size Orientado a conexão: Fase de apresentaçã o em 3 partes Fluxo controlado: s o c k e t d o o r Emissor não vai sobrecarregar o receptor 3

Estrutura do segmento TCP URG: dados urgentes (geralmente não usado) ACK: ACK # valid PSH: entrega dados pela aplicação (geralmente não usado) RST, SYN, FIN: estabelecimento, encerramento de conexão Internet checksum (como no UDP) 32 bits source port # dest port # head len sequence number acknowledgement number not used UAP R S F checksum Receive window Urg data pnter Options (variable length) application data (variable length) Contador pelo número de bytes e não segmentos! # bytes que o receptor está disposto a receber 4

Número das Portas Origem e Destino Identificam a aplicação transmissora e receptora, cada uma delas associada a um ponto da conexão. Esses dois valores, juntamente com os endereços IP de origem e destino, presentes no cabeçalho IP, identificam univocamente a conexão. Conexão = par de sockets.

Número de Seqüência O TCP enumera cada byte que é transmitido pela conexão. O campo número de sequência identifica o número do primeiro byte dentro do stream de bytes que está sendo transmitido naquele segmento. Assume valores entre 0 e 2 32-1.

Número do Acknowledgement Como cada byte é numerado, esse campo identifica o próximo número de sequência (próximo byte) que se espera receber do host remoto. Esse valor é igual ao número do último byte recebido + 1. O campo é válido somente se o flag de ACK estiver ligado.

Tamanho do Cabeçalho Informa o tamanho do cabeçalho do segmento, medido em palavras de 32 bits. A informação de tamanho é necessária porque o campo de Options do TCP possui tamanho variável. Com 4 bits, o tamanho do cabeçalho é limitado a 60 bytes. Sem opções, o tamanho default é de 20 bytes.

Campo de Flags Os flags identificam o propósito e o conteúdo de cada segmento. Existem seis flags: URG, ACK, PSH, RST, SYN e FIN. Um ou mais podem podem estar ligados num certo momento.

Bit URG ACK PSH RST SYN FIN Vale 1 para todos os segmentos, exceto p/ segmento SYN inicial (aknowledgement number é válido). Transmissor notifica ao receptor para que ele passe todos os dados que possui no seu buffer para o processo de aplicação. Resseta a conexão. Significado Indica a presença de dados urgentes no segmento (urgent pointer é válido). Sincroniza os números de seqüência no setup da conexão. Transmissor solicita término normal da conexão (parou de enviar dados).

Gerenciamento de conexão TCP Lembrar: TCP emissor e receptor estabelecem conexão antes de trocar segmentos de dados inicializar variáveis TCP: Números de seq. buffers, informação do controle de fluxo (e.g. RcvWindow) cliente: inicia conexão Socket clientsocket = new Socket("hostname","port number"); servidor Socket connectionsocket = welcomesocket.accept(); Three way handshake: Passo 1: host envia segmento com TCP SYN Especifica o número de sequencia inicial Sem dados Passo 2: host servidor recebe SYN, responde com segmento SYNACK servidor aloca buffers Especifica número inicial de sequência Passo 3: cliente recebe SYNACK, responde com segmento ACK, que pode conter dados 11

Número de sequência e ACKS do TCP Seq. # s: Número do primeiro byte nos dados do segmento ACKs: Número de sequencia do próximo byte esperado do outro lado ACK cumulativo Q: Como receptor trata segmentos fora de ordem? A: especificação do TCP não diz -> tarefa para o implementador Usuário digita C host ACKs do C recebido Host A Host B Seq=42, ACK=79, data = C Seq=79, ACK=43, data = C Seq=43, ACK=80 Cenário de telnet simples 12 host ACKs o C recebido, e devolve C tempo

TCP RTT (Round Trip Time) Q: Como configurar o valor do timeout no TCP? Maior do que RTT mas RTT varia Menor do que RTT: timeout prematuro Retransmissões desnecessárias Muito longo: reação lenta a perda de segmentos etimeout Q: Como estimar RTT? SampleRTT: medida de tempo a partir da transmissão do segmento até receber ACK ignorar retransmissões SampleRTT vai variar, mas queremos estimar RTT de modo que altas variações não afetem suavemente Média de várias medições recentes, não apenas o valor corrente de SampleRTT 13

TCP RTT (Round Trip Time) etimeout EstimatedRTT = (1- α )*EstimatedRTT + α *SampleRTT Média móvel exponencial ponderada Influência das amostras passadas decai exponencialmente Valor típico: α = 0.125 EstimatedRTT = 0.875*EstimatedRTT + 0.125*SampleRTT 14

Example RTT estimation: RTT: gaia.cs.umass.edu to fantasia.eurecom.fr 350 300 RTT (milliseconds) 250 200 150 100 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds) SampleRTT Estimated RTT 15

TCP RTT e Timeout Configurando o timeout EstimtedRTT mais uma margem de segurança Ampla variação em EstimatedRTT -> maior margem de segurança Estimar primeiro quantas amostras de RTT (SampleRTT) desvia do valor estimado EstimatedRTT: DevRTT = (1-β )*DevRTT + β * SampleRTT-EstimatedRTT (tipicamente, β = 0.25) Então configurar o intervalo de timeout: TimeoutInterval = EstimatedRTT + 4*DevRTT 16

TCP: Cenários de Retransmissão Host A Host B Host A Host B timeout X perda Seq=92, 8 bytes data ACK=100 Seq=92 timeout Seq=92, 8 bytes data Seq=100, 20 bytes data ACK=100 ACK=120 SendBase = 100 tempo Seq=92, 8 bytes data ACK=100 ACK perdido Sendbase = 100 SendBase = 120 SendBase = 120 tempo Seq=92 timeout Seq=92, 8 bytes data ACK=120 Timeout prematuro 17

TCP: Cenários de Retransmissão Host A Host B Seq=92, 8 bytes data timeout Seq=100, 20 bytes data X loss ACK=100 SendBase = 120 ACK=120 tempo ACK Cumulativo 18

TCP: Go-Back-N ou SR? Reconhecimentos cumulativos Segmentos corretamente recebidos, mas fora de ordem, não são reconhecidos individualmente No Emissor, basta lembrar o menor número de sequencia de um byte transmitido mas não reconhecido (sendbase) e o número de sequencia do byte seguinte a ser enviado (nextseqnum) Quando o emissor envia uma sequencia de segmentos 1,2...N e todos os segmentos chegam ao receptor na ordem e sem erro. Se o reconhecimento para o pacote n < N se perder... mas os N-1 reconhecimentos restantes cheguam ao emissor antes do termino do timeout. O que o Go-Back N faria? 19

Camada de Transporte 3.1 Serviços da camada de transporte 3.2 Multiplexação e demultiplexação 3.3 Transporte não orientado a conexão: UDP 3.4 Princípios de transferência confiável de dados 3.5 Transporte orientado a conexão: TCP Estrutura do segmento Transferência confiável dos dados Controle de fluxo 3.6 Princípios do controle de congestionamento 3.7 Controle do congestionamento do TCP

Controle de Fluxo do TCP Lado receptor TCP possui um buffer de recepção Controle de Fluxo Emissor não sobrecarrega o receptor transmitindo muito Processo pode ser lento na leitura a partir do buffer Serviço de adequação de taxas: adequar a taxa de envio para a taxa de leitura do receptor 21

Como funciona o controle de fluxo TCP Sala de espera no buffer = RcvWindow = RcvBuffer-[LastByteRcvd LastByteRead] www.aw.com/kurose_br Receptor avisa o tamanho da sala de espera incluindo este valor no campo RcvWindow dos segmentos Emissor limita o número de pacotes não reconhecidos por RcvWindow garante que o buffer de recepção não sobrecaregue E se o recvwindow é anunciado com valor zero ao emissor e não tenha mais nada para enviar ao emissor? 22

Princípios do Controle de Congestionamento: Congestionamento informalmente: muitas fontes enviando muitos dados muito rapidamente para a rede tratar diferente do controle de fluxo! Consequencias: Perda de pacotes (sobrecarga no buffer dos roteadores ) Atrasos longos (enfileramento nos buffers dos roteadores) Um problema top-10! 23

Causas/custos do congestionamento: cenario 1 Dois emissores, dois receptores Um roteador, buffer infinito Nenhuma retransmissão Host B Host A λ in : original data unlimited shared output link buffers λ out Longos atrasos quando congestionado Maximo throughput 24

Causas/custos do congestionamento: cenario 2 Um roteador com buffer finito Emissor retransmite um pacote perdido Host A λ in : original data λ ' in : original data, plus retransmitted data λ out Host B finite shared output link buffers 25

λ = λ in out Se : (goodput) Causas/custos do congestionamento: cenario 2 Retransmissão perfeita somente quando houver perda: λ > λ in out Retransmissão de pacotes atrasados (não perdidos) aumenta o custo R/2 R/2 R/2 λ out λ out R/3 λ out R/4 λ in R/2 λ in R/2 λ in R/2 a. custos do congestionamento: Mais trabalho (retransmissão) para um dado goodput b. Retransmissões desnecessárias: enlace transporta múltiplas cópias de um dado pacote c. 26

Causas/custos do congestionamento: cenario 3 Quatro emissores Caminhos com múltiplos saltos timeout/retransmissão Host A Q: O que acontece quando aumenta? λ in : original data λ ' in : original data, plus retransmitted data finite shared output link buffers λ ou t λ in Host B 27

Causas/custos do congestionamento: cenario 3 H o s t A λ o u t H o s t B Outro custo de congestionamento: Quando pacote é descartado, qualquer capacidadde de transmissão no upstream usada por aquele pacote foi desperdiçada! 28

Capitulo 3 3.1 Serviços da camada de transporte 3.2 Multiplexação e demultiplexação 3.3 Transporte não orientado a conexão: UDP 3.4 Princípios da transferência confiável de dados 3.5 Transporte orientado a conexão: TCP Estrutura do segmento Transferência confiável de dados Controle de fluxo 3.6 Princípios do controle de congestionamento 3.7 Controle de congestionamento do TCP 29

Abordagens em direção ao controle de congestionamento Controle de congestionamento fim a fim: Nenhum feedback explícito da rede Congestionamento inferido a partir do sistema final observando perda e atrasos Abordagem adotada pelo TCP Controle de congestionamento assistido pela rede: Roteadores provem feedback aos sistemas finais Bit singular indicando congestionamento (SNA, DECbit, TCP/IP ECN, ATM) Taxa que o emissor pode enviar de modo explícito 30

Controle de congestionamento TCP: incremento aditivo e decremento multiplicativo Abordagem: aumentar a taxa de transmissão (tamanho da janela), sondando por banda usavel, até que perda ocorra Incremento aditivo: incrementar CongWin por 1 MSS todo RTT até perda detectada Decremento multiplicativo: cortar CongWin pela metade após a perda Comportamento dente de serra: sondando por banda congestion window size 2 4 K b y t e s 1 6 K b y t e s 8 K b y t e s c o n g e s t i o n w i n d o w 31 time t i m e

Controle de Congestionamento do TCP sender limits transmission: LastByteSent-LastByteAcked <= min {CongWin, RcvWin} Assim, Taxa = CongWin RTT Bytes/sec CongWin é dinâmica, função do congestionamento percebido na rede Como o emissor percebe o congestionamento? Evento de perda = timeout ou 3 Acks TCP emissor reduz taxa (CongWin) após evento de perda tres mecanismos: AIMD slow start Conservativo após eventos de timeout 32

Host A Host B X timeout resend 2 nd segment time 33 Figure 3.37 Resending a segment after triple duplicate ACK

TCP Slow Start Quando a conexão inicia, CongWin = 1 MSS Exemplo: MSS = 500 bytes & RTT = 200 msec Taxa inicial = 20 kbps Banda disponível pode ser >> MSS/RTT Desejável crescer rapidamente para uma taxa respeitável Incrementar a taxa exponencialmente até o primeiro evento de perda Exemplo: MSS = 500 bytes & RTT = 200 msec Qual a Taxa com Slow Start no primeiro segundo de transmissão? 34

TCP Slow Start (more) Quando a conexão começa, incrementa-se exponencialmente até o primeiro evento de perda: Dobra-se CongWin a cada RTT Feito pelo incremento de CongWin para cada ACK recebido RTT Host A Host B one segment two segments four segments Resumo: taxa inicial é lenta mas cresce exponencialmente time 35

Refinamento: inferindo perda Depois de 3 ACKs: CongWin é cortada pela metade Janela cresce linearmente Mas depois de um evento de timeout: CongWin é ajustada para 1 MSS; Janela cresce exponencialmente até um limear (threshold), então cresce linearmente Filosofia 3 ACKs duplicados indica que a rede é capaz de entregar alguns segmentos timeout indica um cenário de congestionamento mais alarmante 36

Refinamento Q: Quando deve haver a troca de exponencial para linear? A: Quando CongWin atingir 1/2 do seu valor antes do timeout. Implementação: Limear Variavel (Threshold) No evento de perda, Threshold é ajustado para 1/2 do CongWin imediatamente antes do evento de perda 37

Resumo: Controle de Congestionamento do TCP Quando CongWin estiver abaixo do Threshold, emissor está na fase slow-start, então a janela cresce exponencialmente. Quando CongWin estiver acima do Threshold, emissor está na fase congestion-avoidance, então a janela cresce linearmente. Quando um triplo ACK ocorre, Threshold é ajustado para CongWin/2 e CongWin ajustado para Threshold. Quando timeout ocorre, Threshold ajustado paracongwin/2 e CongWin é ajustado para 1 MSS. 38

TCP throughput Qual é o throughput médio do TCP em função do tamanho da janela e do RTT? Ignorar a fase slow start 39

Vazão do TCP Qual é o throughput médio do TCP em função do tamanho da janela e do RTT? Ignorar a fase slow start Seja W o tamanho da janela quando a perda ocorre. Quando a janela é W, throughput é W/RTT Logo após a perda, a janela cai para W/2, e o throughput é W/2RTT. Throughput médio :.75 W/RTT 40

Vazão do TCP e seu futuro Exemplo: Segmentos de tamanho (MSS) de 1500 bytes, RTT de 100ms, vazão de 10 Gbps Qual o tamanho da janela W? Novas versões de TCP para alta-velocidade 41

Justiça(Fairness) no TCP Objetivo de justiça: Se K sessões TCP compartilham um mesmo enlace com banda R, cada um deve ter taxa média de R/K TCP connection 1 TCP connection 2 bottleneck router capacity R 42

Por que o TCP é justo? Duas sessões TCP competindo : Incremento aditivo desloca em 1, enquanto o throughput aumenta Decremento multiplicativo diminui o throughput proporcionalmente R Connection 2 throughput Equidade no compartilhamento de banda Connection 1 throughput R loss: decrease window by factor of 2 congestion avoidance: additive increase loss: decrease window by factor of 2 congestion avoidance: additive increase 43

Equidade no TCP Vazão de Conexão C1 > R/2 Vazão de Conexão C2 < R/2 Supondo: C1 = 700 Kbps C2 = 200 Kbps R = 1 Mbps Incrementando linearmente: C1 700 800 C2 200 300 Após perda, decremento multiplicativo : C1 400 +300 = 700 350 +250 = 600 C2 150 +300 = 450 275 +250 = 525 44

Justiça e equidade com UDP Justiça e UDP Aplicações Multimidia frequentemente não usam TCP Ao invés disso usam UDP: Enviam audio/video a taxas constantes, toleram perda de pacote Area de pesquisa: TCP amigável (friendly) Justiça e conexões paralelas TCP Nada previne app de abrir multiplas conexões paralelas entre 2 hosts. Web browsers fazem isso Exemplo: enlace de taxa R contendo 9 conexões; nova app solicita por 1 TCP, obtem taxa R/10 nova app solicita por 11 TCPs, obtem R/2! 45

Futuro do TCP Exemplo: segmento de 1500 bytes, 100ms RTT, quer throughput de 10 Gbps Requer tamanho de janela W = 83.333 segmentos em-transito Throughput em termos de probabiliddade de perda: L = 2 10-10 Wow 1. 22 MSS RTT L Novas versões do TCP para alta-velocidade 46

Protocolos de camada de transporte DCCP RFC 4340 SCTP RFC 2960, 3286 TRFC - RFC 5348 47