A camada de aplicação

Aprenda como funcionam os protocolos de aplicação da internet e por que foram projetados dessa maneira. Compare as arquiteturas cliente-servidor e par a par e escolha entre TCP e UDP. Leia mensagens HTTP, explique cookies, caches, HTTP/2 e HTTP/3 sobre QUIC e acompanhe consultas DNS e a entrega de correio eletrônico. Calcule tempos de distribuição par a par, explique o streaming adaptativo de vídeo e as redes de distribuição de conteúdo e escreva programas simples de cliente e servidor UDP e TCP em Python.

IntermediárioAula 2 de 8 do curso Curso de Redes de computadores

O que você vai aprender

  1. Compare as arquiteturas cliente-servidor e par a par, descreva como os processos de aplicação trocam mensagens por sockets e relacione as necessidades de uma aplicação aos serviços oferecidos pelo TCP e pelo UDP.
    • Compare as arquiteturas cliente-servidor e par a par
      Descreva como cada arquitetura atribui papéis aos hospedeiros, por que as arquiteturas par a par crescem com seus usuários e quais desafios cada arquitetura apresenta.
    • Descreva como os processos se comunicam e escolha um serviço de transporte
      Explique sockets, endereçamento de processos e o que um protocolo da camada de aplicação define, e decida se uma aplicação deve usar TCP ou UDP.
  2. Leia e analise mensagens e conexões HTTP, explique como funcionam os cookies e os caches e descreva o que o HTTP/2 e o HTTP/3 mudam na forma como as mensagens trafegam.
    • Leia mensagens HTTP e compare tipos de conexão
      Interprete requisições e respostas HTTP e calcule como conexões persistentes e não persistentes afetam o tempo necessário para carregar uma página.
    • Explique como funcionam os cookies e os caches web
      Descreva como os cookies permitem que sites reconheçam usuários sobre o HTTP sem estado e calcule como um proxy com cache e requisições condicionais reduzem o atraso e o tráfego.
    • Explique como o HTTP/2 e o HTTP/3 com QUIC aceleram a web
      Descreva o bloqueio de início de fila e explique como os quadros do HTTP/2 e o HTTP/3 sobre QUIC reduzem atrasos enquanto o significado das mensagens HTTP permanece o mesmo.
  3. Acompanhe uma consulta de nome pela hierarquia do DNS, leia registros e mensagens DNS e explique como o cache e uma arquitetura distribuída mantêm o DNS rápido e resiliente.
    • Acompanhe uma consulta de nome pela hierarquia do DNS
      Descreva os serviços fornecidos pelo DNS e os papéis dos servidores DNS raiz, de domínio de nível superior, autoritativos e locais, e acompanhe as consultas de uma resolução passo a passo.
    • Leia registros e mensagens DNS
      Interprete os tipos comuns de registro de recurso, acompanhe como os registros ligam os níveis da hierarquia e leia consultas e respostas DNS e suas fragilidades de segurança.
  4. Acompanhe uma mensagem do remetente ao destinatário pelo SMTP, leia diálogos de transferência e formatos de mensagens de correio eletrônico e explique como protocolos de acesso permitem que usuários leiam suas mensagens.
    • Acompanhe uma mensagem durante a transferência de correio eletrônico por SMTP
      Descreva as partes do sistema de correio eletrônico, acompanhe um diálogo SMTP entre servidores de correio e explique como mensagens são submetidas e como remetentes falsificados são detectados.
    • Explique os formatos de mensagem e os protocolos de acesso ao correio eletrônico
      Leia o cabeçalho e a estrutura MIME de uma mensagem de correio eletrônico e compare IMAP, POP3 e webmail como formas de ler mensagens.
  5. Calcule por que a distribuição de arquivos par a par é escalável, explique como o BitTorrent compartilha um arquivo e descreva como o streaming adaptativo e as redes de distribuição de conteúdo entregam vídeo a milhões de espectadores.
    • Calcule o tempo de distribuição P2P e explique o BitTorrent
      Compare o tempo mínimo para distribuir um arquivo com um servidor e com uma arquitetura par a par e explique como funcionam as partes de arquivo, as requisições do mais raro primeiro e as trocas recíprocas no BitTorrent.
    • Explique o streaming adaptativo de vídeo sobre HTTP
      Relacione as taxas de bits de vídeo à vazão da rede e explique como clientes DASH escolhem segmentos para manter a reprodução fluida.
    • Explique como as redes de distribuição de conteúdo entregam conteúdo
      Descreva por que provedores de conteúdo usam CDNs, compare formas de posicionar servidores CDN e acompanhe como o DNS direciona uma requisição a um servidor CDN próximo.
  6. Use o módulo socket do Python para criar clientes e servidores UDP e TCP e explique como o comportamento de cada programa decorre do serviço de transporte subjacente.
    • Crie um cliente e um servidor UDP
      Escreva e explique um par de cliente e servidor UDP em Python, incluindo endereçamento, codificação, tempos limite e os limites da entrega de datagramas.
    • Crie um cliente e um servidor TCP
      Escreva e explique um par de cliente e servidor TCP em Python, trate corretamente o fluxo de bytes do TCP e use um socket para se comunicar em HTTP manualmente.

Guia de estudo de Camada de aplicação

6 capítulos

1

Projeto de aplicações e serviços de transporte

Programas em rede precisam de um plano para definir quem se comunica com quem e de um serviço que transporte seus dados. Um navegador que busca um arquivo e um jogo que envia atualizações de posição podem compartilhar a mesma internet enquanto fazem escolhas de projeto diferentes. Acompanhe uma troca desde os processos em suas extremidades, passando por seus sockets, e compare o que o TCP, o UDP e os transportes seguros oferecem em confiabilidade, tempo, vazão e proteção.

1.1 Onde os programas de aplicação são executados

Uma aplicação de rede consiste em programas executados em sistemas finais: celulares, laptops e servidores. Seus processos trocam mensagens pela rede. Roteadores e comutadores encaminham os pacotes; eles não precisam que um novo programa de aplicação seja instalado sempre que alguém cria um serviço.

Duas formas de distribuir o trabalho

Uma arquitetura de aplicação descreve como a aplicação divide o trabalho entre hospedeiros. Ela é separada da arquitetura em camadas da rede. O desenvolvedor escolhe onde os programas são executados, contando com a rede existente para conectá-los.

Em uma arquitetura cliente-servidor, clientes contatam um servidor sempre ligado em um endereço conhecido. Um navegador solicita um documento a um servidor web, que retorna o documento. Outros navegadores não precisam estar online para que essa troca funcione. Um serviço popular pode distribuir o papel de servidor por milhares de máquinas em centros de dados; um nome público pode representar esse grupo. Equipamentos, energia, refrigeração e conexões com a internet custam dinheiro.

Uma arquitetura par a par, ou P2P, permite que dispositivos dos usuários troquem dados diretamente. Um par pode solicitar uma parte de arquivo e também enviar partes que já possui. Pares podem se desconectar ou mudar de endereço, então a aplicação deve encontrar pares disponíveis e continuar funcionando conforme os participantes mudam.

ArquiteturaQuem fornece o conteúdo?O que acontece quando usuários entram?
Cliente-servidorHospedeiros servidores dedicadosMais requisições chegam aos servidores do serviço.
P2PHospedeiros dos usuários participantesA demanda cresce, e os pares contribuem com capacidade de upload.
Acompanhe uma troca

Suponha que um grupo de pesquisa distribua um grande conjunto de dados. Em uma arquitetura cliente-servidor, cada pesquisador baixa uma cópia do servidor do grupo. Dez novos pesquisadores significam dez cópias a mais para esse servidor enviar. Em uma arquitetura P2P, pesquisadores que já possuem algumas partes as enviam aos recém-chegados. Cada pesquisador que entra pode acrescentar capacidade e também demanda. Isso é autoescalabilidade: os recursos da aplicação crescem com a participação.

A autoescalabilidade ainda depende de contribuições úteis. Um par com um enlace de upload lento acrescenta menos capacidade que um com um enlace rápido. Muitos enlaces residenciais são assimétricos: o download é mais rápido que o upload. Um par desconectado não contribui enquanto está offline. O software P2P também deve proteger os participantes contra pares não confiáveis e incentivar usuários a enviar dados em vez de apenas recebê-los.

Coordenação central e transferência direta

Uma arquitetura híbrida combina coordenação por servidor com transferência de dados P2P. Um rastreador do BitTorrent informa a um par sobre outros pares; ele não precisa enviar o arquivo em si. Da mesma forma, um serviço de chamadas pode localizar participantes por meio de um servidor, permitir que seus dispositivos troquem mídia diretamente e usar um servidor de retransmissão quando um caminho direto não estiver disponível. Classifique o caminho que transporta os dados separadamente do caminho que estabelece a comunicação.

As palavras cliente e servidor também descrevem papéis em uma troca individual. Se o par Mira inicia uma requisição ao par Leo, Mira é a cliente e Leo é o servidor nessa troca. Eles podem inverter os papéis um momento depois. P2P elimina a dependência de servidores de conteúdo dedicados; não elimina os papéis de quem inicia e de quem responde.

Principais conclusões

  • Programas de aplicação são executados em sistemas finais; o núcleo da rede encaminha seus pacotes.
  • Arquiteturas cliente-servidor concentram a capacidade do serviço em hospedeiros dedicados.
  • Participantes P2P acrescentam capacidade de upload e também demanda.
  • Uma arquitetura híbrida pode usar um diretório central enquanto os pares transferem o conteúdo.
  • Os papéis de cliente e servidor dependem de quem inicia cada troca.

1.2 Sockets, endereços e escolhas de transporte

Um programa de aplicação em execução é um processo. Processos em hospedeiros diferentes trocam mensagens por meio de sockets, as interfaces de software entre as camadas de aplicação e transporte. O código da aplicação determina o significado da mensagem; o serviço de transporte carrega seus bytes ou datagramas.

Encontre o processo receptor

Um endereço IP identifica um hospedeiro, mas o hospedeiro pode executar muitos serviços. Um número de porta identifica uma extremidade de transporte nele. Para contatar um serviço HTTPS em 203.0.113.10, um cliente normalmente usa a porta 443 como destino. Seu próprio sistema operacional geralmente atribui uma porta de origem temporária, ou efêmera.

Portas são valores de 16 bits, de 0 a 65.535. Portas de sistema ocupam 0–1023, portas registradas 1024–49.151 e portas dinâmicas 49.152–65.535. Portas de serviços comuns incluem HTTP 80, HTTPS 443, transferência SMTP 25 e DNS 53. Uma porta faz parte do endereçamento e não indica se o tráfego é cifrado ou confiável.

Defina as mensagens em comum

Um protocolo da camada de aplicação define tipos de mensagem, sintaxe, semântica e regras de troca. Os tipos distinguem uma requisição de uma resposta. A sintaxe descreve campos e separadores. A semântica informa a cada participante o que esses campos significam. As regras de troca determinam quando um processo envia uma mensagem e como o receptor responde. Especificações públicas, muitas vezes RFCs, permitem que programas escritos por desenvolvedores diferentes se comuniquem.

Um protocolo é um componente de uma aplicação. A web também precisa de navegadores, servidores e documentos. Definir apenas o HTTP não constrói um navegador nem determina a aparência de sua interface.

Relacione o serviço à necessidade

Considere quatro necessidades: entrega correta, vazão suficiente, atraso aceitável e segurança. Um anexo de correio eletrônico exige todos os bytes. Uma chamada de voz tolera alguma perda de mídia, mas é prejudicada se o áudio antigo chega tarde demais. Um vídeo armazenado precisa de vazão sustentada próxima à sua taxa de bits codificada, enquanto um download elástico pode usar a taxa disponível.

ServiçoO que a aplicação recebeO que ela ainda precisa tratar
TCPUm fluxo confiável e ordenado de bytes após o estabelecimento da conexãoDelimitação de mensagens, segurança e atraso ou vazão variáveis
UDPDatagramas separados sem estabelecimento de conexãoPerda, duplicação, ordenação e a confiabilidade necessária

O TCP inclui controle de fluxo para proteger o receptor e controle de congestionamento para reduzir a sobrecarga na rede. Ele não fornece largura de banda mínima nem prazo de entrega. O UDP em si não acrescenta confiabilidade nem controle de congestionamento. Escolhê-lo não elimina o congestionamento do caminho.

Por exemplo, um jogo que envia posições 30 vezes por segundo produz uma nova atualização a cada aproximadamente 33 ms. Ele pode usar UDP para que uma atualização perdida seja substituída por outra mais recente sem esperar sua retransmissão. O chat do jogo ainda precisa de entrega confiável, seja por TCP ou por confiabilidade acrescentada pelo próprio protocolo do jogo.

Acrescente segurança à pilha

Nem o TCP nem o UDP, por si só, cifram dados da aplicação. HTTP/1.1 e HTTP/2 costumam usar TLS sobre TCP para HTTPS. O TLS acrescenta confidencialidade, integridade e autenticação do servidor. O HTTP/3 usa QUIC sobre UDP; o QUIC fornece confiabilidade, controle de congestionamento e TLS 1.3 integrado. Vídeo armazenado entregue por HTTP usa, portanto, TCP ou QUIC, enquanto chamadas interativas frequentemente transportam mídia por UDP.

Principais conclusões

  • Um endereço IP e uma porta identificam onde um processo recebe tráfego de rede.
  • Protocolos de aplicação definem tipos, sintaxe, semântica e regras de troca.
  • O TCP fornece bytes confiáveis e ordenados, sem taxa nem prazo garantidos.
  • O UDP preserva os datagramas, mas deixa a confiabilidade para camadas superiores.
  • Nem o TCP nem o UDP cifram dados por conta própria.
  • O HTTP/3 obtém fluxos confiáveis e seguros do QUIC sobre UDP.
2

Como o HTTP entrega conteúdo web

O carregamento de uma página combina formatos de mensagem, estabelecimento de conexão e requisições de vários objetos. Seu comportamento também depende de o navegador poder reutilizar uma conexão ou resposta e de o site precisar reconhecer o visitante. Primeiro, leia a troca HTTP visível e calcule seus principais atrasos. Depois, acompanhe como cookies, cache e transportes HTTP mais recentes mudam o trabalho necessário para entregar a página.

2.1 Mensagens HTTP e tempos de conexão

Uma página web geralmente contém vários objetos, cada um com sua própria URL. O HTML base indica imagens, scripts e outros arquivos. Em https://www.example.org/docs/intro.html, o esquema é https, o hospedeiro é www.example.org e o caminho é /docs/intro.html.

Leia uma requisição e uma resposta

O HTTP funciona por trocas de requisição e resposta. Uma requisição HTTP/1.1 começa com método, caminho e versão:

GET /docs/intro.html HTTP/1.1
Host: www.example.org
Connection: close

A linha de requisição e as linhas de cabeçalho terminam com CRLF. Uma linha em branco encerra os cabeçalhos, e um corpo opcional vem em seguida. Host é obrigatório no HTTP/1.1 porque vários sites podem compartilhar um endereço de servidor. Connection: close solicita o fechamento após a resposta.

GET obtém um objeto. HEAD solicita seus cabeçalhos de resposta sem o corpo. POST envia dados no corpo de uma requisição; um GET também pode transportar valores de formulário na sequência de consulta de sua URL. PUT armazena um objeto em uma URL especificada, e DELETE remove um objeto.

A resposta começa com uma linha de status como HTTP/1.1 200 OK, seguida de cabeçalhos, uma linha em branco e o corpo. Content-Type identifica a representação; Content-Length informa seu comprimento em bytes. As classes de status são 1xx informação, 2xx sucesso, 3xx redirecionamento, 4xx erro do cliente e 5xx erro do servidor. Um 301 aponta para uma nova URL em Location; 304 permite reutilizar uma cópia em cache. Um 404 significa que o servidor respondeu que o objeto solicitado não foi encontrado, não que o servidor estava inacessível. Outros códigos úteis incluem 400, 500 e 505.

O HTTP não mantém estado: cada requisição pode ser entendida sem as requisições anteriores. Um site ainda pode manter o estado de login ou do carrinho acima do HTTP. Um GET comum repetido pode retornar o objeto novamente, enquanto uma requisição condicional pode validar uma cópia salva.

