1계층인 물리 계층이 0과 1의 디지털 데이터를 전기 신호나 빛으로 변환하여 케이블을 통해 전달하는 '도로'를 까는 역할이었다면, 2계층인 데이터 링크 계층(Data Link Layer)은 그 도로 위를 달리는 자동차들의 교통 규칙을 만들고 질서를 유지하는 '교통경찰'과 같다.
물리 계층은 오직 신호를 보낼 뿐, 그 신호가 올바르게 전달되었는지, 누가 누구에게 보내는 것인지에 대해서는 전혀 알지 못한다. 이로 인해 전송 중 노이즈가 섞이거나 데이터가 깨지는 등의 오류가 발생할 수 있다. 데이터 링크 계층은 바로 이 지점에서 역할을 시작한다. 동일한 네트워크(로컬 네트워크) 내에 있는 장치들 간에 데이터를 안전하고 신뢰성 있게 주고받을 수 있도록 보장하는 것이 이 계층의 핵심 임무이다.
즉, 데이터 링크 계층은 물리 계층의 불안정한 비트 스트림을 의미 있는 데이터 덩어리인 프레임(Frame)으로 만들고, 물리적인 주소(MAC 주소)를 부여하여 정확한 목적지로 전달하며, 오류를 감지하고 제어하는 등 통신의 기본 질서를 확립한다.
데이터 링크 계층은 상위 계층인 네트워크 계층이 오류 없는 물리적 회선을 사용하는 것처럼 보이도록 만드는 것을 목표로 하며, 다음 네 가지 핵심 기능을 수행한다.
프레이밍 (Framing): 네트워크 계층에서 받은 데이터(패킷)에 헤더(Header)와 트레일러(Trailer)를 붙여 '프레임'이라는 전송 단위를 만든다. 이를 통해 데이터의 시작과 끝을 명확히 구분하고 관리를 용이하게 한다.
물리적 주소 지정 (Physical Addressing): 네트워크 인터페이스 카드(NIC)에 부여된 고유한 하드웨어 주소인 MAC 주소(Media Access Control Address)를 사용한다. 프레임 헤더에 출발지와 목적지 MAC 주소를 명시하여 데이터가 정확한 장치로 전달되도록 한다.
NIC(Network Interface Card)는 네트워크 인터페이스 카드를 의미한다. 흔히 랜 카드(LAN Card)라고도 부른다. 컴퓨터를 인터넷과 같은 네트워크에 물리적으로 연결해주는 핵심 하드웨어 부품이다. 모든 NIC에는 전 세계에서 유일하게 식별 가능한 MAC 주소가 출고 시에 할당되며, 데이터 링크 계층은 이 주소를 사용하여 통신할 장치를 정확히 구분한다.
오류 제어 (Error Control): 전송 중 노이즈 등으로 인해 발생할 수 있는 데이터 손상이나 유실을 감지하고 처리한다. 프레임 트레일러의 FCS(Frame Check Sequence) 값을 사용하여 오류를 검출하고, 오류가 발견된 프레임은 폐기하는 방식으로 신뢰성을 확보한다.
흐름 제어 (Flow Control): 데이터를 보내는 측과 받는 측의 처리 속도 차이를 조절하는 기능이다. 수신 측의 처리 능력을 초과하여 데이터가 유실되는 것을 방지하기 위해 전송량을 조절한다.
IEEE 802 표준은 데이터 링크 계층을 두 개의 하위 계층(Sublayer)으로 나누어 역할을 명확히 한다.

LLC (Logical Link Control) 부계층: 데이터 링크 계층의 상위 부분으로, 네트워크 계층과 MAC 부계층 사이의 인터페이스 역할을 한다. 다양한 하위 프로토콜(이더넷, Wi-Fi 등)의 차이점을 숨겨 네트워크 계층이 일관된 방식으로 통신하도록 지원하며, 흐름 제어와 오류 제어 기능을 수행한다.
MAC (Media Access Control) 부계층: 데이터 링크 계층의 하위 부분으로, 물리 계층과 직접 연결된다. 물리 매체에 대한 접근 제어 규칙을 다루고, MAC 주소를 사용하여 데이터를 프레임으로 만드는 물리적 주소 지정을 담당한다.
데이터 링크 계층의 가장 대표적인 프로토콜은 단연 이더넷(Ethernet)이다. 오늘날 사용하는 대부분의 유선 LAN 환경은 이더넷 기술을 기반으로 한다.
초기 이더넷은 하나의 통신 회선을 여러 장치가 공유하는 환경을 기반으로 했다. 이때 두 개 이상의 장치가 동시에 데이터를 전송하면 발생하는 충돌(Collision)을 해결하기 위해 CSMA/CD(Carrier Sense Multiple Access with Collision Detection) 방식을 사용한다.
Carrier Sense (채널 감지): 데이터를 보내기 전에, 현재 통신 채널을 다른 장치가 사용하고 있는지 먼저 확인한다.
Multiple Access (다중 접근): 여러 장치가 하나의 통신 채널을 공유하여 사용할 수 있음을 의미한다.
Collision Detection (충돌 감지): 데이터를 전송하는 도중에 충돌이 발생했는지 감지한다. 충돌이 감지되면 즉시 전송을 중단하고, 임의의 시간 동안 대기한 후 다시 전송을 시도한다.
이 방식은 반이중(Half-duplex) 통신 환경에서 필요하지만, 현대의 스위치 기반 전이중(Full-duplex) 환경에서는 충돌 자체가 발생하지 않으므로 CSMA/CD가 동작하지 않는다.
이더넷은 데이터를 프레임(Frame)이라는 단위로 주고받으며, 그 구조는 다음과 같다.

