[1. 개요]
멀티 캐스트(Multicast) 통신에서 데이터 전송은 특정 그룹에 등록되어 있는 다수의 호스트를 대상으로 한다.
즉, 한번에 전송으로 다수의 호스트가 이를 수신 할 수 있다는 것이다.
이러한 멀티 캐스트 통신은 UDP 를 기반으로 하며, 라우터의 도움이 필요하다.
- 라우터가 패킷을 복사하여 다수의 호스트에 이를 전달.
- 라우터가 멀티 캐스트를 지원하지 않을 수 도 있다.
특정 그룹은 클래스 D 에 속하는 IP 주소를 대상으로 한다.
- 224.0.0.0 ~ 239.255.255.255
브로드 캐스트(Broadcast) 통신 역시 UDP 를 기반으로하며, 멀티 캐스트와 유사하나, 전송 범위에서 그 차이가 있다.
- 동일 네트워크에 속해있는 호스트로 그 대상이 제한된다.
또한, 브로드 캐스트 통신이라 하더라도 IP 주소 형태에 따라 두가지 형태로 구분된다.
- Directed Broadcast
# IP 의 호스트 주소를 전부 1로 설정 (ex, 네트워크 주소가 192.168.0 이면, 192.168.0.255)
# A 네트워크에서, B 네트워크의 모든 호스트로 전송 - Local Broadcast
# 특별하게 예약 된 IP 주소, 255.255.255.255 를 사용
# 외부 네트워크로 전달되지 않음. 같은 subnet 내 에서만
[2. 멀티 캐스트 사용]
Sender
- UDP 소켓 open
- TTL 설정
# setsockopt
# IPPROTO_IP / IP_MULTICAST_TTL - sendto() 를 이용하여 전송
# 멀티 캐스트 그룹으로 전송
Receiver
- UDP 소켓 open
- 멀티 캐스트 그룹으로 join
# setsockopt
# IPPROTO_IP / IP_ADD_MEMBERSHIP
# struct ip_mreq; - recvfrom() 을 이용하여 수신
[3. 브로드 캐스트 사용]
Sender
- setsockopt
# SOL_SOCKET / SO_BROADCAST - sendto
Receiver
- recvfrom
'분류대기' 카테고리의 다른 글
Segmentation fault 사례 (0) | 2025.03.18 |
---|---|
Segmentation fault 해결 (C++) (0) | 2025.03.04 |
윈도우 컴파일 에러. [No Target Architecture] (0) | 2025.03.04 |
소켓 Linger 옵션 (0) | 2025.02.26 |
[인코딩] EUCKR (0) | 2025.02.04 |