Conte os tempos de ida e volta

Para um objeto em uma nova conexão TCP, conte um RTT para estabelecer a conexão e um para a requisição e o início da resposta. Depois, acrescente o tempo de transmissão do objeto. Com RTT de 30 ms, tamanho de 500 kB e taxa de 50 Mbps:

Ttransmit=500.000×850.000.000=0,08 s

O total é 60 ms mais 80 ms, ou 140 ms. Esse modelo desconsidera DNS, TLS e tempo de processamento. Uma negociação TLS 1.3 completa sobre a nova conexão TCP acrescenta mais um RTT.

Reutilize ou reabra a conexão

Uma conexão não persistente transporta um objeto. Uma conexão persistente pode transportar requisições posteriores sem outro estabelecimento TCP. A persistência é o padrão do HTTP/1.1, embora conexões inativas acabem sendo fechadas.

Para um objeto HTML e oito imagens pequenas, RTT de 20 ms e tempos de transmissão desprezíveis:

Padrão de buscaTempos de ida e voltaTempo
Nova conexão para cada objeto, sequencialmente18360 ms
HTML primeiro, depois oito novas conexões em paralelo480 ms
Uma conexão persistente, requisições sequenciais10200 ms
Uma conexão persistente, oito requisições de imagem em pipeline360 ms

As requisições das imagens dependem do recebimento do HTML. Mesmo com buscas paralelas, elas não podem começar antes que suas URLs sejam conhecidas. Conte essas etapas de dependência antes de contar as negociações. Navegadores HTTP/1.1 costumam usar várias conexões por hospedeiro; o envio em pipeline é um modelo de cálculo de tempo, não um requisito para a persistência.

Principais conclusões

  • O carregamento de uma página inclui o HTML e os objetos aos quais ele faz referência.
  • O HTTP/1.1 separa sua linha inicial, seus cabeçalhos e seu corpo opcional com finais de linha e uma linha em branco.
  • Em uma nova conexão TCP, um objeto custa cerca de dois RTTs mais o tempo de transmissão, antes dos custos do TLS.
  • A persistência evita o estabelecimento repetido de conexões.
  • Requisições paralelas ainda esperam até que o HTML revele suas URLs.
  • Uma resposta 404 mostra que um servidor HTTP respondeu.

2.2 Reconhecimento de usuários e reutilização de respostas

Requisições HTTP são independentes, mas uma loja pode se lembrar de um carrinho. Um navegador também pode reutilizar uma imagem em vez de baixá-la novamente. Cookies permitem o reconhecimento entre requisições; caches permitem a reutilização de respostas.

Acompanhe um cookie

Na primeira visita, shop.example.com cria uma entrada no banco de dados para um visitante e retorna Set-Cookie: id=1678. O navegador armazena esse valor. Requisições posteriores correspondentes incluem Cookie: id=1678, permitindo que o servidor consulte o carrinho. O cookie é um dado, não código executável, e o próprio carrinho pode permanecer no banco de dados do servidor.

Os atributos de um cookie controlam seu uso. Expires ou Max-Age define um prazo de validade; um cookie sem nenhum dos dois é um cookie de sessão. Domain e Path restringem as requisições correspondentes. Secure restringe o envio a HTTPS, HttpOnly impede o acesso por scripts da página e SameSite controla o envio em contextos entre sites. A restauração de sessão pode manter cookies de sessão quando um navegador restaura uma sessão anterior.

Cookies próprios pertencem ao site visitado. Um serviço de terceiros incorporado pode usar cookies em diferentes sites para reconhecer um navegador. O Safari bloqueia cookies de terceiros por padrão; o Firefox os separa por site; o Chrome oferece controles ao usuário e os bloqueia no modo de navegação anônima. As regras da União Europeia exigem consentimento para cookies que não sejam estritamente necessários para fornecer um serviço solicitado.

Acompanhe uma requisição atendida pelo cache

Um cache web armazena respostas HTTP. Um navegador tem seu próprio cache. Um proxy com cache fica entre clientes e servidores de origem: ele atende diretamente a um acerto de cache ou busca, armazena e encaminha uma resposta em caso de erro de cache. Ele atua como servidor perante o navegador e como cliente perante a origem. Um proxy pode existir sem armazenar conteúdo em cache.

Um acerto próximo reduz o atraso, a carga na origem e o tráfego no enlace de acesso. Para 90 requisições por segundo com média de 1 Mbit cada, o tráfego oferecido é de 90 Mbps. Em um enlace de acesso de 100 Mbps, a intensidade de tráfego é 0,9, valor em que as filas podem ficar grandes. Uma taxa de acerto de 40% deixa 60% atravessando o enlace: 54 Mbps e intensidade de 0,54. Com acertos levando 10 ms e erros de cache 200 ms, o tempo médio de resposta é:

T=0,4(10)+0,6(200)=124 ms

Esse cálculo de tráfego pressupõe o mesmo tamanho médio de objeto para os grupos de acertos e de erros de cache. Uma taxa de acerto medida apenas pela contagem de requisições não precisa ser igual à fração de bytes economizados quando os tamanhos dos objetos diferem.

Verifique a atualização antes de reutilizar

Um GET condicional envia If-Modified-Since com uma data de modificação salva, ou If-None-Match com um ETag salvo. Um objeto inalterado resulta em 304 Not Modified sem o corpo do objeto. O cache reutiliza sua cópia. Um objeto alterado resulta em 200 OK com o substituto. A validação economiza a transmissão do corpo, mas ainda exige uma ida e volta até a origem.

Diretiva de respostaSignificado
max-age=3600Uma cópia pode permanecer atualizada por 3.600 segundos.
no-cacheArmazene se permitido, mas valide antes de reutilizar.
no-storeNão armazene a resposta.
privateUm cache privado pode armazená-la; caches compartilhados não podem.

Um proxy compartilhado normalmente não consegue inspecionar o conteúdo de uma conexão HTTPS que passa por ele. Caches de navegador e servidores CDN que atendem em nome de um site podem armazenar respostas nas extremidades onde elas estão disponíveis em formato legível.

Principais conclusões

  • Cookies permitem que um servidor reconheça um navegador entre requisições HTTP independentes.
  • Atributos de cookies controlam prazo de validade, escopo e acesso.
  • Um proxy com cache desempenha os papéis de cliente e servidor.
  • Acertos de cache podem diminuir o atraso e reduzir o tráfego no enlace de acesso.
  • Uma resposta 304 valida um objeto salvo sem reenviar seu corpo.
  • no-cache exige validação; no-store proíbe o armazenamento.
  • O HTTPS limita o que um proxy compartilhado comum pode armazenar em cache.

2.3 Quadros, fluxos e HTTP/3

As versões do HTTP mantêm os significados de métodos, status, campos e URLs. Um 404 ainda significa que o recurso solicitado não foi encontrado. O que muda é como requisições e respostas trafegam: o HTTP/1.1 usa mensagens de texto, enquanto HTTP/2 e HTTP/3 usam quadros binários.

Permita o avanço de respostas pequenas

Em uma conexão HTTP/1.1, respostas ordenadas podem fazer um objeto pequeno esperar atrás de um grande. Isso é bloqueio de início de fila no nível da aplicação. Abrir várias conexões TCP reduz essa espera, mas exige estabelecimento adicional e dá à página várias conexões concorrentes com controle de congestionamento.

O HTTP/2 divide mensagens em quadros e atribui um fluxo a cada troca de requisição e resposta. O remetente intercala quadros de fluxos diferentes em uma conexão TCP. A compressão de cabeçalhos, chamada HPACK, reduz dados repetidos de campos. Prioridades podem orientar quais respostas são atendidas primeiro.

Para uma comparação simplificada, uma resposta grande tem 1.000 quadros e oito respostas pequenas têm dois quadros cada. Envie um quadro por intervalo de tempo. Enviar a resposta grande primeiro faz as respostas pequenas terminarem nos intervalos de 1.002 a 1.016, com média de 1.009. Enviar um quadro de cada fluxo não concluído por vez permite que as respostas pequenas terminem nos intervalos de 11 a 18, com média de 14,5. A resposta grande termina no intervalo 1.016. A intercalação altera os tempos de conclusão sem aumentar a taxa de transmissão do enlace.

O HTTP/2 também especificou o envio antecipado pelo servidor, que envia conteúdo antes de uma requisição. Os principais navegadores o desativaram. Uma resposta 103 Early Hints, por sua vez, indica recursos para que o navegador possa começar a solicitá-los.

Encontre o ponto de bloqueio restante

O TCP entrega um único fluxo ordenado de bytes. Se faltarem bytes, os posteriores esperam pela recuperação, mesmo quando contêm quadros de outro fluxo HTTP/2. O HTTP/2 elimina o bloqueio pela ordem das respostas, mas mantém esse bloqueio no nível de transporte.

O HTTP/3 mapeia o HTTP para o QUIC, um protocolo de transporte sobre UDP, e comprime cabeçalhos com QPACK. O QUIC fornece fluxos confiáveis, controle de fluxo e de congestionamento e segurança TLS 1.3. Cada fluxo tem sua própria ordem de entrega. Dados ausentes em um fluxo não impedem, por si só, a entrega de dados já recebidos em outro. O controle de congestionamento compartilhado e as dependências da aplicação ainda podem afetar vários fluxos.

O QUIC usa identificadores de conexão para que uma conexão sobreviva a uma mudança de endereço IP, como ao passar do Wi-Fi para uma rede celular. Sua implementação pode ser atualizada com uma biblioteca da aplicação, evitando o lento processo de implantação de mudanças no TCP em sistemas operacionais e dispositivos intermediários de rede.

Compare uma nova conexão

Com RTT de 50 ms e sem custo de DNS ou processamento, TCP mais TLS 1.3 leva dois RTTs antes que a primeira requisição HTTP/2 seja enviada. Uma primeira resposta começa após cerca de 150 ms. O QUIC combina o estabelecimento do transporte e da segurança em um RTT, de modo que uma resposta HTTP/3 pode começar após cerca de 100 ms. Conexões QUIC retomadas podem usar dados 0-RTT, mas o risco de repetição limita quais requisições podem ser enviadas antecipadamente com segurança.

Navegadores podem descobrir o HTTP/3 por meio de Alt-Svc ou de registros DNS HTTPS. Se o UDP estiver bloqueado, eles podem recorrer ao HTTP sobre TCP. O HTTP/3 continua confiável porque o QUIC fornece confiabilidade acima do UDP.

Principais conclusões

  • As versões do HTTP preservam os significados compartilhados das mensagens.
  • O HTTP/2 intercala fluxos em uma conexão TCP.
  • Uma perda no TCP ainda pode bloquear todos os fluxos HTTP/2 dessa conexão.
  • O QUIC fornece fluxos ordenados independentes e segurança integrada sobre UDP.
  • O QUIC reduz o tempo de estabelecimento de novas conexões e permite mudanças de endereço por meio de identificadores de conexão.
3

Como o DNS encontra serviços

Nomes ocultam as localizações variáveis dos serviços da internet. Antes que um navegador ou servidor de correio eletrônico contate um destino, o DNS pode fornecer um endereço, um apelido ou um nome de servidor de correio. Acompanhe um resolvedor pela hierarquia distribuída e depois examine os registros e campos de mensagem que ele troca. Respostas em cache tornam esse processo rápido, enquanto seus tempos de vida explicam por que uma mudança de endereço pode demorar a chegar a todos os usuários.

3.1 Uma consulta DNS do cache ao servidor autoritativo

Um nome como www.example.org é conveniente para uma pessoa. Uma conexão precisa de um endereço IP. O Sistema de Nomes de Domínio, ou DNS, é tanto o banco de dados distribuído de registros de nomes quanto o protocolo de aplicação usado para consultá-lo. Ele normalmente usa a porta 53 e funciona separadamente do HTTP.

Divida o trabalho de nomes

Leia www.example.org. da direita para a esquerda: raiz, org, example e depois www. O ponto final representa a raiz e normalmente é omitido na escrita cotidiana. Um servidor centralizado para todos os nomes criaria um ponto de falha, um gargalo de tráfego e caminhos longos para clientes distantes.

Servidores raiz indicam aos resolvedores os servidores de domínio de nível superior. Servidores TLD indicam a eles os servidores autoritativos dos domínios subordinados ao TLD. Servidores autoritativos publicam os registros efetivos de um domínio. As 13 identidades nomeadas de servidores raiz são replicadas em muitas instâncias físicas; 13 não é o número de máquinas que dão suporte ao DNS mundial.

O hospedeiro normalmente envia sua pergunta a um resolvedor local, fornecido por sua organização, seu provedor de serviços de internet ou um serviço público. Esse resolvedor trabalha em nome do hospedeiro. Ele não é outro nível entre a raiz e o TLD na hierarquia de nomes.

Acompanhe uma consulta com cache vazio

Um laptop de campus precisa do endereço IPv4 de www.example.org:

  1. O laptop pede a resposta final ao seu resolvedor local.
  2. O resolvedor consulta um servidor raiz e recebe uma indicação dos servidores .org.
  3. Ele consulta um servidor .org e recebe uma indicação dos servidores autoritativos de example.org.
  4. Ele consulta um servidor autoritativo e recebe 203.0.113.25.
  5. Ele retorna o endereço ao laptop.

São quatro pares de consulta e resposta, ou oito mensagens. A requisição do hospedeiro é recursiva: obtenha a resposta para mim. As consultas do resolvedor são iterativas: cada servidor contatado responde com base no que sabe ou encaminha o resolvedor adiante. A raiz não busca o endereço do servidor web em nome do laptop.

Reutilize respostas até o fim de seu TTL

Um registro de recurso contém um tempo de vida, ou TTL, medido em segundos. Resolvedores mantêm registros reutilizáveis em cache até o fim de seu tempo de vida permitido. Eles podem armazenar indicações em cache, assim como endereços finais. Uma delegação de TLD ou domínio já armazenada permite que uma consulta posterior pule etapas anteriores. Sistemas operacionais e navegadores também podem ter caches.

Com um RTT de 2 ms entre hospedeiro e resolvedor e um RTT de 30 ms para cada uma das três consultas sequenciais à hierarquia, a consulta com cache vazio leva cerca de 92 ms. Um endereço em cache no resolvedor leva cerca de 2 ms. Os tempos de espera são somados porque cada indicação fornece informações necessárias para a consulta seguinte.

O cache também atrasa mudanças. Se um resolvedor armazenou em cache um endereço com TTL de uma hora pouco antes de uma atualização, ele pode continuar retornando o endereço antigo pelo tempo de vida restante. Reduzir um TTL antes de uma mudança planejada limita essa sobreposição; alterar apenas o registro autoritativo não substitui todas as cópias em cache.

O DNS faz mais que consultar endereços a partir de nomes. Ele oferece suporte a apelidos, encontra servidores de correio e distribui carga ao retornar vários endereços para um serviço. Esses papéis explicam por que a entrega de correio eletrônico e a seleção de CDN também dependem do DNS.

Principais conclusões

  • O DNS é um banco de dados distribuído e um protocolo de consulta da camada de aplicação.
  • Servidores raiz, TLD e autoritativos dividem a responsabilidade por nome.
  • Um resolvedor local executa a requisição recursiva do hospedeiro usando consultas iterativas.
  • Registros e indicações em cache encurtam consultas posteriores.
  • O TTL limita o tempo de armazenamento em cache, então mudanças de endereço demoram a se propagar.

3.2 Registros, indicações e respostas DNS

O DNS armazena registros de recurso com nome, valor, tipo e TTL. O tipo informa ao resolvedor como interpretar o valor. Um registro de endereço, um apelido e um registro de servidor de correio respondem a perguntas diferentes sobre o mesmo domínio.

Leia o tipo de registro
TipoO que seu valor fornece
AUm endereço IPv4 para um nome de hospedeiro
AAAAUm endereço IPv6 para um nome de hospedeiro
NSO nome de um servidor autoritativo
CNAMEUm nome canônico para um apelido
MXUm nome de servidor de correio com um número de preferência
TXTTexto, incluindo informações de autenticação de correio eletrônico
PTRUm nome para uma consulta reversa de endereço
SOAInformações administrativas de uma zona
HTTPSInformações de serviço, incluindo versões HTTP aceitas

