본문 바로가기
Network

메시지 전송방식(유니캐스트, 멀티캐스트, 브로드캐스트)

by chichi1 2023. 10. 15.

오늘은 통신에서 자주 사용하는 용어인 캐스트에 대해서 알아보겠습니다. 네트워크상에서 메시지를 전달하는 방법은 3가지로 구분할 수 있습니다. 바로 유니캐스트(Unicast), 멀티캐스트(Multicast), 브로드캐스트(Broadcast) 입니다. 이 3형제의 차이는 1대 1로 통신하느냐, 어떤 그룹을 대상으로 통신하느냐, 아니면 전부를 대상으로 하는 통신이냐의 구분입니다.

 

👉 유니캐스트(Unicast)


첫 번째로 유니캐스트(Unicast)부터 알아보도록 하겠습니다. 네트워크상에서 일어나는 통신을 보면 대게 위에서 말한 3가지 방식 중 하나로 통신을 하고 있습니다. 이 3가지 중 가장 많이 사용되는 것이 바로 유니캐스트라고 합니다. (물론 브로드캐스트가 더 많이 사용되는 네트워크도 있을 수 있지만 이건 별로 좋지 않답니다.)

유니캐스트(Unicast)란, 우리가 랜(LAN)에서 통신하고 있다고 가정했을 때 데이터를 보내고자 하는 PC의 MAC 주소가 AA-BB-CC, 받는 PC의 MAC 주소가 DD-EE-FF라고 가정해 보겠습니다. (물론 주소형식이 실제와는 다르다는 것을 알고 계시겠죠?)

일단 통신을 위해서 전송되는 데이터 안에는 항상 출발지와 목적지의 주소, 즉 MAC 주소가 있어야 한다는 사실을 우리는 앞에서 배워 알고 있습니다. 따라서 예시로 든 위의 경우에서 출발지 주소는 AA-BB-CC, 목적지 주소는 DD-EE-FF가 될 겁니다. 이러한 방식이 바로 유니캐스트입니다. 정확하게 받는 상대방의 주소를 데이터 안에 넣는데, 이때 상대방은 한 명이어야 한다는 겁니다. 우리가 문자를 하는 것처럼 1 대 1로 통신하는 것이죠.

이런 방식으로 어떤 PC가 유니캐스트 프레임을 뿌리면 로컬 이더넷에 붙어있는 모든 PC에게 이 프레임이 전달됩니다.(로컬 이더넷의 기본성격이 붙어있는 모든 PC에게 정보를 뿌리는 Shared 방식이기 때문입니다.) 해당 로컬 네트워크 안에 있는 PC들은 일단 이 프레임을 받아들여서 랜카드에서 자신의 MAC 주소와 비교하게 됩니다.

수신한 유니캐스트 프레임의 목적지 주소와 자신의 MAC 주소를 비교하여 서로 다른 경우, 바로 그 프레임을 버립니다.(본인 몫이 아니니까요.) 이렇게 되면 그 PC에 CPU까지는 영향을 주지 않기 때문에 PC의 성능이 떨어질 일이 없습니다.

만약 수신한 유니캐스트 프레임의 목적지 주소와 자신의 MAC 주소가 같다면요? 그럼 랜카드는 '이건 내 몫이구나'라고 생각하고 이 프레임을 CPU로 올려보냅니다. 그럼 CPU가 해당 데이터를 받아서 처리를 하겠죠. 여기까지가 유니캐스트 방식입니다.

👉 브로트캐스트(Broadcast)


유니캐스트(Unicast)에 이어서 다음은 브로드캐스트(Broadcast)입니다. 브로드캐스트는 한 마디로 로컬 랜에 붙어있는 모든 네트워크 장비에들에게 보내는 전체공지입니다. 여기서 로컬 랜이란 라우터에 의해 구분되는 공간, 즉 브로드캐스트 도메인(Broadcast Domain)이라고 하는 구역을 말합니다. 브로드캐스트는 특정한 하나의 네트워크 장비, PC가 아닌 내가 살고 있는 네트워크 안의 모든 장비와 통신할 때 쓰는 방식이라고 생각하시면 됩니다.

브로드캐스트는 아파트 관리사무실에서 해당 아파트에 거주하는 모든 주민을 대상으로 방송하는 것과 같습니다. "주민 여러분, 오늘 102동에 엘리베이터 점검이 있으니 참고하시기를 바랍니다." 이렇게 말이죠. 이런 통신방식이 바로 브로드캐스트입니다. 그래서 이때 방송을 듣는 영역, 위 예시에서는 아파트 전체가 되는데 이것을 우리는 브로드캐스트 도메인(Broadcast Domain)이라고 부릅니다. 

