테마
물리 계층과 데이터 링크 계층 2
물리 계층과 데이터 링크 계층에서 본 프레임(frame, 같은 네트워크 안에서 주고받는 데이터 묶음)과 MAC 주소(Media Access Control address, 매체 접근 제어 주소)가 같은 네트워크 안에서 실제로 어떻게 전달되는지 이어서 다룬다. 스위치(switch)는 어느 장비가 자기의 어느 단자, 즉 포트(port) 뒤에 있는지 스스로 배워 그쪽으로만 프레임을 넘긴다. 라우터(router)는 모든 장비에게 한꺼번에 보내는 브로드캐스트(broadcast)가 닿는 범위를 나눈다. 목적지의 MAC 주소를 모를 때는 ARP(Address Resolution Protocol, 주소 결정 프로토콜)로 IP(Internet Protocol, 인터넷 프로토콜) 주소에 맞는 MAC 주소를 알아낸다.
허브와 스위치
스위치는 데이터 링크 계층(data link layer) 장비로, 어떤 MAC 주소가 어느 포트 뒤에 있는지를 MAC 주소 테이블(MAC address table)에 스스로 채워 가며 쓴다.
- 프레임이 들어오면 출발지 MAC 주소와 들어온 포트를 짝지어 표에 적는다(학습).
- 목적지 MAC 주소가 표에 있으면 그 포트로만 내보낸다.
- 표에 없는 주소이거나 브로드캐스트면, 들어온 포트를 뺀 모든 포트로 내보낸다. 이를 플러딩(flooding)이라고 한다.
허브(hub)는 전기 신호를 그대로 되풀이해 내보낼 뿐 주소를 읽지 않는 물리 계층(physical layer) 장비다. 그래서 허브에 물린 기기들은 선 하나를 나눠 쓰는 것과 같다. 두 기기가 동시에 보내면 신호가 섞여 둘 다 깨지는 충돌(collision)이 생긴다. 충돌이 서로 영향을 미치는 범위를 충돌 도메인(collision domain)이라고 한다. 허브는 연결된 전체가 하나의 충돌 도메인이지만, 스위치는 포트마다 충돌 도메인을 따로 나눈다.
통신 방향으로 보면 두 방식이 있다. 반이중(half-duplex)은 한쪽이 보내는 동안 다른 쪽은 받기만 하는 방식이고, 선을 나눠 쓰는 허브 환경이 이렇게 동작한다. 전이중(full-duplex)은 보내기와 받기를 동시에 하는 방식이다. 스위치 포트와 기기를 전이중으로 이으면 보내는 선과 받는 선이 따로 있어, 양 끝이 동시에 보내도 충돌 자체가 생기지 않는다.
| 기준 | 허브 | 스위치 |
|---|---|---|
| 계층 | 물리 | 데이터 링크 |
| 전달 방식 | 모든 포트로 복사 | 목적지 포트로만 |
| MAC 주소 | 보지 않음 | 학습해서 표로 관리 |
| 충돌 도메인 | 전체가 하나 | 포트마다 따로 |
| 통신 방향 | 반이중 | 전이중 가능 |
브로드캐스트 도메인
스위치는 브로드캐스트 프레임을 모든 포트로 퍼뜨리므로, 여러 대를 이어도 브로드캐스트는 연결된 모든 장비에 닿는다. 브로드캐스트가 닿는 이 범위를 브로드캐스트 도메인(broadcast domain)이라고 하며, 흔히 말하는 "같은 네트워크"가 바로 이 범위다.
브로드캐스트 도메인을 나누는 장비는 라우터다. 라우터는 브로드캐스트를 다른 네트워크로 넘기지 않는다. 범위가 너무 크면 모든 장비가 자기와 상관없는 브로드캐스트까지 받아 처리해야 하므로, 큰 네트워크는 라우터로 나누거나 스위치 하나를 논리적으로 여러 네트워크로 가르는 VLAN(Virtual LAN, 가상 LAN)으로 나눈다. VLAN이 다르면 같은 스위치에 꽂혀 있어도 서로의 브로드캐스트를 받지 않는다.
ARP: IP 주소로 MAC 주소 찾기
프로그램은 목적지를 IP 주소로 알려 주지만, 이더넷(Ethernet) 프레임을 만들려면 목적지 MAC 주소가 필요하다. ARP는 같은 네트워크 안에서 어떤 IP 주소를 가진 장비의 MAC 주소를 알아내는 프로토콜(protocol)이다.
다이어그램 로딩…
- A는 "이 IP 주소를 가진 장비는 MAC 주소를 알려 달라"는 ARP 요청을 목적지 MAC 주소
FF:FF:FF:FF:FF:FF로 브로드캐스트한다. 모든 비트가 1인 이 주소는 브로드캐스트 전용 주소다. 요청에는 A 자신의 IP 주소와 MAC 주소도 들어 있다. - 같은 네트워크의 모든 장비가 요청을 받지만, 그 IP 주소의 주인인 B만 응답한다.
- B는 요청에서 이미 A의 MAC 주소를 알았으므로 응답을 A에게만 보낸다. 한 대상에게만 보내는 이 방식을 유니캐스트(unicast)라고 한다.
- A는 알아낸 IP 주소와 MAC 주소의 짝을 ARP 캐시(cache)에 저장해 한동안 다시 묻지 않는다. 항목은 일정 시간이 지나면 지워지므로 장비가 바뀌어도 오래된 짝을 계속 쓰지 않는다.
다른 네트워크로 보낼 때
ARP 요청은 브로드캐스트라서 라우터를 넘어가지 못한다. 그래서 목적지가 다른 네트워크에 있으면 A는 목적지 대신 자기 네트워크 밖으로 나가는 패킷(packet)을 받아 줄 라우터, 즉 기본 게이트웨이(default gateway)의 MAC 주소를 ARP로 찾아 프레임을 그쪽으로 보낸다.
이때 프레임의 목적지 MAC 주소는 게이트웨이의 것이지만, 안에 든 패킷의 목적지 IP 주소는 최종 목적지 그대로다. 목적지가 같은 네트워크인지는 서브넷 마스크(subnet mask)로 가려내며, 그 계산은 IP와 라우팅에서 다룬다.
면접 포인트
- "허브와 스위치의 차이는?" → 허브는 물리 계층, 모든 포트로 복사, 전체가 한 충돌 도메인. 스위치는 데이터 링크 계층, MAC 주소 학습, 목적지 포트로만 전달, 포트마다 충돌 도메인.
- "ARP는 어떻게 동작하나요?" → 요청은 브로드캐스트, 응답은 유니캐스트, 결과는 ARP 캐시에 저장.
- "다른 네트워크의 서버로 보낼 때 ARP로 누구의 MAC 주소를 찾나요?" → 기본 게이트웨이. 목적지 IP 주소는 그대로.
- 스위치가 브로드캐스트 도메인을 나눈다고 하면 틀린다. 스위치는 충돌 도메인을, 라우터(와 VLAN)는 브로드캐스트 도메인을 나눈다.
