WO2015147354A1 - Spdy에 기초한 웹 가속 방법 및 이를 위한 spdy 프록시 - Google Patents

Spdy에 기초한 웹 가속 방법 및 이를 위한 spdy 프록시 Download PDF

Info

Publication number
WO2015147354A1
WO2015147354A1 PCT/KR2014/002597 KR2014002597W WO2015147354A1 WO 2015147354 A1 WO2015147354 A1 WO 2015147354A1 KR 2014002597 W KR2014002597 W KR 2014002597W WO 2015147354 A1 WO2015147354 A1 WO 2015147354A1
Authority
WO
WIPO (PCT)
Prior art keywords
spdy
proxy
remote
client
web page
Prior art date
Application number
PCT/KR2014/002597
Other languages
English (en)
French (fr)
Inventor
이석희
홍성표
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to US15/124,875 priority Critical patent/US20170019506A1/en
Priority to PCT/KR2014/002597 priority patent/WO2015147354A1/ko
Publication of WO2015147354A1 publication Critical patent/WO2015147354A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics

Definitions

  • the present invention relates to a web acceleration method based on SPDY and an SPDY proxy thereof.
  • HTTP has been released since version 0.9 was first released in 1991, version 1.0 in 1996, and version 1.1 in 1999, but has been stagnant for more than a decade. Since the HTTP protocol can handle one HTTP request through one TCP session, if you want to download a web page containing multiple resources, you need to handle as many HTTP requests as there are resources, and as many domains as possible. Because of the need to establish a TCP connection, there is a problem that the transmission delay is high, but the above problems are not yet solved according to the slow development speed.
  • SPDY SPeeDY
  • the SPDY protocol rewrites HTTP's data transfer format and connection management to make more efficient use of TCP connections.
  • the present invention is to propose a web acceleration method that can be applied to the SDPY protocol.
  • An object of the present invention is to provide a web acceleration method that can be applied to SPDY through prediction and prefetching.
  • the remote SPDY proxy the step of receiving a request of the client's web page through the SPDY session generated by the local SPDY proxy; And if the web page is not cached or at least some resources constituting the web page are not cached, the remote SPDY proxy receives a resource from a web server that constitutes a web page corresponding to the request. can do.
  • the local SPDY proxy may determine the number of the SPDY session to create based on the measured loss of the network.
  • the remote SPDY proxy may receive resources constituting the web page from each of the multi-domains through a plurality of SPDY channels.
  • the remote SPDY proxy may pre-fetch resources that are not requested by the client but are expected to be requested.
  • the remote SPDY proxy may anticipate the client's request based on at least one of the client's browsing pattern and the HTML pattern.
  • the remote SPDY proxy may convert a URL (Uniform Resource Locator) address of a resource collected through the web server.
  • URL Uniform Resource Locator
  • the remote SPDY proxy may push data to the client regardless of the client's request.
  • the remote SPDY proxy may measure the current network bandwidth and adjust the maximum size of the pushed data according to the measured network bandwidth.
  • the present invention has the effect of providing a web acceleration method that can be applied to SPDY through prediction and prefetching.
  • FIG. 1 is a diagram illustrating a traditional TCP / IP layer model and a SPDY layer model.
  • FIG. 2 is a diagram illustrating a web acceleration system based on the SPDY protocol according to the present invention.
  • 3 is a block diagram of a local SPDY proxy.
  • FIG. 4 is a block diagram of a remote SPDY proxy.
  • FIG. 5 is an operation flowchart of a web acceleration method using a local SPDY proxy and a remote SPDY proxy.
  • SPDY is an application layer protocol, specifically designed to minimize transmission latency.
  • 1 is a diagram illustrating a traditional TCP / IP layer model and a SPDY layer model.
  • TLS Transport Layer Security
  • SPDY can be stacked on top of TLS or on top of SSL.
  • the SPDY protocol can handle multiple HTTP requests simultaneously through a single TCP session.
  • HTTP which processes only one request at a time and responds to the request sequentially
  • multiple requests and responses can be simultaneously processed with a small number of connections. Accordingly, it is possible to escape from the work-around method of creating a connection for each domain.
  • the SPDY protocol can serve to compress HTTP headers. Since HTTP headers have many repetitions for each request, the header compression alone can improve performance.
  • the SPDY protocol can compress HTTP headers by removing unnecessary data from the HTTP headers or minimizing retransmission of repeated data.
  • the server may transmit content to the client 10 in response to the request of the client 10.
  • the server may push content directly without a request of the client 10.
  • resource caching is possible and can use the same or less bandwidth than inlining.
  • the web acceleration system may include a local SPDY proxy 100 and a remote SPDY proxy 200 located between the client 10 and the web server 20.
  • the client 10 cannot predict whether the web server 20 requesting the content is remotely located or will establish a high transmission delay connection with the web server 20. Accordingly, transmission delay may be reduced through caching, prediction, and pre-fetching of the local SPDY proxy 100 and the remote SPDY proxy 200.
  • the local SPDY proxy 100 is applied to the client 10 (specifically a web browser) or gateway to reduce the transmission delay, the remote SPDY proxy 200 receives a request from the client 10, the web server After receiving the response to the request from 20, the server may perform a role as a proxy server for transmitting the received response to the client 10.
  • the local SPDY proxy 100 may include a network monitor 110, an SPDY session generator 120, an SPDY demultiplexer 130, and a caching unit 140.
  • the network monitor 110 monitors the network state before determining the SPDY session with the remote SPDY proxy and determines the number of required SPDY sessions according to the monitoring result.
  • the network monitor 110 may determine the current loss level of the network and determine the most efficient number of SPDY sessions accordingly.
  • the SPDY session generator 120 may generate an SPDY session based on the number of SPDY sessions determined through the network monitor 110.
  • the SPDY session generator 120 may generate one session by default, but may generate an additional SPDY session when the number of SPDY sessions determined by the network monitor 110 is plural.
  • the SPDY demultiplexer 130 may demultiplex the data coming from the multiple SPDY sessions.
  • the caching unit 140 stores a web page to which the client 10 has previously accessed.
  • the SPDY proxy may first check whether a web page to be accessed to the caching unit 140 is stored. If the web page to be accessed is stored in the caching unit 140, the SPDY proxy may read the web page from the caching unit 140 and provide it to the client 10, and the web page to be accessed is the caching unit. If not stored at 140, the SPDY proxy may only request a connection to the web server 20.
  • the remote SPDY proxy 200 includes a network monitor 210, a predictor 220, an HTML converter 230, a prefetcher 240, a SPDY multiplexer 250, and a priority determiner. 260, a caching unit 270, and a pushing unit 280.
  • the network monitor 210 may measure the bandwidth of the current network.
  • the predictor 220 predicts a resource requested by the client 10 based on the browsing pattern and the HTML pattern of the client 10.
  • the browsing pattern may refer to content that a user who uses a web service mainly encounters
  • the HTML pattern may refer to a resource that a user mainly accesses among web pages.
  • the unit 220 may predict that the photo file is a resource requested by the client 10, and if the user is expected to mainly access the video file due to the web page structure (based on the HTML pattern), the prediction unit 220 may determine the video file.
  • this client 10 is a resource to request.
  • the web page requested by the client 10 is a web page in which a picture, a script, a CSS file, another HTML page, etc. are embedded
  • the predictor 220 according to the user's browsing pattern, It may be expected that the objects embedded in the web page are the resources that the client 10 will request.
  • the prefetcher 240 receives a resource predicted by the predictor from the web server 20.
  • the prefetcher 240 receives a resource linked to the specific web page from a web server 20 storing a specific web page and another web server 20 storing a resource linked to the specific web page. can do. That is, when the number of domains used by the web page requested by the client 10 is plural, the resource linked to the web page may be received from the plurality of domains through the plurality of SPDY channels. In the embodiments described below, it is expected that the client 10 needs the predictor, so that a resource previously received from the web server 20 will be referred to as a prefetched resource.
  • the HTML converting unit 230 changes the resource URL address included in the web page as if the resources existing in the plurality of web servers 20 are stored in the remote SPDY proxy 200. Accordingly, the client 10 may recognize the prefetched resource as if it is stored in the remote SPDY proxy 200, and the prefetched resource is not the web server 20 but the remote SPDY proxy 200. You can ask.
  • the priority determiner 260 determines a priority of data to be transmitted to the client 10. By setting the priority, it is possible to control that the higher priority data is intercepted and transmitted faster during the lower priority data transmission. Since the priority may be dynamically changed according to the browsing situation of the user, the priority of data transmission for each object may be determined according to the browsing pattern of the user.
  • the SPDY multiplexer 250 distributes data through multiple channels.
  • the pushing unit 280 pushes data to the client 10. Through this, data that is not requested by the client 10 may also be transmitted to the client 10. In this case, the remote SPDY proxy 200 may transmit data to the client 10 through the push unit according to the bandwidth measured by the network monitoring unit.
  • the caching unit 270 stores previously accessed resources and accelerates web speed when the resources are reused.
  • FIG. 5 is an operation flowchart of a web acceleration method using a local SPDY proxy 100 and a remote SPDY proxy 200.
  • the local SPDY proxy 100 may check whether the web page corresponding to the request is stored in the caching unit (S502).
  • the local SPDY proxy 100 may provide the cached web page to the client 10 in response to the request (S503).
  • the local SPDY proxy 100 generates a SPDY session with the remote SPDY proxy 200 (S504), and the remote SPDY proxy 200 through the generated SPDY session.
  • the request may be transmitted.
  • the number of SPDY sessions may be determined according to the degree of network loss measured by the network monitor.
  • the remote SPDY proxy 200 may check whether a web page corresponding to the request is stored in the caching unit (S506).
  • the remote SPDY proxy 200 may provide the cached web page to the local SPDY proxy 100 in response to the request (S507).
  • the remote SPDY server may request the web page from the web server 20 (S508).
  • the remote SDPY proxy 200 may perform prefetching, which the client 10 does not request, but also requests the web server 20 for resources expected to be requested by the client 10. Accordingly, if the client 10 later requests a prefetched resource on the web page, the remote SPDY proxy 200 immediately provides the resource requested by the client 10 without exaggerating the request and response with the web server 20. You can do it.
  • the remote SPDY proxy 200 When receiving a response from the web server 20 (S509), the remote SPDY proxy 200 performs HTML conversion to change the URL address of the resources included in the web page to the remote SPDY proxy 200 (S510), HTML The web page on which the conversion is performed may be transmitted to the local SPDY proxy 100 (S511).
  • the remote SDPY proxy can multiplex the transmission of data
  • the local SPDY proxy 100 is the multiplexed data Once received, it can be demultiplexed.
  • the local SPDY proxy 100 may deliver the received web page to the client 10 (S512).
  • the remote SDPY proxy may push data to the client 10 at any time if the client 10 does not request it.
  • processor-readable media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, and may be implemented in the form of a carrier wave (for example, transmission over the Internet). Include.
  • the local SPDY proxy 100 and the remote SPDY proxy 200 described above are not limited to the configuration and method of the above-described embodiments, but the embodiments may be modified in various embodiments. All or some of these may optionally be combined.
  • the present invention can be applied to various web services to which the SPDY protocol is applied.

