Yozzang의 해킹일기 💻
article thumbnail
728x90

이번 포스트에서는 TCP의 연결 관리 및 흐름 제어에 대해 다루겠다.

 

RTT : 패킷 하나를 보내고 나서 ACK이 올때까지 걸리는 시간(Queueing 딜레이에 의해 변동)

 

흐름제어(Flow Control)란?

: Sender가 세그먼트를 보낼 때 Reciever의 버퍼 정보를 확인하여 버퍼 오버플로우가 발생하지 않는 만큼만 보내는 기법이다.

 

흐름제어: Basic Idea 

  • Receiver의 여유 버퍼 크기를 receive window 필드를 통해 Sender에게 알려준다.
  • Sender는 RW의 크기에 맞게 세그먼트를 전송한다.

그럼 만약 세그먼트 하나를 보냈는데 Receiver 버퍼가 꽉 차면 Sender는 언제 세그먼트 전송을 재개할까?

 

  1. Receiver가 먼저 Sender에게 RW 사이즈가 담긴 세그먼트를 보낸다. (Duplex 통신)
  2. Probing: Sender가 일정 주기로 1B(바이트)의 세그먼트를 Receiver에게 보낸다. Receiver 입장에서 여유 공간이 없는 경우 discard, 여유 공간 있는 경우 (RW 사이즈가 담긴)ACK 보낸다.

또한 서로간의 초기 RW 사이즈(Receiver buffer 사이즈)는 3-way handshake를 통해 사전에 교환한다.

'Networking' 카테고리의 다른 글

혼잡 제어 (TCP)  (0) 2022.06.15
TCP  (0) 2022.06.11
Go-Back-N & Selective Repeat  (0) 2022.06.04
Reliable Data Transfer (RDT)  (0) 2022.05.26
Transport Layer (전송 계층)  (0) 2022.05.06
profile

Yozzang의 해킹일기 💻

@요짱

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!