K 개발자

데이터 링크 계층 프로토콜의 기초 본문

OS/네트워크

데이터 링크 계층 프로토콜의 기초

ddingz 2021. 7. 29. 19:58

프레임의 종류

  • 정보 프레임
    정보 프레임Information Frame은 상위 계층이 전송을 요구한 데이터를 수신 호스트에 전송하는 용도로 사용한다. 약칭하여 I 프레임으로도 표기하며, 상위 계층에서 보낸 데이터와 함께 프레임의 순서 번호, 송수신 호스트의 주소 번호를 포함한다. 순서 번호Sequence Number는 각 정보 프레임에 부여되는 고유의 일련번호로, 수신 호스트가 중복 프레임을 구분할 수 있도록 해준다.
  • 긍정 응답 프레임
    정보 프레임을 수신한 호스트는 맨 먼저 프레임의 내용이 깨졌는지 확인해야 한다. 프레임 변형 오류가 발생하지 않으면 송신 호스트에 해당 프레임을 올바르게 수신했다는 의미로 ACK 프레임, 즉 긍정 응답Positive Acknowledgement을 회신한다. 긍정 응답 프레임을 수신한 송신 호스트는 데이터가 제대로 도착했음을 확인할 수 있다.
  • 부정 응답 프레임
    정보 프레임의 전송 과정에서 프레임 변형 오류가 발생하면 수신 호스트는 송신 호스트에 NAK 프레임을 회신한다. 즉, 부정 응답Negative Acknowledgement을 전달하여 송신 호스트가 오류 발생을 인지하고 원래의 정보 프레임을 재전송하도록 요청하는 것이다. 재전송 요구를 받은 송신 호스트는 오류가 발생한 프레임을 동일한 순서 번호로 다시 전송해야 한다.

오류·흐름 제어가 없는 프로토콜

단순 프로토콜

  • 단방향 통신 : 데이터는 송신 호스트에서 수신 호스트로만(한쪽 방향으로만) 전달된다.
  • 전송 오류가 없는 물리 매체 : 통신 채널에서는 어떠한 형태의 전송 오류도 발생하지 않는다.
  • 무한 개의 수신 버퍼 : 수신 호스트의 버퍼 수는 무한하다.

먼저 전송 프로토콜의 구조를 가장 단순화하기 위해 통신 환경을 위와 같이 가정한다.
이는 매우 이상적인 경우를 가정한 것으로, 데이터 전송 과정에서 어떠한 오류도 발생하지 않기 때문에 오류 제어 기능이 필요 없다.
또한 수신 호스트의 버퍼 용량에 제한이 없으므로, 송수신 호스트 사이의 속도 차이로 인해 프레임을 분실할 염려가 없어 흐름 제어 기능도 필요 없다.
그림에서 I(i) 형태로 표시한 내용은 순서 번호가 i인 정보 프레임을 의미하는데, 이것은 이해를 돕기 위한 것이지 순서 번호가 필요하다는 뜻은 아니다.


오류 제어가 없는 프로토콜

정지-대기 프로토콜 1

  • 단방향 통신 : 데이터는 송신 호스트에서 수신 호스트로만(한쪽 방향으로만) 전달된다.
  • 전송 오류가 없는 물리 매체 : 통신 채널에서는 어떠한 형태의 전송 오류도 발생하지 않는다.