[출처: https://velog.io/@moonblue/%EC%9D%B4%EB%8D%94%EB%84%B7-%ED%94%84%EB%A0%88%EC%9E%84-Ethernet-Frame]
Preamble (7 bytes) & SFD (1 byte): 프레임의 시작을 알리고, 수신 측에서 비트 동기화를 맞추도록 돕는 신호이다.
Destination MAC Address (6 bytes): 프레임을 수신할 목적지 장치의 MAC 주소이다.
Source MAC Address (6 bytes): 프레임을 송신하는 출발지 장치의 MAC 주소이다.
EtherType / Length (2 bytes): 필드 값이 1536 이상이면 상위 계층 프로토콜의 종류(Type, 예: 0x0800은 IPv4)를, 1500 이하이면 데이터의 길이(Length)를 나타낸다.
Data / Payload (46~1500 bytes): 상위 계층에서 전달받은 실제 데이터(IP 패킷 등)가 담기는 부분이다. 최소 46바이트보다 작으면 패딩(Padding) 과정이 추가된다.
FCS (Frame Check Sequence, 4 bytes): 전송 오류를 검출하기 위한 값이다. CRC(Cyclic Redundancy Check) 알고리즘으로 계산되며, 수신 측은 이 값을 비교하여 프레임의 무결성을 확인한다.
데이터 링크 계층에서 동작하는 가장 중요한 장비는 스위치(Switch)이다. 스위치는 1계층 장비인 허브(Hub)의 비효율성을 극복하고 현대 LAN 환경의 핵심으로 자리 잡았다.
허브(1계층 장비)의 문제점: 들어온 신호를 모든 포트로 무조건 복사하여 불필요한 트래픽과 충돌(Collision)을 일으켜 네트워크 성능을 저하시킨다.
스위치(2계층 장비)의 해결책: MAC 주소를 학습하고 이해하여, 데이터를 특정 목적지에만 선별적으로 전달함으로써 불필요한 트래픽과 충돌을 원천적으로 차단한다.
Learning (학습): 스위치는 포트로 들어온 프레임의 출발지 MAC 주소를 보고, '해당 MAC 주소는 이 포트에 연결되어 있다'는 정보를 자신의 MAC 주소 테이블에 자동으로 기록한다.
Flooding (플러딩): MAC 주소 테이블에 없는 목적지 MAC 주소를 가진 프레임이 들어오면, 스위치는 목적지를 모르기 때문에 프레임이 들어온 포트를 제외한 모든 포트로 프레임을 복사하여 전달한다.
Forwarding (포워딩): 목적지 MAC 주소가 MAC 주소 테이블에 존재하면, 해당 MAC 주소와 연결된 특정 포트로만 프레임을 전달한다. 이 과정을 통해 네트워크 효율이 극대화된다.
Filtering (필터링): 포워딩 과정에서 목적지 포트를 제외한 나머지 포트로는 프레임을 보내지 않는 것을 의미한다.
스위치의 동작을 이해하기 위해서는 두 가지 '도메인' 개념이 중요하다.
충돌 도메인 (Collision Domain): 네트워크에서 데이터 충돌이 발생할 수 있는 범위이다. 허브는 모든 포트가 하나의 충돌 도메인에 속하지만, 스위치는 각 포트별로 충돌 도메인을 분리한다. 이 덕분에 충돌이 원천적으로 발생하지 않으며, 전이중(Full-duplex) 통신이 가능해진다.
브로드캐스트 도메인 (Broadcast Domain): 브로드캐스트 프레임이 전달되는 범위이다. 스위치는 브로드캐스트 프레임을 모든 포트로 플러딩하므로, 하나의 스위치는 하나의 거대한 브로드캐스트 도메인을 형성한다. 이 브로드캐스트 도메인을 나누는 역할은 3계층 장비인 라우터(Router)가 담당한다.
| 장비 | 역할 | 충돌 도메인 분리 | 브로드캐스트 도메인 분리 |
|---|---|---|---|
| 허브 (Hub) | 신호 증폭 및 분배 | X | X |
| 스위치 (Switch) | MAC 주소 기반 포워딩 | O | X |
| 라우터 (Router) | IP 주소 기반 경로 설정 | O | O |