Abstract

본 발명은, 원격 SPDY 프록시가, 로컬 SPDY 프록시가 생성한 SPDY 세션을 통해 클라이언트의 웹 페이지의 요청을 수신하는 단계; 및 상기 웹 페이지가 캐싱되어 있지 않거나, 상기 웹 페이지를 구성하는 적어도 일부 리소스가 캐싱되어 있지 않다면, 상기 원격 SPDY 프록시가 상기 요청에 대응하는 웹 페이지를 구성하는 리소스를 웹 서버로부터 수신하는 단계를 포함하는 SPDY에 기초한 웹 가속 방법을 개시한다.

Description

SPDY에 기초한 웹 가속 방법 및 이를 위한 SPDY 프록시
본 발명은, SPDY에 기초한 위한 웹 가속 방법 및 이를 SPDY 프록시에 대한 것이다.
HTTP는 1991년 0.9 버전이 처음 발표된 이래, 1996년 1.0 버전, 1999년에 1.1 버전이 발표되었으나, 10년이 넘는 동안 신규 버전이 발표되지 않은 채 정체되어 왔다. HTTP 프로토콜은 하나의 TCP 세션을 통해 하나의 HTTP 요청을 처리할 수 있기 때문에, 멀티 리소스를 포함하는 웹 페이지를 다운로드 받고자 하는 경우, 리소스의 수 만큼 HTTP 요청을 처리해야 한다는 문제점과, 도메인의 수 만큼 TCP 커넥션을 맺어야 하기 때문에, 전송 지연이 높아진다는 문제점을 갖고 있는데, 더딘 발전 속도에 따라 아직까지 위와 같은 문제점이 해결되고 있지 못하다.
최근, 초고속 인터넷이 보급률이 높아짐과 함께, 사용자 UX도 점차 개선되었고, 이에 따라 웹 페이지의 크기와 웹 페이지를 구성하는 리소스의 수 및 웹 페이지가 사용하는 도메인 개수는 점차 증가하게 됨에 따라, HTTP 프로토콜로는 멀티 리소스를 지원하는 웹 페이지를 효율적으로 전송할 수 없는 문제점이 발생하고 있다.
이와 같은 문제점을 해결하기 위해, 최근 일부 웹 서비스에서는 SPDY (SPeeDY) 프로토콜을 적용하고 있다. SPDY 프로토콜은 HTTP의 데이터 전송 포맷과 커넥션 관리 부분을 고쳐, TCP 커넥션을 보다 효율적으로 활용할 수 있도록 한다.
다만, 아직까지는, SPDY 프로토콜에 예측(prediction) 및 프리페칭(pre-fetching)을 적용한 웹 가속 방법이 제안되어 있지는 않다. 이에, 본 발명에서는 SDPY 프로토콜에 적용될 수 있는 웹 가속 방법에 대해 제안하고자 한다.
본 발명은 예측 및 프리페칭을 통해, SPDY 에 적용될 수 있는 웹 가속 방법을 제공하는 것을 목적으로 한다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 일예에 따른 웹 가속 방법은, 원격 SPDY 프록시가, 로컬 SPDY 프록시가 생성한 SPDY 세션을 통해 클라이언트의 웹 페이지의 요청을 수신하는 단계; 및 상기 웹 페이지가 캐싱되어 있지 않거나, 상기 웹 페이지를 구성하는 적어도 일부 리소스가 캐싱되어 있지 않다면, 상기 원격 SPDY 프록시가 상기 요청에 대응하는 웹 페이지를 구성하는 리소스를 웹 서버로부터 수신하는 단계를 포함할 수 있다.
이때, 상기 로컬 SPDY 프록시는 측정된 네트워크의 손실 정도에 기초하여 생성할 상기 SPDY 세션의 수를 결정할 수 있다.
또한, 상기 웹 페이지가 멀티 도메인을 포함하는 경우, 상기 원격 SPDY 프록시는 복수개의 SPDY 채널을 통해 상기 멀티 도메인 각각으로부터 상기 웹 페이지를 구성하는 리소스를 수신할 수 있다.
추가로, 상기 원격 SPDY 프록시는, 상기 클라이언트가 요청하지 않았지만, 요청할 것으로 예상되는 리소스를 프리페칭(pre-fetching) 할 수 있다.
이때, 상기 원격 SPDY 프록시는, 상기 클라이언트의 브라우징 패턴 및 HTML 패턴 중 적어도 하나를 기초로, 상기 클라이언트의 요청을 예상할 수 있다.
상기 원격 SPDY 프록시는, 상기 웹 서버를 통해 수집된 리소스의 URL (Uniform Resource Locator) 주소를 컨버팅할 수 있다.
또한, 상기 원격 SPDY 프록시는 상기 클라이언트의 요청과 무관하게 상기 클라이언트로 데이터를 푸쉬할 수 있다.
이때, 상기 원격 SPDY 프록시는, 현재 네트워크 대역폭을 측정하고, 상기 측정된 네트워크 대역폭에 따라 상기 푸쉬되는 데이터의 최대 크기를 조절할 수 있다.
본 발명에서 이루고자 하는 기술적 과제들의 해결 수단은 이상에서 언급한 해결 수단들로 제한되지 않으며, 언급하지 않은 또 다른 해결 수단들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명은 예측 및 프리페칭을 통해, SPDY 에 적용될 수 있는 웹 가속 방법을 제공할 수 있는 효과가 있다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 전통적인 TCP/IP 계층 모델과, SPDY 계층 모델을 도시한 도면이다.
도 2은 본 발명에 따른 SPDY 프로토콜을 기초로 하는 웹 가속 시스템을 도시한 도면이다.
도 3은 로컬 SPDY 프록시의 블록도이다.
도 4은 원격 SPDY 프록시의 블록도이다.
도 5는 로컬 SPDY 프록시 및 원격 SPDY 프록시를 이용한 웹 가속 방법의 동작 흐름도이다.
이하, 본 발명과 관련된 웹 가속 방법에 대하여 도면을 참조하여 보다 상세하게 설명한다.
이하의 설명에서 사용되는 구성요소에 대한 접미사 "부"는 명세서 작성의 용이함만이 고려되어 부여되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
SPDY는 어플리케이션 레이어 프로토콜로, 특히 전송 지연(latency)을 최소화하기 위해 고안되었다. 도 1은 전통적인 TCP/IP 계층 모델과, SPDY 계층 모델을 도시한 도면이다.
도 1에 도시된 것과 같이, SPDY는 어플리케이션 레이어 프로토콜로 하위 계층은 TCP를 사용하기 때문에, 기존의 인프라스트럭처(infrastructure)를 그대로 이용할 수 있다. 아울러, 일반적인 HTTP GET 과 POST 메시지 포맷 형태는 동일하게 남겨둘 수 있고, TLS(Transport Layer Security)(또는 SSL (Secure Sockets Layer)) 및 TCP 를 유지하기 때문에, SPDY를 적용하는 것에 많은 비용이 발생하지 않는다. TLS는 SSL의 다음버전으로, SPDY는 TLS 위에 스택되어 있을 수도 있고, SSL 위에 스택되어 있을 수도 있다.
SPDY 프로토콜은 하나의 TCP 세션을 통해 동시에 여러 HTTP request 를 처리할 수 있다. 즉, 한 번에 하나만의 요청을 처리하고, 요청에 대한 응답이 순차적으로 이루어지는 HTTP와 달리, 적은 수의 커넥션으로 다수의 요청, 응답을 동시에 처리할 수 있다. 이에 따라, 기존에 도메인 별로 커넥션을 생성하는 워크 어라운드(work-around) 방식에서 탈피할 수 있다.
아울러, FIFO (First In, First Out) 방식을 채용하여, 하나의 응답이 지연되면, 나머지 응답도 모두 지연되는 HTTP 파이프라이닝(Pipelining)과는 달리, 각각의 요청, 응답이 모두 독립적으로 처리된다.
또한, 한 스트림이 진행 중이더라도, 다른 스트림이 끼어드는 것(interleaving)을 허용할 수 있고, 스트림 간 우선순위를 설정하여, 우선 순위가 낮은 데이터 전송 도중에 우선 순위가 높은 데이터가 끼어 들어 더 빨리 전송되도록 할 수도 있다. 일예로, 'html>js(java script)' 로 설정하여, js 리소스에 비해 html 리소스의 우선 순위를 더 높게 설정할 수 있고, 'css>*'로 설정하여, 'css' 리소스가 가장 높은 우선 순위를 갖도록 설정할 수도 있다.
SPDY 프로토콜은 HTTP 헤더를 압축하는 역할을 수행할 수 있다 HTTP 헤더에는 요청마다 반복되는 내용이 많으므로, 헤더 압축만으로 성능 향상을 기대할 수 있다. SPDY 프로토콜은 HTTP 헤더에서 필요없는 데이터를 제거하거나, 반복되는 데이터의 재전송을 최소화하는 역할을 수행함으로써 HTTP 헤더를 압축할 수 있다.
종래, 서버는 클라이언트(10)의 요청에 대한 응답으로 컨텐트를 클라이언트(10)로 전송할 수 있었다. 다만, SPDY 프로토콜을 이용하는 경우, Comet, 롱 필링(Long-Polling)과 달리, 클라이언트(10)의 요청이 없어도 서버에서 컨텐트를 직접 푸쉬(Push)할 수 있다. 인라이닝(Inlining) 기법과는 달리 리소스 캐싱이 가능하며, 인라이닝과 같거나 더 적은 대역폭을 사용할 수 있다.
상술한 SPDY 프로토콜에 대한 설명을 기초로, 본 발명에 따른 웹 가속 시스템에 대해 상세히 살펴보기로 한다.
도 2은 본 발명에 따른 SPDY 프로토콜을 기초로 하는 웹 가속 시스템을 도시한 도면이다. 도 2를 참조하면, 웹 가속 시스템은 클라이언트(10) 및 웹 서버(20) 사이에 위치하는 로컬 SPDY 프록시(100) 및 원격 SPDY 프록시(200)를 포함할 수 있다.
클라이언트(10)는 컨텐트를 요청할 웹 서버(20)가 원격 위치해 있는지 또는 웹 서버(20)와 높은 전송 지연 접속을 구축하게 될 것인지를 예측할 수 없다. 이에, 로컬 SPDY 프록시(100) 및 원격 SPDY 프록시(200)의 캐싱, 예측 및 프리페칭(pre-fetching)을 통해 전송 지연을 감소시킬 수 있다.
로컬 SPDY 프록시(100)는 클라이언트(10)(구체적으로는 웹 브라우저)나 게이트웨이에 적용되어 전송 지연을 감소시키는 역할을 하고, 원격 SPDY 프록시(200)는 클라이언트(10)로부터 요청을 받고, 웹 서버(20)로부터 요청에 대한 응답을 수신한 뒤, 수신한 응답을 클라이언트(10)로 전송하는 프록시(proxy) 서버와 같은 역할을 수행할 수 있다.
후술되는 도 3 및 도 4를 참조하여, 로컬 SPDY 프록시(100) 및 원격 SPDY 프록시(200)에 대해 상세히 살펴보기로 한다.
도 3은 로컬 SPDY 프록시(100)의 블록도이다. 도 3를 참조하면, 로컬 SPDY 프록시(100)는 네트워크 모니터부(110), SPDY 세션 생성기(120), SPDY 디멀티플렉서(130) 및 캐싱부(140)를 포함할 수 있다.
네트워크 모니터부(110)는 리모트 SPDY 프록시와 SPDY 세션을 맺기 전, 네트워크 상태를 모니터링하고, 모니터링 결과에 따라 필요한 SPDY 세션의 개수를 결정한다. 구체적으로, 네트워크 모니터부(110)는 현재 네트워크의 손실 정도를 파악한 뒤, 그에 따라 가장 효율적인 SPDY 세션의 개수를 결정할 수 있다.
SPDY 세션 생성기(120)는 네트워크 모니터부(110)를 통해 결정된 SPDY 세션의 개수에 기초하여, SPDY 세션을 생성할 수 있다. SPDY 세션 생성기(120)는 디폴트(default)로 1개의 세션을 생성하되, 네트워크 모니터부(110)를 통해 결정된 SPDY 세션의 개수가 복수개인 경우에는 추가 SPDY 세션을 생성할 수 있다.
다수의 SPDY 세션이 생성되는 경우, SPDY 디멀티플렉서(130)는 다수의 SPDY 세션으로부터 인입되는데이터를 디멀티플렉싱(demultiplexing)할 수 있다.
캐싱부(140)는 클라이언트(10)가 기 접속했던 웹 페이지를 저장한다. SPDY 프록시는 클라이언트(10)로부터 SPDY를 통한 웹 접속 요청을 수신하면, 우선적으로 캐싱부(140)에 접속하고자 하는 웹 페이지가 저장되어 있는지 여부를 확인할 수 있다. 접속하고자 하는 웹 페이지가 캐싱부(140)에 저장되어 있다면, SPDY 프록시는 캐싱부(140)로부터 해당 웹 페이지를 독출하여 클라이언트(10)에 제공할 수 있을 것이고, 접속하고자 하는 웹 페이지가 캐싱부(140)에 저장되어 있지 않다면, SPDY 프록시는 비로소, 웹 서버(20)로의 접속을 요청할 수 있을 것이다.
도 4은 원격 SPDY 프록시(200)의 블록도이다. 도 4을 참조하면, 원격 SPDY 프록시(200)는 네트워크 모니터부(210), 예측부(220), HTML 컨버팅부(230), 프리페칭부(240), SPDY 멀티플렉서(250), 우선순위 결정부(260), 캐싱부(270) 및 푸싱부(280)를 포함할 수 있다.
네트워크 모니터부(210)는 현재 네트워크의 대역폭을 측정할 수 있다.
예측부(220)는 클라이언트(10)의 브라우징 패턴 및 HTML 패턴을 기반으로 클라이언트(10)가 요청할 리소스를 예측하는 역할을 수행한다. 여기서, 브라우징 패턴은 웹 서비스를 이용하는 사용자가 주로 접하는 컨텐트를 의미하는 것이고, HTML 패턴은 웹 페이지 중 사용자들이 주로 접근하는 리소스에 대한 것일 수 있다. 예를 들어, 사용자가 사진, 동영상, 스크립트, CSS 파일, 다른 HTML 페이지 등이 임베디드(embedded)되어 있는 웹 페이지를 이용할 때, 주로, 사진 파일에 접근하는 패턴을 띈다면(브라우징 패턴 근거), 예측부(220)는 사진 파일이 클라이언트(10)가 요청할 리소스인 것으로 예측할 수 있을 것이고, 웹 페이지 구조상 사용자들이 주로 동영상 파일에 접근할 것으로 예상된다면(HTML 패턴 근거), 예측부(220)는 동영상 파일이 클라이언트(10)가 요청할 리소스인 것으로 예측할 수 있을 것이다. 이 밖에도, 클라이언트(10)가 요청하는 웹 페이지가 사진, 스크립트, CSS 파일, 다른 HTML 페이지 등이 임베디드(embedded)되어 있는 웹 페이지라면, 예측부(220)는 사용자의 브라우징 패턴에 따라, 사용자의 웹 페이지에 임베디드되어 있는 오브젝트들이 클라이언트(10)가 요청할 리소스인 것으로 예측할 수도 있을 것이다.
프리페칭부(240)는 예측기에 의해 예측된 리소스를 웹 서버(20)로부터 수신하는 역할을 한다. 여기서, 프리페칭부(240)는, 특정 웹 페이지를 저장하는 웹 서버(20)와 상기 특정 웹 페이지에 링크된 리소스를 저장하는 다른 웹 서버(20)로부터 상기 특정 웹 페이지에 링크된 리소스를 수신할 수 있다. 즉, 클라이언트(10)가 요청하는 웹 페이지가 사용하는 도메인 개수가 복수개인 경우, 복수개의 SPDY 채널을 통해 복수개의 도메인으로부터 웹 페이지에 링크된 리소스를 수신할 수 있다. 후술되는 실시예들에서는, 예측기에 의해 클라이언트(10)가 필요로 할 것이라 예상되어, 웹 서버(20)로부터 미리 수신된 리소스를 프리페치된 리소스라 호칭하기로 한다.
HTML 컨버팅부(230)는 다수의 웹 서버(20)에 존재하는 리소스가 마치 원격 SPDY 프록시(200)에 저장되어 있는 것처럼, 웹 페이지가 포함하고 있는 리소스 URL 주소를 변경하는 역할을 수행한다. 이에 따라, 클라이언트(10)는 프리페치된 리소스가 마치 원격 SPDY 프록시(200)에 저장되어 있는 것처럼 인식할 수 있을 것이고, 프리페치된 리소스는 웹 서버(20)가 아닌 원격 SPDY 프록시(200)로 요청할 수 있을 것이다.
우선순위 결정부(260)는 클라이언트(10)로 전송할 데이터의 우선순위를 결정하는 역할을 수행한다. 우선순위의설정을통해, 우선 순위가 낮은 데이터 전송 도중에 우선 순위가 높은 데이터가 끼어 들어 더 빨리 전송되도록 제어할 수 있다. 우선순위는 사용자의 브라우징 상황에 따라 동적으로 변경될 수 있기 때문에, 사용자의 브라우징 패턴에 맞춰 오브젝트 별 데이터 전송의 우선순위를 결정할 수 있을 것이다.
SPDY 멀티플렉서(250)는 로컬 SPDY 프록시(100)와 원격 SPDY 프록시(200) 사이에 다수의 SPDY 세션이 구축되어 있는 경우, 다수의 채널을 통해 데이터를 분산하는 역할을 수행한다.
푸싱부(280)는 데이터를 클라이언트(10)로 푸시하는 역할을 수행한다. 이를 통해 클라이언트(10)가 요청하지 않은 데이터도 클라이언트(10)에 전송될 수 있다. 이때, 원격 SPDY 프록시(200)는 네트워크 모니터링부에서 측정된 대역폭에 맞춰 푸쉬부를 통해 클라이언트(10)로 데이터를 전송할 수 있다.
캐싱부(270)는 기 접속했던 리소스를 저장하여, 해당 리소스의 재사용시 웹 속도를 가속하는 역할을 수행한다.
도 5는 로컬 SPDY 프록시(100) 및 원격 SPDY 프록시(200)를 이용한 웹 가속 방법의 동작 흐름도이다.
먼저, 클라이언트(10)를 통해 웹 페이지에 대한 요청이 생성되면(S501), 로컬 SPDY 프록시(100)는 요청에 대응하는 웹 페이지가 캐싱부에 저장되어 있는지 확인할 수 있다(S502).
요청하는 웹 페이지가 캐싱부에 저장되어 있다면, 로컬 SPDY 프록시(100)는 요청에 대한 응답으로, 캐싱된 웹 페이지를 클라이언트(10)에 제공할 수 있을 것이다(S503).
이와 달리, 요청하는 웹 페이지가 캐싱부에 저장되어 있지 않다면, 로컬 SPDY 프록시(100)는 원격 SPDY 프록시(200)와 SPDY 세션을 생성하고(S504), 생성된 SPDY 세션을 통해 원격 SPDY 프록시(200)로 요청을 전송할 수 있다(S505). 이때, SPDY 세션의 개수는 네트워크 모니터에 의해 측정된 네트워크 손실 정도에 따라 결정될 수 있다.
요청을 수신한 원격 SPDY 프록시(200)는 요청에 대응하는 웹 페이지가 캐싱부에 저장되어 있는지 확인할 수 있다(S506).
요청하는 웹 페이지 또는 리소스가 캐싱부에 저장되어 있다면, 원격 SPDY 프록시(200)는 요청에 대한 응답으로 캐싱된 웹 페이지를 로컬 SPDY 프록시(100)로 제공할 수 있다(S507).
이와 달리, 요청하는 웹 페이지가 캐싱부에 저장되어 있지 않다면, 원격 SPDY 서버는 웹 서버(20)로 웹 페이지를 요청할 수 있다(S508).
이때, 원격 SDPY 프록시(200)는, 클라이언트(10)가 요청하지 않았지만, 클라이언트(10)가 요청할 것으로 예상되는 리소스들도 웹 서버(20)에 요청하는 프리페칭을 수행할 수도 있다. 이에 따라, 추후 클라이언트(10)가 웹 페이지 상 프리페치된 리소스를 요청한다면, 원격 SPDY 프록시(200)는 웹 서버(20)와의 요청 및 응답 과장 없이, 곧바로 클라이언트(10)가 요청하는 리소스를 제공할 수 있을 것이다.
웹 서버(20)로부터 응답을 수신하면(S509), 원격 SPDY 프록시(200)는 웹 페이지에 포함된 리소스들의 URL 주소를 원격 SPDY 프록시(200)로 변경하는 HTML 컨버팅을 수행하고(S510), HTML 컨버팅이 수행된 웹 페이지를 로컬 SPDY 프록시(100)로 전송할 수 있다(S511).
이때, 로컬 SPDY 프록시(100)와 원격 SPDY 프록시(200) 사이에 다수의 SPDY 세션이 존재하는 경우, 원격 SDPY 프록시는 데이터의 전송을 다중화할 수 있고, 로컬 SPDY 프록시(100)는 다중화된 데이터를 수신한 뒤 이를 역다중화할 수 있다.
로컬 SPDY 프록시(100)는 수신한 웹 페이지를 클라이언트(10)로 전달할 수 있다(S512).
도시되지는 않았지만, 원격 SDPY 프록시는 클라이언트(10)가 요청하지 않은 경우 언제라도, 클라이언트(10)로 데이터를 푸시할 수도 있다.
본 발명의 일실시예에 의하면, 전술한 방법(동작 흐름도)은, 프로그램이 기록된 매체에 프로세서가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 프로세서가 읽을 수 있는 매체의 예로는, ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.
상기와 같이 설명된 로컬 SPDY 프록시(100) 및 원격 SPDY 프록시(200)는 상기 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
본 발명은 SPDY 프로토콜이 적용된 다양한 웹 서비스에 적용될 수 있다.

