TCP 재전송과 Read, Connection timeout

1. 세 개념의 정의

주체 레이어 무엇을 기다리나
RTO 커널 TCP 커널 ACK
Connection Timeout 애플리케이션 3-way handshake 완료
Read Timeout 애플리케이션 데이터 수신

2. Connection Timeout의 범위

  • SYN / SYN-ACK 구간만 해당
  • 이 시점은 RTT 샘플이 없으므로 initRTO = 1초 고정 사용
  • 3번째 ACK부터는 RTT 측정 완료 → 동적 RTO 산출 → Read Timeout 영역
Client          Server
  |---SYN------->|   initRTO = 1초 (RTT 측정 불가)
  |<--SYN-ACK----|   initRTO = 1초 (RTT 측정 불가)
  |---ACK-------->|   ← 여기서부터 동적 RTO (RTT 기반)

3. 레이어 구조

[ 애플리케이션 레이어 ]
   connection timeout  ── 연결 수립 구간
   read timeout        ── 데이터 송수신 구간

[ TCP 커널 레이어 ]
   RTO                 ── 전 구간에서 묵묵히 재전송 중
  • 두 레이어는 독립적으로 병렬 동작
  • 앱은 커널의 재전송을 인지하지 못함

4. 핵심 원칙: 더 짧은 쪽이 이긴다

앱 timeout < 커널 RTO 소진  →  앱이 먼저 포기 → 소켓 close → 커널 재전송 중단
커널 RTO 소진 < 앱 timeout  →  커널이 먼저 포기 → 앱에 ETIMEDOUT 반환
  • 실무에서는 앱 timeout(수십 초)이 커널 RTO 소진(기본 924초)보다 짧아 앱이 먼저 포기하는 게 일반적
  • tcp_retries2를 작게 줄이면 커널이 먼저 포기하는 상황 발생 가능

Read more

mybloodyvalentine 3집 loveless

마이블러디발렌타인의 정규 2집 loveless 엘피를 김밥레코즈에서 5만원가량의 금액으로 구매. 요건 평생 들어도 질리지않을거같아 바이닐로 구매했다. 물리적인 이슈가 발생하지않는 한 이제 스트리밍 플랫폼의 의존성없이 평생 청취 가능하다 내부 크레딧 개인적으로 빌린다 부처의 맥아리없는 보컬을 참 좋아한다. 바이닐 커버를 벗기면 평범하다 0:00 /0:12 1× 2집 loveless만큼 3집 mbv도 좋아해서 아마

By 권동혁