728x90
🖐 MAC address
- 네트워크 상에서 서로를 구분하기 위하여 Device마다 할당된 물리적 주소
- 즉, 인터넷이 가능한 장비(PC, 휴대폰 등)들이 갖는 물리적 주소이다
- MAC 주소는 12자리 숫자로 구성되어 있다
- 숫자 중 앞의 6자리(24bit)는 벤더(제품 제조사)에 할당된다
- 나머지 6자리(24bit)는 각 벤더에서 제품에 할당한다
- 컴퓨터에 장착되어 LAN카드를 구별하기 위해 만들어진 식별 번호이다
- 이는 소프트웨어 대신 하드웨어에 연결되어 있기 때문에 '실제 주소'라고 표현한다
유니캐스트 (Unicast)
- 출발지와 목적지가 정확해야 하는 일대일 통신
- MAC <-> MAC 으로 출발지와 목적지가 명확히 정해져 있으며, 1:1로 통신한다
- 송신 노드 하나가 수신 노드 하나에 데이터를 전송하는 일대일 방식이다
- 받는 입장에서 자신의 MAC과 비교하여 동일하지 않으면 해당 통신을 받지 않기 때문에 CPU 성능을 저하시키지 않는다
- 자신과 비교하여 동일하면 CPU로 해당 프레임을 올려서 통신할 수 있다
- 실제로 사용하는 대부분의 통신은 유니캐스트 방식을 사용한다
- TCP, UDP 방식을 모두 지원한다
브로드캐스트 (Broadcast)
- 같은 네트워크에 있는 모든 장비들에게 보내는 통신
- 브로드캐스트는 목적지 주소가 모든 호스트로 표기되어 있는 통신 방식이다
- 아파트 내 관리사무소 방송이 모든 방송을 듣듯이, 같은 네트워크의 모든 장비들이 신호를 무조건 받는다
- 브로드캐스트는 주로 상대 IP는 알지만 MAC을 모르는 경우 사용하게 된다
- 자신의 MAC과 비교해서 동일하지 않으면 통신하지 않는 유니캐스트와 달리, 해당 네트워크에 있는 PC들이 신호를 무조건 받게 된다
- 따라서 유니캐스트로 통신하기 전, 주로 상대방의 정확한 위치를 알기 위해 사용한다
- 상대의 MAC 주소를 알아내기 위한 ARP를 시도하거나, 라우터들끼리의 정보 교환 및 다른 라우터를 찾을 때, 서버들이 자신의 서비스를 제공한다는 것을 클라이언트에 알릴 때 사용된다
- 이렇게 무조건 신호를 받다보니 나에게 필요한 정보인지 확인하는 과정에서 CPU를 사용하게 된다
- 따라서 과도한 브로드캐스트는 네트워크 및 PC의 성능을 떨어뜨릴 수 있다
- 송신 노드 하나가 네트워크에 연결된 수신 가능한 모든 노드에 데이터를 전송한다
- 주소 체계에 따라 브로드캐스트를 다양하게 분류할 수 있지만, 기본 동작은 로컬 네트워크 내에서 모든 호스트에 패킷을 전달해야 할 때 사용된다
- UDP 방식만 지원한다
멀티캐스트 (Multicast)
- 여러 명에게 보내야 하는 경우 사용하는 방식
- 하나의 출발지에서 다수의 특정 목적지로 데이터를 전송한다
- 유니캐스트와 브로드캐스트를 합쳐 놓은듯한 개념이다
- 유니캐스트는 모든 장비의 MAC을 모두 확인해서 같은걸 여러번 보내야 하기 때문에 수량이 많을수록 네트워크 부하가 커진다
- 브로드캐스트는 해당 네트워크 전체에 보내게 되니 관련없는 PC에서는 CPU 사용률이 증가하게 되는 문제점이 있다
- 멀티캐스트는 특정 그룹을 지정해서 해당 그룹원에게만 보내는 방식을 사용한다
- 멀티캐스트 그룹 주소를 이용해 해당 그룹에 속한 다수의 호스트로 패킷을 전송하기 위한 통신 방식이다
- 이는 스위치나 라우터가 멀티캐스트 방식을 지원해야 한다
- 송신 노드 하나가 네트워크에 연결된 하나 이상의 수신 노드에 데이터를 전송한다
- IPTV와 같은 실시간 방송이나 사내 방송, 증권 시세 전송과 같이 단방향으로 다수에게 동시에 같은 내용을 전달해야할 때 사용한다
- UDP 방식만 지원한다
애니캐스트 (Anicast)
- 가장 가까운 Node와 통신하는 방식
- 유니캐스트와 다른 점은 송신 노드가 네트워크에 연결된 수신 가능한 노드 주엥서 한 노드에만 데이터를 전송하는 것이다
- 송신 노드가 네트워크에 연결된 수신 가능한 노드 중에서 한 노드에만 데이터를 전송한다
- 즉, 동일한 Anycast Address가 서로 다른 node들의 Interface에 할당되어 있을 때, 해당 Anycast Address로 IPv6 Packet을 전송하면 Routing Protocol의 알고리즘에 따라 가장 가까이에 있다고 판단되는 Node의 Interface로 전달된다
- 애니캐스트 주소가 같은 호스트들 중에서 가장 가깝거나 가장 효율적으로 서비스할 수 있는 호스트와 통신하는 방식이다
- 애니캐스트의 목적
- 트래픽 분산
- 네트워크 이중화
- DDos 공격 발생 시, 서버가 받는 피해 최소화
- Client와 Server 간의 물리적인 거리를 줄임으로써 Response Time의 최소화
- 가장 가까운 DNS 서버를 찾을 때 사용하거나, 가장 가까운 게이트웨이를 찾는 애니캐스트 게이트웨이 기능에 사용하기도 한다
- IPv4에서는 일부 기능만 구현, IPv6는 모두 구현이 가능하다 (IPv6 기반으로 작동함)
💡 결론
통신 방식을 구분할 때 중요한 것은 출발지 주소가 아닌 목적지 주소 기준이다!
- MAC 주소 : 인터넷이 가능한 장비(TCP/IP 통신을 하는)가 갖고 있는 물리적 주소
- 유니캐스트 : 목적지 주소를 하나만 적어서 특정 한 PC에게만 보내는 방식
- 브로드캐스트 : 도메인(영역) 안에 있는 모든 PC들에게 한번에 전송하는 방식으로, CPU에 인터럽트를 걸기 때문에 수신 측에서 PC 성능에 영향을 받을 수 있다
- 멀티캐스트 : 원하는 그룹에게만 전송하는 방식으로, 유니캐스트보다 적은 네트워크 부하를 가지고 멀티캐스트로 인한 수신 불필요한 PC에서의 CPU 성능에 영향을 끼치지 않는다
- 애니캐스트 : 가장 가까운 Node와 통신
- IPv4 -> 유니캐스트, 멀티캐스트, 브로드캐스트
- IPv6 -> 유니캐스트, 멀티캐스트, 애니캐스트
✨ BUM 트래픽
- BUM이란 Broadcast, Unknown Unicast, Multicast 를 지칭하며, 이는 서로 다른 종류의 트래픽이지만 네트워크에서의 동작은 서로 비슷하다
- Unknown Unicast
- 이는 유니캐스트여서 목적지 주소는 명확히 명시되어 있지만, 네트워크에서의 동작은 브로드캐스트와 같을 때를 가리킨다
- 유니캐스트이지만 스위치가 목적지에 대한 주소를 학습하지 못한 상황이어서 패킷을 모든 포트로 플러딩(전송)하는데 이런 유니캐스트를 Unknown Unicast라고 한다
- 물론 유니캐스트이므로 전달받는 모든 단말 NIC에서 도착지 주소를 확인하고 자신이 목적지가 아닌 경우 패킷을 버린다
- 하지만 네트워크 입장에서는 네트워크 상에서 불필요한 BUM 트래픽이 많아지면 네트워크 성능이 저하된다
- 이더넷 환경에서는 ARP 브로드캐스트를 먼저 보낸 후 통신을 시작하므로 BUM 트래픽이 많이 발생하지 않는다
참고)
https://kowo1001.github.io/network/network-4-Network-Unicast,Multicast,Broadcast,Anycast/
https://sharplee7.tistory.com/105
https://chaelin1211.github.io/study/2021/05/28/network-communication.html
728x90
'야미스터디 > Network' 카테고리의 다른 글
[Network] 라우터 📌 (0) | 2022.09.20 |
---|---|
[Network] HTTP 1, 2, 3 📌 (0) | 2022.09.12 |
[Network] Cookie vs Session 📌 (0) | 2022.08.04 |
[Network] REST API 📌 (0) | 2022.07.13 |
얄팍한 코딩사전 - REST API가 뭔가요? (0) | 2021.07.31 |
댓글