티스토리 뷰

728x90

데이터 링크 계층에서 전송데이터를 프레임이라는 작은 단위로 나누어 처리한다.

이때, 체크섬, 송수신 호스트 주소, 제어코드 같은 정보를 포함하게 됨.

 

체크섬 > 상위계층으로 부터 전송 받은 데이터에 오류를 확인하기 위한 것.

 

프레임의 종류에는 내부 정보를 표현하는 방식 차이에 따라  1.문자 프레임, 2.비트 프레임으로 구분된다.

 

 

1. 문자 프레임

문자 프레임은, 프레임의 내용이 문자로 구성되어 있어 '문자 데이터'를 전송할 때 사용한다.

문자 프레임은 8비트단위 or ACSII 문자코드의 고정 크기로 동작한다.

 

하나의 프레임을 구분하기 위해, 데이터 양 끝에 ASCII코드 특수 문자를 이용하여 사용한다.

위 사진처럼 데이터 앞에서는  DLE,STX /  뒤에는 DLE/ETX를 추가하여 다른 프레임과 구분 할 수 있도록 한다.

DATA에는 프로토콜에서 정의한 제어 정보/전송 데이터가 들어갈 수 있다.


문자 프레임 형식의 문제점이 존재하는데,

DATA부분에 문자 'DEL' , 'ETX'가 포함 될 경우이다. 이럴 경우 한 프레임의 끝이 어디인지 판단이 모호해진다.

이런 경우 '문자 스터핑' 기법을 사용한다고 한다. 문자 스터핑 기법을 사용하면, 강제로 DATA안에 'DEL' 문자에 'DLE'을 강제로 추가하는 작업을 거쳐 'DLE'이 특수문자로 인식되지 않게 만들고, 수신측에서 두 개의 'DEL'이 연속으로 나오면 'DEL'을 하나 지워 데이터를 읽는다.

DEL삽입
수신측 처리

2. 비트 프레임

비트 프레임 방식은 문자 단위를 없애고, 임의의 비트 패턴 데이터를 전송 할 수 있다. 프레임의 시작과 끝에 플래그(Flag)라는 특수 정의된 패턴(01111110)를 사용하여 데이터를 구분한다.

데이터 앞 뒤로 플래그를 추가해주면, 수신 호스트에서 이 플래그를 제거해 전송 데이터와 제어 정보를 상위 계층에 전달한다.

 

비트 프레임도 문자 프레임처럼 특수 패턴이 DATA에 시작/끝에 포함되어 있으면 모호해진다는 문제점이 동일하게 존재한다. 

 

그래서 비트 프레임에서는 비트 스터핑 기법을 사용하여 문제점을 해결한다.

Flag형식을 보면 {0}{1x6}{0} 으로 0사이에 1이 6개 들어가는 형태로 구성된다.

이러한 형식의 특징을 사용하여 1의 패턴이 연속 5번 발생하면 강제로 0을 추가하여 Flag와 겹치는 것을 방지한다. 

전달 받은 수신 호스트에서 추가된 0을 제거하여 원래 데이터를 상위 계층에 전달해준다.

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함