12 장 점 대 점 접근 : PPP 12.1 점 대 점 프로토콜 12.2 PPP 스택 12.3 요약
12.1 점 대 점 프로토콜 점 대 점 접근(point-to-point access) 네트워크에서 두 개의 장치가 전용선으로 연결된 경우 점 대 점 프로토콜(PPP; point-to-point protocol) 점 대 점 접근을 위해 사용되는 프로토콜
점 대 점 프로토콜(계속) 프레임 형식 PPP는 HDLC의 한 형식을 사용
점 대 점 프로토콜(계속) 프레임 형식 Flag 필드 : PPP 프레임의 경계를 구분(01111110) Address 필드 : HDLC의 브로드캐스팅 주소 사용(11111111) Control 필드 : HDLC의 U-프레임을 사용(11000000) Protocol 필드 : 데이터 필드에 무엇이 저장되어 있는지 정의 Data 필드 : 사용자 데이터 또는 다른 정보 저장 Frame check sequence(FCS) 필드 : 2바이트 또는 4바이트의 CRC
점 대 점 프로토콜(계속) 천이 상태
점 대 점 프로토콜(계속) 천이 상태 정지(Idle)상태 – 링크가 이용되고 있지 않는 상태 설정(Establishing)상태 통신을 시작하는 상태 양쪽 단말간 옵션에 대한 협상 인증(Authentication)상태 선택사항으로 필요한 경우에만 사용 네트워킹(Networking)상태 제어 및 데이터 패킷 교환가능 상태 종료(Terminating)상태 링크를 해제하는 상태
12.2 PPP 스택 PPP는 링크 제어 프로토콜, 인증 프로토콜, 네트워크 제어 프로토콜을 사용 프로토콜 스택
PPP 스택(계속) 링크 제어 프로토콜(LCP; link control protocl) 링크의 설정, 유지, 해제 담당 선택사항 협상기능 제공 프레임에 캡슐화된 LCP패킷
PPP 스택(계속) LCP 필드 코드(code) : LCP 패킷 종류 ID : 요청의 대한 해당 응답을 찾는데 사용되는 값
PPP 스택(계속) LCP 패킷과 코드 Code Packet Type Description 0116 Configure-request Contains the list of proposed options and their values 0216 Configure-ack Accepts all options proposed 0316 Configure-nak Announces that some options are not acceptable 0416 Configure-reject Announces that some options are not recognized 0516 Terminate-request Requests to shut down the line 0616 Terminate-ack Accepts the shut down request 0716 Code-reject Announces an unknown code 0816 Protocol-reject Announces an unknown protocol 0916 Echo-request A type of hello message to check if the other end is alive 0A16 Echo-reply The response to the echo-request message 0B16 Discard-request A request to discard the packet
PPP 스택(계속) 구성 패킷 양 단말간의 선택 사항을 협상 구성 요청(configure-request) 구성 확인 응답(configure-ack) 구성 부정 응답(configure-nak) 구성 거부(configure-reject)
PPP 스택(계속) 구성 요청 연결 시작을 원하는 단말은 다른 쪽에 여러 개의 0과 다른 선택사항을 가진 구성 요청 메시지를 전송 모든 선택사항들은 한 패킷으로 협상이 종료 구성 확인 응답 구성 요청 패킷에 있는 모든 선택 사항을 수신기에서 수용할때 구성 확인 응답을 전송 요청된 모든 선택사항을 반복
PPP 스택(계속) 구성 부정 응답 모든 선택사항을 인식하였으나 일부 값이 생략되거나 수정되어야 할 경우 구성 부정 응답을 전송 구성 거부 일부 선택사항이 인식되지 않을때 인식되지 않은 선택사항을 표시하여 구성 거부를 전송
PPP 스택(계속) 링크 종료 패킷 양 단말의 연결을 종료 하는데 상요 종료 요청(terminate-request) 종료 확인 응답(terminate-ack)
PPP 스택(계속) 링크 감시와 디버깅 패킷 코드 거부(code-reject) : 패킷 안에 인식할 수 없는 코드를 가진 패킷을 수신하였을 때 코드 거부 패킷을 전송 프로토콜 거부(protocol-reject) : 패킷 안에 인식할 수 없는 프로토콜을 가진 패킷을 수신하였을 때 프로토콜 거부 패킷을 전송 에코 요청(echo-request) : 링크를 감시하기 위해 전송 에코 응답(echo-reply) : 에코 요청의 응답 폐기 거부(discard-reject) : 루프백(loopback) 시험의 일종으로 송신기가 자신의 루프백 상황을 검사하기 위해 사용
PPP 스택(계속) 선택 사항 두 단말간에 이루어지는 협상 Maximum receive unit 1500 Option Default Maximum receive unit 1500 Authentication protocol None Protocol field compression Off Address and control field compression
PPP 스택(계속) 인증 프로토콜 자원 접근을 원하는 사용자 신원 증명 패스워드 인증 프로토콜(PAP; Password Authentication Protocol) 챌린지 핸드셰이크 인증 프로토콜(CHAP; Challenge Handshake Authentication Protocol)
PPP 스택(계속) PAP(Password Authentication Protocl) 2단계 처리 절차 사용자 이름과 패스워드 전달 유효성 확인 후 연결 허용 또는 거부
PPP 스택(계속) PAP 패킷 PPP 프레임에 캡슐화 프로토콜 필드 값(C02316) 인증 요구(authentication-request) : 사용자가 이름, 패스워드를 전송하는데 사용 인증 확인 응답(authentication-ack) : 시스템이 접근을 허용할 때 사용 인증 부정 응답(authentication-na) : 시스템이 접근을 거부할 때 사용
PPP 스택(계속) PAP 패킷
PPP 스택(계속) CHAP(Challenge Handshake Authentication Protocol) 3-way handshake 인증 프로토콜 시스템이 챌린지 패킷을 사용자에게 전송 사용자는 챌린지 값과 사용자의 자체 패스워드를 받아들이는 함수를 적용하여 결과를 생성 후 시스템에 전송 시스템은 챌린지 값과 사용자 패스워드 값을 같은 함수 값에 적용하여 일치하면 접근을 허용
PPP 스택(계속) CHAP(Challenge Handshake Authentication Protocol)
PPP 스택(계속) CHAP 패킷 PPP 프레임에 캡슐화 프로토콜 필드값(C22316) 챌린지(challenge) : 시스템이 챌린지 값을 전송하는데 사용 응답(response) : 사용자가 계산 결과를 전송할 때 사용 성공(success) : 시스템에 접근을 허용할 때 사용 실패(failure) : 시스템에 접근을 거부할 때 사용
PPP 스택(계속) CHAP 패킷
PPP 스택(계속) 네트워크 프로토콜(NCP; Network Protocol Control) 링크가 설정되고 인증이 성공적으로 이루어지면 네트워킹 상태가 됨 이때 NCP(Network Control Protocol)를 사용 NCP는 네트워크층 프로토콜(IP,IPX,AppleTalk등)에서 오는 데이터를 PPP 프레임에 캡슐화를 함
PPP 스택(계속) 인터네트워크 프로토콜 제어 프로토콜(IPCP; Internetwork Protocol Control Protocol) IP 패킷에 대해 네트워크 연결 성정 또는 종효하는 패킷들의 집합 PPP 프레임에 캡슐화된 IPCP 패킷(프로토콜 필드 값 802116)
PPP 스택(계속) IPCP 패킷을위한 코드 값 01 Configure-request 02 Configure-ack 03 Code IPCP Packet 01 Configure-request 02 Configure-ack 03 Configure-nak 04 Configure-reject 05 Terminate-request 06 Terminate-ack 07 Code-reject
PPP 스택(계속) 예제 PPP 연결이 임의의 네트워크층 패킷을 전송할 때
12.3 요약