포인트 투 포인트 프로토콜

Point-to-Point Protocol

컴퓨터 네트워킹에서 PPP(Point-to-Point Protocol)는 호스트나 그 사이의 다른 네트워킹 없이 직접 두 라우터 간의 데이터 링크 계층(레이어 2) 통신 프로토콜입니다.연결 인증, 전송 암호화 [1]데이터 압축을 제공할 수 있습니다.

PPP는 시리얼 케이블, 전화 회선, 트렁크 회선, 휴대전화, 전용 무선 링크, ISDN, SONET 등의 광섬유링크다양한 유형의 물리 네트워크에서 사용됩니다.IP 패킷은 전송된 프레임의 시작점과 끝을 식별할 수 있는 데이터 링크 프로토콜이 없으면 모뎀 회선을 통해 자체 전송할 수 없기 때문에 Internet Service Provider(ISP; 인터넷서비스 공급자)는 인터넷에 대한 고객 다이얼업액세스에 PPP를 사용하고 있습니다.

PPP의 파생상품 Point-to-Point Protocol over Ethernet(PPPoE)과 Point-to-Point Protocol over ATM(PPPoA)은 ISP가 고객과의 Digital Subscriber Line(DSL; 디지털 가입자 회선) 인터넷 서비스 연결을 확립하기 위해 가장 일반적으로 사용됩니다.

묘사

PPP는 일반적으로 동기 및 비동기 회선을 통한 연결을 위한 데이터 링크 계층 프로토콜로 사용되며, 이 프로토콜은 오래된 직렬 회선 인터넷 프로토콜(SLIP) 및 전화 회사의 필수 표준(X.25 프로토콜 스위트의 Link Access Protocol, Balanced(LAPB) 등)을 대체했습니다.PPP의 유일한 요건은 제공된 회선이 듀플렉스여야 한다는 것입니다.PPP는 Internet Protocol(IP), TRIL, Novell의 IPX(Internetwork Packet Exchange), NBF, DECnet 및 AppleTalk 등 다양네트워크 계층 프로토콜과 함께 작동하도록 설계되었습니다.SLIP와 마찬가지로 모뎀을 통한 전화 회선을 통한 완전한 인터넷 접속입니다.SLIP보다 [2]신뢰성이 높은 것은 인터넷 패킷이 정상적으로 도착하는지 확인하기 위해 이중으로 체크하기 때문입니다.파손된 패킷을 재발송합니다.

PPP는 원래 HDLC 사양보다 다소 뒤떨어진 설계로 되어 있습니다.PPP의 설계자들은 그 당시까지만 해도 독점적인 데이터 링크 프로토콜에서만 볼 수 있었던 많은 추가 기능들을 포함했다.PPP는 RFC 1661에 규정되어 있습니다.

RFC 2516에서는 DSL과 함께 사용되는 PPP over Ethernet(PPPoE)을 전송하기 위한 방법으로서 Point-to-Point Protocol over ATM(PPPoA)을 설명하고 있으며, RFC 2364에서는 PPP over ATM 적응 레이어 5A를 전송하기 위한 방법으로서 PPPoA를 설명하고 있습니다.

PPP, PPPoEPPPoA는 WAN 회선에서 널리 사용됩니다.

PPP는 3개의 [2]컴포넌트를 가진 계층형 프로토콜입니다.

  1. 지정된 물리 레이어를 통해 데이터그램을 전송하기 위해 사용되는 캡슐화 컴포넌트.
  2. Link Control Protocol(LCP)은 링크의 확립, 설정 및 테스트와 기능의 설정, 옵션 및 사용의 네고시에이트를 실시합니다.
  3. 네트워크 레이어의 옵션 설정 파라미터 및 패실리티 네고시에이션에 사용되는1개 또는 복수의 Network Control Protocol(NCP)입니다.PPP에 의해 지원되는 상위 계층 프로토콜마다 1개의 NCP가 있습니다.

자동 자기 설정

LCP는 접속을 정상적으로 시작 및 종료하고 호스트가 접속 옵션을 네고시에이트할 수 있도록 합니다.PPP의 필수 부품이며 동일한 표준 사양으로 정의되어 있습니다.LCP 에서는, 각 엔드의 인터페이스(데이터그램사이즈, 이스케이프 문자, 매직 번호의 설정등)를 자동적으로 설정해, 옵션의 인증을 선택할 수 있습니다.LCP 프로토콜은 PPP(PPP 프로토콜 번호 0xC021) 위에서 실행되므로 LCP가 이를 설정하기 전에 기본 PPP 연결을 확립해야 합니다.

