
HTTP의 역사를 알아보면서 HOL이라는 문제가 많이 나왔다.
따라서 HOL에 대해서 조사해보기로 했다!
네트워크 큐에서 첫 번째 패킷(헤드)이 지연되면서 그 뒤의 패킷들도 함께 지연되는 현상이다. 주로 FIFO(First In First Out) 큐잉 시스템에서 발생한다.
HOL 블로킹이 발생하면 전체 네트워크 성능이 저하된다. 지연 시간이 증가하고, 처리량(throughput)이 감소해 사용자 경험이 나빠진다.
여러 스트림을 동시에 전송하는 방식이다. HTTP/2에서 사용되는 기술로 HOL 블로킹을 완화한다.
여러 개의 연결을 동시에 사용하는 방법이다. HTTP/1.1에서는 도메인 샤딩(domain sharding) 기법으로 연결 병렬화를 구현할 수 있다.
중요도에 따라 패킷 처리 순서를 조정하는 방식이다. 중요한 패킷을 먼저 처리해 HOL 블로킹의 영향을 줄인다.
큰 패킷을 작은 단위로 나누어 전송하는 방법이다. 이렇게 하면 각 패킷의 처리 시간이 줄어들어 HOL 블로킹을 방지할 수 있다.
과도하게 큰 버퍼로 인해 지연 시간이 증가하는 현상이다. HOL 블로킹을 악화시킬 수 있다.
네트워크 혼잡을 감지하고 데이터 전송 속도를 조절하는 방식이다. HOL 블로킹과 상호작용하여 성능에 영향을 준다.
네트워크 트래픽의 우선순위를 관리하는 기술이다. HOL 블로킹 완화에 도움이 된다.
콘텐츠를 지리적으로 분산하여 제공하는 네트워크이다. 서버 부하를 줄이고 HOL 블로킹 가능성을 감소시킨다.
트래픽을 여러 서버로 분산하는 기술이다. 단일 지점에서의 HOL 블로킹 위험을 줄인다.
네트워크 분석 도구를 사용해 HOL 블로킹을 탐지할 수 있다. 성능 메트릭스를 모니터링하여 문제를 조기에 발견하고 해결해야 한다.