상호 연결 확립

상호 연결 확립(ICE, Interactive Connectivity Establishment)는 P2P(피어 투 피어) 네트워킹에서 두 컴퓨터가 가능한 한 직접적으로 서로 통신할 수 있는 방법을 찾기 위해 컴퓨터 네트워킹에 사용되는 기술이다. 이는 VoIP(Voice over Internet Protocol), P2P 통신, 비디오 및 인스턴트 메시징과 같은 대화형 미디어에 가장 일반적으로 사용된다. 이러한 애플리케이션에서 중앙 서버를 통한 통신은 느리고 비용이 많이 들지만, NAT(네트워크 주소 변환기), 방화벽 및 기타 네트워크 장벽으로 인해 인터넷에서 클라이언트 애플리케이션 간의 직접 통신은 매우 까다롭다.

ICE는 국제 인터넷 표준화 기구 MMUSIC 작업 그룹에 의해 개발되었으며 2018년 8월 현재 RFC 8445로 게시되었으며 RFC 5245와 RFC 4091이 모두 폐기되었다.

개요 
NAT(네트워크 주소 변환)는 본질적으로 약 40억 개의 고유 주소로 제한되는 인터넷 프로토콜 버전 4의 사용 가능한 주소 풀의 고갈을 지연시키는 효과적인 기술이 되었다. NAT 게이트웨이는 개인 네트워크의 아웃바운드 요청을 추적하고 설정된 각 연결의 상태를 유지하여 나중에 공용 네트워크의 피어에서 직접 주소를 지정할 수 없는 개인 네트워크의 피어로 응답을 직접 보낸다.

VoIP, P2P 및 기타 여러 응용 프로그램에는 인터넷 프로토콜 패킷 헤더뿐만 아니라 연결의 데이터 스트림 내에서 통신 피어의 주소 정보가 필요하다. 예를 들어, SIP(Session Initiation Protocol)는 위치 서비스 등록을 위해 네트워크 클라이언트의 IP 주소를 전달하므로 전화 통화가 등록된 클라이언트로 라우팅될 수 있다. ICE는 통신 피어가 공용 IP 주소를 검색하고 통신하여 다른 피어가 접근할 수 있도록 하는 프레임워크를 제공한다.

STUN(Session Traversal Utilities for NAT)은 NAT 분류를 포함한 주소 검색을 위한 표준화된 프로토콜이다. NAT 주변 릴레이를 사용한 통과(TURN)는 피어 간의 직접적인 미디어 트래픽이 방화벽에서 허용되지 않는 경우 타사 서버를 배치하여 두 클라이언트 간에 메시지를 릴레이한다.

IETF 사양 
 RFC 5389: Session Traversal Utilities for NAT (STUN).
 RFC 8656: Traversal Using Relays around NAT (TURN): Relay Extensions to STUN.
 RFC 6544: TCP Candidates with Interactive Connectivity Establishment (ICE)
 RFC 8445: Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal

같이 보기 
 RSIP
 유니버설 플러그 앤 플레이
 WebRTC

외부 링크 
 IETF Journal article on ICE
 MMUSIC working group
 BEHAVE working group
 PJNATH - Open Source ICE, STUN, and TURN Library
 libnice: GLib ICE library
 libjuice: Open source UDP ICE library
 coturn: Open source implementation of TURN and STUN Server

네트워크 표준