Por exemplo, www.example.org. 3600 IN A 203.0.113.25 fornece o nome do registro, o TTL, a classe internet, o tipo e o endereço. Um valor NS é um nome, não um endereço. Uma indicação pode incluir um registro A separado que fornece o endereço do servidor de nomes, frequentemente chamado de registro de ligação (glue) quando necessário para resolver a delegação.

Um CNAME como media.example.org que aponta para edge.cdn.example.net leva o resolvedor a consultar o endereço do destino. Um registro MX, por sua vez, direciona a entrega de correio eletrônico. Com preferências 10 e 20, tente primeiro o servidor de correio com preferência 10; um número maior não significa prioridade maior.

Leia a mensagem que contém os registros

Consultas e respostas compartilham um formato. O cabeçalho de 12 bytes contém um número de identificação, indicadores e contagens de entradas em quatro seções. A resposta copia o ID da consulta para que quem a solicitou possa associá-la à troca.

A seção de pergunta identifica o que foi solicitado. A seção de resposta contém registros correspondentes. A seção de autoridade pode conter indicações NS, enquanto a seção adicional fornece registros úteis, como endereços de servidores de nomes. Na saída impressa de dig, qr marca uma resposta, rd significa que a recursão foi solicitada e ra significa que a recursão está disponível. NOERROR informa que não houve erro de DNS; NXDOMAIN informa que o nome consultado não existe. Uma resposta sem erro ainda pode não conter um registro do tipo solicitado.

Para publicar um novo domínio, um proprietário o registra e fornece as informações de seu servidor autoritativo. A delegação do domínio pai direciona consultas a esses servidores, que publicam os próprios registros de hospedeiro e de correio do domínio. Registrar o nome não transforma o registrador no servidor que mantém todos os registros.

Entrega e proteção

A maioria das pequenas trocas DNS usa a porta UDP 53. Uma resposta UDP truncada tem seu indicador TC ativado; o resolvedor pode tentar novamente pela porta TCP 53. O TCP também oferece suporte a transferências de zona. Portanto, o DNS não está restrito ao UDP.

O tráfego DNS clássico expõe os nomes consultados a observadores em seu caminho. DNS sobre TLS ou DNS sobre HTTPS cifra a troca entre cliente e resolvedor, geralmente nas portas 853 e 443, respectivamente. A cifragem dessa troca e a autenticidade de um registro são propriedades distintas.

No envenenamento de cache, um resolvedor aceita uma resposta falsificada e depois envia usuários ao endereço errado. IDs e portas de origem imprevisíveis dificultam a correspondência de respostas falsificadas. O DNSSEC acrescenta assinaturas que permitem verificar a autenticidade dos registros; ele não oculta a consulta. Uma inundação também pode tornar servidores DNS inacessíveis. A replicação e as indicações em cache reduzem a dependência da raiz para cada requisição, mas falhas em um provedor autoritativo amplamente usado ainda podem interromper muitos sites.

Principais conclusões

  • Tipos de registro distinguem endereços, delegações, apelidos e roteamento de correio eletrônico.
  • Um registro NS nomeia um servidor; um registro de endereço separado o localiza.
  • Registros MX com números de preferência menores são tentados primeiro.
  • Respostas DNS separam respostas, informações de autoridade e registros adicionais.
  • O DNS pode usar TCP e também UDP.
  • O DNS cifrado protege um caminho; o DNSSEC autentica registros assinados.
4

Como o correio eletrônico trafega e permanece disponível

Uma mensagem de correio eletrônico pode chegar enquanto o celular do destinatário está desligado porque servidores cuidam da entrega e do armazenamento independentemente dos dispositivos dos usuários. Acompanhe a conversa de transferência, diferencie seu envelope de entrega dos campos mostrados ao leitor e examine como anexos fazem parte de uma mensagem. Depois, compare os protocolos de acesso que permitem a um laptop, celular ou navegador recuperar mensagens e acompanhar o estado da caixa postal.

4.1 Entrega por SMTP e o envelope de correio eletrônico

O correio eletrônico separa a composição de uma mensagem de sua entrega. Um agente de usuário é o aplicativo ou página web usado para ler e escrever mensagens. Um servidor de correio eletrônico armazena mensagens recebidas em caixas postais e mantém mensagens de saída em uma fila. O SMTP transfere mensagens entre sistemas.

Acompanhe a entrega após a submissão

Alice submete uma mensagem para Bob ao seu próprio servidor. Esse servidor consulta os registros MX do domínio de Bob, resolve o endereço do servidor escolhido e abre uma conexão TCP com a porta 25. Ele envia a mensagem ao servidor de Bob, que a armazena na caixa postal dele. O servidor de Alice é o cliente SMTP durante essa transferência, embora atenda ao agente de usuário dela em outra troca.

Se o destino estiver temporariamente indisponível, a fila de saída mantém a mensagem para novas tentativas. O dispositivo de Alice pode ficar offline enquanto o servidor continua trabalhando. Após falhas repetidas, um relatório de não entrega pode retornar ao remetente do envelope.

Leia a conversa

O SMTP usa comandos de texto e respostas numéricas. Eis uma troca de entrega abreviada; C: e S: identificam os dois interlocutores e não são transmitidos como parte de cada comando.

S: 220 mail.example.net ready
C: EHLO mail.example.org
S: 250 mail.example.net
C: MAIL FROM:<alice@example.org>
S: 250 OK
C: RCPT TO:<bob@example.net>
S: 250 OK
C: DATA
S: 354 Send message
C: From: Alice <alice@example.org>
C: To: Bob <bob@example.net>
C: Date: Tue, 03 Mar 2026 10:02:44 +0100
C: Subject: Lab report
C:
C: The report is ready.
C: .
S: 250 Message accepted
C: QUIT
S: 221 Closing

EHLO apresenta o hospedeiro remetente. MAIL FROM define o remetente do envelope; cada RCPT TO nomeia um destinatário do envelope. DATA inicia a mensagem, e uma linha contendo apenas um ponto a encerra. Uma conexão pode transportar mais de uma mensagem. As classes de resposta distinguem sucesso (2xx), solicitação de mais dados (3xx), falha temporária (4xx) e falha permanente (5xx). Uma resposta 4xx exige uma nova tentativa posterior; uma falha 5xx precisa de outro tratamento, frequentemente uma devolução.

Separe endereços de entrega dos campos exibidos

O envelope controla o roteamento. Os campos From: e To: dentro da mensagem são exibidos ao leitor. Eles podem diferir do envelope. Um destinatário em cópia oculta pode aparecer em RCPT TO sem aparecer nos cabeçalhos visíveis da mensagem. Responder a uma mensagem e informar uma falha de entrega não precisam usar o mesmo endereço.

Um usuário normalmente submete mensagens por SMTP autenticado na porta 587 com STARTTLS ou na porta 465 com TLS desde o início. A transferência entre servidores normalmente usa a porta 25 e pode negociar STARTTLS. Submissão e transferência têm papéis diferentes, mesmo quando ambas usam SMTP. O HTTP geralmente busca objetos solicitados; o SMTP envia ativamente uma mensagem preparada.

Verifique o domínio do remetente

Um campo From: visível é fácil de falsificar. O SPF verifica se o hospedeiro remetente está autorizado para o domínio do envelope. O DKIM verifica a assinatura de uma mensagem usando uma chave pública publicada no DNS. O DMARC associa um resultado bem-sucedido de SPF ou DKIM ao domínio From visível por meio do alinhamento de domínios e publica uma política para falhas. A aprovação do SPF apenas para um domínio de envelope não relacionado não valida o remetente visível.

Principais conclusões

  • O SMTP envia mensagens por TCP entre servidores de correio eletrônico.
  • Filas permitem que servidores tentem novamente enquanto os dispositivos dos usuários estão offline.
  • O envelope SMTP controla a entrega; os cabeçalhos da mensagem controlam o que os leitores veem.
  • A submissão costuma usar SMTP autenticado na porta 587 ou 465.
  • Falhas SMTP temporárias e permanentes exigem respostas diferentes.
  • O DMARC exige aprovação alinhada do SPF ou DKIM, não apenas qualquer aprovação do SPF.

4.2 Conteúdo da mensagem e leitura de uma caixa postal

A transferência de correio, o conteúdo da mensagem e o acesso à caixa postal são partes separadas do correio eletrônico. O SMTP transfere uma mensagem para um servidor de correio. A mensagem tem seu próprio formato de cabeçalho e corpo, e um destinatário acessa mais tarde a caixa postal armazenada por outro protocolo.

Leia a própria mensagem

Uma mensagem começa com campos como From:, To:, Date:, Subject: e Message-ID:. Uma linha em branco separa esses cabeçalhos do corpo. Eles continuam fazendo parte da mensagem armazenada; os comandos SMTP MAIL FROM e RCPT TO não se tornam cabeçalhos da mensagem.

O formato básico usa linhas de texto. O MIME, Extensões multiuso do correio da internet, descreve conteúdo mais complexo com campos adicionais. Content-Type: text/plain; charset=UTF-8 descreve texto simples e sua codificação de caracteres. image/jpeg identifica uma imagem. multipart/mixed descreve várias partes, separadas por uma sequência delimitadora, como uma nota de texto seguida de um anexo. Cada parte pode ter seu próprio tipo de conteúdo e codificação de transferência.

Content-Transfer-Encoding descreve como uma parte é representada para transferência. Base64 transforma cada grupo de três bytes em quatro caracteres ASCII. Para um anexo de 3 MB, 3.000.000 bytes se tornam 4.000.000 caracteres antes das quebras de linha e dos cabeçalhos da mensagem. A codificação acrescenta cerca de um terço ao tamanho. Portanto, o limite de tamanho total de mensagem de um servidor não pode ser comparado apenas ao tamanho bruto do anexo. Quoted-printable é outra codificação adequada a texto predominantemente legível.

Escolha um protocolo de acesso ao correio eletrônico

O servidor do destinatário pode receber mensagens enquanto os dispositivos do destinatário estão offline. Quando ele retorna, um protocolo de acesso ao correio eletrônico permite que um cliente recupere mensagens armazenadas.

Método de acessoOnde fica o estado da caixa postalEfeito entre dispositivos
IMAPMensagens, pastas e indicadores permanecem no servidor.Dispositivos podem compartilhar a mesma organização e o mesmo estado de leitura.
POP3Um cliente baixa mensagens e pode excluí-las do servidor.Baixar e excluir pode tornar mensagens indisponíveis para outro dispositivo.
WebmailUm navegador interage com o serviço de correio por HTTPS.O serviço gerencia a caixa postal por trás da interface web.

O IMAP pode buscar os cabeçalhos ou partes selecionadas de uma mensagem sem baixar todos os anexos. Ele costuma usar a porta 143 com STARTTLS ou a porta 993 com TLS desde o início. O POP3 costuma usar a porta 110 ou TLS na 995. Suas marcações de exclusão entram em vigor quando a sessão termina normalmente. Baixar e manter deixa cópias no servidor, mas o POP3 não oferece as pastas no servidor e os indicadores compartilhados do IMAP.

Suponha que Bob verifique suas mensagens em um laptop antes de sair de casa e depois em um celular. Se o laptop usar POP3 no modo baixar e excluir, o celular pode encontrar uma caixa postal vazia no servidor. Com IMAP, marcar uma mensagem como lida no laptop altera o estado no servidor, que o celular também pode ver. A diferença está na sincronização da caixa postal, não na entrega por SMTP.

Acompanhe uma mensagem de webmail além do navegador

Um navegador submete ou lê mensagens usando HTTPS. O provedor de webmail ainda usa SMTP para transferir mensagens ao servidor de outro domínio. Um caminho completo pode, portanto, usar HTTPS do remetente ao provedor, SMTP entre provedores e depois IMAP ou HTTPS na extremidade receptora. Chamar um serviço de webmail descreve sua interface de usuário e sua conexão com o navegador, não todos os protocolos usados no percurso da mensagem.

Principais conclusões

  • Cabeçalhos de mensagem pertencem à mensagem, separadamente dos comandos SMTP.
  • O MIME descreve tipos de conteúdo, limites entre partes e codificações de transferência.
  • Base64 acrescenta cerca de um terço aos dados do anexo antes de outras informações adicionais.
  • O IMAP sincroniza mensagens, pastas e indicadores mantidos no servidor.
  • O modo baixar e excluir do POP3 pode remover mensagens antes que outro dispositivo as leia.
  • O webmail usa HTTPS no navegador e ainda depende de SMTP entre servidores de correio.
5

Distribuição de arquivos e streaming de vídeo

Grandes públicos criam gargalos diferentes para um servidor, um grupo de pares e um conjunto distribuído de caches. Comece pelos limites de upload e download na distribuição de arquivos e depois examine como o BitTorrent compartilha esse trabalho. Para vídeo, relacione a taxa codificada e os downloads de segmentos ao buffer de reprodução e acompanhe como uma CDN posiciona conteúdo e direciona usuários a servidores capazes de entregá-lo com eficiência.

5.1 Distribuição de arquivos e BitTorrent

Distribuir um arquivo significa que cada destinatário deve obter uma cópia completa. O gargalo nem sempre é o servidor: um destinatário com download lento ou capacidade total de upload insuficiente pode determinar o tempo mínimo. O modelo padrão pressupõe que os enlaces de acesso são os gargalos e que o núcleo tem capacidade suficiente.

Compare os limites inferiores

Considere um arquivo com F bits e N destinatários. O servidor envia à taxa us; o par i envia à taxa ui e baixa à taxa di. A menor taxa de download de um par é dmin. Use unidades correspondentes, como Mbit e Mbps, para que a divisão produza segundos.

Na distribuição cliente-servidor, o servidor precisa enviar NF bits e o par mais lento precisa receber F bits:

Dcs≥max⁡{NFus,Fdmin}

No P2P, o servidor precisa introduzir cada bit pelo menos uma vez. Os pares ainda precisam baixar o arquivo, e o sistema inteiro precisa enviar dados suficientes para todas as cópias:

DP2P≥max⁡{Fus,Fdmin,NFus+∑iui}

Escolha o máximo, pois todos os requisitos devem ser atendidos durante a distribuição. Somar os termos pressuporia incorretamente que essas atividades de upload e download ocorrem uma após a outra. Esses são limites inferiores; sobrecarga do protocolo, pares indisponíveis e outros gargalos podem tornar as transferências reais mais lentas.

Faça uma comparação

Para um arquivo de 2 Gbit, use 2.000 Mbit. Considere o upload do servidor de 100 Mbps, o download mais lento de 20 Mbps e cada um dos 100 pares enviando a 5 Mbps.

O termo do servidor cliente-servidor é 200.000 Mbit dividido por 100 Mbps, ou 2.000 s. O termo do download mais lento é 100 s. Seu limite é, portanto, 2.000 s.

Para P2P, introduzir o arquivo leva pelo menos 20 s. O download mais lento ainda leva 100 s. A capacidade total de upload é 100 mais 500, ou 600 Mbps; distribuir 200.000 Mbit leva pelo menos cerca de 333 s. O limite P2P é de cerca de 333 s. Com 1.000 pares, o limite cliente-servidor sobe para 20.000 s, enquanto o limite P2P é de cerca de 392 s. Para taxas de upload iguais entre os pares, o termo de capacidade total se aproxima do tamanho do arquivo dividido pela taxa de upload de um par conforme o número de pares cresce.

Troque partes no BitTorrent

Um torrent é um grupo que compartilha um arquivo. Pares trocam partes, descobrem vizinhos por meio de um rastreador ou tabela hash distribuída e podem enviar dados antes de terminar o download. Um semeador tem o arquivo completo e continua a compartilhá-lo.

Mais raro primeiro escolhe uma parte necessária que o menor número de vizinhos possui, ajudando a preservar partes que poderiam desaparecer quando um par sai. Isso decide o que solicitar. A reciprocidade incentiva trocas úteis ao favorecer vizinhos que fornecem dados rapidamente; ela decide para quem enviar.

