[protocol] PPP 5: 프레임

PPP는 HDLC와 동일한 프레임 포맷을 사용한다. 그러다보니 막상 PPP에서는 필요하지 않은 필드까지 포함된다. Address 필드와 Control 필드다. PPP와 HDLC 프레임의 차이는 PPP 프레임에서 캡슐화된 데이터의 프로토콜을 지정하기 위한 새 필드를 추가했다는 것이다.

PPP 프레임

아래의 PPP 프레임을 보자.
모든 PPP 프레임은 아래와 같은 포맷으로 구성되어있다.

– Flag (1 Byte) : PPP 프레임의 시작 지점을 나타낸다. 항상 ‘01111110’으로 고정된다.
Address (1 Byte) : HDLC에서 프레임 목적지 주소를 의미한다. 하지만 PPP는 두 장비간 연결이므로 의미 없는 필드다. 그래서 브로드캐스트 주소 ‘11111111’의 값으로 고정된다.
Control (1 Byte) : HDLC에서 여러 제어 목적에 사용되나, PPP에서는 ‘00000011’으로 고정된다.
Protocol (2 Byte) : 프레임 내 Information에 캡슐화된 데이터그램의 프로토콜을 식별한다. 아래에 좀 더 자세히 살펴보도록 하겠다.
Information (가변) : 데이터 또는 제어 정보를 포함한다.
Padding (가변) : PPP 프레임 크기를 맞추기 위해 더미 바이트를 추가할 수 있다.
FCS (2 or 4 Byte) : 전송 중 에러로부터 프레임을 보호하기 위한 방법이다. CRC checksum과 비슷하다.
Flag (1 Byte) : PPP 프레임의 끝 지점을 나타낸다. 항상 ‘01111110’으로 고정된다.

PPP Protocol 필드 값

PPP 프레임에서 Protocol 필드는 Information 필드에 캡슐화된 데이터그램의 프로토콜을 식별한다고 했다.

예를 들어, Information 필드에 데이터가 들어있다면, 이 Protocol 필드는 네트워크 계층 데이터그램 범위 내 값을 가리킬 것이다.
제어 정보가 들어있다면  PPP 프로토콜과 관련된 값을 가리킨다.
압축이나 암호화 같이 데이터를 수정한 프로토콜인 경우 데이터가 압축됐는지 암호화됐는지 나타내는 값을 포함한다.

PPP 표준은 첫 Protocol 1 Byte는 짝수, 두번째 Protocol 1 Byte는 홀수여야 한다.

이러한 Protocol 필드 값은 IANA에서 관리하며, 아래 사진을 참고하자. 이 밖의 자세한 프로토콜 필드 값은 IANA 참고.

출저: TCP/IP Guide P185. Common Protocols Carried in PPP Frames and Protocol Field Values
PPP 필드 압축

Address and Control Field Compression
앞서 Address 필드와 Control 필드는 PPP에서 필요 없는 필드라고 했다. 따지고 보면, 2 Byte를 계속 낭비하는 꼴이 되는건데.. 다행히 이러한 낭비를 막을 수 있다. LCP를 통해 초기 링크 수립하는 단계에서 ACFC 기능을 사용하는 것이다. (사실 압축이 아니고 필드 자체를 버리는거다.)
Flag 값인 0x7E(2진수 01111110) 다음에 0xFF03(2진수 11111111 00000011)가 아니라면 Address 필드와 Control 필드가 압축됐다고 보면 된다.

Protocol Field Compression
Protocol 필드의 첫 1 Byte 가 0일 경우 첫 1 Byte는 보내지 않는다. 그래서 첫 1 Byte는 짝수, 두번째 1 Byte는 홀수가 들어가야 된다고 한 것이다.
프로토콜 필드 처음 시작 1 Byte가 홀수면 첫번째 1 Byte가 압축됐다고 인식하기 때문이다.

답글 남기기

이메일 주소는 공개되지 않습니다.