K 개발자

오류 제어 본문

OS/네트워크

오류 제어

ddingz 2021. 7. 21. 15:36

전송 오류의 유형

  • 수신 호스트의 응답 프레임
    수신 호스트가 전송하는 응답 프레임의 종류에는 데이터 프레임이 정상적으로 도착했을 때 회신하는 긍정 응답 프레임과 데이터 프레임이 깨졌을 때 회신하는 부정 응답 프레임이 있다.
  • 송신 호스트의 타이머 기능
    송신 호스트는 데이터 프레임을 전송한 후에 일정 시간 이내에 수신 호스트로부터 긍정/부정 응답 프레임 회신이 없으면 타임아웃Timeout 기능을 동작시켜 데이터 프레임을 재전송한다.
  • 순서 번호 기능
    수신 호스트가 중복 데이터 프레임을 가려내려면 각 프레임 내부에 순서 번호Sequence Number를 기록해야 한다.

정상적인 전송

정상적인 데이터 전송

송신 호스트가 전송한 프레임이 오류 없이 수신 호스트에 전송된 경우이다.
수신 호스트는 데이터 프레임을 제대로 수신했다는 의미의 긍정 응답 프레임을 회신함으로써 하나의 데이터 프레임에 대한 전송 과정이 완료된다.

프레임 변형

프레임 변형 오류

데이터 프레임이 수신 호스트에 도착했으나, 전송 과정에서 프레임의 내용이 변형되는 오류가 발생한 경우이다.
프레임 변형 오류를 인지한 수신 호스트는 송신 호스트에 부정 응답 프레임을 전송함으로써, 원래의 데이터 프레임을 재전송하는 오류 복구 과정이 진행된다.

프레임 분실

프레임 분실 오류

송신 호스트가 전송한 데이터 프레임이 전송 과정에서 사라지는 프레임 분실 오류를 보여준다.
수신 호스트는 송신 호스트로부터 어떠한 데이터 프레임도 전달받지 못했기 때문에 긍정 응답이나 부정 응답 프레임을 회신할 수 없다(수신 호스트가 데이터 프레임의 분실 여부를 인지할 수 있는 방법이 없다).
따라서 오류 복구는 송신 호스트 주도로 타임아웃Timeout 기능에 따라 처리된다.
즉, 송신 호스트는 데이터 프레임을 전송한 후에 특정 시간까지 수신 호스트의 긍정/부정 응답 프레임이 도착하지 않으면 타임아웃 기능에 따라 원래의 프레임을 스스로 재전송한다.


순서 번호

순서 번호의 필요성

순서 번호가 없는 경우

(a)처럼 올바르게 수신한 데이터 프레임에 대한 긍정 응답 프레임이 사라지는 오류가 발생하면 송신 호스트의 타임아웃 기능에 따라 재전송 과정이 진행된다.
재전송된 데이터 프레임이 제대로 수신되면 수신 호스트 입장에서는 동일한 프레임을 중복해 수신하는 결과가 초래된다.
(b)는 긍정 응답 프레임이 올바르게 회신되고, 송신 호스트가 다음 데이터 프레임을 송신한 경우이다.
이때는 모든 프레임이 정상적으로 전송되고, 수신 호스트는 서로 다른 두 개의 데이터 프레임을 수신하게 된다.

송신 호스트 입장에서 보면 자신이 동일한 데이터 프레임을 두 번 전송했는지, 아니면 서로 다른 두 개의 데이터 프레임을 연속 전송했는지 구분할 수 있다.
그러나 수신 호스트는 두 경우를 구분할 방법이 없다.
따라서 수신 호스트가 두 경우를 구분할 수 있도록 데이터 프레임별로 고유의 순서 번호Sequence Number를 부여하는 방식이 필요하다.

순서 번호에 의한 프레임 구분

순서 번호가 있는 경우

위에서 데이터 프레임에 순서 번호만 추가했다.
수신 호스트는 (a)처럼 순서 번호에 근거하여 동일한 데이터 프레임이 중복 도착했는지, 아니면 (b)처럼 서로 다른 데이터 프레임이 도착했는지를 구분할 수 있다.


흐름 제어

송신 호스트는 수신 호스트가 감당할 수 있을 정도의 전송 속도를 유지하면서 데이터 프레임을 전송해야 하는데, 이러한 기능을 흐름 제어Flow Control라 한다.
흐름 제어 기능을 제공하지 않으면 수신 호스트는 자신에게 도착한 데이터 프레임을 내부 버퍼에 보관할 여유를 갖지 못한다.
따라서 전송 매체를 통해 올바르게 도착한 프레임이 분실되는 결과를 초래할 수 있다.
흐름 제어 기능의 부재에 따른 프레임 분실은 앞서 설명한 전송 오류의 프레임 분실과 동일한 결과를 가져오기 때문에 이것도 데이터를 재전송하는 방법으로 복구해야 한다.

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

다항 코드  (0) 2021.07.21
프레임  (0) 2021.07.21
데이터 전송 방식  (0) 2021.07.17
서비스 품질(QoS)  (0) 2021.07.15
인터네트워킹  (0) 2021.07.15
Comments