네트워크 프로그래밍 CH14. 멀티캐스트와 브로드캐스트

Alpha, Orderly·2023년 5월 9일
0

Unicast

  • 1:1 전송

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로 변경해야 한다.

송신

수신

  • 소켓에 자신의 주소를 bind 해야 한다.
profile
만능 컴덕후 겸 번지 팬

0개의 댓글