점대점 프로토콜 (Point-to-Point Protocol, PPP)은 OSI 7계층 모델에서 데이터 링크 계층(2계층)에 속하는 통신 프로토콜로, 두 개의 종단점(예: 라우터, 컴퓨터) 간에 직접적인 연결(점대점 링크)을 설정하고 유지하며, 데이터를 효율적으로 전송하기 위해 사용된다. 이 프로토콜은 특히 직렬 연결을 통해 데이터를 전송할 때 광범위하게 사용되었으며, 현대에는 PPPoE(PPP over Ethernet) 형태로 광대역 인터넷 접속에 필수적인 역할을 하고 있다.
개요
PPP는 기존의 SLIP(Serial Line Internet Protocol)의 한계를 극복하기 위해 개발되었다. SLIP이 단순한 IP 데이터그램 캡슐화 기능만을 제공했던 반면, PPP는 다음과 같은 다양한 기능을 제공하여 더 강력하고 유연한 연결을 가능하게 한다.
- 데이터 캡슐화: 다양한 네트워크 계층 프로토콜(IP, IPX 등)의 패킷을 PPP 프레임 내에 캡슐화하여 전송할 수 있다.
- 링크 제어 프로토콜 (LCP): 물리적 링크의 설정, 구성, 테스트 및 종료를 담당한다.
- 네트워크 제어 프로토콜 (NCP): LCP에 의해 설정된 링크를 통해 하나 이상의 네트워크 계층 프로토콜을 설정하고 관리한다. (예: IPCP - IP Control Protocol)
- 인증: PAP(Password Authentication Protocol) 또는 CHAP(Challenge-Handshake Authentication Protocol)와 같은 인증 메커니즘을 통해 연결하는 개체를 인증할 수 있다.
- 오류 감지: 전송 중 발생할 수 있는 오류를 감지하는 메커니즘을 제공한다.
- 동적 IP 주소 할당: 연결 시 클라이언트에게 동적으로 IP 주소를 할당할 수 있게 지원한다.
구성 요소
PPP는 크게 세 가지 주요 구성 요소로 이루어져 있다.
-
데이터 캡슐화 (Data Encapsulation): 데이터를 PPP 프레임 형식으로 감싸서 전송하는 방식이다. 이 프레임은 플래그(Flag), 주소(Address), 제어(Control), 프로토콜(Protocol), 데이터(Data), FCS(Frame Check Sequence) 필드로 구성된다. 프로토콜 필드는 페이로드(데이터 필드)에 어떤 네트워크 계층 프로토콜(예: IP, IPX)의 데이터가 들어있는지를 나타낸다.
-
링크 제어 프로토콜 (Link Control Protocol, LCP): PPP 링크의 설정, 관리 및 종료를 담당한다. LCP의 주요 기능은 다음과 같다.
- 링크 설정: 두 피어(Peer) 간에 연결을 설정하고, 통신 옵션(예: 최대 전송 단위(MTU), 인증 프로토콜)을 협상한다.
- 링크 유지: 연결의 품질을 테스트하고, 루프백(Loopback) 감지 등의 기능을 수행한다.
- 링크 종료: 연결을 정상적으로 해제한다.
-
네트워크 제어 프로토콜 (Network Control Protocol, NCP): LCP에 의해 설정된 물리적 링크를 통해 특정 네트워크 계층 프로토콜(예: IP)을 설정하고 관리하는 역할을 한다. 가장 일반적인 NCP는 IPCP(IP Control Protocol)로, IP 주소 할당 및 IP 헤더 압축과 같은 IP 관련 파라미터들을 협상하고 구성한다. 다른 네트워크 프로토콜(예: IPX, AppleTalk)을 위한 별도의 NCP(IPXCP, ATalkCP 등)도 존재한다.
작동 원리
PPP 연결은 다음과 같은 단계로 진행된다.
- 링크 설정 단계 (Link Establishment Phase): LCP를 사용하여 물리적 링크를 설정하고, 양단 피어 간에 기본적인 통신 옵션(예: MTU)을 협상한다. 이 단계에서 링크의 품질을 테스트할 수도 있다.
- 인증 단계 (Authentication Phase): (선택 사항) LCP 협상 시 인증 프로토콜이 선택되었다면, PAP 또는 CHAP와 같은 프로토콜을 사용하여 연결을 시도하는 피어의 신원을 확인한다. 인증에 실패하면 연결이 종료된다.
- 네트워크 계층 프로토콜 설정 단계 (Network-Layer Protocol Phase): 인증이 성공하면, 해당 네트워크 계층 프로토콜에 맞는 NCP(예: IPCP)를 사용하여 IP 주소 할당, DNS 서버 주소 제공 등 네트워크 계층 관련 파라미터를 구성한다.
- 데이터 전송 단계 (Data Transfer Phase): 모든 설정이 완료되면, 설정된 링크를 통해 실제 데이터 패킷이 전송된다.
- 링크 종료 단계 (Link Termination Phase): 통신이 더 이상 필요하지 않거나 오류가 발생할 경우, LCP를 통해 링크를 정상적으로 종료한다.
역사 및 중요성
PPP는 1990년대 초 SLIP의 단점을 보완하기 위해 IETF(Internet Engineering Task Force)에 의해 개발되었다. SLIP은 IP 패킷만 지원하고, 오류 감지 기능이 없었으며, 인증 메커니즘이 부재했다. PPP는 이러한 문제들을 해결하며 다이얼업 모뎀을 통한 인터넷 접속의 표준 프로토콜로 빠르게 자리 잡았다.
2000년대 이후 광대역 인터넷 서비스가 보급되면서, PPP는 PPPoE(PPP over Ethernet) 형태로 발전하여 ADSL, 케이블 모뎀 등의 환경에서 가입자와 인터넷 서비스 제공자(ISP) 간의 연결을 확립하는 데 사용되고 있다. PPPoE는 이더넷 기반 네트워크에서 PPP의 강력한 인증 및 주소 할당 기능을 활용할 수 있게 한다. 또한 VPN(가상 사설망) 구현을 위한 L2TP(Layer 2 Tunneling Protocol)의 기반 프로토콜로도 활용될 수 있다.
관련 기술
- PPPoE (PPP over Ethernet): 이더넷 환경에서 PPP의 기능을 활용하기 위해 개발된 프로토콜이다. PPP 프레임을 이더넷 프레임 안에 캡슐화하여, 이더넷 기반의 광대역 인터넷 서비스(예: ADSL, VDSL)에서 사용자 인증 및 IP 주소 할당을 가능하게 한다.
- L2TP (Layer 2 Tunneling Protocol): PPP 세션을 다른 네트워크(주로 UDP/IP)를 통해 터널링하는 데 사용되는 프로토콜이다. 주로 VPN 구현에 활용되어 원격 사용자가 사설 네트워크에 안전하게 접속할 수 있도록 한다.