
98
1
부 HTTP: 웹의 기초
HTTP
일반적으로 2MSL의 커넥션 종료 지연이 문제가 되지는 않지만, 성능시험을 하는
상황에서는 문제가 될 수 있다. 성능 측정 대상 서버는 클라이언트가 접속할 수 있
는 IP 주소의 개수를 제한하고, 그 서버에 접속하여 부하를 발생시킬 컴퓨터의 수는
적기 때문이다. 게다가 일반적으로 서버는 HTTP의 기본 TCP 포트인 80번을 사용
한다. 이런 상황에서는 가능한 연결의 조합이 제한되며, TIME_WAIT로 인해서 순
간순간 포트를 재활용하는 것이 불가능해진다.
각각 한 개의 클라이언트와 웹 서버가 있고, TCP 커넥션을 맺기 위한 네 개의 값
이 있다고 해보자.
<
발신지
IP
주소
,
발신지 포트
,
목적지
IP
주소
,
목적지 포트
>
이 중에서 세 개는 고정되어 있고 발신지 포트만 변경할 수 있다.
<
클라이언트
IP,
발신지 포트
,
서버
IP, 80>
클라이언트가 서버에 접속할 때마다, 유일한 커넥션을 생성하기 위해서 새로운
발신지 포트를 쓴다. 하지만 사용할 수 있는 발신지 포트의 수는 제한되어 있고
(60,000개로 가정) 2MSL초 동안(120초로 가정) 커넥션이 재사용될 수 없으므로, 초
당 500개(60,000 / 120 = 500)로 커넥션이 제한된다. 서버가 초당 500개 이상의 트랜
잭션을 처리할 만큼 빠르지 않다면 ...