비교 차트
비교의 근거 | 고백 - N | 선택적 반복 |
---|---|---|
기본 | 손상되거나 손실 될 것으로 의심되는 프레임 이후에 보낸 모든 프레임을 다시 전송합니다. | 손실되거나 손상된 것으로 의심되는 프레임 만 재전송합니다. |
대역폭 사용률 | 오류율이 높으면 많은 대역폭을 낭비합니다. | 재전송시 비교적 적은 대역폭이 낭비됩니다. |
복잡성 | 덜 복잡합니다. | 추가 로직 및 정렬 및 저장을 송신자 및 수신자에 적용해야하므로 더 복잡합니다. |
창 크기 | N-1 | <= (N + 1) / 2 |
정렬 | 정렬은 송신 측이나 수신 측에서 필요하지 않습니다. | 수신기는 프레임 시퀀스를 유지해야하므로 정렬 할 수 있어야합니다. |
저장 중 | 수신자는 손상된 프레임이 재전송 될 때까지 손상된 프레임 이후에 수신 된 프레임을 저장하지 않습니다. | 수신자는 손상된 프레임 이후에 수신 된 프레임을 손상된 프레임이 바뀔 때까지 버퍼에 저장합니다. |
수색 | 송신 측이나 수신 측 모두에서 프레임 검색이 필요 없음 | 보낸 사람은 요청 된 프레임 만 검색하고 선택할 수 있어야합니다. |
ACK 번호 | NAK 번호는 다음 예상 프레임 번호를 나타냅니다. | NAK 번호는 손실 된 프레임을 나타냅니다. |
용도 | 더 자주 사용됩니다. | 복잡하기 때문에 실제로는 적습니다. |
고백 - N의 정의
Go-Back-N 프로토콜은 슬라이딩 윈도우 프로토콜입니다. 데이터 링크 계층에서 오류를 감지하고 제어하는 메커니즘입니다. 송신자와 수신자간에 프레임을 전송하는 동안 프레임이 손상되거나 손실되거나 수신 확인이 손실되면 발신자와 수신자가 수행 한 작업이 다음 내용에서 설명됩니다.
손상된 프레임
수신기가 손상된 프레임을 수신하거나 프레임을 수신하는 동안 오류가 발생하면 수신기는 재전송 될 것으로 예상되는 해당 프레임 번호와 함께 해당 프레임에 대한 NAK (부정 확인 응답)를 전송합니다. NAK를 전송 한 후, 수신기는 손상된 프레임 이후에 수신 한 모든 프레임을 폐기합니다. 수신기는 폐기 된 프레임에 대해 ACK (확인 응답)를 보내지 않습니다. 보낸 사람이 손상된 프레임에 대해 NAK를 수신하면 NAK가 참조하는 프레임 번호 이후부터 모든 프레임을 다시 전송합니다.
잃어버린 프레임
수신기는 각 프레임의 번호를 확인하여 수신합니다. 프레임 번호가 시퀀스에서 스킵되면, 수신기는 새롭게 수신 된 프레임이 순서가 맞지 않게 수신됨에 따라 프레임의 손실을 용이하게 검출한다. 수신기는 손실 된 프레임에 대해 NAK를 전송하고, 수신기는 손실 된 프레임 이후에 수신 된 모든 프레임을 폐기합니다. 수신기는 폐기 된 프레임에 대해 어떠한 ACK (확인 응답)도 보내지 않습니다. 보낸 사람은 손실 된 프레임에 대한 NAK를받은 후 NAK가 참조한 손실 된 프레임을 다시 전송하고 손실 된 프레임 이후에 보낸 모든 프레임을 다시 전송합니다.
분실 확인
보낸 사람이 ACK를받지 못하거나 전송 사이에 ACK가 손실되거나 손상된 경우 보낸 사람은 시간이 끝나기를 기다리고 시간이 다되면 보낸 사람은 ACK를받지 못한 모든 프레임을 다시 전송합니다. 발신자는 타이머의 도움을 받아 ACK 손실을 식별합니다.
ACK 번호는 NAK (부정 확인 응답) 번호와 마찬가지로 수신자가 다음 순서로 기대하는 프레임 번호를 표시합니다. 데이터 링크 계층은 네트워크 계층 옆에 전송해야하는 프레임 만 필요로하므로 수신기의 창 크기는 1입니다. 발신자 창 크기는 'w'와 같습니다. 오류율이 높으면 많은 대역폭을 낭비하게됩니다.
선택적 반복의 정의
선택적 반복은 데이터 링크 계층에서 발생한 오류를 감지하거나 수정하는 슬라이딩 윈도우 프로토콜입니다. 선택적 반복 프로토콜은 손상되거나 손실 된 프레임 만 재전송합니다. 선택적 반복 프로토콜에서는 재전송 된 프레임이 순서가 맞지 않게 수신됩니다. 선택적 반복 프로토콜은 다음 작업을 수행 할 수 있습니다
- 수신기는 시퀀스가 수신 프레임과 순서가 다른 재전송 된 프레임을 수신 할 때 적절한 시퀀스로 프레임을 분류 할 수 있습니다.
- 보낸 사람은 NAK가 수신 된 프레임을 검색 할 수 있어야합니다.
- 수신기는 재전송 된 프레임이 정렬되고 적절한 순서로 배치 될 때까지 이전에 수신 된 모든 프레임을 보관하기 위해 버퍼를 포함해야합니다.
- NAK 번호와 마찬가지로 ACK 번호는 손실되거나 손상된 프레임을 나타냅니다.
- go-back-n 프로토콜에 비해 창 크기가 작아야합니다.
손상된 프레임
수신기가 손상된 프레임을 수신하면 오류 또는 손상이 감지 된 프레임에 대해 NAK를 전송합니다. go-back-n과 마찬가지로 NAK 번호는 이전에 수신 된 프레임의 승인과 현재 프레임의 오류를 나타냅니다. 리시버는 손상된 프레임이 교체 될 때까지 기다리는 동안 새 프레임을 계속 수신합니다. 손상된 프레임 이후에 수신 된 프레임은 손상된 프레임이 교체 될 때까지 인식되지 않습니다.
잃어버린 틀
선택적 반복 프로토콜에서와 같이, 프레임은 순서가 맞지 않게 수신 될 수 있으며, 프레임의 적절한 순서를 유지하기 위해 정렬됩니다. 분류하는 동안, 프레임 번호가 스킵되면, 수신기는 프레임이 손실되었다는 것을 인식하고, 그 프레임에 대한 NAK를 송신자에게 보낸다. 손실 된 프레임에 대한 NAK를 수신 한 후, 송신기는 그 프레임에서 그 프레임을 검색하고 그 프레임을 재전송한다. 마지막으로 전송 된 프레임이 손실되면 수신자는 응답하지 않으며이 묵음은 보낸 사람에 대한 부정적인 응답입니다.
분실 확인
송신자가 ACK를 수신하지 않거나 전송 사이에 ACK가 손실되거나 손상된 경우. 보낸 사람은 시간이 끝나기를 기다리고 시간이 다되면 보낸 사람은 ACK를받지 못한 모든 프레임을 다시 전송합니다. 발신자는 타이머의 도움을 받아 ACK 손실을 식별합니다.
Go-Back-N과 선택적 반복의 주요 차이점
- Go-Back-N 프로토콜은 손상되거나 손실 된 프레임 이후에 도착한 모든 프레임을 재전송하는 디자인입니다. 반면, 선택 반복 프로토콜은 손상되거나 손실 된 프레임 만 재전송합니다.
- 오류율이 높으면 더 많은 프레임이 손상되고 손상된 프레임 이후에 도착한 모든 프레임을 다시 전송하면 많은 대역폭이 낭비됩니다. 반면, 선택적 반복 프로토콜은 손상된 프레임 만 재전송하므로 최소 대역폭이 낭비됩니다.
- 손상된 프레임 이후의 모든 프레임은 폐기되고 재전송 된 프레임은 손상된 프레임의 시퀀스에 도착하므로 프레임을 정렬하는 데 덜 골머리가되므로 덜 복잡합니다. 반면에 손상되거나 의심되는 프레임 만 재전송되므로 여분의 논리가 정렬을 위해 적용되어야하므로 더 복잡합니다.
- Go-Back-N은 N-1의 창 크기를 가지며 선택적 반복은 <= (N + 1) / 2의 창 크기를가집니다.
- 송신자도 수신기도 Go-Back-N의 정렬 알고리즘을 필요로하지 않지만 수신자는 시퀀스를 유지해야하는 것처럼 정렬 할 수 있어야합니다.
- Go-Back-N 수신기는 손상된 프레임 이후의 모든 프레임을 폐기하므로 프레임을 저장할 필요가 없습니다. 선택적 반복 프로토콜은 손상된 프레임 다음에 도착한 프레임을 삭제하지 않고 대신 손상된 프레임이 성공적으로 도착하여 적절한 순서로 정렬 될 때까지 해당 프레임을 저장합니다.
- 선택적 반복 NAK 프레임에서 손상된 프레임 번호를 참조하고 Go-Back-N에서 NAK 프레임은 예상 된 다음 프레임을 나타냅니다.
- 일반적으로 Go-Back-N은 Selective Repeat 프로토콜 대신에 덜 복잡한 특성 때문에 더 많이 사용됩니다.
결론:
선택적인 반복은 적절하게 수신 된 프레임에 대해 대역폭을 낭비하지 않기 때문에보다 효율적인 프로토콜이지만, 복잡성과 비용은 go-back-n 프로토콜의 사용을 선호합니다.