문제

최근에 IP 멀티 캐스트 (공개 인터넷에서는 잘 작동하지 않음)와 응용 프로그램 멀티 캐스트 (IRC 및 PSYC에서 사용되는 분명히 사용되는 IP) 사이에 차이가 있다는 것을 알게되었습니다. http://en.wikipedia.org/wiki/multicast).

응용 프로그램 수준 멀티 캐스트 구현에 대한 좋은 자습서가 있습니까?

멀티 캐스트의 요점은 일반적인 네트워크 세그먼트의 대역폭을 줄이는 것이라고 생각했기 때문에 응용 프로그램 수준의 멀티 캐스트가 무엇을하는지 이해하기가 어렵습니다.

도움이 되었습니까?

해결책

IP 레벨 멀티 캐스트의 목적은 많은 사용자가 동일한 트래픽을 받기를 원하는 일반적인 네트워크 세그먼트의 대역폭을 줄이는 것입니다. 일반적으로 하나의 특정 서브넷으로 제한되며 IP 라우터는 서브넷을 넘어 멀티 캐스트를 전파하지 않습니다. 이것은 확장 성 이유로 이루어집니다. 한 호스트가 인터넷의 모든 IP 주소로 전파되는 멀티 캐스트 패킷을 시작하도록하는 것은 좋은 생각이 아닙니다.

"애플리케이션 수준"멀티 캐스트를 생각하는 방법에는 여러 가지가 있습니다. 한 가지 방법은 멀티 캐스트에 참여하는 호스트 컴퓨터를 사용하여 멀티 캐스트 트리를 구축하는 것입니다. Dijkstra의 알고리즘은이를 수행하는 데 사용될 수 있습니다 (Wikipedia는 이에 대한 합리적인 설명이 있습니다). 그러나 참여 컴퓨터 목록을 유지하고 트리를 최신 상태로 유지하는 것은 호스트가 합류하여 네트워크를 상당한 속도로 떠나는 경우 상당한 양의 작업이 될 수 있습니다. 그리고 응용 프로그램 수준에서 사용할 수있는 홉 비용의 추정치가 양호하지 않을 것입니다.

검토해야 할 또 다른 접근 방식은 Gnutella 네트워크의 쿼리 라우팅 프로토콜에 사용 된 홍수 알고리즘입니다. (Wikipedia는 또한 이것에 대한 좋은 설명을 가지고 있습니다.)이 접근법은 멀티 캐스트 트리를 구축 할 필요성을 완화하지만 더 많은 네트워크 트래픽을 생성하는 단점이 있습니다. 실제로, 노드 수의 제곱으로 트래픽이 증가함에 따라 더 많은 네트워크 트래픽이 더 많아집니다 (예 : O) (N ** 2).

다른 팁

응용 프로그램 멀티 캐스트의 또 다른 예는 사용 중입니다 jgroups 안에 아마존 EC2 또는 Google App Engine IP 멀티 캐스트를 지원하지 않지만 개발자는 멀티 캐스트 기능을 사용하려고합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top