RFC 1994 에서는, ISP와의 다이얼 업 접속 확립에 최적인 Challenge-Handshake Authentication Protocol(CHAP)에 대해 설명하고 있습니다.Password Authentication Protocol(PAP)은 권장되지 않지만 여전히 사용될 수 있습니다.

PPP를 통한 인증의 또 다른 옵션은 RFC 2284에 기재되어 있는Extensible Authentication Protocol(EAP)입니다.

링크가 확립되면 추가 네트워크(레이어 3) 설정이 이루어질 수 있습니다.Internetwork Packet Exchange Control Protocol(IPXCP)과 AppleTalk Control Protocol(ATCP)이 한때 인기를 [citation needed]끌었지만 가장 일반적으로는 IPCP(Internet Protocol Control Protocol)가 사용됩니다.IPv6CP(Internet Protocol Version 6 Control Protocol)는 으로 IPv4가 주요 레이어 3 프로토콜로 대체될 때 더 많이 사용될 것입니다.

다중 네트워크 계층 프로토콜

PPP 아키텍처
아이피
LCP CHAP PAP EAP IPCP
PPP 캡슐화
HDLC와 같은 플레이밍 PPPoE PPPoA
RS-232 POS 이더넷 현금 자동 입출금기
SONET/SDH

PPP는 여러 네트워크 계층 프로토콜이 동일한 통신 링크에서 작동하도록 허용합니다.사용되는 모든 네트워크 계층 프로토콜에 대해 여러 네트워크 계층 프로토콜에 대한 옵션을 캡슐화하고 협상하기 위해 별도의 네트워크 제어 프로토콜(NCP)이 제공됩니다.접속이 확립된 후에 네트워크층 정보(예를 들어 네트워크주소나 압축 옵션)를 네고시에이트 합니다.

예를 들어 IP는 IPCP를 사용하고 Internetwork Packet Exchange(IPX)는 Novell IPX Control Protocol(IPX/SPX)을 사용합니다.NCP에는 PPP 접속이 캡슐화하는 네트워크층 프로토콜 유형을 나타내는 표준화된 코드가 포함된 필드가 포함됩니다.

PPP에서는 다음 NCP를 사용할 수 있습니다.

  • IP용 IPCP, 프로토콜 코드 번호 0x8021, RFC 1332
  • 다양한 OSI 네트워크 계층 프로토콜을 위한 OSI 네트워크 계층 제어 프로토콜(OSINLCP), 프로토콜 코드 번호 0x8023, RFC 1377
  • AppleTalk용 AppleTalk Control Protocol(ATCP), 프로토콜 코드 번호 0x8029, RFC 1378
  • IPXCP(Internetwork Packet Exchange Control Protocol), 프로토콜 코드 번호 0x802B, RFC 1552
  • DECnet Phase IV Routing Protocol(DECnet Phase IV), 프로토콜 코드 번호 0x8027, RFC 1762
  • 넷비NetB용 IOS Frames Control Protocol(NBFCP)IOS 프레임 프로토콜(또는 NetBE) 전에 불렸던 UI), 프로토콜 코드 번호 0x803F, RFC 2097
  • IPv6용 IPv6 제어 프로토콜(IPv6CP), 프로토콜 코드 번호 0x8057, RFC 5072

루프 링크 검출

PPP는 매직 넘버를 포함한 기능을 사용하여 루프된 링크를 검출합니다.노드가 PPP LCP 메시지를 보낼 때 이러한 메시지에는 매직 번호가 포함될 수 있습니다.회선이 루프 되어 있는 경우, 노드는 피어 매직 번호가 붙은 메시지를 수신하는 대신, 독자적인 매직 번호가 붙은 LCP 메시지를 수신합니다.

구성 옵션

