[Network] 16. Pipelined Protocols

dnjstjt12·2024년 11월 11일

Pipelined protocols

  • rdt 3.0는 하나의 packet이 전달되면 멈추고 응답을 기다려야하는 stop-and-wait방식이기 때문에 효율적이지 못하다.

  • 그래서 packet을 여러 개 보내야 하는것을 허용하는게 Pipelining이다.

  • pipelining의 종류로는 Go-Back-N, selective Repeat가 있다.

Go-Back-N

  • sender는 N개의 Packet을 보낸다.
  • Window Size는 고정된 값이고 sender와 reciver 모두 같은 window size를 가진다.
  • cumulative ACK을 사용한다. reciver가 n번 seq까지 정상적으로 받았다면 cumulation ACK은 n이 된다. ACK(n).
  • sender는 타이머가 지나면, reciver 측에서 ack을 받지 못한 packet부터 다시 N개의 Packet을 보낸다.
  • reciver측에서 순서에 맞지 않는 packet이 들어오면 그 packet은 폐기가 된다.

Selective repeat

  • sender는 N개의 Packet을 보낸다.

  • Window Size는 고정된 값이고 sender와 reciver 모두 같은 window size를 가진다.

  • reciver에서 받은 packet에 대한 ACK을 sender에게 보낸다.

  • 만약 packet n에 대한 time out이 초과되면 packet n만 다시 보내고 해당 packet의 timer를 재시작한다.

  • 만약에 정상적으로 전송되었지만 ACK에서 오류가 나면, sender는 packet을 다시 보낸다. 그 결과 reciver에서 순서가 뒤바뀔 수 있다. 이를 out-of-order라고 한다.
  • out-of-order packet이 들어오면, 이 패킷을 폐기되고, ACK만 보낸다.

[참고] Computer Networking A Top-Down Approach EIGHTHEDITION/Kurose.Ross/Pearson

profile
안녕하세요!

0개의 댓글