12. 소켓 버퍼와 대역폭-지연 곱(BDP), TCP 윈도우 스케일링, 처리량 튜닝

난이도 상 해설 보기 →
문제

문제 12 — 소켓 버퍼와 대역폭-지연 곱(BDP), TCP 윈도우 스케일링, 처리량 튜닝

대륙 간(왕복 지연이 큰) 회선으로 게임 패치 파일을 TCP로 내려받는데, 회선 대역폭은 넉넉한데도 한 연결의 다운로드 속도가 기대보다 한참 낮다. 다음에 답하라.

  1. 커널의 송신 버퍼(SO_SNDBUF)수신 버퍼(SO_RCVBUF) 는 각각 무슨 역할을 하는가? TCP의 흐름 제어(수신 윈도우, rwnd) 와 수신 버퍼는 어떤 관계인가?

  2. 대역폭-지연 곱(BDP, Bandwidth-Delay Product) 이란 무엇이고 어떻게 계산하는가? "링크를 가득 채우려면 비행 중(in-flight) 데이터가 최소 BDP 만큼 있어야 한다"는 말의 의미를, 윈도우/버퍼가 BDP보다 작을 때 처리량이 어떻게 제한되는지와 함께 설명하라. (예: 대역폭 100Mbps, RTT 200ms 일 때 BDP는 얼마이고, 64KB 윈도우면 최대 처리량은 대략 얼마인가?)

  3. TCP 헤더의 수신 윈도우 필드는 16비트(최대 64KB) 다. 고대역폭·고지연(long fat network) 링크에서 이게 왜 병목이 되는가? 윈도우 스케일링(Window Scale option) 은 이를 어떻게 해결하는가?

  4. 위 다운로드가 느린 원인으로 무엇을 의심하고 어떻게 진단·튜닝하겠는가? 버퍼를 무작정 크게 잡을 때 생기는 부작용(bufferbloat, 지연 증가)과, 실시간 게임 트래픽(작은 패킷, 지연 민감)과 대용량 전송이 한 서버에 공존할 때의 고려사항(자동 튜닝, 연결별 설정, 혼잡 제어 알고리즘 선택)도 함께 논하라.

답안 작성
내 답안 · 자동 저장

직접 답을 작성한 뒤, 위 해설 보기에서 모범답안과 대조하세요.