No projeto original, quatro vizinhos interessados são desbloqueados por vez, incluindo um desbloqueio otimista. A escolha regular é revista aproximadamente a cada 10 s e o par otimista aproximadamente a cada 30 s. Essa vaga exploratória dá aos recém-chegados uma forma de obter partes iniciais e ajuda a descobrir parceiros melhores. O rastreador coordena a descoberta; ele não é a fonte de dados de cada parte.

Principais conclusões

  • A distribuição cliente-servidor é limitada pelo upload do servidor e pelo download mais lento.
  • O P2P também depende da introdução do arquivo e da capacidade total de upload do sistema.
  • Escolha o máximo das restrições simultâneas, não sua soma.
  • O P2P é escalável porque novos pares contribuem com capacidade de upload.
  • Mais raro primeiro seleciona partes; a reciprocidade seleciona parceiros para upload.
  • Um desbloqueio otimista dá a pares novos ou ainda não explorados uma chance de trocar dados.

5.2 Streaming adaptativo e mudanças no buffer

Um vídeo consiste em quadros exibidos ao longo do tempo. A compressão remove informações repetidas dentro de um quadro (redundância espacial) e entre quadros (redundância temporal). O resultado codificado tem uma taxa de bits: a quantidade de dados de vídeo necessária para cada segundo de reprodução.

Relacione taxa, tamanho e tempo de reprodução

Um vídeo de duas horas a 5 Mbps contém 36.000 Mbit, ou 4,5 GB. Multiplique a taxa pela duração para obter bits e depois divida por oito para obter bytes. Uma vazão média do caminho abaixo da taxa de vídeo selecionada acaba esvaziando qualquer buffer finito durante a reprodução contínua.

Um reprodutor pode começar antes de baixar o vídeo inteiro. Ele armazena os próximos dados em um buffer, medido aqui em segundos de vídeo reproduzível. A reprodução consome esse buffer enquanto os downloads o reabastecem. Um buffer inicial maior oferece proteção contra quedas de vazão, mas aumenta o atraso de inicialização.

Solicite um segmento por vez

O DASH, streaming adaptativo dinâmico sobre HTTP, armazena várias versões codificadas em taxas diferentes e divide cada uma em segmentos. Um manifesto lista as versões disponíveis e as URLs dos segmentos. O cliente solicita um segmento com HTTP GET e escolhe novamente uma versão no limite do segmento seguinte. O HLS usa uma abordagem semelhante com listas de reprodução.

O reprodutor toma a decisão de adaptação usando a vazão medida e o nível do buffer. Uma estimativa recente de vazão alta favorece uma taxa maior; um buffer baixo exige cautela. Escolher a maior taxa observada uma vez pode causar uma interrupção se o download seguinte ficar mais lento. Reprodutores também tentam evitar mudanças de qualidade frequentes e que distraiam o usuário.

Calcule o download de um segmento

Considere segmentos de 4 s codificados a 1; 2,5; 5 e 8 Mbps. Com uma vazão medida de 6 Mbps, o segmento de 5 Mbps contém 20 Mbit. Ele é baixado em cerca de 3,33 s, acrescentando 4 s de conteúdo reproduzível enquanto a reprodução consome cerca de 3,33 s. Com a reprodução em andamento, o buffer cresce cerca de 0,67 s.

Um segmento de 8 Mbps contém 32 Mbit e leva cerca de 5,33 s, então o buffer diminui cerca de 1,33 s. Os 6 Mbps do caminho são uma taxa de transferência; eles não transformam uma codificação de 8 Mbps em uma de 6 Mbps.

Se a vazão cair para 3 Mbps, o mesmo segmento de 5 Mbps levará cerca de 6,67 s. O buffer perde cerca de 2,67 s por segmento. Mudar para a versão de 2,5 Mbps produz um segmento de 10 Mbit que leva cerca de 3,33 s, permitindo que o buffer volte a crescer. Para uma reprodução ininterrupta durante um download, o buffer inicial também precisa durar até que novos dados reproduzíveis estejam disponíveis.

Streaming armazenado e chamadas interativas

O streaming de vídeo armazenado usa objetos HTTP comuns, que caches de navegador e servidores CDN podem fornecer. Portanto, ele funciona sobre TCP ou QUIC, conforme a versão do HTTP. Chamadas interativas frequentemente usam transporte de mídia baseado em UDP porque esperar por mídia antiga pode ser pior do que perdê-la.

Um evento ao vivo também pode usar streaming HTTP segmentado, mas o reprodutor espera a produção de cada segmento e mantém um buffer com atraso em relação ao evento ao vivo. Segmentos mais curtos podem reduzir esse atraso, aumentando o número de requisições. Ir para uma posição que não está no buffer também exige reabastecer o reprodutor, o que pode reduzir brevemente a qualidade.

Principais conclusões

  • A taxa de bits codificada mede os dados necessários por segundo de reprodução.
  • O tamanho de um segmento é sua duração multiplicada por sua taxa codificada.
  • A mudança no buffer durante a reprodução contínua é a duração do segmento menos o tempo de download.
  • Clientes DASH selecionam versões usando estimativas de vazão e o nível do buffer.
  • Vídeo HTTP armazenado usa TCP ou QUIC; chamadas interativas têm necessidades de tempo diferentes.

5.3 Posicionamento de CDNs e direcionamento de requisições

Uma rede de distribuição de conteúdo, ou CDN, fornece cópias de conteúdo a partir de muitos locais. Ela evita enviar todos os espectadores a um único centro de dados distante e reduz transferências repetidas de longa distância. Distribuir a capacidade de atendimento também reduz a dependência de um único local.

Coloque o conteúdo perto dos usuários

Uma CDN privada pertence a um provedor; uma CDN de terceiros atende a muitos clientes. Ambas podem entregar imagens, scripts, software e páginas web, além de vídeo. A fonte original do conteúdo é a origem. Agrupamentos da CDN mantêm cópias para que a origem não precise atender a todas as requisições.

Há duas estratégias úteis de posicionamento:

EstratégiaPosicionamentoCompensação
Entrar profundamenteMuitos agrupamentos menores dentro de redes de provedores de acessoCaminhos curtos até os usuários, mas muitos locais para manter
Trazer para casaMenos agrupamentos, porém maiores, em pontos de troca de tráfegoGerenciamento mais simples, mas caminhos mais longos para alguns usuários

Posicionamento e abastecimento de conteúdo são escolhas distintas. Com armazenamento sob demanda, um agrupamento que não possui um objeto busca-o na origem ou em outro agrupamento, armazena-o e o fornece. Com distribuição antecipada, o provedor envia objetos com antecedência, muitas vezes durante períodos de pouco tráfego. A primeira requisição de um objeto ausente do cache de uma CDN sob demanda ainda pode depender da origem.

Acompanhe uma transferência pelo DNS

Um usuário solicita https://video.stream.example.com/v/6Y7B23V:

  1. O resolvedor do usuário consulta video.stream.example.com.
  2. O servidor autoritativo do provedor retorna um CNAME para o espaço de nomes da CDN, como a1105.cdn.example.net.
  3. O resolvedor segue esse nome até o serviço DNS autoritativo da CDN.
  4. A CDN seleciona um agrupamento e retorna um endereço como 198.51.100.17.
  5. O cliente se conecta a esse servidor por HTTPS e solicita o conteúdo.

O CNAME muda onde a resolução de nomes continua. O DNS retorna informações de nomes; os bytes do vídeo chegam depois por HTTP. Se o conteúdo estiver segmentado, muitas requisições comuns de segmentos seguem o mesmo caminho básico até um servidor selecionado.

Escolha uma localização útil

O agrupamento mais próximo no mapa pode ter um caminho de rede ruim ou estar sobrecarregado. Uma decisão baseada em DNS pode considerar a localização do resolvedor, que pode estar longe do usuário. Uma seleção melhor pode usar medições de atraso e perda, carga atual e, às vezes, informações sobre a rede do cliente.

O anycast IP oferece outro caminho para um serviço próximo: vários locais anunciam o mesmo endereço IP, e o roteamento da internet escolhe um caminho até um deles. A localização resultante depende do roteamento, não apenas da distância física. Um servidor perto do espectador ainda pode entregar vídeo de baixa qualidade se o próprio enlace de acesso do espectador for o gargalo.

O Open Connect da Netflix instala equipamentos em redes de provedores de serviços de internet e se conecta em pontos de troca de tráfego. O conteúdo é carregado antes da demanda, reduzindo o tráfego de saída nos horários de pico. Seus serviços de aplicação e a entrega de vídeo codificado não precisam funcionar na mesma infraestrutura. Outros projetos de CDN privada podem preencher caches sob demanda. Em cada caso, o streaming adaptativo controla a taxa que o reprodutor solicita, enquanto a CDN ajuda a determinar o caminho e o servidor que atendem a essas requisições.

Principais conclusões

  • Uma CDN distribui cópias e capacidade de atendimento entre locais.
  • Entrar profundamente e trazer para casa equilibram o comprimento do caminho e o custo de gerenciar os locais.
  • O armazenamento sob demanda preenche o cache quando necessário; a distribuição antecipada o preenche antes das requisições.
  • Um CNAME DNS pode transferir a resolução de nomes para uma CDN.
  • A seleção de agrupamentos depende do desempenho da rede e da carga, além da geografia.
  • CDNs e streaming adaptativo tratam de partes diferentes da entrega de vídeo.
6

Programação com sockets UDP e TCP

Um programa com sockets torna visível o comportamento do transporte: um datagrama chega como uma mensagem, enquanto uma chamada de recepção TCP retorna os bytes disponíveis. Crie um pequeno serviço de texto com cada transporte e acompanhe como o servidor sabe para onde responder. Depois, acrescente delimitação de mensagens à versão TCP e envie uma requisição HTTP real, relacionando as chamadas de socket do Python às trocas de protocolo e aos casos de falha por trás delas.

6.1 Um serviço UDP em Python

Sockets Python enviam bytes. Codifique uma string antes de enviá-la e decodifique os bytes recebidos depois; a codificação de texto padrão é UTF-8. AF_INET seleciona IPv4 e SOCK_DGRAM seleciona UDP. Comece com um serviço local para que ambos os processos possam usar o endereço de loopback 127.0.0.1.

Execute primeiro o receptor

Este servidor trata datagramas curtos de texto e responde em letras maiúsculas:

from socket import socket, AF_INET, SOCK_DGRAM

with socket(AF_INET, SOCK_DGRAM) as server:
    server.bind(("127.0.0.1", 12000))
    while True:
        data, client_addr = server.recvfrom(2048)
        reply = data.decode().upper().encode()
        server.sendto(reply, client_addr)

bind atribui ao socket seu endereço e sua porta de recepção. A vinculação a 127.0.0.1 aceita apenas tráfego local. A string de endereço vazia "", por sua vez, vincula o socket a todas as interfaces IPv4, tornando o serviço acessível a outros hospedeiros quando a rede permite. Pare o servidor em execução antes de iniciar outra cópia na mesma extremidade.

recvfrom bloqueia até a chegada de um datagrama. Ele retorna os dados e o endereço do remetente, incluindo sua porta. O servidor usa o par retornado como destino de sendto, podendo assim responder a clientes cujas portas efêmeras não conhecia antecipadamente.

Envie uma requisição e limite a espera
from socket import socket, AF_INET, SOCK_DGRAM

with socket(AF_INET, SOCK_DGRAM) as client:
    client.settimeout(2.0)
    client.sendto(b"hello network", ("127.0.0.1", 12000))
    try:
        data, server_addr = client.recvfrom(2048)
        print(data.decode())
    except TimeoutError:
        print("No reply within 2 seconds")

O prefixo b cria um literal de bytes; "hello network".encode() produz os mesmos bytes. O sistema operacional atribui a porta local do cliente quando necessário. A resposta esperada é HELLO NETWORK. Nenhum dos programas chama listen ou accept, pois o UDP não estabelece uma conexão de transporte.

Uma resposta ausente não informa ao cliente exatamente o que falhou. A requisição ou a resposta pode ter se perdido, ou pode não haver servidor escutando. O tempo limite permite que a aplicação retome o controle. Alguns sistemas podem informar uma porta de destino fechada como erro; o Windows pode gerar ConnectionResetError durante a recepção.

Respeite os limites dos datagramas

Cada recepção trata um datagrama. Dois datagramas não são combinados em uma mensagem. Se o buffer de recepção for pequeno demais, o excesso desse datagrama será descartado em sistemas Unix típicos; o Windows pode informar um erro. Outra recepção não recupera a parte final ausente. Escolha um buffer grande o suficiente para as mensagens esperadas pela aplicação.

O limite da carga útil UDP sobre IPv4 é de 65.507 bytes com um cabeçalho IPv4 de tamanho mínimo. Esse é um máximo do protocolo, não uma meta útil para o tamanho rotineiro de datagramas. Um programa que precisa detectar perdas pode numerar mensagens, registrar os horários de envio com time.perf_counter() e contar tempos limite expirados. Dois tempos limite expirados em dez requisições resultam em uma taxa de perda medida de 20%. Tentar novamente uma requisição pode causar processamento duplicado, então um projeto com tempo limite e nova tentativa também pode precisar de uma forma de reconhecer números de mensagem repetidos.

Principais conclusões

  • SOCK_DGRAM cria um socket UDP; codificar e decodificar relacionam bytes a texto.
  • bind escolhe a extremidade de recepção; o loopback restringe o acesso ao mesmo hospedeiro.
  • recvfrom fornece o endereço do remetente necessário para uma resposta.
  • Um tempo limite restringe a espera, mas não identifica a causa dos dados ausentes.
  • Um buffer de recepção pequeno demais pode perder a parte final de um datagrama UDP.

6.2 Um serviço TCP com mensagens completas

O TCP fornece ao programa um fluxo de bytes ordenado. Ele não preserva os limites das chamadas sendall. Um teste curto e completo pode chegar em um único recv, mas um programa correto também deve tratar uma requisição dividida entre várias recepções.

Delimite uma requisição de texto

Escolha uma quebra de linha como delimitador. O cliente envia uma linha UTF-8, e o servidor retorna uma linha em maiúsculas. Este servidor lê até encontrar esse delimitador antes de decodificar:

from socket import socket, AF_INET, SOCK_STREAM

with socket(AF_INET, SOCK_STREAM) as server:
    server.bind(("127.0.0.1", 12000))
    server.listen(5)
    while True:
        conn, client_addr = server.accept()
        with conn:
            data = b""
            while b"\n" not in data:
                chunk = conn.recv(1024)
                if not chunk:
                    break
                data += chunk
            if b"\n" in data:
                line = data.split(b"\n", 1)[0]
                conn.sendall(line.decode().upper().encode() + b"\n")

listen cria um socket de escuta, ou socket de acolhimento. accept retorna um novo socket de conexão e o endereço do cliente. Use conn para os bytes desse cliente; o socket original permanece disponível para aceitar mais conexões. Aqui, os clientes são atendidos um por vez. A fila de cinco diz respeito a conexões pendentes, não a cinco threads de trabalho ativas.

Complete o lado do cliente
from socket import create_connection

with create_connection(("127.0.0.1", 12000), timeout=2) as client:
    client.sendall(b"hello network\n")
    data = b""
    while b"\n" not in data:
        chunk = client.recv(1024)
        if not chunk:
            raise EOFError("Reply ended before its newline")
        data += chunk
    print(data.split(b"\n", 1)[0].decode())

O resultado esperado é HELLO NETWORK. sendall continua enviando até que todos os bytes fornecidos sejam entregues para envio ou ocorra um erro. Uma única chamada send pode enviar apenas parte e informa quantos bytes aceitou. Nenhuma das chamadas fornece ao receptor os limites de mensagens da aplicação.

Esse serviço aceita uma linha por conexão. Um serviço persistente com várias mensagens manteria os bytes após a primeira quebra de linha para sua próxima mensagem. Prefixos de comprimento e o fechamento da direção de envio são outras opções de delimitação. Receber b"" significa que o par encerrou seu lado de envio; não é uma parte vazia cuja recepção deva ser tentada novamente.

