TIME_WAIT 분석으로 TCP/IP 이해의 실질적 필요성 체감
네트워크 프로토콜 수업에서 TCP/IP 스택을 처음 공부했을 때는 이론처럼 느껴졌는데, 실제 프로젝트에서 디버깅하면서 그 이해가 얼마나 중요한지 체감했습니다. API 호출이 간헐적으로 타임아웃되는 문제를 잡을 때 TCP의 연결 수립과 종료 단계를 알고 있어야 TIME_WAIT 상태로 소켓이 쌓이는 원인을 파악할 수 있었습니다. 프레임워크가 네트워크 통신을 추상화해도 장애가 나는 시점에서는 결국 계층 아래를 들여다봐야 합니다.
tcpdump로 패킷을 직접 캡처해보면서 지연이 어느 계층에서 발생하는지 확인하는 방식이 추측보다 훨씬 빠른 진단을 가능하게 했습니다. 지금도 네트워크 관련 이상 현상을 만나면 프로토콜 상태 머신을 먼저 떠올리는 습관이 생겼습니다.