이전 섹션에서는 특정 WAN 접속 요건을 충족하기 위한 LCP 옵션 사용에 대해 설명했습니다.PPP에는 다음 LCP 옵션이 포함됩니다.

  • 인증 - 피어 라우터는 인증 메시지를 교환합니다.인증에는 Password Authentication Protocol(PAP)과 Challenge Handshake Authentication Protocol(CHAP)이 있습니다.인증에 대해서는, 다음의 항에서 설명합니다.
  • 압축 - 링크를 통과할 필요가 있는 프레임 내의 데이터 양을 줄임으로써 PPP 접속의 유효 throughput을 높입니다.프로토콜은 대상 프레임의 압축을 풉니다.상세한 것에 대하여는, RFC 1962 를 참조해 주세요.
  • 오류 감지 - 고장 상태를 식별합니다.Quality 및 Magic Number 옵션은 신뢰성이 높고 루프가 없는 데이터 링크를 보장하는 데 도움이 됩니다.[ Magic Number ]필드는 루프백 상태의 링크를 검출하는데 도움이 됩니다.Magic-Number Configuration Option이 정상적으로 네고시에이트될 때까지 Magic-Number는 0으로 전송되어야 합니다.매직넘버는 접속의 양단에서 랜덤으로 생성됩니다.
  • 멀티링크 - 멀티링크 PPP를 통해 PPP에서 사용되는 여러 인터페이스의 로드밸런싱을 제공합니다(다음 참조).

PPP 프레임

구조.

PPP 프레임은 HDLC 프레임의 배리언트입니다.

이름. 바이트 수 묘사
플래그 1 0x7E, PPP 프레임의 시작
주소. 1 0xFF, 표준 브로드캐스트주소
통제 1 0x03, 번호 없는 데이터
프로토콜 2 내장 데이터의 PPP ID
정보 variable (0 이상) 데이터그램
패딩 variable (0 이상) 옵션 패딩
프레임 체크 시퀀스 2 프레임 체크섬
플래그 1 0x7E, 연속 PPP 패킷의 경우 생략

양쪽 피어가 LCP 중에 Address 필드와 Control 필드 압축에 동의하면 이러한 필드는 생략됩니다.마찬가지로 양쪽 피어가 Protocol 필드 압축에 동의하면 0x00 바이트를 생략할 수 있습니다.

[ Protocol ]필드는 페이로드 패킷의 유형을 나타냅니다.LCP의 경우 0xC021, 다양한 NCP의 경우 0x80xy, IP의 경우 0x0021, IPX의 경우 0x0029 AppleTalk, IPX의 경우 0x002B, 멀티링크의 경우 0x003D, NetB의 경우 0x003FIOS, 0x00MPPCMPPE 등의 [3]FD에는 제한이 있습니다.PPP는 EtherType과는 달리 일반적레이어3 데이터를 포함할 수 없습니다.

[ Information ]필드에는 PPP payload가 포함됩니다.이 필드에는 Maximum Transmission Unit이라고 불리는 네고시에이트된 최대값을 가진 가변 길이가 있습니다.기본적으로는 최대값은 1500 옥텟입니다.전송 시 패딩될 수 있습니다. 특정 프로토콜에 대한 정보를 패딩할 수 있다면 해당 프로토콜은 정보를 패딩과 구별할 수 있어야 합니다.

캡슐화

PPP 프레임은 프레이밍을 제공하는 하위 계층 프로토콜로 캡슐화되어 전송 오류를 검출하기 위한 체크섬 등의 다른 기능을 제공할 수 있습니다.시리얼 링크의 PPP는 보통 IETF RFC 1662에서 규정되어 있듯이 HDLC와 유사한 프레임에 캡슐화되어 있습니다.

이름. 바이트 수 묘사
플래그 1 프레임의 시작 또는 끝을 나타냅니다.
주소. 1 브로드캐스트 어드레스
통제 1 제어 바이트
프로토콜 1 또는 2 또는 3 l 정보 필드
정보 variable (0 이상) 데이터그램
패딩 variable (0 이상) 옵션 패딩
FCS 2(또는 4) 에러 체크

[ Flag ]필드는 HDLC와 같은 프레임의 PPP가 사용되는 경우 표시됩니다.

[ Address ]필드와 [Control]필드에는 항상 16진수 FF('모든 스테이션'의 경우)와 16진수 03('unnumbered information'의 경우)의 값이 지정됩니다.또, PPP LCP Address-and-Control-Field-Compression(ACFC; 제어 필드 압축)의 네고시에이트시에이트가 행해지면, 생략할 수 있습니다.

