💡 핵심 인사이트
프레이밍(Framing)은 물리 계층(랜선)에서 끝없이 쏟아져 들어오는 무한한 0과 1의 비트 스트림(Bit Stream) 흐름 속에서, "어디서부터가 데이터의 시작이고, 어디서 끝나는지"를 구별하기 위해 덩어리(박스) 단위로 자르고 앞뒤에 특별한 구분선(마커)을 달아주는 포장 기술입니다.
Ⅰ. 프레이밍이 왜 필요한가? (물리 계층의 한계)
우리가 100만 원이라는 돈을 보낸다고 가정합시다. 컴퓨터 내부에서는 이것이 11100010101... 처럼 0과 1의 끝없는 줄지어 옴으로 날아갑니다.
만약 수신 측 랜카드가 이 연속된 신호를 그냥 넋 놓고 받기만 한다면, 이 100만 개의 비트가 영화 파일 하나인지, 아니면 텍스트 파일 10개가 섞여 있는 건지 전혀 잘라낼(Parsing) 재간이 없습니다. 따라서 송신 측 2계층은 데이터를 적당한 크기의 박스(Frame)로 예쁘게 토막 내고, 그 박스 양끝에 "여기서부터 박스 1번 시작! 여기서 박스 1번 끝!"이라고 명확한 형광펜 칠을 해줘야 합니다. 이 작업이 프레이밍입니다.
Ⅱ. 프레이밍을 구현하는 4가지 대표 방식
"이게 박스의 끝부분이다"라는 것을 수신기에 알려주는 꼼수들입니다. 갈수록 진화합니다.
1. 시간 지연 (Time Gap) 방식
- 원리: 0과 1을 막 쏘다가, 갑자기 아무 전기도 안 쏘고 1초 동안 쉬어버립니다(침묵).
- 한계: 수신기는 "어? 1초 동안 신호가 안 오네? 그럼 방금 전까지 온 게 프레임 1개구나!"라고 인식합니다. 하지만 네트워크 노이즈 때문에 잠깐 신호가 끊기면 멀쩡한 데이터를 반으로 잘라버리는 치명적 오류가 나서 현재는 전혀 안 씁니다.
2. 바이트 카운트 (Byte Counting) 방식
- 원리: 프레임 헤더 맨 앞부분에 **"이번 박스는 총 50바이트짜리야"**라고 아예 전체 길이를 숫자로 적어 보냅니다.
- 한계: 수신기는 딱 50바이트만 읽고 "여기서 끝이네"라고 똑똑하게 자를 수 있습니다. 그런데 만약 전송 중에 낙뢰를 맞아 이 헤더의 '50'이라는 숫자가 '90'으로 깨져버리면? 수신기는 뒤에 오는 남의 프레임까지 90바이트를 싹 다 삼켜버리며 전체 통신이 영구적으로 꼬여버립니다. (다음 장 상세 설명)
3. 문자 삽입 (Character/Byte Stuffing) 방식
- 원리: 프레임의 맨 앞과 맨 뒤에
[STX(시작)]문자와[ETX(끝)]라는 아주 특수한 특수문자 플래그(Flag)를 앞뒤로 달아서 보냅니다. (구형 PPP에서 사용).
4. 비트 스터핑 (Bit Stuffing) 방식 ★현대의 대세
- 원리: 문자가 아니라 **
01111110이라는 매우 독특한 8비트짜리 특수 패턴(Flag)**을 프레임의 앞뒤에 무조건 붙입니다. (HDLC 프로토콜 등에서 사용). 문자에 얽매이지 않으므로 동영상, 압축 파일 등 모든 데이터에 유연하게 대응합니다.
📢 섹션 요약 비유: 프레이밍은 무한히 길게 뽑혀 나오는 **'가래떡 썰기'**입니다. 가래떡(비트 스트림)이 끊임없이 기계에서 나올 때, 포장 기계가 15cm 간격마다 **'형광색 테이프(시작과 끝을 알리는 플래그)'**를 감아주고 칼로 툭툭 끊어주어야만, 나중에 박스에 예쁘게 포장해서 배달(프레임 전송)할 수 있는 원리입니다.