## 1. 프레이밍 (Framing) 📦
데이터링크 계층에서는 데이터를 단순히 비트(0과 1)의 흐름으로 보지 않고, 의미 있는 덩어리인 **프레임(Frame)**으로 묶어서 다룹니다.
프레임 단위가 무엇인가요?
프레임은 네트워크 계층에서 받은 데이터(패킷)에 데이터링크 계층의 제어 정보를 앞뒤로 붙인 데이터 단위입니다. 택배 상자에 비유할 수 있습니다.
- 헤더 (Header): 상자 앞면에 붙는 '운송장' 같은 부분입니다. 보내는 사람과 받는 사람의 MAC 주소, 그리고 다른 제어 정보가 포함됩니다.
- 페이로드 (Payload): 실제 배송할 물건, 즉 **네트워크 계층으로부터 받은 데이터(IP 패킷)**가 들어갑니다.
- 트레일러 (Trailer): 상자를 봉인하는 '테이프' 같은 부분입니다. 주로 **오류 검출 코드(CRC)**가 포함되어 데이터가 안전하게 도착했는지 확인할 수 있게 해줍니다.
왜 프레임 단위로 묶나요?
- 데이터의 시작과 끝을 구분하기 위해: 물리 계층에서는 전기 신호가 쉴 새 없이 들어오기 때문에 어디서부터 어디까지가 하나의 데이터인지 구분하기 어렵습니다. 프레임이라는 약속된 형식을 사용함으로써, 수신 측은 데이터의 시작과 끝을 명확하게 인지할 수 있습니다.
- 전송 관리의 효율성: 큰 데이터를 한 번에 보내다가 중간에 오류가 나면 전체를 다시 보내야 합니다. 하지만 프레임 단위로 잘게 나누어 보내면, 오류가 발생한 특정 프레임만 다시 전송하면 되므로 훨씬 효율적입니다.
- 주소 및 제어 정보 추가: 각 프레임마다 헤더에 MAC 주소를 담아 바로 다음 목적지로 정확하게 전달할 수 있고, 트레일러에 오류 검출 코드를 넣어 데이터의 무결성을 검사할 수 있습니다.