KR102622252B1 - 콘텐츠 전송 장치 및 방법 - Google Patents

콘텐츠 전송 장치 및 방법 Download PDF

Info

Publication number
KR102622252B1
KR102622252B1 KR1020190061930A KR20190061930A KR102622252B1 KR 102622252 B1 KR102622252 B1 KR 102622252B1 KR 1020190061930 A KR1020190061930 A KR 1020190061930A KR 20190061930 A KR20190061930 A KR 20190061930A KR 102622252 B1 KR102622252 B1 KR 102622252B1
Authority
KR
South Korea
Prior art keywords
content
byte range
request
content servers
servers
Prior art date
Application number
KR1020190061930A
Other languages
English (en)
Other versions
KR20200136195A (ko
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 KR1020190061930A priority Critical patent/KR102622252B1/ko
Priority to US16/881,363 priority patent/US11290370B2/en
Priority to CN202010453571.6A priority patent/CN112003885B/zh
Priority to EP20176492.5A priority patent/EP3745680B1/en
Publication of KR20200136195A publication Critical patent/KR20200136195A/ko
Application granted granted Critical
Publication of KR102622252B1 publication Critical patent/KR102622252B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/121Shortest path evaluation by minimising delays
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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/565Conversion or adaptation of application format or content
    • H04L67/5651Reducing the amount or size of exchanged application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0858One way delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4552Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1036Load balancing of requests to servers for services different from user content provisioning, e.g. load balancing across domain name servers
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

콘텐츠 전송 장치 및 방법이 개시된다. 일 실시예에 따른 콘텐츠 전송 장치는, 복수의 콘텐츠 서버로 클라이언트 장치에 의해 요청된 콘텐츠에 대한 요청 메시지를 전송하는 콘텐츠 요청 전송부, 상기 요청 메시지에 대한 상기 복수의 콘텐츠 서버 각각의 응답 메시지에 기초하여 상기 복수의 콘텐츠 서버 각각의 응답 지연 시간을 산출하는 응답 지연 시간 산출부, 상기 응답 메시지 및 상기 응답 지연 시간 중 적어도 하나에 기초하여 상기 복수의 콘텐츠 서버 중 상기 콘텐츠에 대한 바이트 범위 요청(Byte Range Request)을 전송할 하나 이상의 콘텐츠 서버를 결정하고, 상기 하나 이상의 콘텐츠 서버 각각에 대한 바이트 범위 요청 크기 및 바이트 범위 요청 수를 결정하는 바이트 범위 결정부 및 상기 바이트 범위 요청 크기 및 바이트 범위 요청 수에 기초한 바이트 범위 요청을 통해 상기 하나 이상의 콘텐츠 서버로부터 상기 콘텐츠를 획득하는 콘텐츠 획득부를 포함한다.

Description

콘텐츠 전송 장치 및 방법{APPARATUS AND METHOD FOR TRANSMITTING CONTENTS}
개시되는 실시예들은 콘텐츠 전송 기술과 관련된다.
클라이언트는 콘텐츠를 효율적으로 수신하기 위해 바이트 범위 요청(Byte Range Request)을 이용하여 웹 서버로부터 필요한 부분의 콘텐츠만을 수신한다. 또한, 캐시 서버와 웹 서버 간에 대용량 콘텐츠를 전송하는 경우, 대용량 콘텐츠의 빠른 전송을 위해 바이트 범위 요청을 활용한다.
하지만, 기존의 바이트 범위 요청은 웹 서버의 환경 및 네트워크 전송 속도를 고려하지 않는다. 구체적으로, 기존에는 클라이언트 또는 캐시 서버에서 대용량 콘텐츠에 대한 한 개의 요청을 다수의 바이트 범위 요청으로 나누어 단일 웹 서버로 전송하여 콘텐츠를 수신한다. 이때, 과부하heavy load)가 있는 서버는 다수의 바이트 범위 요청에 대한 모든 응답을 정상적으로 보내지 못할 뿐만 아니라 다수의 바이트 범위 요청에 의한 성능 열화도 발생한다.
한국등록특허 제10-0824030호 (2008.04.21. 공고)
개시되는 실시예들은 콘텐츠 전송 장치 및 방법을 제공하기 위한 것이다.
일 실시예에 따른 콘텐츠 전송 장치는, 복수의 콘텐츠 서버로 클라이언트 장치에 의해 요청된 콘텐츠에 대한 요청 메시지를 전송하는 콘텐츠 요청 전송부, 상기 요청 메시지에 대한 상기 복수의 콘텐츠 서버 각각의 응답 메시지에 기초하여 상기 복수의 콘텐츠 서버 각각의 응답 지연 시간을 산출하는 응답 지연 시간 산출부, 상기 응답 메시지 및 상기 응답 지연 시간 중 적어도 하나에 기초하여 상기 복수의 콘텐츠 서버 중 상기 콘텐츠에 대한 바이트 범위 요청(Byte Range Request)을 전송할 하나 이상의 콘텐츠 서버를 결정하고, 상기 하나 이상의 콘텐츠 서버 각각에 대한 바이트 범위 요청 크기 및 바이트 범위 요청 수를 결정하는 바이트 범위 결정부 및 상기 바이트 범위 요청 크기 및 바이트 범위 요청 수에 기초한 바이트 범위 요청을 통해 상기 하나 이상의 콘텐츠 서버로부터 상기 콘텐츠를 획득하는 콘텐츠 획득부를 포함한다.
상기 콘텐츠 요청 전송부는, DNS 룩업(Domain Name System lookup)을 이용하여 상기 요청 메시지를 전송할 상기 복수의 콘텐츠 서버를 식별할 수 있다.
상기 콘텐츠 요청 전송부는, 상기 복수의 콘텐츠 서버에 대한 부하분산(Load Balancing)을 수행하는 로드 밸런서(Load Balancer)로 상기 요청 메시지를 전송하여, 상기 로드 밸런서로부터 상기 복수의 콘텐츠 서버에 의해 전송된 상기 응답 메시지를 수신하고, 상기 수신된 응답 메시지의 헤더에 포함된 정보에 기초하여 상기 요청 메시지를 전송할 상기 복수의 콘텐츠 서버를 식별할 수 있다.
상기 바이트 범위 결정부는, 상기 하나 이상의 콘텐츠 서버 각각의 상기 응답 지연 시간에 반비례하도록 상기 바이트 범위 요청 크기를 결정할 수 있다.
상기 바이트 범위 결정부는, 상기 하나 이상의 콘텐츠 서버 각각의 상기 응답 지연 시간에 비례하고, 상기 하나 이상의 콘텐츠 서버 각각과의 연결 수에 반비례하도록 상기 바이트 범위 요청 수를 결정할 수 있다.
상기 콘텐츠 획득부는, 상기 하나 이상의 콘텐츠 서버 각각으로 상기 하나 이상의 콘텐츠 서버 각각의 상기 바이트 범위 요청 수만큼 상기 바이트 범위 요청을 전송하고, 상기 하나 이상의 콘텐츠 서버 각각으로부터 상기 콘텐츠의 전체 크기 중 상기 하나 이상의 콘텐츠 서버 각각의 상기 바이트 범위 요청 크기에 해당하는 상기 콘텐츠에 대한 데이터를 수신하되, 상기 콘텐츠에 대한 데이터를 상기 하나 이상의 콘텐츠 서버 각각의 상기 바이트 범위 요청 수만큼 분할하여 수신할 수 있다.
상기 콘텐츠 획득부는, 상기 하나 이상의 콘텐츠 서버 각각으로부터 수신된 상기 콘텐츠에 대한 데이터를 결합하여 상기 콘텐츠를 획득할 수 있다.
일 실시예에 따른 콘텐츠 전송 방법은, 복수의 콘텐츠 서버로 클라이언트 장치에 의해 요청된 콘텐츠에 대한 요청 메시지를 전송하는 단계, 상기 요청 메시지에 대한 상기 복수의 콘텐츠 서버 각각의 응답 메시지에 기초하여 상기 복수의 콘텐츠 서버 각각의 응답 지연 시간을 산출하는 단계, 상기 응답 메시지 및 상기 응답 지연 시간 중 적어도 하나에 기초하여 상기 복수의 콘텐츠 서버 중 상기 콘텐츠에 대한 바이트 범위 요청(Byte Range Request)을 전송할 하나 이상의 콘텐츠 서버를 결정하는 단계, 상기 하나 이상의 콘텐츠 서버 각각에 대한 바이트 범위 요청 크기 및 바이트 범위 요청 수를 결정하는 단계 및 상기 바이트 범위 요청 크기 및 바이트 범위 요청 수에 기초한 바이트 범위 요청을 통해 상기 하나 이상의 콘텐츠 서버로부터 상기 콘텐츠를 획득하는 단계를 포함할 수 있다.
상기 전송하는 단계는, DNS 룩업(Domain Name System lookup)을 이용하여 상기 요청 메시지를 전송할 상기 복수의 콘텐츠 서버를 식별할 수 있다.
상기 전송하는 단계는, 상기 복수의 콘텐츠 서버에 대한 부하분산(Load Balancing)을 수행하는 로드 밸런서(Load Balancer)로 상기 요청 메시지를 전송하는 단계, 상기 로드 밸런서로부터 상기 복수의 콘텐츠 서버에 의해 전송된 상기 응답 메시지를 수신하는 단계 및 상기 수신된 응답 메시지의 헤더에 포함된 정보에 기초하여 상기 요청 메시지를 전송할 상기 복수의 콘텐츠 서버를 식별하는 단계를 포함할 수 있다.
상기 바이트 범위 요청 크기 및 바이트 범위 요청 수를 결정하는 단계는, 상기 하나 이상의 콘텐츠 서버 각각의 상기 응답 지연 시간에 반비례하도록 상기 바이트 범위 요청 크기를 결정할 수 있다.
상기 바이트 범위 요청 크기 및 바이트 범위 요청 수를 결정하는 단계는, 상기 하나 이상의 콘텐츠 서버 각각의 상기 응답 지연 시간에 비례하고, 상기 하나 이상의 콘텐츠 서버 각각과의 연결 수에 반비례하도록 상기 바이트 범위 요청 수를 결정할 수 있다.
상기 획득하는 단계는, 상기 하나 이상의 콘텐츠 서버 각각으로 상기 하나 이상의 콘텐츠 서버 각각의 상기 바이트 범위 요청 수만큼 상기 바이트 범위 요청을 전송하는 단계 및 상기 하나 이상의 콘텐츠 서버 각각으로부터 상기 콘텐츠의 전체 크기 중 상기 하나 이상의 콘텐츠 서버 각각의 상기 바이트 범위 요청 크기에 해당하는 상기 콘텐츠에 대한 데이터를 수신하되, 상기 콘텐츠에 대한 데이터를 상기 하나 이상의 콘텐츠 서버 각각의 상기 바이트 범위 요청 수만큼 분할하여 수신하는 단계를 포함할 수 있다.
상기 획득하는 단계는, 상기 하나 이상의 콘텐츠 서버 각각으로부터 수신된 상기 콘텐츠에 대한 데이터를 결합하여 상기 콘텐츠를 획득할 수 있다.
개시되는 실시예들에 따르면, 하나 이상의 콘텐츠 서버 각각에 대한 바이트 범위 요청을 통해 콘텐츠를 획득함으로써, 대용량 콘텐츠를 빠르게 전송할 수 있고, 대용량 콘텐츠를 전송하는데 소요되는 시간을 절약할 수 있다.
도 1은 일 실시예에 따른 콘텐츠 전송 시스템의 구성도
도 2는 일 실시예에 따른 콘텐츠 전송 장치의 구성도
도 3은 일 실시예에 따른 복수의 콘텐츠를 식별하는 예를 설명하기 위한 도면
도 4는 일 실시예에 따른 복수의 콘텐츠를 식별하는 다른 예를 설명하기 위한 도면
도 5는 일 실시예에 따른 바이트 범위 요청 크기를 결정하는 예를 설명하기 위한 도면
도 6은 일 실시예에 따른 바이트 범위 요청을 전송하여 콘텐츠를 획득하는 예를 설명하기 위한 도면
도 7은 일 실시예에 따른 콘텐츠 전송 방법의 순서도
도 8은 일 실시예에 따른 복수의 콘텐츠 서버를 식별하는 방법의 순서도
도 9는 일 실시예에 따른 바이트 범위 요청을 전송하여 콘텐츠를 획득하는 방법의 순서도
도 10은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 이에 제한되지 않는다.
실시예들을 설명함에 있어서, 관련된 공지기술에 대한 구체적인 설명이 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 또한, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 일 실시예에 따른 콘텐츠 전송 시스템(100)의 구성도이다.
도 1을 참조하면, 콘텐츠 전송 시스템(100)은 클라이언트 장치(110), 캐시 서버(120) 및 복수의 콘텐츠 서버(130-1, 130-2, 130-n)를 포함한다.
클라이언트 장치(110)는 캐시 서버(120)를 통해 복수의 콘텐츠 서버(130-1, 130-2, 130-n)에 의해 제공되는 콘텐츠를 제공받는 장치일 수 있다. 클라이언트 장치(110)는 예를 들어, 개인용 컴퓨터(Personal Computer), 스마트폰(Smart Phone), 태블렛(Tablet) PC 등 다양한 형태의 장치를 포함할 수 있으나, 반드시 이에 한정되는 것은 아니며, 디스플레이 수단, 입출력 수단, 정보처리 수단 및 유무선 네트워크를 통한 통신 수단을 구비한 다양한 형태의 장치들을 포함할 수 있다.
캐시 서버(120)는 유무선 네트워크를 통해 복수의 콘텐츠 서버(130-1, 130-2, 130-n)와 연계하여 클라이언트 장치(110)에 의해 요청된 콘텐츠를 제공하는 장치일 수 있다.
예를 들어, 캐시 서버(120)는 클라이언트 장치(110)로부터 최초로 콘텐츠를 요청받은 경우, 복수의 콘텐츠 서버(130-1, 130-2, 130-n)로 클라이언트 장치(110)에 의해 요청된 콘텐츠에 대한 요청 메시지를 전송할 수 있다. 이후, 캐시 서버(120)는 요청 메시지에 따라 복수의 콘텐츠 서버(130-1, 130-2, 130-n)로부터 제공받은 콘텐츠를 클라이언트 장치(110)에게 전송할 수 있다. 이때, 캐시 서버(120)는 복수의 콘텐츠 서버(130-1, 130-2, 130-n)로부터 제공받은 콘텐츠를 저장할 수 있다. 이에 따라, 캐시 서버(120)는 클라이언트 장치(110)로부터 해당 콘텐츠에 대한 재요청이 있거나 타 클라이언트 장치로부터 해당 콘텐츠에 대한 요청이 있는 경우, 저장되어 있는 콘텐츠를 곧바로 전송할 수 있다.
복수의 콘텐츠 서버(130-1, 130-2, 130-n)는 콘텐츠를 저장 및 관리하고, 클라이언트 장치(110)의 콘텐츠 요청에 따라 콘텐츠를 제공하는 장치일 수 있다.
일 실시예에 따르면, 복수의 콘텐츠 서버(130-1, 130-2, 130-n)는 클라이언트 장치(110)로 콘텐츠를 제공하기 위해 캐시 서버(120)와 연결된 서버일 수 있다. 예를 들어, 복수의 콘텐츠 서버(130-1, 130-2, 130-n)는 캐시 서버(120)를 통해 클라이언트 장치(110)의 콘텐츠 요청을 전송받고, 캐시 서버(120)를 통해 클라이언트 장치(110)에 의해 요청된 콘텐츠를 제공할 수 있다.
도 2는 일 실시예에 따른 콘텐츠 전송 장치(200)의 구성도이다.
도 2에 도시된 콘텐츠 전송 장치(200)는 예를 들어, 도 1에 도시된 캐시 서버(120)의 일 구성으로 구현될 수 있다.
도 2를 참조하면, 콘텐츠 전송 장치(200)는 콘텐츠 요청 전송부(210), 응답 지연 시간 산출부(220), 바이트 범위 결정부(230) 및 콘텐츠 획득부(240)를 포함한다.
콘텐츠 요청 전송부(210)는 복수의 콘텐츠 서버(130-1, 130-2, 130-n)로 클라이언트 장치(110)에 의해 요청된 콘텐츠에 대한 요청 메시지를 전송한다.
예를 들어, 콘텐츠 요청 전송부(210)는 콘텐츠를 요청할 백엔드 서버(backend)로서 복수의 콘텐츠 서버(130-1, 130-2, 130-n)를 사전 등록할 수 있다. 콘텐츠 요청 전송부(210)는 클라이언트 장치(110)로부터 콘텐츠에 대한 요청이 있는 경우, 사전 등록된 복수의 콘텐츠 서버(130-1, 130-2, 130-n) 각각의 서버 주소를 조회하고, 조회된 서버 주소를 이용하여 복수의 콘텐츠 서버(130-1, 130-2, 130-n)로 요청 메시지를 전송할 수 있다.
또한, 콘텐츠 요청 전송부(210)는 클라이언트 장치(110)로부터 콘텐츠에 대한 요청이 있는 경우, 콘텐츠를 요청할 복수의 콘텐츠 서버(130-1, 130-2, 130-n)를 식별하여 요청 메시지를 전송할 수 있다.
일 실시예에 따르면, 콘텐츠 요청 전송부(210)는 DNS 룩업(Domain Name System lookup)을 이용하여 요청 메시지를 전송할 복수의 콘텐츠 서버(130-1, 130-2, 130-n)를 식별할 수 있다.
도 3은 일 실시예에 따른 복수의 콘텐츠를 식별하는 예를 설명하기 위한 도면이다.
도 3을 참조하면, 콘텐츠 요청 전송부(210)는 클라이언트 장치(110)로부터 콘텐츠에 대한 요청이 있는 경우, DNS 서버(310)로 요청된 콘텐츠를 제공하는 복수의 콘텐츠 서버(130-1, 130-2, 130-n) 중 하나 이상에 대한 서버 주소를 요청할 수 있다. 콘텐츠 요청 전송부(210)는 DNS 서버(310)로부터 복수의 콘텐츠 서버(130-1, 130-2, 130-n) 중 하나 이상에 대한 서버 주소를 획득할 수 있다. 이때, 콘텐츠 요청 전송부(210)는 클라이언트 장치(110)로부터 콘텐츠에 대한 다수의 요청이 있는 경우, 다수의 DNS 룩업을 통해 복수의 콘텐츠 서버(130-1, 130-2, 130-n)에 대한 서버 주소를 획득하여 복수의 콘텐츠 서버(130-1, 130-2, 130-n)를 식별할 수 있다.
또한, 일 실시예에 따르면, 콘텐츠 요청 전송부(210)는 복수의 콘텐츠 서버(130-1, 130-2, 130-n)에 대한 부하분산(Load Balancing)을 수행하는 로드 밸런서(Load Balancer)로 요청 메시지를 전송하여, 로드 밸런서로부터 복수의 콘텐츠 서버(130-1, 130-2, 130-n)에 의해 전송된 응답 메시지를 수신하고, 수신된 응답 메시지의 헤더에 포함된 정보에 기초하여 요청 메시지를 전송할 복수의 콘텐츠 서버(130-1, 130-2, 130-n)를 식별할 수 있다. 이때, 로드 밸런서는 예를 들어, L4 스위치, L7 스위치 등과 같이 부하분산 처리를 위한 네트워크 장치일 수 있다.
도 4는 일 실시예에 따른 복수의 콘텐츠를 식별하는 다른 예를 설명하기 위한 도면이다.
도 4를 참조하면, 콘텐츠 요청 전송부(210)는 클라이언트 장치(110)로부터 콘텐츠에 대한 요청이 있는 경우, 로드 밸런서(410)로 요청 메시지를 전송할 수 있다. 이때, 로드 밸런서(410)는 예를 들어, 라운드 로빈(Round Robin), 최소 연결 수(Least Connection) 등 다양한 부하분산 방식을 통해 복수의 콘텐츠 서버(130-1, 130-2, 130-n)로 요청 메시지를 전송할 수 있다. 이후, 로드 밸런서(410)는 복수의 콘텐츠 서버(130-1, 130-2, 130-n) 각각으로부터 요청 메시지에 대한 응답 메시지를 전송받아 콘텐츠 요청 전송부(410)로 전달할 수 있다. 콘텐츠 요청 전송부(210)는 로드 밸런서(410)로부터 수신된 응답 메시지의 헤더에 포함된 정보 예를 들어, 응답 메시지의 헤더 항목들을 분석할 수 있다. 이때, 콘텐츠 요청 전송부(210)는 헤더에 포함된 정보에 대한 분석 결과에 기초하여 복수의 콘텐츠 서버(130-1, 130-2, 130-n)를 식별함으로써, 복수의 콘텐츠 서버(130-1, 130-2, 130-n)의 개수 등과 같이 복수의 콘텐츠 서버(130-1, 130-2, 130-n)에 대한 정보를 획득할 수 있다.
한편, 복수의 콘텐츠 서버(130-1, 130-2, 130-n)를 식별하는 방식은 상술한 도 3 및 4에 도시된 실시예들에 한정되는 것은 아니며, 복수의 콘텐츠 서버(130-1, 130-2, 130-n)를 식별할 수 있는 공지된 다양한 방식들을 모두 포함할 수 있다.
또한, 콘텐츠 요청 전송부(210)는 클라이언트 장치(110)로부터 콘텐츠에 대한 재요청이 있는 경우, 재요청된 콘텐츠의 변경 여부 확인 정보를 포함하는 요청 메시지를 복수의 콘텐츠 서버(130-1, 130-2, 130-n)로 전송할 수 있다. 예를 들어, 콘텐츠 요청 전송부(210)는 요청 메시지의 헤더에 포함된 If-Modified-Since 항목에 콘텐츠에 대한 최초 요청을 전송했던 날짜 또는 콘텐츠가 재요청되기 전에 콘텐츠에 대한 요청을 전송했던 날짜 정보를 포함시켜 전송할 수 있다. 이때, 콘텐츠 요청 전송부(210)는 복수의 콘텐츠 서버(130-1, 130-2, 130-n)로부터 수신된 응답 메시지에 포함된 정보에 따라 클라이언트 장치(110)로 콘텐츠를 제공하는 방식이 상이할 수 있다.
예를 들어, 콘텐츠 요청 전송부(210)는 복수의 콘텐츠 서버(130-1, 130-2, 130-n)로부터 재요청된 콘텐츠가 변경되지 않았다는 정보 예를 들어, 304 HTTP 상태 코드를 포함하는 응답 메시지를 수신할 수 있다. 이 경우, 복수의 콘텐츠 서버(130-1, 130-2, 130-n)로부터 기 획득된 콘텐츠를 클라이언트 장치(110)로 제공할 수 있다. 상술한 예와 달리, 콘텐츠 요청 전송부(210)는 복수의 콘텐츠 서버(130-1, 130-2, 130-n)로부터 재요청된 콘텐츠가 변경되었다는 정보를 포함하는 응답 메시지를 수신할 수 있다. 이 경우, 콘텐츠 요청 전송부(210)는 재요청된 콘텐츠를 획득하기 위한 이하의 과정들을 수행할 수 있다.
응답 지연 시간 산출부(220)는 요청 메시지에 대한 복수의 콘텐츠 서버(130-1, 130-2, 130-n) 각각의 응답 메시지에 기초하여 복수의 콘텐츠 서버(130-1, 130-2, 130-n) 각각의 응답 지연 시간을 산출한다.
구체적으로, 응답 지연 시간 산출부(220)는 요청 메시지의 전송 시간 및 복수의 콘텐츠 서버(130-1, 130-2, 130-n) 각각의 응답 메시지의 수신 시간을 이용하여 복수의 콘텐츠 서버(130-1, 130-2, 130-n) 각각의 응답 지연 시간을 산출할 수 있다. 예를 들어, 응답 지연 시간 산출부(220)는 요청 메시지를 전송한 시점부터 응답 메시지를 수신한 시점까지의 시간 간격을 응답 지연 시간으로 결정할 수 있다.
또한, 콘텐츠 요청 전송부(210)에 의해 복수의 콘텐츠 서버(130-1, 130-2, 130-n)로부터 재요청된 콘텐츠가 변경되었다는 정보를 포함하는 응답 메시지가 수신된 경우, 재요청된 콘텐츠에 대한 요청 메시지 및 재요청된 콘텐츠에 대한 요청 메시지에 대한 복수의 콘텐츠 서버(130-1, 130-2, 130-n) 각각의 응답 메시지에 기초하여 복수의 콘텐츠 서버(130-1, 130-2, 130-n) 각각의 응답 지연 시간을 산출할 수 있다.
바이트 범위 결정부(230)는 응답 메시지 및 응답 지연 시간 중 적어도 하나에 기초하여 복수의 콘텐츠 서버(130-1, 130-2, 130-n) 중 콘텐츠에 대한 바이트 범위 요청(Byte Range Request)을 전송할 하나 이상의 콘텐츠 서버를 결정하고, 하나 이상의 콘텐츠 서버 각각에 대한 바이트 범위 요청 크기 및 바이트 범위 요청 수를 결정한다.
구체적으로, 바이트 범위 결정부(230)는 응답 메시지 및 응답 지연 시간 중 적어도 하나에 기초하여 복수의 콘텐츠 서버(130-1, 130-2, 130-n) 중 정상적으로 동작하며 요청된 콘텐츠가 존재하는 콘텐츠 서버를 확인하여 바이트 범위 요청을 전송할 하나 이상의 콘텐츠 서버를 결정할 수 있다.
예를 들어, 응답 메시지에 200 HTTP 상태 코드가 포함된 경우, 바이트 범위 결정부(230)는 복수의 콘텐츠 서버(130-1, 130-2, 130-n) 중 해당 응답 메시지를 전송한 콘텐츠 서버를 바이트 범위 요청을 전송할 콘텐츠 서버로 결정할 수 있다. 다른 예로, 응답 메시지에 404 HTTP 상태 코드가 포함된 경우, 바이트 범위 결정부(230)는 복수의 콘텐츠 서버(130-1, 130-2, 130-n) 중 해당 응답 메시지를 전송한 콘텐츠 서버를 바이트 범위 요청을 전송할 콘텐츠 서버에서 제외시킬 수 있다. 또 다른 예로, 응답 메시지에 500 HTTP 상태 코드가 포함되거나 응답 메시지가 수신되지 않은 경우, 바이트 범위 결정부(230)는 복수의 콘텐츠 서버(130-1, 130-2, 130-n) 중 500 HTTP 상태 코드를 포함하는 응답 메시지를 전송한 콘텐츠 서버 또는 응답 메시지를 전송하지 않은 콘텐츠 서버를 바이트 범위 요청을 전송할 콘텐츠 서버에서 제외시키거나 콘텐츠 요청 전송부(210)를 통해 해당 콘텐츠 서버로 콘텐츠에 대한 요청 메시지를 재전송할 수 있다.
또한, 바이트 범위 결정부(230)는 복수의 콘텐츠 서버(130-1, 130-2, 130-n) 중 응답 지연 시간이 기 설정된 값 이상인 콘텐츠 서버를 바이트 범위 요청을 전송할 콘텐츠 서버에서 제외시킬 수 있다.
따라서, 상술한 실시예들에 따라 응답 메시지 및 응답 지연 시간 중 적어도 하나에 기초하여 바이트 범위 요청을 전송할 하나 이상의 콘텐츠 서버를 결정함으로써, 무분별한 바이트 범위 요청에 의한 서버 과부하를 줄일 수 있다.
한편, 일 실시예에 따르면, 바이트 범위 결정부(230)는 하나 이상의 콘텐츠 서버 각각의 응답 지연 시간에 반비례하도록 바이트 범위 요청 크기는 결정할 수 있다.
도 5는 일 실시예에 따른 바이트 범위 요청 크기를 결정하는 예를 설명하기 위한 도면이다.
도 5를 참조하면, 응답 지연 시간 산출부(220)에 의해 콘텐츠 서버 A(510), 콘텐츠 서버 B(520) 및 콘텐츠 서버 C(530) 각각의 응답 지연 시간이 200ms, 200ms 및 100ms로 산출된 것으로 가정한다. 이때, 바이트 범위 결정부(230)는 콘텐츠 서버 A(510), 콘텐츠 서버 B(520) 및 콘텐츠 서버 C(530) 각각에 대한 바이트 범위 요청 크기를 각 서버의 응답 지연 시간에 반비례하도록 1:1:2 비율로 결정할 수 있다. 예를 들어, 응답 메시지에 기초하여 콘텐츠에 대한 데이터의 크기가 1Gbytes로 파악된 경우, 바이트 범위 결정부(230)는 콘텐츠 서버 A(510), 콘텐츠 서버 B(520) 및 콘텐츠 서버 C(530) 각각에 대한 바이트 범위 요청 크기를 250Mbytes, 250Mbytes 및 500Mbytes로 결정할 수 있다.
한편, 일 실시예에 따르면, 바이트 범위 결정부(230)는 하나 이상의 콘텐츠 서버 각각의 응답 지연 시간에 비례하고, 하나 이상의 콘텐츠 서버 각각과의 연결 수에 반비례하도록 바이트 범위 요청 수를 결정할 수 있다. 이때, 콘텐츠 서버와의 연결 수는 콘텐츠 서버와 동시에 연결되는 개수로서 사용자 또는 서버 관리자에 의해 설정될 수 있다.
예를 들어, 바이트 범위 결정부(230)는 콘텐츠 서버의 응답 지연 시간이 작을수록 또는 콘텐츠 서버와의 연결 수가 많을수록 해당 콘텐츠 서버에 대한 바이트 범위 요청 수를 적은 수로 결정할 수 있다.
콘텐츠 획득부(240)는 바이트 범위 요청 크기 및 바이트 범위 요청 수에 기초한 바이트 범위 요청을 통해 하나 이상의 콘텐츠 서버로부터 콘텐츠를 획득한다.
구체적으로, 콘텐츠 획득부(240)는 하나 이상의 콘텐츠 서버로 하나 이상의 콘텐츠 서버 각각의 바이트 범위 요청 크기 및 바이트 요청 수에 기초한 바이트 범위 요청을 전송할 수 있다. 콘텐츠 획득부(240)는 하나 이상의 콘텐츠 서버로 전송된 바이트 범위 요청에 기초하여 하나 이상의 콘텐츠 서버 각각으로부터 콘텐츠에 대한 데이터를 수신할 수 있다.
일 실시예에 따르면, 콘텐츠 획득부(240)는 하나 이상의 콘텐츠 서버 각각으로 하나 이상의 콘텐츠 서버 각각의 바이트 범위 요청 수만큼 바이트 범위 요청을 전송하고, 하나 이상의 콘텐츠 서버 각각으로부터 콘텐츠의 전체 크기 중 하나 이상의 콘텐츠 서버 각각의 바이트 범위 요청 크기에 해당하는 콘텐츠에 대한 데이터를 수신할 수 있다.
도 6은 일 실시예에 따른 바이트 범위 요청을 전송하여 콘텐츠를 획득하는 예를 설명하기 위한 도면이다.
도 6을 참조하면, 바이트 범위 결정부(230)에 의해 콘텐츠 서버 A(610), 콘텐츠 서버 B(620) 및 콘텐츠 서버 C(630) 각각의 바이트 범위 요청 크기가 250Mbytes, 250Mbytes 및 500Mbytes로 결정되고, 콘텐츠 서버 A(610), 콘텐츠 서버 B(620) 및 콘텐츠 서버 C(630) 각각의 바이트 범위 요청 수가 5, 3 및 2로 결정된 것으로 가정한다. 이때, 콘텐츠 획득부(240)는 콘텐츠 서버 A(610) 및 콘텐츠 서버 B(620)로 각각 콘텐츠에 대한 데이터의 전체 크기 중 250Mbytes 크기에 대한 바이트 범위 요청을 전송하되, 콘텐츠 서버 A(610)에게는 5번의 바이트 범위 요청을 전송하고, 콘텐츠 서버 B(620)에게는 3번의 바이트 범위 요청을 전송할 수 있다. 또한, 콘텐츠 획득부(240)는 콘텐츠 서버 C(630)로 콘텐츠에 대한 데이터의 전체 크키 중 500Mbytes 크기에 대한 바이트 범위 요청을 전송하되, 2번의 바이트 범위 요청을 전송할 수 있다.
이때, 일 실시예에 따르면, 콘텐츠 획득부(240)는 콘텐츠에 대한 데이터를 하나 이상의 콘텐츠 서버 각각의 바이트 범위 요청 수만큼 분할하여 수신할 수 있다.
예를 들어, 콘텐츠 획득부(240)는 콘텐츠 서버 A(610)에게 콘텐츠에 대한 데이터의 전체 크기 중 250Mbytes 크기에 대한 바이트 범위 요청을 전송하되, 5번의 바이트 범위 요청을 전송하는 것으로 가정한다. 이때, 콘텐츠 획득부(240)는 콘텐츠 서버 A(610)에 대한 5번의 바이트 범위 요청을 통해 1~50, 51~100, 101~150, 151~200, 201~250 Mbytes 크기에 해당하는 콘텐츠에 대한 데이터를 수신할 수 있다.
또한, 일 실시예에 따르면, 콘텐츠 획득부(240)는 하나 이상의 콘텐츠 서버 각각으로부터 수신된 콘텐츠에 대한 데이터를 결합하여 콘텐츠를 획득할 수 있다.
구체적으로, 콘텐츠 획득부(240)는 각 콘텐츠 서버로부터 수신된 콘텐츠에 대한 데이터를 각 콘텐츠 서버에 기 할당된 데이터 크기로 결합하거나 미리 설정된 청크(chunk) 크기로 결합하여 콘텐츠를 획득할 수 있다.
도 7은 일 실시예에 따른 콘텐츠 전송 방법의 순서도이다.
도 7에 도시된 방법은 예를 들어, 도 2에 도시된 콘텐츠 전송 장치(200)에 의해 수행될 수 있다.
도 7을 참조하면, 콘텐츠 전송 장치(200)는 복수의 콘텐츠 서버(130-1, 130-2, 130-n)로 클라이언트 장치(110)에 의해 요청된 콘텐츠에 대한 요청 메시지를 전송한다(710).
이때, 콘텐츠 전송 장치(200)는 DNS 룩업(Domain Name System lookup)을 이용하여 요청 메시지를 전송할 복수의 콘텐츠 서버(130-1, 130-2, 130-n)를 식별할 수 있다.
이후, 콘텐츠 전송 장치(200)는 요청 메시지에 대한 복수의 콘텐츠 서버(130-1, 130-2, 130-n) 각각의 응답 메시지에 기초하여 복수의 콘텐츠 서버(130-1, 130-2, 130-n) 각각의 응답 지연 시간을 산출한다(720).
이후, 콘텐츠 전송 장치(200)는 응답 메시지 및 응답 지연 시간 중 적어도 하나에 기초하여 복수의 콘텐츠 서버(130-1, 130-2, 130-n) 중 콘텐츠에 대한 바이트 범위 요청을 전송할 하나 이상의 콘텐츠 서버를 결정할 수 있다(730).
이후, 콘텐츠 전송 장치(200)는 하나 이상의 콘텐츠 서버 각각에 대한 바이트 범위 요청 크기 및 바이트 범위 요청 수를 결정한다(740).
이때, 콘텐츠 전송 장치(200)는 하나 이상의 콘텐츠 서버 각각의 응답 지연 시간에 반비례하도록 바이트 범위 요청 크기는 결정할 수 있다.
또한, 콘텐츠 전송 장치(200)는 하나 이상의 콘텐츠 서버 각각의 응답 지연 시간에 비례하고, 하나 이상의 콘텐츠 서버 각각과의 연결 수에 반비례하도록 바이트 범위 요청 수를 결정할 수 있다.
이후, 콘텐츠 전송 장치(200)는 바이트 범위 요청 크기 및 바이트 범위 요청 수에 기초한 바이트 범위 요청을 통해 하나 이상의 콘텐츠 서버로부터 콘텐츠를 획득한다(750).
도 8은 일 실시예에 따른 복수의 콘텐츠 서버를 식별하는 방법의 순서도이다.
도 8에 도시된 방법은 예를 들어, 도 2에 도시된 콘텐츠 전송 장치(200)에 의해 수행될 수 있다.
도 8을 참조하면, 콘텐츠 전송 장치(200)는 복수의 콘텐츠 서버(130-1, 130-2, 130-n)에 대한 부하분산을 수행하는 로드 밸런서로 요청 메시지를 전송할 수 있다(810).
이후, 콘텐츠 전송 장치(200)는 로드 밸런서로부터 복수의 콘텐츠 서버(130-1, 130-2, 130-n) 의해 전송된 응답 메시지를 수신할 수 있다(820).
이후, 콘텐츠 전송 장치(200)는 수신된 응답 메시지의 헤더에 포함된 정보에 기초하여 요청 메시지를 전송할 복수의 콘텐츠 서버(130-1, 130-2, 130-n)를 식별할 수 있다(830).
도 9는 일 실시예에 따른 콘텐츠를 획득하는 방법의 순서도이다.
도 9에 도시된 방법은 예를 들어, 도 2에 도시된 콘텐츠 전송 장치(200)에 의해 수행될 수 있다.
도 9를 참조하면, 콘텐츠 전송 장치(200)는 하나 이상의 콘텐츠 서버 각각으로 하나 이상의 콘텐츠 서버 각각의 바이트 범위 요청 수만큼 바이트 범위 요청을 전송할 수 있다(910).
이후, 콘텐츠 전송 장치(200)는 하나 이상의 콘텐츠 서버 각각으로부터 콘텐츠의 전체 크기 중 하나 이상의 콘텐츠 서버 각각의 바이트 범위 요청 크기에 해당하는 콘텐츠에 대한 데이터를 수신할 수 있다(920).
이때, 콘텐츠 전송 장치(200)는 콘텐츠에 대한 데이터를 하나 이상의 콘텐츠 서버 각각의 바이트 범위 요청 수만큼 분할하여 수신할 수 있다.
이후, 콘텐츠 전송 장치(200)는 하나 이상의 콘텐츠 서버 각각으로부터 수신된 콘텐츠에 대한 데이터를 결합하여 콘텐츠를 획득할 수 있다(930).
한편, 도 7 내지 9에 도시된 순서도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
도 10은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 예를 들어, 도 2에 도시된 콘텐츠 전송 장치(200)에 포함되는 하나 이상의 컴포넌트일 수 있다.
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
이상에서는 실시예들을 중심으로 기술적 특징들을 설명하였다. 하지만, 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한고, 권리 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 권리범위에 포함된 것으로 해석되어야 할 것이다.
10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
110: 클라이언트 장치
120: 캐시 서버
130-1, 130-2, 130-n: 복수의 콘텐츠 서버
200: 콘텐츠 전송 장치
210: 콘텐츠 요청부
220: 응답 지연 시간 산출부
230: 바이트 범위 결정부
240: 콘텐츠 획득부

