네트워크 전송층
비연결형과 연결지향 프로토콜
전송층에서는 패킷의 물리 경로에 대해서 관여하지 않는다. 전송층에서의 비연결형 서비스는 패킷 간의 독립성을 의미하며, 연결 지향은 종속성을 의미한다.
비연결형 서비스
두 프로세스의 통신을 하기 전에 아무런 사전 작업 없이 바로 패킷을 만들고 전송한다. 패킷 교환망과 유사하다.
연결-지향 서비스
프로세스간 통신을 하기 전에 사전 상위층에서 데이터가 내려오면 작업을 거치고 전송한다. 단, 사전작업은 두 클라이언트의 몫이고 라우터는 사전 작업이 전혀 필요없다. 사전 작업은 순서번호를 동기화하는 것을 말한다.
정지대기 ARQ프로토콜
연결지향 프로토콜이며 송신측과 수신측의 슬라이딩 윈도우 크기가 모두 1이다. 순서번호 개수는 2개이다. 비효율 적이다.
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의 순서 번호 만큼 이동한다.
-
송신 윈도 크기 source:stackOverflow
송신 윈도 크기가 2^m이라면 ack가 모든 순서 번호가 연속적으로 송신측에 도달 하는데 실패 했을때 수신자의 Rn과 송신자의 Sf가 같게 되어 명백한 오류가 발생한다.
-
Go Back N 이라고 불리는 이유
source:http://www.erg.abdn.ac.uk 1번 패킷만 못받고 나머지는 다 받았어도 처음부터 다시 전송한다.
선택적 반복 프로토콜
선택적 반복 프로토콜 에서는 패킷 마다 타이머를 달리하여 실제로 손실된 패킷만 선택적으로 재전송 한다.
윈도 크기가 2^(m-1)보다 크면 송신자의 재전송 패킷을 구분하지 못한다.