전송계층(Transport Layer)에서는 데이터 전송 보장(Reliable data transfer)을 위해 다양한 방식의 프로토콜을 사용하고 있다.
그 중 Stop-And-Wait, Go-Back-N, Selective Repeat 프로토콜에 대해 알아보자.
-
컴퓨터 네트워크 설정에서 재전송을 기반으로 하는 신뢰적인 데이터 전송 프로토콜중 하나가 ARQ(Automatic Repeat Request)프로토콜인데, Stop-And-Wait는 이 ARQ방식의 일종이다.
-
송신측 A가 B에게 1개의 프레임을 송신하게 되면 B는 해당 프레임의 에러 유무를 판단하여 A에게 ACK혹은 NAK를 보내게 된다.
-
Stop-And-Wait 방식의 경우 구현 방식이 단순하며 송신측내에 양쪽의 슬라이딩 윈도우가 1칸이라는 특징이 있다.
-
하지만 송신측이 ACK혹은 NAK를 받을 때까지 다음 프레임을 받을 수 없으므로 전송효율이 떨어진다.
-
송신자가 확인응답을 기다리지 않고 여러 패킷을 전송할 수 있다.
-
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에 맞게 옆으로 두 칸 더 늘린 모습을 확인할 수 있다.
-
패킷 하나의 오류 때문에 많은 패킷들을 재전송하는 경우가 발생할 수 있다.
-
Selective Repeat ARQ는 수신자에게 오류가 발생된 수신 패킷만을 다시 전송하여 불필요한 재전송을 피한다.
-
n
번 패킷에 대한 ACK는n
번 패킷을 잘 받았다는 의미이다. -
n
번 패킷에 대한 NAK는n
번 패킷을 받지 못했다는 의미이다. -
송,수신자 슬라이딩 윈도우의 최대 크기는 sequence number의 bit가
m
bit일 때2^(m-1)
이다. -
데이터 한 개가 유실이 되었는데 다음 데이터가 올 경우 GBN은 그냥 버리지만 Selective Repeat는 이를 저장해놓을 수 있다.
참고