데이터통신

데이터통신 11.4 점-대-점 프로토콜

공부승식 2021. 6. 6. 01:33
728x90

점-대-점 접근을 위한 가장 널리 사용되는 프로토콜은 점-대-점 프로토콜(PPP, Point-to-Point Protocol)이다.

인터넷은 서버에 자신들의 컴퓨터를 PPP를 사용해서 연결한다.

 

11.4.1 서비스

PPP 설계자는 PPP를 점-대-점 프로토콜에 적합하게 만들기 위해 여러가지 서비스를 포함시켰다.

 

PPP가 제공하는 서비스

PPP는 장치들 사이에서 교환될 프레임의 형식을 정의한다.

또한 두 장치가 어떻게 링크 설정을 교섭하고 데이터를 교환할지를 정의한다.

PPP는 여러 네트워크층에서 페이로드를 허용하도록 설계되었다.

인증이 또한 프로토콜에 선택적으로 제공된다. 다중링크 PPP(Multilink PPP)로 불리는 PPP의 새 버전은 다중링크 위로 연결을 제공한다.

PPP는 네트워크 주소 구성을 지원한다.

 

PPP가 제공하지 않는 서비스

PPP는 flow control를 제공하지 않는다. 

송신자는 수신자를 상관하지 않고 프레임을 계속 보낼 수 있다.

PPP는 간단한 Error Control을 한다. (CRC를 이용) (간단하게만 한다.)

프레임이 손상되었으면 그냥 버리며, 상위계층프로토콜이 이 문제를 해결해야 한다.

오류제어를 하지 못하고 순서번호가 없기 때문에 순서가 바뀌어 패킷이 도달할 수 있다. 

PPP는 다중점 링크에서 프레임을 다룰 수 있는 주소 지정방법이 없다. 

 

 

11.4.2 프레임

PPP는 문자-중심(byte 중심)프레임을 사용한다.

각 필드에 대한 설명

Flag-Address-Control-Protocol-Payload-FCS-Flag

이렇게 프레임이 구성되어있다. 

1.플래그

PPP프레임은 01111110값을 가진 1바이트 플래그를 가지고 시작하고 끝난다.

2.주소

이 프로토콜에서는 주소는 상수값이고 11111111(브로드캐스트 주소)로 설정한다.

3.제어

이 필드는 HDLC의 U-Frame을 본뜬 상수값 0000011로 설정한다. PPP는 어떤 흐름제어도 제공하지 않고, 간단한 오류제어만 제공한다.

4.프로토콜

프로토콜 필드는 데이텇필드에 사용자데이터 또는 다른 정보가 들어있는것을 정의한다.

이 필드는 기본 2바이트를 사용하지만 두 당사자는 단지 1바이트만 사용하도록 동의할 수 있다.

5. 페이로드 필드

이 필드는 사용자 데이터나 다른 정보들을 운송한다.

데이터 필드는 최대 1500바이트 기본의 바이트의 순서이다.

하지만 이는 교섭하는 동안 바뀔 수 있다.

데이터필드는 이 필드에 플래그 바이트 패턴이 나타나면 바이트 채우기가 된다.(byte stuffing) 

왜? -> 데이터 필드의 크기를 정의하는 필드가 없기 때문에, 크기가 최대 기본값보다 작으면 패딩이 필요하다.

5.FCS(Frame check sequence)

프레임 검사 순서는 간단히 2바이트 또는 4바이트 표준 CRC이다.

 

 

바이트 채우기

PPP는 바이트 중심 프로토콜이기 때문에, PPP의 플래그가 프레임의 데이터부분에 나타나면 탈출 문자를 사용하여 표시해야한다.

