Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Camada de transporte Flávio Luiz Seixas 2025.1 slide 2 • A camada de transporte fornece comunicação lógica, e não física, entre processos de aplicações: Introdução e serviços de camada de transporte slide 3 • Um protocolo de camada de transporte fornece comunicação lógica entre processos que rodam em hospedeiros diferentes. • Um protocolo de camada de rede fornece comunicação lógica entre hospedeiros. • Uma rede de computadores pode disponibilizar vários protocolos de transporte. • Os serviços que um protocolo de transporte pode fornecer são muitas vezes limitados pelo modelo de serviço do protocolo subjacente da camada de rede. Relação entre as camadas de transporte e de rede slide 4 • A responsabilidade fundamental do UDP e do TCP é ampliar o serviço de entrega IP entre dois sistemas finais para um serviço de entrega entre dois processos que rodam nos sistemas finais. • A ampliação da entrega hospedeiro a hospedeiro para entrega processo a processo é denominada multiplexação/demultiplexação de camada de transporte. • O UDP e o TCP também fornecem verificação de integridade ao incluir campos de detecção de erros nos cabeçalhos de seus segmentos. Visão geral da camada de transporte na Internet slide 5 • Multiplexação e demultiplexação na camada de transporte. Multiplexação e demultiplexação slide 6 • A tarefa de entregar os dados contidos em um segmento da camada de transporte ao socket correto é denominada demultiplexação. • O trabalho de reunir, no hospedeiro de origem, partes de dados provenientes de diferentes sockets, encapsular cada parte de dados com informações de cabeçalho para criar segmentos, e passar esses segmentos para a camada de rede é denominada multiplexação. Multiplexação e demultiplexação slide 7 • Campos de número de porta de origem e de destino em um segmento de camada de transporte: Multiplexação e demultiplexação slide 8 • O UDP, definido no [RFC 768], faz apenas quase tão pouco quanto um protocolo de transporte pode fazer. • À parte sua função de multiplexação/demultiplexação e de alguma verificação de erros simples, ele nada adiciona ao IP. • Se o desenvolvedor de aplicação escolher o UDP, em vez do TCP, a aplicação estará “falando” quase diretamente com o IP. • O UDP é não orientado para conexão. Transporte não orientado para conexão: UDP slide 9 • Aplicações populares da Internet e seus protocolos de transporte subjacentes: Transporte não orientado para conexão: UDP slide 10 • Aplicações populares da Internet e seus protocolos de transporte subjacentes: Estrutura do segmento UDP slide 11 Internet checksum: example example: add two 16-bit integers 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 wraparound sum checksum Note: when adding numbers, a carryout from the most significant bit needs to be added to the result * Check out the online interactive exercises for more examples: http://gaia.cs.umass.edu/kurose_ross/interactive/ slide 12 • Modelo do serviço e implementação do serviço: Princípios da transferência confiável de dados slide 13 • O protocolo bit alternante. Transferência confiável de dados sobre um canal com perda e com erros de bits slide 14 • O protocolo bit alternante. Transferência confiável de dados sobre um canal com perda e com erros de bits slide 15 • No coração do problema do desempenho do rdt está o fato de ele ser um protocolo do tipo pare e espere. • Um protocolo pare e espere em operação. Protocolos de transferência confiável de dados com paralelismo slide 16 • Um protocolo com paralelismo em operação Protocolos de transferência confiável de dados com paralelismo slide 17 • Envio com pare e espere Protocolos de transferência confiável de dados com paralelismo slide 18 • Envio com paralelismo Protocolos de transferência confiável de dados com paralelismo slide 19 • Em um protocolo Go-Back-N (GBN), o remetente é autorizado a transmitir múltiplos pacotes sem esperar por um reconhecimento. • Porém, fica limitado a ter não mais do que algum número máximo permitido, N, de pacotes não reconhecidos na “tubulação”. • Visão do remetente para os números de sequência no protocolo Go-Back-N: Go-Back-N (GBN) slide 20 • Go-Back-N em operação Go-Back-N (GBN) slide 21 • Protocolos de repetição seletiva (SR) evitam retransmissões desnecessárias. • Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinatário. • Essa retransmissão individual, só quando necessária, exige que o destinatário reconheça individualmente os pacotes recebidos de modo correto. Repetição seletiva (SR) slide 22 • Operação SR Repetição seletiva (SR) slide 23 Comparação (incluindo o TCP) TCP slide 25 Resumo de mecanismos de transferência confiável de dados e sua utilização: • Soma de verificação - Usada para detectar erros de bits em um pacote transmitido. • Temporizador - Usado para controlar a temporização/retransmissão de um pacote, possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal. • Número de sequência - Usado para numeração sequencial de pacotes de dados que transitam do remetente ao destinatário. Transporte orientado para conexão slide 26 • Reconhecimento - Usado pelo destinatário para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente. • Janela, paralelismo - O remetente pode ficar restrito a enviar somente pacotes com números de sequência que caiam dentro de uma determinada faixa. Transporte orientado para conexão slide 27 Estrutura do quadro slide 28 Encapsulamento slide 29 • Uma conexão TCP provê um serviço full-duplex. • A conexão TCP é sempre ponto a ponto. • Uma vez estabelecida uma conexão TCP, dois processos de aplicação podem enviar dados um para o outro. • O TCP combina cada porção de dados do cliente com um cabeçalho TCP, formando, assim, segmentos TCP. A conexão TCP slide 30 • O número de sequência para um segmento é o número do primeiro byte do segmento. • O número de reconhecimento que o hospedeiro A atribui a seu segmento é o número de sequência do próximo byte que ele estiver aguardando do hospedeiro B. • Como o TCP somente reconhece bytes até o primeiro byte que estiver faltando na cadeia, dizemos que o TCP provê reconhecimentos cumulativos. Números de sequência e números de reconhecimento slide 31 • O TCP cria um serviço de transferência confiável de dados sobre o serviço de melhor esforço do IP. • O serviço de transferência garante que a cadeia de bytes é idêntica à cadeia de bytes enviada pelo sistema final que está do outro lado da conexão. • Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um único temporizador de retransmissão. Transferência confiável de dados slide 32 Gerenciamento da conexão TCP: estabelecimento slide 33 Gerenciamento da conexão TCP: finalização slide 34 Cenário de transferência no TCP slide 35 Controle de fluxo application process TCP socket receiver buffers TCP code IP code application OS receiver protocol stack application may remove data from TCP socket buffers …. … slower than TCP receiver is delivering (sender is sending) from sender receiver controls sender, so sender won’t overflow receiver’s buffer by transmitting too much, too fast flow control slide 36 Controle de fluxo • receiver “advertises” free buffer space by including rwnd value in TCP header of receiver-to-sender segments – RcvBuffer size set via socket options (typical default is 4096 bytes) – many operating systems autoadjust RcvBuffer • sender limits amount of unacked (“in- flight”) data to receiver’s rwnd value • guarantees receive buffer will not overflow buffered data free buffer spacerwnd RcvBuffer TCP segment payloads to application process receiver-side buffering slide 37 TCP: Cenários de retransmissão lost ACK scenario Host BHost A Seq=92, 8 bytes of data ACK=100 Seq=92, 8 bytes of data Xti m e o u t ACK=100 premature timeout Host BHost A Seq=92, 8 bytes of data ACK=100 Seq=92, 8 bytes of data ti m e o u t ACK=120 Seq=100, 20 bytes of data ACK=120 SendBase=100 SendBase=120 SendBase=120 SendBase=92 slide 38 X cumulative ACK Host BHost A Seq=92, 8 bytes of data ACK=100 Seq=120, 15 bytes of data ti m e o u t Seq=100, 20 bytes of data ACK=120 TCP: Cenários de retransmissão slide 39 TCP: Retransmissão rápida time-out period often relatively long: long delay before resending lost packet detect lost segments via duplicate ACKs. sender often sends many segments back-to-back if segment is lost, there will likely be many duplicate ACKs. if sender receives 3 ACKs for same data (“triple duplicate ACKs”), resend unacked segment with smallest seq # likely that unacked segment lost, so don’t wait for timeout TCP fast retransmit slide 40 TCP: Retransmissão rápida X fast retransmit after sender receipt of triple duplicate ACK Host BHost A Seq=92, 8 bytes of data ACK=100 ti m e o u t ACK=100 ACK=100 ACK=100 Seq=100, 20 bytes of data Seq=100, 20 bytes of data slide 41 Controle de congestionamento do TCP: Aumento aditivo, redução multiplicativa approach: sender increases transmission rate (window size), probing for usable bandwidth, until loss occurs • additive increase: increase cwnd by 1 MSS every RTT until loss detected • multiplicative decrease: cut cwnd in half after loss c w n d : T C P s e n d e r c o n g e s ti o n w in d o w s iz e AIMD saw tooth behavior: probing for bandwidth additively increase window size … …. until loss occurs (then cut window in half) time slide 42 Controle de congestionamento do TCP sender limits transmission: cwnd is dynamic, function of perceived network congestion TCP sending rate: roughly: send cwnd bytes, wait RTT for ACKS, then send more bytes last byte ACKed sent, not- yet ACKed (“in-flight”) last byte sent cwnd LastByteSent- LastByteAcked ssthresh congestion avoidance cwnd = cwnd + MSS (MSS/cwnd) dupACKcount = 0 transmit new segment(s), as allowed new ACK . dupACKcount++ duplicate ACK fast recovery cwnd = cwnd + MSS transmit new segment(s), as allowed duplicate ACK ssthresh= cwnd/2 cwnd = ssthresh + 3 retransmit missing segment dupACKcount == 3 timeout ssthresh = cwnd/2 cwnd = 1 dupACKcount = 0 retransmit missing segment ssthresh= cwnd/2 cwnd = ssthresh + 3 retransmit missing segment dupACKcount == 3cwnd = ssthresh dupACKcount = 0 New ACK slow start timeout ssthresh = cwnd/2 cwnd = 1 MSS dupACKcount = 0 retransmit missing segment cwnd = cwnd+MSS dupACKcount = 0 transmit new segment(s), as allowed new ACKdupACKcount++ duplicate ACK L cwnd = 1 MSS ssthresh = 64 KB dupACKcount = 0 New ACK! New ACK! New ACK! slide 47 Vazão do TCP • avg. TCP thruput as function of window size, RTT? – ignore slow start, assume always data to send • W: window size (measured in bytes) where loss occurs – avg. window size (# in-flight bytes) is ¾ W – avg. thruput is 3/4W per RTT W W/2 avg TCP thruput = 3 4 W RTT bytes/sec slide 48 TCP Futures: TCP over “long, fat pipes” • example: 1500 byte segments, 100ms RTT, want 10 Gbps throughput • requires W = 83,333 in-flight segments • throughput in terms of segment loss probability, L [Mathis 1997]: ➜ to achieve 10 Gbps throughput, need a loss rate of L = 2·10-10 – a very small loss rate! • new versions of TCP for high-speed TCP throughput = 1.22 . MSS RTT L slide 49 TCP Fairness fairness goal: if K TCP sessions share same bottleneck link of bandwidth R, each should have average rate of R/K TCP connection 1 bottleneck router capacity R TCP connection 2 slide 50 Why is TCP fair? two competing sessions: additive increase gives slope of 1, as throughout increases multiplicative decrease decreases throughput proportionally R R equal bandwidth share Connection 1 throughput congestion avoidance: additive increase loss: decrease window by factor of 2 congestion avoidance: additive increase loss: decrease window by factor of 2 slide 51 Fairness (more) Fairness and UDP multimedia apps often do not use TCP • do not want rate throttled by congestion control instead use UDP: • send audio/video at constant rate, tolerate packet loss Fairness, parallel TCP connections application can open multiple parallel connections between two hosts web browsers do this e.g., link of rate R with 9 existing connections: • new app asks for 1 TCP, gets rate R/10 • new app asks for 11 TCPs, gets R/2 slide 52 Explicit Congestion Notification (ECN) network-assisted congestion control: two bits in IP header (ToS field) marked by network router to indicate congestion congestion indication carried to receiving host receiver (seeing congestion indication in IP datagram) ) sets ECE bit on receiver-to-sender ACK segment to notify sender of congestion source application transport network link physical destination application transport network link physical ECN=00 ECN=11 ECE=1 IP datagram TCP ACK segment