Claims (14)

  1. 복수의 콘텐츠 서버로 클라이언트 장치에 의해 요청된 콘텐츠에 대한 요청 메시지를 전송하는 콘텐츠 요청 전송부;
    상기 요청 메시지에 대한 상기 복수의 콘텐츠 서버 각각의 응답 메시지에 기초하여 상기 복수의 콘텐츠 서버 각각의 응답 지연 시간을 산출하는 응답 지연 시간 산출부;
    상기 응답 메시지 및 상기 응답 지연 시간 중 적어도 하나에 기초하여 상기 복수의 콘텐츠 서버 중 상기 콘텐츠에 대한 바이트 범위 요청(Byte Range Request)을 전송할 하나 이상의 콘텐츠 서버를 결정하고, 상기 하나 이상의 콘텐츠 서버 각각에 대한 바이트 범위 요청 크기 및 바이트 범위 요청 수를 결정하는 바이트 범위 결정부; 및
    상기 바이트 범위 요청 크기 및 바이트 범위 요청 수에 기초한 바이트 범위 요청을 통해 상기 하나 이상의 콘텐츠 서버로부터 상기 콘텐츠를 획득하는 콘텐츠 획득부를 포함하고,
    상기 바이트 범위 결정부는, 상기 하나 이상의 콘텐츠 서버 각각의 상기 응답 지연 시간에 비례하고, 상기 하나 이상의 콘텐츠 서버 각각과의 연결 수에 반비례하도록 상기 바이트 범위 요청 수를 결정하는 콘텐츠 전송 장치.
  2. 청구항 1에 있어서,
    상기 콘텐츠 요청 전송부는, DNS 룩업(Domain Name System lookup)을 이용하여 상기 요청 메시지를 전송할 상기 복수의 콘텐츠 서버를 식별하는 콘텐츠 전송 장치.
  3. 청구항 1에 있어서,
    상기 콘텐츠 요청 전송부는, 상기 복수의 콘텐츠 서버에 대한 부하분산(Load Balancing)을 수행하는 로드 밸런서(Load Balancer)로 상기 요청 메시지를 전송하여, 상기 로드 밸런서로부터 상기 복수의 콘텐츠 서버에 의해 전송된 상기 응답 메시지를 수신하고, 상기 수신된 응답 메시지의 헤더에 포함된 정보에 기초하여 상기 요청 메시지를 전송할 상기 복수의 콘텐츠 서버를 식별하는 콘텐츠 전송 장치.
  4. 청구항 1에 있어서,
    상기 바이트 범위 결정부는, 상기 하나 이상의 콘텐츠 서버 각각의 상기 응답 지연 시간에 반비례하도록 상기 바이트 범위 요청 크기를 결정하는 콘텐츠 전송 장치.
  5. 삭제
  6. 청구항 1에 있어서,
    상기 콘텐츠 획득부는, 상기 하나 이상의 콘텐츠 서버 각각으로 상기 하나 이상의 콘텐츠 서버 각각의 상기 바이트 범위 요청 수만큼 상기 바이트 범위 요청을 전송하고, 상기 하나 이상의 콘텐츠 서버 각각으로부터 상기 콘텐츠의 전체 크기 중 상기 하나 이상의 콘텐츠 서버 각각의 상기 바이트 범위 요청 크기에 해당하는 상기 콘텐츠에 대한 데이터를 수신하되, 상기 콘텐츠에 대한 데이터를 상기 하나 이상의 콘텐츠 서버 각각의 상기 바이트 범위 요청 수만큼 분할하여 수신하는 콘텐츠 전송 장치.
  7. 청구항 6에 있어서,
    상기 콘텐츠 획득부는, 상기 하나 이상의 콘텐츠 서버 각각으로부터 수신된 상기 콘텐츠에 대한 데이터를 결합하여 상기 콘텐츠를 획득하는 콘텐츠 전송 장치.
  8. 복수의 콘텐츠 서버로 클라이언트 장치에 의해 요청된 콘텐츠에 대한 요청 메시지를 전송하는 단계;
    상기 요청 메시지에 대한 상기 복수의 콘텐츠 서버 각각의 응답 메시지에 기초하여 상기 복수의 콘텐츠 서버 각각의 응답 지연 시간을 산출하는 단계;
    상기 응답 메시지 및 상기 응답 지연 시간 중 적어도 하나에 기초하여 상기 복수의 콘텐츠 서버 중 상기 콘텐츠에 대한 바이트 범위 요청(Byte Range Request)을 전송할 하나 이상의 콘텐츠 서버를 결정하는 단계;
    상기 하나 이상의 콘텐츠 서버 각각에 대한 바이트 범위 요청 크기 및 바이트 범위 요청 수를 결정하는 단계; 및
    상기 바이트 범위 요청 크기 및 바이트 범위 요청 수에 기초한 바이트 범위 요청을 통해 상기 하나 이상의 콘텐츠 서버로부터 상기 콘텐츠를 획득하는 단계를 포함하고,
    상기 바이트 범위 요청 크기 및 바이트 범위 요청 수를 결정하는 단계는, 상기 하나 이상의 콘텐츠 서버 각각의 상기 응답 지연 시간에 비례하고, 상기 하나 이상의 콘텐츠 서버 각각과의 연결 수에 반비례하도록 상기 바이트 범위 요청 수를 결정하는 콘텐츠 전송 방법.
  9. 청구항 8에 있어서,
    상기 전송하는 단계는, DNS 룩업(Domain Name System lookup)을 이용하여 상기 요청 메시지를 전송할 상기 복수의 콘텐츠 서버를 식별하는 콘텐츠 전송 방법.
  10. 청구항 8에 있어서,
    상기 전송하는 단계는,
    상기 복수의 콘텐츠 서버에 대한 부하분산(Load Balancing)을 수행하는 로드 밸런서(Load Balancer)로 상기 요청 메시지를 전송하는 단계;
    상기 로드 밸런서로부터 상기 복수의 콘텐츠 서버에 의해 전송된 상기 응답 메시지를 수신하는 단계; 및
    상기 수신된 응답 메시지의 헤더에 포함된 정보에 기초하여 상기 요청 메시지를 전송할 상기 복수의 콘텐츠 서버를 식별하는 단계를 포함하는 콘텐츠 전송 방법.
  11. 청구항 8에 있어서,
    상기 바이트 범위 요청 크기 및 바이트 범위 요청 수를 결정하는 단계는, 상기 하나 이상의 콘텐츠 서버 각각의 상기 응답 지연 시간에 반비례하도록 상기 바이트 범위 요청 크기를 결정하는 콘텐츠 전송 방법.
  12. 삭제
  13. 청구항 8에 있어서,
    상기 획득하는 단계는,
    상기 하나 이상의 콘텐츠 서버 각각으로 상기 하나 이상의 콘텐츠 서버 각각의 상기 바이트 범위 요청 수만큼 상기 바이트 범위 요청을 전송하는 단계; 및
    상기 하나 이상의 콘텐츠 서버 각각으로부터 상기 콘텐츠의 전체 크기 중 상기 하나 이상의 콘텐츠 서버 각각의 상기 바이트 범위 요청 크기에 해당하는 상기 콘텐츠에 대한 데이터를 수신하되, 상기 콘텐츠에 대한 데이터를 상기 하나 이상의 콘텐츠 서버 각각의 상기 바이트 범위 요청 수만큼 분할하여 수신하는 단계를 포함하는 콘텐츠 전송 방법.
  14. 청구항 13에 있어서,
    상기 획득하는 단계는, 상기 하나 이상의 콘텐츠 서버 각각으로부터 수신된 상기 콘텐츠에 대한 데이터를 결합하여 상기 콘텐츠를 획득하는 콘텐츠 전송 방법.