탈출바이트 -> 01111101 이며,(비트중심 프로토콜에서는 탈출 비트가 쓰이는데, 여기는 탈출 바이트가 쓰임!(8비트)

이는 데이터에 플래그같은 패턴이 나타날때마다 이 추가바이트를 더하여 수신자가 다음 바이트가 플래그가 아닌 것을 알 수 있게 해주어야 한다.

 

 

11.4.3 천이단계(transition phase)

하나의 PPP연결이 겪는 단계들은 transition phase 다이어그램으로 설명할 수 있다.

FSM에서 천이 다이어그램은 dead상태에서 시작한다.

dead 상태-> 전송활동은 없으며, 회선이 조용한 경우.

두 노드중 하나에서 통신을 시작하게 되면, 연결은 establish(설정) 상태로 들어간다.

establish(설정) 상태 -> 양끝의 단말간에 옵션에 대한 협상을 한다. 만약 두 단말이 인증이 필요하다는 것에 동의하면(그들이 서로 모른다면)   시스템은 인증을 필요로 한다. 

그렇지 않으면 단말은 간단히 통신을 시작할 수 있다. 

데이터전송은 OPEN상태에서 일어난다.

open상태 -> 데이터 교환이 일어날 수 있다. 연결은 어느 한쪽이 이연결을 종료하기 전에는 이 상태로 유지된다.

어느 한쪽이 이 연결을 종료하면, 시스템은 terminate상태로 간다.

terminate상태: 전송이 떨어질때까지 이 상태로 남아있고, 이 후에 시스템은 다시 dead상태로 간다.

 

 

11.4.4 다중화

PPP가 비록 데이터링크층 프로토콜이지만, PPP는 링크를 수립하고, 관련된 당사자를 인증하며 네트워크층 데이터를 옮기는 등 일련의 다른 프로토콜도 사용한다.

세 종류의 프로토콜이 정의되어 있는데 

링크제어 프로토콜(LCP, Link Control Protocol)

2개의 인증 프로토콜(AP, Authentication Protocol)

몇개의 네트워크 제어 프로토콜 (NCP, Network Control Protocol)

임의의 순간에 PPP패킷은 각 데이터필드에 데이터를 실어 나를 수 있다.

오직 하나의 LCP와 2개의 AP, 여려개의 NCP가 있음에 유의하라.

 

 

1. 링크제어 프로토콜(Link Control Protocol) 

Link Control Protocol(LCP)는 링크의 설정, 유지, 형성과 해제를 담당한다.

두 단말간의 선택사항을 결정하기 위한 협상 기능을 제공한다.

링크의 양 단말은 링크가 설정되기 전에 선택사항들에 대해 일치를 이루어야 한다.(establish단계에서 선택사항을 일치시켜야함)

 

2. 인증 프로토콜(authentication protocol) ->

(내가 이 PPP프로토콜을 쓰는 합당한 대상자인가?)

PPP가 사용자의 인증이 필수적인 전화선 링크를 사용하도록 설계되었기 때문에, 인증은 PPP에서 매우 중요하다.

인증(authentication)이란 자원들에 접근하기를 원하는 사용자의 신원을 증명하는 것이다. 

PPP는 인증을 위해 패스워드 인증 프로토콜(PAP, Password Authentication Protocol)

핸드셰이크 인증 프로토콜(CHAP, Challenge Handshake Authentication Protocol)의 두 가지 프로토콜을 만들었따.

이 프로토콜들은 인증단계동안 사용된다.

 

PAP(Password Authentication Protocol)

PAP는 2단계의 처리과정을 가진 간단한 인증절차.

a.시스템에 접근하기를 원하는 사용자는 인증 식별자(보통은 사용자의 이름)와 패스워드를 보낸다. 

b. 시스템은 식별자와 패스워드의 유효성을 검사하여 연결을 수용하거나 거부한다.

PAP패킷에서는 인증 요구(authenticate-request), 인증 확인 응답(authenticate-ack), 인증부정응답(authencate-nak)의 세가지가 있다.

패스워드를 중간에 가로챌 위험이 있다.

 

CHAP(CHALLENGE Handshake AUthentication Protocol)

PAP보다 높은 보안을 제공하는 3방향 핸드셰이크 인증 프로토콜이다.

이 방법은 패스워드를 비밀로 하며, 절대로 회선상에 보내지 않는다.

a.시스템이 보통 몇 개의 바이트인 챌린지 값이 들어있는 챌린지 패킷을 사용자에게 보낸다.

b. 사용자는 챌린지값과 사용자의 자체 패스워드를 받아들이는 미리 정의된 함수를 적용하여 결과를 만들어낸다.

사용자는 이 결과를 응답 패킷에 넣고 시스템에 보낸다.

c. 시스템도 같은 일을 수행한다. 시스템도 사용자의 패스워드(시스템이 이미 알고있는거)와 챌린지 값을 같은 함수에 적용하여 결과 값을 만든다. 만약 만들어진 결과가 응답패킷으로 보내진것과 같으면 접근이 허용되고 아니면 거부된다.

사용자: 문제(챌린지)와 패스워드를 이용해서 결과를 만들어 내고 그 결과를 보낸다.

시스템 : 패스워드를 이용해서 풀 수 있는 문제를 사용자에게 보낸다.

이렇게 하면 패스워드가 직접 돌아다니지 않기 때문에 중간에 가로채도 문제결과만 가로채져서 패스워드를 들키지 않는다.

 

 

네트워크 제어 프로토콜

PPP는 다중네트워크층 프로토콜이다.

인터넷,OSI, Xerox 등에 의해 정의된 프로토콜로부터의 네트워크층 패킷을 나를 수 있다. 이렇게 하기 위해 각 네트워크 프로토콜에 대해 특정 NCP를 정의하고 있다. 예를들면 IPCP(Internet Protocol Control Protocol)는 IP패킷을 나를 수 있도록 회선을 구성한다. 

Xerox CP는 Xerox 프로토콜 데이터 패킷등과 동일하게 한다. 

 

IPCP(Internetwork Protocol Control Protocol)

IP패킷을 위한 네트워크층 연결을 설정, 또는 종료, 하는 패킷들의 집합을 

인터네트워크 프로토콜 제어 라고 한다.

 

 

다중회선 PPP

보통 PPP는 속도가 느린데 하나의 프레임을 몇개의 실제 PPP프레임으로 나눈다.