محدّث قبل شهر واحد
사람이 꽉 찬 방에서 모두에게 동시에 질문해야 한다면? 한 명씩 어깨를 두드릴 수도 있고, 그냥 크게 외칠 수도 있다. 네트워크도 같은 선택에 직면하며 — 브로드캐스트 주소를 이용해 외친다.
브로드캐스트 주소는 네트워크에서 외치는 것과 같다. 패킷 하나를 네트워크 세그먼트의 모든 장치에 동시에 전달하는 특수 주소다. 하나의 장치가 보내면, 모두가 받는다.
하지만 브로드캐스트가 해결하는 것은 단순한 효율성 문제가 아니다. 아직 자신의 정체성이 없을 때도 통신을 가능하게 해준다.
불가능한 문제
노트북이 새로운 Wi-Fi 네트워크에 연결된다. IP 주소가 필요하다. 그런데 여기에 역설이 있다: 아직 IP 주소가 없고, DHCP 서버가 어디 있는지도 모른다. 반송 주소가 없으니 일반 메시지를 보낼 수 없다. 네트워크에 아직 존재하지 않으니 길을 물어볼 수도 없다.
말을 하려면 주소가 필요하다. 하지만 주소를 얻으려면 말을 해야 한다.
해결책: 허공에 외친다. "여기 DHCP 서버 있나요?" 듣고 있는 누구든 응답할 수 있다. 이것이 브로드캐스트 주소 지정 — 정체성이 생기기 전의 통신, 존재하기 전의 발견이다.
브로드캐스트가 없다면 네트워크는 중앙 집중식 레지스트리, 사전 구성된 디렉터리, 모든 것의 위치를 아는 외부 기관이 필요할 것이다. 브로드캐스트는 더 나은 방법을 가능하게 한다: 분산된 발견. 장치들은 사전 약속이 아닌 선언을 통해 서로를 찾는다.
브로드캐스트 작동 방식
모든 서브넷에는 브로드캐스트 주소가 정확히 하나 있다: 범위의 마지막 주소. 모든 호스트 비트를 1로 설정하여 계산한다.
서브넷 192.168.1.0/24의 경우:
마지막 옥텟을 이진수로 표현하면:
이 패턴은 서브넷 크기에 관계없이 동일하다. 10.0.0.0/16의 브로드캐스트는 10.0.255.255이고, 172.16.240.0/20의 경우는 172.16.255.255다. 마지막 주소, 모든 호스트 비트가 최댓값.
두 가지 브로드캐스트 유형
IPv4에는 두 종류의 브로드캐스트 주소가 있다:
제한 브로드캐스트: 255.255.255.255
"내가 어디에 있든 내 로컬 네트워크에 브로드캐스트"를 의미한다. 라우터는 절대 이를 전달하지 않는다. 제한적이고, 로컬이며, 현재 세그먼트에만 한정된다.
자신이 어떤 네트워크에 있는지조차 모를 때 사용한다. 부팅 중인 컴퓨터는 255.255.255.255를 사용한다. IP 주소도, 서브넷 마스크도, 아무런 정보도 없기 때문이다. 근처의 누군가와 통신해야 한다는 것만 알 뿐이다.
디렉티드 브로드캐스트: 서브넷 지정형
해당 서브넷의 브로드캐스트 주소를 사용하여 특정 서브넷을 대상으로 한다. 192.168.1.255는 192.168.1.0/24의 모든 장치에 브로드캐스트한다.
디렉티드 브로드캐스트는 원격 서브넷으로 라우팅될 수 있지만, 대부분의 라우터는 기본적으로 이를 비활성화한다. 원격 브로드캐스트 플러딩을 허용했을 때의 보안 위협 때문에 RFC 2644에서 비활성화를 권장했고, 현대 네트워크는 이를 따른다.
브로드캐스트를 기반으로 구축된 프로토콜
ARP: MAC 주소 찾기
ARP(주소 결정 프로토콜)는 브로드캐스트 주소 지정을 가장 순수한 형태로 보여준다.
컴퓨터 A가 IP 192.168.1.55로 데이터를 보내야 하지만, 이더넷 프레임은 IP 주소가 아닌 MAC 주소를 필요로 한다. 컴퓨터 A는 해당 IP의 MAC 주소를 모른다.
그래서 낯선 사람들로 가득 찬 방에 질문을 외친다:
네트워크의 모든 장치가 이를 수신한다. 모든 장치가 자신이 해당 IP를 갖고 있는지 확인한다. 정확히 하나만 응답한다: "저예요. 제 MAC 주소는 이것입니다."
컴퓨터 A는 답변을 캐시에 저장한다. 이후 패킷은 직접 전달된다. 다른 누군가가 외쳐야 할 때까지 방은 조용해진다.
DHCP: 브로드캐스트로 시작하는 통신
DHCP는 닭이 먼저냐 달걀이 먼저냐의 문제를 정면으로 마주한다. DHCP 과정 — 발견, 제안, 요청, 확인 — 은 전적으로 외침으로 이루어지는 대화다:
발견(Discovery): 클라이언트가 서버를 찾기 위해 브로드캐스트
제안(Offer): 서버가 브로드캐스트로 응답
요청(Request): 클라이언트가 수락을 브로드캐스트
확인(Acknowledgment): 서버가 확정
IP를 얻은 후, 클라이언트는 영리한 일을 한다: 자신의 새 주소로 ARP 요청을 브로드캐스트한다. "192.168.1.100을 이미 쓰고 있는 장치가 있나요?" 누군가 응답하면 충돌이다. 주소를 확정하기 전에 미리 알아두는 것이 낫다.
2계층과 3계층이 함께
브로드캐스트는 두 네트워크 계층에서 동시에 작동한다:
2계층 (이더넷): MAC 주소 FF:FF:FF:FF:FF:FF가 세그먼트의 모든 네트워크 인터페이스에 프레임을 물리적으로 전달한다.
3계층 (IP): 브로드캐스트 주소(255.255.255.255 또는 서브넷 지정형)가 수신 장치에게 이 패킷을 어떻게 처리할지 알려준다.
DHCP 발견 패킷에는 두 가지가 모두 담겨 있다:
- 목적지 MAC:
FF:FF:FF:FF:FF:FF - 목적지 IP:
255.255.255.255
2계층 브로드캐스트가 모든 장치에 물리적으로 도달한다. 3계층 주소는 받은 장치에게 무엇을 해야 할지 알려준다.
라우터가 브로드캐스트를 차단하는 이유
브로드캐스트 주소는 서비스 거부(DoS) 공격의 수단이 될 수 있다. 스머프 공격에서 공격자는 피해자의 IP 주소로 위조된 출발지를 달아 네트워크의 브로드캐스트 주소로 ICMP 에코 요청을 보낸다. 네트워크의 모든 장치가 피해자에게 응답하여 패킷 하나를 수백, 수천 개로 증폭시킨다.
이것이 현대 라우터가 다음과 같이 동작하는 이유다:
- 제한 브로드캐스트(
255.255.255.255)를 절대 전달하지 않음 - 기본적으로 디렉티드 브로드캐스트 전달 비활성화
- 브로드캐스트 트래픽 속도 제한
원격 네트워크의 브로드캐스트 주소로 ping을 보낼 수 없다. 이는 제한이 아니라 보호다.
IPv6의 더 나은 해결책
IPv6는 브로드캐스트 주소를 완전히 없앴다. 대신 멀티캐스트 — 대상 그룹 통신을 사용한다.
관심이 있든 없든 모든 장치에게 외치는 대신, IPv6 멀티캐스트는 특정 그룹만을 대상으로 한다:
FF02::1— 로컬 세그먼트의 모든 노드FF02::2— 모든 라우터FF02::1:FF00:0/104— 요청 노드 멀티캐스트 (ARP 대체)
IPv4 브로드캐스트에서는 모든 네트워크 인터페이스가 모든 브로드캐스트 프레임을 수신하고 스택 위로 올려 보낸다. OS가 패킷을 검사하고 관련이 있는지 판단한 다음 대부분 버린다. 불필요한 처리가 반복된다.
IPv6 멀티캐스트에서는 장치가 특정 그룹을 구독한다. 네트워크 인터페이스가 OS에 전달하기 전에 하드웨어 수준에서 무관한 트래픽을 걸러낸다. 불필요한 중단이 줄고, 자원 낭비도 없다.
멀티캐스트는 정밀하게 겨냥된 브로드캐스트다 — 원하든 원하지 않든 모두에게 보내는 비효율 없이 일대다 통신을 실현한다.
브로드캐스트가 필요한 이유
브로드캐스트 주소 지정은 네트워킹의 가장 근본적인 문제 중 하나를 해결한다: 누구를 찾아야 하는지 모를 때, 또는 아직 네트워크에 스스로 존재하지 않을 때 어떻게 통신하는가?
비효율적이다. 시끄럽다. 확장성도 없다. 하지만 절대적으로 필요하다 — 때로는 누군가를 찾는 유일한 방법이 모두에게 자신을 들리게 하는 것이기 때문이다.
브로드캐스트 주소 자주 묻는 질문
255.255.255.255와 192.168.1.255 같은 서브넷 브로드캐스트의 차이는 무엇인가요?
255.255.255.255(제한 브로드캐스트)는 "내 로컬 세그먼트의 모든 장치"를 의미하며 라우터를 절대 넘지 않는다. 192.168.1.255(디렉티드 브로드캐스트) 같은 서브넷 브로드캐스트는 특정 네트워크를 대상으로 하며 이론적으로는 해당 네트워크로 라우팅될 수 있다 — 하지만 보안상 라우터는 기본적으로 이를 비활성화한다.
브로드캐스트 주소로 ping을 보낼 수 있나요?
로컬 브로드캐스트 주소로는 ping을 보낼 수 있고, 세그먼트의 모든 장치가 이를 수신한다. 하지만 원격 네트워크의 브로드캐스트 주소로는 보낼 수 없다 — 라우터가 증폭 공격을 막기 위해 디렉티드 브로드캐스트를 차단하기 때문이다.
DHCP가 유니캐스트 대신 브로드캐스트를 쓰는 이유는 무엇인가요?
IP 주소를 요청하는 장치가 아직 IP 주소를 갖고 있지 않기 때문이다. 수신할 주소가 없으니 유니캐스트 트래픽을 받을 수 없다. 아직 네트워크에 존재하지 않을 때 통신하는 유일한 방법이 브로드캐스트다.
두 장치가 같은 IP 주소를 가지면 어떻게 되나요?
큰 혼란이 발생한다. 해당 IP로 향하는 패킷이 두 장치 중 어느 쪽에 도달할지 예측할 수 없다. 이것이 DHCP 클라이언트가 새로 할당받은 IP로 ARP 요청을 브로드캐스트하는 이유다 — 다른 장치가 응답하면, 주소를 확정하기 전에 충돌이 있음을 알 수 있다.
هل كانت هذه الصفحة مفيدة؟