하드웨어
네트웍에서 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 라고 하는 공개 프로그램이 있다.
네트웍 패켓을 모두 분석하는 툴인데 정말 대단하다.
지원되는 프로토콜 리스트를 보면 입이 딱 벌어진다.
이렇게 많은 프로토콜이 있었는지 ... 우물안 개구리가 된 기분이다. ㅜ.ㅜ