다시 아파트 방송으로 돌아가서 관리사무소 근무자분이 방송했다면 아파트 주민들은 그 내용을 다 들었을 겁니다. 듣고 싶었든 아니든 말입니다. 브로드캐스트도 마찬가집니다. 자기가 받기 싫다고 해서 받지 않는 것이 아니라 무조건 받는 겁니다. 브로드캐스트 주소는 정해져 있는데, 바로 FFFF.FFFF.FFFF.FFFF(MAC 주소) 입니다. 목적지 주소가 FFFF.FFFF.FFFF.FFFF로 되어있는 프레임을 수신하면 랜카드는 비록 자기 주소와 다르더라도 이 프레임을 CPU에 전달합니다.

따라서 자신의 MAC 주소와 다른 데이터를 받으면 바로 버리고 CPU에 일을 넘기지 않았던 유니캐스트에 비해서 CPU는 할 일이 늘어나겠죠? 브로드캐스트는 네트워크 전체의 트래픽도 증가시키지만, 해당 패킷을 받은 모든 랜카드가 해당 패킷을 CPU에 전달하기 때문에 CPU는 하던 일을 멈추고 다른 일을 해야 하고, 이에 따라 전체 PC의 성능도 떨어지게 되는 겁니다.

 

👉 멀티캐스트(Multicast)


마지막 전송방식인 멀티캐스트(Multicast)에 대해 알아보겠습니다. 예를 들어 100명의 사용자가 있는 네트워크에서 30명에게만 같은 정보를 동시에 보내야 하는 상황이라고 가정해 봅시다. 감이 잘 오지 않으신다면 총원이 100명인 회사에서 인원이 30명인 총무 부서에만 공지를 띄워야 한다고 생각해 보시면 쉬울 겁니다.

그렇다면 100명 중 30명에게만 공지를 띄울 수 있는 방법에는 어떤 것들이 있을까요? 첫 번째는 우리가 이미 배운 유니캐스트를 사용하는 경우입니다. 30명의 주소로 하나씩 전부 보내주는 방법이죠. 가장 쉽게 생각해 볼 수 있는 방법이지만 서버의 입장에서 볼 때는 같은 데이터를 30번이나 반복해서 처리하는 것이기 때문에 일이 많아질 뿐 아니라 네트워크상에도 같은 데이터가 중복으로 보내지기 때문에 트래픽도 가중하게 되는 겁니다.

또 하나의 방법은 브로드캐스트를 이용하는 것입니다. 브로드캐스트로 한꺼번에 모든 사용자(여기서는 100명)에게 데이터를 보내는 겁니다. 이 경우에는 서버에서 한 번에 브로드캐스트 주소를 사용해서 보내기 때문에 유니캐스트처럼 30명에게 한 번씩 보낼 필요가 없습니다. 하지만 이렇게 하면 데이터를 받을 필요가 없는 나머지 70명도 이 데이터를 받아야만 한다는 문제가 발생합니다. 

그렇다면 이 문제를 가장 쉽게 해결할 수 있는 방법은 무엇일까요?

그것이 바로 멀티캐스트(Multicast)입니다. 멀티캐스트는 보내고자 하는 그룹 멤버들에게만 한 번에 보낼 수 있기 때문에 유니캐스트처럼 여러 번 반복해서 보낼 필요도 없고, 브로드캐스트처럼 해당 없는 사람들에게까지 보낼 필요가 없습니다. 특정 그룹에 속해있는 사람들에게만 선택적으로, 한 번에 보낼 수 있죠. 

지금 배운 멀티캐스트는 라우터나 스위치에서 이 기능을 지원해 주어야만 사용할 수 있습니다. 만약 라우터나 스위치가 멀티캐스트를 지원하지 않는다면 라우터의 경우는 멀티캐스트를 마치 브로드캐스트처럼 취급해서 다 막아버리게 됩니다. 스위치의 경우는 모든 포트로 정보를 뿌려버립니다. 

 

 

이전 글 - 맥 주소(MAC Address)

'Network' 카테고리의 다른 글

Hub 2 - 허브의 한계, 종류  (0) 2023.10.15
Hub 1 - 허브(Hub)란 무엇일까?  (0) 2023.10.15
맥 주소(MAC Address)  (0) 2023.10.05
네트워크 케이블  (0) 2023.10.04
랜(LAN)과 이더넷(Ethernet)  (0) 2023.10.03