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.244 ]

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

Alta disponibilidade com CARP

Festa com SQL injection

Melhorando o nível de segurança com chflags

Um dia depois da inundação

Varredura bruta com NMAP

Leitura recomendada

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

Configurando o FreeBSD e PyKota para receber o JPyKotaGUI

Introdução ao PC-BSD

FreeBSD Release 11.1 - Introdução, instalação e customização

Introdução ao FreeBSD

  
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