비연결형과 연결지향 프로토콜

전송층에서는 패킷의 물리 경로에 대해서 관여하지 않는다. 전송층에서의 비연결형 서비스는 패킷 간의 독립성을 의미하며, 연결 지향은 종속성을 의미한다.


비연결형 서비스

두 프로세스의 통신을 하기 전에 아무런 사전 작업 없이 바로 패킷을 만들고 전송한다. 패킷 교환망과 유사하다.


연결-지향 서비스

프로세스간 통신을 하기 전에 사전 상위층에서 데이터가 내려오면 작업을 거치고 전송한다. 단, 사전작업은 두 클라이언트의 몫이고 라우터는 사전 작업이 전혀 필요없다. 사전 작업은 순서번호를 동기화하는 것을 말한다.


정지대기 ARQ프로토콜

연결지향 프로토콜이며 송신측과 수신측의 슬라이딩 윈도우 크기가 모두 1이다. 순서번호 개수는 2개이다. 비효율 적이다.

stop-wait arq

fsm

  • 송신측

    • 준비 상태

      응용층으로부터 요청이 들어오면 송신측은 순서 번호를 S로 설정한 패킷을 만들고 패킷의 사본을 저장한 후에 패킷을 전송한다. 그런 다음 송신측은 타이머를 구동하고 블로킹 상태로 이동한다.

    • 블로킹 상태

      • 다음에 전송할 패킷에 관련된 확인응답 번호를 가지는 오류없는 Ack가 도탁하면 타이머는 중단된다. 슬라이딩 윈도우는 순서번호는 S = (S+1)모듈러 2이다. 마지막으로 송신측은 준비 상태로 이동한다.

      • 수신된 Ack가 훼손됐거나 또는 오류는 없지만 확인 응답 번호가 (S+1)모듈러 2가 아닌 경우에는 Ack를 폐기한다.

      • 타임 아웃이 발생하면, 송신측은 패킷을 재전송하고 타이머를 재구동 한다.

  • 수신측

    수신측은 항상 준비(Ready) 상태에 있다. 다음의 세 가지 경우가 발생할 수 있다.

    • 순서 번호가 R로 설정된 오류 없는 패킷이 도착하면, 패킷 내의 메시지는 응용층으로 전달된다. 그럼 다음 위도는 R=(R+1)모듈러 2로 이동한다. 마지막으로 확인응답 번호 R로 설정된 Ack가 전송된다.

    • 순서 번호가 R이 아닌 오류 없는 패킷이 도착하면, 패킷은 폐기되고 확인응답 번호 R로 설정된 Ack가 전송된다.

    • 만약 훼손된 패킷이 도착하면 수신된 패킷은 폐기된다.


Go Back N 프로토콜

송신측은 확인 응답을 수신하기 전에 여러개의 패킷을 전송할 수 있다. 그러나 수신측은 하나의 패킷을 버퍼에 저장할 수 있다. 수신 윈도우 크기는 1이다. 송신 윈도는 Sf(응답을 기다리는 맨 처음 윈도 순서번호), Sn(데이터가 내려오면 붙여질 순서 번호), Ssize(위도의 크기)등 3개의 변수를 가지고 윈도의 최대 크기는 2^m -1 이다. 윈도 전체 타이머 하나를 이용한다.

  • 순서번호

    2^m 개 m은 순서번호를 확인하기 위한 비트 수 이다.

  • 누적 Ack

    Sf와 Sn사이의 Ack를 받으면 송신 윈도우는 Ack의 순서 번호 만큼 이동한다.

  • 송신 윈도 크기 obious error source:stackOverflow

    송신 윈도 크기가 2^m이라면 ack가 모든 순서 번호가 연속적으로 송신측에 도달 하는데 실패 했을때 수신자의 Rn과 송신자의 Sf가 같게 되어 명백한 오류가 발생한다.

  • Go Back N 이라고 불리는 이유

    gobackn

    source:http://www.erg.abdn.ac.uk 1번 패킷만 못받고 나머지는 다 받았어도 처음부터 다시 전송한다.


선택적 반복 프로토콜

선택적 반복 프로토콜 에서는 패킷 마다 타이머를 달리하여 실제로 손실된 패킷만 선택적으로 재전송 한다.

selective-repeat

윈도 크기가 2^(m-1)보다 크면 송신자의 재전송 패킷을 구분하지 못한다.