Fingerprint: Conhecimento TCP

O Protocolo de Controle de Transmissão TCP (Do inglês Transmission Control Protocol) é um protocolo de comunicação utilizado em redes de computadores para garantir a entrega confiável de dados. Ele faz parte de uma pilha de protocolos cujo nome faz menção aos dois mais importantes TCP/IP. Este estudo foi realizado no curso de Graduação em Sistema de Informação do Instituto Federal de Alagoas.

[ Hits: 3.258 ]

Por: cristofe coelho lopes da rocha em 27/03/2023


RFC (Request For Comments)



O que são

Publicações que documentam os padrões e protocolos oficiais da internet. Os RFC são uma série de documentos técnicos criados por profissionais e pesquisadores da área de tecnologia e vêm, desde sua concepção em 1969, desempenhando um papel decisivo na divulgação e expansão da fronteira do conhecimento que possibilitou a implementação e vem, desde então, impulsionando melhorias da Internet e sistemas correlatos.

Quem gerencia

Gerenciados pelos IETF-Internet Engineering Task Force, trata-se de pessoas que contribuem tecnicamente para a arquitetura e evolução da internet.

Sobre padrões

Podem ter de uma a centenas de páginas de informações sobre um padrão. Se um padrão necessitar de atualizações, um novo é gerado com as revisões necessárias. Sempre identificado por um número de forma sequencial a cada novo RFC.

Figura 11. Protocolo/RFC

Status dos RFCs

A cada RFC é atribuído um status que diz respeito ao processo de padronização:

Informacional ( Informational )
Experimental ( Experimental )
Melhor prática atual ( Best current practice/BCP)
Trilha dos padrões ( Standards track )
            Proposto (Proposed standard)
            Rascunho (Draft standard)
            Padrão da internet (Internet standard)
Histórico ( Historic )


Como consultar os RFCs

Podem ser consultados gratuitamente pela internet, abra a página de consulta: http://www.rfc-editor.org/ e clique em Advance Search no canto direito da página. Como pode ser visto na Figura 4. A busca pode ser realizada por Nome, palavra-chave, autor ou número pelo site

Figura 12. Advance Search (Busca avançada)

Figura 13. Buscando por título ou palavras
O resultado da busca retornou o número e os tipos de arquivos que podemos visualizar a RFC do protocolo. Neste caso utilizamos como exemplo o ICMP que faz parte da pilha TCP/IP. Vejamos o retorno da busca na Figura 14.

Figura 14. Retorno da busca
A Figura 15 demostra a RFC visualizada em PDF, nesta página tem todos os detalhes de modo de funcionamento do protocolo.

Este trabalho se debruça mais especificamente sobre o RFC 9293, que, após mais de 30 anos, substituiu o RFC 793 como definição do padrão de funcionamento do protocolo TCP.

Figura 15. PDF da RFC do protocolo TCP
RFC 9293 é um documento que define como enviar dados em redes que utilizam o protocolo QUIC. Por exemplo, se você está usando um aplicativo que utiliza o protocolo QUIC para fazer uma chamada de vídeo, o RFC 9293 ajuda a garantir que os dados da sua chamada de vídeo sejam transmitidos corretamente para o destinatário.

Já o RFC 793 define como estabelecer conexões confiáveis entre dispositivos na Internet usando o protocolo TCP. Por exemplo, quando você faz uma transação bancária on-line, o protocolo TCP é usado para garantir que seus dados bancários sejam transmitidos com segurança para o banco.

Multipath TCP é uma extensão do protocolo TCP que permite que uma única conexão TCP utilize várias rotas simultaneamente. Assim, a conexão pode se aproveitar de múltiplas interfaces de rede, como wifi e 4G, ou múltiplas rotas dentro da mesma rede, como rotas diferentes através da internet.

Na prática é possível configurar as rotas de rede que serão usadas pelo MPTCP para transmitir dados. Isso pode ser feito adicionando rotas usando o comando abaixo:

ip route add <destino de rede> via <endereço IP da rota> dev <nome da interface>

Nesse comando, o "destino de rede" é o endereço IP da rede de destino, o "endereço IP da rota" é o endereço IP da interface usada para a rota e o "nome da interface" é o nome da interface de rede usada para a rota.

Depois de instalar o "mptcpd", edite o arquivo de configuração "/etc/mptcpd.conf" para especificar as rotas de rede que serão usadas pelo cliente MPTCP para transmitir dados. Por exemplo:

AddressFamily = ipv4
DefaultScheduler = roundrobin
InterfaceList = eth0, eth1

Melhorias na performance

Explicit Congestion Notification (ECN): É um mecanismo que possibilita que equipamentos de rede notifiquem endpoints sobre gargalo na rede, melhorando a performance. Dessa forma, o próprio TCP reduz sua taxa de transmissão em resposta ao gargalo da rede.

Fast Open: É um mecanismo que possibilita que o cliente já mande dados para o servidor durante o handshake, reduzindo o tempo que leva para estabelecer uma conexão TCP.

Proportional Rate Reduction (PRR): É um mecanismo que permite que o TCP se recupere mais rápido de perdas e assim reduz o gargalo da rede.

Tail Loss Probe (TLP): É um mecanismo que permite que o TCP rapidamente detecte quando um pacote foi perdido devido a gargalo.

Atualização do MSS (tamanho máximo do segmento)do TCP, que ajuda a reduzir fragmentação e melhora a performance da rede.

Melhorias na segurança

TCP User Timeout Option: Mitiga o risco de ataques que exploram conexões inativas.

Retransmission timeout requirements update: Ajuda a mitigar o risco de ataques que explorem timeouts de retransmissão previsíveis.

Selective Acknowledgement (SACK) update: Ajuda a mitigar ataques que explorem o mecanismo SACK.

TCP Authentication Option: Permite que endpoints TCP autentiquem uns aos outros antes de estabelecer uma conexão, mitigando ataques de man-in-the-middle, entre outros.

TCP SYN Cookie mechanism: Ajuda a mitigar ataques de flood de SYN, permitindo que o TCP verifique a validade das solicitações de conexão antes de alocar recursos para elas.

Referências

RFC 793: "Transmission Control Protocol"

RFC 9293: "TCP Extensions for Multipath Operation with Multiple Addresses"

Network World: "What's New with TCP?"

Cisco: "Understanding TCP Options"

Internet Society: "TCP User Timeout Option"

Autores

  • Bruno Artur
  • Leonardo Victor
  • Lucas Duarte
  • Wellici Jacinto
  • Leonardo Henrique
  • Melkyzedeque Augusto
  • Arthur Henrique
  • Marcos
  • Isaac Mello
  • José Vanderley
  • Mário Andretti
  • Matheus Vieira

Agradecimento especial ao nosso Coordenador Professor Dr. Leonardo Fernandes.

Página anterior    

Páginas do artigo
   1. Introdução ao TCP
   2. Farejando a rede
   3. RFC (Request For Comments)
Outros artigos deste autor

Festa com SQL injection

Um dia depois da inundação

Esgotando os recursos

Alta disponibilidade com CARP

Varredura bruta com NMAP

Leitura recomendada

Introdução ao FreeBSD

Apache2 com SSL - Configuração para forçar uso de HTTPS ao invés de HTTP

Servidor de impressão com cotas no FreeBSD (CUPS + PostgreSQL + PyKota)

FreeBSD 10 com GNOME 2 - Instalação no VirtualBox

Configurando o FreeBSD e PyKota para receber o JPyKotaGUI

  
Comentários
[1] Comentário enviado por maurixnovatrento em 14/05/2023 - 21:59h


excelente artigo.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts