In current World Wide Web, The HTTP protocol, which uses TCP as its under-lying transport protocol, is used to exchange messages between a client and a server. Because the characteristic of HTTP traffic is different from that of other internet traffic, current TCP implementation go down the performance of web. To cope with these problems, a persistent connection, which uses a single long-lived connection, is proposed. Although, a persistent connection improves the web performance, it has a significant drawback, called a head-of-line blocking. A head-of-line blocking occurs when a slow response hold up all the subsequent responses. Therefore, a current web browser uses multiple concurrent connections instead of using a single persistent connection.
In this paper, we propose the extended HTTP protocol which reduces the mal-effect of a head-of-line blocking. By sending out-of-order response in chunked mode, we can reduce the incidence of a head-of-line blocking. In addition to this one, we fully utilize the server resources to improve the performance. For these purposes we add two new HTTP header options to current HTTP protocol. These new header options are managed by a hop-by-hop mechanism to avoid the complexity of the end-to-end mecahnism. We implement and test Apache web server to support extended HTTP protocol and our experimental results show that modified HTTP protocol reduces the latency dramatically.
지금 현재 WWW에서는 client와 server사이에 message를 주고 받기 위하여 HTTP프로토콜을 사용하고 있다. 이러한 HTTP connection의 특징은 TCP나 FTP와 같은 다른 Internet application과는 다른 특성을 가지고 있다. 즉, connection의 길이가 비교적 짧고 같은 server로 동시에 여러개의 connection이 사용된다. 이러한 특성으로 인해 transport layer에서 사용되고 있는 TCP는 최적의 성능을 발휘할 수 없고, 이는 곧 Web 성능 저하를 의미한다. 따라서 어떠한 방법으로 든지 이러한 문제를 해결할 필요가 있는데 HTTP/1.1에서 제안 된 persistent connection을 이용하면 이러한 문제를 해결할 수가 있다. persistent connection은 간단히 말해 이미 맺어져 있는 connection을 충분히 사용하자는 것이다. 이미 맺어져 있는 connection을 다시 사용함으로써 connection을 새로이 맺고 끊는데 드는 비용을 줄이고자 하였고, 되도록이면 오랜 시간동안connection을 사용함으로써 TCP로 하여금 최상의 성능을 낼수 있도록 충분한 시간을 주고자 하는 것이다. 하지만 persistent connection에는 중요한 문제점이 있는데 head-of-line blocking이 바로 그것이다.
이 논문에서는 head-of-line blocking으로 인해 생기는 성능 저하를 최소한으로 하고 아울러서 server의 resource를 최대한으로 사용함으로써 web의 성능 그중에서도 latency를 향상시키고자 하였다. 간단히 server가 response를 순서에 상관없이 보내게 함으로써 모든 것을 가능하게 하였다. 이를 위해 필요한 것은 지금 현재 사용하고 있는 HTTP protocol에 새로운 header option을 추가하는 것이다. 이것은 매우 간단한 일이며 HTTP protocol의 design concept에도 어긋나지 않는다. 우리는 실험을 통해 확장된 형태의 HTTP protocol이 latency를 상당 부분 줄일 수 있다는 것을 보였다.