top of page
작성자 사진지현 배

Pipelining protocol

최종 수정일: 2022년 4월 18일


Pipelining protocol이란?

연속적으로 N개까지 계속 보낼 수 있다.



Go-back-N :

- 누적 Ack (마지막 Ack만 제시간에 오면 완료)

- 하나의 타이머로 체크 (보낸 패킷들 중 가장 오래된 timer)

- timeout이 걸리면 window 속 패킷들을 모두 다시 보냄.


윈도우

초록색 : packet을 보내고 Ack까지 받음 = 해결 완료

노랑색 : packet은 보냈는데 Ack/Nak는 아직 못 받음

=> timer시작은 노랑색 중 가장 오래된 패킷부터

파랑색 : packet 보낼 대기 중

흰색 : packet 보낼 준비도 안 됨

N : 연속으로 보내기 위해 저장하는 장소



동작

윈도우 사이즈는 4이다.

sender window 속 파랑색은 packet을 보내고 Ack를 기다리는 중인 상태

sender window 속 하얀색은 아직 window 안에 들어오지 않았고 역시 보내지 않은 상태

  1. sender : 윈도우 사이즈만큼 packet 0, 1, 2, 3을 연속으로 보내고 응답을 기다린다.

  2. receiver : 원하는 packet을 이어서 받지 못하면 그 후 packet이 도착할 때마다 내용은 버리고 잘 받아진 제일 마지막 packet의 Ack를 보낸다.

  3. sender : 응답이 차례로 올때마다, 도착한 packet은 윈도우에서 빼고 아직 윈도우에 들어오지 않은 패킷을 넣은 후 receiver에게 보낸다.

  4. sender : 윈도우 속 제일 오래된 packet의 Ack가 도착하지 않아 timeout이 걸리면, sender는 그 때 윈도우에 있는 모든 packet을 다시 보낸다.



Selective Repeat :

- 개별 Ack

- 개별 타이머로 체크

- timeout이 걸리면 timeout 걸린 패킷만 재전송


Sender

초록색 : packet을 보내고 Ack까지 받음 = 해결 완료

노랑색 : packet은 보냈는데 Ack/Nak는 아직 못 받음

파랑색 : packet 보낼 대기 중

흰색 : packet 보낼 준비도 안 됨

N : 연속으로 보내기 위해 저장하는 장소


Receiver

회색 : packet이 제대로 도착하지 않음

핑크색 : 제대로 도착하지 않은 packet의 뒷 packet으로 일단 버퍼에 저장시킴.

파랑색 : 받을 준비 되어있음.

흰색 : packet 받을 준비도 안 됨.



동작



  1. sender : 윈도우 사이즈만큼 packet 0, 1, 2, 3을 연속으로 보내고 응답을 기다린다.

  2. receiver : 원하는 packet을 이어서 받지 못하면 그 후 packet이 도착할 때마다 버퍼에 넣고 잘 받아진 packet의 Ack를 보낸다.

  3. sender : 응답이 차례로 올때마다, 도착한 packet은 윈도우에서 빼고 아직 윈도우에 들어오지 않은 패킷을 윈도우에 넣은 후 receiver에게 보낸다.

  4. sender : 각 packet의 timer동안 Ack가 도착하지 않아 timeout이 걸리는 packet이 생기면, sender는 timeout 걸린 packet만 다시 보낸다.

  5. receiver : 재전송된 packet이 잘 받아지면 Ack를 보내고 버퍼에 저장된 packet들과 함께 응용계층으로 보낸다.




※ 윈도우 사이즈는 시컨스 넘버의 1/2 이하가 좋다.

sender와 receiver가 서로 소통 할 수 없다.!!


ex) 위 사진은 sender가 0,1,2,3,0,1,2,3 시퀀스를 보내는 상황

receiver가 받은 Ack가 sender에게 도착하지 못하면 receiver는 packet을 받았지만 sender는 재전송한다. 이 때 packet의 시퀀스 번호가 중복될 수 있는데 receiver는 지금 sender가 재전송한 packet이 앞으로 받을 packet이라고 오해할 수 있다.

조회수 6회댓글 0개

최근 게시물

전체 보기

Comments


bottom of page