Skip to content

전송계층 프로토콜

전송계층(Transport Layer)에서는 데이터 전송 보장(Reliable data transfer)을 위해 다양한 방식의 프로토콜을 사용하고 있다.

그 중 Stop-And-Wait, Go-Back-N, Selective Repeat 프로토콜에 대해 알아보자.

Stop-And-Wait(정지 대기 방식)

  • 컴퓨터 네트워크 설정에서 재전송을 기반으로 하는 신뢰적인 데이터 전송 프로토콜중 하나가 ARQ(Automatic Repeat Request)프로토콜인데, Stop-And-Wait는 이 ARQ방식의 일종이다.

  • 송신측 A가 B에게 1개의 프레임을 송신하게 되면 B는 해당 프레임의 에러 유무를 판단하여 A에게 ACK혹은 NAK를 보내게 된다.

  • Stop-And-Wait 방식의 경우 구현 방식이 단순하며 송신측내에 양쪽의 슬라이딩 윈도우가 1칸이라는 특징이 있다.

  • 하지만 송신측이 ACK혹은 NAK를 받을 때까지 다음 프레임을 받을 수 없으므로 전송효율이 떨어진다.

    image

Go-Back-N

  • 송신자가 확인응답을 기다리지 않고 여러 패킷을 전송할 수 있다.

  • n번 패킷에 대한 ACK는, 0번 부터 n-1번까지의 패킷을 모두 잘 받았으니 n번 패킷을 보내달라는 의미이다.

  • 송신자 슬라이딩 윈도우의 최대 크기는 sequence number의 bit가 m bit일 때 (2^m)-1이다. (수신자의 버퍼는 여전히 1이다.)

  • 위의 그림의 경우 Windows Size가 7이므로 0~6까지 7개의 프레임을 보낼 수 있으며 2, 3, 4를 보내고 있는 와중에 0과 1에 대한 ACK가 왔기 때문에 Window size에 맞게 옆으로 두 칸 더 늘린 모습을 확인할 수 있다.

  • 패킷 하나의 오류 때문에 많은 패킷들을 재전송하는 경우가 발생할 수 있다.

    image

Selective Repeat ARQ (선택적 방법)

  • Selective Repeat ARQ는 수신자에게 오류가 발생된 수신 패킷만을 다시 전송하여 불필요한 재전송을 피한다.

  • n번 패킷에 대한 ACK는 n번 패킷을 잘 받았다는 의미이다.

  • n번 패킷에 대한 NAK는 n번 패킷을 받지 못했다는 의미이다.

  • 송,수신자 슬라이딩 윈도우의 최대 크기는 sequence number의 bit가 m bit일 때 2^(m-1)이다.

  • 데이터 한 개가 유실이 되었는데 다음 데이터가 올 경우 GBN은 그냥 버리지만 Selective Repeat는 이를 저장해놓을 수 있다.

    image

참고