logo

돌아가기 N - 슬라이딩 윈도우 프로토콜

GBN(Go-Back-N)은 송신자가 개별 승인을 기다리지 않고 여러 프레임(정의된 창 크기까지)을 전송할 수 있도록 하는 슬라이딩 창 ARQ 프로토콜입니다.

파이썬 필터링
  • 패킷이 손실되거나 손상된 경우 보낸 사람은 해당 패킷과 해당 창의 모든 후속 패킷을 재전송합니다.
  • 예: 패킷 1~5가 전송되고 패킷 3이 손실된 경우 패킷 3, 4 및 5가 재전송됩니다.

이 메커니즘은 안정성을 보장하지만 오류가 자주 발생하면 대역폭을 낭비할 수 있습니다.

GBN의 세 가지 주요 특징은 다음과 같습니다.

1. 송신자 창 크기(W 에스 )

N 그 자체입니다. 프로토콜이 GB10이라고 하면 Ws = 10입니다. 파이프라이닝을 구현하려면 N이 항상 1보다 커야 합니다. N = 1의 경우 다음과 같이 감소합니다. 중지 및 대기 프로토콜 .

GBN의 효율 = N/(1+2a)

어디

a = 티/티
= 전파 지연
= 발신자의 전송 지연

처리 지연 큐잉 지연과 승인 전송 지연이 0이 아닌 경우 효율성은 어떻게 될까요?

효율성 = N * (유용 시간) / (총 시간)

여기서 유용한 시간=T

총 시간 = T+ 2 * 티+피아르 자형+ Pq + T(ack)

어디

  • =발신측의 전송 지연
  • = 전파 지연
  • Pr = 처리 지연
  • Pq = 대기열 지연
  • (ack) = 승인 전송 지연

B가 채널의 대역폭이라면

유효 대역폭 또는 처리량
= 효율성 * 대역폭
= (N/(1+2a)) * B

2. 수신기 창 크기(W 아르 자형 )

  • GBN에서는 항상 1입니다.
  • 수신기는 예상되는 다음 패킷만 수락합니다.
  • 순서가 잘못된 패킷은 삭제됩니다.

3. 감사의 말씀

승인(ACK)은 데이터 패킷의 성공적인 수신을 확인하기 위해 수신자가 보내는 신호입니다. 이는 발신자와 수신자 간의 안정적인 통신을 보장합니다. 설정된 시간 내에 ACK가 수신되지 않으면 보낸 사람은 패킷이 손실된 것으로 가정하고 다시 전송합니다.

ACK 유형

누적 ACK

  • 단일 승인은 특정 지점까지의 모든 패킷 수신을 확인합니다.
  • 이점: 트래픽이 적습니다(ACK 수가 적음).
  • 불리: 하나의 ACK가 손실되면 안정성이 떨어지며 여러 패킷이 승인되지 않은 것으로 나타납니다.

독립 ACK

  • 각 패킷은 개별적으로 승인됩니다.
  • 이점: 높은 신뢰성.
  • 불리: 더 많은 ACK로 인해 트래픽이 증가합니다.

GB-N 프로토콜의 작동

보내는 페이지

  • N 크기의 창을 유지합니다(예: GB4 창 크기 = 4).
  • 승인되지 않은 패킷을 최대 N개까지 보낼 수 있습니다.
  • 전송된 각 패킷에는 타이머가 있습니다.
  • ACK가 수신되면 창이 앞으로 이동합니다.
  • 누락된 패킷으로 인해 시간 초과가 발생하면 발신자는 해당 패킷과 해당 창의 모든 후속 패킷을 재전송합니다.

수신기 측

  • 창 크기를 1(WR = 1)로 유지합니다.
  • 예상되는 패킷만 순서대로 수락합니다.
  • 올바른 패킷이 도착하면 ACK를 보내고 다음 예상 시퀀스 번호로 이동합니다.
  • 잘못된 패킷이 도착하는 경우: 이를 폐기하고 마지막으로 올바르게 수신된 패킷에 대해 ACK를 다시 보냅니다.
슬라이딩_SET_2-1' title=

