유니캐스트(Unicast), 브로드캐스트(Broadcast), 멀티캐스트(Multicast)
- 프로그래밍/네트워크
- 2020. 2. 10. 23:31
l 유니캐스트(Unicast), 브로드캐스트(Broadcast), 멀티캐스트(Multicast)
** 공부를 하면서 기록하는 내용이다 보니 틀린 내용이 있을 수도 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사드리겠습니다. **
| 유니캐스트(Unicast)
유니캐스트는 1대 1 통신 방식입니다. A라는 PC에서 B라는 PC로 데이터를 전송하기 원한다고 가정해보겠습니다. A는 출발지 맥 어드레스에 자신의 주소를, 목적지 맥 어드레스에 B의 주소를 넣고, 프레임을 전송합니다. 로컬 이더넷의 특성상 로컬 네트워크 내의 모든 PC에 프레임을 뿌립니다. 따라서 각각의 PC는 A가 전송하는 프레임을 받게 됩니다. 그럼 PC들은 자신의 맥 어드레스와 목적지의 맥 어드레스를 비교합니다. 그리고 자신에게 온 것이 맞는다면 CPU에게 보내 일을 처리할 수 있도록 하고, 자신에게 온 것이 아니라면 CPU에 보내지 않고, 프레임을 바로 드랍시켜버립니다. 그렇기 때문에 유니캐스트 방식은 잘못 받은 데이터로 인한 PC의 성능을 저하가 없습니다.
| 브로드캐스트(Broadcast)
브로드캐스트는 1대 N 통신 방식입니다. 브로드캐스트 도메인 내의 모든 PC들에 데이터를 전송합니다. 여기서 브로드캐스트 도메인이란 라우터로 구분되는 공간을 의미합니다. A라는 PC가 데이터를 전송한다고 할 때 목적지 맥 어드레스에 FF-FF-FF-FF-FF-FF를 넣어서 패킷을 전송합니다. 그럼 같은 도메인 내의 PC들은 A가 전송한 패킷을 받게 됩니다. 여기서 유니캐스트와의 차이점은 패킷을 받은 PC는 CPU에게 받은 패킷을 전송한다는 것입니다. 따라서 브로드캐스트가 올 때마다 CPU에는 인터럽트가 걸리게 되고, 그 일을 처리하다 보면 다른 일을 하지 못하게 됩니다. 그러다 보면 결과적으로 PC 성능의 저하를 가져올 수 있습니다. 브로드캐스트가 발생하는 예로 ARP가 있습니다. A가 B에게 데이터를 전송하고 싶지만, B의 IP 주소만 알고, 맥 어드레스를 알지 못할 때 A는 목적지 IP에 B의 IP를(같은 브로드캐스트 도메인이라고 가정합니다.), 목적지 맥 어드레스에 FF-FF-FF-FF-FF-FF를 넣어 패킷을 전송합니다. 그럼 B는 A에게 자신의 맥 어드레스를 알려줍니다.
| 멀티캐스트(Multicast)
멀티캐스트도 1대 N 통신 방식입니다. 단 브로드캐스트 도메인 내의 특정 몇몇에만 데이터를 보냅니다. 예를 들어보겠습니다. 한 개의 브로드캐스트 도메인 내에 총 50개의 PC가 있습니다. 그리고 A라는 PC는 50개 중 30개의 PC에만 데이터를 전송하고 싶습니다. 여기서 유니캐스트를 사용하게 된다면 같은 데이터를 30번 반복해서 보내야 합니다. 그렇게 되면 네트워크상 트레픽과 서버 쪽 트레픽이 엄청날 것입니다. 지금이야 30번이지만 200번 300번 더 많은 데이터를 보내야 한다면 트래픽은 더 증가하게 될 것입니다. 다른 방법으로 브로드캐스트를 사용하게 되면 50개의 PC에 패킷을 전송하기 때문에 20개의 PC는 받을 필요가 없는 패킷을 받게 되어 PC 성능의 저하를 가져오게 됩니다. 이럴 때 사용하는 방식이 멀티캐스트입니다. 유니캐스트와 브로드캐스트의 장점을 합쳐 도메인 내의 특정 그룹에만 한 번에 패킷을 보내는 것입니다. 하지만 멀티캐스트의 경우 스위치나 라우터가 지원해주어야만 사용할 수 있는 통신 방식입니다.
'프로그래밍 > 네트워크' 카테고리의 다른 글
이더넷(Ethernet)과 토큰링(Token ring) (0) | 2020.02.14 |
---|
이 글을 공유하기