Relacione o código a protocolos reais

Uma requisição HTTP/1.1 também é uma sequência de bytes:

from socket import create_connection

request = ("GET / HTTP/1.1\r\n"
           "Host: example.com\r\n"
           "Connection: close\r\n\r\n")
with create_connection(("example.com", 80), timeout=5) as sock:
    sock.sendall(request.encode("ascii"))
    chunks = []
    while True:
        chunk = sock.recv(4096)
        if not chunk:
            break
        chunks.append(chunk)
print(b"".join(chunks).decode(errors="replace")[:200])

Isso exibe o início da resposta bruta, incluindo seu status e seus cabeçalhos. Um servidor pode retornar um erro ou redirecionamento; o código não pressupõe um corpo de resposta específico. HTTPS na porta 443 precisa de uma camada TLS com verificação de certificado e nome de hospedeiro, não apenas de uma mudança no número da porta. Por exemplo, ssl.create_default_context().wrap_socket(sock, server_hostname="example.com") envolve um socket conectado após import ssl. Uma conexão recusada normalmente significa que ninguém está escutando; tráfego descartado silenciosamente pode atingir o tempo limite. Para reinicializações rápidas do servidor no Unix, definir SO_REUSEADDR antes de bind pode permitir a reutilização enquanto uma conexão antiga está sendo encerrada; isso não permite que dois sockets de escuta ativos ocupem a mesma extremidade. Servidores concorrentes usam threads ou laços de eventos e distinguem conexões pelos pares de endereço e porta de ambas as extremidades.

Principais conclusões

  • accept retorna um socket de conexão distinto do socket de escuta.
  • Mensagens TCP precisam de delimitação e laços de recepção.
  • sendall trata envios parciais; recv ainda pode retornar dados parciais.
  • Uma recepção TCP vazia indica o fim da direção de envio do par.
  • Uma requisição HTTP/1.1 precisa de finais de linha CRLF e da linha em branco final.
  • O HTTPS exige TLS além da porta 443.
  • O limite da fila controla conexões pendentes, não a concorrência da aplicação.

Exercícios resolvidos de Camada de aplicação

6 Lições Interativas

1

Escolha uma arquitetura de aplicação e um transporte

9 passos
Acompanhe o projeto de compartilhamento de arquivos desde os papéis dos hospedeiros até o serviço de transporte de que seus processos precisam.
  1. 1
    IntroduçãoComece pelos programas

    Um serviço de rede é construído com programas nas extremidades da rede. Imagine distribuir um conjunto de dados de pesquisa para um grupo crescente: alguém precisa localizar os dados, enviá-los e recebê-los. Acompanhe essas responsabilidades para comparar arquiteturas cliente-servidor e P2P e depois decida o que os processos precisam de seu serviço de transporte.

  2. 2
    ExplicaçãoColoque o conteúdo em servidores dedicados

    Em uma arquitetura cliente-servidor, clientes solicitam dados a um serviço sempre ligado em um endereço conhecido. O serviço pode usar muitas máquinas por trás de um nome, mas o provedor ainda fornece essa capacidade de atendimento. Se cada pesquisador baixa uma cópia completa do serviço, mais pesquisadores significam mais trabalho de upload para seus servidores. Roteadores transportam os pacotes sem executar a aplicação de compartilhamento de arquivos.

  3. 3
    ExemploPermita que participantes contribuam com uploads

    Em uma arquitetura P2P, um pesquisador que recebeu algumas partes pode enviá-las a outro pesquisador antes de terminar o arquivo inteiro. Um par que entra acrescenta demanda, mas também potencial capacidade de upload. Essa é a origem da autoescalabilidade. Um enlace de upload lento, um par desconectado ou um par que não quer compartilhar enfraquece o benefício, então descoberta, disponibilidade e incentivos são importantes.

  4. 4
    DesafioClassifique o caminho que transporta o arquivo

    Um diretório lista quem possui um conjunto de dados. Os pesquisadores então trocam suas partes diretamente. Toda transferência de arquivo é cliente-servidor e quem é o cliente quando um par solicita uma parte?

    ---reveal---

    A arquitetura geral é híbrida: descoberta baseada em servidor e transferência de dados entre pares. O par que inicia a requisição da parte é o cliente nessa troca; o par que responde assume o papel de servidor.

  5. 5
    ExplicaçãoLocalize uma extremidade receptora

    Um processo usa um socket para acessar a camada de transporte. O destino precisa de um endereço IP de hospedeiro e de uma porta: o endereço IP alcança o hospedeiro, e a porta distingue seu serviço receptor. Para um serviço HTTPS em 203.0.113.10, a porta usual é 443. O cliente pode usar uma porta de origem efêmera atribuída pelo sistema operacional, então as duas extremidades não precisam usar o mesmo número de porta.

  6. 6
    ExemploEscolha qual atraso importa

    Um jogo envia uma nova posição 30 vezes por segundo, aproximadamente a cada 33 ms. Recuperar uma atualização antiga pode ser menos útil do que agir com base na próxima, então o UDP pode ser adequado para esse tráfego. Um arquivo de configuração baixado deve estar completo, então precisa de entrega confiável. Essa escolha diz respeito ao significado e ao tempo dos dados; escolher UDP não elimina por si só o congestionamento do caminho nem reserva largura de banda.

  7. 7
    ConexãoAcrescente os serviços que faltam

    O TCP fornece bytes confiáveis e ordenados, controle de fluxo e controle de congestionamento, mas não cifragem nem prazo de entrega. O TLS pode proteger seu tráfego. O UDP fornece datagramas e preserva seus limites, mas deixa perdas e ordenação para camadas superiores. O HTTP/3 obtém fluxos confiáveis e TLS 1.3 por meio do QUIC sobre UDP. Identifique a pilha completa antes de avaliar o serviço pelo protocolo mais baixo que estiver visível.

  8. 8
    DesafioProjete uma troca segura entre pares

    Dois pares precisam trocar um documento privado completo. Um deles inicia o contato, e a transferência usa apenas UDP. Quais são seus papéis na troca e de quais serviços essa arquitetura ainda precisa?

    ---reveal---

    Quem inicia é o cliente e quem responde é o servidor nessa troca. O UDP sozinho não fornece entrega completa e ordenada nem confidencialidade. A arquitetura precisa de confiabilidade e segurança acima do UDP ou de uma pilha de transporte que as forneça.

  9. 9
    RecapitulaçãoAcompanhe os papéis antes de escolher o transporte

    Ao avaliar uma arquitetura, primeiro acompanhe quem envia o conteúdo e quem apenas ajuda a localizá-lo. Depois, identifique a extremidade receptora e os serviços de que o conteúdo precisa: entrega correta, vazão adequada, chegada no tempo necessário e proteção. Essas decisões explicam tanto a arquitetura da aplicação quanto por que uma pilha de transporte é adequada. Um socket conecta o processo ao serviço escolhido.

2

Leia e melhore uma troca HTTP

15 passos
Parta de mensagens e cálculos de tempo do HTTP/1.1 e avance até a validação de cache e os fluxos QUIC.

Salve esta aula para seguir cada Lição Interativa passo a passo.

  1. 1
    IntroduçãoAcompanhe o carregamento de uma página
  2. 2
    ExemploLeia a estrutura da requisição
  3. 3
    ExplicaçãoSepare o estabelecimento da transmissão
  4. 4
    ExemploConclua o cálculo do tempo
  5. 5
    DesafioConte as etapas de dependência
  6. 6
    ExplicaçãoReconheça um navegador que retorna
  7. 7
    ExemploEscolha o caminho de acerto ou erro de cache
  8. 8
    ExplicaçãoValide sem outro corpo de objeto
  9. 9
    DesafioPreveja a segunda requisição
  10. 10
    ExplicaçãoIntercale quadros de resposta
  11. 11
    Ideia-chaveLocalize o bloqueio abaixo do HTTP
  12. 12
    ExemploCompare o estabelecimento de novas conexões seguras
  13. 13
    DicaMantenha o significado separado do transporte
  14. 14
    DesafioDiagnostique uma requisição HTTP/3 em cache
  15. 15
    RecapitulaçãoIdentifique qual custo é eliminado
3

Acompanhe e leia uma consulta DNS

11 passos
Acompanhe consultas de resolvedores, indicações em cache e os registros de recurso em uma resposta.

Salve esta aula para seguir cada Lição Interativa passo a passo.

  1. 1
    IntroduçãoEncontre um serviço antes de contatá-lo
  2. 2
    ExplicaçãoComece pelo resolvedor local
  3. 3
    ExemploAcompanhe cada indicação
  4. 4
    ExemploSome os intervalos de espera
  5. 5
    DesafioPreveja uma atualização de endereço
  6. 6
    ExplicaçãoEscolha a consulta de registro correta
  7. 7
    ExemploLeia as seções da resposta
  8. 8
    ConexãoMantenha os objetivos de proteção separados
  9. 9
    DesafioInterprete uma indicação de servidor de correio
  10. 10
    DesafioCombine o cache com o registro correto
  11. 11
    RecapitulaçãoVerifique o que cada nome identifica
4

Acompanhe uma mensagem desde a submissão até a leitura

11 passos
Relacione envelopes SMTP, conteúdo MIME e acesso à caixa postal em uma história de entrega.

Salve esta aula para seguir cada Lição Interativa passo a passo.

  1. 1
    IntroduçãoSepare a transferência da leitura
  2. 2
    ExplicaçãoEntregue o trabalho a um servidor de saída
  3. 3
    ExemploForneça o envelope ao SMTP
  4. 4
    Ideia-chaveDiferencie os endereços exibidos
  5. 5
    DesafioExplique o destinatário oculto
  6. 6
    ConexãoAutentique o domínio correto
  7. 7
    ExplicaçãoRepresente um anexo
  8. 8
    ExemploMantenha o estado da caixa postal no servidor
  9. 9
    DesafioEscolha o acesso para dois dispositivos
  10. 10
    DesafioAcompanhe uma mensagem de webmail de ponta a ponta
  11. 11
    RecapitulaçãoAssocie cada sintoma à sua etapa
5

Analise a entrega de arquivos e vídeos

16 passos
Resolva limites de distribuição, cálculos de buffer e direcionamento de requisições em CDNs.

Salve esta aula para seguir cada Lição Interativa passo a passo.

  1. 1
    IntroduçãoEncontre o recurso limitante
  2. 2
    ExplicaçãoConte as cópias enviadas por um servidor
  3. 3
    ExplicaçãoAcrescente as contribuições dos pares
  4. 4
    ExemploCalcule a capacidade disponível
  5. 5
    ExemploCompare todos os limites simultâneos
  6. 6
    DesafioElimine o gargalo certo
  7. 7
    ConexãoEscolha partes e parceiros de upload
  8. 8
    ExplicaçãoMeça segundos reproduzíveis
  9. 9
    ExemploConverta um segmento em bits
  10. 10
    ExemploReaja quando a vazão cair
  11. 11
    DesafioVerifique o buffer antes da chegada
  12. 12
    ExplicaçãoColoque cópias em caminhos mais curtos
  13. 13
    ExemploTransfira a resolução de nomes para uma CDN
  14. 14
    DesafioEscolha pelo desempenho, não apenas pelo mapa
  15. 15
    DesafioCombine um acerto de CDN com adaptação
  16. 16
    RecapitulaçãoRelacione melhorias às suas restrições
6

Crie e depure uma troca com sockets

14 passos
Acompanhe datagramas UDP, delimite mensagens TCP e relacione a API de sockets ao HTTP.

Salve esta aula para seguir cada Lição Interativa passo a passo.

  1. 1
    IntroduçãoTorne visível o comportamento do transporte
  2. 2
    ExemploCrie e vincule um socket UDP
  3. 3
    ExemploReceba um datagrama e envie-o de volta
  4. 4
    DicaLimite a espera por uma resposta
  5. 5
    DesafioPreveja uma recepção com buffer pequeno demais
  6. 6
    ExplicaçãoAceite uma conexão TCP
  7. 7
    ExemploObserve uma mensagem dividida
  8. 8
    ExemploAcumule bytes até o delimitador
  9. 9
    DesafioMantenha os bytes da próxima mensagem
  10. 10
    DicaEnvie todos os bytes da resposta
  11. 11
    ConexãoEscreva uma requisição HTTP como bytes
  12. 12
    ExplicaçãoSepare conexões em espera de processadores
  13. 13
    DesafioDiagnostique dois programas em espera
  14. 14
    RecapitulaçãoVerifique extremidades, bytes e conclusão

Questões de Camada de aplicação

50 Questões de Prática em 5 conjuntos

Conjunto 1: Registros DNS e o percurso do correio eletrônico10 Questões de Prática

Questão 1 de 10

O que um servidor DNS autoritativo fornece para um domínio que atende?
  1. Resolução recursiva de nomes para os hospedeiros.
  2. Os registros de recurso publicados do domínio.
  3. Os objetos web nomeados pelas URLs do domínio.
  4. Uma porta de origem para cada conexão de navegador.
Mostrar respostaOcultar resposta
Resposta: B
Um servidor autoritativo publica os registros dos nomes que atende. Um resolvedor recursivo local reúne respostas para hospedeiros e pode consultar esse servidor. Publicar os registros não torna o servidor autoritativo a máquina que fornece os objetos web do domínio.

Questão 2 de 10

Uma resposta DNS contém assets.example.net CNAME edge.cdn.example.org. O resolvedor não tem endereço para o destino. Que informação ele deve obter antes que o cliente possa se conectar por IPv4?
  1. Um registro MX para assets.example.net.
  2. Um registro NS cujo valor seja o IP do servidor CDN.
  3. Um registro PTR cujo valor seja o caminho do objeto HTTP.
  4. Um registro A para edge.cdn.example.org.
Mostrar respostaOcultar resposta
Resposta: D
O CNAME fornece outro nome de hospedeiro, então o estabelecimento da conexão IPv4 ainda exige seu registro A. Um registro MX seleciona um servidor de correio e não resolve esse apelido web. Um registro NS também contém um nome, não o endereço IP do servidor sugerido por essa interpretação equivocada.

Questão 3 de 10

Um domínio tem entradas MX com preferências 15 e 35. Qual servidor um remetente normalmente deve tentar primeiro?
  1. O servidor com preferência 15.
  2. O servidor com preferência 35.
  3. O servidor nomeado no CNAME do hospedeiro web.
  4. O servidor com o TTL DNS mais longo.
Mostrar respostaOcultar resposta
Resposta: A
Para registros MX, o menor valor de preferência é preferido, então o remetente tenta 15 primeiro. Um valor maior costuma ser confundido com prioridade maior. O TTL controla por quanto tempo o registro pode ser armazenado em cache; ele não classifica os destinos de correio do domínio.

Questão 4 de 10

Um resolvedor armazena um endereço em cache com TTL de 900 s. O endereço autoritativo muda 240 s depois. Por quanto tempo mais o resolvedor pode continuar usando a resposta antiga em cache?
  1. 240 s.
  2. 900 s.
  3. 660 s.
  4. 1.140 s.
Mostrar respostaOcultar resposta
Resposta: C
O registro em cache já usou 240 s de seu tempo de vida de 900 s, restando 660 s. A atualização autoritativa não reinicia nem apaga instantaneamente esse tempo de vida em cache. Responder 900 s trataria a mudança posterior de endereço como se ela criasse uma nova cópia do registro antigo.

Questão 5 de 10

Uma resposta DNS por UDP chega com o indicador TC ativado e sem a resposta completa. Como um resolvedor deve obter a resposta completa na alternativa usual?
  1. Tentar novamente a consulta por TCP na porta 53.
  2. Tentar novamente a consulta por UDP na porta 80.
  3. Tratar os registros ausentes como NXDOMAIN.
  4. Abrir uma conexão TCP na porta 25.
Mostrar respostaOcultar resposta
Resposta: A
O indicador TC marca truncamento, então o resolvedor pode tentar novamente a consulta usando TCP na porta DNS 53. Dados ausentes em uma resposta truncada não significam que o nome não existe. NXDOMAIN é uma resposta de erro DNS distinta, não uma conclusão tirada de uma resposta incompleta.