Frame Check Sequence(FCS; 프레임체크 시퀀스) 필드는 개개의 프레임에 오류가 있는지 여부를 판단하기 위해 사용됩니다.프레임 상에서 계산된 체크섬이 포함되어 전송 오류에 대한 기본적인 보호를 제공합니다.이것은 이더넷에서 사용되는 것과 같은 다른 레이어2 프로토콜 오류 보호 스킴에 사용되는 것과 유사한 CRC 코드입니다.RFC 1662에 따르면 크기는 16비트(2바이트) 또는 32비트(4바이트) 중 하나입니다(기본값은 16비트 - 다항식x16 + x125 + x + 1).

FCS는 메시지가 캡슐화된 후 Address, Control, Protocol, Information 및 Padding 필드에 걸쳐 계산됩니다.

라인 활성화 및 단계

링크 데드
이 단계는 링크에 장애가 발생하거나 한쪽에서 접속을 해제하도록 지시되었을 때 발생합니다(예를 들어 사용자가 다이얼업 접속을 종료한 경우).
링크 확립 단계
이 단계에서는 Link Control Protocol 네고시에이션이 시행됩니다.성공하면 인증이 필요한지 여부에 따라 인증 단계 또는 Network-Layer Protocol 단계 중 하나로 제어가 이루어집니다.
인증 단계
이 단계는 옵션입니다.이것에 의해, 접속이 확립되기 전에, 양쪽이 서로 인증할 수 있습니다.성공하면 제어는 네트워크 계층 프로토콜 단계로 넘어갑니다.
네트워크 계층 프로토콜 단계
이 단계에서는 원하는 각 프로토콜의 네트워크 제어 프로토콜이 호출됩니다.예를 들어 IPCP는 회선을 통해 IP 서비스를 확립할 때 사용됩니다.네트워크 제어 프로토콜로 성공적으로 시작된 모든 프로토콜에 대한 데이터 전송도 이 단계에서 발생합니다.네트워크 프로토콜 종료도 이 단계에서 발생합니다.
링크 종료 단계
이 단계에서는 이 연결이 종료됩니다.이 문제는 인증 실패, 체크섬오류가 너무 많아 양 당사자가 링크를 자동으로 절단하기로 결정한 경우, 링크에 갑자기 장애가 발생한 경우 또는 사용자가 연결을 끊기로 결정한 경우에 발생할 수 있습니다.

여러 링크에 걸쳐서

멀티링크 PPP

멀티링크 PPP(MLPPP, MP, MPPP, MLP 또는 Multilink라고도 함)는 트래픽을 여러 개별 PPP 연결로 분산하는 방법을 제공합니다.RFC 1990에 정의되어 있습니다.예를 들어 기존 56k 모뎀 2개를 사용하여 가정용 컴퓨터를 인터넷 서비스 공급자에 연결하거나 2개의 전용 회선을 통해 회사를 연결할 때 사용할 수 있습니다.

1개의 PPP 회선 프레임은 순서대로 착신할 수 없습니다만, 복수의 PPP 접속간에 프레임이 분할되어 있는 경우에 가능합니다.따라서 멀티링크 PPP는 fragment가 도착했을 때 다시 올바른 순서로 정렬할 수 있도록 fragment에 번호를 붙여야 합니다.

멀티링크 PPP는 링크 집약 테크놀로지의 예입니다.Cisco IOS Release 11.1 이후에서는 멀티링크 PPP가 지원됩니다.

멀티클래스 PPP

PPP에서는 단일 링크 상에서 여러 개의 고유 PPP 접속을 동시에 확립할 수 없습니다.

멀티링크 PPP에서도 가능하지 않습니다.멀티링크 PPP는 패킷의 모든 fragment에 대해 연속된 번호를 사용하기 때문에 다른 패킷을 송신하기 위해 패킷의 fragment 시퀀스의 송신을 정지할 수 없습니다.이것에 의해, 같은 링크상에서 멀티링크 PPP 를 복수 실행할 수 없게 됩니다.

멀티클래스 PPP는 멀티링크 PPP의 일종으로 트래픽의 각 "클래스"는 별도의 시퀀스 번호 공간과 재구성 버퍼를 사용합니다.멀티클래스 PPP는 RFC 2686에 정의되어 있습니다.

터널

