기초컴퓨터네트워크 10-2 (pipelined protocol )

TonyHan·2021년 6월 18일
0
post-thumbnail

=== Pipelined protocols ===

1. Pipelined protocols

  • pipelining: sender allows multiple, "in-flight", yet-to-be acknowledged packets : 한꺼번에 여러개의 패킷을 보내자는 것이 목적이다.
    • range of sequence numbers must be increased : sequence number이 늘어나야 한다.
    • buffering at sender and/or receiver : buffering이 필요하다.
  • two generic forms of pipelined protocols: go-Back-N, selective repeat

Pipelining: increased utilization

지금은 ACK을 받기 전에 3개의 패킷을 보내버리는 것이다. ACK을 받으면 그다음 패킷을 보낸다.

이렇게 할 경우 utilization이 3배로 늘어난 것을 확인할 수 있다.

Pipelined protocols: overview

  • Go-back-N
    • sender can have up to N unacked packets in pipeline : Go-back-N은 파이프라인에 ack을 받지 않은 패킷들을 N개까지 보낼 수 있다.
    • receiver only sends cumulative ack : receiver가 ACK을 보낼떄는 모든 패킷을 받았을 때에만 ACK을 보낼 수 있다.
  • doesn't ack packet if there's a gap : 첫번째 패킷에 대해서 timer가 존재
    • sender has timer for oldest unacked packet
      • when timer expires, retransmit all unacked packets
  • Selective Repeat : 비어있는 패킷만 재전송하겠다.
    • sender can have up to N unacked packets in pipeline
    • receiver sends individual ack for each packet : individual ack을 보내는 것. 즉 받은 패킷에 대한 segment number 가 담긴 ACK만을 보낸다.
    • sender maintains timer for each unacked packet : sender가 각각의 패킷에 대해 timer을 가지고 있다. 그래서 받지 못한 ACK에 대한 패킷을 재전송한다.
      • when timer expires, retransmit only that unacked packet
profile
신촌거지출신개발자(시리즈 부분에 목차가 나옵니다.)

0개의 댓글