Conexões e limites de TCP
As conexões do Protocolo de Controle de Transmissão (TCP) são estabelecidas entre clientes e servidores ao acessar recursos CIS. Quando os usuários solicitam um site usando CIS, suas solicitações passam pela infraestrutura CIS, permitindo a proteção DDoS e segurança aprimorada.
Como CIS conecta os usuários ao servidor de origem
CIS atua como um intermediário entre o usuário e a origem, encaminhando as solicitações do usuário por meio do CIS para o servidor de origem do aplicativo. O tráfego do usuário é roteado para o ponto de presençaPoP) mais próximo, onde a solicitação é processada. Caso uma solicitação não seja atendida em um dos data centers da Cloudflare, será aberta uma conexão com o servidor de origem para encaminhar a solicitação.
limites de conexão
Quando o tráfego de HTTP / HTTPS é enviado por proxy por meio de CIS, geralmente há duas conexões TCP estabelecidas: a primeira é entre o cliente solicitante e CIS e a segunda é entre CIS e o servidor de origem. Cada conexão tem seu próprio conjunto de limites de TCP e HTTP.
Limites de conexão entre o cliente solicitante e CIS
A Tabela 1 lista os limites de conexão entre o cliente solicitante e CIS.
Tipo | Limite (segundos) | HTTP código de status no limite | Configurável |
---|---|---|---|
Conexão Keep-Alive HTTP/1.1 | 400 | Conexão TCP fechada | Não |
Conexão ociosa HTTP/2 | 400 | Conexão TCP fechada | Não |
Limites de conexão entre CIS e o servidor de origem
A Tabela 2 lista os limites de conexão entre CIS e o servidor de origem.
Tipo | Limite (segundos) | HTTP código de status no limite | Configurável |
---|---|---|---|
Conexão TCP completa ' [1] | 15 | 522 | Não |
Tempo limite do TCP ACK ' [2] | 90 | 522 | Não |
Intervalo de TCP Keep-Alive ' [3] | 30 | 520 | Não |
Tempo limite de inatividade do proxy ' [4] | 900 | 520 | Não |
Tempo limite de leitura de proxy [5] | 100 | 524 | Sim |
Tempo limite de gravação do proxy ' [6] | 30 | 524 | Não |
Pings HTTP/2 para a origem | Desativado | N/A | True |
Conexão HTTP/2 ociosa ' [7] | 900 | Não | Não |
Conexões TCP e keep-alives
CIS usa conexões keep-alive para melhorar o desempenho e reduzir os custos, minimizando a necessidade de conexões TCP repetidas ao fazer proxy do tráfego do cliente para os servidores de origem. Para otimizar esse processo, certifique-se de que o HTTP keep-alive esteja ativado em seu servidor de origem, permitindo a reutilização de conexões TCP abertas até o Proxy Idle Timeout após a última solicitação. Isso ajuda a evitar redefinições de conexão e aumenta a eficiência.
Normalmente, o site HTTP abre uma nova conexão TCP para cada ciclo de solicitação-resposta, o que pode aumentar a sobrecarga. Os keep-alives permitem que uma única conexão TCP permaneça aberta para várias solicitações, reduzindo a latência e o tráfego de rede e, em última análise, melhorando a experiência do usuário.
Embora as conexões TCP possam permanecer ativas, as conexões ociosas geralmente são encerradas após um determinado tempo. CIS tem um tempo limite ocioso padrão de 400 segundos para conexões de usuário e envia sondas keep-alive a cada 75 segundos. Se nove sondas consecutivas não forem respondidas, CIS encerrará a conexão com um pacote TCP Reset (RST).
É importante observar que os keep-alives não garantem a estabilidade da conexão devido a fatores como balanceamento de capacidade ou manutenção, portanto, os aplicativos devem ser projetados para lidar com as desconexões de forma elegante. Os clientes corporativos podem personalizar as configurações de conexão TCP entre os usuários e CIS, bem como entre CIS e o servidor de origem.
-
O TCP usa um handshake de três vias para estabelecer uma conexão confiável (SYN, SYN-ACK, ACK) em uma conexão baseada em IP. SYN é a abreviação de synchronize (sincronizar) e ACK é a abreviação de acknowledgement (confirmação). ↩︎
-
A etapa final do handshake de três vias do TCP, confirmando o estabelecimento de uma conexão. ↩︎
-
Um TCP keep-alive é usado para manter uma conexão entre dois pontos de extremidade, enviando pacotes para verificar se a conexão ainda está ativa. Isso ajuda a evitar que conexões ociosas sejam fechadas prematuramente. Se uma resposta não for recebida após um período definido, a conexão será encerrada. ↩︎
-
Quando uma conexão TCP está em um estado ocioso, isso significa que a conexão foi estabelecida, mas nenhum dos pontos de extremidade está enviando dados. No contexto do HTTP, uma conexão ociosa é quando uma conexão estabelecida entre um cliente e um servidor não está transmitindo nenhuma solicitação ou resposta do HTTP no momento. ↩︎
-
O tempo limite de leitura do proxy é o tempo máximo que um servidor proxy espera por uma resposta do servidor de origem antes de encerrar a conexão. ↩︎
-
O tempo limite de gravação do proxy é o tempo máximo que um servidor proxy permite para enviar dados ao cliente antes de encerrar a conexão. ↩︎
-
Quando uma conexão TCP está em um estado ocioso, isso significa que a conexão foi estabelecida, mas nenhum dos pontos de extremidade está enviando dados. No contexto do HTTP, uma conexão ociosa é quando uma conexão estabelecida entre um cliente e um servidor não está transmitindo nenhuma solicitação ou resposta do HTTP no momento. ↩︎