Transporte, TCP e congestionamento

Portas, UDP, sequência TCP, ACK, temporizadores, janelas e controlo de congestionamento.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

UDP e TCP

  • UDP: cabeçalho de 8 bytes, sem ligação, sem garantias, preserva datagramas.
  • TCP: fluxo de bytes fiável e ordenado; não preserva fronteiras de send. recv(4096) pode devolver menos.
  • Portas entregam ao socket do terminal. SYN e FIN consomem 1 número; ACK puro não.

Sequência e ACK

  • Numera bytes. Segmento em 1000 com 300 bytes: seguinte em 1300. ACK 1300 confirma tudo antes e pede o próximo.
  • SYN 500, 300 bytes após abertura: ACK 801.
  • Lacuna 1200–1399 com 1400–1599 guardado: ACK fica em 1200. SACK indica blocos sem mudar o cumulativo.

Janelas

  • Fluxo protege o recetor com rwnd; congestionamento protege a rede com cwnd. Novos bytes: max⁡(0,min⁡(rwnd,cwnd)−FlightSize)\max(0,\min(rwnd,cwnd)-FlightSize).
  • Janela WW bytes, RTT TT: 8W/T8W/T bit/s. 100000 bytes e 0,1 s dão 8 Mbit/s.

Slow start, AIMD, perdas

  • Slow start duplica por RTT; congestion avoidance soma ~1 MSS por RTT. Limiar ssthresh separa as fases.
  • 3 ACKs duplicados (Reno): ssthresh=max(FlightSize/2,2MSS), cwnd passa por ssthresh+3MSS e volta a ssthresh. Timeout: cwnd=1MSS, ssthresh mantém-se, recomeça slow start.
  • 12 MSS em voo: limiar 6; duplicados levam a 9 e depois 6; timeout leva a 1.
  • Perda não prova congestionamento; ECN sinaliza sem descartar.

RTO

  • Amostras de RTT alimentam SRTT e RTTVAR; primeiro RTTVAR com a média antiga, depois SRTT. RTO=SRTT+max⁡(G,4RTTVAR)RTO=SRTT+\max(G,4RTTVAR), mínimo recomendado 1 s.
  • Retransmitidos seguem Karn: ignora amostras ambíguas.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.