긍정 응답, 부정 응답 프레임 모두 회신하고자 하는I 프레임 순서 번호 포함. 제대로 도착한 프레임과 오류가 발생한 프레임 판단 가능
몇 가지 프로토콜을 예시로 들어 각 상황에서 어떻게 동작하는지 알아보자.
오류, 흐름 제어가 없는 프로토콜 (단순 프로토콜)
가정(조건)
단방향 통신: 송신 호스트에서 수신 호스트한쪽으로만 데이터 전송
전송 오류가 없는 물리 매체: 오류 제어 기능이 필요 없음
무한 개의 수신 버퍼: 흐름 제어 기능이 필요 없음
송신 호스트는원하는 만큼 자유롭게 프레임을 전송할 수 있음
프레임 분실/변형 오류가 발생하지 않으므로 오류 제어 없음
수신 버퍼가 무한이므로 분실 오류 없음
순서번호도 불필요
하지만 이런 프로토콜은 현실적으로 불가능
오류 제어가 없는 프로토콜 (정지-대기 프로토콜)
가정(조건)
단방향 통신: 송신 호스트에서 수신 호스트한쪽으로만 데이터 전송
전송 오류가 없는 물리 매체: 오류 제어 기능이 필요 없음
유한 개의 수신 버퍼: 버퍼 부족으로 프레임 분실 가능
정지대기(STOP-AND-WAIT)란?
하나의 프레임 전송 후 응답 대기
전송 효율이 떨어지므로 잘 사용하지 않음
수신 버퍼 수가 유한하므로 흐름 제어(STOP-AND-WAIT) 필요
이전 프레임을 잘 받았다는긍정 응답 기능과 수신 호스트가 송신 호스트의전송 시점을 지정하기 위한 ACK 프레임 필요(오류 제어 개념이 아님)
하지만 이 응답 프레임마저 분실될 수 있어 프레임을 또 보낼 수 있기 때문에(중복 수신)순서 번호 필요
가장 단순한 프로토콜
단방향 프로토콜
가정(조건)
단방향 통신: 송신 호스트에서 수신 호스트한쪽으로만 데이터 전송
전송 매체 오류 발생 가능
버퍼 유한
NAK가 없는 경우 1
- 정보 프레임 분실 - 주어진 시간 내 응답(ACK 또는 NAK)이 오지 않았기 때문에 분실로 인지하고 프레임 재전송 (타임아웃 기능)
NAK가 없는 경우 2
- ACK 프레임 분실 - 수신 호스트로부터 응답이 오지 않은 경우와 동일하게 처리 - i번 프레임을 수신했다는 응답을 보냈는데 또 전송된 것으로 응답이 분실됐음을 판단하여 응답을 재전송하는 것으로 오류 극복
NAK가 없는 경우 3
- 정보 프레임 변형 - 따라서 수신 호스트에서 응답이 나가지 않음 - 위 두 가지 케이스와 동일하게 처리
NAK가 있는 경우 1
- 정보 프레임 변형 - 변형된 프레임을 무시하여 프레임 분실 오류와 동일하게 처리 - NAK가 없는 경우와 동일하게 처리 (타임아웃으로 재전송)
NAK가 있는 경우 2
- 정보 프레임 변형 - NAK를 이용하여 데이터 오류 통보 - 통보 받은 송신 호스트가 데이터 재전송 - 타임아웃이 되기 전 데이터를 재전송하므로 시간이 덜 걸리므로 NAK 응답이 없는 경우보다 더 효율적 - 그러나 다른 요인에 의해 NAK를 사용하지 못하는 경우도 있음