KR1020190061930A 2019-05-27 2019-05-27 콘텐츠 전송 장치 및 방법 KR102622252B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020190061930A KR102622252B1 (ko) 2019-05-27 2019-05-27 콘텐츠 전송 장치 및 방법
US16/881,363 US11290370B2 (en) 2019-05-27 2020-05-22 Apparatus and method for transmitting content
CN202010453571.6A CN112003885B (zh) 2019-05-27 2020-05-26 内容传输设备及内容传输方法
EP20176492.5A EP3745680B1 (en) 2019-05-27 2020-05-26 Apparatus and method for transmitting content

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190061930A KR102622252B1 (ko) 2019-05-27 2019-05-27 콘텐츠 전송 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20200136195A KR20200136195A (ko) 2020-12-07
KR102622252B1 true KR102622252B1 (ko) 2024-01-08

Family

ID=70857061

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190061930A KR102622252B1 (ko) 2019-05-27 2019-05-27 콘텐츠 전송 장치 및 방법

Country Status (4)

Country Link
US (1) US11290370B2 (ko)
EP (1) EP3745680B1 (ko)
KR (1) KR102622252B1 (ko)
CN (1) CN112003885B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230188810A1 (en) * 2021-12-09 2023-06-15 Synamedia Vividtec Holdings, Inc. Systems and methods for transporting data over content delivery networks

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140297869A1 (en) * 2012-10-11 2014-10-02 Uplynk, LLC Adaptive streaming cost management
US20170208148A1 (en) * 2016-01-15 2017-07-20 Verizon Digital Media Services Inc. Partitioned Serialized Caching and Delivery of Large Files

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100411341C (zh) * 2005-08-10 2008-08-13 华为技术有限公司 一种并行下载方法和终端
KR100824030B1 (ko) 2006-09-22 2008-04-21 주식회사 카뮤즈 파일 전송 시스템과 그 전송 방법 및 이를 기록한 기록매체
EP2081363A1 (en) * 2008-01-15 2009-07-22 Thomson Licensing, Inc. System and method for selecting a set of serving peers
US9948708B2 (en) * 2009-06-01 2018-04-17 Google Llc Data retrieval based on bandwidth cost and delay
US9118680B1 (en) * 2009-06-30 2015-08-25 Amazon Technologies, Inc. Opportunistic routing
US20130066951A1 (en) * 2009-11-18 2013-03-14 Yissum Research Development Company Of The Hebrew University Of Jerusalem Communication system and method for managing data transfer through a communication network
CN102130954A (zh) * 2011-03-17 2011-07-20 华为技术有限公司 数据资源传输的方法和设备
US10218756B2 (en) * 2012-01-06 2019-02-26 Comcast Cable Communications, Llc Streamlined delivery of video content
US9531617B2 (en) * 2013-02-21 2016-12-27 Nec Corporation Securing internet measurements using openflow
JP6201438B2 (ja) * 2013-06-06 2017-09-27 富士通株式会社 コンテンツ配信方法、コンテンツ配信サーバ及びサムネイル収集プログラム
KR20150029913A (ko) * 2013-09-11 2015-03-19 한국전자통신연구원 청크 단위로 콘텐트를 전달하는 콘텐트 시스템 및 방법
US9407716B1 (en) * 2013-09-19 2016-08-02 Juniper Networks, Inc. Identifying content files in a cache using a response-based cache index
US9509793B2 (en) * 2013-11-22 2016-11-29 Verizon Patent And Licensing Inc. Content caching in a network for efficient user device access
US10165029B2 (en) * 2014-01-31 2018-12-25 Fastly Inc. Caching and streaming of digital media content subsets
US9596281B2 (en) * 2014-03-18 2017-03-14 Qualcomm Incorporated Transport accelerator implementing request manager and connection manager functionality
US20150271226A1 (en) * 2014-03-18 2015-09-24 Qualcomm Incorporated Transport accelerator implementing a multiple interface architecture
US10505833B2 (en) * 2014-05-15 2019-12-10 At&T Intellectual Property I, L.P. Predicting video engagement from wireless network measurements
US10924781B2 (en) * 2014-06-27 2021-02-16 Satellite Investors, Llc Method and system for real-time transcoding of MPEG-DASH on-demand media segments while in transit from content host to dash client
EP2993910A1 (en) * 2014-09-04 2016-03-09 Thomson Licensing Method and client terminal for receiving a multimedia content split into at least two successive segments, and corresponding computer program product and computer-readable medium.
US9948740B1 (en) * 2014-11-20 2018-04-17 Amazon Technologies, Inc. Caching for multi-protocol media content delivery
JP6672340B2 (ja) * 2015-03-03 2020-03-25 オパンガ ネットワークス,インコーポレイテッド データフローを調整するシステム及び方法
US9906590B2 (en) * 2015-08-20 2018-02-27 Verizon Digital Media Services Inc. Intelligent predictive stream caching
US10542101B2 (en) * 2016-02-29 2020-01-21 Facebook, Inc. Network-based location determination
US10356175B2 (en) * 2016-08-16 2019-07-16 Verizon Digital Media Services Inc. Request multiplexing
US10498795B2 (en) * 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
WO2018193287A1 (en) * 2017-04-18 2018-10-25 Telefonaktiebolaget Lm Ericsson (Publ) Content based byte-range caching using a dynamically adjusted chunk size
CN110678239B (zh) * 2017-10-10 2024-02-09 谷歌有限责任公司 利用游戏元数据和量度的分布式基于样本的游戏剖析以及支持第三方内容的游戏api平台
US11321516B2 (en) * 2018-01-19 2022-05-03 Qualcomm Incorporated Processing dynamic web content of an ISO BMFF web resource track
CN108418884A (zh) * 2018-03-09 2018-08-17 北京奇艺世纪科技有限公司 一种传输业务数据的方法、装置及电子设备
US10887167B2 (en) * 2018-04-30 2021-01-05 At&T Intellectual Property I, L.P. Adaptive software-defined storage for cloud storage workloads

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140297869A1 (en) * 2012-10-11 2014-10-02 Uplynk, LLC Adaptive streaming cost management
US20170208148A1 (en) * 2016-01-15 2017-07-20 Verizon Digital Media Services Inc. Partitioned Serialized Caching and Delivery of Large Files

