1. 프레임(Frame)의 개념
프레임은 데이터 링크 계층에서 데이터를 전송할 때 사용하는 기본 단위예요. 네트워크에서는 무작정 데이터를 보내지 않고, 일정한 형식과 규칙에 맞춘 프레임 형태로 쪼개서 보내요.
📦 프레임 구성 요소
- 전송 데이터 (Payload)
- 체크섬(Checksum): 오류 검출을 위한 값
- 송·수신 호스트 주소
- 제어 코드 등
📌 프레임의 구분 방식
프레임 내부 정보를 어떻게 표현하느냐에 따라 두 가지 방식으로 나눌 수 있어요:
🔷 1-1. 문자 프레임 (Character Frame)
내용이 문자(텍스트) 기반으로 구성된 프레임이에요.
- 8비트 단위 (또는 ASCII 문자 코드)로 고정된 크기를 가짐
- 프레임 경계를 특정 제어 문자로 구분함 (예: 시작(DLE/STX), 끝(DLE/ETX))
문자 프레임의 구조
📌 문자 스터핑 (Character Stuffing)
프레임 내 제어 문자가 실제 데이터에 포함될 경우를 처리하기 위한 기법이에요.
- 제어 문자와 구분되는 특수 문자를 삽입(escape)하여 데이터와 구분
- 예: ESC + STX, ESC + ETX
문자 스터
🔷 1-2. 비트 프레임 (Bit Frame)
비트 단위로 제어되고 표현되는 프레임입니다.
- 프레임의 시작과 끝에 플래그(flag)라는 특수 비트 패턴을 사용
- 대표적인 플래그 패턴: 01111110
비트 프레임의 구조
📌 비트 스터핑 (Bit Stuffing)
데이터 중 플래그와 같은 패턴이 나올 경우를 방지하기 위해 사용됩니다.
- 데이터 중 1이 5번 연속되면 자동으로 0을 삽입하여 혼동 방지
- 수신자는 5개의 연속된 1 뒤에 오는 0을 삭제해 원래 데이터로 복원
비트 스터핑
2. 오류 검출 기법
네트워크에서 데이터가 잘못 전송되었는지를 판단하고 복구하는 과정이에요.
🔧 2-1. 오류 복구 방식
- 역방향 오류 복구: 오류 발생 시 송신자가 재전송 (ACK/NAK 사용)
- 네트워크에서는 재전송 방식이 일반적으로 사용됨
🔹 2-2. 기본 오류 검출 방법
방법 | 설명 |
패리티 비트 (Parity Bit) | 전송 데이터에 1비트 추가하여 1의 개수를 짝수/홀수로 맞춤 |
블록 검사 (Block Check) | 데이터를 여러 블록으로 나누어 각 블록마다 오류 검출 수행 |
🔷 2-3. 다항 코드 (Polynomial Code, CRC)
가장 널리 쓰이는 오류 검출 방식입니다.
전송 데이터에 특정 규칙(수학적 다항식)을 적용해 오류 검출용 코드를 생성해요.
💡 CRC(Cyclic Redundancy Check)의 원리
- 전송할 데이터를 생성 다항식으로 나눠 나머지를 부가 정보로 전송
- 수신자는 같은 방식으로 다시 계산하여 오류 여부 판단
🧮 CRC에서 사용되는 생성 다항식
명칭 | 설명 |
CRC-12 | 12비트 CRC, 간단한 환경에 사용 |
CRC-16 | 16비트 CRC, 고속 통신 등에 적합 |
CRC-CCITT | ITU-T 국제 표준, 신뢰성 높은 환경에 사용 |
📝 정리 요약
- 프레임(Frame)은 데이터 링크 계층에서 데이터를 주고받는 전송 단위이며, 문자 프레임과 비트 프레임으로 나뉜다.
- 문자 프레임은 ASCII 문자 기반이며, 문자 스터핑을 통해 제어 문자와 데이터를 구분한다.
- 비트 프레임은 01111110 같은 비트 패턴(플래그)으로 프레임 구분하고, 비트 스터핑으로 데이터와의 구분을 해결한다.
- 오류 검출은 패리티 비트, 블록 검사, CRC 방식으로 수행되며, 특히 CRC는 생성 다항식을 활용해 높은 정확도의 오류 검출이 가능하다.
- 대표적인 CRC 표준으로는 CRC-12, CRC-16, CRC-CCITT 등이 있다.