컴퓨터과학/0 +컴퓨터 네트워킹

[컴퓨터 네트워킹] 3-5) Packet Retransmission method(패킷 재전송 방법)

힘들면힘을내는쿼카 2021. 9. 9. 19:48
728x90
반응형

인터넷 프로토콜을 처음 개발할땐 서로 신뢰할 수 있는 대상자와 통신 했기 때문에 신뢰성을 고려하지 않았다.

하지만 현재는 그러하지않다... ㅠㅠ

그러면 신뢰성있는 데이터를 전송하기 위해서는 어떠한 방법을 써야할까??

 

신뢰성 있는 데이터 전송의 원리

  • 신뢰성 있는 채널을 통한 서비스 추상화
    • 손상 및 손실 없는 데이터
    • 순차적인 데이터 전송

Service of TCP

신뢰성 있는 데이터 전송의 원리

 

 

Error type and solution

데이터를 전송하다보면 다양한 원인으로 패킷이 손실되거나 망가질수 있다.

이러한 문제를 해결하기 위해 에러를 검출하고 다음과 방법을 도입했다.
-> Packet Retransmission method

Error type and solution

 

패킷 재전송 방법은 다음과 같다.

  • ARQ(automatic repeat request)
    • Stop and wart
    • Pipelining method
      • Go back N
      • Selective repeat

 

Stop and wait

  • 송신자는 하나의 패킷을 보내고 수신자로부터 응답이 올때까지 기다린다.
  • 만약 설정한 응답시간이 만료되었을 경우(timeout) 송신자는 응답 받지 못한 패킷을 재전송 한다.
  • Round trip을 고려하여 timeout을 설정해야함

Stop and Wait

 

Stop and Wait

 

하지만 Stop and Wait은 한계가 존재한다..

Stop and Wait 퍼포먼스의 한계

Stop and Wait의 한계

 

이래서 등장한 것이 pipelining...!!!

Pipelining Protocols

Pipelining protocols

 

Pipelining protocol는 2가지 종류가 있다.

Pipelined protocol의 종류

 

Go-back-N

Headerseq num가 있음

Window: RTT동안 보낼 수 있는 패킷의 크기(시간에 따라서 변함)

Go-back-N
Go-back-N 

 

 

Selective Repeat Operation

Selective Repeat Operation

 

Selective Repeat Operation

 

하지만 Window Size와 Seq num를 고려하지 않으면 문제가 발생한다..

Window sizeSeq num와 관계

Window size와 Seq num

 

이러한 문제를 해결하기 위해서는

Window size x 2 <= Seq num 가 성립해야한다.

 

728x90
반응형