Interactive Connectivity Establishment

Interactive Connectivity Establishment (ICE) é uma técnica em redes de computadores para estabelecer uma conexão Peer-to-peer entre 2 dispositivos, criado pela IETF e especificado na RFC 5245,[1]. Muito utilizado no mundo VoIP, chats, aplicações em tempo real, transmissão de vídeo pela rede e comunicações Peer-to-peer. Ele é necessário devido problemas encontrados em redes que utilizam NAT, Firewall e outras barreiras\filtros que possam impedir a comunicação entre dispositivos. Utiliza os protocolos STUN e TURN para realizar suas funções[2].

História

O IPv4, criado na década de 80, permitiu o avanço da Internet com a função de identificar os dispositivos, mas seu maior problema é que utiliza 32 bits para identificá-los, possibilitando um pouco mais de 4 bilhões de endereços. O que os criadores do IPv4 não imaginavam é que o número de dispositivos chegaria a ultrapassá-lo, onde foi preciso a criação de um mecanismo que suportasse mais de 4 bilhões de dispositivos na Internet utilizando o IPv4. Para isso veio o NAT que utiliza redes privadas, endereços que não são roteáveis na rede pública, onde pode a partir destes endereços construir uma rede local. O problema é que em uma rede que use NAT, o dispositivo que está nela tem um endereço local, mas para a rede pública ele tem o endereço do seu rotedor de borda, rotedor responsável por conectar a rede local a rede pública. Ou seja, caso o dispositivo se conecte com outro fora desta rede local seu endereço será o do seu rotedor de borda, fazendo que o outro dispositivo que está fora da rede local envie pacotes para o roteador de borda do outro, não para o dispositivo que se deveria comunicar. Para isso foi criado o NAT, que procura através de diversas técnicas e utilizando outros protocolos, descobrir o endereço real dos dispositivos que estão em uma rede local.

Funcionamento

O funcioanmento do ICE se dá em 6 etapas:

  • Identificação dos Endereços dos Candidatos
  • Avaliação e priorização dos Candidatos
  • Envio dos Endereços dos Candidatos
  • Checagem de Conectividade
  • Estabelecimento da Sessão
  • Manutenção da Conexão
Funcionamento do protocolo ICE

RFCs

  • RFC 5245: Interactive Connectivity Establishment (ICE): A Protocol for NAT Traversal for Offer/Answer Protocols.
  • RFC 5768: Indicating Support for Interactive Connectivity Establishment (ICE) in the Session Initiation Protocol (SIP)
  • RFC 6544: TCP Candidates with Interactive Connectivity Establishment (ICE).
  • RFC 6336: IANA Registry for Interactive Connectivity Establishment (ICE) Options
  • RFC 8445: Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal

Referências

  1. RFC 5245, Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols, J. Rosenberg (April 2010)
  2. R. O. Togo, 2015

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.