programing

ICE 후보자는 무엇이며 피어 연결은 어떻게 선택합니까?

nasanasas 2020. 12. 14. 08:25
반응형

ICE 후보자는 무엇이며 피어 연결은 어떻게 선택합니까?


간단한 채팅 애플리케이션을 새로 작성했지만 ICE 후보자의 배경을 잘 이해하지 못했습니다.

피어가 연결을 생성하면 ICE 후보자를 얻고이를 교환하고 최종적으로 피어 연결로 설정합니다.

그래서 제 질문은 ICE 후보자들이 어디에서 왔으며 어떻게 사용되며 모두 실제로 사용됩니까?

동료가 자신의 컴퓨터에서 응용 프로그램을 실행할 때 후보자가 더 적다는 것을 알게되었습니다. 후보자 수가 다른 이유는 무엇입니까?


@Ichigo의 대답은 정확하지만 조금 더 큽니다. 모든 ICE는 외부에 도달 할 때까지 네트워크의 '노드'를 포함합니다. 이것에 의해 당신은이 ICE를 다른 피어에게 보내서 그들이 당신에게 도달 할 수있는 연결 지점을 통해 알게됩니다. 큰 건물로 보아라. 하나는 건물 안에 있고 다른 사람에게 (익숙하지 않은) 어떻게 걸어야하는지 알려줘야한다. 여기서도 마찬가지입니다. 네트워크 장치가 많은 경우 들어오는 연결이 내 컴퓨터로가는 올바른 방법을 찾아야합니다. 모든 노드를 제공함으로써 RTC 연결은 최단 경로 자체를 찾습니다. 따라서 동일한 라우터 / 스위치 / 무엇이든간에 연결되어있는 옆에있는 컴퓨터에 연결하면 모든 ICE를 사용하고 가장 짧은 것을 결정하며 이는 바로 그 지점을 통과하는 것입니다. 동료가 ICE 후보를 덜 받았다는 것은 통과해야하는 장치의 양과 관련이 있습니다. IP 주소 (hyper-v의 vEthernet 스위치가 있음)가있는 컴퓨터 내부의 모든 네트워크 어댑터도 이에 대한 ICE를 생성합니다.


ICEInteractive Connectivity Establishment의 약자 로 NAT (Network Address Translator)에 사용되는 기술입니다.establishing communication for VOIP, peer-peer, instant-messaging, and other kind of interactive media.

일반적으로 ice 후보는 데이터가 교환 될 ipaddress 및 포트에 대한 정보를 제공합니다.

형식은 다음과 같습니다.

a = candidate : 1 1 UDP 2130706431 192.168.1.102 1816 일반 호스트

여기에서 UDP사용할 프로토콜을 지정하고, typ host아이스 후보 유형을 지정하고, 호스트는 후보가 방화벽 내에서 생성됨을 의미합니다. 당신이 사용하는 경우 wireshark트래픽을 모니터링하는 당신은 데이터 전송에 사용되는 포트는 얼음 후보의 하나 개 선물로 동일하다 볼 수 있습니다.

또 다른 유형은이며 relay, 이는 통신이 방화벽 외부에서 수행 될 때이 후보를 사용할 수 있음을 나타냅니다.

사용중인 브라우저에 따라 더 많은 정보가 포함될 수 있습니다. 여러 번 브라우저에서 8-12 개의 얼음 후보가 생성되는 것을 보았습니다.

참고 URL : https://stackoverflow.com/questions/21069983/what-are-ice-candidates-and-how-do-the-peer-connection-choose-between-them

반응형