Questão 6 de 10

O que um servidor de correio remetente normalmente deve fazer após uma rejeição SMTP temporária 4xx?
  1. Marcar como entregue e descartar a entrada da fila.
  2. Manter a mensagem na fila para uma tentativa posterior.
  3. Tratar a caixa postal como inexistente em definitivo.
  4. Trocar a entrega de SMTP para IMAP.
Mostrar respostaOcultar resposta
Resposta: B
Uma resposta SMTP 4xx informa uma falha temporária, então o servidor remetente mantém a mensagem para uma nova tentativa. Uma rejeição permanente 5xx recebe outro tratamento e frequentemente leva a um relatório de falha de entrega. O IMAP acessa mensagens armazenadas e não pode substituir a transferência SMTP rejeitada.

Questão 7 de 10

Uma mensagem é aceita para RCPT TO:<archive@example.net>, mas seu campo To: visível nomeia team@example.net. Qual endereço controla essa entrega aceita?
  1. team@example.net no cabeçalho visível da mensagem.
  2. O endereço do remetente que aparece em MAIL FROM.
  3. O nome do hospedeiro fornecido pelo comando EHLO.
  4. archive@example.net no envelope SMTP.
Mostrar respostaOcultar resposta
Resposta: D
RCPT TO identifica um destinatário do envelope e controla a entrega descrita aqui. O campo To visível faz parte da mensagem e pode nomear outro endereço. MAIL FROM fornece o remetente do envelope para finalidades como informar falhas de entrega; ele não é o destinatário.

Questão 8 de 10

Um celular deve mostrar pastas e indicadores de leitura alterados em um laptop. Qual método de acesso oferece suporte diretamente a esse estado da caixa postal no servidor?
  1. POP3 no modo baixar e excluir por dispositivo.
  2. Transferência SMTP entre os dispositivos.
  3. Acesso IMAP à caixa postal compartilhada.
  4. POP3 no modo baixar e manter em ambos os dispositivos.
Mostrar respostaOcultar resposta
Resposta: C
O IMAP armazena pastas e indicadores da caixa postal no servidor, então ambos os dispositivos podem observar o mesmo estado. O POP3 no modo baixar e manter deixa cópias das mensagens disponíveis, mas não sincroniza pastas no servidor nem indicadores de leitura. Manter mensagens é diferente de compartilhar sua organização.

Questão 9 de 10

Uma mensagem exibe From: help@example.org, usa um remetente de envelope em mailer.example.net, passa no SPF para example.net e não tem assinatura DKIM válida. Por que o sucesso do SPF não produz uma aprovação DMARC para o domínio exibido?
  1. A verificação SPF aprovada deve usar o domínio do destinatário.
  2. O domínio aprovado pelo SPF não está alinhado ao domínio From.
  3. O resultado SPF aprovado precisa de uma preferência MX menor que 10.
  4. O resultado SPF aprovado só é válido quando o SMTP usa a porta 465.
Mostrar respostaOcultar resposta
Resposta: B
O SPF autentica o domínio do envelope, aqui example.net, enquanto o DMARC relaciona a autenticação ao domínio From visível. Esses domínios não são relacionados, e não há aprovação DKIM alinhada disponível, então a aprovação do SPF é insuficiente. Autenticar algum domínio não autentica, por si só, o remetente exibido.

Questão 10 de 10

Um servidor permite mensagens de no máximo 8 MB. Um remetente anexa dois arquivos binários de 3 MB codificados em base64. O que se conclui sobre a possibilidade de a mensagem completa respeitar o limite?
  1. Ela ultrapassa o limite quando os dados adicionais da mensagem são incluídos.
  2. Ela cabe com 2 MB disponíveis para cabeçalhos e texto.
  3. Ela cabe exatamente porque todos os dados adicionais já estão incluídos.
  4. Ela ultrapassa o limite apenas se os dois arquivos tiverem tipos diferentes.
Mostrar respostaOcultar resposta
Resposta: A
Os anexos totalizam 6 MB antes da codificação, tornando-se 8 milhões de caracteres base64 antes das quebras de linha. Cabeçalhos, separadores e outros conteúdos da mensagem fazem o tamanho ficar acima de 8 MB. Comparar apenas os 6 MB brutos com o limite ignora o acréscimo da codificação que ocupa o espaço disponível.
Conjunto 2: Decisões sobre processos, HTTP e consultas10 Questões de Prática

Salve esta aula para ver todas as respostas e praticar cada conjunto.

Questão 1 de 10

Um par que compartilha arquivos inicia uma requisição de uma parte a outro par. Qual é o papel do processo solicitante nessa troca?
  1. O papel de servidor.
  2. O papel de rastreador.
  3. O papel de cliente.
  4. O papel de retransmissor.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 2 de 10

Um serviço usa um hospedeiro para listar os participantes disponíveis, mas os participantes enviam partes de arquivos diretamente uns aos outros. Como esse serviço está organizado?
  1. Uma arquitetura híbrida com descoberta centralizada e transferência de dados entre pares.
  2. Um serviço cliente-servidor com entrega centralizada de arquivos.
  3. Um serviço P2P puro sem hospedeiro dedicado à coordenação.
  4. Um serviço de proxy com cache e descoberta de participantes pela origem.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 3 de 10

Um hospedeiro executa vários serviços de rede. Quais informações de destino permitem que um remetente alcance a extremidade receptora desejada?
  1. O endereço IP do hospedeiro e o caminho do arquivo.
  2. A porta do serviço e o tipo de conteúdo do objeto.
  3. O nome do hospedeiro e o código de status da resposta.
  4. O endereço IP do hospedeiro e a porta do serviço.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 4 de 10

Um aplicativo de sensor envia atualizações independentes que rapidamente ficam desatualizadas, mas seus downloads de configuração devem chegar completos. Qual projeto de transporte atende a essas duas necessidades?
  1. TCP para atualizações e UDP sem proteção para configuração.
  2. UDP para atualizações e um serviço confiável para configuração.
  3. UDP sem proteção para ambos, pois preserva os limites das mensagens.
  4. TCP para ambos, pois garante um prazo para cada atualização.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 5 de 10

Um servidor HTTP retorna 404 Not Found para /handbook.pdf. O que essa troca estabeleceu?
  1. O servidor nunca aceitou a conexão de transporte.
  2. A requisição teve sucesso, mas o navegador rejeitou o arquivo.
  3. O servidor respondeu, mas o recurso não foi encontrado.
  4. O servidor redirecionou o recurso para um novo endereço.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 6 de 10

Uma nova conexão TCP com HTTP simples tem RTT de 25 ms. Um objeto de 300 kB atravessa um caminho de 40 Mbps. Qual é seu tempo aproximado de busca, desconsiderando DNS e processamento?
  1. 60 ms.
  2. 85 ms.
  3. 160 ms.
  4. 110 ms.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 7 de 10

O que Cache-Control: no-cache exige antes que uma resposta armazenada seja reutilizada?
  1. Validá-la com a origem.
  2. Recusar armazená-la por completo.
  3. Reutilizá-la até o navegador encerrar.
  4. Mantê-la apenas em proxy compartilhado.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 8 de 10

Um cache tem taxa de acerto de 30%. Acertos levam 8 ms e erros de cache levam 180 ms. Qual é o tempo médio de resposta?
  1. 59,6 ms.
  2. 128,4 ms.
  3. 94 ms.
  4. 172 ms.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 9 de 10

Um resolvedor tem em cache uma delegação válida para os servidores autoritativos de um domínio, mas nenhum endereço em cache para o hospedeiro solicitado. Para onde ele pode enviar sua próxima consulta?
  1. A um servidor raiz para reiniciar a consulta.
  2. Ao servidor web solicitado diretamente.
  3. A um desses servidores autoritativos.
  4. Ao cache do navegador para a delegação.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 10 de 10

Uma página tem um objeto HTML minúsculo e seis imagens minúsculas. O RTT é 15 ms. Compare HTTP simples não persistente sequencial com busca não persistente usando três conexões paralelas para imagens por lote após o HTML. Desconsidere transmissão, DNS e processamento. Quanto tempo os lotes economizam?
  1. 120 ms.
  2. 90 ms.
  3. 150 ms.
  4. 165 ms.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Conjunto 3: Entrega de conteúdo e comportamento de sockets10 Questões de Prática

Salve esta aula para ver todas as respostas e praticar cada conjunto.

Questão 1 de 10

Um reprodutor tem 3 s no buffer e solicita segmentos completos de 4 s a 2 ou 4 Mbps. A vazão permanece em 3 Mbps; apenas segmentos completos podem ser reproduzidos. Qual escolha evita uma interrupção no próximo download e aumenta o buffer?
  1. A versão de 4 Mbps.
  2. Qualquer uma, pois ambos os segmentos duram 4 s.
  3. A versão de 2 Mbps.
  4. Nenhuma, pois o buffer é menor que um segmento.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 2 de 10

Um par BitTorrent precisa de várias partes. Qual parte a seleção mais raro primeiro favorece?
  1. A parte necessária que o menor número de vizinhos possui.
  2. A parte necessária do vizinho mais rápido.
  3. A parte necessária que vem primeiro no arquivo.
  4. A parte necessária mais solicitada pelos outros pares.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 3 de 10

Que informações um manifesto DASH fornece ao reprodutor para escolher e solicitar segmentos?
  1. Vazão atual do caminho, nível do buffer e próxima taxa escolhida.
  2. Versões codificadas disponíveis, taxas de bits e URLs dos segmentos.
  3. Uma codificação fixa e uma única URL de download do vídeo inteiro.
  4. Locais de servidores disponíveis sem informações sobre versões codificadas.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 4 de 10

Um servidor envia dados a 60 Mbps para 12 clientes, cada um baixando a 15 Mbps. Qual é o limite inferior do tempo de distribuição cliente-servidor para um arquivo de 900 Mbit?
  1. 15 s.
  2. 60 s.
  3. 240 s.
  4. 180 s.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 5 de 10

Um segmento de vídeo de 5 s é codificado a 3 Mbps e baixado a 6 Mbps durante a reprodução contínua. Como o buffer muda após a chegada do segmento completo sem interrupção?
  1. Ele diminui 2,5 s.
  2. Ele aumenta 2,5 s.
  3. Ele aumenta 5 s.
  4. Ele permanece igual.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 6 de 10

Um servidor CDN não tem uma cópia de uma imagem solicitada, busca-a na origem e depois a mantém para requisições posteriores. Que comportamento de armazenamento é esse?
  1. Armazenamento sob demanda após um erro de cache.
  2. Distribuição antecipada antes de requisições.
  3. Retransmissão da origem sem cópia local.
  4. Entrega por pares a partir de outros espectadores.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 7 de 10

Um servidor UDP recebe dados de (192.0.2.44, 53018). Para onde ele deve enviar a resposta a essa requisição?
  1. Para 192.0.2.44 na porta do servidor.
  2. Para o seu próprio IP na porta 53018.
  3. Para 192.0.2.44 na porta 53018.
  4. Para 192.0.2.44 em uma porta não utilizada.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 8 de 10

Um servidor TCP recebe b"part" do primeiro recv(1024) de uma requisição delimitada por quebra de linha. O que ele deve fazer antes de considerar essa requisição completa?
  1. Tratar os quatro bytes como a requisição completa agora.
  2. Continuar recebendo até a quebra de linha ou o fim do fluxo.
  3. Chamar accept novamente para obter o restante da requisição.
  4. Aumentar o limite da fila de escuta para obter os bytes restantes.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 9 de 10

Para um arquivo de 1.200 Mbit, 30 pares enviam dados a 2 Mbps cada e o download mais lento é de 12 Mbps. O servidor envia a 60 Mbps. Quanto o P2P reduz o limite inferior em comparação com cliente-servidor, supondo gargalos apenas nos enlaces de acesso?
  1. 100 s.
  2. 500 s.
  3. 580 s.
  4. 300 s.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 10 de 10

O resolvedor DNS público de um espectador está longe. O agrupamento CDN A é o mais próximo desse resolvedor, mas tem um caminho congestionado até o espectador; o agrupamento B tem um caminho medido mais rápido até ele. Qual mudança na seleção trata desse problema?
  1. Escolher apenas pela distância física até o resolvedor público.
  2. Aumentar o TTL DNS para que o resolvedor mantenha A por mais tempo.
  3. Usar uma taxa codificada maior sempre que o resolvedor estiver distante.
  4. Usar dados de desempenho da rede do cliente ao selecionar o agrupamento.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Conjunto 4: Acompanhe falhas e corrija o raciocínio sobre protocolos10 Questões de Prática

Salve esta aula para ver todas as respostas e praticar cada conjunto.

Questão 1 de 10

O que accept() do Python retorna a um servidor TCP em escuta?
  1. A próxima requisição completa e seu comprimento em bytes.
  2. O socket de escuta original e uma nova porta de servidor.
  3. Um datagrama UDP e o número da mensagem do remetente.
  4. Um novo socket de conexão e o endereço do cliente.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 2 de 10

Uma requisição inclui If-None-Match: "r9", e a origem retorna 304 Not Modified. Como um cache deve atender à requisição?
  1. Substituir a representação armazenada pelo corpo vazio da resposta.
  2. Reutilizar a representação armazenada validada por essa resposta.
  3. Repetir um GET incondicional porque todo 304 é uma falha.
  4. Excluir a representação armazenada porque seu ETag é inválido.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 3 de 10

Vários fluxos HTTP/2 compartilham uma conexão. Um segmento TCP perdido impede a entrega dos bytes posteriores. Por que uma resposta cujos próprios bytes chegaram também pode esperar?
  1. O TCP entrega os bytes da conexão em uma única ordem geral.
  2. O HTTP/2 exige que todos os corpos de resposta terminem na ordem das requisições.
  3. Cada fluxo HTTP/2 abre uma nova conexão TCP após qualquer perda.
  4. O HPACK exige que cada quadro de corpo perdido seja comprimido novamente.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 4 de 10

Em um hospedeiro Unix, um receptor UDP usa um buffer de 500 bytes para um datagrama de 700 bytes que está chegando. O que acontece com a parte final não lida?
  1. A parte final de 200 bytes é lida em seguida.
  2. O datagrama permanece intacto na fila.
  3. A parte final de 200 bytes é descartada.
  4. O remetente reenvia os 200 bytes.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 5 de 10

Um usuário envia uma mensagem por webmail para outro provedor. Qual combinação de protocolos descreve a conexão do navegador e a transferência usual entre servidores?
  1. SMTP no navegador; HTTPS entre servidores de correio.
  2. IMAP no navegador; POP3 entre servidores de correio.
  3. HTTPS no navegador; IMAP entre servidores de correio.
  4. HTTPS no navegador; SMTP entre servidores de correio.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 6 de 10

Um torrent tem muitos pares baixando dados, mas contribuindo com quase nenhuma capacidade de upload. Por que é improvável que acrescentar esses pares ofereça o benefício usual da autoescalabilidade?
  1. Seus enlaces de download eliminam a necessidade de upload do servidor.
  2. Sua presença transforma cada parte existente em um arquivo completo.
  3. Eles acrescentam demanda sem muita capacidade útil de distribuição.
  4. Suas consultas ao rastreador contam como capacidade equivalente de upload de arquivos.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 7 de 10

Uma consulta DNS com cache vazio tem RTT de 4 ms entre hospedeiro e resolvedor, RTT de 12 ms até a raiz, RTT de 18 ms até o TLD e RTT de 26 ms até o servidor autoritativo. Uma consulta posterior usa indicações da raiz e do TLD em cache, mas não tem resposta final em cache. Quanto mais rápida é a consulta posterior, desconsiderando o processamento?
  1. 30 ms mais rápida.
  2. 26 ms mais rápida.
  3. 34 ms mais rápida.
  4. 56 ms mais rápida.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 8 de 10

Um protocolo persistente delimitado por quebra de linha recebe b"red\nblu" e depois b"e\n". Qual tratamento das requisições preserva corretamente ambas as mensagens?
  1. Processar red, descartar blu e depois processar e como segunda requisição.
  2. Processar red, manter blu, combiná-lo com e e processar blue.
  3. Esperar o fechamento e processar red mais blue como uma requisição.
  4. Processar red e blu imediatamente e depois processar e separadamente.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 9 de 10