Also Published As

Publication number Publication date
EP3745680B1 (en) 2023-12-20
US11290370B2 (en) 2022-03-29
EP3745680A1 (en) 2020-12-02
CN112003885A (zh) 2020-11-27
US20200382409A1 (en) 2020-12-03
KR20200136195A (ko) 2020-12-07
CN112003885B (zh) 2024-02-27

Similar Documents

Publication Publication Date Title
EP3108644B1 (en) Content delivery network architecture with edge proxy
US11044335B2 (en) Method and apparatus for reducing network resource transmission size using delta compression
US9451046B2 (en) Managing CDN registration by a storage provider
US8301778B2 (en) Service provider registration by a content broker
CN106933871B (zh) 短链接处理方法、装置及短链接服务器
CN109995881B (zh) 缓存服务器的负载均衡方法和装置
EP3175364B1 (en) Web redirection for caching
CN104754073A (zh) 一种资源访问方法及装置
US10091126B2 (en) Cloud system, control method thereof, management server and control method thereof
CN111343048B (zh) 压力测试方法及装置、计算机装置及存储介质
CN103544324A (zh) 一种内核态的数据访问方法、装置及系统
CN105791381A (zh) 访问控制的方法及装置
CN105337786A (zh) 一种服务器性能检测方法、装置及设备
US9609068B2 (en) Session management system, session management apparatus, and non-transitory computer readable medium
CN107918617B (zh) 数据查询方法和装置
GB2543042A (en) Method for privacy protection
KR102622252B1 (ko) 콘텐츠 전송 장치 및 방법
CN109471713B (zh) 用于查询信息的方法和装置
US9516130B1 (en) Canonical API parameters
CN109688187B (zh) 流量负载均衡方法、装置、设备及可读存储介质
EP3487152A1 (en) Auctioning the serving and/or caching of a data object
US11086822B1 (en) Application-based compression
CN112596793B (zh) 复合设备的重定向方法及装置
CN107211189A (zh) 一种用于视频发送的方法与装置
KR20190119497A (ko) 분산 파일 시스템 기반의 대용량 다중 vod 스트리밍 서비스 제공 시스템 및 그 제공 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant