네트웍에서 broadcast  통신이란 용어는 자주 듣는다.

multicast 란 용어도 혼용된다.


  • broadcast            전체
  • multicast             특정한 어떤것들
  • uniquecast          오로지 한개


첫번째는  IP  브로드케스트를 이용하는 방법이다.

이는 udp 로 소켓을 열고  목적지 주소를  255.255.255.255 로 설정하고 통신하는 방법이다.


두번째는 MAC 통신을 이용하여 브로드케스트하는 방법이다.

목적지 맥주소를  FF:FF:FF:FF:FF:FF 로 설정하는 방법이다.

ARP 패켓이 이런 방법을 사용한다. 

어플에서 어떻게 해야 직접 frame 으로 전송할 수 있는지는 모르겠다.


세번째 방법은 MAC 을 이용한 멀티케스트이다.

이더넷 칩이 자기 자신의 맥주소 외에 여분의 맥주소를 등록할 수 있는 칩이 있다.

이런 경우 이곳에 맥주소를 등록하면 자신의 맥주소 외에 다른 맥주소의 패켓을 받아들인다.


네번째 방법은 MAC 주소의 미리 정의된 비트를 이용한 멀티케스트이다.

맥주소는 6바이트로 구성되어 있으며 이중 첫번째 바이트의 d0 비트가 1 일 경우는 멀티케스트 맥이 된다.

첫번째 바이트의 나머지 7비트를 비교하여 나의 첯번째 맥과 동일하면 받아 들인다.

d0 비트 처리를 이더넷 PHY 하드웨어칩이 할수도 있고 드라이버에서 수신되는 패켓을 모두 분석하여 처리할수 도 있다.


MCU 가 전용의 이더넷이 붙어 있지 않을 경우 로컬버스에 이더넷 칩을 붙여 사용하는데

이경우 네트웍 통신의 트래픽이 많이 걸리면  패켓을 많이 잃어 버린다.

TCP 의 경우 문제가되지 않지만 특수한 경우(브로드, 멀키케스트 통신) 문제가 발생한다.


wireshark 라고 하는 공개 프로그램이 있다.

네트웍 패켓을 모두 분석하는 툴인데 정말 대단하다.

지원되는 프로토콜 리스트를 보면 입이 딱 벌어진다.

이렇게 많은 프로토콜이 있었는지 ... 우물안 개구리가 된 기분이다. ㅜ.ㅜ