프로토콜의 기초
- 데이터 링크 계층에서 호스트끼리 통신하기 위해서는 점대점으로 연결되어야 한다.
- 기본적으로 데이터 링크 계층의 연결은 점대점 연결이지만 예외적으로 멀티 드롭 방식을 구현할 수 있다.
- 두 호스트 간 물리적인 전송 오류를 감지하고 복구하는 것이 데이터 링크 계층의 역할이며, 재전송 기법을 사용한다.
- 재전송 기법은 긍정 응답 프레임, 부정 응답 프레임, 타임아웃, 순서 번호 등의 기능을 수행한다.
프레임의 종류
- 정보 프레임
- 정보 프레임은 상위 계층이 전송을 요구한 데이터를 수신 호스트에 전송하는 용도로 사용하며 I 프레임으로 표기한다.
- 정보 프레임에는 데이터, 프레임 순서 번호, 송수신 호스트의 주소 정보, 오류 검출 코드 등을 포함한다.
- 수신 호스트는 프레임 순서 번호로 각 프레임을 구별할 수 있다.
- 긍정 응답 프레임
- 수신 호스트는 먼저 오류 검출 코드를 확인하여 프레임의 내용이 변형되었는지 확인한다.
- 프레임이 정상이라면 ACK 프레임으로 긍정 응답을 회신한다.
- 부정 응답 프레임
- 프레임의 내용이 변형되었다면 NAK 프레임으로 부정 응답을 회신하여 재전송을 요청한다.
- 타임 아웃
- 수신 호스트가 정보 프레임을 수신하지 못했을 경우 송신 호스트가 무한정 대기하는 것을 대비하여 타임아웃을 설정한다.
프로토콜 과정
- 먼저 송신 호스트는 프레임에 순서 번호를 명시하여 수신호스트에게 보낸다.
- 이때 프레임이 변형되어 도착하면, 수신 호스트는 NAK 응답에 순서번호를 명시하여 응답한다.
- 그러면 송신 호스트는 해당 순서 번호의 프레임을 재전송한다.
- 만약 타임아웃 시간이 경과하여도 수신 호스트에게 아무런 응답이 없다면, 송신 호스트는 해당 순서 번호의 프레임을 재전송한다.
슬라이딩 윈도우 프로토콜
- 슬라이딩 윈도우 프로토콜은 두 호스트간 양방향 전송을 위한 일반적인 프로토콜이다.
- 현재 대부분의 프로토콜은 슬라이딩 윈도우 프로토콜을 사용한다.
- 슬라이딩 윈도우는 고정되어 있는 윈도우의 이동을 의미하며 이는 프레임 전송 속도를 제어하여 흐름 제어를 구현하는 것이다.
슬라이딩 윈도우 프로토콜 과정
- 송신 호스트는 데이터, 순서 번호, 오류 검출 코드 등을 포함한 정보 프레임을 순차적으로 보낸다.
- 수신 호스트는 받은 프레임의 순서 번호를 기반으로 응답 프레임을 송신 호스트에게 반환하며 응답은 다음에 기대하는 프레임의 번호를 표기한다.
- 송신 호스트는 보낸 프레임을 내부 버퍼, 즉 송신 윈도우에 저장한다.
- 수신 호스트도 수신한 프레임을 수신 윈도우에 저장할 수 있다.
- 프로토콜에 따라 수신 윈도우의 크기는 달라질 수 있으며, 프레임의 도착 순서에 따라 처리 방식도 다르다.
흐름제어
순서 번호
정보 프레임에는 프레임별로 고유하게 부여되는 순서 번호가 있다.
이 순서 번호는 0부터 임의의 최댓값까지 정의되는데, 최댓값 이후에는 다시 0번으로 되돌아오는 순환 방식으로 할당된다.
정보 프레임의 내용에는 순서 번호를 위한 공간이 확보되어 있다.
윈도우의 크기
송신 호스트가 수신 호스트로부터 ACK 응답을 받지 않고도 전송할 수 있는 정보 프레임의 최대 개수이다.
즉, 송신 윈도우에 보관된 프레임은 수신 호스트에 전송되었으나 아직 ACK 응답을 받지 못한 프레임이다.
송신 윈도우에 보관된 프레임은 낮은 순서 번호부터 차례대로 처리되며 윈도우 한 칸씩 움직이게 된다.
연속형 전송
- 정지- 대기 방식의 프로토콜은 윈도우의 크기가 1인 특수한 경우이며 전송 효율이 극단적으로 떨어지게 된다.
- 이러한 문제를 해결하기 위해 수신 호스트로부터 ACK 응답을 받지 않아도 여러 정보 프레임을 연속으로 전송할 수 있어야 한다.
- 연속형 전송은 전송 오류가 발생하지 않는다면 효율적이지만, 일부 정보 프레임에 오류가 발생하면 효율이 낮아지게 된다.
- 고백 N 방식
- 고백 N 방식은 오류 복구 과정에서 오류가 발생한 12번 프레임을 포함에 이후에 전송된 모든 정보 프레임을 재전송하는 방식이다.
- 고백 N 방식은 수신 윈도우 크기가 1로, 다음 정보 프레임을 처리하기 전까지 모든 프레임을 버린다.
- 이는 오류가 있는 프레임뿐 아니라 정상적인 프레임까지 재전송한다는 문제점이 있지만 전송 지연 등에 따라서는 효과적인 방법이 되기도 한다.
- 선택적 재전송 방식
- 선택적 재전송 방식은 정상적으로 수신한 프레임을 제외하고 오류가 발생한 프레임만 재전송하는 것이다.
- 선택적 재전송 방식에서는 처리되지 않은 앞선 프레임이 있어도 수신된 모든 프레임을 보관하며, 수신 윈도우 크기는 송신 윈도우와 동일하다.
- 따라서 프레임의 도착 순서가 송신 순서와 다를 수 있다.
피기배킹
- 양방향 전송을 지원하는 채널에서는 송신과 수신 호스트 구분 없이 양쪽으로 정보 프레임과 응답 프레임을 전송할 수 있다.
응답 프레임인 ACK와 NAK는 상대방에게 다음에 전송할 프레임을 지시하는 목적을 가진다.
피키배킹 방식을 사용하면 정보 프레임 전송 시 동시에 응답 기능을 수행할 수 있어 전송 효율이 향상된다. - 프로토콜에서 정보 프레임에는 전송할 데이터와 순서 번호가, 응답 프레임에는 다음에 수신할 프레임의 순서 번호가 포함된다.
- 피기배킹을 위해 정보 프레임에는 전송 데이터의 순서 번호와 제대로 수신한 프레임의 순서 번호를 모두 표기한다.
- 이를 통해 정보 프레임 전송과 응답 프레임 회신을 동시에 처리할 수 있다.
- 응답 프레임 전송 시 정보 프레임이 있다면 피기배킹 기능을 사용할 수 있다.
- 정보 프레임이 없을 때는 응답 프레임만 전송되지만, 곧 정보 프레임을 전송할 가능성이 있으면 피기배킹을 위해 응답을 지연시킬 수 있다. 이 지연 시간은 시스템의 성능에 영향을 미친다.
|
HDLC 프로토콜
- ISO에서는 IBM SNA의 데이터 링크 프로토콜인 SDLC를 HDLC로 발전시켰다.
- CCITT는 HDLC를 수정하여 X.25용 LAP로 발전시켰고, 이후 LAPB로 향상되었다.
- 이들 프로토콜은 모두 유사한 기본 구조를 가진다.
- HDLC 프로토콜은 일대일 혹은 일대다 연결 환경에서 데이터 송수신 기능을 제공한다. 데이터 통신에 연결된 호스트들은 주국과 종국으로 구분되며, 이들의 기능을 가진 혼합국으로 정의될 수 있다. 주국에서의 메시지는 명령으로 정의되고, 종국의 회신은 응답으로 정의된다.
프레임 구조
- HDLC 프레임은 프레임의 좌우에 위치한 01111110 플래그는 프레임의 시작과 끝을 구분한다.
- Address
- 일대다로 연결된 환경에서 특정 호스트를 구분하여 지칭하는 목적으로 사용한다. 주국에서 정보 프레임을 전송할 때는 수신 호스트인 종국 주소를 표기하며, 종국에서 전송할 때는 송신 호스트인 자신의 주소가 기록된다. 일대일 환경에서는 명령과 응답을 구분하는 용도로 사용할 수도 있다.
- Control
- 프레임의 종류를 구분한다. 프레임 유형에 따라 송신용 순서 번호, 회신용 순서 번호와 기타 중요한 제어 코드를 포함한다.
- Data
- 가변 크기의 전송 데이터가 포함되며, 네트워크 계층에서 보내진 패킷이 캡슐화된다.
- Checksum
- CRC-CCITT를 생성 다항식으로 하는 오류 검출 코드로 사용된다.
프레임 종류
- 정보 프레임
- 정보 프레임은 3비트의 순서 번호를 이용한 슬라이딩 윈도우 프로토콜을 사용하여 0~7까지 번호를 순환하여 사용한다.
- Seq: 정보 프레임의 송신 번호로 사용한다.
- Next: 피기배킹을 이용한 응답 기능으로 사용한다. 이 값은 다음 수신을 기대하는 프레임 번호이다.
- P/F: 값이 1로 지정되었을 경우에만 Poll이나 Final의 의미를 갖는다. 주국의 명령 프레임에서 사용될 경우 Poll이라 하고, 종국의 응답 프레임에서 사용될 때는 Final이라고 한다.
- 감독 프레임
- 감독 프레임은 정보 프레임에 대한 응답 기능을 수행하는 프레임이다.
- Type 0: RR로 정의된 긍정 응답 프레임이다. 다음에 수신을 기대하는 프레임 번호를 Next 필드에 표시한다.
- Type 1: REJ로 정의된 부정 응답 프레임이다. Next 필드에는 재전송되어야 하는 프레임의 번호를 표시한다. 따라서 송신 호스트는 Next 필드의 번호로 시작하는 프레임부터 재전송해야 한다.
- Type 2: RNR로 정의된 응답 프레임으로 흐름 제어 기능까지 제공한다. 즉, Next 필드에 표 시한 순서 번호를 갖는 정보 프레임의 바로 앞 번호까지 제대로 수신되었다는 긍정 응답 기능과 함께 송신 호스트에 송신을 중지하도록 요구한다. 송신 호스트에 다시 전송을 요구할 때는 RR, REJ 혹은 기타의 제어 프레임을 전송하면 된다.
- Type 3: SREJ로 정의된 프레임으로, 선택적 재전송 방식에서 부정 응답 기능을 지원한다. 즉, Next 필드의 순서 번호를 갖는 특정 프레임에 대해 재전송 요구 기능을 갖는다.
- 비번호 프레임
- 비번호 프레임은 순서 번호가 없는 프레임을 정의한다.
- 주로 연결 제어 등의 목적으로 사용하지만, 비연결형 데이터 전송을 위해 사용하기도 한다.
- 비번호 프레임은 Type과 Modifier 필드를 합해서 총 5비트이다.
- SABM (Set ABM): 비동기 균형 (Asynchronous Balanced) 모드의 연결 설정을 요구한다.
- SNRM (Set NRM): 정규 응답 (Normal Response) 모드의 연결 설정을 요구한다.
- SARM (Set ARM): 비동기 응답 (Asynchronous Response) 모드의 연결 설정을 요구한다.
- DISC (Disconnect): 연결 설정 해제를 요구한다.
- RSET (ReSET): 비정상적인 프로토콜의 동작에 따른 리셋 기능을 수행한다.
- FRMR (Frame Reject): 비정상적인 프레임의 수신을 거부한다.
- UA (Unnumbered ACK): 비번호 프레임에 대한 응답 기능을 수행한다.
LAP 프로토콜
- LAP는 비동기 응답 모드인 ARM으로 동작하는 프로토콜이다.
- 주국에서 전송된 SARM 명령에 대하여 종국에서 UA 응답을 전송함으로써 완료된다.
LAPB 프로토콜
LAPB는 양쪽 호스트가 혼합국으로 동작하기 때문에 누구나 먼저 명령을 전송할 수 있다.
연결 시에 SABM 명령을 전송하고 UA 응답을 전송함으로써 연결 설정이 완료된다.
연결 해제 시에도 임의의 호스트에서 DISC 명령을 전송하고 UA 응답으로 완료된다.
출처 : 박기현, 쉽게 배우는 데이터 통신과 네트워크 3판, 한빛아카데미(2022)
'Network' 카테고리의 다른 글
[쉽게 배우는 데이터 통신과 네트워크] Chapter 5 - MAC 계층 (0) | 2023.08.19 |
---|