SSH+PPP 터널의 예로서 OSI 프로토콜 스택을 심플화
어플 FTP SMTP HTTP DNS
운송 TCP UDP
네트워크 아이피
데이터 링크 PPP
어플 SSH
운송 TCP
네트워크 아이피
데이터 링크 이더넷 현금 자동 입출금기
물리적. 케이블, 허브 등

파생 프로토콜

PPTP(Point-to-Point Tunneling Protocol)는 암호화(MPPE)와 압축(MPPC)을 사용하여 GRE를 통해2개의 호스트 간에 PPP의 한 형태입니다.

터널 양끝 사이의 레이어2 프로토콜로서

많은 프로토콜을 사용하여 IP 네트워크를 통해 데이터를 터널링할 수 있습니다.SSL, SSH, L2TP 의 일부 기능에서는 가상 네트워크인터페이스를 생성하여 터널 엔드포인트 간에 직접 물리 접속하는 듯한 느낌을 줍니다.예를 들어 Linux 호스트에서는 이러한 인터페이스를 tun0 또는 ppp0이라고 부릅니다.

터널에는 엔드포인트가2개밖에 없기 때문에 터널은 포인트 투 포인트 접속이며 PPP는 가상 네트워크인터페이스간의 데이터링크층 프로토콜로서 자연스럽게 선택됩니다.PPP는 이러한 가상 인터페이스에 IP 주소를 할당할 수 있습니다.예를 들어 터널 양쪽에 있는 네트워크 간의 라우팅에 이러한 IP 주소를 사용할 수 있습니다.

터널링 모드의 IPsec에서는 터널이 TCP/IP 스택에 의해 직접 처리되기 때문에 터널 끝에 가상 물리 인터페이스가 생성되지 않습니다.이러한 인터페이스를 제공하기 위해서 L2TP 를 사용할 수 있습니다.이 기술은 L2TP/IPSec 이라고 불립니다.이 경우에도 PPP는 터널 끝에 IP 주소를 제공합니다.

IETF 표준

PPP는 RFC 1661(The Point-to-Point Protocol, 1994년 7월)에 정의되어 있습니다.RFC 1547(Requirements for a Internet Standard Point-to-Point Protocol, 1993년 12월)은 PPP의 필요성과 그 개발에 관한 이력 정보를 제공합니다.일련의 관련 RFC는 TCP/IP, DECnet, AppleTalk, IPX 등 다양한 네트워크 제어 프로토콜이 PPP와 어떻게 연동되는지 정의하기 위해 작성되었습니다.

  • RFC1332, PPP Internet Protocol Control Protocol(IPCP)
  • RFC 1661, 표준 51, 포인트 투 포인트 프로토콜(PPP)
  • RFC 1662, 표준 51, HDLC 라이크 플레이밍에서의 PPP
  • RFC 1962, PPP 압축제어 프로토콜(CCP)
  • RFC 1963, PPP 시리얼 데이터 전송 프로토콜
  • RFC 1877, 네임 서버 주소용 PPP Internet Protocol Control Protocol 확장
  • RFC 1990, PPP 멀티링크 프로토콜(MP)
  • RFC 1994, PPP 챌린지 핸드쉐이크 인증 프로토콜(CHAP)
  • RFC 2153, 정보, PPP 벤더 확장
  • RFC 2284, PPP Extensible Authentication Protocol(EAP)
  • RFC 2364, PPP over ATM
  • RFC 2516, PPP over Ethernet
  • RFC 2615, PPP over SONET/SDH
  • RFC 2686, 멀티링크 PPP로의 멀티클래스 확장
  • RFC 2687, 실시간 지향 HDLC와 같은 프레이밍에서의 제안된 표준, PPP
  • RFC 5072, IP 버전6 over PPP
  • RFC 5172, IPv6 제어 프로토콜을 사용한IPv6 데이터그램 압축의 네고시에이션
  • RFC 6361: PPP Transparent Interconnection of Links(TRIL; 로트 오브 링크) 프로토콜 제어 프로토콜

기타 초안:

「 」를 참조해 주세요.

레퍼런스

  1. ^ RFC 1968
  2. ^ a b Stevens 1994, 26-27쪽, 2.6초: "PPP: 포인트 투 포인트 프로토콜
  3. ^ "Point-to-Point (PPP) Protocol Field Assignments". IANA. Retrieved 3 September 2015.