프레임 종류
정보 프레임 ( I 프레임 )
: 상위 계층이 전송을 요구한 데이터를 수신 호스트에 전송하는 용도로 사용
: 순서번호, 송수신 호스트 정보 등이 포함됨
긍정 응답 프레임 ( ACK 프레임 )
: 전송 데이터가 올바르게 도착했음을 회신하는 용도(받은 숫자에 +1 )
: 데이터를 수신한 호스트가 데이터를 송신한 호스트에게 전송
부정 응답 프레임 ( NAK 프레임 )
: 전송 과정에서 프레임 변형 오류가 발생했음을 회신하는 용도 (받은 숫자 그대로)
: 원래의 정보 프레임을 재전송하도록 요청
: 송신 호스트는 오류가 발생한 프레임을 동일한 순서 번호로 다시 전송
오류, 흐름 제어가 없는 프로토콜
가정 : 가장 이상적인 통신환경
: 단방향 통신 – 데이터는 송신 호스트에서 수신 호스트로만 전달
: 전송 오류 없는 물리 매체 : 통신 채널에서는 전송 오류가 발생하지 않음
: 무한 개의 수신 버퍼 : 수신 호스트의 버퍼 수는 무한함
단순 프로토콜
: 송신 호스트는 원하는 만큼 자유롭게 프레임을 전송할 수 있음
: 오류 제어 – 프레임 분실/변형 오류가 발생하지 않음
: 흐름 제어 – 수신 버퍼가 무한이므로 분실 오류 없음
사진 오류 > 응답 프레임이 정보 프레임보다 1씩 커야됨오류 제어만 없는 프로토콜 (흐름제어 존재 : 가득차면 ack를 늦게 보내며 조절)
가정 : 수신 호스트의 버퍼 개수가 유한
: 단방향 통신 – 데이터는 송신 호스트에서 수신 호스트로만 전달
: 전송 오류가 없는 물리 매체 : 통신 채널에서는 전송 오류가 발생하지 않음
정지-대기(Stop and Wait) 프로토콜
: 수신 호스트 버퍼 개수가 유한할 경우, 흐름 제어 기능으로 송신 호스트의 전송 속도를 조절함
: ACK 프레임 – 송신 호스트에 긍정 응답의 기능을 수행, 다음 프레임을 전송하도록 지시하는 흐름 제어 기능도 수행
: 정지-대기 방식 – 수신 호스트가 회신하는 ACK프레임이 도착해야 다음 프레
임을 전송할 수 있는 프로토콜 방식
단방향 프로토콜
가정 : 오류 제어와 흐름 제어 기능 지원
: 단방향 통신 – 데이터는 송신 호스트에서 수신 호스트로만 전달
오류 제어와 흐름 제어가 모두 필요
프레임 변형 오류를 해결하기 위한 수신 호스트의 NAK 기능 필요
프레임 분실 오류를 해결하기 위한 송신 호스트의 Timeout 기능 필요
NAK가 없는 경우
NAK가 있는 경우
프레임 분실 오류 : 송신 호스트의 타임아웃 기능으로 오류 복구
프레임 변형 오류 : 수신 호스트의 NAK 프레임 응답으로 오류 복구
쉽게 표로 설명
실제 환경에서는 대부분 양방향 통신이 이루어지며, 오류 제어와 흐름 제어 기능을 모두 지원한다.
송신 호스트는 정보 프레임(전송 데이터, 순서 번호, 오류 검출 코드)을 순서 번호에 따라 순차적으로 전송함
정보프레임 +1 로 ACK를 보냄
송신 윈도우는 전송은 되었지만 긍정 응답이 회신되지 않은 프레임을 보관함
흐름제어
연속형 전송
정지-대기 프로토콜(NAK 없음)은 송신 윈도우 크기가 1인 경우
연속형 전송 : ACK 프레임을 받지않고 여러 프레임을 연속 전송
: 오류 가능성이 적은 환경에서 효율적인 장점
오류 해결 방법
: 고백 N 방식 : 오류가 발생한 프레임 이후의 모든 프레임을 재전송
: 선택적 재전송 : 오류가 발생한 프레임만 재전송
– 오류가 발생한 프레임을 포함해 이후에 전송된 모든 프레임을 재전송
사진 설명송신창
수신창
ACK 누락
이 부분은 정지대기 프로토콜과 비슷함
송신창
수신창
데이터 누락
말 그대로 누락이 된 frame만 재전송
요약
선택적 재전송에서는 송신 창과 수신창의 크기는 최대 2^m의 절반이다
정보 프레임을 전송하면서 응답기능까지 함께 수행, 전송 효율을 높임
피기배킹을 사용하지 않는 경우
피기배킹을 사용하는 경우
: 정보 프레임의 표기방식을 I(i, j)로 재정의
: i는 자신이 전송하는 데이터의 순서 번호, j는 제대로 수신한 프레임의 순서 번호를 의미
너무 좋은 글이네요. 공유해주셔서 감사합니다.