네트워크

Broadcast Domain & Collision Domain

teo_99 2024. 3. 17. 21:16

현재 AIoT 수업을 듣고 있는데, Broadcast Domain과 Collision Domain이라는 용어가 자주 등장하는 것 같다. 이번 포스팅에서는 이들이 어떤 개념을 갖고 있는지 알아보면서 이더넷 네트워크에 대한 약간의 기초 개념까지 잡아보자.

 

Collision Domain

Collision Domain을 직역하면 충돌 도메인이라는 의미이다. 이는 네트워크에서 '패킷이 충돌하여 영향을 받게 되는 영역'을 의미하는데, 이더넷 네트워크는 하나의 회선을 여러 종류의 패킷이 사용할 수 있는 구조이기 때문에 충돌 가능성이 존재하기 때문이다.

 

전통적인 이더넷은 이러한 충돌에 대한 해결책으로 CSMA/CD 방식을 사용한다. CSMA/CD란 Carrier Sense Multiple Access with Collision Domain의 약자로, 직역하면 여러 접근이 존재할 때 운반체(Carrier)를 확인해서 충돌을 회피하는 방식을 의미한다. 다만 10GB 이상의 이더넷 표준 등에서는 전이중 방식을 사용하기 때문에 CSMA/CD 방식을 사용하지 않는다는 사실을 발견했는데, 이에 대해서는 추후 다시 정리해보겠다.

 

아무튼 본 포스팅에서의 핵심은 (전통적인 이더넷을 기준으로) Collision Domain의 개념을 알아보는 것이므로 '네트워크 통신에서는 충돌이 발생할 수 있고, 이에 따라 Collision Domain이 존재한다' 라는 사실을 기억하면 되지 않을까 싶다.

 

우선 그림으로 Collision Domain이 어떻게 형성될 수 있는지를 살펴보자. 

https://www.baeldung.com/cs/collision-broadcast-domains

위 그림을 보면 Collision Domain이 색깔을 중심으로 분류되었음을 확인할 수 있다. 같은 색깔(같은 충돌 도메인) 안에 있는 회선들은 충돌이 발생할 여지가 있으면 패킷을 전송하지 못한다. 

 

예를 들어 파란색으로 표시된 회선들의 경우, 하나의 디바이스가 패킷을 전송하고 있다면 다른 디바이스는 패킷을 전송할 수 없다. 이는 허브가 연결된 모든 장비를 하나의 충돌 도메인으로 분류하기 때문이다. 위 그림에서처럼 허브에 연결된 디바이스가 몇개든간에 하나의 디바이스라도 패킷을 전송하고 있다면, 다른 디바이스들은 패킷을 전송할 수 없다.

 

다만 허브의 경우가 그렇다는 것이고, 스위치나 라우터는 다른 접근방식을 가진다. 스위치나 라우터는 연결된 모든 디바이스를 하나의 충돌 도메인으로 분류하지 않는다. 그리고 이는 허브, 리피터, 브리지 등이 현재 사용되지 않는 이유이기도 하다.

 

스위치나 라우터를 사용하는 경우, 모든 포트가 서로 다른 충돌 도메인을 가진다. 쉽게 말해, A 디바이스가 B 디바이스로 데이터를 전송하고 있는 중에, C 디바이스가 B 디바이스로 데이터를 전송해도 충돌이 발생하지 않는다. 

 

왜 그런지 궁금해서 좀 찾아봤는데, 스위치는 허브와 달리 버퍼링 기능이 있어서라고 한다. 패킷이 도착하면 버퍼링을 하고, 대상 포트가 혼잡하지 않다면 전송한다. 반면 허브는 버퍼링 기능이 없다. 관련해서는 Cisco 관계자가 'Switch는 충돌이 없나요?'에 답변한 내용을 참고하면 좋을 것 같다. (링크)

스위치는 나가는 포트가 현재 다른 프레임을 전송하는 중일 경우 들어오는 프레임을 버퍼에 저장할 수 있으므로 스위치는 들어오는 신호를 보낼 때 "혼합"하지도 않습니다. 신호 측면에서 스위치를 사용하면 우리가 알고 있던 진정한 충돌은 더 이상 존재하지 않습니다. - Cisco 관계자 답변

 

라우터의 경우에도 스위치와 같이 Collision Domain을 분리하는데, 추가적으로 Broadcast Domain도 분리한다. 이제 Broadcast Domain이 갖는 의미는 무엇인지 알아보자.

 

Broadcast Domain

우선 브로드캐스트란, 하나의 네트워크에 속한 모든 디바이스에게 메세지를 전송하는 것을 의미한다. 비슷하게, 브로드캐스트 도메인은 '브로드캐스트 패킷으로 영향을 받는 네트워크 영역'을 의미한다. 

 

ARP와 같은 프로토콜과 같이, 브로드캐스트를 해야 하는 상황에서는 최대한 '연관된 디바이스'만 브로드캐스트 패킷을 받는게 좋다. 브로드캐스트 도메인이 상당히 크고, 여러 디바이스가 얽혀 있다면 불필요한 네트워크 혼잡이 많이 발생할 것이다.

 

https://www.baeldung.com/cs/collision-broadcast-domains

 

마찬가지로 그림을 통해 살펴보자. 앞서 충돌 도메인과는 다르게, Switch나 Hub와 같은 2계층 이하의 장비들은 브로드캐스트 도메인을 나누지 못한다. 하지만 라우터는 브로드캐스트 도메인을 포트 별로 나눌 수 있는데, 따라서 위 그림에서는 브로드캐스트 도메인이 3개 존재한다.

 

하지만 위 토폴로지가 항상 3개의 브로드캐스트 도메인을 가지는 건 아니다. 추가적으로 조사해보니 VLAN을 분리하거나, 일부 스위치의 경우는 Private LAN을 사용할 수 있어서 Topology만으로는 브로드캐스트 도메인을 알 수 없다.

 

일단은 브로드캐스트 도메인은 라우터의 포트(네트워크)를 기준으로 분리된다고 이해해도 좋을 것 같다. 이는 다른 말로 표현하면 한 네트워크의 브로드캐스트 패킷은 다른 네트워크에 영향을 미칠 수 없음을 의미한다.

 

결론

충돌 도메인과 브로드캐스트 도메인의 개념에 대해 살펴봤다. 조사하다보니 다양한 용어 및 개념들이 추가적으로 등장했는데, 이는 추후 다른 포스팅으로 정리하도록 하겠다.

 

참고 자료

https://www.geeksforgeeks.org/collision-domain-and-broadcast-domain-in-computer-network/

https://www.baeldung.com/cs/collision-broadcast-domains

http://www.ktword.co.kr/test/view/view.php?m_temp1=2490

http://www.ktword.co.kr/test/view/view.php?m_temp1=2028

https://community.cisco.com/t5/routing/does-collision-exists-in-switches/td-p/2603901

https://dany-it.tistory.com/127

https://docs.netgate.com/pfsense/en/latest/network/broadcast-domains.html