파이프라이닝 프로토콜

oyeon·2023년 9월 28일
0

컴퓨터 네트워크

목록 보기
8/15

슬라이딩 윈도우

  • 연속된 데이터에서 일정 크기의 윈도우를 설정하고, 이 윈도우를 하나씩 이동시키면서 데이터를 처리하는 기법

네트워크 활용 배경

  • 데이터를 패킷으로 분할하여 네트워크를 통해 전송할 때, 모든 패킷이 순서대로 또는 손상 없이 도착하지 않을 수 있다. 슬라이딩 윈도우 기법은 이러한 문제를 해결하기 위해 탄생

네트워크에서의 원리

  1. 윈도우 크기 설정: 송신 측과 수신 측은 각각 윈도우의 크기를 가진다. 이 크기는 한 번에 전송하거나 받을 수 있는 패킷의 최대 개수를 나타냄
  2. 데이터 전송: 송신 측은 설정된 윈도우 크기만큼의 패킷을 연속적으로 전송한다.
  3. ACK와 NAK: 수신 측은 패킷을 받을 때마다 확인 응답(ACK)을 전송한다. 만약 패킷에 문제가 있으면, 부정 응답(NAK)을 전송하여 해당 패킷의 재전송을 요청한다.
  4. 윈도우 슬라이드: 송신 측은 ACK를 받을 때마다 윈도우를 오른쪽으로 슬라이드하여 다음 패킷들을 전송한다. NAK를 받으면 해당 패킷을 재전송하고 윈도우는 그 위치에 머무른다.

장점

효율성: 한 번에 여러 패킷을 전송하여 네트워크의 대역폭을 효율적으로 사용
신뢰성: 잘못된 패킷이나 손실된 패킷을 재전송할 수 있어 데이터의 정확한 전송을 보장

TCP 프로토콜에서 슬라이딩 윈도우

  • TCP(Transmission Control Protocol)는 슬라이딩 윈도우 기법을 활용하여 데이터 전송의 신뢰성을 확보한다.
  • TCP는 윈도우 크기를 동적으로 조절하며, 네트워크의 혼잡 상황에 따라 윈도우 크기를 조절하여 최적의 전송 성능을 달성한다.

GBN(Go Back N) 프로토콜

  • Receiver 측에서 순서대로 받지 못한 패킷이 있다면 해당 패킷부터 다시 재전송 하는 방식이다.
  • Sender는 패킷2에 대한 ack2를 받지 못한 시점부터 패킷2 타임아웃되기 전까지의 Receiver의 ack를 무시한다.
  • 즉, Receiver는 패킷3, 4, 5를 받았다 할지라도 이를 버리고, 직전에 성공한 패킷1에 대한 ack1을 보낸다. 그리고 Sender는 중복된 패킷이므로 ack1을 무시한다.
  • 결국, 패킷2 타임아웃이 되면 Sender는 그동안 받지 못한 패킷부터 다시 순차적으로 보낸다.
    → 이러한 성질로 인해 GBN의 ACK은 cumulative ACK 이다.

특징

  • Receiver는 패킷이 오지 않는 상황에서, 오지 않은 패킷의 직전 패킷에 대한 ACK을 다시 보낸다.
  • Sender는 전송한 패킷 중, ACK되지 않은 가장 최신의 패킷에 대해 타이머를 계산한다.
  • 구조가 간단하고 구현이 단순하며, 따로 패킷을 보관할 버퍼가 필요 없다.

SR(Selective Repeat) 프로토콜

  • Receiver 측에서 받은 각각의 패킷들에 대해 ACK을 보내는 방식이다.
  • Sender가 보낸 패킷중 패킷2가 소실되었다. ACK 받지 못한 패킷2가 전송되는 순간에 타이머가 가동되고, 소실된 패킷의 타이머가 만료되면 해당 패킷만 재전송한다.
  • 순서대로 올 경우 바로 상위 레이어로 deliver 하고, 순서대로 오지 않을 경우 나머지를 버퍼에 모아뒀다가 한번에 deliver 한다.

특징

  • Receiver는 패킷이 오는 것에 상관 없이, 받은 패킷에 대한 ACK를 보낸다.
  • Sender는 ACK 받지 못한 모든 패킷에 대해 타이머를 계산한다.
  • 따로 받은 패킷을 보관할 버퍼가 필요하다.

reference
https://steady-coding.tistory.com/507
https://ddongwon.tistory.com/81
https://gsbang.tistory.com/entry/Network-%EC%8A%AC%EB%9D%BC%EC%9D%B4%EB%94%A9-%EC%9C%88%EB%8F%84%EC%9A%B0-%EA%B8%B0%EB%B2%95

profile
Enjoy to study

0개의 댓글

관련 채용 정보