이번에 가정하는 통신 환경은 위와 같이 수신 호스트의 버퍼 개수가 유한하다.
수신 호스트의 버퍼가 유한 개로 제한되는 환경에서 송신 호스트가 너무 빨리 정보 프레임을 전송하면 버퍼 부족으로 프레임 분실 오류가 발생할 수 있다.
이를 방지하려면 프로토콜을 설계하는 과정에서 흐름 제어 기능을 제공하여 송신 호스트의 전송 속도를 조절해야 한다.
가장 간단한 형태는 수신 호스트가 이전 프레임의 수신을 완료한 후에 다음 프레임을 전송하도록 송신 호스트에 지시하는 것이다.
이때 사용하는 프레임이 ACK 프레임이다.
결과적으로 ACK 프레임은 송신 호스트에 이전 프레임을 잘 받았다는 긍정 응답의 기능을 수행하는 동시에, 다음 프레임을 전송하도록 지시하는 흐름 제어 기능도 수행한다.
그림처럼 간단한 흐름 제어 환경에서는 분실 오류에 의한 중복 프레임이 발생할 가능성이 없기 때문에 순선 번호를 사용하지 않아도 된다.

송신 호스트가 정보 프레임을 전송하고, 이어서 다음 정보 프레임을 전송하려면 ACK 프레임이 도착하기를 기다려야 한다.
이처럼 각 정보 프레임에 대하여 수신 호스트가 회신하는 ACK 프레임이 도착해야 다음 프레임을 전송할 수 있는 프로토콜 방식을 정지-대기Stop-and-Wait 방식이라 한다.


단방향 프로토콜

  • 단방향 통신 : 데이터는 송신 호스트에서 수신 호스트로만(한쪽 방향으로만) 전달된다.

오류 제어와 흐름 제어 기능을 지원하는 단방향 형식의 통신 환경이다.
오류 제어와 흐름 제어가 필요한 통신 환경에서 송신 호스트가 전송한 정보 프레임에 발생할 수 있는 오류에는 프레임 분실 오류와 프레임 변형 오류가 있다.

NAK가 없는 경우

정지-대기 프로토콜 2 : NAK가 없는 경우

먼저 (a)는 송신 호스트가 전송한 정보 프레임을 분실한 경우로, 수신 호스트는 받은 것이 없으므로 정보 프레임에 대한 응답 프레임을 회신할 수 없다.
이를 해결하려면 송신 호스트의 타임아웃Timeout 기능이 반드시 필요하다.
송신 호스트는 정보 프레임 I(i)를 전송하면서 바로 타이머를 구동시키고, 임의의 시간까지 ACK 프레임이 도착되지 않으면 시간 초과에 따른 타이머 동작으로 정보 프레임 I(i)를 재전송한다.
(b)는 ACK 프레임이 송신 호스트에 회신되는 과정에서 손실 혹은 변형되어 송신 호스트가 정보 프레임이 올바르게 전달되었다는 사실을 모르는 경우이다.
송신 호스트 입장에서는 (b)의 상황이 (a)의 상황과 동일하므로 타이머 동작에 의한 재전송 과정이 필요하다.

프레임 변형 오류

프레임 변형 오류에도 동일하게 적용된다.
NAK 프레임이 정의되지 않아 수신 호스트가 프레임 변형 오류에 응답할 방법이 없다.
따라서 송신 호스트의 타임아웃 기능에 의해 오류 복구 기능이 진행되어야 한다.

NAK가 있는 경우

정지-대기 프로토콜 3 : NAK가 있는 경우

프레임 변형 오류가 발생한 경우에 처리하는 방식은 두 가지이다.
첫 번째 방식은 변형된 프레임을 무시하는 것으로, 이는 프레임 분실 오류와 동일한 결과를 가져오기 때문에 분실 처리에 따른 타임아웃 기능을 거친다.
두 번째 방식은 (a)처럼 NAK 프레임을 이용해 프레임 변형 사실을 송신 호스트에 통보하는 것이다.
이 방식에서는 프레임 변형 오류와 프레임 분실 오류를 명확히 구분해 처리한다.

'OS > 네트워크' 카테고리의 다른 글

HDLC 프로토콜  (0) 2021.07.30
슬라이딩 윈도우 프로토콜  (0) 2021.07.30
이더넷  (0) 2021.07.28
MAC 계층과 IEEE 802 시리즈  (0) 2021.07.23
다항 코드  (0) 2021.07.21
Comments