유니캐스트, 브로드캐스트, 멀티캐스트는 네트워크에서 통신을 하는 방식에 따라 구분합니다. 1:1이냐, 전부를 대상으로 하느냐, 그룹을 대상으로 하느냐에 따라 차이가 있습니다.
유니캐스트(Unicast)
우리가 네트워크 상에서 가장 많이 사용하는 통신 방식입니다. 통신을 받는 PC의 주소를 프레임 안에 써넣는데 이때 하나의 PC를 넣어야 합니다.(1 : 1)
어떤 PC가 유니캐스트 프레임을 뿌리게 되면 로컬 네트워크 상에 있는 모든 PC들이 이 프레임을 받아들여서 자신의 랜카드의 MAC Address와 비교하게 됩니다. 그때 자신의 랜카드의 MAC Address와 받은 MAC Address가 서로 다른 경우 바로 그 프레임을 버리게 되고 같은 경우 이 프레임을 CPU로 올리게 됩니다.
이 방식은 전송받은 MAC Address가 자신의 MAC Address와 다를 때 프레임을 버리기 때문에 다른 PC들의 성능을 저하시키지 않습니다.
위 사진을 보면 네트워크에는 B만 살고 있습니다. 이때 트래픽 발생기가 목적지 주소를 A로 유니캐스트를 발생했을 때 B는 자기가 가지고 있는 MAC Address와 다르다는 것을 인식하고 해당 프레임을 버리게 되어 트래픽이 발생하지 않습니다.
브로드캐스트(Broadcast)
로컬 랜에 붙어있는 모든 장비들에게 보내는 통신입니다.(1 : 다)
자기가 살고 있는 모든 네트워크 장비들에게 통신할 때 쓰기 위한 방식으로 받기 싫은 데이터도 무조건 받아야 합니다. 비록 자신의 MAC Address와 같지 않지만 브로드캐스트 패킷을 CPU에게 보내게 됩니다. 이후 CPU가 처리를 하여 인터럽트가 발생합니다.
따라서 과도한 브로드캐스트는 네트워크 상의 전체 PC의 성능을 떨어트리게 됩니다.
브로드캐스트가 발생하는 경우
IP주소는 알고 있지만 MAC Address를 모르는 경우 MAC Address를 알아내기 위한 APR(여기)을 하는데 이때 브로드캐스트가 발생합니다. 이외에도
- 라우터끼리 정보를 교환하거나 다른 라우터를 찾을 때,
- 서버들이 자신의 어떤 서비스를 제공한다는 것을 모든 클라이언트들에게 알릴 때 등 여러 경우에 사용됩니다.
브로드캐스트는 한번 발생하고 끝이 나는 것이 아닌 30초나 1분 등 주기적으로 발생합니다. 꼭 필요하긴 하지만 많이 발생할 경우 문제가 발생합니다.
유니캐스트를 했을 때와 같은 환경입니다. 이때 트래픽 발생기가 목적지 주소를 B와 전혀 상관이 없는 FFFF로 해서 브로드캐스트를 발생했을 때 B는 자기가 가지고 있는 MAC Address와 다름에도 불구하고 이 프레임을 버리지 않고 CPU에게 전달해줍니다. 이때 CPU에서 다른 일을 처리해야 하기 때문에 인터럽트가 발생하게 됩니다.
멀티캐스트(Multicast)
멀티캐스트는 보내고자 하는 그룹 멤버들에게만 한 번에 보낼 수 있습니다. 특정 그룹에게만 보내야 할 상황이 생겼을 때 유니캐스트는 여러 번 발생시켜야 하고, 브로드캐스트는 받기 싫어하는 사람에게 까지 발생하게 됩니다. 이때 멀티캐스트를 쓰면 특정 그룹 이외에는 영향을 주지 않습니다.
라우터나 스위치에서 이 기능을 지원해줘야만 사용할 수 있으며 지원하지 않을 경우 라우터는 멀티캐스트를 브로드캐스트처럼 취급하여 다 막아버리고 스위치는 모든 포트로 뿌려버립니다.