Uma página minúscula tem um objeto HTML e quatro imagens. O RTT é 20 ms. Compare uma conexão HTTPS persistente com requisições sequenciais a novas conexões HTTPS sequenciais para todos os objetos. Cada nova conexão usa um RTT de estabelecimento TCP e um de TLS 1.3. Desconsidere outros custos. Quanto tempo a reutilização economiza?
  1. 160 ms.
  2. 80 ms.
  3. 120 ms.
  4. 200 ms.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 10 de 10

Um reprodutor começa com 7 s no buffer. Ele baixa três segmentos completos de 3 s codificados a 4 Mbps por um caminho constante de 3 Mbps, com reprodução contínua e sem sobreposição entre downloads. Quanto resta no buffer e ocorre uma interrupção durante esses downloads?
  1. Restam 4 s, com interrupção no último download.
  2. Restam 4 s, sem interrupção.
  3. Restam 7 s, sem interrupção.
  4. Restam 10 s, sem interrupção.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Conjunto 5: Gargalos, dependências e escolhas de projeto10 Questões de Prática

Salve esta aula para ver todas as respostas e praticar cada conjunto.

Questão 1 de 10

Qual transporte fornece os fluxos confiáveis usados pelo HTTP/3?
  1. TLS sobre UDP sem outra camada.
  2. QUIC sobre UDP.
  3. TCP sobre QUIC.
  4. HTTP/2 sobre TCP.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 2 de 10

Um aplicativo muda uma transferência de arquivos de TCP para UDP sem outra camada, mas ainda exige todos os bytes em ordem. Que funcionalidade seu projeto deve agora fornecer acima do UDP?
  1. Apenas uma porta de destino, pois o UDP garante a ordenação.
  2. Apenas comprimentos de mensagem, pois o UDP já ordena as chegadas.
  3. Recuperação de perdas e ordenação dos dados transferidos.
  4. Apenas cifragem, pois o UDP já recupera dados ausentes.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 3 de 10

Um espectador reproduz um vídeo de 6 Mbps a partir de um cache CDN. Seu enlace de acesso pode transportar 4 Mbps, enquanto o agrupamento tem capacidade disponível. Por que mover a cópia em cache para um local CDN ainda mais próximo pode não eliminar as interrupções?
  1. O enlace de acesso do espectador pode continuar sendo o gargalo limitante.
  2. A origem deve aprovar cada segmento antes que um cache possa fornecê-lo.
  3. A codificação de vídeo escolhida determina a capacidade do enlace de acesso.
  4. Um acerto de cache evita trabalho na origem, mas sempre aumenta a taxa de bits do vídeo.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 4 de 10

O tempo limite de um cliente UDP expira após o envio de uma requisição. Por que ele não pode concluir que o programa servidor foi parado?
  1. A expiração confirma que o servidor rejeitou a sintaxe.
  2. Tempos limite expiram apenas quando nenhum processo está vinculado à porta.
  3. A expiração confirma que o servidor mudou seu endereço.
  4. A requisição ou a resposta pode ter se perdido.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 5 de 10

Um enlace de acesso é de 50 Mbps. Chegam 50 requisições por segundo, cada uma para um objeto de 1 Mbit. Acertos de cache levam 4 ms e erros de cache 100 ms. Qual taxa mínima de acerto faz o tempo médio de resposta ser de no máximo 40 ms, e qual intensidade de tráfego permanece no enlace? Suponha que os atrasos dos dois caminhos permaneçam fixos.
  1. 60% de acertos e intensidade 0,4.
  2. 37,5% de acertos e intensidade 0,625.
  3. 62,5% de acertos e intensidade 0,625.
  4. 62,5% de acertos e intensidade 0,375.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 6 de 10

Um arquivo de 600 Mbit vai para 20 pares, cada um enviando a 5 Mbps. O upload do servidor é 100 Mbps. O par mais lento baixa a 2 Mbps; todos os outros downloads são mais rápidos. Dobrar o upload do servidor reduziria o limite inferior P2P, supondo gargalos apenas nos enlaces de acesso?
  1. Não; o termo de 300 s do download mais lento continua predominante.
  2. Sim; o limite cai de 120 s para 60 s.
  3. Sim; o limite cai de 300 s para 150 s.
  4. Não; o termo de 120 s da cópia pelo servidor continua predominante.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 7 de 10

Um resolvedor recebe example.org NS ns.example.org e um registro A adicional que localiza esse servidor de nomes, mas nenhum registro A para lab.example.org. O que ele deve fazer para localizar o hospedeiro lab e por quê?
  1. Conectar-se ao endereço adicional como hospedeiro lab; registros A adicionais respondem por todos os subdomínios.
  2. Pedir ao servidor nomeado o registro NS de lab; seu valor fornece o endereço do hospedeiro solicitado.
  3. Pedir ao servidor nomeado o registro A de lab; o endereço adicional localiza o servidor DNS.
  4. Retornar NXDOMAIN para o hospedeiro lab; uma indicação sem seu registro A prova sua ausência.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 8 de 10

Uma mensagem é submetida a um servidor, e depois o remetente fecha o laptop. O domínio do destinatário tem preferências MX 12 e 28. O servidor 12 retorna uma falha temporária; o servidor 28 não pode ser alcançado. O destinatário usa IMAP. O que deve acontecer em seguida e onde o destinatário deve esperar a mensagem agora?
  1. Excluí-la como falha permanente; o IMAP pode recuperá-la do laptop do remetente.
  2. Mantê-la na fila do servidor remetente; ela ainda não está na caixa postal do destinatário.
  3. Marcá-la como entregue pelo servidor 12; uma resposta temporária a coloca no armazenamento IMAP.
  4. Movê-la para a caixa postal IMAP do remetente; essa caixa agora cuida das novas tentativas.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 9 de 10

Um celular passa do Wi-Fi para uma rede celular, mudando seu endereço IP enquanto baixa dois objetos HTTP/3. Um pacote que transporta bytes apenas do fluxo X é perdido; os dados completos de Y chegam sem dependência de aplicação em relação a X. O que pode acontecer com a conexão e os dois fluxos?
  1. A conexão pode continuar; X espera a recuperação enquanto os dados recebidos de Y podem ser entregues.
  2. A conexão pode continuar; ambos os fluxos devem esperar a recuperação dos bytes ausentes de X.
  3. A conexão deve reiniciar; ambos os objetos devem ser solicitados novamente apesar dos dados recebidos de Y.
  4. A conexão pode continuar; Y só avança se X abandonar a entrega confiável e ordenada.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 10 de 10

Um cliente TCP envia uma requisição delimitada por quebra de linha com sendall e depois espera uma resposta mantendo a conexão aberta. O servidor espera EOF antes de responder. Por que ambos os programas podem esperar indefinidamente e qual mudança compatível corrige isso?
  1. O cliente usou sendall; substituí-lo por um único send garante a conclusão.
  2. A fila de espera do servidor está cheia; aumentá-la faz essa requisição chegar ao EOF.
  3. O servidor espera o fechamento; ele deve reconhecer a quebra de linha da requisição.
  4. O TCP perdeu o limite da mensagem; um recv maior garante o limite da chamada de envio.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Travou em uma questão sua? Ajuda com Tarefas

Termos-Chave

88 Termos-Chave, cada um com sua definição

A

Acerto de cache (cache hit)
Um acerto de cache ocorre quando uma resposta solicitada está presente e utilizável em um cache, evitando o caminho usual de busca na origem.
A instituição observa um acerto de cache para uma imagem popular já armazenada em seu proxy com cache.
Anycast IP
Anycast IP anuncia o mesmo endereço IP a partir de vários locais, permitindo que o roteamento da rede selecione um caminho até um deles.
Anycast IP pode direcionar um cliente a um local da CDN sem atribuir a esse local um endereço exclusivo voltado ao cliente.
Aplicação elástica
Uma aplicação elástica pode usar a vazão disponível no momento sem precisar de uma taxa mínima fixa para seu funcionamento básico.
O download de um anexo de correio eletrônico é uma aplicação elástica, embora o usuário prefira que termine rapidamente.
Armazenamento sob demanda (pull placement)
Armazenamento sob demanda preenche um cache CDN em resposta a uma requisição de conteúdo que o agrupamento local ainda não possui.
O armazenamento sob demanda faz a primeira requisição de um objeto ausente do cache depender de uma busca em uma fonte anterior.
Arquitetura cliente-servidor
Uma arquitetura cliente-servidor atribui as requisições aos clientes e o trabalho de atendimento a hospedeiros servidores dedicados e acessíveis.
Em uma arquitetura cliente-servidor, um pesquisador baixa um conjunto de dados do servidor do publicador.
Arquitetura híbrida
Uma arquitetura híbrida combina funções de servidores dedicados com comunicação direta entre pares na mesma aplicação.
Um serviço de compartilhamento de arquivos baseado em rastreador tem uma arquitetura híbrida quando os próprios pares transferem o arquivo.
Arquitetura par a par (P2P)
Uma arquitetura par a par permite que hospedeiros participantes troquem dados diretamente e contribuam tanto com requisições quanto com capacidade de atendimento.
Uma arquitetura par a par permite que alguém que começa um download receba partes de vários outros participantes.
Arquivo de manifesto
Um arquivo de manifesto descreve as versões disponíveis e as localizações dos segmentos usados por um reprodutor adaptativo para solicitar conteúdo de vídeo.
O reprodutor lê o arquivo de manifesto antes de selecionar a URL do próximo segmento e sua versão codificada.
Ausência de estado
Ausência de estado significa que uma requisição HTTP pode ser entendida independentemente, sem que o protocolo exija memória das requisições anteriores do cliente.
A ausência de estado do HTTP ainda permite que um site de compras consulte dados do carrinho usando um cookie em cada requisição.
Autenticação, relatórios e conformidade de mensagens baseados em domínio (DMARC)
O DMARC relaciona um resultado bem-sucedido de SPF ou DKIM ao domínio From visível por meio de alinhamento e publica uma política para falhas.
Uma verificação DMARC não pode depender de uma aprovação SPF para um domínio não relacionado quando nenhum resultado DKIM alinhado é aprovado.
Autoescalabilidade
Autoescalabilidade é o crescimento da capacidade de um serviço junto com a demanda porque os usuários que entram contribuem com recursos como largura de banda de upload.
O compartilhamento de arquivos P2P ganha autoescalabilidade quando novos participantes também enviam partes que receberam.

B

Base64
Base64 codifica grupos de três bytes como quatro caracteres ASCII, acrescentando cerca de um terço ao tamanho dos dados antes dos dados adicionais da mensagem.
Um anexo de 3 MB torna-se 4 milhões de caracteres base64 antes do acréscimo das quebras de linha e dos cabeçalhos.
Bloqueio de início de fila (HOL)
Bloqueio de início de fila é a espera causada quando trabalho anterior ou dados ausentes impedem o avanço de dados posteriores já disponíveis.
Um segmento TCP perdido cria bloqueio de início de fila para bytes posteriores de vários fluxos HTTP/2.
Buffer de reprodução
Um buffer de reprodução mantém conteúdo recebido que aguarda exibição, oferecendo uma reserva de tempo reproduzível durante downloads mais lentos.
Um buffer de reprodução com vários segundos restantes pode absorver uma breve queda de vazão sem uma interrupção imediata.

C

Cache web
Um cache web armazena respostas HTTP para reutilização, reduzindo transferências repetidas quando as regras de atualização e validação permitem.
O cache web do navegador fornece uma imagem inalterada sem buscar outra cópia completa.
Cache-Control
Cache-Control é um campo HTTP que contém diretivas de cache que controlam o armazenamento, a atualização e a validação de uma resposta.
Cache-Control com no-store impede o armazenamento; no-cache, por sua vez, exige verificação antes da reutilização.
Código de status
Um código de status é um valor de resposta de três dígitos que informa o resultado de uma requisição HTTP, como sucesso, redirecionamento ou erro.
O código de status 404 mostra que um servidor HTTP respondeu, mas não encontrou o recurso solicitado.
Conexão persistente
Uma conexão persistente permanece disponível para requisições posteriores após uma resposta, economizando o trabalho repetido de estabelecimento do transporte.
Uma conexão persistente transporta uma resposta HTML e respostas posteriores de imagens sem novas negociações TCP.
Cookie
Um cookie é um valor armazenado por um navegador e retornado com requisições correspondentes, permitindo que um site reconheça o estado entre requisições.
O site de compras consulta um carrinho armazenado quando o navegador retorna seu cookie de sessão.
Correio identificado por chaves de domínio (DKIM)
O DKIM autentica dados assinados de mensagens usando uma assinatura digital de um domínio e uma chave de verificação publicada pelo DNS.
Um receptor verifica uma assinatura DKIM usando a chave pública do domínio que assinou a mensagem.

D

Dados antecipados 0-RTT
Dados antecipados 0-RTT são dados de aplicação enviados durante o estabelecimento de uma conexão retomada antes da conclusão de uma nova ida e volta, com restrições relacionadas à repetição.
Uma conexão QUIC retomada pode enviar dados antecipados 0-RTT elegíveis antes de esperar a nova troca com o servidor.
Datagrama
Um datagrama é uma mensagem endereçada independentemente e transportada por um protocolo de transporte não orientado a conexão, cujo limite é preservado na recepção.
Dois datagramas UDP enviados separadamente permanecem como mensagens separadas mesmo que cheguem em momentos próximos.
Delimitação de mensagens
A delimitação de mensagens define como um receptor reconhece mensagens completas de aplicação em um fluxo de bytes, usando comprimentos ou delimitadores.
A delimitação de mensagens baseada em quebra de linha permite que o receptor acumule várias leituras TCP até chegar uma linha completa.
Desbloqueio otimista (optimistic unchoke)
Um desbloqueio otimista oferece upload a um par interessado sem exigir uma contribuição atual significativa, permitindo explorar possíveis parceiros.
Um desbloqueio otimista permite que um recém-chegado obtenha partes iniciais antes de se tornar um parceiro de troca útil.

E

Endereço de loopback
Um endereço de loopback roteia tráfego dentro do mesmo hospedeiro, permitindo que processos locais se comuniquem sem contatar outra máquina.
Um servidor vinculado ao endereço de loopback 127.0.0.1 pode ser testado por um cliente executado no mesmo computador.
Entrar profundamente (enter deep)
Entrar profundamente é uma estratégia de posicionamento de CDN que usa muitos agrupamentos menores dentro de redes de provedores de acesso para encurtar os caminhos até os usuários.
Entrar profundamente aproxima o conteúdo dos assinantes, mas deixa o operador com muitos locais para manter.
Envelope SMTP
Um envelope SMTP é a informação de entrega do SMTP, incluindo o remetente MAIL FROM e os destinatários RCPT TO, separada dos cabeçalhos da mensagem.
Um destinatário oculto aparece no envelope mesmo quando nenhum cabeçalho To visível o nomeia.
Envenenamento de cache
Envenenamento de cache é a inserção de dados falsos no cache de um resolvedor, fazendo com que requisições posteriores reutilizem as informações falsificadas pelo atacante.
Um endereço falsificado aceito durante o envenenamento de cache pode direcionar visitantes posteriores ao hospedeiro de um atacante.
Envio parcial
Um envio parcial ocorre quando uma chamada send aceita menos bytes que os fornecidos, exigindo que os bytes restantes sejam enviados mais tarde.
Usar sendall evita deixar um envio parcial inacabado quando o programa transmite um buffer de resposta.
Estrutura de políticas de remetente (SPF)
O SPF permite que um domínio publique quais hospedeiros podem enviar mensagens por ele, verificando o hospedeiro remetente em relação a uma identidade do envelope SMTP.
O SPF pode ser aprovado para um domínio de envelope controlado por um atacante sem validar um domínio From visível diferente.
Extensões de segurança do DNS (DNSSEC)
O DNSSEC acrescenta assinaturas digitais aos dados DNS para que resolvedores que fazem validação possam verificar a autenticidade e a integridade dos registros assinados.
O DNSSEC ajuda um resolvedor a detectar dados assinados falsificados, enquanto o DNS cifrado protege a privacidade das consultas.
Extensões multiuso do correio da internet (MIME)
O MIME amplia o formato do correio eletrônico com tipos de conteúdo, estrutura de várias partes e codificações de transferência que permitem texto mais elaborado e anexos.
O MIME permite que uma mensagem contenha uma nota de texto simples e um anexo de imagem separado com seu próprio tipo.