Claims (8)

  1. 원격 SPDY 프록시가, 로컬 SPDY 프록시가 생성한 SPDY 세션을 통해 클라이언트의 웹 페이지의 요청을 수신하는 단계; 및
    상기 웹 페이지가 캐싱되어 있지 않거나, 상기 웹 페이지를 구성하는 적어도 일부 리소스가 캐싱되어 있지 않다면, 상기 원격 SPDY 프록시가 상기 요청에 대응하는 웹 페이지를 구성하는 리소스를 웹 서버로부터 수신하는 단계
    를 포함하는 SPDY에 기초한 웹 가속 방법.
  2. 제 1 항에 있어서,
    상기 로컬 SPDY 프록시는 측정된 네트워크의 손실 정도에 기초하여 생성할 상기 SPDY 세션의 수를 결정하는 것을 특징으로 하는, SPDY에 기초한 웹 가속 방법.
  3. 제 1 항에 있어서,
    상기 웹 페이지가 멀티 도메인을 포함하는 경우, 상기 원격 SPDY 프록시는 복수개의 SPDY 채널을 통해 상기 멀티 도메인 각각으로부터 상기 웹 페이지를 구성하는 리소스를 수신하는 것을 특징으로 하는, SPDY에 기초한 웹 가속 방법.
  4. 제 1 항에 있어서,
    상기 원격 SPDY 프록시는, 상기 클라이언트가 요청하지 않았지만, 요청할 것으로 예상되는 리소스를 프리페칭(pre-fetching) 하는 것을 특징으로 하는, SPDY에 기초한 웹 가속 방법.
  5. 제 4 항에 있어서,
    상기 원격 SPDY 프록시는, 상기 클라이언트의 브라우징 패턴 및 HTML 패턴 중 적어도 하나를 기초로, 상기 클라이언트의 요청을 예상하는 것을 특징으로 하는, SPDY에 기초한 웹 가속 방법.
  6. 제 1 항에 있어서,
    상기 원격 SPDY 프록시는, 상기 웹 서버를 통해 수집된 리소스의 URL (Uniform Resource Locator) 주소를 컨버팅하는 것을 특징으로 하는, SPDY에 기초한 웹 가속 방법.
  7. 제 1 항에 있어서,
    상기 원격 SPDY 프록시는 상기 클라이언트의 요청과 무관하게 상기 클라이언트로 데이터를 푸쉬하는 것을 특징으로 하는, SPDY에 기초한 웹 가속 방법.
  8. 제 6 항에 있어서,
    상기 원격 SPDY 프록시는, 현재 네트워크 대역폭을 측정하고,
    상기 측정된 네트워크 대역폭에 따라 상기 푸쉬되는 데이터의 최대 크기를 조절하는 것을 특징으로 하는, SPDY에 기초한 웹 가속 방법.
