클라우드플레어(Cloudflare)는 초당 6,000만 건에 이르는 HTTP 요청을 처리하고 있으며 그 중 70%가 TCP, 30%가 UDP・QUIC 연결이라고 한다. 이 가운데 TCP 연결이 시작되어 실제 데이터 교환이 완료되는 비율은 80%에 불과하다. TCP 연결이 왜 끊어지는지에 대해 클라우드플레어가 분석을 정리했다.
TCP 연결에서 클라이언트와 서버 상호작용은 이렇다. 먼저 클라이언트가 SYN 플래그가 붙은 패킷을 전송해 핸드셰이크가 시작되고 서버가 SYN+ACK로 응답한 뒤 클라이언트가 ACK를 전송하면 핸드셰이크가 완료되어 데이터를 전송할 수 있게 된다. 또 연결을 종료할 때는 서로 FIN과 ACK를 주고받는 FIN 핸드셰이크를 수행한다.
네트워크 오류나 악의적인 공격 등 다양한 이유로 한 번 시작된 TCP 연결이 중단되는 경우도 많아 클라우드플레어는 연결 상태를 모니터링해 이상 규모와 이유를 이해해 네트워크 신뢰성을 높이려 하고 있다. 분석에서는 연결 프로세스 어느 시점에서 이상이 발생했는지가 중요한 단서가 되기 때문에 클라우드플레어는 이상이 발생한 연결 데이터를 다음 4가지 유형으로 분류했다.
첫째 Post SYN. 서버가 클라이언트의 SYN 패킷을 수신한 뒤 SYN+ACK를 전송했지만 클라이언트로부터 ACK가 전송되지 않은 경우의 분류다. 패킷이 위조된 경우가 많아 위치 정보를 신뢰할 수 없다.
둘째 Post ACK. 핸드셰이크가 완료되어 연결이 확립됐지만 어떤 데이터도 전송되지 않고 연결이 리셋되거나 타임아웃된 경우의 분류다.
셋째 Post PSH. 첫 데이터가 한 번만 수신됐지만 그 후 연결이 리셋되거나 타임아웃된 경우의 분류다. PSH 플래그는 TCP 패킷에 애플리케이션용 데이터가 포함되어 있음을 나타낸다.
넷째 Later. 여러 번 데이터 수신에 성공했지만 10회 이내에 리셋이나 타임아웃이 발생한 경우의 분류다.
전 세계 TCP 연결 상황을 보면 세계 평균으로는 20% TCP 연결에서 클라이언트로부터 10회 데이터 패킷을 수신하기 전에 리셋이나 타임아웃이 발생하고 있다. 새로운 날짜 데이터를 확인하고 싶은 경우 클라우드플레어 레이더(Cloudflare Radar) 사이트에서 열람 가능하다.
미국 데이터를 보면 Post SYN 비율이 높은 건 네트워크 스캔에 의한 것이며 Later에 대해서는 브라우저에서 탭을 열었지만 곧바로 닫은 경우 등이 해당한다고 한다. 미국 내에서도 주거용 ISP로 한정하면 Post SYN 비율이 조금 낮아진다. 반면 구글이 사용하고 있는 AS에서는 Later에서의 단절이 거의 없어 사람에 의한 연결이 적다는 것을 알 수 있다.
실제로 클라우드플레어 봇 탐지 시스템에서는 99.2%가 봇에 의한 연결로 판정되어 위 분석과 일치한다. 인터넷 스캔 회사가 사용하고 있는 AS에서는 Post SYN 비율이 급증한다. 이것도 봇 탐지 시스템에서는 대부분이 봇에 의한 연결로 판정됐다.
중국에서는 그레이트 파이어월이라는 검열 시스템이 가동되고 있어 금지된 주소로의 연결을 강제로 중단하기 때문에 Post SYN 비율이 급증한다. 영국 데이터에서는 매일 18시에 Post SYN 값이 상승하는 특징이 발견됐다. 이 사이클은 구글 클라우드 상에서 가동되는 ZMap에 의한 모든 IP 주소로의 스캔이라는 게 클라우드플레어 조사로 밝혀졌다.
멕시코에서는 Post ACK나 Post PSH 수치가 세계 평균보다 높아지고 있다. 클라우드플레어에 따르면 Post ACK나 Post PSH에서의 이상은 연결의 변조와 관련된 경우가 많다고 한다.
멕시코의 문제에서는 AS가 Post ACK의 수치를 높이고 있다. 클라우드플레어 분석에 따르면 이동통신 회사가 특정 사이트로의 연결에 대해 과금하지 않는 제로 레이팅을 적용하는 경우 전송량이 상한에 도달했을 때 연결 대상을 확인한 후 단절하기 때문에 Post ACK에서의 단절이 많아진다고 한다.
같은 통신회사가 보유한 페루에 있는 자회사에서도 같은 경향이 확인되어 같은 규칙으로 운영되고 있음을 알 수 있다. 같은 규칙을 적용하는 경우에도 방법에 따라 Post PSH에서의 단절이 되는 경우도 있다고 한다.
일부 국가에서는 시험 시간 중에 인터넷이 차단된다. 시리아 데이터에서는 차단되는 시간에는 Post SYN 비율이 극히 높아져 모든 연결이 차단됐음을 알 수 있다.
반면 같은 방식으로 시험 시간 중에 인터넷을 차단하는 알제리에서는 Post ACK 비율이 높아져 특정 연결만을 대상으로 차단하고 있는 것으로 보인다.
이런 국가나 AS별 데이터는 클라우드플레어 레이더에서 자유롭게 열람할 수 있다. 관련 내용은 이곳에서 확인할 수 있다.