💡 핵심 인사이트
OSI 7계층 중 2계층인 데이터 링크 계층(Data Link Layer)은 단순히 전기 신호(0과 1)만 날아다니는 물리 계층(1계층) 위에서, 데이터를 의미 있는 덩어리(프레임)로 자르고, 에러를 고치며, 흐름을 조절하여 "이웃한 두 장치 간의 안전하고 신뢰성 있는 1:1 통신"을 보장하는 우체국장 역할을 합니다.
Ⅰ. 1계층(물리)과 2계층(데이터 링크)의 차이
랜선(1계층)은 뇌가 없습니다. 컴퓨터가 0101을 쏘면 그냥 전기로 바꿔서 무식하게 흘려보냅니다.
수신 측 랜선은 전기가 들어오면 무조건 0101로 읽습니다. 하지만 어디서부터가 진짜 데이터 시작이고, 중간에 번개가 쳐서 0이 1로 깨졌는지는 전혀 알 길이 없습니다.
이를 해결하기 위해 2계층(데이터 링크)이 개입합니다. 전기를 쏘기 전에 데이터 앞뒤에 특수한 꼬리표를 붙이고, 에러 검출 코드를 달아 **'신뢰할 수 있는 튼튼한 다리(Link)'**를 만들어주는 것이 2계층의 본질입니다.
Ⅱ. 데이터 링크 계층의 4대 핵심 역할
2계층 스위치나 PC의 랜카드(NIC) 칩셋 안에서 벌어지는 4가지 핵심 기능입니다.
1. 프레이밍 (Framing) - 덩어리 짓기
- 무한히 쏟아지는
010101...비트 스트림을 무작정 받으면 컴퓨터는 해석할 수 없습니다. - 데이터를 1,500바이트 등의 적당한 크기의 박스(Frame)로 예쁘게 자르고, 박스의 머리(Header)와 꼬리(Trailer)를 달아 "여기서부터 시작이고 여기서 끝이다"라고 구분선을 그어주는 작업입니다.
2. 물리적 주소 지정 (MAC Address)
- 3계층(IP)이 최종 목적지 서울~부산 간의 논리적 주소라면, 2계층은 **"당장 내 랜선 옆에 꽂힌 저 장비의 이름이 뭐지?"**를 식별하는 물리적 주소(MAC 주소)를 프레임 헤더에 적어 넣습니다.
3. 오류 제어 (Error Control) - 검출과 재전송
- 프레임 꼬리(Trailer) 부분에 **FCS (Frame Check Sequence, 주로 CRC 알고리즘 사용)**라는 에러 검사 코드를 달아 보냅니다.
- 수신 측이 받아보고 계산식이 틀리면 "어? 오는 길에 번개 맞고 데이터 깨졌네!"라고 0.1초 만에 파악(검출)한 뒤, 그 프레임을 쿨하게 버려버리고 송신 측에 **"다시 보내!(ARQ)"**라고 요청합니다.
4. 흐름 제어 (Flow Control) - 속도 조절
- 송신 컴퓨터는 최신형이라 1초에 100개를 쏘는데, 수신 컴퓨터는 똥컴이라 1초에 10개밖에 처리를 못 한다면 버퍼가 터져서 데이터가 다 날아갑니다.
- 수신 측이 헐떡거리면 **"야, 나 꽉 찼어 천천히 좀 보내!"라고 송신 측의 발사 속도를 제어(Stop-and-Wait, Sliding Window 등)**하여 밸런스를 맞춥니다.
📢 섹션 요약 비유: 1계층이 물건을 집어던지는 **'컨베이어 벨트'**라면, 2계층은 그 벨트 위에서 쏟아지는 물건들을 적당한 크기의 **박스로 포장(프레이밍)**하고, 도착지에 송장(MAC 주소)을 붙인 뒤, 배송 중 깨진 물건이 없는지 **검수(오류 제어)**하며, 창고가 꽉 차면 벨트 속도를 늦추라고 **지시(흐름 제어)**하는 꼼꼼한 물류 반장입니다.