PCT/KR2014/002597 2014-03-27 2014-03-27 Spdy에 기초한 웹 가속 방법 및 이를 위한 spdy 프록시 WO2015147354A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/124,875 US20170019506A1 (en) 2014-03-27 2014-03-27 Spdy-based web acceleration method and spdy proxy therefor
PCT/KR2014/002597 WO2015147354A1 (ko) 2014-03-27 2014-03-27 Spdy에 기초한 웹 가속 방법 및 이를 위한 spdy 프록시

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2014/002597 WO2015147354A1 (ko) 2014-03-27 2014-03-27 Spdy에 기초한 웹 가속 방법 및 이를 위한 spdy 프록시

Publications (1)

Publication Number Publication Date
WO2015147354A1 true WO2015147354A1 (ko) 2015-10-01

Family

ID=54195851

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2014/002597 WO2015147354A1 (ko) 2014-03-27 2014-03-27 Spdy에 기초한 웹 가속 방법 및 이를 위한 spdy 프록시

Country Status (2)

Country Link
US (1) US20170019506A1 (ko)
WO (1) WO2015147354A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017131645A1 (en) * 2016-01-27 2017-08-03 Aruba Networks, Inc. Detecting malware on spdy connections
CN109086148A (zh) * 2018-08-01 2018-12-25 山东浪潮通软信息科技有限公司 一种跨平台调用Web Service服务的方法
US11258882B2 (en) * 2012-07-18 2022-02-22 Canon Kabushiki Kaisha Information processing device, method, and storage medium for prioritized content acquisition

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10887325B1 (en) * 2017-02-13 2021-01-05 Exabeam, Inc. Behavior analytics system for determining the cybersecurity risk associated with first-time, user-to-entity access alerts
US10841338B1 (en) 2017-04-05 2020-11-17 Exabeam, Inc. Dynamic rule risk score determination in a cybersecurity monitoring system
US11423143B1 (en) 2017-12-21 2022-08-23 Exabeam, Inc. Anomaly detection based on processes executed within a network
US11431741B1 (en) 2018-05-16 2022-08-30 Exabeam, Inc. Detecting unmanaged and unauthorized assets in an information technology network with a recurrent neural network that identifies anomalously-named assets
US11625366B1 (en) 2019-06-04 2023-04-11 Exabeam, Inc. System, method, and computer program for automatic parser creation
US11956253B1 (en) 2020-06-15 2024-04-09 Exabeam, Inc. Ranking cybersecurity alerts from multiple sources using machine learning

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020062384A1 (en) * 1998-03-06 2002-05-23 Tso Michael M. Method of proxy-assisted predictive pre-fetching
US20080208789A1 (en) * 2007-02-23 2008-08-28 Microsoft Corporation HTTP acceleration by prediction and pre-fetching
US20130297814A1 (en) * 2012-05-05 2013-11-07 Citrix Systems, Inc. Systems and methods for a spdy to http gateway
JP2014010622A (ja) * 2012-06-29 2014-01-20 Kddi Corp Webコンテンツの配信装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6701316B1 (en) * 2000-04-07 2004-03-02 Nec Corporation Method and apparatus for intelligent network bandwidth and system resource utilization for web content fetch and refresh
US7130890B1 (en) * 2002-09-04 2006-10-31 Hewlett-Packard Development Company, L.P. Method and system for adaptively prefetching objects from a network
EP2224351A1 (en) * 2009-02-26 2010-09-01 Telefonaktiebolaget L M Ericsson (publ) method for use in association with a multi-tab interpretation and rendering function
WO2012018556A2 (en) * 2010-07-26 2012-02-09 Ari Backholm Mobile application traffic optimization
EP3001692A4 (en) * 2013-07-02 2016-06-08 Huawei Tech Co Ltd METHOD, APPARATUS AND SYSTEM FOR PROCESSING MULTIMEDIA STREAMS
US20150142874A1 (en) * 2013-11-18 2015-05-21 Qualcomm Incorporated Prioritized one-shot browsing to reduce http page download delay

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020062384A1 (en) * 1998-03-06 2002-05-23 Tso Michael M. Method of proxy-assisted predictive pre-fetching
US20080208789A1 (en) * 2007-02-23 2008-08-28 Microsoft Corporation HTTP acceleration by prediction and pre-fetching
US20130297814A1 (en) * 2012-05-05 2013-11-07 Citrix Systems, Inc. Systems and methods for a spdy to http gateway
JP2014010622A (ja) * 2012-06-29 2014-01-20 Kddi Corp Webコンテンツの配信装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GEN MINEKI ET AL.: "SPDY Accelerator for Improving Web Access Speed.", ADVANCED COMMUNICATION TECHNOLOGY (ICACT), 2013 15TH INTERNATIONAL CONFERENCE ON IEEE, 27 January 2013 (2013-01-27), pages 540 - 544, XP032349756 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11258882B2 (en) * 2012-07-18 2022-02-22 Canon Kabushiki Kaisha Information processing device, method, and storage medium for prioritized content acquisition
WO2017131645A1 (en) * 2016-01-27 2017-08-03 Aruba Networks, Inc. Detecting malware on spdy connections
CN108605039A (zh) * 2016-01-27 2018-09-28 安移通网络公司 在spdy连接上检测恶意软件
EP3408989A4 (en) * 2016-01-27 2019-06-12 Hewlett-Packard Enterprise Development LP DETECTION OF MALWARE TO SPDY CONNECTIONS
CN108605039B (zh) * 2016-01-27 2021-04-13 慧与发展有限责任合伙企业 在spdy连接上检测恶意软件
US10992702B2 (en) 2016-01-27 2021-04-27 Hewlett Packard Enterprise Development Lp Detecting malware on SPDY connections
CN109086148A (zh) * 2018-08-01 2018-12-25 山东浪潮通软信息科技有限公司 一种跨平台调用Web Service服务的方法

