브로드캐스팅
Server/Winodw Network 2015. 8. 8. 04:14UDP에서의 브로드캐스팅
TCP와 구별되는 UDP의 독특한 특징은 브로드캐스팅과 멀티캐스팅을 지원한다는 점이다.
이것을 이용하면 다자 간 통신을 쉽게 구현할 수 있다.
유니캐스팅(unicasting)
- 가장 흔한 형태, 두 애플리케이션이 통신하는 모델
브로드캐스팅(broadcasting)
- 한 네트워크에 속한 모든 개체와 통신하는 모델
멀티캐스팅(multicasting)
- 하나 또는 여러 네트워크에 속한 개채와 통신하는 모델
- 브로드캐스팅은 멀티캐스팅의 특수한 경우에 속한다.
1. 동작 원리
- 브로드캐스팅은 송신자가 데이터 복사본을 여러 개 보내는 것이 아니라
오직 하나의 데이터만 보내는 것이므로 다수의 수신자에게 효율적으로 데이터를 보낼 수 있다.
** 이더넷에서 브로드캐스팅을 할 때의 상황
송신자가 보내는 (하나의)메시지는 이더넷을 통해 모든 수신자에게 전달되고, 수신자는 이 메시지가 브로드캐스트 주소로 보낸 것임을 알고 읽어들인다.
소켓 애플리케이션이 브로드캐스트 데이터를 보내는 절차
1. 소켓에 대해서 브로드캐스팅을 활성화한다.
BOOL bEnable = TRUE;
retval = setsocket(sock, SOL_SOCKET, SO_BROADCAST, (char *)&Enable, sizeof(bEnable));
if ( retval == SOCKET_ERROR )
err_quit("setsocket()");
socket() 함수로 생성한 소켓 디스크립터는 기본적으로 유니캐스팅만 가능하다.
SO_BROADCAST를 사용하면 브로드캐스팅을 활성화할 수 있다.
setsockopt() 함수의 첫번째 인자로 소켓, 두번째와 세번째 인자로 SOL_SOCKET과
SO_BROADCAST를 대입한 상태에서 네 번째 인자에 TRUE값을 사용하면 브로드캐스팅이
활성화되며, 이때부터 브로드캐스트 데이터를 보낼 수 있다.
'Server > Winodw Network' 카테고리의 다른 글
소켓입출력모델 (0) | 2015.08.10 |
---|---|
recvn() (0) | 2015.08.10 |
클라이언트 함수 (0) | 2015.08.07 |
TCP/IP 서버/클라 구조 (0) | 2015.08.04 |
도메인 이름 시스템과 이름 변환 함수 (0) | 2015.08.04 |