네트워크에서 통신을 하는 방식에 따른 구분 중 하나
현재 네트워크상에서 가장 많이 사용되는 통신 방식
특정 목적지의 주소 하나만을 가지고 통신하는 방식
유니캐스트 통신 방식은 그 목적지 주소가 아닌 다른 PC들의 CPU 성능을 저하시키지 않습니다. 그 이유는 자신의 맥 어드레스가 아니라고 판단되면 랜카드가 이 프레임을 버리기 때문입니다.
로컬 랜에 붙어 있는 모든 네트워크 장비들에게 보내는 통신입니다.
여기서 로컬 랜이란, 라우터에 의해서 구분된 공간, 즉 브로드캐스트 도메인이라고 하는 공간을 뜻합니다.
브로드캐스트는 통신의 대상이 특정한 어떤 한 네트워크 장비가 아니고 내가 살고 있는 네트워크 안의 모든 네트워크 장비들에 통신할 때 쓰기 위한 방식입니다.
(ex: 이장님 방송)
자기가 받기 싫다고 해서 받지 않는 것이 아니라 무조건 받을 수 밖에 없습니다.
브로드캐스트의 주소는 미리 정해져 있는데, 바로 FFFF.FFFF.FFFF(맥 어드레스로 했을 때)입니다. 이 주소가 오면 랜카드는 비록 자신의 맥 어드레스와 같지는 않지만 이 브로드캐스트 패킷을 CPU에 보내게 됩니다.(주소가 다르다고 버리지 않습니다.)
따라서 자신의 맥 어드레스와 다르면 바로 버리고 CPU를 괴롭히지 않았던 유니캐스트에 비해서 CPU가 할 일이 늘어나게 됩니다.
브로드캐스트는 네트워크상의 전체 노드로 전송되기 때문에 전체적인 트래픽도 증가하지만, 이 패킷을 받은 모든 랜카드가 이 패킷을 CPU로 전송하기 때문에 CPU는 하던 일을 멈추고 또 다른 일을 해야하는 오버헤드가 발생하게 됩니다.
처음 두 PC 간에 통신을 하는 경우에는 상대편의 맥 어드레스를 모르기 때문에 상대의 맥 어드레스를 알아내기 위해 ARP를 합니다.
ARP가 바로 브로드캐스트입니다.
즉 동네 사는 사람들에게 "이 IP 주소 가진 사람 누구야?"하고 브로드 캐스트를 보냅니다. 그럼 그 IP 주소를 가진 사람이 "나야!"하고 대답한 후 자신의 맥 어드레스를 보내게 되는데, 이런 과정을 ARP라고 합니다. 이 때 바로 브로드캐스트가 발생하게 됩니다.
그 외에도 라우터끼리 정보를 교환한다거나 다른 라우터를 찾을 때, 또 서버들이 자신이 어떤 서비스를 제공한다는 것을 모든 클라이언트에게 알릴 때 등 여러 경우에 사용됩니다.
브로드캐스트들은 한 번 발생하고 끝나는 것이 아니라 대부분은 30초나 1분에 한 번씩 추가적으로 발생하게 됩니다.
[그림1] 유니캐스트 통신
현재 이 네트워크상에는 랜카드 맥 어드레스가 A인 PC 혼자만 살고 있습니다. 이 때 트래픽 발생기가 목적지 주소를 B로 해서 맥 어드레스가 A인 랜카드가 설치되어 있는 PC에 트래픽을 계속 보내기 시작했습니다.
PC에 설치된 랜카드는 들어오는 프레읨의 목적지 주소를 보게 됩니다. 비교해 보니 목적지 주소가 자기 맥 어드레스와 다르기 때문에 이 프레임을 무시하고 CPU에 올려보내지 않습니다. 그럼 CPU는 자기가 하는 일을 계속 수행할 수 있습니다.
[그림2] 브로드 캐스트 통신과 CPU 성능 저하 비교
트래픽 발생기에서 브로드캐스트를 발생시켰습니다. 그러자 PC가 자신의 맥 어드레스 'A'와 다른 'FFFF'인데도 불구하고 이 프레임을 버리지 않고 CPU에 전달하면서 인터럽트를 걸게 됩니다.
따라서 인터럽트가 걸린 CPU는 다른 일을 해야 하기 때문에 PC는 당연히 느려질 수 밖에 없습니다.
초록색 선이 유니캐스트, 빨간색 선이 브로드캐스트를 나타냅니다.
즉, 최초 CPU 성능이 100%인 상태에서 유니캐스트를 계속해서 패킷의 수를 늘려 발생시켰을 때 유니캐스트는 아무런 저하가 없었지만, 브로드캐스트는 패킷의 수가 많아질수록 CPU의 성능이 떨어졌습니다.
200명의 사용자가 있는 네트워크에서 150명에게만 같은 정보를 동시에 보내야 하는 상황
유니캐스트를 사용하는 경우,
즉 150명의 주소로 하나씩 전부 보내주는 방법을 사용합니다.
하지만 서버쪽에서 볼 때 같은 데이터를 150번이나 반복해서 보내기 떄문에 일이 많아질 뿐 아니라 네트워크상에서도 같은 데이터가 150번이나 반복되어 보내지기 때문에 트래픽을 가중시키게 됩니다.
브로드캐스트를 사용하는 경우,
브로드캐스트로 한 번에 모든 사용자에게 보내는 겁니다.
이 경우에는 서버에서 한 번에 브로드캐스트 주소로 사용해서 보내기 때문에 유니캐스트처럼 번거로운 작업은 필요 없습니다.
이 경우에는 이 데이터를 받을 필요도 없는 나머지 50명조차도 이 데이터를 받아야만 하는 문제가 발생합니다.
그리고 앞에서 언급한 것처럼 브로드캐스트는 데이터를 CPU로 올려보내기 때문에 PC 자체의 성능을 떨어뜨립니다.
멀티캐스트는 보내고자 하는 그룹 멤버들에게만 한 번에 보낼 수 있기 때문에 유니캐스트처럼 여러 번 보낼 필요도 없고, 브로드캐스트처럼 받기 싫어하는 사람에게까지 보낼 필요도 없습니다.
라우터나 스위치에서 이 기능을 지원해 주어야만 사용할 수 있습니다.
만약 라우터나 스위치가 멀티캐스트를 지원하지 않는다면 라우터의 경우는 이러한 멀티캐스트를 마치 브로드캐스트처럼 취급해서 다 막아버리고 스위치의 경우는 모든 포트로 뿌려버립니다.
유니캐스트는 우리가 가장 많이 사용하는 통신 방법으로, 목적지 주소를 하나만 적어서 특정한 한 PC에만 보내는 방식
브로드캐스트는 그 브로드캐스트 도메인(영역) 안에 있는 모든 PC들에게 한 번에 전송하는 방식입니다.
이 경우 모든 PC가 CPU에 인터럽트를 걸기 떄문에 PC 성능이 떨어진다는 단점이 있습니다.
멀티캐스트는 특정 그룹 데이터를 보내는 경우 적당한 방법으로 유니캐스트와 브로드캐스트의 장점을 결합해서 한 번에 그룹 멤버들에게 다 보내면서도 그룹 멤버 이외의 PC에는 영향을 주지 않는다는 특징을 가지고 있지만, 스위치나 라우터가 이 멀티캐스트 기능을 꼭 지원해야 한다는 제약이 있습니다.