Also Published As

Publication number Publication date
US20170019506A1 (en) 2017-01-19

Similar Documents

Publication Publication Date Title
WO2015147354A1 (ko) Spdy에 기초한 웹 가속 방법 및 이를 위한 spdy 프록시
US9253065B2 (en) Latency measurement in resource requests
Mueller et al. Dynamic adaptive streaming over HTTP/2.0
US8620999B1 (en) Network resource modification for higher network connection concurrence
US8898336B2 (en) Content conversion system and content conversion server
Grigorik Making the web faster with HTTP 2.0
CN102710748A (zh) 数据获取方法、系统及设备
WO2014065633A1 (ko) 네트워크 시스템에서 웹 접속 장치 및 방법
US10432482B2 (en) Network parameter configuration based on end user device characteristics
US9774629B2 (en) Dynamic secure packet block sizing
CN102594877A (zh) 结合重定向下载请求和代理服务加速网络服务的方法、系统
Davern et al. HTTPEP: A HTTP performance enhancing proxy for satellite systems
WO2015142752A1 (en) Transport accelerator implementing a multiple interface architecture
EP3588896A1 (en) Multi-path management
CN112995197A (zh) 监控设备的远程访问方法、系统、设备及存储介质
US9544250B2 (en) Enhanced acknowledgement handling in communication packet transfer
Mi et al. Smig: Stream migration extension for http/2
Sander et al. Analyzing the Influence of Resource Prioritization on HTTP/3 HOL Blocking and Performance.
US20160261633A1 (en) Enhanced thread handling in security handshaking
WO2018021616A1 (en) Operating method of client for streaming service
WO2017150946A1 (ko) 적응적 스트리밍 서비스에서 데이터 버퍼링 방법 및 장치
CN116800765A (zh) P2p点对点数据节流加速实现方法、装置和存储介质
WO2012134216A2 (ko) 웹 환경에서 캐싱 효율을 높인 서버, 단말기 및 그 방법
Bach et al. Exploring HTTP/2 advantages and performance analysis using Java 9
CN107911415A (zh) Tcp流的多路复用系统及其方法、存储介质与终端

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14886762

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15124875

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14886762

Country of ref document: EP

Kind code of ref document: A1