창 크기와 시퀀스 번호의 관계

그만큼 창 크기 그리고 시퀀스 번호 Go-Back-N 또는 선택적 반복과 같은 슬라이딩 윈도우 프로토콜에서는 서로 밀접하게 관련되어 있습니다.

  • 그만큼 창 크기 송신자가 승인 없이 전송할 수 있는 패킷 수를 결정합니다. 이는 발신자가 중지하고 확인을 기다려야 하기 전에 전송할 수 있는 데이터 양에 대한 제한과 같습니다.
  • 시퀀스 번호 수신자가 순서를 알고 누락된 패킷을 감지할 수 있도록 패킷에 레이블을 지정하는 데 사용됩니다.

그만큼 창 크기 사용 가능한 범위보다 작거나 같아야 합니다. 시퀀스 번호 . 창 크기가 시퀀스 번호 범위에 비해 너무 크면 첫 번째 시퀀스 번호가 승인되기 전에 동일한 시퀀스 번호가 재사용될 수 있으므로 수신자가 혼란을 겪을 수 있습니다. 이렇게 하면 패킷이 새 것인지 중복된 것인지 알기가 어려워집니다.

창 크기와 시퀀스 번호 간의 관계는 다음 공식으로 제공됩니다.

안에에스+ 여아르 자형<= ASN

여기서 W에스발신자 창 크기 및 W아르 자형수신기 창 크기이고 ASN은 사용 가능한 시퀀스 번호입니다.

안에에스+ 1<= ASN because W아르 자형= GB-N 프로토콜에서 1

따라서 GBN에 필요한 최소 시퀀스 번호 = N + 1

GBN에 필요한 비트 = ⌈ log2(N + 1)⌉

중복 패킷 문제를 피하기 위해 추가 1이 필요합니다.

자바 필터 스트림

GB-N 프로토콜

GB4의 예를 고려하십시오.

  • 발신자 창 크기는 4이므로 창의 각 패킷에 레이블을 지정하려면 최소 4개의 시퀀스 번호가 필요합니다.
  • 이제 수신자가 모든 패킷(발신자가 보낸 0 1 2 및 3)을 수신하여 이제 다시 패킷 번호 0을 기다리고 있다고 가정합니다(N = 4이므로 사용할 수 있는 시퀀스 번호가 4개이므로 여기서는 4를 사용할 수 없습니다).
  • 이제 위 4개 패킷에 대한 누적 ack가 네트워크에서 손실되었다고 가정합니다.
  • 발신자 측에서는 패킷 0에 대한 시간 초과가 발생하므로 4개의 패킷이 모두 다시 전송됩니다.
  • 이제 문제는 수신기가 0부터 시작했어야 하는 새로운 패킷 세트를 기다리고 있지만 이제는 이전에 허용된 패킷의 중복 복사본을 수신하게 된다는 것입니다.
  • 이를 방지하려면 하나의 추가 시퀀스 번호가 필요합니다.
  • 이제 수신자는 패킷 번호 4를 기다리게 되므로 0부터 시작하는 모든 중복 패킷을 쉽게 거부할 수 있습니다(이제 추가 시퀀스 번호를 추가했습니다).

이는 아래 그림을 통해 설명됩니다. 시퀀스 번호 4로 시도해 보세요.

슬라이딩_SET_2-3' loading='lazy' title=

이제 하나의 추가 시퀀스 번호를 사용해 보십시오.

슬라이딩_SET_2-4' loading='lazy' title=

이제 GBN 프로토콜에 추가 1비트가 필요한 이유가 분명해졌습니다.

GBN 프로토콜의 장점

  • 구현이 간단하고 안정적인 통신에 효과적입니다.
  • 오류가 없거나 오류가 적은 네트워크를 위한 중지 및 대기 프로토콜보다 더 나은 성능을 제공합니다.

GBN 프로토콜의 단점

  • 여러 프레임을 불필요하게 재전송해야 하므로 오류가 자주 발생하는 경우 비효율적입니다.
  • 중복된 재전송으로 인해 대역폭이 낭비될 수 있습니다.
퀴즈 만들기