네트워크 프로그래밍 CH14. 멀티캐스트와 브로드캐스트
Unicast
Multicast
- 1:N 전송
- IGMP 프로토콜을 통해 전송해야할 멤버를 찾는다.
여럿에 패킷을 전송할때 유니캐스트는 각각에 전송할 개별 패킷을 따로 전송해야 하나, 멀티캐스트는 한개의 패킷만으로 전송이 가능하다.

유니캐스트는 성능상 좋지 못하다
- 멀티캐스트 주소는 Class D ( 1110 비트로 시작함 ) 을 사용, 잠시 쓰고는 반납을 해야한다.
IGMP
- 그룹 관리 프로토콜로, 각각 라우터에 관련된 전송해야할 클라이언트의 그룹을 관리한다.
TTL
- Time To Live, 얼마다 패킷을 멀리 보낼지를 결정한다.
- 멀티캐스트를 보내는 쪽에서 이것을 설정해 주어야 한다.

그룹에 가입하기
- 멀티캐스트 데이터를 받는쪽은 가입을 해야 한다.
- 소켓 설정과 동시에 IGMP 응답을 보내게 된다.

사용법
- UDP 통신을 사용한다 ( SOCK_DGRAM )
송신측

수신측

IGMP Query
- 라우터에서 호스트로 그룹에 속하는지 질의한다.
Membership report
- 호스트가 라우터에 질의에 대한 응답을 한다.
- 이들로 트리를 형성한다.
MBONE
- 멀티캐스트가 되는것 끼리 유니캐스트로 묶어놓은 망을 의미한다.
Broadcast
- 1:All 전송
- 동일한 네트워크 내에 존재하는 모든 호스트에게 데이터를 전송한다.
- 데이터 전송 대상이 호스트가 아닌 네트워크이다.
- UDP 소켓을 기반으로 한다.
Directed Broadcast
- 네트워크 주소를 제외한 호스트 주소의 비트를 1로 설정해서 보낸다.
- 해당하는 네트워크로 데이터를 전송한다.
Local Broadcast
- 255.255.255.255 주소로 데이터를 전송한다.
- 전송한 호스트가 속한 네트워크로 데이터가 전송된다.
- Local Broadcast
사용법
- 브로드캐스트의 활성화를 위해 SO_BROADCAST를 1로 변경해야 한다.

송신

수신
