Pipelined protocols

saewoohan·2024년 5월 25일
0

Computer Network

목록 보기
5/14
post-thumbnail

해당 포스팅은 한양대학교 이석복 교수님의 컴퓨터네트워크 강의를 정리한 글입니다.
http://www.kocw.net/home/search/kemView.do?kemId=1169634

1. Go-Back-N

  • Go-Back-N 방식은 receiver 측에서 순서대로 받지 못한 패킷이 있다면 해당 패킷부터 다시 재전송 하는 방식이다.
  • window (N)만큼 재 전송하는 방식이다.
  • cumulative ACK를 사용하는데, 이는 ACK(n)이라면 n번의 packet까지 잘 받았다는 신호이다.
  • 송신자는 보낸 패킷의 ACK가 정상적으로 왔다면, 패킷 처리 후 window를 오른쪽으로 한 칸 sliding 한다.
  • Timeout 발생 시 window에 있는 모든 패킷을 다시 전송한다.

2. Selective Repeat

  • 정상적으로 도착한 패킷이더라도 손실 패킷 이후 모든 패킷들을 재전송해야 하기 때문에 비효율적일 수 있다.
  • 자동 반복 요청(ARQ) 프로토콜의 한 형태로, 수신자가 수신한 각각의 패킷에 대해 개별적인 확인 응답(Individual Acknowledge)을 보내는 방식
  • receiver가 buffer를 가지고 있다.

  • 즉 버퍼에 저장하고 있다가, 유실된 packet에 대한 timeout 후, 제대로된 packet를 받게 된다면 그때 적재한다.

1) Selective repeat: dilemma

  • sequence number가 0, 1, 2, 3이고, window size가 3인 경우?

  • (a)의 경우는 receiver의 response가 모두 손실된 경우이다.
  • 이때, 수신자는 패킷들을 모두 제대로 받았으므로 window를 [3,0,1]로 옮긴다.
  • 송신자는 ACK를 받지 않았고, 0번 패킷이 timeout이 되었으므로 재전송한다.
  • (b)의 경우는 수신자가 정상적으로 응답했을 경우이다.
  • 이때, [0,1,2]를 모두 받았으므로 sender의 window는 옮겨진다.
  • 송신자가 3번 패킷을 보내고 이에 대해서 유실이 되ㅓ었다.
  • 송신자가 그 후 0번 패킷을 보내게 되는데, 이 패킷이 새로운 패킷인지 아니면 재전송되는 패킷인지 구분할 수 없다.
  • 즉, 너무 큰 N을 설정하는 것은 수신자로 하여금 딜레마에 빠지게 한다.
  • 결론적으로 window size는 sequence number의 절반의 이하가 되어야 한다.

0개의 댓글