F

Fila de mensagens de correio eletrônico
Uma fila de mensagens de correio eletrônico armazena mensagens que aguardam transferência para que um servidor possa tentar novamente a entrega após falhas temporárias no destino ou na rede.
A fila de mensagens de saída mantém uma mensagem enquanto o servidor de destino está temporariamente indisponível.
Fluxo
Um fluxo é uma sequência lógica de dados em uma conexão; a multiplexação HTTP usa fluxos para distinguir trocas simultâneas.
Um fluxo que transporta uma imagem de página pode avançar junto com outro que transporta uma folha de estilo.

G

GET condicional
Um GET condicional solicita uma representação sujeita a uma condição, frequentemente validando uma data ou ETag em cache antes da transferência do corpo.
Um GET condicional recebe 304 quando o ETag salvo ainda identifica a representação atual.

H

HTTP/2
O HTTP/2 transporta mensagens HTTP como quadros binários intercalados de vários fluxos em uma conexão TCP e comprime cabeçalhos.
O HTTP/2 pode concluir uma imagem pequena enquanto quadros de uma resposta muito maior ainda estão sendo enviados.
HTTP/3
O HTTP/3 mapeia os significados compartilhados das mensagens HTTP para fluxos QUIC e quadros binários, usando a segurança de transporte integrada do QUIC.
O HTTP/3 fornece a mesma URL de recurso enquanto muda o transporte usado pelas versões HTTP baseadas em TCP.
HttpOnly
HttpOnly é um atributo de cookie que impede que scripts da página leiam o cookie, permitindo seu envio em requisições HTTP adequadas.
Um cookie de login marcado como HttpOnly ainda pode acompanhar uma requisição correspondente, mesmo que um script não possa lê-lo.

I

Identificador de entidade (ETag)
Um ETag é um identificador atribuído a uma representação de recurso e usado em condições que comparam uma versão salva com a atual.
O cache envia seu ETag salvo em If-None-Match antes de decidir se substitui o corpo armazenado.

L

Limite da fila de conexões pendentes (backlog)
Um limite da fila de conexões pendentes é a capacidade de fila para requisições de conexão que aguardam aceitação por um socket de escuta do servidor.
Aumentar o limite da fila de conexões pendentes não faz o tratador de requisições sequencial de um servidor executar concorrentemente.
Limite inferior
Um limite inferior é um limite abaixo do qual a conclusão não pode ocorrer sob as restrições de um modelo, mesmo com escalonamento ideal.
O download do par mais lento impõe um limite inferior que capacidade adicional de upload em outro ponto não pode eliminar.

M

Mais raro primeiro
Mais raro primeiro é uma regra de seleção de partes que solicita partes necessárias que o menor número de vizinhos possui, ajudando a preservar a disponibilidade.
Mais raro primeiro escolhe uma parte necessária escassa antes de outra já disponível em muitos vizinhos.
Método HTTP
Um método HTTP indica a operação solicitada para um recurso, como obtenção com GET ou obtenção de cabeçalhos com HEAD.
O navegador usa o método HTTP GET quando obtém um documento vinculado no site.

N

Número de porta
Um número de porta é um valor de 16 bits usado com um endereço IP para identificar uma extremidade de transporte receptora em um hospedeiro.
O cliente contata o mesmo hospedeiro no número de porta 443 para HTTPS e 25 para transferência entre servidores de correio.

O

Objeto HTTP
Um objeto HTTP é uma representação de recurso endereçável individualmente, como um documento HTML, uma imagem ou um script, obtida por HTTP.
O HTML base nomeia várias imagens, então o navegador solicita mais de um objeto HTTP para a página.

P

POP3
O POP3 é um protocolo de acesso ao correio eletrônico para baixar mensagens armazenadas, com exclusão opcional do servidor após uma sessão concluída.
O POP3 no modo baixar e excluir em um laptop pode impedir que um celular recupere a mesma mensagem mais tarde.
Processo
Um processo é uma instância de um programa em execução; processos em rede trocam mensagens de aplicação por extremidades de transporte.
Um processo de servidor de correio pode enviar uma mensagem enquanto outro processo no hospedeiro trata requisições web.
Protocolo da camada de aplicação
Um protocolo da camada de aplicação define tipos de mensagem, sintaxe e significado dos campos e regras para trocas entre processos.
O HTTP é um protocolo da camada de aplicação que permite que navegadores e servidores escritos separadamente troquem objetos.
Protocolo de Acesso a Mensagens da Internet (IMAP)
O IMAP é um protocolo de acesso ao correio eletrônico que mantém mensagens, pastas e indicadores no servidor e permite que clientes recuperem conteúdo selecionado.
O IMAP permite que um celular veja o indicador de leitura e a mudança de pasta feitos anteriormente em um laptop.
Protocolo de Controle de Transmissão (TCP)
O TCP é um protocolo de transporte orientado a conexão que fornece bytes confiáveis e ordenados com controle de fluxo e controle de congestionamento.
Uma conexão TCP entrega o arquivo completo em ordem, enquanto a aplicação identifica os limites de suas mensagens.
Protocolo de Datagramas do Usuário (UDP)
O UDP é um protocolo de transporte não orientado a conexão que transporta datagramas separados sem fornecer recuperação de perdas, ordenação ou controle de congestionamento.
Uma pequena consulta DNS pode usar UDP, com o resolvedor tentando novamente quando nenhuma resposta chega antes do tempo limite.
Protocolo Simples de Transferência de Correio (SMTP)
O SMTP é o protocolo de aplicação usado para submeter e transferir correio eletrônico por trocas de comandos e respostas em conexões TCP.
O SMTP envia uma mensagem em fila do servidor de correio do remetente para o servidor do domínio do destinatário.
Proxy com cache
Um proxy com cache é um intermediário que encaminha requisições às origens e pode atender a requisições elegíveis com respostas armazenadas.
O proxy com cache atende a um acerto local, mas atua como cliente quando busca um objeto ausente na origem.

Q

Quadro
Um quadro é uma unidade estruturada usada para transportar parte de uma mensagem ou informações de controle no HTTP/2 ou HTTP/3.
O remetente escalona um quadro de dados de uma resposta curta entre quadros pertencentes a uma resposta grande.
QUIC
O QUIC é um protocolo de transporte seguro sobre UDP que fornece fluxos confiáveis, controle de congestionamento, estabelecimento de baixa latência e migração de conexão.
O QUIC pode entregar dados recebidos em um fluxo enquanto outro fluxo recupera bytes ausentes.

R

Rearmazenamento em buffer (rebuffering)
Rearmazenamento em buffer é uma interrupção da reprodução causada pelo esgotamento dos dados reproduzíveis, quando o reprodutor deve esperar por mais conteúdo.
O reprodutor reduz a taxa solicitada após o rearmazenamento em buffer para diminuir a chance de outra pausa visível.
Rede de distribuição de conteúdo (CDN)
Uma CDN distribui capacidade de atendimento e cópias de conteúdo entre locais para entregar objetos com eficiência e reduzir a carga na origem.
Um agrupamento CDN perto do espectador fornece segmentos de vídeo populares sem enviar toda requisição à origem.
Registro A
Um registro A associa um nome de hospedeiro DNS a um endereço IPv4, permitindo que um cliente localize esse hospedeiro em uma rede IPv4.
Um registro A para www.example.org pode retornar o endereço de documentação 203.0.113.25 em um exemplo de consulta.
Registro AAAA
Um registro AAAA associa um nome de hospedeiro DNS a um endereço IPv6, oferecendo uma alternativa IPv6 aos registros de endereço IPv4.
Um registro AAAA pode retornar 2001:db8::25 para um hospedeiro em uma consulta IPv6 ilustrativa.
Registro CNAME
Um registro CNAME torna um nome proprietário um apelido de um nome canônico de destino, permitindo que a resolução continue por esse destino.
Um registro CNAME aponta media.example.org para um espaço de nomes de CDN antes que o resolvedor obtenha um endereço.
Registro de recurso
Um registro de recurso é uma entrada DNS com tipo que associa um nome proprietário a dados e a um tempo de armazenamento em cache para essas informações.
Um registro de recurso associa o hospedeiro web a um endereço IPv4, enquanto outro nomeia o servidor de correio do domínio.
Registro MX
Um registro MX identifica um destino de correio de um domínio por nome de servidor e preferência, com valores menores de preferência tentados primeiro.
O registro MX com preferência 10 normalmente é tentado antes da entrada do mesmo domínio com preferência 20.
Registro NS
Um registro NS nomeia um servidor DNS autoritativo para um domínio ou zona; seu valor é um nome de hospedeiro, não o endereço IP desse servidor.
O registro NS aponta para ns1.example.org, e dados complementares de endereço permitem que o resolvedor o contate.
Resolvedor DNS
Um resolvedor DNS obtém informações DNS para quem as solicita, consultando caches e outros servidores quando necessário para concluir uma consulta.
O resolvedor do campus segue indicações enquanto o laptop espera o resultado de sua consulta recursiva.

S

Segmento
Um segmento é um intervalo curto de vídeo codificado que pode ser solicitado separadamente, com versões disponíveis em diferentes níveis de qualidade.
Um segmento que representa quatro segundos de reprodução pode levar mais de quatro segundos para ser baixado em um caminho lento.
Segurança da Camada de Transporte (TLS)
O TLS é um protocolo de segurança que acrescenta confidencialidade, integridade e autenticação do par à troca de uma aplicação pelo transporte.
Um navegador usa TLS sobre TCP para proteger uma troca HTTPS com um servidor HTTP/2.
Semeador (seeder)
Um semeador é um par BitTorrent que possui o conteúdo completo e permanece disponível para enviá-lo a outros participantes.
Um semeador permanece online após terminar o download para que novos pares possam obter todas as partes necessárias.
Servidor autoritativo
Um servidor autoritativo publica registros DNS para os nomes das zonas que atende, fornecendo respostas com base nessa autoridade.
O servidor autoritativo de um domínio retorna o registro de endereço publicado para seu hospedeiro web.
Servidor de domínio de nível superior (TLD)
Um servidor TLD atende a um domínio de nível superior e fornece delegações que identificam servidores autoritativos para domínios subordinados a ele.
Um servidor TLD de org retorna a delegação necessária para continuar até os registros de example.org.
Servidor de origem
Um servidor de origem é o servidor fonte responsável por uma representação, do qual intermediários podem obter cópias de conteúdo.
Uma CDN com armazenamento sob demanda busca uma imagem ausente do cache no servidor de origem antes de manter uma cópia local.
Servidor raiz
Um servidor raiz atende ao topo da hierarquia DNS e normalmente indica aos resolvedores os servidores de domínio de nível superior apropriados.
O resolvedor pergunta a um servidor raiz onde pode continuar uma consulta com cache vazio para um domínio org.
Sistema de Nomes de Domínio (DNS)
O DNS é um banco de dados distribuído de nomes e um protocolo de aplicação para consultar registros como endereços de hospedeiros e destinos de correio.
Antes de contatar um hospedeiro web, o navegador pede ao DNS informações de endereço associadas ao seu nome.
Sistema final
Um sistema final é um hospedeiro na borda da rede que executa processos de aplicação, como um celular, laptop ou servidor.
Um navegador e um servidor web são executados em sistemas finais enquanto roteadores encaminham os pacotes entre eles.
Socket
Um socket é a interface de software pela qual um processo de aplicação acessa serviços de transporte para enviar ou receber dados.
Um jogo em rede envia atualizações de posição por um socket e lê atualizações recebidas por sua API de sockets.
Socket de conexão
Um socket de conexão é uma extremidade de transporte para uma conexão TCP estabelecida, usada para enviar e receber os bytes dessa conexão.
O servidor chama recv no socket de conexão retornado por accept, não no socket de escuta.
Socket de escuta
Um socket de escuta espera requisições de conexão TCP e as aceita em sockets separados para troca de dados.
O socket de escuta permanece aberto enquanto o socket de conexão aceito transporta a requisição de um cliente.
STARTTLS
STARTTLS é um comando de protocolo que atualiza uma conexão existente não cifrada para TLS antes de trocas protegidas posteriores.
A submissão SMTP autenticada na porta 587 normalmente usa STARTTLS antes de transmitir conteúdo protegido.
Streaming adaptativo dinâmico sobre HTTP (DASH)
O DASH é um streaming adaptativo sobre HTTP no qual um cliente seleciona segmentos sucessivos de vídeo entre versões com diferentes taxas codificadas.
O DASH permite que um reprodutor mude para uma versão de taxa menor após a vazão cair e seu buffer começar a diminuir.

T

Taxa de bits
Uma taxa de bits é a quantidade de dados por unidade de tempo; para vídeo codificado, mede quantos bits são necessários para cada segundo de reprodução.
Uma taxa de bits de vídeo de 5 Mbps produz 20 Mbit de dados codificados para um segmento de quatro segundos com taxa constante.
Tempo de distribuição
O tempo de distribuição é o tempo decorrido necessário para entregar uma cópia completa de um arquivo a cada destinatário previsto.
Um primeiro download rápido não determina o tempo de distribuição se o par mais lento ainda estiver recebendo sua cópia.
Tempo de ida e volta (RTT)
O tempo de ida e volta é o intervalo para que um pacote pequeno viaje até um destino e uma resposta retorne.
Um tempo de ida e volta de 30 ms contribui duas vezes para o primeiro objeto HTTP simples obtido por uma nova conexão TCP.
Tempo de vida (TTL)
O TTL é o valor de tempo de vida em um registro DNS que limita por quantos segundos uma cópia em cache permanece reutilizável.
Uma mudança de endereço pode deixar uma resposta antiga em cache utilizável até que o TTL restante chegue a zero.
Tempo limite (timeout)
Um tempo limite é um limite de quanto tempo uma operação espera antes de retornar o controle por não ter sido concluída nesse intervalo.
Um tempo limite de recepção permite que o cliente UDP informe uma resposta ausente em vez de ficar bloqueado indefinidamente.
Torrent
Um torrent é o grupo de pares que participa da distribuição de um arquivo ou conjunto de conteúdo específico pelo BitTorrent.
Pares entram em um torrent e trocam partes com vizinhos descobertos por meio de um rastreador ou consulta distribuída.
Trazer para casa (bring home)
Trazer para casa é uma estratégia de posicionamento de CDN que usa menos agrupamentos, porém maiores, em pontos de troca de tráfego onde muitas redes se interconectam.
Trazer para casa simplifica o gerenciamento em comparação com a manutenção de muitos agrupamentos pequenos dentro de redes de acesso.

U

UTF-8
UTF-8 é uma codificação de bytes para texto Unicode, usada pelas operações padrão de codificação de strings e decodificação de bytes do Python.
Um servidor que muda o texto recebido para maiúsculas primeiro decodifica os bytes UTF-8 recebidos e depois codifica sua resposta.

V

Vinculação de endereço e porta (bind)
Vinculação de endereço e porta é a operação de socket que atribui um endereço local e uma porta a uma extremidade, determinando onde ela recebe tráfego.
Um servidor UDP que chama bind com 127.0.0.1 e a porta 12000 recebe requisições locais nesse endereço e nessa porta.

W

Webmail
Webmail é o acesso a uma caixa postal pelo navegador usando HTTP, normalmente HTTPS, enquanto a entrega entre provedores ainda usa SMTP.
O navegador usa webmail por HTTPS para ler uma mensagem que chegou ao provedor por SMTP.

Sobre esta aula

Por StudeliRelatar um erro

Crie seus próprios Materiais de Estudo

Transforme suas anotações, slides e documentos em Guias de Estudo, Questões de Prática, Flashcards e mais 6 ferramentas.

Começar