브로드캐스팅

Server/Winodw Network 2015. 8. 8. 04:14

UDP에서의 브로드캐스팅

 

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
admin