WO2013100573A1 - 콘텐트 전송 시스템, 그 시스템에서의 네트워크 트래픽 최적화 방법, 중앙 제어 장치 및 로컬 캐싱 장치 - Google Patents

콘텐트 전송 시스템, 그 시스템에서의 네트워크 트래픽 최적화 방법, 중앙 제어 장치 및 로컬 캐싱 장치 Download PDF

Info

Publication number
WO2013100573A1
WO2013100573A1 PCT/KR2012/011479 KR2012011479W WO2013100573A1 WO 2013100573 A1 WO2013100573 A1 WO 2013100573A1 KR 2012011479 W KR2012011479 W KR 2012011479W WO 2013100573 A1 WO2013100573 A1 WO 2013100573A1
Authority
WO
WIPO (PCT)
Prior art keywords
chunk
content
content packet
local caching
received
Prior art date
Application number
PCT/KR2012/011479
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 EP12863260.1A priority Critical patent/EP2800310B1/en
Priority to JP2014545836A priority patent/JP5816380B2/ja
Priority to CN201280064475.6A priority patent/CN104025521B/zh
Publication of WO2013100573A1 publication Critical patent/WO2013100573A1/ko
Priority to US14/314,547 priority patent/US9781224B2/en

Links

Images

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/02Topology update or discovery
    • 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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/028Capturing of monitoring data by filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques

Definitions

  • the present invention relates to a content delivery system, and more particularly, to a content delivery system for reducing content redundancy transmission in a content delivery system, a network traffic optimization method in the system, a central control unit and a local caching apparatus.
  • Such services have a characteristic of delivering duplicated content to users in the same domain or the same wireless coverage, although the frequency varies depending on the popularity, and its weight is gradually increasing.
  • the traffic load of the communication network is further increased due to the transmission of the duplicated content, thereby degrading the communication quality.
  • the present invention has been proposed to solve the conventional inconvenience, and to provide a content transmission system for reducing traffic on the network by minimizing redundant transmission of content during transmission of various types of content.
  • the present invention is to provide a central control device for controlling redundant transmission of content packets and local caching apparatus for transmitting the corresponding content packets to the client in order to minimize the redundant transmission of content packets provided in connection with the content server on the network do.
  • the present invention is to provide a network traffic optimization method for reducing traffic on a network by minimizing redundant transmission of provided content packets in a content delivery system.
  • a content delivery system receives a content packet to be provided to a client from a content server, and transmits the received content packet to a local caching apparatus, while the local caching is performed.
  • the device receives the chunk identifier and the flow information for the duplicate chunk of the content packet which has been confirmed as duplicate, the device registers the chunk identifier and the flow information as the deduplication object, and only the chunk identifier and the flow information for the content packet of the flow registered as the deduplication object.
  • a central control device for transmitting to a caching device; And storing the divided chunks of the content packet together with a chunk identifier when receiving the content packet provided to the client, and checking the duplication of the divided chunks to obtain the chunk identifier and the flow information of the duplicated chunk.
  • a local caching device that transmits a content packet stored by itself corresponding to the received chunk identifier to the client when transmitting to the central control device and receiving the chunk identifier and the flow information from the central control device.
  • a content delivery system when a content delivery system according to another embodiment of the present invention receives a content packet to be provided to a client from a content server, the content delivery system temporarily stores the divided chunks for the content packet together with a chunk identifier, and stores the divided chunks.
  • a central control unit for checking the duplication and transmitting a chunk identifier and flow information to the local caching apparatus instead of transmitting a content packet for the duplicate chunk; And receiving a chunk identifier and flow information for the duplicated chunk from the central control apparatus, and including a local caching apparatus for transmitting a content packet stored by the centralized chunk identifier to the client.
  • the communication unit for communicating with the content server and the local caching apparatus;
  • the communication unit for communicating with the content server and the local caching apparatus;
  • the communication unit When receiving the content packet to be transmitted from the content server to the client through the communication unit, and transmits the content packet to the local caching device, when receiving the chunk identifier and flow information for the duplicated chunks monitored by the local caching device, Register the received chunk identifier and the flow information as a deduplication object, and transmit only the chunk identifier and the flow information to the local caching apparatus instead of the received content packet for the next received content packet of the deduplication object flow.
  • a control unit for controlling;
  • a storage unit configured to temporarily store the divided chunks together with the chunk identifier and to store the received chunk identifier and the flow information.
  • control unit identifies the received content packet in flow units, temporarily stores the divided chunks obtained by dividing the payload of the identified flow, and receives the chunk identifier and the flow information from the local caching apparatus.
  • a flow manager configured to register the received chunk identifier and the flow information and not to transmit them to a local caching apparatus; And a payload buffering and dividing unit for buffering the payload of the identified flow and dividing the buffered payload into chunks.
  • the control unit may further include a chunk overlap management unit that checks the overlap of the divided chunks and controls to transmit the chunk identifier and flow information for the duplicate chunks to the local caching apparatus.
  • the local caching apparatus for communicating with the central control device connected to the client and the content server; Receiving a content packet from the central control unit through the communication unit, storing the divided chunks for the content packet with the chunk identifier while providing the received content packet to the client, and the chunk identifier of the duplicated chunk from the central control unit And a controller configured to, when receiving the flow information, transmit the stored content packet corresponding to the received chunk identifier to the client. And a storage unit to store the divided chunks together with the chunk identifier.
  • the control unit may identify the received content packet in units of flows, and when the chunk identifier is received from the central control apparatus for the identified flow, the controller may store the stored content packet corresponding to the received chunk identifier.
  • a flow management unit to perform control for transmitting to the network;
  • a payload buffering and chunk divider that buffers the payload of the identified flow and divides the buffered payload into chunks;
  • a chunk caching unit for storing the divided chunk together with the chunk identifier in the storage unit.
  • the controller of the local caching apparatus performs a chunk duplication check on the received content packet, and transfers the chunk identifier and flow information for the duplicated chunk that is duplicated to the flow manager, and matches the received chunk identifier.
  • the apparatus may further include a chunk duplication management unit to check whether the chunk identifier is stored.
  • the flow management unit performs control for transmitting the chunk identifier and the flow information for the duplicated chunk to the central control apparatus, and if the chunk identifier that matches the received chunk identifier is not stored, the central control.
  • the device may request a content packet corresponding to the received chunk identifier, and control to receive and provide the requested content packet to the client.
  • the method for optimizing network traffic includes a central control apparatus connected to a content server providing a content packet, and a local caching apparatus connected to a client provided with the content packet.
  • a content control system including a central control device connected to a content server for providing a content packet, and a local caching device connected to a client provided with the content packet.
  • a central control apparatus upon receiving the content packet from the content server, performing chunk redundancy check on the received content packet; Transmitting, by the central control apparatus, the chunk identifier and flow information of the duplicated chunk for the content packet identified as duplicate to the local caching apparatus; And when the local caching apparatus receives the chunk identifier and flow information of the duplicated chunk, transmitting the stored content packet corresponding to the received chunk identifier to the destination client.
  • the above-described method for optimizing network traffic may include: requesting, by the central control apparatus, a content packet corresponding to the received chunk identifier when the local caching apparatus does not store a content packet corresponding to the received chunk identifier; Receiving, by the local caching device, a requested content packet from the central control device; And transmitting the received content packet to the client by the local caching apparatus.
  • the above-described method for optimizing network traffic may include: identifying, by the central control unit, the received content packet in flow units, buffering the payload of the identified flow, and dividing the buffered payload into chunks; And temporarily storing the divided chunk together with the generated chunk identifier.
  • the local caching apparatus to identify the content packet received from the central control unit in flow units to buffer the payload of the identified flow, and to divide the buffered payload into chunks ; And storing the divided chunk together with the generated chunk identifier.
  • the present invention is simply transparent to existing systems and protocols by having a central control device connected to the content server and a local caching device connected to the client to transmit content to monitor and control content redundancy delivery on the content delivery network. Since the present invention can be applied in a simple manner, it is possible to provide a realistic and operational content delivery system.
  • the present invention checks whether the content is provided by sending and receiving only the identification information and the local caching device for the content packet provided from the content server to the client in the central control device, if the local caching device is caching content, local caching device By transmitting the content from the network, it is possible to reduce the load of network traffic that is redundantly transmitted between the Internet network and the centralized station, thereby ensuring convenience of network operation and reducing costs.
  • the present invention checks whether the cached content requested by the client in the local caching device provided in close proximity to the client, and by allowing the local caching device to send the cached content directly to the client, reducing the redundant transmission of the content by the client There is an effect that can improve the quality of experience.
  • FIG. 1 is a block diagram showing the configuration of a content delivery system according to an embodiment of the present invention.
  • FIG. 2 is a block diagram illustrating a configuration of a central control apparatus in a content delivery system according to an embodiment of the present invention.
  • FIG. 3 is a block diagram showing the configuration of a local caching apparatus in a content delivery system according to an embodiment of the present invention.
  • FIG. 4 is a block diagram illustrating a configuration of a central control apparatus in a content delivery system according to another embodiment of the present invention.
  • FIG. 5 is a block diagram showing the configuration of a local caching apparatus in a content delivery system according to another embodiment of the present invention.
  • FIG. 6 is a block diagram illustrating an example of a database for managing chunk content in a content delivery system according to embodiments of the present invention.
  • FIG. 7 is a flowchart illustrating a method of optimizing network traffic by monitoring content overlapping transmission in a content delivery system according to an embodiment of the present invention.
  • FIG. 8 is a flowchart illustrating an example of performing a deduplication process in a content delivery system according to an embodiment of the present invention.
  • FIG. 9 is a flowchart illustrating a network traffic optimization method in a central control apparatus according to an embodiment of the present invention.
  • FIG. 10 is a flowchart illustrating a network traffic optimization method in a local caching apparatus according to an embodiment of the present invention.
  • FIG. 11 is a flowchart illustrating a method for optimizing network traffic by monitoring content overlapping transmission in a content delivery system according to another embodiment of the present invention.
  • FIG. 12 is a flowchart illustrating a network traffic optimization method in a central control apparatus according to another embodiment of the present invention.
  • FIG. 13 is a flowchart illustrating a network traffic optimization method in a local caching apparatus according to another embodiment of the present invention.
  • 14A to 14C are block diagrams illustrating an example of chunk overlap checking according to embodiments of the present invention.
  • 15A and 15B are block diagrams illustrating an example of a process for dividing a buffered payload into chunks of a fixed size according to embodiments of the present invention.
  • 16A and 16B are block diagrams illustrating an example of a process for dividing a buffered payload into chunks of varying sizes according to embodiments of the present invention.
  • FIG. 1 is a block diagram showing the configuration of a content delivery system according to an embodiment of the present invention.
  • a content delivery system includes a central node (CN) 100 located at an entrance through which content is input from one or more content servers 10 and a client 20 side on the network. It may be configured as a local caching apparatus (RN) Remote Location (RN) for distributing and storing content.
  • CN central node
  • RN local caching apparatus
  • RN Remote Location
  • the central control apparatuses 100 and 300 transmit content packets received from one or more content servers 10 to the local caching apparatus 200 and 400, but identify the received content in units of flows so that the identified flows are duplicated. Check if it is.
  • the central control apparatus 100 does not transmit the corresponding content to the local caching apparatuses 200 and 400 with respect to the flows identified as duplicates.
  • the content received from the content server 10 is transmitted divided into one or more numbers of flows (identified as a content server providing content and a client pair to receive the content, for example, a TCP flow). Each flow transmits its content via one or more IP packets using a protocol such as IP.
  • content transmitted between the content server 10, the central control apparatuses 100 and 300, the local caching apparatuses 200 and 400, and the client 20 transmits the content of the client 20 to the source address.
  • the destination address By setting the destination address, it can be transmitted as an IP packet transmitted from the content server 10 to the client 20, and the central control apparatuses 100 and 300 and the local caching apparatuses 200 and 400 transmit such contents in various ways. Receiving and performing the process described below.
  • the local caching apparatus 200 or 400 divides the content transmitted through the flow into chunk units of a predetermined size or significant unit, caches and stores each chunk of the content, and monitors the flow to content that is being cached. Identify the flow for transmitting the, and transmits the content packet of the flow to the client 20 on behalf of the content server 10.
  • duplication monitoring of the content may be performed by either the central control apparatus 100 or the local caching apparatus 200.
  • the content duplication monitoring in the content delivery system is described in more detail with respect to the case where the local caching apparatus 200 is performed.
  • FIG. 2 is a block diagram illustrating a configuration of a central control apparatus in a content delivery system according to an exemplary embodiment.
  • the central control apparatus 100 includes a storage unit 130 including a communication unit 110, a control unit 120, a temporary local cache 131, and a flow management database 132 and a local cache state management unit ( 140).
  • the communication unit 110 receives a content packet provided from one or more content servers 10, transmits a content packet to the local caching apparatus 200, and transmits and receives messages according to a process for monitoring content duplication.
  • the redundant monitoring messages transmitted and received with the local caching apparatus 200 may include a control message including identification information and control information, a content packet transmission message and a response message for transmitting a content packet, and the like.
  • the communication unit 110 may transmit and receive data using one or more communication methods, and for this purpose, may include a plurality of communication modules that transmit and receive data according to different communication methods.
  • the controller 120 may include a flow manager 121, a payload buffering and dividing unit 122, and a control message manager 123.
  • the control unit 120 transmits the content packet received from the content server 10 through the communication unit 110 to the local caching apparatus 200, and receives the flow information for the duplicate confirmation from the local caching apparatus 200. Identify the identified content packet in flow units, and if the identified content packet is a deduplication target flow, buffer the content packet of the identified flow and divide the buffered content packet into chunks, The chunk is stored in the storage 130.
  • the controller 120 transmits the received content packet to the local caching apparatus 200 when the flow is not a deduplication flow. That is, if the content packet that is continuously received is not content that is cached in the local caching apparatus 200, the currently received content packet is transmitted to the local caching apparatus 200 so that content caching and / or may be performed in the local caching apparatus 200. Allow content duplication checks.
  • the flow manager 121 identifies the content packet received from the communication unit 110 on a flow basis, and uses local caching using a duplicate chunk identifier and flow information (including a flow context) of the content packet received from the local caching apparatus 200.
  • the flow for transmitting the same content packet as the cached content packet to the device 200 is registered in the flow management database 132 as a deduplication target flow.
  • the flow context may include, for example, source IP, destination IP, source port, destination port, protocol, payload length, sequence number, content type, and the like as flow identification information.
  • the flow manager 121 transmits the received content packet to the communication unit 110 to transmit the received content packet to the local caching apparatus 200. do.
  • the flow manager 123 transfers the identified flow to the payload buffering and dividing unit 123.
  • the flow manager 121 may confirm whether the flow to be deduplicated by checking whether the information on the identified flow is stored in the flow management database 132.
  • the flow manager 121 receives the chunk identifier of the chunk of the divided content packet from the payload buffering and dividing unit 123 and transfers the received chunk identifier to the control message manager 123.
  • the payload buffering and dividing unit 122 buffers the payload of the deduplication flow delivered from the flow management unit 121, divides the content packet carried in the buffered payload into a plurality of chunks, and uses a local caching apparatus (The divided chunks are temporarily stored in the temporary local cache 131 of the storage unit 130 so that the content packet transmitted from the 200 to the client 20 matches the content packet transmitted from the content server 10.
  • a detailed method for chunk division of the payload will be described in detail later in the method description.
  • the control message management unit 123 manages information necessary for redundant monitoring of content packets, manages control messages transmitted and received with the local caching apparatus 200, and stores the chunk identifiers of the content packets cached from the local caching apparatus 200 ( Signature value) to check the correspondence of the content packets.
  • the control message managing unit 123 includes the chunk identifier of the content packet received from the flow managing unit 121 in the control message, and transmits the control message to the local caching apparatus 200 through the communication unit 110, and the local caching apparatus 200.
  • the chunk identifier does not exist in the local caching apparatus 200, that is, the chunk identifier of the content packet received through the communication unit 110, the corresponding content together with the result information indicating that there is no chunk identifier.
  • a content request message for requesting is received from the local caching apparatus 200 and managed.
  • the control message manager 123 transmits the result information included in the received content request message to the flow manager 121 so that the flow manager 121 delivers the corresponding content packet to the local caching apparatus 200.
  • the control message manager 123 instructs the flow manager 121 not to transmit the duplicate content packet after the control message is transmitted, and if the content request message is not received from the local caching apparatus 200 for a preset time, The caching apparatus 200 assumes that the content packet for the chunk identifier stored by the caching apparatus 200 is transmitted to the client 20. In this case, the content packet transmitted from the local caching apparatus 200 to the client 20 is the same packet as the content packet which has been repeatedly confirmed by the flow manager 121.
  • the storage unit 130 stores the chunks of the divided content packets in the form of a database in consideration of characteristics of the system (memory capacity, server speed, total number of chunks to be stored, etc.) together with the identifier of the chunks. Temporarily store in.
  • the storage unit 130 stores flow information, deduplication target flow registration information, and management information about content packets transmitted from the content server 10.
  • the temporary local cache 131 receives a response message transmitted after transmitting a content packet corresponding to the stored chunks in the local caching apparatus 200, the temporary local cache 131 deletes the corresponding temporarily stored chunks, or in a manner set by the user. You can delete it accordingly.
  • the local cache state manager 140 monitors the state of the temporary local cache 131 of the storage 130, performs control for maintenance according to the monitoring result, and temporarily according to a request of the flow manager 121. It may be checked whether the corresponding content chunk is stored in the local cache 131.
  • FIG. 3 is a block diagram illustrating a configuration of a local caching apparatus in a content delivery system according to an exemplary embodiment.
  • the local caching apparatus 200 may include a storage unit 230 including a communicator 210, a controller 220, a local cache 231, and a flow management database 232, and a local cache state manager 240. It can be composed of).
  • the communication unit 210 receives the content packet transmitted from the central control apparatus 100, transmits the content packet to the client 20, and controls the deduplication process for monitoring content duplication with the central control apparatus 100. Send and receive messages.
  • the redundant monitoring messages transmitted and received may include a control message including identification information and control information, a content packet transmission message and a response message for transmitting a content packet, and the like.
  • the communication unit 210 may transmit and receive data using one or more communication schemes, and may include a plurality of communication modules for transmitting and receiving data according to different communication schemes.
  • the controller 220 may include a flow manager 221, a payload buffering and dividing unit 222, a chunk caching unit 223, a chunk redundancy manager 224, and a control message manager 225.
  • the controller 220 transmits the content packet received from the central control apparatus 100 to the client 20 through the communication unit 210, and checks whether the received content packet is duplicated. In order to check the overlapping of the received content packet, when a part of the content packet (for example, the fifth packet) is delivered, it is compared with the content packet storing the content packet, and it is checked whether the content packet is duplicated.
  • the local caching apparatus 200 in receiving the content packet transmitted from the content server 10 to the client 20 through the central control apparatus 100, and receives the content packet directly from the central control apparatus 100
  • the client 20 may receive a content packet transmitted to a destination through a mirroring method.
  • whether the content packet is duplicated is determined in units of flows and chunks. That is, when the controller 220 buffers the payload of the content packet and divides the buffered payload into chunks, the controller 220 checks whether the divided chunks are overlapped (whether the same chunk exists among the stored chunks) and does not overlap. Store the chunks in the local cache 231.
  • the controller 220 when the controller 220 receives the chunk identifier from the central control apparatus 100, the controller 220 provides the client 20 with the corresponding chunk of the content packet stored in the local cache 231 on behalf of the content server 10. do.
  • the transmitted chunk may be configured by a packet transmitted by the content server 10 to the client 20 and transmitted.
  • the flow manager 221 identifies the content packet received from the central control apparatus 100 through the communication unit 210 in units of flows, and stores the information of the identified flow in the flow management database 132.
  • the flow manager 221 performs chunk redundancy check of the content packet received from the central control apparatus 100 through the communication unit 210. Specifically, the flow manager 221 checks whether the identified flow for the content packet is a deduplication target flow, and if not the deduplication flow, localizes the chunks that divide the buffered payload of the flow for the received content packet. Stored in the cache 231, and performs a duplicate check for the next transmitted content packet. If the identified flow is the deduplication target flow, the flow manager 221 transfers the identified flow to the payload buffering and dividing unit 222 and proceeds with the deduplication process.
  • the flow management unit 221 is a specific transmission protocol (TCP, etc.), the application protocol type (FTP, P2P, HTTP, etc.) transmitted through the protocol, the type of transmission data (media content such as images / videos, document files, Binary files, update files, etc.) can be considered to determine whether they are duplicated.
  • TCP Transmission Control Protocol
  • FTP application protocol type
  • P2P HyperText Transfer Protocol
  • HTTP HyperText Transfer Protocol
  • the type of transmission data media content such as images / videos, document files, Binary files, update files, etc.
  • the chunk identifier of the duplicated content and the flow information are transmitted to the control message manager 225 to be transmitted to the central control apparatus 100.
  • the flow manager 221 transfers the chunk identifier received from the central control apparatus 100 through the control message manager 225 to the chunk duplicate manager 224 in the local cache 231, and the chunk duplicate manager 224. Receives the result of confirming the match of the chunk identifier from the control unit generates the result information to be transmitted to the central control apparatus 100, and transmits the generated result information to the control message management unit 225. If the chunk identifiers match, the flow manager 221 does not transmit the result information to the central control apparatus 100, but instead transmits the content packet corresponding to the chunk identifier stored in the local cache 231. Transfer to communication unit 210 to transmit to the client (20).
  • the flow manager 221 transmits the result information indicating that the corresponding chunk identifier is not stored to the control message manager 225, and the chunk identifier received from the central control apparatus 100. Request a content packet for
  • the payload buffering and dividing unit 222 buffers the payload of the flow for the content packet delivered from the flow management unit 221, divides the buffered payload into chunks, and delivers the chunk to the chunk caching unit 223. A detailed method for chunk division of the payload will be described in detail later in the method description.
  • the chunk caching unit 223 stores the divided chunk in the local cache 231 of the storage unit 230 so that the content packet transmitted to the client 20 matches with the content transmitted from the content server 10.
  • the chunk redundancy management unit 224 manages whether the chunk divided by the chunk caching unit 223 is stored in the local cache 231. Specifically, the chunk duplication management unit 224 checks whether each divided chunk is pre-stored in the local cache 231 and transmits information on the duplicated chunks to the flow manager 221 if there are duplicate chunks stored therein. . In addition, the chunk redundancy manager 224 checks whether the chunk identifier received from the central control apparatus 100 is stored in the local cache 231, and checks whether the matching chunk identifier is stored in the flow manager 221. To send).
  • the control message manager 225 manages information necessary for redundant monitoring of content packets and manages control messages transmitted and received with the central control apparatus 100.
  • the control message manager 225 transmits the chunk identifier and flow information (flow context) received from the flow manager 221 in the control message to the central control apparatus 100 through the communication unit 210.
  • the control message manager 225 receives a control message including a chunk identifier and flow information (flow context) for the duplicate content packet from the central control apparatus 100 through the communication unit 210, and is included in the control message.
  • the chunk identifier and the flow information are transmitted to the flow manager 221.
  • the control message manager 226 sends the communication unit 210 a content request message including the result information on the chunk identifier check, that is, the information that the chunk identifier corresponding to the local cache 231 is not stored and the information on the content request. Send to the central control unit 100 through.
  • the storage unit 230 stores chunks of the divided content in the local cache 231 together with identifiers of the chunks in the form of a database in consideration of characteristics of the system (memory capacity, server speed, total number of chunks to be stored, etc.). do.
  • the storage unit 230 stores flow information, deduplication target flow registration information, and management information about content packets transmitted to the client 20 in the flow management database 232.
  • the local cache state manager 240 monitors the state of the local cache 231 of the storage 230 and performs control for maintenance according to the monitoring result.
  • the storage 130 of the central control apparatus 100 and the storage 230 of the local caching apparatus 200 store the chunks in RAM, permanent storage, and various other types of storage according to the characteristics of the chunks.
  • the storage can be configured according to the chunk size and frequency of use.
  • the storage unit 130 or 230 may include an optical recording medium such as a magnetic media such as a hard disk, a floppy disk, and a magnetic tape, a compact disk read only memory (CD-ROM), and a digital video disk (DVD).
  • Optical media, magneto-optical media such as floppy disks, and ROM, random access memory (RAM), and flash memory.
  • the most recently referenced chunks will be stored in RAM that can be read quickly, assuming that their utilization is high, and the chunks that are expected to have the least utilization can be stored on the secondary disk. Therefore, referring to an example of a database for managing chunks as shown in FIG. 6, the content database of chunks (disks (HDD, SDD, etc.)) manages chunk identifiers and chunk content, and the chunk index database can be quickly accessed.
  • a reference RAM memory may be applied to record the chunk identifier and the location on the disk where the chunk is written.
  • additional content is stored in a chunk content database (RAM) rather than a disk to provide a fast service.
  • the database of the storage unit 130 or 230 may utilize data structures such as HashTable and BloomFilter, and various structures that are known or later developed according to false positive sensitivity to manage identification information of a large number of chunks. Can be used.
  • the local caching apparatus 200 confirms a part of the content packet transmitted from the client 20 to perform duplicate confirmation, but in another embodiment of the present invention, the central control apparatus 100 ) May check the received content packet to perform duplicate confirmation.
  • the central control apparatus 100 May check the received content packet to perform duplicate confirmation.
  • FIG. 4 is a block diagram illustrating a configuration of a central control apparatus in a content delivery system according to another exemplary embodiment.
  • the central control apparatus 300 may include a storage unit including a communication unit 310, a control unit 320, a temporary local cache 331, and a flow management database 332 ( 330 and the local cache state management unit 340, and when the content packet received from the content server 10 is transmitted to the local caching apparatus 400, the content packet is checked through redundancy monitoring to check whether the chunk is duplicated. do.
  • a detailed description of the communication unit 310, the storage unit 330, and the local cache state management unit 340 of the central control unit 300 may include the communication unit 110 of the central control unit 100 according to an embodiment of the present disclosure. Since it is the same as each of the storage unit 130 and the local cache state management unit 140, it will be omitted for convenience of description.
  • controller 320 may include a flow manager 321, a payload buffering and dividing unit 322, a chunk redundancy manager 323, and a control message manager 324.
  • the controller 320 determines whether the content packet is duplicated by checking a part of the content packet when the content packet received from the content server 10 through the communication unit 310 is transmitted to the local caching apparatus 400.
  • the content packet is identified in units of flows, and the buffered flows are checked to determine whether they are duplicated.
  • the controller 320 stores chunks obtained by dividing the payload of the buffered flow, and transmits the content packet to the local caching apparatus 400 as it is.
  • the controller 320 transmits the chunk identifier and the flow information (flow context) for the duplicate content packet to the local caching apparatus 400 without transmitting the duplicated content packet.
  • the controller 320 buffers the payload of the flow of the received content packet, divides the buffered payload into chunks, and temporarily stores the divided chunk together with the chunk identifier.
  • the local caching apparatus 400 transmits only the chunk identifier and the flow information without transmitting the duplicated content packet.
  • the flow management unit 321 and the payload buffering and dividing unit 322 are the same as the flow management unit 121 and the payload buffering and dividing unit 122 of the central control apparatus 100 according to an embodiment of the present invention. For convenience of explanation, description will be omitted. However, the flow management unit 321 performs the flow management according to the chunk overlap check because the central control unit 300 performs the chunk overlap check, the payload buffering and dividing unit 322 provides the chunk identifier for the divided chunk. The generated chunk identifier is transmitted to the flow manager 321.
  • the chunk redundancy manager 323 manages whether the corresponding chunk currently received and transmitted to the client 20 is stored in the temporary local cache 331, and the chunk identifier of the divided chunk received from the flow manager 321. After checking whether the divided chunks are stored in advance, and if there are duplicate chunks stored in advance, information about the duplicated chunks is transmitted to the flow manager 321. Also, when the chunk of the same content packet continuously received from the flow manager 321 is delivered, the chunk overlap manager 323 checks whether the chunk identifier for the corresponding chunk is stored in the local cache 331 and matches the chunk. The result of checking whether the identifier is stored is transmitted to the flow manager 221.
  • the control message manager 324 manages information necessary for redundant monitoring of content packets, manages control messages transmitted and received with the local caching apparatus 400, and transmits a chunk identifier to the local caching apparatus 400, thereby providing a local caching apparatus. In operation 400, whether the chunk identifiers match is checked. Specifically, the control message management unit 324 includes the chunk identifier and flow information (flow context) for the duplicate content packet received from the flow management unit 321 in the control message to the communication unit 310 to the local caching apparatus 400. Send it through.
  • control message management unit 324 receives the content packet request message including the result information (there is no matching chunk identifier) and content packet request information for the chunk identifier match confirmation from the local caching apparatus 400 and the result information and The content packet request information is transmitted to the flow manager 321.
  • FIG. 5 is a block diagram illustrating a configuration of a local caching apparatus in a content delivery system according to another exemplary embodiment.
  • a local caching apparatus 400 may include a storage unit 430 including a communication unit 410, a control unit 420, a local cache 431, and a flow management database 432. ) And the local cache state manager 440.
  • the local caching apparatus 400 transmits the content packet received from the central control apparatus 300 to the client 20, and stores the content packet by using the chunk identifier transmitted according to the duplicate confirmation in the central control apparatus 300. Forwards the corresponding content packet to the client 20.
  • the communication unit 410 the storage unit 430, and the local cache state management unit 440 of the local caching apparatus 400 may be described in detail with reference to the communication unit 210 of the local caching apparatus 200 according to an exemplary embodiment. Since the storage unit 230 and the local cache state manager 240 are the same, they will be omitted for convenience of description.
  • controller 420 may include a flow manager 421, a payload buffering and dividing unit 422, a chunk caching unit 423, and a control message manager 424.
  • the control unit 420 transmits the content packet received from the central control unit 300 to the client 20 through the communication unit 410, and the chunk identifier and flow information (flow context) according to the duplicate confirmation from the central control unit 300. ), The received flow information is registered in the storage unit 430, and if a chunk identifier matching the chunk identifier received from the central control apparatus 300 is stored, the local cache 431 of the storage unit 430 is stored. ) Transmits the content packet corresponding to the chunk identifier stored in the csv to the client 20.
  • the payload buffering and dividing unit 422, the chunk caching unit 423, and the control message managing unit 424 are the payload buffering and dividing unit 222, the chunk caching unit 223, and the control unit according to an embodiment of the present invention. Since it is the same as the message managing unit 225, a detailed description thereof will be omitted.
  • the flow manager 421 identifies the content packet received from the central control apparatus 100 through the communication unit 410 in units of flows, buffers the payload of the identified flows, and divides the buffers into buffered flow chunks.
  • the divided chunk is stored in the local cache 431 together with the chunk identifier, and the received content packet or the content packet corresponding to the stored chunk identifier is transmitted to the client 20 through the communication unit 410.
  • the flow manager 421 when the flow manager 421 receives the duplicated chunk identifier and the flow information from the central control apparatus 100, the flow manager 421 registers the received chunk identifier and the flow information in the storage unit 430, and the chunk caching unit 423. In order to transmit the received chunk identifier, the content packet for the chunk identified by the chunk caching unit 423 is transmitted to the communication unit 410 to transmit the corresponding content packet to the client 20.
  • the control message management unit 424 receives the control message including the chunk identifier and the flow information from the central control unit 300, transfers the chunk identifier and the flow information to the flow management unit 421, and continues from the central control unit 300.
  • the control message including the chunk identifier and the flow information for the same received packet is received and the chunk identifier is transmitted to the flow manager 421.
  • the control message manager 424 checks whether the chunk identifier matching the received chunk identifier is stored in the local cache 431 and receives the result information (there is no matching result information) from the flow manager 421.
  • the content request message including the information and the content packet request information is transmitted to the central control apparatus 300.
  • FIG. 7 is a flowchart illustrating a method for optimizing network redundant transmission traffic in a content delivery system according to an embodiment of the present invention.
  • the central control apparatus 100 when the central control apparatus 100 receives a content packet from the content server 10 in step 1101, the central control apparatus 100 transmits the received content packet to the local caching apparatus 200. Accordingly, the local caching apparatus 200 transmits the content packet to the client 20.
  • the content packet transmitted from the content server 10 is a content packet transmitted by the content server 10 to the client 20, and the central control apparatus 100 and the local caching apparatus 200 receive the content packet.
  • the central control apparatus 100 and the local caching apparatus 200 may receive a content packet transmitted from the content server 10 to the client 20 through a mirroring method.
  • the local caching apparatus 200 performs chunk redundancy check on the transmitted content packet in step 1102.
  • the transmitted content packet is identified in units of flows, buffers the payload of the identified flow, divides the buffered payload into chunks, and generates a chunk identifier. Accordingly, the local caching apparatus 200 checks whether the transmitted content packet is duplicated in chunk units using the generated chunk identifier.
  • the local caching apparatus 200 checks whether the content is duplicated by comparing a portion of the received content packet among the content packets transmitted to the client 20 with the content packet, and performs the deduplication process according to the duplicate. Will be performed. In other words, when performing chunk redundancy check in step 1102, the local caching apparatus 200 checks the first n bytes of the flow, in order to determine "start" of the deduplication process for each flow, and the content packet corresponding thereto If it exists, then the received data is determined to be likely to be deduplicated and the deduplication process is started.
  • the generation of the signature (hash value) for checking the redundancy in the central control apparatus 100 brings a lot of CPU load, and when it is determined that there is no redundancy or the data is small in content size, the signature is generated more than the effect of the deduplication.
  • the load used is likely to degrade performance. Therefore, in step 1102, the local caching apparatus 200 receives data (content) of the first n bytes (for example, about 1K to 32K) from the central control apparatus 100, and thus the first n bytes of the flow are transmitted to the local caching apparatus 200.
  • the deduplication processor will only run if it exists. Otherwise, if the first n bytes do not exist in itself, the content packet subsequently received from the central control apparatus 100 is delivered to the client 20 as it is.
  • the local caching apparatus 200 transmits a control message including the chunk identifier and the flow information (the context of the flow) of the corresponding content to the central control apparatus 100. do. Accordingly, the central control apparatus 100 registers the chunk identifier and the flow information (the context of the flow) included in the received control message in the flow management database 132.
  • the context of the flow may include, for example, source IP, destination IP, source port, destination port, protocol, payload length, sequence number, content type, and the like as flow identification information. If there is no duplication of chunks for the content packet, since it is a newly transmitted content packet, the divided chunk of the transmitted content packet is stored in the local cache 231 together with the chunk identifier.
  • step 1104 when the local caching apparatus 200 receives the response message for the content packet transmitted from the client 20, the local caching apparatus 200 transmits the response message to the central control apparatus 100 as it is in operation 1104. Accordingly, in step 1104, the central control apparatus 100 transfers the received response message to the content server 10 as it is.
  • step 1105 when the central control apparatus 100 continuously receives the next content packet for the same content from the content server 10, the central control apparatus 100 identifies the received content packet in flow units and duplicates the received content packet using pre-registered flow information. Check if the flow is to be removed. As a result of the check, if the flow of the content packet is a deduplication target flow, the central control apparatus 100 buffers the payload of the deduplication target flow, divides the buffered payload into chunks, and chunks the temporary local cache 131. Temporarily store with an identifier.
  • the central control apparatus 100 includes the chunk identifier of the divided chunk, for example, chunk identifier 1 (F8K4F) as shown in FIG. 8, in the control message send F8K4F chunk. Send to 200.
  • the flow information (flow context) is also included in the control message and transmitted.
  • step 1107 when the local caching apparatus 200 receives the control message, the local caching apparatus 200 checks whether the identifier of the chunk included in the control message is stored in the storage 230. If the chunk identifier corresponding to the received chunk identifier is not stored, in operation 1108, the local caching apparatus 200 transmits a content packet request message including the verification result information to the central control apparatus 100. Since the result information includes only information indicating that the chunk identifier is not stored, the corresponding content packet is requested to the central control apparatus 100. Accordingly, in step 1109, the local caching apparatus 200 receives the content packet requested from the central control apparatus 100 in chunks, stores the content packet in the storage unit 230, and transmits the content packet to the client 20.
  • the local caching apparatus 200 stores the content packet corresponding to the chunk identifier in step 1110.
  • the content packet is transmitted to the client 20 by reading from the protocol proxy.
  • the local caching apparatus 200 receives a response message according to the content packet transmission from the client 20, and transmits the received response message to the content server 10 via the central control apparatus 100.
  • the central control apparatus 100 and the local caching apparatus 200 perform a control message termination process for the flow in step 1120, and the central control apparatus 100
  • the transmission protocol termination process is performed with the content server 10 through the protocol proxy, and the local caching apparatus 200 performs the transmission protocol termination process with the client 20 through the protocol proxy.
  • the content server 10, the central control apparatus 100, the client 20, and the local caching apparatus 200 may transmit and receive content packets through, for example, a TCP connection.
  • FIG. 8 is a flowchart illustrating an example of performing a TCP deduplication process in a content transmission system according to an embodiment of the present invention.
  • the content server A 10 the central control apparatus 100, the local caching apparatus 200, and the destination client D 20 are connected via TCP, and thus the central control apparatus 100 and the local caching apparatus are connected. 200 transmits and receives a deduplication control message.
  • step 1201 the central control apparatus 100 transmits a first content packet message src: A, dst: D, DataContents 1, len 1024 from the content server A 10 to the destination client D 20. ) And a second content packet message (src: A, dst: D, DataContents 2, len 1024).
  • the central control apparatus 100 identifies the received content packets in flow units and divides them into chunks. Accordingly, in step 1202, the central control apparatus 100 stores the identifier (identifier ID: F8K4F) (a) of the divided chunk, for example, chunk 1 (Data1: 1 to 1024, Data2: 1025 to 2048) and flow information. Included in the control message and sent to the local caching apparatus 200.
  • the local caching apparatus 200 determines whether identifier information matching the identifier information (identifier ID: F8K4F) of chunk 1 included in the received control message is stored in the database b of the local cache 231. Check it. If the chunk identifier is not stored, in step 1204, the local caching apparatus 200 sends a content packet request message including the result information (not storing the chunk identifier (OK, I don t have F8K4F chunk). The local caching apparatus 200 receives the corresponding content packet from the central controller 100 in step 1205.
  • identifier information matching the identifier information identifier ID: F8K4F
  • step 1206 the local caching apparatus 200 transmits the first content packet message (src :) to the identifier information (identifier ID: F8K4F) of the chunk 1 stored in the database (b).
  • A, dst: D, DataContents 1, len 1024) and a second content packet message are sent to the destination client D 20, and the destination client D 20 Receives a response message (src: D, dst: A, Ack 1025) and a response message (src: D, dst: A, Ack 2049) for content packet transmission from the content server 10 through the central control apparatus 100. To pass).
  • the received content packet is transmitted to the destination client D 20 in step 1206.
  • FIG. 9 is a flowchart illustrating a network traffic optimization method in a central control apparatus according to an embodiment of the present invention.
  • the central control apparatus 100 receives a content packet from the content server 10. At this time, the central control apparatus 100 identifies the received content packet in units of flows, and buffers the payload of the identified flow. In operation 1302, the central control apparatus 100 checks whether the chunk identifier is received from the local caching apparatus 200. If the chunk identifier is not received or if there is no registered chunk identifier, the central control apparatus 100 transmits the content packet of the buffered flow to the local caching apparatus 200 as it is in step 1303. In operation 1304, the central control apparatus 100 receives a response message from the local caching apparatus 200, and transmits the response message to the content server 10 in operation 1305.
  • the central control apparatus 100 registers the received flow information together with the received chunk identifier in the storage unit 230 as a deduplication object in step 1306. At this time, the central control apparatus 100 temporarily stores the chunks obtained by dividing the buffered payload into chunks together with the chunk identifier in the local cache 131.
  • the central control apparatus 100 continuously receives the content packet for the same content, and performs the deduplication process for the received content packet as in the example of FIG. 8.
  • the central control apparatus 100 identifies the received content packet in units of flows, buffers the payload of the identified flows, and divides the buffered payloads in units of chunks in step 1309. Is stored temporarily with the chunk identifier in the temporary local cache 131.
  • the central control apparatus 100 transmits a control message including the chunk identifier and the flow information of the received content packet to the local caching apparatus 200. Accordingly, the local caching apparatus 200 confirms the coincidence of the chunks using the chunk identifier, and transmits a content packet request message including the result information according to the result of the chunk.
  • step 1311 the central control apparatus 100 checks whether there is a content packet request from the local caching apparatus 200. As a result of the check, if there is no content packet request, the process proceeds to step 1313. If there is a content packet request, the central control apparatus 100 transmits the requested content packet to the local caching apparatus 200 in step 1312.
  • the central control apparatus 100 receives a response message for the content packet transmitted from the local caching apparatus 200 in operation 1313, and transmits the response message received in operation 1314 to the content server 10.
  • step 1315 the central control apparatus 100 checks whether the termination process is performed and returns to step 1301 when performing the termination process, and performs subsequent steps.
  • the central control apparatus 100 performs the termination process.
  • a termination protocol procedure is performed with the content server 10 and a control message termination process is performed with the local caching apparatus 200.
  • FIG. 10 is a flowchart illustrating a method for optimizing network redundant transmission traffic in the local caching apparatus 200 according to an embodiment of the present invention.
  • the local caching apparatus 200 receives a content packet provided from the content server 10 through the central control apparatus 100.
  • the local caching apparatus 20 performs a deduplication process for monitoring content duplication.
  • the local caching apparatus 200 identifies the received content packet in flow units and filters the identified flow.
  • the filtering of the flow is a flow that does not want to be deduplicated, for example, the flow is encrypted, or is performed to send directly to the client 20 without further processing for flows that are not likely to be deduplicated.
  • the local caching apparatus 200 buffers the payload of the identified flow, divides the buffered payload into chunks, and generates chunk identification information in operation 1404.
  • the local caching apparatus 200 compares the generated chunk identification information with the identification information of the chunk stored in the local cache 231 to check whether there is a duplicate. This duplication check process will be described with reference to FIGS. 14A to 14C.
  • an index for identifying a chunk is stored in the chunk index database, and it may be determined whether the index is duplicated according to the bit field value of the index. For example, as shown in FIG. 14B, since the bit field values for the converted values of the chunks are all true (1), the result of the AND operation is true, and it is determined that there are duplicated chunks, As described above, since the bit field value for the converted value of the chunk includes false (0), the result of ANDing all the bit field values is false, and it can be determined that there is no duplicate chunk.
  • the local caching apparatus 200 stores (caches) the divided chunks in the local cache 231 in step 1406, and then proceeds to step 1412. Send to destination client 20.
  • step 1407 the local caching apparatus 200 transmits the chunk identifier and the flow information (flow context) to the central control apparatus 100 in the control message. .
  • the local caching apparatus 200 checks whether the chunk identification information has been received from the central control apparatus 100 in step 1408, and receives the chunk identification information from the central control apparatus 100, the local caching apparatus 200 receives the local chunk identification information from the local cache 231 in step 1409. Check whether it matches the chunk identification information stored in advance. This can be confirmed according to an example as shown in FIGS. 14B and 14C attached to the same chunk overlap check in step 1405.
  • step 1410 the local caching apparatus 200 centralizes the content packet request message including the confirmed result information (no matching chunk identifier is stored) and the content packet request information. Transmission to the control device 100. Accordingly, in step 1411, the local caching apparatus 200 receives the requested content packet from the central control apparatus 100. On the other hand, if the chunk identifier is present, the process proceeds to step 1412.
  • step 1412 the local caching apparatus 200 transmits the content packet of the chunk corresponding to the received chunk identification information to the destination client 20, and in step 1413, the local caching apparatus 200 responds from the client 20. Receive the message. In this case, in operation 1414, the local caching apparatus 200 transmits the received response message to the content server 100 via the central control apparatus 100.
  • the local caching apparatus 200 checks whether the termination process is performed in step 1415, the local caching apparatus 200 returns to step 1408 to perform subsequent steps if the termination process is not performed, and when performing the termination process, the local caching apparatus 200 performs the termination process.
  • a termination protocol procedure is performed with the client 20 and a control message termination process is performed with the central control apparatus 100.
  • FIG. 11 is a flowchart illustrating a network traffic optimization method in a content delivery system according to another embodiment of the present invention.
  • the central control apparatus 300 receives a content packet from the content server 10.
  • the central control apparatus 300 identifies the received content packet in units of flows, divides the buffered payload of the identified flow into chunks, and stores the divided chunks together with the generated identifiers in the local cache 331. .
  • step 1502 the central control apparatus 300 checks whether the content packet is a chunk. Although not shown in FIG. 11, the central control apparatus 300 forwards the received content packet to the local caching apparatus 400 as it is, and transmits a response to the transmitted content packet. Received through the 400 and delivered to the content server 10. At this time, the local caching apparatus 400 identifies the received content packet in units of flows, divides the buffered payload of the identified flow into chunks, and stores the divided chunks together with the generated identifiers in the local cache 431. .
  • the central control apparatus 300 includes the chunk identifier and flow information (flow context) for the duplicated-confirmed content packet in the control message and performs local caching. To the device 200. .
  • the local caching apparatus 400 receives the chunk identifier and checks whether the received chunk identifier is stored in the database of the local cache 431. If the received chunk identifier is not stored, in operation 1505, the local caching apparatus 400 centrally controls the content packet request message including the content packet request information together with the result information indicating that the chunk identifier is not stored. In step 1506, the local caching apparatus 400 receives the requested content packet from the central control apparatus 300. The received content packet is stored in the local cache 431 of the local caching apparatus 400.
  • the local caching apparatus 400 extracts the content packet corresponding to the chunk identifier from the local cache 431 and transmits the chunk identifier to the client 20 in step 1507.
  • the local caching apparatus 400 receives a response message for receiving a content packet from the client 20, and transmits the received response message to the content server 10 via the central control apparatus 300.
  • the central control unit 300 and the local caching device 400 performs a control message termination process for the flow in step 1520, the central control unit 300
  • the transmission protocol termination process is performed with the content server 10 through the protocol proxy, and the local caching apparatus 400 performs the transmission protocol termination process with the client 20 through the protocol proxy.
  • FIG. 12 is a flowchart illustrating a network traffic optimization method in a central control apparatus according to another embodiment of the present invention.
  • the central control apparatus 300 receives a content packet from the content server 10. In this case, the central control apparatus 300 identifies the received content packet in units of flows, buffers the payload of the identified flows, divides them in chunks, and stores the divided chunks in the local cache together with the chunk identifiers.
  • step 1602 the central control apparatus 300 checks whether or not the received content packet is duplicated, that is, chunk duplication check.
  • the central control apparatus 300 transmits the received content packet to the local caching apparatus 400 in step 1603, and transmits the content packet transmitted in steps 1604 and 1605.
  • the response message is received from the local caching apparatus 400 and delivered to the content server 10.
  • step 1602 if it is determined in step 1602 that the content packet is duplicated, in step 1606, the central control apparatus 300 transmits the chunk identifier and flow information for the duplicate content packet to the local caching apparatus 400.
  • the central control apparatus 300 identifies the received content packet in units of flows in step 1608 to payload of the identified flow. Buffer and divide the buffered payload into chunks. In operation 1609, the central control apparatus 300 generates the chunk identifiers for the divided chunks and stores the divided chunks together with the generated chunk identifiers in the corresponding database of the temporary local cache 331.
  • the central control apparatus 300 transmits the chunk identifier and the flow information to the local caching apparatus 400 in the control message.
  • the central control apparatus 300 checks whether the content caching apparatus 400 receives the content packet request message including the result information (the chunk identifier is not stored) according to the matching confirmation of the chunk identifier from the local caching apparatus 400. .
  • step 1613 If there is a content packet request, the central control apparatus 300 transmits the requested content packet to the local caching apparatus 400 in step 1612.
  • the central control apparatus 300 receives a response message for the content packet transmitted to the client 20 from the local caching apparatus 400, and receives the response message received in operation 1614 to the content server 10. To pass.
  • step 1615 the central control apparatus 300 checks whether to perform the termination process to perform the termination process, or proceeds to step 1601 to repeat the process as described above.
  • FIG. 13 is a flowchart illustrating a method for optimizing network redundant transmission traffic in a local caching apparatus according to another exemplary embodiment of the present invention.
  • the content packets provided by the content server 10 are checked for duplication in the central control apparatus 300 before being transmitted to the client 20.
  • the duplicated content packet is provided to the client 20 through the process as shown in FIG. 13, and the packet not confirmed as duplicate is transmitted as it is from the central control device 300 to the local caching device 400. And is provided to the client 20.
  • the central control apparatus 300 and the local caching apparatus 400 identify the received content packet in units of flows, buffer the identified flow payload, divide the buffered payload into chunks, and divide the chunks into chunk identifiers. Save with.
  • the local caching apparatus 400 determines whether a chunk identifier is received from the central control apparatus 300. As a result of the check, if the chunk identifier is not received, the apparatus continuously waits for the reception of the chunk identifier, and when the control message including the flow information together with the chunk identifier is received, the local caching apparatus 400 may determine whether the chunk identifier is received.
  • the flow information (flow context) is registered in the storage unit 430.
  • the local caching apparatus 400 checks whether the received chunk identifier matches the pre-stored chunk identifier. That is, it checks whether the received chunk identifier is stored. As a result of the check, if the chunk identifiers having the same chunk identifiers are not stored, the local caching apparatus 400 requests the corresponding content packet to the central control apparatus 300 in step 1704. At this time, the local caching apparatus 400 transmits the content packet request message including the corresponding content packet request information to the central control apparatus 300 together with the result information (the chunk identifier is not stored). Accordingly, in operation 1705, the local caching apparatus 400 receives the requested content packet from the central control apparatus 300, and transmits the received content packet to the client in operation 1706. At this time, the delivered content packet is a non-overlapping content packet, and stores the divided chunks of the received content packet together with the identification information.
  • the local caching apparatus 400 transmits a content packet corresponding to the stored chunk identifier to the client 20 in step 1706. do.
  • the local caching apparatus 400 receives a response message for the content packet transmitted from the client 20, and transmits the response message received in operation 1708 to the content server 10 through the central control apparatus 300. do.
  • step 1709 the local caching apparatus 400 confirms whether or not the termination process is performed, and when the termination process is performed, the local caching apparatus 400 terminates the process with the central control apparatus 300, and otherwise, proceeds to operation 1701.
  • the deduplication process in the network traffic optimization methods according to the embodiments of the present invention as described above will be described in detail.
  • the deduplication process is divided into two embodiments according to the chunk division method.
  • the present invention may execute the deduplication process by applying various chunk division methods in addition to the above embodiments.
  • This deduplication process can be performed at both central control device 100 and local caching device 200.
  • the local caching apparatus 200 will be described as an example, and the central control apparatus 100 may be performed by the same process.
  • the local caching apparatus 200 upon receiving a content packet, the local caching apparatus 200 identifies the content packet in a flow unit. In this case, since the delivered content packets are changed in order during delivery, the local caching apparatus 200 is changed. ) Buffers the flow. In detail, the local caching apparatus 200 rearranges payloads of content packets, as shown in FIG. 15A, and merges only content by removing unnecessary IP and TCP headers as shown in FIG. 15A. . The local caching apparatus 200 then removes the meaningless content's metadata or control messages for use in the application protocol from the merged content and leaves only meaningful content, as shown in FIG. 15A (c). Or these unnecessary messages may be removed in the step prior to merging. These kinds of metadata vary by application protocol. For video content delivered over HTTP, HTTP headers that may contain client-specific data must be removed. For P2P, control messages used in P2P applications can also be excluded from caching.
  • the local caching apparatus 200 divides the buffered content into chunks in a meaningful unit as shown in (d) of FIG. 15B, and divides each chunk as shown in (e) of FIG. 15B.
  • known hash functions such as MD5 and SHA1 may be used as the payload of the chunk.
  • the identification information (unique identifier) of the chunk can uniquely identify the content of the chunk, and can be specified in a short length that is not expensive to compare so that chunks can be identified without having to compare the contents of the chunks.
  • known hash functions such as MD5 and SHA1 can be used.
  • a method of dividing content into chunk units may be determined according to the chunk method, the size of the chunk, or the characteristics of the content. For example, various methods such as dividing the content into meaningful content units according to the characteristics of the content, Rabin's fingerprinting known as a method of grasping the content of the content and finding redundancy meaningfully, or other methods may be used.
  • the contents may be divided into chunks having a variable size by grasping the contents of the content using a Rabin's fingerprinting function and dividing the chunks.
  • Figure 16b is an example of chunking using Rabin's fingerprinting, (a) is the original data, (b) shows the case where the insertion occurs before the data, (c) is the insertion occurs after the data The case is shown.
  • the network traffic optimization method according to the present invention may be implemented in software form readable by various computer means and recorded on a computer readable recording medium.
  • the recording medium may include a program command, a data file, a data structure, etc. alone or in combination.
  • Program instructions recorded on the recording medium may be those specially designed and constructed for the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts.
  • the recording media may be magnetic media such as hard disks, floppy disks, and magnetic tapes, optical disks such as compact disk read only memory (CD-ROM), digital video disks (DVD), Magnetic-Optical Media, such as floppy disks, and hardware devices specially configured to store and execute program instructions, such as ROM, random access memory (RAM), flash memory, and the like. do.
  • program instructions may include high-level language code that can be executed by a computer using an interpreter as well as machine code such as produced by a compiler.
  • Such hardware devices may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
  • the present invention relates to a traffic optimization method, a central control unit, and a local caching apparatus for reducing traffic on a network according to content duplication in a content delivery system.
  • the present invention relates to a content server for monitoring content duplication on a content transfer network.
  • the present invention by monitoring the duplicate transmission of the content packet provided from the content server to the client in the central control unit to transmit the duplicate content packet without transmitting the duplicate content packet, and confirms the content match by transmitting and receiving only the identification information with the local caching device, It can reduce the load of network traffic that is duplicated and transmitted in a specific section of the network (for example, between the Internet network and a centralized station), thereby ensuring convenience of network operation, reducing costs, and local caching. By checking the content duplication in the device, it is possible to improve the quality of experience of the client by reducing the redundant transmission of the content.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 콘텐트 전송 시스템에서의 콘텐트 중복 전송에 따른 네트워크 상의 트래픽 감소를 위한 중복 전송 트래픽 최적화 방법, 중앙 제어 장치 및 로컬 캐싱 장치에 관한 것으로서, 콘텐트 전송 네트워크 상에 콘텐트 중복 전송을 감시하기 위해 콘텐트 서버와 연결되는 중앙 제어 장치 및 클라이언트와 연결되는 로컬 캐싱 장치를 구비하는 콘텐트 전송 시스템에서, 로컬 캐싱 장치 또는 중앙 제어 장치에서 콘텐트 패킷의 청크 중복을 확인하고, 중앙 제어 장치가 콘텐트 서버로부터 클라이언트로 제공되는 콘텐트 패킷의 청크 중복 확인에 따라 중복되는 콘텐트 패킷을 전송하지 않고, 청크 식별자 및 플로우 정보만을 로컬 캐싱 장치로 전송하며, 로컬 캐싱 장치에서 수신된 청크 식별자의 일치를 확인하여 일치하는 청크 식별자가 있으면, 자신이 저장하고 있는 콘텐트 패킷을 클라이언트로 전송함으로써, 인터넷 망과 집중국 사이에서 중복되어 전송되는 네트워크 트래픽의 부하를 감소시킬 수 있으며, 이로 인해 망 운용의 편의성을 확보할 수 있으며, 비용 절감의 효과가 있다.

Description

콘텐트 전송 시스템, 그 시스템에서의 네트워크 트래픽 최적화 방법, 중앙 제어 장치 및 로컬 캐싱 장치
본 발명은 콘텐트 전송 시스템에 관한 것으로서, 특히 콘텐트 전송 시스템에서의 콘텐트 중복 전송 감소를 위한 콘텐트 전송 시스템, 그 시스템에서의 네트워크 트래픽 최적화 방법, 중앙 제어 장치 및 로컬 캐싱 장치에 관한 것이다.
인터넷 콘텐트 이용자들이 늘어나며 대용량의 인터넷 콘텐츠가 증가함에 따라서 웹(Web) 다운로드, 비디오(Video), 오디오(Audio), 영상(Image), 어플리케이션(Applicaton) 등의 다운로드 속도 저하 문제 등 서비스 품질이 이슈가 되고 있다.
이러한 문제를 해결하기 위해 최근에는 다양한 콘텐트 전송 서비스 기술이 개발되고 있으며, 이러한 콘텐트 전송 서비스를 통해 온라인 동영상(VoD, Live Straming)이나 음악 스트리밍, 파일 업로드 및 파일 다운로드 등 대용량 파일 전송이 가능하게 되었으며, 이에 따른 시장 또한 확대되는 추세이다.
최근에는 스마트 폰의 급속한 확산과 더불어 YouTube, IPTV, Apple appstore, T-Store 등과 같은 대용량 콘텐트를 전달하려는 서비스도 개발되고 있으며, 이러한 서비스의 등장으로 인해 통신망의 트래픽이 급속하게 증가하고 있다.
이와 같은 서비스들은 특징적으로 그 인기도에 따라 빈도는 다르지만 중복적인 콘텐트를 동일 도메인 또는 동일 무선 커버리지 내의 사용자에게 전달하는 특징을 가지며, 점차적으로 그 비중이 증가하고 있는 상황이다.
때문에 대용량 콘텐트 전송에 따른 통신망의 트래픽 급속하게 증가하고 있는 상황에서 중복된 콘텐트의 전송으로 인해 통신망의 트래픽 부하가 더욱 증가하게 되므로 통신 품질이 저하되는 문제점이 있다.
이에 본 발명은 종래의 불편함을 해소하기 위하여 제안된 것으로서, 다양한 형태의 콘텐트를 전송 중 콘텐트의 중복 전송을 최소화하여 네트워크 상의 트래픽을 감소시키기 위한 콘텐트 전송 시스템을 제공하고자 한다.
더하여, 본 발명은 네트워크 상에서 콘텐트 서버와 연결되어 제공되는 콘텐트 패킷의 중복 전송을 최소화하기 위해 콘텐츠 패킷의 중복 전송을 제어하는 중앙 제어 장치 및 클라이언트로 해당 콘텐트 패킷을 전송하기 위한 로컬 캐싱 장치를 제공하고자 한다.
더하여, 본 발명은 콘텐트 전송 시스템에서, 제공되는 콘텐트 패킷의 중복 전송을 최소화하여 네트워크 상의 트래픽을 감소시키기 위한 네트워크 트래픽 최적화 방법을 제공하고자 한다.
상기와 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 콘텐트 전송 시스템은, 콘텐트 서버로부터 클라이언트로 제공할 콘텐트 패킷을 수신하면, 로컬 캐싱 장치로 상기 수신된 콘텐트 패킷을 전송하면서, 상기 로컬 캐싱 장치에 의해 중복 확인된 콘텐트 패킷의 중복 청크에 대한 청크 식별자 및 플로우 정보를 수신하면, 이를 중복 제거 대상으로 등록하고, 중복 제거 대상으로 등록된 플로우의 콘텐트 패킷에 대하여 청크 식별자 및 플로우 정보만을 상기 로컬 캐싱 장치로 전송하는 중앙 제어 장치; 및 상기 클라이언트로 제공되는 상기 콘텐트 패킷을 수신하면 상기 콘텐트 패킷에 대한 분할된 청크들을 청크 식별자와 함께 저장하되, 상기 분할된 청크들의 중복을 확인하여 상기 중복 청크에 대한 상기 청크 식별자 및 상기 플로우 정보를 상기 중앙 제어 장치로 전송하고, 상기 중앙 제어 장치로부터 청크 식별자 및 플로우 정보를 수신하면, 수신된 청크 식별자에 해당하는 자신이 저장하고 있는 콘텐트 패킷을 상기 클라이언트로 전송하는 로컬 캐싱 장치를 포함하여 이루어질 수 있다.
또한, 본 발명의 다른 실시 예에 따른 콘텐트 전송 시스템은, 콘텐트 서버로부터 클라이언트로 제공할 콘텐트 패킷을 수신하면, 상기 콘텐트 패킷에 대한 분할된 청크들을 청크 식별자와 함께 임시 저장하고, 상기 분할된 청크들의 중복을 확인하여 중복 청크에 대해서는 콘텐트 패킷을 전송하는 대신 청크 식별자 및 플로우 정보를 상기 로컬 캐싱 장치로 전송하는 중앙 제어 장치; 및 상기 중앙 제어 장치로부터 상기 중복 청크에 대한 청크 식별자 및 플로우 정보를 수신하면, 상기 청크 식별자에 해당하는 자신이 저장하고 있는 콘텐트 패킷을 상기 클라이언트로 전송하는 로컬 캐싱 장치를 포함하여 이루어질 수 있다.
더하여, 본 발명의 실시 예에 따른 중앙 제어 장치는, 콘텐트 서버 및 로컬 캐싱 장치와 통신을 수행하는 통신부; 상기 통신부를 통해 콘텐트 서버로부터 클라이언트로 전송될 콘텐트 패킷을 수신하면 상기 콘텐트 패킷을 상기 로컬 캐싱 장치로 전송하되, 상기 로컬 캐싱 장치에 의해 중복 감시된 중복 청크에 대한 청크 식별자 및 플로우 정보를 수신하면, 수신된 상기 청크 식별자 및 상기 플로우 정보를 중복 제거 대상으로 등록하고, 중복 제거 대상 플로우의 다음으로 수신된 콘텐트 패킷에 대하여, 수신된 콘텐트 패킷 대신에 청크 식별자 및 플로우 정보만을 상기 로컬 캐싱 장치로 전송하도록 제어하는 제어부; 및 상기 분할된 청크들을 청크 식별자와 함께 임시 저장하고, 수신된 상기 청크 식별자 및 상기 플로우 정보를 저장하는 저장부;를 포함할 수 있다.
여기서, 상기 제어부는, 상기 수신된 콘텐트 패킷을 플로우 단위로 식별하고, 식별된 플로우의 페이로드를 분할한 상기 분할된 청크들을 임시 저장시키고, 상기 로컬 캐싱 장치로부터 상기 청크 식별자 및 상기 플로우 정보를 수신하면, 수신된 청크 식별자 및 상기 플로우 정보를 등록하고, 로컬 캐싱 장치로 전송하지 않도록 제어하는 플로우 관리부; 및 상기 식별된 플로우의 페이로드를 버퍼링하고, 버퍼링된 페이로드를 청크로 분할하는 페이로드 버퍼링 및 분할부를 포함할 수 있다.
또한, 상기 제어부는, 상기 분할된 청크들의 중복을 확인하여, 중복 청크에 대 청크 식별자 및 플로우 정보를 상기 로컬 캐싱 장치로 전송하도록 제어하는 청크 중복 관리부를 더 포함할 수 있다.
더하여, 본 발명의 실시 예에 따른 로컬 캐싱 장치는, 클라이언트 및 콘텐트 서버에 연결된 중앙 제어 장치와 통신을 수행하는 통신부; 상기 통신부를 통해 상기 중앙 제어 장치로부터 콘텐트 패킷을 수신하면 수신된 콘텐트 패킷을 상기 클라이언트로 제공하면서 상기 콘텐트 패킷에 대한 분할된 청크들을 청크 식별자와 함께 저장시키고, 상기 중앙 제어 장치로부터 중복 청크의 청크 식별자 및 플로우 정보를 수신하면, 수신된 상기 청크 식별자에 해당하는 저장되어 있는 콘텐트 패킷을 상기 클라이언트로 전송하도록 제어하는 제어부; 및 상기 분할된 청크들을 청크 식별자와 함께 저장하는 저장부;를 포함할 수 있다.
그리고, 상기 제어부는, 상기 수신된 콘텐트 패킷을 플로우 단위로 식별하고, 식별된 플로우에 대해 상기 중앙 제어 장치로부터 청크 식별자가 수신되면, 수신된 청크 식별자에 대응하는 저장되어 있는 콘텐트 패킷을 상기 목적지 클라이언트로 전송하기 위한 제어를 수행하는 플로우 관리부; 식별된 플로우의 페이로드를 버퍼링하고, 버퍼링된 페이로드를 청크로 분할하는 페이로드 버퍼링 및 청크 분할부; 및 상기 분할된 청크를 청크 식별자와 함께 상기 저장부에 저장시키는 청크 캐싱부;를 포함할 수 있다.
또한, 상기 로컬 캐싱 장치의 제어부는, 상기 수신된 콘텐트 패킷에 대한 청크 중복 확인을 수행하여 중복 확인된 중복 청크에 대한 청크 식별자 및 플로우 정보를 상기 플로우 관리부로 전달하고, 상기 수신된 청크 식별자와 일치하는 청크 식별자가 저장되어 있는지를 확인하는 청크 중복 관리부를 더 포함할 수 있다.
그리고, 상기 플로우 관리부는, 상기 중복 청크에 대한 청크 식별자 및 플로우 정보를 상기 중앙 제어 장치로 전송하기 위한 제어를 수행하고, 상기 수신된 청크 식별자와 일치하는 청크 식별자가 저장되어 있지 않으면, 상기 중앙 제어 장치로 상기 수신된 청크 식별자에 해당하는 콘텐트 패킷을 요청하고, 요청한 콘텐트 패킷이 수신하여 상기 클라이언트로 제공하기 위한 제어를 수행할 수 있다.
더하여, 본 발명의 일 실시 예에 따른 네트워크 트래픽 최적화 방법은, 콘텐트 패킷을 제공하는 콘텐트 서버와 연결되는 중앙 제어 장치와, 상기 콘텐트 패킷이 제공되는 클라이언트와 연결되는 로컬 캐싱 장치를 포함하는 콘텐트 전송 시스템에서, 상기 중앙 제어 장치가 상기 콘텐트 서버로부터 수신된 콘텐트 패킷을 상기 로컬 캐싱 장치로 전송하는 단계; 상기 로컬 캐싱 장치가 수신된 콘텐트 패킷을 클라이언트로 제공하되, 상기 수신된 콘텐트 패킷에 대한 청크 중복을 확인하는 단계; 상기 로컬 캐싱 장치가 상기 수신된 콘텐트 패킷에 대한 중복된 청크를 확인하면, 중복 청크의 청크 식별자 및 플로우 정보를 상기 중앙 제어 장치로 전송하는 단계; 상기 중앙 제어 장치가 수신한 상기 중복 청크의 청크 식별자 및 플로우 정보를 중복 제거 대상으로 등록하는 단계; 상기 중앙 제어 장치가 상기 중복 제거 대상으로 등록된 플로우에 대해 다음으로 수신된 콘텐트 패킷에 대하여, 청크 식별자 및 플로우 정보만을 상기 로컬 캐싱 장치로 전송하는 단계; 및 상기 로컬 캐싱 장치가 상기 중복 청크의 청크 식별자 및 플로우 정보를 수신하면, 상기 수신된 청크 식별자에 해당하는 저장되어 있는 콘텐트 패킷을 상기 클라이언트로 전송하는 단계;를 포함하여 이루어질 수 있다.
또한, 본 발명의 다른 실시 예에 따른 네트워크 트래픽 최적화 방법은, 콘텐트 패킷을 제공하는 콘텐트 서버와 연결되는 중앙 제어 장치와, 상기 콘텐트 패킷이 제공되는 클라이언트와 연결되는 로컬 캐싱 장치를 포함하는 콘텐트 전송 시스템에서, 상기 중앙 제어 장치가 상기 콘텐트 서버로부터 콘텐트 패킷을 수신하면, 수신된 콘텐트 패킷에 대한 청크 중복 확인을 수행하는 단계; 상기 중앙 제어 장치가 중복 확인된 상기 콘텐트 패킷에 대한 중복 청크의 청크 식별자 및 플로우 정보를 상기 로컬 캐싱 장치로 전송하는 단계; 및 상기 로컬 캐싱 장치가 상기 중복 청크의 청크 식별자 및 플로우 정보를 수신하면, 상기 수신된 청크 식별자에 해당하는 저장되어 있는 콘텐트 패킷을 상기 목적지 클라이언트로 전송하는 단계;를 포함할 수 있다.
상술한 네트워크 트래픽 최적화 방법은, 상기 로컬 캐싱 장치가 상기 수신된 청크 식별자에 대응하는 콘텐트 패킷을 저장하고 있지 않은 경우, 상기 수신된 청크 식별자에 해당하는 콘텐트 패킷을 상기 중앙 제어 장치로 요청하는 단계; 상기 로컬 캐싱 장치가 상기 중앙 제어 장치로부터 요청한 콘텐트 패킷을 전달받는 단계; 및 상기 로컬 캐싱 장치가 전달받은 콘텐트 패킷을 상기 클라이언트로 전송하는 단계;를 더 포함할 수 있다.
또한, 상술한 네트워크 트래픽 최적화 방법은, 상기 중앙 제어 장치가 상기 수신된 콘텐트 패킷을 플로우 단위로 식별하여 식별된 플로우의 페이로드를 버퍼링하고, 버퍼링된 페이로드를 청크로 분할하는 단계; 및 분할된 청크를 생성된 청크 식별자와 함께 임시 저장하는 단계;를 더 포함할 수 있다.
또한, 상술한 네트워크 트래픽 최적화 방법은, 상기 로컬 캐싱 장치가 상기 중앙 제어 장치로부터 수신한 콘텐트 패킷을 플로우 단위로 식별하여 식별된 플로우의 페이로드를 버퍼링하고, 버퍼링된 페이로드를 청크로 분할하는 단계; 및 분할된 청크를 생성된 청크 식별자와 함께 저장하는 단계;를 더 포함할 수 있다.
본 발명은 콘텐트 전송 네트워크 상에 콘텐트 중복 전송을 감시하고 제어하기 위해 콘텐트 서버와 연결되는 중앙 제어 장치 및 클라이언트와 연결되어 콘텐츠를 전송하는 로컬 캐싱 장치를 구비함으로써, 간단하게 기존의 시스템 및 프로토콜에 투명하게 적용할 수 있으므로 현실적이고 운용 가능한 콘텐트 전송 시스템을 제공할 수 있는 효과가 있다.
또한, 본 발명은 중앙 제어 장치에서 콘텐트 서버로부터 클라이언트로 제공되는 콘텐트 패킷에 대하여, 로컬 캐싱 장치와 식별 정보만을 송수신하여 콘텐트 캐싱 여부를 확인하고, 로컬 캐싱 장치가 콘텐츠를 캐싱하고 있는 경우 로컬 캐싱 장치로부터 콘텐츠가 전송되도록 함으로써, 인터넷 망과 집중국 사이에서 중복되어 전송되는 네트워크 트래픽의 부하를 감소시킬 수 있으며, 이로 인해 망 운용의 편의성을 확보할 수 있으며, 비용 절감의 효과가 있다.
또한, 본 발명은 클라이언트에 근접하여 구비된 로컬 캐싱 장치에서 클라이언트에서 요청한 콘텐트의 캐싱 여부를 확인하고, 캐싱된 콘텐츠를 로컬 캐싱 장치가 클라이언트로 직접 전송할 수 있도록 함으로써, 콘텐트의 중복 전송을 감소시킴으로써 클라이언트의 체감 품질 향상시킬 수 있는 효과가 있다.
도 1은 본 발명의 실시 예들에 따른 콘텐트 전송 시스템의 구성을 나타낸 블록도이다.
도 2는 본 발명의 일 실시 예들에 따른 콘텐트 전송 시스템에서의 중앙 제어 장치의 구성을 나타낸 블록도이다.
도 3는 본 발명의 일 실시 예들에 따른 콘텐트 전송 시스템에서의 로컬 캐싱 장치의 구성을 나타낸 블록도이다.
도 4는 본 발명의 다른 실시 예들에 따른 콘텐트 전송 시스템에서의 중앙 제어 장치의 구성을 나타낸 블록도이다.
도 5는 본 발명의 다른 실시 예들에 따른 콘텐트 전송 시스템에서의 로컬 캐싱 장치의 구성을 나타낸 블록도이다.
도 6은 본 발명의 실시 예들에 따른 콘텐트 전송 시스템에서의 청크 콘텐트를 관리하기 위한 데이터베이스의 일 예를 도시한 블록도이다.
도 7은 본 발명의 일 실시 예에 따라 콘텐트 전송 시스템에서 콘텐트 중복 전송을 감시하여 네트워크 트래픽을 최적화하는 방법을 도시한 흐름도이다.
도 8은 본 발명의 일 실시 예에 따른 콘텐트 전송 시스템에서의 중복 제거 프로세스 수행에 대한 일 예를 도시한 흐름도이다.
도 9는 본 발명의 일 실시 예에 따른 중앙 제어 장치에서의 네트워크 트래픽 최적화 방법을 도시한 흐름도이다.
도 10은 본 발명의 일 실시 예에 따른 로컬 캐싱 장치에서의 네트워크 트래픽 최적화 방법을 도시한 흐름도이다.
도 11은 본 발명의 다른 실시 예에 따라 콘텐트 전송 시스템에서 콘텐트 중복 전송을 감시하여 네트워크 트래픽을 최적화하기 위한 방법을 도시한 흐름도이다.
도 12는 본 발명의 다른 실시 예에 따른 중앙 제어 장치에서의 네트워크 트래픽 최적화 방법을 도시한 흐름도이다.
도 13은 본 발명의 다른 실시 예에 따른 로컬 캐싱 장치에서의 네트워크 트래픽 최적화 방법을 도시한 흐름도이다.
도 14a 내지 도 14c는 본 발명의 실시 예들에 따라 청크 중복 확인의 일 예를 도시한 블록도이다.
도 15a 및 도 15b는 본 발명의 실시 예들에 따라 버퍼링된 페이로드를 고정된 사이즈의 청크로 분할하기 위한 프로세스의 일 예를 도시한 블록도이다.
도 16a 및 도 16b는 본 발명의 실시 예들에 따라 버퍼링된 페이로드를 가변된 사이즈의 청크로 분할하기 위한 프로세스의 일 예를 도시한 블록도이다.
이하, 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
그러면 본 발명의 실시 예에 따른 콘텐트 중복 전송을 감시하기 위한 콘텐트 전송 시스템 및 콘텐트 전송 시스템의 중앙 제어 장치 및 로컬 캐싱 장치에 대해 첨부된 도면을 참조하여 구체적으로 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 콘텐트 전송 시스템의 구성을 나타낸 블록도이다.
도 1을 참조하면, 콘텐트 전송 시스템은 네트워크 상에서, 하나 이상의 콘텐트 서버(10)로부터 콘텐트가 인입되는 입구에 위치한 중앙 제어 장치(CN: Central Node)(100) 및 상기 네트워크 상에서 클라이언트(20) 측에 위치하여 콘텐트를 분산 저장하는 로컬 캐싱 장치(RN: Remote Node)(200)로 구성될 수 있다.
중앙 제어 장치(100, 300)는 하나 이상의 콘텐트 서버(10)에서 수신되는 콘텐트 패킷을 로컬 캐싱 장치(200, 400)로 전송하되, 수신된 콘텐트를 플로우 단위로 식별하여 식별된 플로우가 중복 대상 플로우인지를 확인한다. 중앙 제어 장치(100)는 중복으로 확인된 플로우에 대해서는 해당 콘텐트를 로컬 캐싱 장치(200, 400)로 전송하지 않는다. 여기서 콘텐트 서버(10)로부터 수신되는 콘텐트는 하나 또는 하나 이상의 개수의 플로우(컨텐츠를 제공하는 콘텐트 서버와 컨텐츠를 제공받을 클라이언트 쌍으로 식별되는 것으로, 예를 들어, TCP 플로우임)로 나뉘어 전송되며, 각 플로우는 IP 등의 프로토콜을 사용하여 하나 이상의 IP 패킷들을 통해 해당 콘텐트를 전송한다. 또한, 상기 콘텐트 서버(10)와 중앙 제어 장치(100, 300)와 로컬 캐싱 장치(200, 400)와 클라이언트(20) 간에 전송되는 콘텐트는 콘텐츠 서버(10)를 출발지 주소로 클라이언트(20)를 목적지 주소로 함으로써, 콘텐츠 서버(10)에서 클라이언트(20)로 전송되는 IP 패킷으로 전송될 수 있으며, 중앙 제어 장치(100, 300)와 로컬 캐싱 장치(200, 400)는 이러한 콘텐츠를 다양한 방법으로 수신하여 이하에서 설명하는 프로세스를 수행할 수 있다.
로컬 캐싱 장치(200, 400)는 해당 플로우를 통해 전송되는 콘텐트를 일정한 크기 또는 유의미한 단위의 청크 단위로 분할하고, 콘텐트의 각 청크를 캐싱하여 저장하며, 해당 플로우를 감시하여 자신이 캐싱하고 있는 콘텐트를 전송하기 위한 플로우를 식별하고, 해당 플로우의 콘텐트 패킷을 콘텐츠 서버(10)를 대신하여 클라이언트(20)로 전송한다.
본 발명에 따른 콘텐트 전송 시스템에 있어서, 콘텐트의 중복 감시는 중앙 제어 장치(100) 및 로컬 캐싱 장치(200) 중 어느 하나에서 이루어질 수 있다.
그러면, 이와 같은 콘텐트 전송 시스템에서 콘텐트 중복 감시가 로컬 캐싱 장치(200) 측에서 이루어지는 경우에 대해 보다 구체적으로 설명하면 다음과 같다.
도 2는 본 발명의 일 실시 예에 따른 콘텐트 전송 시스템에서의 중앙 제어 장치의 구성을 나타낸 블록도이다.
도 2를 참조하면, 중앙 제어 장치(100)는 통신부(110), 제어부(120), 임시 로컬 캐시(131) 및 플로우 관리 데이터베이스(132)를 포함하는 저장부(130) 및 로컬 캐시 상태 관리부(140)로 구성될 수 있다.
통신부(110)는 하나 이상의 콘텐트 서버(10)에서 제공되는 콘텐트 패킷을 수신하고, 로컬 캐싱 장치(200)로 콘텐트 패킷을 전송하며, 콘텐트 중복 감시를 위한 프로세스 수행에 따른 메시지들을 송수신한다. 여기서, 로컬 캐싱 장치(200)와 송수신되는 중복 감시를 위한 메시지들은 식별 정보 및 제어 정보 등을 포함하는 제어 메시지, 콘텐트 패킷을 전송하는 콘텐트 패킷 전송 메시지 및 응답 메시지 등을 포함할 수 있다. 더하여, 상기 통신부(110)는 하나 이상의 통신 방식을 사용하여 데이터를 송수신할 수 있으며, 이를 위하여 각각 서로 다른 통신 방식에 따라서 데이터를 송수신하는 복수의 통신 모듈을 포함할 수 있다.
제어부(120)는 플로우 관리부(121), 페이로드 버퍼링 및 분할부(122) 및 제어 메시지 관리부(123)를 포함하여 구성될 수 있다.
제어부(120)는 통신부(110)를 통해 콘텐트 서버(10)로부터 수신된 콘텐트 패킷을 로컬 캐싱 장치(200)로 전송하며, 로컬 캐싱 장치(200)로부터 중복 확인에 대한 플로우 정보를 수신하면, 수신되는 콘텐트 패킷을 플로우 단위로 식별하고, 식별되는 콘텐츠 패킷이 중복 제거 대상 플로우인지를 확인하여 중복 제거 대상 플로우인 경우 식별된 플로우의 콘텐트 패킷을 버퍼링하고 버퍼링된 콘텐트 패킷을 청크로 분할하고, 분할된 청크를 저장부(130)에 저장한다. 제어부(120)는 중복 제거 대상 플로우가 아닌 경우 로컬 캐싱 장치(200)로 수신된 콘텐트 패킷을 전송한다. 즉, 계속해서 수신되는 콘텐트 패킷이 로컬 캐싱 장치(200)에 캐싱되어 있는 콘텐트가 아니면, 현재 수신된 콘텐트 패킷을 로컬 캐싱 장치(200)로 전송되어 로컬 캐싱 장치(200)에서 콘텐트 캐싱 및/또는 콘텐트 중복 확인이 이루어질 수 있도록 한다.
플로우 관리부(121)는 통신부(110)로부터 수신된 콘텐트 패킷을 플로우 단위로 식별하고, 로컬 캐싱 장치(200)로부터 수신된 콘텐트 패킷의 중복 청크 식별자 및 플로우 정보(플로우 컨텍스트 포함)를 이용하여 로컬 캐싱 장치(200)에 캐싱된 콘텐트 패킷과 동일한 콘텐트 패킷을 전송하는 플로우를 플로우 관리 데이터베이스(132)에 중복 제거 대상 플로우로 등록한다. 여기서, 플로우 컨텍스트는 플로우 식별정보로서 예를 들어, source IP, Destination IP, Source Port, Destination Port, Protocol, payload length, Sequence Number, 콘텐트 종류 등을 포함할 수 있다.
플로우 관리부(121)는 콘텐트 서버(100)로부터 수신된 콘텐트 패킷에 대한 식별된 플로우가 중복 제거 대상 플로우가 아니면, 수신된 콘텐트 패킷을 로컬 캐싱 장치(200)로 전송하기 위해 통신부(110)로 전달한다. 반대로, 플로우 관리부(123)는 식별된 플로우가 중복 제거 대상 플로우이면, 페이로드 버퍼링 및 분할부(123)로 식별된 플로우를 전달한다. 여기서, 플로우 관리부(121)는 플로우 관리 데이터베이스(132)에 식별된 플로우에 대한 정보가 저장되어 있는지를 확인함으로써 중복 제거 대상 플로우인지를 확인할 수 있다.
또한, 플로우 관리부(121)는 페이로드 버퍼링 및 분할부(123)로부터 분할된 콘텐트 패킷의 청크에 대한 청크 식별자를 수신하여 수신된 청크 식별자를 제어 메시지 관리부(123)로 전달한다.
페이로드 버퍼링 및 분할부(122)는 플로우 관리부(121)로부터 전달된 중복 제거 대상의 플로우의 페이로드를 버퍼링하고, 버퍼링된 페이로드에 실린 콘텐트 패킷을 다수의 청크로 분할하며, 로컬 캐싱 장치(200)에서 클라이언트(20)로 전송되는 콘텐트 패킷이 콘텐트 서버(10)로부터 전송되는 콘텐트 패킷과 일치되도록 하기 위해 분할된 청크들을 저장부(130)의 임시 로컬 캐시(131)에 임시 저장시킨다. 이러한 페이로드의 청크 분할에 대한 구체적인 방법은 후술하는 방법 설명에서 구체적으로 설명하기로 한다.
제어 메시지 관리부(123)는 콘텐트 패킷의 중복 감시를 위해 필요한 정보들을 관리하고, 로컬 캐싱 장치(200)와 송수신하는 제어 메시지를 관리하며, 로컬 캐싱 장치(200)로부터 캐싱된 콘텐트 패킷의 청크 식별자(서명값)를 송수신하면서 콘텐트 패킷의 일치성을 확인한다. 구체적으로, 제어 메시지 관리부(123)는 플로우 관리부(121)에서 전달받은 콘텐트 패킷의 청크 식별자를 제어 메시지에 포함하여 통신부(110)를 통해 로컬 캐싱 장치(200)로 전송하고, 로컬 캐싱 장치(200)로부터 통신부(110)를 통해 수신한 콘텐트 패킷의 청크 식별자에 대한 확인 정보 즉, 로컬 캐싱 장치(200)에 해당 청크 식별자가 존재하지 않는 경우, 청크 식별자가 없음을 알리는 결과 정보와 함께 해당 콘텐트를 요청하기 위한 콘텐트 요청 메시지를 로컬 캐싱 장치(200)로부터 수신하여 관리한다. 이때, 제어 메시지 관리부(123)는 수신된 콘텐트 요청 메시지에 포함된 결과 정보를 플로우 관리부(121)로 전달하여 플로우 관리부(121)로 하여금 로컬 캐싱 장치(200)로 해당 콘텐트 패킷을 전달하도록 한다. 여기서, 제어 메시지 관리부(123)는 제어 메시지 전송 후 플로우 관리부(121)로 중복된 콘텐트 패킷을 전송하지 않도록 지시하고, 미리 설정된 시간 동안 로컬 캐싱 장치(200)로부터 콘텐트 요청 메시지가 수신되지 않으면, 로컬 캐싱 장치(200)에서 자신이 저장하고 있는 청크 식별자에 대한 콘텐트 패킷을 클라이언트(20)로 전송한 것으로 간주한다. 이때, 로컬 캐싱 장치(200)로부터 클라이언트(20)로 전송되는 콘텐트 패킷은 플로우 관리부(121)에서 중복으로 확인된 콘텐트 패킷과 동일한 패킷이다.
저장부(130)는 분할된 콘텐트 패킷의 청크들을 시스템의 특성(메모리 용량, 서버의 속도, 저장해야 하는 총 청크의 개수 등)을 고려한 데이터베이스의 형태로 청크의 식별자와 함께 임시 로컬 캐시(131)에 임시 저장한다. 또한, 저장부(130)는 콘텐트 서버(10)로부터 전송되는 콘텐트 패킷들에 대한 플로우 정보 및 중복 제거 대상 플로우 등록 정보 및 관리 정보들을 저장한다. 여기서, 임시 로컬 캐시(131)는 로컬 캐싱 장치(200)에서 저장된 청크들에 해당하는 콘텐트 패킷을 전송한 후 전송되는 응답 메시지를 수신하면, 임시 저장된 해당 청크들을 삭제하거나, 사용자가 설정한 방식에 따라 삭제할 수도 있다.
로컬 캐시 상태 관리부(140)는 저장부(130)의 임시 로컬 캐시(131)에 대한 상태를 모니터링하고, 모니터링 결과에 따라 유지 관리를 위한 제어를 수행하며, 플로우 관리부(121)의 요청에 따라 임시 로컬 캐시(131)에 해당 콘텐트 청크가 저장되어 있는지를 확인할 수 있다.
다음으로, 본 발명의 일 실시 예에 따른 콘텐트 전송 시스템에서의 로컬 캐싱 장치(200)의 구성 및 동작을 첨부된 도면을 참조하여 구체적으로 설명하기로 한다.
도 3은 본 발명의 일 실시 예에 따른 콘텐트 전송 시스템에서의 로컬 캐싱 장치의 구성을 나타낸 블록도이다.
도 3을 참조하면, 로컬 캐싱 장치(200)는 통신부(210), 제어부(220), 로컬 캐시(231) 및 플로우 관리 데이터베이스(232)를 포함하는 저장부(230) 및 로컬 캐시 상태 관리부(240)로 구성될 수 있다.
통신부(210)는 중앙 제어 장치(100)로부터 전송된 콘텐트 패킷을 수신하고, 클라이언트(20)로 콘텐트 패킷을 전송하고, 중앙 제어 장치(100)와 콘텐트 중복 감시를 위한 중복 제거 프로세스 수행에 따른 제어 메시지들을 송수신한다. 여기서, 송수신되는 중복 감시를 위한 메시지들은 식별 정보 및 제어 정보 등을 포함하는 제어 메시지, 콘텐트 패킷을 전송하는 콘텐트 패킷 전송 메시지 및 응답 메시지 등을 포함할 수 있다. 더하여, 통신부(210)는 하나 이상의 통신 방식을 사용하여 데이터를 송수신할 수 있으며, 이를 위하여 서로 다른 통신 방식에 따라서 데이터를 송수신하는 복수의 통신 모듈을 포함할 수 있다.
제어부(220)는 플로우 관리부(221), 페이로드 버퍼링 및 분할부(222), 청크 캐싱부(223), 청크 중복 관리부(224) 및 제어 메시지 관리부(225)를 포함하여 구성될 수 있다. 제어부(220)는 통신부(210)를 통해 중앙 제어 장치(100)로부터 수신된 콘텐트 패킷을 클라이언트(20)로 전송하면서, 수신된 콘텐트 패킷의 중복 여부를 확인한다. 수신되는 콘텐트 패킷의 중복 확인을 위해, 콘텐트 패킷의 일부(예를 들어, 5번째 패킷)가 전달되면, 이를 저장하고 있는 콘텐트 패킷과 비교하여, 콘텐트 패킷의 중복 여부를 확인한다. 한편, 로컬 캐싱 장치(200)는 중앙 제어 장치(100)를 통해서 콘텐트 서버(10)로부터 클라이언트(20)로 전송되는 콘텐트 패킷을 수신하는데 있어서, 중앙 제어 장치(100)로부터 콘텐트 패킷을 직접 수신할 수 도 있으며, 이외에 클라이언트(20)를 목적지로 전송되는 콘텐트 패킷을 미러링 방식을 통해 수신할 수 도 있다. 여기서, 콘텐트 패킷의 중복 여부 확인은 플로우 단위 및 청크 단위로 이루어진다. 즉, 제어부(220)는 콘텐트 패킷의 페이로드를 버퍼링하여 버퍼링된 페이로드를 청크 단위로 분할하면, 분할된 청크의 중복 여부(저장된 청크 중 동일한 청크가 존재하는 지 여부)를 확인하여 중복되지 않은 청크를 로컬 캐시(231)에 저장한다. 또한, 제어부(220)는 중앙 제어 장치(100)로부터 청크 식별자를 수신하면, 콘텐트 서버(10)를 대신하여, 로컬 캐시(231)에 저장되어 있는 콘텐트 패킷의 해당 청크를 클라이언트(20)로 제공한다. 이때, 상기 전송되는 청크는 콘텐트 서버(10)가 클라이언트(20)로 전송하는 패킷으로 구성되어 전송될 수 있다.
플로우 관리부(221)는 중앙 제어 장치(100)로부터 통신부(210)를 통해 수신된 콘텐트 패킷을 플로우 단위로 식별하고, 식별된 플로우의 정보를 플로우 관리 데이터베이스(132)에 저장한다.
또한, 플로우 관리부(221)는 중앙 제어 장치(100)로부터 통신부(210)를 통해 수신되는 콘텐트 패킷의 청크 중복 확인을 수행한다. 구체적으로, 플로우 관리부(221)는 콘텐트 패킷에 대한 식별된 플로우가 중복 제거 대상 플로우인지를 확인하여 중복 제거 대상 플로우가 아니면, 수신된 콘텐트 패킷에 대한 플로우의 버퍼링된 페이로드를 분할한 청크들을 로컬 캐시(231)에 저장하고, 다음 전송되는 콘텐트 패킷에 대한 중복 검사를 실시한다. 플로우 관리부(221)는 식별된 플로우가 중복 제거 대상 플로우이면, 페이로드 버퍼링 및 분할부(222)로 식별된 플로우를 전달하고, 중복 제거 프로세스를 진행시킨다. 여기서, 플로우 관리부(221)는 특정 전송 프로토콜(TCP 등), 해당 프로토콜을 통해 전송되는 애플리케이션 프로토콜 타입(FTP, P2P, HTTP 등), 전송 데이터의 종류(이미지/동영상 등의 미디어 콘텐트, 문서 파일, 바이너리 파일, 업데이트 파일 등)를 고려하여 중복 여부를 결정할 수 있다. 이때, 플로우 관리부(221)는 해당 플로우의 청크가 이미 로컬 캐시(231)에 저장이 되어 있는 경우, 해당 플로우에서 전송되는 나머지 콘텐트의 청크들도 로컬 캐시(231)에 저장이 되어 있을 것으로 가정하여, 중복된 콘텐트의 청크 식별자 및 플로우 정보(플로우의 컨텍스트)를 중앙 제어 장치(100)로 전송하도록 제어 메시지 관리부(225)로 전달한다.
또한, 플로우 관리부(221)는 로컬 캐시(231)에 중앙 제어 장치(100)로부터 제어 메시지 관리부(225)를 통해 수신된 청크 식별자를 청크 중복 관리부(224)로 전달하고, 청크 중복 관리부(224)로부터 청크 식별자의 일치 확인 결과를 수신하여 중앙 제어 장치(100)로 전송할 결과 정보를 생성하고, 생성된 결과 정보를 제어 메시지 관리부(225)로 전달한다. 여기서, 일치 확인 결과, 청크 식별자가 일치하는 경우, 플로우 관리부(221)는 결과 정보를 중앙 제어 장치(100)로 전송하지 않고, 로컬 캐시(231)에 저장되어 있는 청크 식별자에 해당하는 콘텐트 패킷을 클라이언트(20)로 전송하기 위해 통신부(210)로 전달한다. 반면, 청크 식별자가 일치하지 않는 경우, 플로우 관리부(221)는 일치하는 청크 식별자를 저장하고 있지 않다는 결과 정보를 제어 메시지 관리부(225)로 전달하고, 중앙 제어 장치(100)로부터 수신된 청크 식별자에 대한 콘텐트 패킷을 요청하도록 한다.
페이로드 버퍼링 및 분할부(222)는 플로우 관리부(221)로부터 전달된 콘텐트 패킷에 대한 플로우의 페이로드를 버퍼링하고, 버퍼링된 페이로드를 청크로 분할하여 청크 캐싱부(223)로 전달한다. 이러한 페이로드의 청크 분할에 대한 구체적인 방법은 후술하는 방법 설명에서 구체적으로 설명하기로 한다.
청크 캐싱부(223)는 클라이언트(20)로 전송되는 콘텐트 패킷이 콘텐트 서버(10)에서 전송하는 콘텐트와 일치되도록 하기 위해 분할된 청크를 저장부(230)의 로컬 캐시(231)에 저장시킨다.
청크 중복 관리부(224)는 청크 캐싱부(223)에서 분할된 청크가 로컬 캐시(231)에 저장되어 있는지를 관리한다. 구체적으로, 청크 중복 관리부(224)는 분할된 각 청크가 로컬 캐시(231)에 기 저장되어 있는지를 확인하여 저장되어 있는 중복 청크가 존재하면 중복 청크에 대한 정보를 플로우 관리부(221)로 전송한다. 또한, 청크 중복 관리부(224)는 중앙 제어 장치(100)에서 수신한 청크 식별자가 로컬 캐시(231)에 저장되어 있는지를 확인하여 일치하는 청크 식별자가 저장되어 있는지에 대한 확인 결과를 플로우 관리부(221)로 전송한다.
제어 메시지 관리부(225)는 콘텐트 패킷의 중복 감시를 위해 필요한 정보들을 관리하고, 중앙 제어 장치(100)와 송수신하는 제어 메시지를 관리한다. 구체적으로, 제어 메시지 관리부(225)는 플로우 관리부(221)로부터 수신된 청크 식별자 및 플로우 정보(플로우 컨텍스트)를 제어 메시지에 포함하여 중앙 제어 장치(100)로 통신부(210)를 통해 전송한다. 또한, 제어 메시지 관리부(225)는 중앙 제어 장치(100)로부터 통신부(210)를 통해 중복 콘텐트 패킷에 대한 청크 식별자 및 플로우 정보(플로우 컨텍스트)를 포함하는 제어 메시지를 수신하고, 제어 메시지에 포함된 청크 식별자 및 플로우 정보를 플로우 관리부(221)로 전달한다. 제어 메시지 관리부(226)는 청크 식별자 확인에 대한 결과 정보 즉, 로컬 캐시(231)에 일치하는 청크 식별자가 저장되어 있지 않다는 정보 및 콘텐트 요청에 대한 정보를 포함하는 콘텐트 요청 메시지를 통신부(210)를 통해 중앙 제어 장치(100)로 전송한다.
저장부(230)는 분할된 콘텐트의 청크들을 시스템의 특성(메모리 용량, 서버의 속도, 저장해야 하는 총 청크의 개수 등)을 고려한 데이터베이스의 형태로 청크의 식별자와 함께 로컬 캐시(231)에 저장한다. 또한, 저장부(230)는 플로우 관리 데이터베이스(232)에 클라이언트(20)로 전송되는 콘텐트 패킷들에 대한 플로우 정보 및 중복 제거 대상 플로우 등록 정보 및 관리 정보들을 저장한다.
마지막으로, 로컬 캐시 상태 관리부(240)는 저장부(230)의 로컬 캐시(231)에 대한 상태를 모니터링하고, 모니터링 결과에 따라 유지 관리를 위한 제어를 수행한다.
상술한 바와 같은 중앙 제어 장치(100)의 저장부(130) 및 로컬 캐싱 장치(200)의 저장부(230)는 청크들의 특징에 따라 RAM, 영구적인 저장소, 기타 형태의 다양한 저장소에 청크들을 저장할 수 있으며, 청크의 크기 및 활용 빈도에 따라 저장소를 구성할 수 있다. 또한, 저장부(130 또는 230)는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM, Random Access Memory), 플래시 메모리를 포함한다.
일 예로서, 가장 최근에 참조된 청크는 그 활용 빈도가 높을 것으로 가정하여 빠르게 읽어올 수 있는 RAM에 저장될 것이고, 그 활용빈도가 가장 낮을 것으로 예상되는 청크들은 보조 디스크에 저장될 수 있다. 따라서 첨부된 도 6에 도시된 바와 같은 청크를 관리하기 위한 데이터베이스의 예를 참조하면, 청크의 콘텐트 데이터베이스(디스크(HDD, SDD 등))는 청크 식별자 및 청크 콘텐트를 관리하고, 청크 인덱스 데이터베이스는 빨리 참조 가능한 RAM 메모리를 적용하여 청크 식별자와 해당 청크가 기록되어 있는 디스크 상의 위치를 기록할 수 있다. 또한, 추가적으로 가장 인기 있는 콘텐트들의 경우에는 디스크가 아닌 청크 콘텐트 데이터 베이스(RAM)에 추가적으로 콘텐트를 보관하여 빠른 서비스를 제공할 수 있도록 한다.
또한, 저장부(130 또는 230)의 데이터베이스는 HashTable, BloomFilter등의 데이터 구조들을 활용할 수 있으며, 많은 개수의 청크의 식별 정보를 관리하기 위해 False Positive 민감도 등에 따라 이미 알려진 또는 추후 개발될 다양한 방식의 구조를 사용할 수 있다.
상술한 바와 같은 본 발명의 일 실시 예에서는 로컬 캐싱 장치(200)에서 클라이언트(20)로 전송되는 콘텐트 패킷의 일부를 확인하여 중복 확인을 수행하나, 본 발명의 다른 실시 예에서는 중앙 제어 장치(100)가 수신된 콘텐트 패킷을 확인하여 중복 확인을 수행할 수 도 있다. 이러한 본 발명의 다른 실시예에 따른 콘텐트 전송 시스템에서의 중앙 제어 장치 및 로컬 캐싱 장치의 구성을 첨부된 도면들을 참조하여 설명하기로 한다.
도 4는 본 발명의 다른 실시 예에 따른 콘텐트 전송 시스템에서의 중앙 제어 장치의 구성을 나타낸 블록도이다.
도 4를 참조하면, 본 발명의 다른 실시 예에 따른 중앙 제어 장치(300)는 통신부(310), 제어부(320), 임시 로컬 캐시(331) 및 플로우 관리 데이터베이스(332)를 포함하는 저장부(330) 및 로컬 캐시 상태 관리부(340)로 구성될 수 있으며, 콘텐트 서버(10)로부터 수신된 콘텐트 패킷을 로컬 캐싱 장치(400)로 전송 시 중복 감시를 통해 콘텐트 패킷을 확인하여 청크 중복 여부를 확인한다.
이러한 중앙 제어 장치(300)의 통신부(310), 저장부(330) 및 로컬 캐시 상태 관리부(340)의 구체적인 설명은 본 발명의 일 실시 예에 따른 중앙 제어 장치(100)의 통신부(110), 저장부(130) 및 로컬 캐시 상태 관리부(140)와 각각 동일하므로 설명의 편의를 위해 생략하기로 한다.
단, 제어부(320)는 플로우 관리부(321), 페이로드 버퍼링 및 분할부(322), 청크 중복 관리부(323) 및 제어 메시지 관리부(324)를 포함하여 구성될 수 있다.
제어부(320)는 통신부(310)를 통해 콘텐트 서버(10)로부터 수신된 콘텐트 패킷을 로컬 캐싱 장치(400)로 전송 시 콘텐트 패킷의 일부분을 확인하여 중복 여부를 판단한다. 여기서 콘텐트 패킷은 플로우 단위로 식별되고, 버퍼링된 플로우를 확인하여 중복 여부를 판단한다. 이때, 콘텐트 패킷이 중복 제거 대상 플로우가 아닌 경우, 제어부(320)는 버퍼링된 플로우의 페이로드를 분할한 청크들을 저장하고, 그대로 해당 콘텐트 패킷을 로컬 캐싱 장치(400)로 전송한다. 반면, 중복 제거 대상 플로우인 경우, 제어부(320)는 중복된 해당 콘텐트 패킷을 전송하지 않고, 중복 콘텐트 패킷에 대한 청크 식별자 및 플로우 정보(플로우 컨텍스트)를 로컬 캐싱 장치(400)로 전송한다. 이후, 계속해서 동일한 콘텐트의 콘텐트 패킷이 수신되면, 제어부(320)는 수신된 콘텐트 패킷의 플로우의 페이로드를 버퍼링하여 버퍼링된 페이로드를 청크 단위로 분할하고, 분할된 청크를청크 식별자 함께 임시 저장하고, 로컬 캐싱 장치(400)로는 중복된 콘텐트 패킷을 전송하지 않고, 청크 식별자 및 플로우 정보만을 전송한다.
플로우 관리부(321) 및 페이로드 버퍼링 및 분할부(322)는 본 발명의 일 실시 예에 따른 중앙 제어 장치(100)의 플로우 관리부(121) 및 페이로드 버퍼링 및 분할부(122)와 동일하므로 설명의 편의를 위해 설명을 생략하기로 한다. 다만, 플로우 관리부(321)는 중앙 제어 장치(300)에서 청크 중복 확인을 수행하므로 청크 중복 확인에 따른 플로우 관리를 수행하며, 페이로드 버퍼링 및 분할부(322)는 분할된 청크에 대한 청크 식별자를 생성하여 생성된 청크 식별자를 플로우 관리부(321)로 전달한다.
청크 중복 관리부(323)는 현재 수신되어 클라이언트(20)측으로 전송될 해당 청크가 임시 로컬 캐시(331)에 저장되어 있는지를 관리하는 것으로서, 플로우 관리부(321)로부터 전달받은 분할된 청크에 대한 청크 식별자를 이용하여 분할된 청크가 미리 저장되어 있는지를 확인하여 미리 저장되어 있는 중복 청크가 존재하면, 중복 청크에 대한 정보를 플로우 관리부(321)로 전송한다. 또한, 청크 중복 관리부(323)는 플로우 관리부(321)로부터 계속해서 수신된 동일한 콘텐트 패킷의 청크가 전달되면, 해당 청크에 대한 청크 식별자가 로컬 캐시(331)에 저장되어 있는지를 확인하여 일치하는 청크 식별자가 저장되어 있는지에 대한 확인 결과를 플로우 관리부(221)로 전송한다.
제어 메시지 관리부(324)는 콘텐트 패킷의 중복 감시를 위해 필요한 정보들을 관리하고, 로컬 캐싱 장치(400)와 송수신하는 제어 메시지를 관리하며, 로컬 캐싱 장치(400)로 청크 식별자를 전송함으로써 로컬 캐싱 장치(400)에서 청크 식별자의 일치 여부를 확인하도록 한다. 구체적으로, 제어 메시지 관리부(324)는 플로우 관리부(321)로부터 수신된 중복 콘텐트 패킷에 대한 청크 식별자 및 플로우 정보(플로우 컨텍스트)를 제어 메시지에 포함하여 로컬 캐싱 장치(400)로 통신부(310)를 통해 전송한다. 또한, 제어 메시지 관리부(324)는 로컬 캐싱 장치(400)로부터 청크 식별자 일치 확인에 대한 결과 정보(일치하는 청크 식별자가 없음) 및 콘텐트 패킷 요청 정보를 포함하는 콘텐트 패킷 요청 메시지를 수신하여 결과 정보 및 콘텐트 패킷 요청 정보를 플로우 관리부(321)로 전달한다.
다음으로, 도 5는 본 발명의 다른 실시 예에 따른 콘텐트 전송 시스템에서의 로컬 캐싱 장치의 구성을 나타낸 블록도이다.
도 5를 참조하면, 본 발명의 다른 실시 예에 따른 로컬 캐싱 장치(400)는 통신부(410), 제어부(420), 로컬 캐시(431) 및 플로우 관리 데이터베이스(432)를 포함하는 저장부(430) 및 로컬 캐시 상태 관리부(440)로 구성될 수 있다. 로컬 캐싱 장치(400)는 중앙 제어 장치(300)로부터 수신된 콘텐트 패킷을 클라이언트(20)로 전송하고, 중앙 제어 장치(300)에서의 중복 확인에 따라 전송된 청크 식별자를 이용하여 자신이 저장하고 있는 해당 콘텐트 패킷을 클라이언트(20)로 전달한다.
이러한 로컬 캐싱 장치(400)의 통신부(410), 저장부(430) 및 로컬 캐시 상태 관리부(440)의 구체적인 구성 설명은 본 발명의 일 실시 예에 따른 로컬 캐싱 장치(200)의 통신부(210), 저장부(230) 및 로컬 캐시 상태 관리부(240)와 동일하므로 설명의 편의를 위해 생략하기로 한다.
단, 제어부(420)는 플로우 관리부(421), 페이로드 버퍼링 및 분할부(422), 청크 캐싱부(423) 및 제어 메시지 관리부(424)를 포함하여 구성될 수 있다.
제어부(420)는 통신부(410)를 통해 중앙 제어 장치(300)로부터 수신된 콘텐트 패킷을 클라이언트(20)로 전송하고, 중앙 제어 장치(300)로부터 중복 확인에 따른 청크 식별자 및 플로우 정보(플로우 컨텍스트)를 수신하면, 수신된 플로우 정보를 저장부(430)에 등록하고, 중앙 제어 장치(300)로부터 수신한 청크 식별자와 일치하는 청크 식별자가 저장되어 있으면, 저장부(430)의 로컬 캐시(431)에 저장되어 있는 청크 식별자에 해당하는 콘텐트 패킷을 클라이언트(20)로 전송한다.
페이로드 버퍼링 및 분할부(422), 청크 캐싱부(423) 및 제어 메시지 관리부(424)는 본 발명의 일 실시 예에 따른 페이로드 버퍼링 및 분할부(222), 청크 캐싱부(223) 및 제어 메시지 관리부(225)와 동일하므로 구체적인 설명은 생략하기로 한다.
단, 플로우 관리부(421)는 중앙 제어 장치(100)로부터 통신부(410)를 통해 수신된 콘텐트 패킷을 플로우 단위로 식별하고, 식별된 플로우의 페이로드를 버퍼링하고, 버퍼링된 플로우르 청크 단위로 분할하여 분할된 청크를 로컬 캐시(431)에 청크 식별자와 함께 저장하고, 수신된 콘텐트 패킷 또는 저장된 청크 식별자에 해당하는 콘텐트 패킷을 통신부(410)를 통해 클라이언트(20)로 전달한다.
또한, 플로우 관리부(421)는 중앙 제어 장치(100)에서 중복 확인된 청크 식별자 및 플로우 정보를 수신하면, 수신된 청크 식별자 및 플로우 정보를 저장부(430)에 등록하고, 청크 캐싱부(423)로 수신된 청크 식별자를 전달하고, 청크 캐싱부(423)에서 확인된 청크에 대한 해당 콘텐트 패킷을 클라이언트(20)로 전송하기 위해 통신부(410)로 해당 콘텐트 패킷을 전달한다. 제어 메시지 관리부(424)는 중앙 제어 장치(300)로부터 청크 식별자 및 플로우 정보를 포함한 제어 메시지를 수신하여 청크 식별자 및 플로우 정보를 플로우 관리부(421)로 전달하고, 중앙 제어 장치(300)로부터 계속해서 수신된 동일한 패킷에 대한 청크 식별자 및 플로우 정보를 포함한 제어 메시지를 수신하여 청크 식별자를 플로우 관리부(421)로 전달한다. 또한, 제어 메시지 관리부(424)는 로컬 캐시(431)에 수신된 청크 식별자와 일치하는 청크 식별자가 저장되어 있는지를 확인한 결과 정보(일치하는 결과 정보가 없음)를 플로우 관리부(421)로부터 전달받아 결과 정보 및 콘텐트 패킷 요청 정보를 포함하는 콘텐트 요청 메시지를 중앙 제어 장치(300)로 전송한다.
그러면, 이와 같이 구성된 콘텐트 전송 시스템에서 네트워크 트래픽 최적화 방법에 대해 첨부된 도면들을 참조하여 구체적으로 설명하기로 한다.
우선, 본 발명의 일 실시 예에 따라 중앙 제어 장치(100) 및 로컬 캐싱 장치(200)간의 네트워크 중복 전송 트래픽 최적화를 위한 프로토콜 즉, 메시지 송수신 절차에 대해 설명하기로 한다.
도 7는 본 발명의 실시 예에 따라 콘텐트 전송 시스템에서의 네트워크 중복 전송 트래픽 최적화 방법을 도시한 흐름도이다.
도 7을 참조하면, 1101단계에서 중앙 제어 장치(100)는 콘텐트 서버(10)로부터 콘텐트 패킷을 수신하면, 로컬 캐싱 장치(200)로 수신된 콘텐트 패킷을 전송한다. 이에 따라 로컬 캐싱 장치(200)는 콘텐트 패킷을 클라이언트(20)로 전달한다. 여기서, 상기 콘텐츠 서버(10)로부터 전송되는 콘텐트 패킷은 콘텐츠 서버(10)가 클라이언트(20)로 전송한 콘텐트 패킷으로, 이를 상기 중앙 제어 장치(100) 및 로컬 캐싱 장치(200)가 수신하여 클라이언트(20)로 전달하게 된다. 이때, 상기 중앙 제어 장치(100) 및 로컬 캐싱 장치(200)는 미러링 방식을 통하여 상기 콘텐트 서버(10)로부터 클라이언트(20)로 전송되는 콘텐트 패킷을 수신할 수 있다.
이러한 동작 중에, 1102단계에서 로컬 캐싱 장치(200)는 전송되는 콘텐트 패킷에 대한 청크 중복 확인을 수행한다. 이때, 전송되는 콘텐트 패킷은 플로우 단위로 식별되고, 식별된 플로우의 페이로드를 버퍼링하여 버퍼링된 페이로드를 청크로 분할하고, 청크 식별자를 생성하게 된다. 이에 따라 로컬 캐싱 장치(200)는 생성된 청크 식별자를 이용하여 전송되는 콘텐트 패킷의 중복 여부를 청크 단위로 확인한다.
예를 들어, 로컬 캐싱 장치(200)는 클라이언트(20)로 전송되는 콘텐트 패킷 중 수신된 콘텐트 패킷의 일부를 저장하고 있는 콘텐트 패킷과 비교하여 콘텐트 중복 여부 확인하며, 중복 여부에 따라 중복 제거 프로세스를 수행하게 된다. 다시 말해, 1102단계에서 청크 중복 확인 수행 시, 로컬 캐싱 장치(200)는 각 플로우에 대해 중복 제거 프로세스의 "시작"을 판단하기 위해, 플로우의 처음 n 바이트를 확인하고, 이에 대한 콘텐트 패킷이 자신에게 존재하는 경우 이후에 수신되는 데이터는 중복 제거될 가능성이 크다고 판단하여 중복 제거 프로세스를 시작한다. 이때, 중앙 제어 장치(100)에서의 중복 확인을 위한 시그너처(hash value) 생성은 많은 CPU 부하를 가져오는데, 중복성이 없을 것으로 판단되거나 콘텐트 사이즈가 작은 데이터인 경우 중복 제거에 의한 효과 보다는 시그너처 생성에 사용되는 부하 때문에 성능이 저하될 가능성이 크다. 때문에 1102단계에서 로컬 캐싱 장치(200)는 첫 n바이트(예를 들어, 1K~32K 정도)의 데이터(콘텐트)가 중앙 제어 장치(100)로부터 수신되고, 이를 통해 플로우의 첫 n바이트가 자신에게 존재하는 경우에만 중복 제거 프로세서를 수행하게 된다. 그렇지 않고, 첫 n바이트가 자신에게 존재하지 않으면, 중앙 제어 장치(100)로부터 이어서 수신되는 콘텐트 패킷을 그대로 클라이언트(20)로 전달한다.
수신되는 콘텐트 패킷에서 중복된 청크를 확인한 경우, 1103단계에서 로컬 캐싱 장치(200)는 해당 콘텐트에 대한 청크 식별자 및 플로우 정보(플로우의 컨텍스트)를 포함하는 제어 메시지를 중앙 제어 장치(100)로 전송한다. 이에 따라 중앙 제어 장치(100)는 수신된 제어 메시지에 포함된 청크 식별자 및 플로우 정보(플로우의 컨텍스트)를 플로우 관리 데이터베이스(132)에 등록한다. 여기서, 플로우의 컨텍스트는 플로우 식별 정보로서 예를 들어, source IP, Destination IP, Source Port, Destination Port, Protocol, payload length, Sequence Number, 콘텐트 종류 등을 포함할 수 있다. 만약, 콘텐트 패킷에 대한 청크의 중복이 없으면, 새롭게 전송되는 콘텐트 패킷이므로, 전송되는 콘텐트 패킷의 분할된 청크를 청크 식별자와 함께 로컬 캐시(231)에 저장한다.
그리고, 1104단계에서 로컬 캐싱 장치(200)는 클라이언트(20)로부터 전송된 콘텐트 패킷에 대한 응답 메시지를 수신하면, 1104단계에서 중앙 제어 장치(100)에 그대로 응답 메시지를 전달한다. 이에 따라 1104단계에서 중앙 제어 장치(100)는 수신된 응답 메시지를 그대로 콘텐트 서버(10)로 전달한다.
이후, 1105단계에서 중앙 제어 장치(100)는 콘텐트 서버(10)로부터 계속해서 동일한 콘텐트에 대한 다음 콘텐트 패킷을 수신하면, 수신된 콘텐트 패킷을 플로우 단위로 식별하여 미리 등록된 플로우 정보를 이용하여 중복 제거 대상 플로우인지를 확인한다. 확인 결과, 콘텐트 패킷의 플로우가 중복 제거 대상 플로우이면, 중앙 제어 장치(100)는 중복 제거 대상 플로우의 페이로드를 버퍼링하고, 버퍼링된 페이로드를 청크 단위로 분할하여 임시 로컬 캐시(131)에 청크 식별자와 함께 임시 저장한다.
이후, 1106단계에서 중앙 제어 장치(100)는 분할된 청크의 청크 식별자, 예를 들어, 도 8에 도시된 바와 같은 청크 식별자 1(F8K4F)를 제어 메시지(send F8K4F chunk)에 포함하여 로컬 캐싱 장치(200)로 전송한다. 이때, 제어 메시지에는 플로우 정보(플로우 컨텍스트)가 함께 포함되어 전송된다.
1107단계에서 로컬 캐싱 장치(200)는 제어 메시지를 수신함에 따라 제어 메시지에 포함된 청크의 식별자가 저장부(230)에 저장되어 있는지를 확인한다. 확인 결과, 수신된 청크 식별자와 일치하는 청크 식별자가 저장되어 있지 않은 경우, 1108단계에서 로컬 캐싱 장치(200)는 확인 결과 정보를 포함하는 콘텐트 패킷 요청 메시지를 중앙 제어 장치(100)로 전송한다. 여기서, 결과 정보에는 청크 식별자를 저장하고 있지 않음을 나타내는 정보만이 포함되므로 해당 콘텐트 패킷을 중앙 제어 장치(100)로 요청하게 된다. 이에 따라 1109단계에서 로컬 캐싱 장치(200)는 중앙 제어 장치(100)로부터 요청한 콘텐트 패킷을 청크 단위로 전달받아 저장부(230)에 저장하고 클라이언트(20)로 전송한다.
1107단계에서 확인한 결과, 로컬 캐싱 장치(200)는 수신된 청크 식별자와 일치하는 청크 식별자가 저장되어 있으면, 1110단계에서 로컬 캐싱 장치(200)는 청크 식별자에 해당하는 콘텐트 패킷을 저장부(230)로부터 읽어와 프로토콜 프락시를 이용하여 해당 콘텐트 패킷을 클라이언트(20)로 전송한다.
이후 1111단계에서 로컬 캐싱 장치(200)는 클라이언트(20)로부터 콘텐트 패킷 전송에 따른 응답 메시지를 수신하여, 수신된 응답 메시지를 중앙 제어 장치(100)를 거쳐 콘텐트 서버(10)로 전송한다.
이러한 과정을 통해 제공되는 콘텐트의 전송이 모두 완료되면, 1120단계에서 중앙 제어 장치(100) 및 로컬 캐싱 장치(200)는 해당 플로우에 대한 제어 메시지 종료 프로세스를 수행하며, 중앙 제어 장치(100)는 프로토콜 프락시를 통해 콘텐트 서버(10)와 전송 프로토콜 종료 프로세스를 수행하고, 로컬 캐싱 장치(200)는 프로토콜 프락시를 통해 클라이언트(20)와 전송 프로토콜 종료 프로세스를 수행한다.
이와 같은 프로토콜 절차에서 콘텐트 서버(10)와 중앙 제어 장치(100) 및 클라이언트(20)와 로컬 캐싱 장치(200)는 예를 들어, TCP 연결을 통해 콘텐트 패킷을 송수신할 수 있다.
도 8은 본 발명의 일 실시 예에 따라 콘텐트 전송 시스템에서의 TCP 방식의 중복 제거 프로세스 수행에 대한 일 예를 도시한 흐름도이다.
도 8에서, 콘텐트 서버 A(10)와 중앙 제어 장치(100) 및 로컬 캐싱 장치(200)와 목적지 클라이언트 D(20)는 TCP를 통해 연결되며, 이에 따라 중앙 제어 장치(100)와 로컬 캐싱 장치(200)는 중복 제거 제어 메시지를 송수신하게 된다.
도 8을 참조하면, 1201단계에서 중앙 제어 장치(100)는 콘텐트 서버 A(10)로부터 목적지 클라이언트 D(20)로 전송할 제1 콘텐트 패킷 메시지(src: A, dst: D, DataContents 1, len 1024) 및 제2 콘텐트 패킷 메시지(src: A, dst: D, DataContents 2, len 1024)를 수신한다. 이때, 중앙 제어 장치(100)는 수신된 콘텐트 패킷들을 플로우 단위로 식별하고, 청크로 분할한다. 이에 따라 1202단계에서 중앙 제어 장치(100)는 분할된 청크, 예를 들어, 청크 1(Data1: 1~1024, Data2: 1025~2048)의 식별자(식별자 아이디: F8K4F)(a)를 플로우 정보와 함께 제어 메시지에 포함하여 로컬 캐싱 장치(200)로 전송한다.
그러면 1203단계에서 로컬 캐싱 장치(200)는 수신된 제어 메시지에 포함된 청크 1의 식별자 정보(식별자 아이디: F8K4F)와 일치하는 식별자 정보가 로컬 캐시(231)의 데이터베이스(b)에 저장되어 있는지를 확인한다. 확인 결과, 청크 식별자가 저장되어 있지 않은 경우, 1204단계에서 로컬 캐싱 장치(200)는 결과 정보(청크 식별자를 저장하고 있지 않음(OK, I don t have F8K4F chunk)를 포함하는 콘텐트 패킷 요청 메시지를 중앙 제어 장치(100)로 전송한다. 1205단계에서 로컬 캐싱 장치(200)는 중앙 제어 장치(100)로부터 해당 콘텐트 패킷을 전달받는다.
1203단계에서 확인한 결과, 청크 식별자가 저장되어 있으면, 1206단계에서 로컬 캐싱 장치(200)는 데이터베이스(b)에 저장된 청크 1의 식별자 정보(식별자 아이디: F8K4F)에 대한 제1 콘텐트 패킷 메시지(src: A, dst: D, DataContents 1, len 1024) 및 제2 콘텐트 패킷 메시지(src: A, dst: D, DataContents 2, len 1024)을 목적지 클라이언트 D(20)로 전송하고, 목적지 클라이언트 D(20)로부터 콘텐트 패킷 전송에 대한 응답 메시지(src: D, dst: A, Ack 1025) 및 응답 메시지(src: D, dst: A, Ack 2049)를 수신하여 중앙 제어 장치(100)를 통해 콘텐트 서버(10)로 전달한다.
또한, 1205단계에서 해당 콘텐트 패킷을 전달받는 경우에도 마찬가지로 전달받은 콘텐트 패킷을 1206단계와 같이 목적지 클라이언트 D(20)로 전송한다.
상술한 바와 같은 콘텐트 중복 전송을 감시하기 위한 프로토콜 수행 절차를 참조하여 중앙 제어 장치(100) 및 로컬 캐싱 장치(200) 각각에서의 네트워크 중복 전송 트래픽 최적화 방법을 도면을 참조하여 구체적으로 설명하기로 한다.
먼저, 중앙 제어 장치(100)에서의 네트워크 중복 전송 트래픽 최적화 방법에 대해 설명하기로 한다.
도 9는 본 발명의 일 실시 예에 따라 중앙 제어 장치에서의 네트워크 트래픽 최적화 방법을 도시한 흐름도이다.
도 9를 참조하면, 1301단계에서 중앙 제어 장치(100)는 콘텐트 서버(10)로부터 콘텐트 패킷을 수신한다. 이때, 중앙 제어 장치(100)는 수신된 콘텐트 패킷을 플로우 단위로 식별하고, 식별된 플로우의 페이로드를 버퍼링한다. 그리고, 1302단계에서, 중앙 제어 장치(100)는 로컬 캐싱 장치(200)로부터 청크 식별자를 수신하였는지를 확인한다. 확인 결과, 청크 식별자를 수신하지 않은 경우 또는 등록된 청크 식별자가 없는 경우, 1303단계에서 중앙 제어 장치(100)는 버퍼링되어 있는 플로우의 콘텐트 패킷을 그대로 로컬 캐싱 장치(200)로 전달한다. 이어서, 1304단계에서 중앙 제어 장치(100)는 로컬 캐싱 장치(200)로부터 응답 메시지를 수신하고, 1305단계에서 수신된 응답 메시지를 콘텐트 서버(10)로 전달한다.
반면, 청크 식별자가 수신된 경우, 1306단계에서 중앙 제어 장치(100)는 수신된 청크 식별자와 함께 수신된 플로우 정보를 중복 제거 대상으로 저장부(230)에 등록한다. 이때, 중앙 제어 장치(100)는 버퍼링된 페이로드를 청크 단위로 분할한 청크들을 청크 식별자와 함께 로컬 캐시(131)에 임시 저장한다.
이후, 1307단계에서 중앙 제어 장치(100)는 계속해서 동일한 콘텐트에 대한 콘텐트 패킷을 수신하고, 상술한 도 8의 일 예와 같이, 수신된 콘텐트 패킷에 대한 중복 제거 프로세스를 수행한다. 구체적으로, 1308단계에서 중앙 제어 장치(100)는 수신된 콘텐트 패킷을 플로우 단위로 식별하고, 식별된 플로우의 페이로드를 버퍼링하고, 1309단계에서 버퍼링된 페이로드를 청크 단위로 분할하여 분할된 청크를 임시 로컬 캐시(131)에 청크 식별자와 함께 임시 저장한다. 그런 다음 1310단계에서 중앙 제어 장치(100)는 수신된 콘텐트 패킷에 대한 청크 식별자 및 플로우 정보를 포함하는 제어 메시지를 로컬 캐싱 장치(200)로 전송한다. 이에 따라 로컬 캐싱 장치(200)에서는 청크 식별자를 이용하여 청크의 일치 확인하고, 확인 결과에 따라 결과 정보를 포함하는 콘텐트 패킷 요청 메시지를 전송한다.
이에 따라 1311단계에서 중앙 제어 장치(100)는 로컬 캐싱 장치(200)로부터 콘텐트 패킷 요청이 있는지를 확인한다. 확인 결과, 콘텐트 패킷 요청이 없는 경우에는 1313단계로 진행되며, 콘텐트 패킷 요청이 있는 경우, 1312단계에서 중앙 제어 장치(100)는 요청한 콘텐트 패킷을 로컬 캐싱 장치(200)로 전달한다.
이후, 1313단계에서 중앙 제어 장치(100)는 로컬 캐싱 장치(200)로부터 전송된 콘텐트 패킷에 대한 응답 메시지를 수신하고, 1314단계에서 수신한 응답 메시지를 콘텐트 서버(10)로 전달한다.
1315단계에서 중앙 제어 장치(100)는 종료 프로세스 수행 여부를 확인하여 종료 프로세스를 수행하지 않을 경우에는 1301단계로 되돌아가서 이후 단계들을 수행하고, 종료 프로세스를 수행할 경우, 중앙 제어 장치(100)는 콘텐트 서버(10)와 종료 프로토콜 절차를 수행하고, 로컬 캐싱 장치(200)와 제어 메시지 종료 프로세스를 수행한다.
다음으로, 로컬 캐싱 장치(200)에서의 네트워크 트래픽 최적화 방법에 대해 설명하기로 한다.
도 10은 본 발명의 일 실시 예에 따라 로컬 캐싱 장치(200)에서의 네트워크 중복 전송 트래픽 최적화 방법을 도시한 흐름도이다.
도 10을 참조하면, 1401단계에서 로컬 캐싱 장치(200)는 콘텐트 서버(10)로부터 제공되는 콘텐트 패킷을 중앙 제어 장치(100)를 거쳐 수신한다.
이후, 로컬 캐싱 장치(20)는 콘텐트 중복 감시를 위해 중복 제거 프로세스를 수행하게 된다.
이에 따라 1402단계에서 로컬 캐싱 장치(200)는 수신되는 콘텐트 패킷을 플로우 단위로 식별하고 식별된 플로우를 필터링한다. 여기서 플로우의 필터링은 중복 제거를 원하지 않는 플로우로서, 예를 들어, 암호화가 되었거나, 중복 제거 가능성이 많지 않은 플로우에 대해서는 추후 프로세싱을 따로 하지 않고 클라이언트(20)로 바로 전송하기 위해 수행된다.
1403단계에서 로컬 캐싱 장치(200)는 식별된 플로우의 페이로드를 버퍼링하고, 버퍼링된 페이로드를 청크 단위로 분할하고, 1404단계에서 청크 식별 정보를 생성한다.
1405단계에서 로컬 캐싱 장치(200)는 생성된 청크 식별 정보를 로컬 캐시(231)에 저장된 청크의 식별 정보와 비교함으로써, 중복 여부를 확인한다. 이러한 중복 확인 과정은 첨부된 도 14a 내지 도 14c를 참조하여 설명한다.
구체적으로, 도 14a에 도시된 바와 같이, 로컬 캐싱 장치(200)는 분할된 청크 1(예를 들어, SHA1(C1) = e72b1cd7 d7b8ca00 dea00a72 743f2dc0 fa985b62)를 해쉬 변환 값(hi(c1) = 728279 576000 26 994752 54768)로 변환하고, 변환 값을 로컬 캐시(231)의 청크 인덱스 데이터베이스의 인덱스 및 비트 필드에 추가한다.
이와 같이, 로컬 캐시(231)에는 청크 인덱스 데이터베이스에 청크를 식별할 수 있는 인덱스가 저장되어 있으며, 이러한 인덱스의 비트 필드 값에 따라 중복 여부를 판단할 수 있다. 예를 들어 도 14b에 도시된 바와 같이, 청크의 변환값에 대한 비트 필드 값이 모두 참( 1 )이므로 AND 연산한 결과는 참으로서, 중복된 청크가 존재하는 것으로 판단하고, 도 14b에 도시된 바와 같이, 청크의 변환값에 대한 비트 필드 값에 거짓( 0 )이 포함되어 있으며, 따라서 비트 필드 값을 모두 AND 연산한 결과는 거짓으로서, 중복된 청크가 미존재하는 것으로 판단할 수 있다.
따라서 1405단계에서 확인 결과, 분할된 청크가 중복되지 않는 경우 1406단계에서 로컬 캐싱 장치(200)는 로컬 캐시(231)에 분할된 청크를 저장(캐싱)한 후, 1412단계로 진행하여 콘텐트 패킷을 목적지 클라이언트(20)로 전송한다.
한편, 1405단계에서 확인한 결과, 분할된 청크가 중복되는 경우, 1407단계에서 로컬 캐싱 장치(200)는 청크 식별자 및 플로우 정보(플로우 컨텍스트)를 제어 메시지에 포함하여 중앙 제어 장치(100)로 전송한다.
이후 1408단계에서 로컬 캐싱 장치(200)는 중앙 제어 장치(100)로부터 청크 식별 정보를 수신하였는지를 확인하여 수신한 경우, 1409단계에서 로컬 캐싱 장치(200)는 수신된 청크 식별 정보가 로컬 캐시(231)에 미리 저장되어 있는 청크 식별 정보와 일치하는 지를 확인한다. 이는 1405단계에서의 청크 중복 확인과 동일하게 첨부된 도 14b 및 도 14c에 도시된 바와 같은 일 예에 따라 확인할 수 있다.
확인 결과, 청크 식별자가 존재하지 않은 경우, 1410단계에서 로컬 캐싱 장치(200)는 확인된 결과 정보(일치하는 청크 식별자가 저장되어 있지 않음) 및 콘텐트 패킷 요청 정보를 포함하는 콘텐트 패킷 요청 메시지를 중앙 제어 장치(100)로 전송한다. 이에 따라 1411단계에서 로컬 캐싱 장치(200)는 중앙 제어 장치(100)로부터 요청한 콘텐트 패킷을 전달받는다. 반면, 청크 식별자가 존재하는 경우, 1412단계로 진행한다.
그런 다음 1412단계에서 로컬 캐싱 장치(200)는 수신된 청크 식별 정보에 해당하는 청크의 콘텐츠 패킷을 목적지 클라이언트(20)로 전송하고, 1413단계에서 로컬 캐싱 장치(200)는 클라이언트(20)로부터 응답 메시지를 수신한다. 이때, 1414단계에서 로컬 캐싱 장치(200)는 수신된 응답 메시지를 중앙 제어 장치(100)를 거쳐 콘텐트 서버(100)로 전달한다.
1415단계에서 로컬 캐싱 장치(200)는 종료 프로세스 수행 여부를 확인하여 종료 프로세스를 수행하지 않을 경우에는 1408단계로 되돌아가서 이후 단계들을 수행하고, 종료 프로세스를 수행할 경우, 로컬 캐싱 장치(200)는 클라이언트(20)와 종료 프로토콜 절차를 수행하고, 중앙 제어 장치(100)와 제어 메시지 종료 프로세스를 수행한다.
한편, 본 발명의 다른 실시 예에 따른 중앙 제어 장치(300) 및 로컬 캐싱 장치(400)간의 네트워크 트래픽 최적화를 위한 프로토콜 즉, 메시지 송수신 절차에 대해 설명하기로 한다.
도 11는 본 발명의 다른 실시 예에 따라 콘텐트 전송 시스템에서의 네트워크 트래픽 최적화 방법을 도시한 흐름도이다.
도 11를 참조하면, 1501단계에서 중앙 제어 장치(300)는 콘텐트 서버(10)로부터 콘텐트 패킷을 수신한다. 이때, 중앙 제어 장치(300)는 수신된 콘텐트 패킷을 플로우 단위로 식별하고, 식별된 플로우의 버퍼링된 페이로드를 청크로 분할하여 분할된 청크를 생성된 식별자와 함께 로컬 캐시(331)에 저장한다.
이때, 1502단계에서 중앙 제어 장치(300)는 콘텐트 패킷의 청크 중복 여부를 확인한다. 중앙 제어 장치(300)는 도 11에는 도시되지 않았으나, 확인 결과 중복된 콘텐트 패킷이 아니면, 수신된 콘텐트 패킷을 그대로 로컬 캐싱 장치(400)로 전달하고, 전송된 콘텐트 패킷에 대한 응답을 로컬 캐싱 장치(400)를 통해 수신하여 콘텐트 서버(10)로 전달한다. 이때, 로컬 캐싱 장치(400)는 수신된 콘텐트 패킷을 플로우 단위로 식별하고, 식별된 플로우의 버퍼링된 페이로드를 청크로 분할하여 분할된 청크를 생성된 식별자와 함께 로컬 캐시(431)에 저장한다.
반면, 1502단계에서 확인한 결과, 콘텐트 패킷의 청크 중복이 있으면, 1503단계에서 중앙 제어 장치(300)는 중복 확인된 콘텐트 패킷에 대한 청크 식별자 및 플로우 정보(플로우 컨텍스트)를 제어 메시지에 포함하여 로컬 캐싱 장치(200)로 전달한다. .
이에 따라 1504단계에서 로컬 캐싱 장치(400)는 청크 식별자를 수신하여 자신의 로컬 캐시(431)의 데이터베이스에 수신된 청크 식별자가 저장되어 있는지를 확인한다. 확인 결과, 수신된 청크 식별자가 저장되어 있지 않으면, 1505단계에서 로컬 캐싱 장치(400)는 청크 식별자가 저장되어 있지 않음을 알리는 결과 정보와 함께 콘텐트 패킷 요청 정보를 포함하는 콘텐트 패킷 요청 메시지를 중앙 제어 장치(300)로 전송하고, 1506단계에서 로컬 캐싱 장치(400)는 중앙 제어 장치(300)로부터 요청한 콘텐트 패킷을 전달받는다. 상기 전달받은 콘텐트 패킷은 로컬 캐싱 장치(400)의 로컬 캐시(431)에 저장된다.
상술한 과정에 의해, 청크 식별자가 저장되어 있으면, 1507단계에서 로컬 캐싱 장치(400)는 청크 식별자에 해당하는 콘텐트 패킷을 로컬 캐시(431)로부터 추출하여 클라이언트(20)로 전송한다.
이후, 1508단계에서 로컬 캐싱 장치(400)는 클라이언트(20)로부터 콘텐트 패킷 수신에 대한 응답 메시지를 수신하고, 수신된 응답 메시지를 중앙 제어 장치(300)를 거쳐 콘텐트 서버(10)로 전송한다.
이러한 과정을 통해 제공되는 콘텐트의 전송이 모두 완료되면, 1520단계에서 중앙 제어 장치(300) 및 로컬 캐싱 장치(400)는 해당 플로우에 대한 제어 메시지 종료 프로세스를 수행하며, 중앙 제어 장치(300)는 프로토콜 프락시를 통해 콘텐트 서버(10)와 전송 프로토콜 종료 프로세스를 수행하고, 로컬 캐싱 장치(400)는 프로토콜 프락시를 통해 클라이언트(20)와 전송 프로토콜 종료 프로세스를 수행한다.
상술한 바와 같은 본 발명의 다른 실시 예에 따른 콘텐트 중복 전송을 감시하기 위한 프로토콜 수행 절차를 참조하여 중앙 제어 장치(100) 및 로컬 캐싱 장치(200) 각각에서의 네트워크 트래픽 최적화 방법을 도면을 참조하여 구체적으로 설명하기로 한다.
도 12는 본 발명의 다른 실시 예에 따라 중앙 제어 장치에서의 네트워크 트래픽 최적화 방법을 도시한 흐름도이다.
1601단계에서 중앙 제어 장치(300)는 콘텐트 서버(10)로부터 콘텐트 패킷을 수신한다. 이때, 중앙 제어 장치(300)는 수신된 콘텐트 패킷을 플로우 단위로 식별하고, 식별된 플로우의 페이로드를 버퍼링하여 청크 단위로 분할하여 분할된 청크를 로컬 캐시에 청크 식별자와 함께 저장한다.
이에 따라 1602단계에서 중앙 제어 장치(300)는 수신된 콘텐트 패킷의 중복 여부 즉, 청크 중복 확인을 수행한다.
확인 결과, 콘텐트 패킷의 중복으로 확인되지 않은 경우에는 1603단계에서 중앙 제어 장치(300)는 수신된 콘텐트 패킷을 로컬 캐싱 장치(400)로 전송하고, 1604단계 및 1605단계에서 전송한 콘텐트 패킷에 대한 응답 메시지를 로컬 캐싱 장치(400)로부터 수신하여 콘텐트 서버(10)로 전달한다.
반면, 1602단계에서 확인한 결과, 콘텐트 패킷이 중복으로 확인된 경우에는 1606단계에서 중앙 제어 장치(300)는 중복 콘텐트 패킷에 대한 청크 식별자 및 플로우 정보를 로컬 캐싱 장치(400)로 전송한다.
이후, 1607단계에서 중앙 제어 장치(300)는 계속해서 동일 콘텐트에 대한 콘텐트 패킷을 수신하면, 1608단계에서 중앙 제어 장치(300)는 수신된 콘텐트 패킷을 플로우 단위로 식별하여 식별된 플로우의 페이로드를 버퍼링하고, 버퍼링된 페이로드를 청크 단위로 분할한다. 1609단계에서 중앙 제어 장치(300)는 분할된 청크들에 대한 청크 식별자를 생성하여 생성된 청크 식별자와 함께 분할된 청크들을 임시 로컬 캐시(331)의 해당 데이터베이스에 저장한다.
그런 다음 1610단계에서 중앙 제어 장치(300)는 청크 식별자 및 플로우 정보를 제어 메시지에 포함하여 로컬 캐싱 장치(400)로 전송한다. 이후, 1611단계에서 중앙 제어 장치(300)는 로컬 캐싱 장치(400)로부터 청크 식별자에 대한 일치 확인에 따른 결과 정보(청크 식별자가 저장되어 있지 않음)를 포함하는 콘텐트 패킷 요청 메시지를 수신하였는지를 확인하다.
확인 결과, 콘텐트 패킷 요청 없는 경우에는 1613단계로 진행되고, 콘텐트 패킷 요청이 있으면, 1612단계에서 중앙 제어 장치(300)는 요청된 콘텐트 패킷을 로컬 캐싱 장치(400)로 전송한다.
그리고, 1613단계에서 중앙 제어 장치(300)는 클라이언트(20)로 전송된 콘텐트 패킷에 대한 응답 메시지를 로컬 캐싱 장치(400)로부터 수신하고, 1614단계에서 수신한 응답 메시지를 콘텐트 서버(10)로 전달한다.
1615단계에서 중앙 제어 장치(300)는 종료 프로세스를 수행할지를 확인하여 종료 프로세스를 수행하거나, 1601단계로 진행하여 상술한 바와 같은 과정을 반복 수행한다.
다음으로, 로컬 캐싱 장치(400)에서의 네트워크 트래픽 최적화 방법에 대해 설명하기로 한다.
도 13은 본 발명의 다른 실시 예에 따라 로컬 캐싱 장치에서의 네트워크 중복 전송 트래픽 최적화 방법을 도시한 흐름도이다.
본 발명의 다른 실시 예에 있어서, 콘텐트 서버(10)에서 제공되는 콘텐트 패킷들은 클라이언트(20)로 전송되기 전 중앙 제어 장치(300)에서 중복을 확인 받는다. 이때, 중복으로 확인된 콘텐트 패킷은 도 13에 도시된 바와 같은 과정을 통해 클라이언트(20)로 제공되며, 중복으로 확인되지 않은 패킷은 중앙 제어 장치(300)에서 로컬 캐싱 장치(400)로 그대로 전송되어 클라이언트(20)로 제공된다. 이때, 중앙 제어 장치(300) 및 로컬 캐싱 장치(400)는 수신된 콘텐트 패킷을 플로우 단위로 식별하여 식별된 플로우 페이로드를 버퍼링하고, 버퍼링된 페이로드를 청크로 분할하여 분할된 청크들을 청크 식별자와 함께 저장한다.
도 13을 참조하면, 1701단계에서 로컬 캐싱 장치(400)는 중앙 제어 장치(300)로부터 청크 식별자를 수신하였는지를 확인한다. 확인 결과, 청크 식별자가 수신되지 않은 경우, 계속해서 청크 식별자 수신을 대기하며, 청크 식별자와 함께 플로우 정보를 포함한 제어 메시지를 수신한 경우, 1702단계에서 로컬 캐싱 장치(400)는 수신된 청크 식별자와 플로우 정보(플로우 컨텍스트)를 저장부(430)에 등록한다.
1703단계에서 로컬 캐싱 장치(400)는 수신된 청크 식별자가 기 저장된 청크 식별자와 일치하는 지를 확인한다. 즉, 수신된 청크 식별자가 저장되어 있는 지를 확인한다. 확인 결과, 청크 식별자가 일치하는 청크 식별자가 저장되어 있지 않으면, 1704단계에서 로컬 캐싱 장치(400)는 중앙 제어 장치(300)로 해당 콘텐트 패킷을 요청한다. 이때, 로컬 캐싱 장치(400)는 결과 정보(청크 식별자가 저장되어 있지 않음)와 함께 해당 콘텐트 패킷 요청 정보를 포함한 콘텐트 패킷 요청 메시지를 중앙 제어 장치(300)로 전송하게 된다. 이에 따라 1705단계에서 로컬 캐싱 장치(400)는 중앙 제어 장치(300)로부터 요청한 콘텐트 패킷을 수신하고, 1706단계에서 수신된 콘텐트 패킷을 클라이언트로 전달한다. 이때, 전달된 콘텐트 패킷은 중복되지 않은 콘텐트 패킷으로서, 수신된 콘텐트 패킷에 대한 분할된 청크들을 식별정보와 함께 저장한다.
반면, 1703단계에서 확인한 결과, 수신된 청크 식별자와 일치하는 청크 식별자가 저장되어 있는 경우, 1706단계에서 로컬 캐싱 장치(400)는 저장되어 있는 청크 식별자에 해당하는 콘텐트 패킷을 클라이언트(20)로 전송한다.
1707단계에서 로컬 캐싱 장치(400)는 클라이언트(20)로부터 전송한 콘텐트 패킷에 대한 응답 메시지를 수신하고, 1708단계에서 수신한 응답 메시지를 중앙 제어 장치(300)를 통해 콘텐트 서버(10)로 전달한다.
이후, 1709단계에서 로컬 캐싱 장치(400)는 종료 프로세스 수행 여부를 확인하여 종료 프로세스를 수행하는 경우에는 중앙 제어 장치(300)와의 프로세스를 종료하고, 그렇지 않은 경우에는 1701단계로 진행된다.
상술한 바와 같은 본 발명의 실시 예들에 따른 네트워크 트래픽 최적화 방법들에서 중복 제거 프로세스에 대해 구체적으로 설명하기로 한다. 본 발명의 실시 예에서는 중복 제거 프로세스를 청크 분할 방법에 따라 두 가지 실시 예로 구분하여 설명하기로 한다. 허나, 본 발명은 이러한 실시 예 이외에도 다양한 청크 분할 방법을 적용하여 중복 제거 프로세스를 실행할 수 있다.
먼저, 버퍼링된 페이로드를 고정된 사이즈의 청크로 분할하기 위한 과정에 대해 첨부된 도 15a 내지 도 15b를 참조하여 구체적으로 설명하면 다음과 같다. 이러한 중복 제거 프로세스는 중앙 제어 장치(100) 및 로컬 캐싱 장치(200) 모두에서 수행될 수 있다. 본 발명의 실시 예에서는 로컬 캐싱 장치(200)를 예를 들어 설명하기로 하며, 중앙 제어 장치(100)에서도 동일한 과정으로 수행될 수 있다.
도 15a 및 도 15b를 참조하면, 로컬 캐싱 장치(200)는 콘텐트 패킷을 수신하면, 콘텐트 패킷을 플로우 단위로 식별하는데, 이때, 전달되는 콘텐트 패킷들은 전달되는 동안 순서가 바뀌게 되므로 로컬 캐싱 장치(200)는 플로우를 버퍼링한다. 구체적으로, 로컬 캐싱 장치(200)는 도 15a의 (a)와 같이, 콘텐트 패킷들의 페이로드를 재 정렬하고, 도 15a의 (b)와 같이, 불필요한 IP, TCP 헤더를 제거하여 콘텐트만 병합한다. 그런 다음 로컬 캐싱 장치(200)는, 도 15a의 (c)와 같이, 병합된 콘텐트에서 무의미한 콘텐트의 메타데이터 또는 애플리케이션 프로토콜에서 사용하기 위한 콘트롤 메시지들을 제거하고, 유의미한 콘텐트들만을 남긴다. 또는 이러한 불필요한 메시지들은 병합을 하기 이전 단계에서 제거될 수도 있다. 이러한 메타데이터들의 종류는 애플리케이션 프로토콜마다 다양하다. HTTP를 통해 전달되는 비디오 콘텐트의 경우, 클라이언트들의 고유 데이터가 포함될 수 있는 HTTP 헤더를 제거해야 하며, P2P의 경우 P2P 애플리케이션에서 사용되는 컨트롤 메시지들 또한 캐싱의 대상에서 제외할 수 있다.
이렇게 충분한 데이터가 병합되어 버퍼링 되어 있으면, 로컬 캐싱 장치(200)는 도 15b의 (d)와 같이, 버퍼링된 콘텐트를 유의미한 단위의 청크로 재분할하고, 도 15b의 (e)와 같이 각각의 청크들을 자신의 고유 식별자와 함께 데이터 베이스에 저장한다. 여기서, 고유 식별자를 얻기 위해서는 청크의 페이로드(Payload)에 MD5와 SHA1 등의 알려진 해쉬(Hash) 함수를 사용할 수 있다. 청크의 식별 정보(고유 식별자)는 해당 청크의 콘텐트를 유일하게 식별할 수 있으며, 청크의 내용을 모두 비교하지 않고도 청크의 존재 유무를 확인할 수 있도록 비교에 비용이 많이 들지 않는 짧은 길이로 지정할 수 있다. 예를 들어, MD5, SHA1 등의 알려진 해시 함수를 사용할 수 있다.
이와 같은 실시 예 외에도 컨텐츠를 청크 단위로 분할하는 방법은 청크 방법 및 청크의 크기 또는 콘텐트의 특성에 따라 결정될 수 있다. 예를 들어, 콘텐트의 특성에 따라 유의미한 콘텐트 단위로 나누는 방법, 콘텐트의 내용을 파악하여 중복성을 의미 있게 찾아낼 수 있는 방법으로 알려진 Rabin s fingerprinting 등의 다양한 방법, 또는 기타 방법들을 사용할 수 있다.
예를 들어, 다른 실시 예로서, 첨부된 도 16a 및 도 16b에 도시된 바와 같이, Rabin s fingerprinting 함수를 이용하여 콘텐트의 내용을 파악하여 청크를 분할함으로써, 가변 사이즈의 청크로 분할할 수 있다. 여기서, 도 16b는 Rabin s fingerprinting을 활용한 청킹의 일 예로서, (a)는 원본 데이터이고, (b)는 데이터 앞단에 삽입이 발생한 경우를 나타낸 것이며, (c)는 데이터 뒷단에 삽입이 발생한 경우를 나타낸 것이다.
본 발명에 따른 네트워크 트래픽 최적화 방법은 다양한 컴퓨터 수단을 통하여 판독 가능한 소프트웨어 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM, Random Access Memory), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으나, 여기에 개시된 실시 예외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한, 본 명세서와 도면에서 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다.
본 발명은, 콘텐트 전송 시스템에서의 콘텐트 중복 전송에 따른 네트워크 상의 트래픽 감소를 위한 트래픽 최적화 방법, 중앙 제어 장치 및 로컬 캐싱 장치에 관한 것으로서, 콘텐트 전송 네트워크 상에 콘텐트 중복 전송을 감시하기 위해 콘텐트 서버와 연결되는 중앙 제어 장치 및 클라이언트와 연결되는 로컬 캐싱 장치를 구비함으로써, 간단하게 기존의 시스템 및 프로토콜에 투명하게 적용할 수 있으므로 현실적이고 운용 가능한 콘텐트 전송 시스템을 제공할 수 있는 효과가 있다.
더하여, 본 발명은 중앙 제어 장치에서 콘텐트 서버로부터 클라이언트로 제공되는 콘텐트 패킷의 중복 전송을 감시하여 중복되는 콘텐트 패킷을 전송하지 않고, 로컬 캐싱 장치와 식별 정보만을 송수신하여 콘텐트 일치 여부를 확인함으로써, 네트워크의 특정 구간(예를 들어, 인터넷 망과 집중국 사이)에서 중복되어 전송되는 네트워크 트래픽의 부하를 감소시킬 수 있으며, 이로 인해 망 운용의 편의성을 확보할 수 있으며, 비용 절감의 효과가 있으며, 로컬 캐싱 장치에서 콘텐트 중복을 확인함으로써, 콘텐트의 중복 전송을 감소시킴으로써 클라이언트의 체감 품질 향상시킬 수 있는 효과가 있다.

Claims (14)

  1. 콘텐트 서버로부터 클라이언트로 제공할 콘텐트 패킷을 수신하면, 로컬 캐싱 장치로 상기 수신된 콘텐트 패킷을 전송하면서, 상기 로컬 캐싱 장치에 의해 중복 확인된 콘텐트 패킷의 중복 청크에 대한 청크 식별자 및 플로우 정보를 수신하면, 이를 중복 제거 대상으로 등록하고, 중복 제거 대상으로 등록된 플로우의 콘텐트 패킷에 대하여 청크 식별자 및 플로우 정보만을 상기 로컬 캐싱 장치로 전송하는 중앙 제어 장치; 및
    상기 클라이언트로 제공되는 상기 콘텐트 패킷을 수신하면 상기 콘텐트 패킷에 대한 분할된 청크들을 청크 식별자와 함께 저장하되, 상기 분할된 청크들의 중복을 확인하여 상기 중복 청크에 대한 상기 청크 식별자 및 상기 플로우 정보를 상기 중앙 제어 장치로 전송하고, 상기 중앙 제어 장치로부터 청크 식별자 및 플로우 정보를 수신하면, 수신된 청크 식별자에 해당하는 자신이 저장하고 있는 콘텐트 패킷을 상기 클라이언트로 전송하는 로컬 캐싱 장치;
    를 포함하는 것을 특징으로 하는 콘텐트 전송 시스템.
  2. 콘텐트 서버로부터 클라이언트로 제공할 콘텐트 패킷을 수신하면, 상기 콘텐트 패킷에 대한 분할된 청크들을 청크 식별자와 함께 임시 저장하고, 상기 분할된 청크들의 중복을 확인하여 중복 청크에 대해서는 콘텐트 패킷을 전송하는 대신 청크 식별자 및 플로우 정보를 상기 로컬 캐싱 장치로 전송하는 중앙 제어 장치; 및
    상기 중앙 제어 장치로부터 상기 중복 청크에 대한 청크 식별자 및 플로우 정보를 수신하면, 상기 청크 식별자에 해당하는 자신이 저장하고 있는 콘텐트 패킷을 상기 클라이언트로 전송하는 로컬 캐싱 장치;
    를 포함하는 것을 특징으로 하는 콘텐트 전송 시스템.
  3. 콘텐트 서버 및 로컬 캐싱 장치와 통신을 수행하는 통신부;
    상기 통신부를 통해 콘텐트 서버로부터 클라이언트로 전송될 콘텐트 패킷을 수신하면 상기 콘텐트 패킷을 상기 로컬 캐싱 장치로 전송하되, 상기 로컬 캐싱 장치에 의해 중복 감시된 중복 청크에 대한 청크 식별자 및 플로우 정보를 수신하면, 수신된 상기 청크 식별자 및 상기 플로우 정보를 중복 제거 대상으로 등록하고, 중복 제거 대상 플로우의 다음으로 수신된 콘텐트 패킷에 대하여, 수신된 콘텐트 패킷 대신에 청크 식별자 및 플로우 정보만을 상기 로컬 캐싱 장치로 전송하도록 제어하는 제어부; 및
    상기 분할된 청크들을 청크 식별자와 함께 임시 저장하고, 수신된 상기 청크 식별자 및 상기 플로우 정보를 저장하는 저장부;
    를 포함하는 것을 특징으로 하는 중앙 제어 장치.
  4. 제3항에 있어서, 상기 제어부는,
    상기 수신된 콘텐트 패킷을 플로우 단위로 식별하고, 식별된 플로우의 페이로드를 분할한 상기 분할된 청크들을 임시 저장시키고, 상기 로컬 캐싱 장치로부터 상기 청크 식별자 및 상기 플로우 정보를 수신하면, 수신된 청크 식별자 및 상기 플로우 정보를 등록하고, 로컬 캐싱 장치로 전송하지 않도록 제어하는 플로우 관리부; 및
    상기 식별된 플로우의 페이로드를 버퍼링하고, 버퍼링된 페이로드를 청크로 분할하는 페이로드 버퍼링 및 분할부;
    를 포함하는 것을 특징으로 하는 중앙 제어 장치.
  5. 제4항에 있어서, 상기 제어부는,
    상기 분할된 청크들의 중복을 확인하여, 중복 청크에 대 청크 식별자 및 플로우 정보를 상기 로컬 캐싱 장치로 전송하도록 제어하는 청크 중복 관리부를 더 포함하는 것을 특징으로 하는 중앙 제어 장치.
  6. 클라이언트 및 콘텐트 서버에 연결된 중앙 제어 장치와 통신을 수행하는 통신부;
    상기 통신부를 통해 상기 중앙 제어 장치로부터 콘텐트 패킷을 수신하면 수신된 콘텐트 패킷을 상기 클라이언트로 제공하면서 상기 콘텐트 패킷에 대한 분할된 청크들을 청크 식별자와 함께 저장시키고, 상기 중앙 제어 장치로부터 중복 청크의 청크 식별자 및 플로우 정보를 수신하면, 수신된 상기 청크 식별자에 해당하는 저장되어 있는 콘텐트 패킷을 상기 클라이언트로 전송하도록 제어하는 제어부; 및
    상기 분할된 청크들을 청크 식별자와 함께 저장하는 저장부;
    를 포함하는 것을 특징으로 하는 로컬 캐싱 장치.
  7. 제6항에 있어서, 상기 제어부는,
    상기 수신된 콘텐트 패킷을 플로우 단위로 식별하고, 식별된 플로우에 대해 상기 중앙 제어 장치로부터 청크 식별자가 수신되면, 수신된 청크 식별자에 대응하는 저장되어 있는 콘텐트 패킷을 상기 목적지 클라이언트로 전송하기 위한 제어를 수행하는 플로우 관리부;
    식별된 플로우의 페이로드를 버퍼링하고, 버퍼링된 페이로드를 청크로 분할하는 페이로드 버퍼링 및 청크 분할부; 및
    상기 분할된 청크를 청크 식별자와 함께 상기 저장부에 저장시키는 청크 캐싱부;
    를 포함하는 것을 특징으로 하는 로컬 캐싱 장치.
  8. 제7항에 있어서, 상기 제어부는,
    상기 수신된 콘텐트 패킷에 대한 청크 중복 확인을 수행하여 중복 확인된 중복 청크에 대한 청크 식별자 및 플로우 정보를 상기 플로우 관리부로 전달하고, 상기 수신된 청크 식별자와 일치하는 청크 식별자가 저장되어 있는지를 확인하는 청크 중복 관리부를 더 포함하는 것을 특징으로 하는 로컬 캐싱 장치.
  9. 제8항에 있어서,
    상기 플로우 관리부는, 상기 중복 청크에 대한 청크 식별자 및 플로우 정보를 상기 중앙 제어 장치로 전송하기 위한 제어를 수행하고, 상기 수신된 청크 식별자와 일치하는 청크 식별자가 저장되어 있지 않으면, 상기 중앙 제어 장치로 상기 수신된 청크 식별자에 해당하는 콘텐트 패킷을 요청하고, 요청한 콘텐트 패킷이 수신하여 상기 클라이언트로 제공하기 위한 제어를 수행함을 특징으로 하는 로컬 캐싱 장치.
  10. 콘텐트 패킷을 제공하는 콘텐트 서버와 연결되는 중앙 제어 장치와, 상기 콘텐트 패킷이 제공되는 클라이언트와 연결되는 로컬 캐싱 장치를 포함하는 콘텐트 전송 시스템에서,
    상기 중앙 제어 장치가 상기 콘텐트 서버로부터 수신된 콘텐트 패킷을 상기 로컬 캐싱 장치로 전송하는 단계;
    상기 로컬 캐싱 장치가 수신된 콘텐트 패킷을 클라이언트로 제공하되, 상기 수신된 콘텐트 패킷에 대한 청크 중복을 확인하는 단계;
    상기 로컬 캐싱 장치가 상기 수신된 콘텐트 패킷에 대한 중복된 청크를 확인하면, 중복 청크의 청크 식별자 및 플로우 정보를 상기 중앙 제어 장치로 전송하는 단계;
    상기 중앙 제어 장치가 수신한 상기 중복 청크의 청크 식별자 및 플로우 정보를 중복 제거 대상으로 등록하는 단계;
    상기 중앙 제어 장치가 상기 중복 제거 대상으로 등록된 플로우에 대해 다음으로 수신된 콘텐트 패킷에 대하여, 청크 식별자 및 플로우 정보만을 상기 로컬 캐싱 장치로 전송하는 단계; 및
    상기 로컬 캐싱 장치가 상기 중복 청크의 청크 식별자 및 플로우 정보를 수신하면, 상기 수신된 청크 식별자에 해당하는 저장되어 있는 콘텐트 패킷을 상기 클라이언트로 전송하는 단계;
    를 포함하는 것을 특징으로 하는 네트워크 트래픽 최적화 방법.
  11. 콘텐트 패킷을 제공하는 콘텐트 서버와 연결되는 중앙 제어 장치와, 상기 콘텐트 패킷이 제공되는 클라이언트와 연결되는 로컬 캐싱 장치를 포함하는 콘텐트 전송 시스템에서,
    상기 중앙 제어 장치가 상기 콘텐트 서버로부터 콘텐트 패킷을 수신하면, 수신된 콘텐트 패킷에 대한 청크 중복 확인을 수행하는 단계;
    상기 중앙 제어 장치가 중복 확인된 상기 콘텐트 패킷에 대한 중복 청크의 청크 식별자 및 플로우 정보를 상기 로컬 캐싱 장치로 전송하는 단계; 및
    상기 로컬 캐싱 장치가 상기 중복 청크의 청크 식별자 및 플로우 정보를 수신하면, 상기 수신된 청크 식별자에 해당하는 저장되어 있는 콘텐트 패킷을 상기 목적지 클라이언트로 전송하는 단계;
    를 포함하는 것을 특징으로 하는 네트워크 트래픽 최적화 방법.
  12. 제10항 또는 제11항에 있어서,
    상기 로컬 캐싱 장치가 상기 수신된 청크 식별자에 대응하는 콘텐트 패킷을 저장하고 있지 않은 경우, 상기 수신된 청크 식별자에 해당하는 콘텐트 패킷을 상기 중앙 제어 장치로 요청하는 단계;
    상기 로컬 캐싱 장치가 상기 중앙 제어 장치로부터 요청한 콘텐트 패킷을 전달받는 단계; 및
    상기 로컬 캐싱 장치가 전달받은 콘텐트 패킷을 상기 클라이언트로 전송하는 단계;
    를 더 포함하는 것을 특징으로 하는 네트워크 트래픽 최적화 방법.
  13. 제10항 또는 제11항에 있어서,
    상기 중앙 제어 장치가 상기 수신된 콘텐트 패킷을 플로우 단위로 식별하여 식별된 플로우의 페이로드를 버퍼링하고, 버퍼링된 페이로드를 청크로 분할하는 단계; 및
    분할된 청크를 생성된 청크 식별자와 함께 임시 저장하는 단계;
    를 더 포함하는 것을 특징으로 하는 네트워크 트래픽 최적화 방법.
  14. 제10항 또는 제11항에 있어서,
    상기 로컬 캐싱 장치가 상기 중앙 제어 장치로부터 수신한 콘텐트 패킷을 플로우 단위로 식별하여 식별된 플로우의 페이로드를 버퍼링하고, 버퍼링된 페이로드를 청크로 분할하는 단계; 및
    분할된 청크를 생성된 청크 식별자와 함께 저장하는 단계;
    를 더 포함하는 것을 특징으로 하는 네트워크 트래픽 최적화 방법.
PCT/KR2012/011479 2011-12-26 2012-12-26 콘텐트 전송 시스템, 그 시스템에서의 네트워크 트래픽 최적화 방법, 중앙 제어 장치 및 로컬 캐싱 장치 WO2013100573A1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP12863260.1A EP2800310B1 (en) 2011-12-26 2012-12-26 Content transmitting system, method for optimizing network traffic in the system, central control device and local caching device
JP2014545836A JP5816380B2 (ja) 2011-12-26 2012-12-26 コンテンツ伝送システム、そのシステムでのネットワークトラフィック最適化方法、中央制御装置及びローカルキャッシング装置
CN201280064475.6A CN104025521B (zh) 2011-12-26 2012-12-26 内容传输系统、优化该系统中网络流量的方法、中央控制装置和本地缓存装置
US14/314,547 US9781224B2 (en) 2011-12-26 2014-06-25 Content transmitting system, method for optimizing network traffic in the system, central control device and local caching device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2011-0142828 2011-12-26
KR1020110142828A KR101904482B1 (ko) 2011-12-26 2011-12-26 콘텐트 전송 시스템, 그 시스템에서의 네트워크 중복 전송 트래픽 최적화 방법, 중앙 제어 장치 및 로컬 캐싱 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/314,547 Continuation US9781224B2 (en) 2011-12-26 2014-06-25 Content transmitting system, method for optimizing network traffic in the system, central control device and local caching device

Publications (1)

Publication Number Publication Date
WO2013100573A1 true WO2013100573A1 (ko) 2013-07-04

Family

ID=48697932

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2012/011479 WO2013100573A1 (ko) 2011-12-26 2012-12-26 콘텐트 전송 시스템, 그 시스템에서의 네트워크 트래픽 최적화 방법, 중앙 제어 장치 및 로컬 캐싱 장치

Country Status (6)

Country Link
US (1) US9781224B2 (ko)
EP (1) EP2800310B1 (ko)
JP (1) JP5816380B2 (ko)
KR (1) KR101904482B1 (ko)
CN (1) CN104025521B (ko)
WO (1) WO2013100573A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3133824A4 (en) * 2014-04-18 2017-03-22 SK Telecom Co., Ltd Method for transmitting broadcasting contents in real-time and device for same

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101436049B1 (ko) * 2012-06-01 2014-09-01 에스케이텔레콤 주식회사 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치
KR101330052B1 (ko) * 2012-06-01 2013-11-15 에스케이텔레콤 주식회사 적응형 컨텐츠 전송 방식을 지원하는 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치
US9602208B2 (en) * 2013-07-12 2017-03-21 Broadcom Corporation Content distribution system
KR102148147B1 (ko) * 2013-10-21 2020-08-26 에스케이텔레콤 주식회사 컨텐츠 전송 방법 및 이를 위한 장치
US10511553B2 (en) * 2013-12-30 2019-12-17 International Business Machines Corporation Pass through sharing of resources
WO2015190893A1 (ko) * 2014-06-13 2015-12-17 삼성전자 주식회사 멀티미디어 데이터를 관리하는 방법 및 장치
WO2016141993A1 (en) * 2015-03-12 2016-09-15 Telefonaktiebolaget Lm Ericsson (Publ) Caching secure data
KR102193480B1 (ko) * 2015-06-19 2020-12-21 에스케이텔레콤 주식회사 미디어 콘텐츠 전송 제어를 위한 방법 및 장치
KR101688635B1 (ko) * 2015-07-01 2016-12-21 한국전자통신연구원 플로우 기반 트래픽 저장 장치 및 방법
JP6439874B2 (ja) * 2015-07-31 2018-12-19 富士通株式会社 情報処理装置、情報処理方法、及び、情報処理プログラム
CN105786441B (zh) * 2016-01-29 2019-01-25 腾讯科技(深圳)有限公司 一种音频处理的方法、服务器、用户设备及系统
CN112905575A (zh) * 2020-12-30 2021-06-04 创盛视联数码科技(北京)有限公司 数据采集的方法、系统、存储介质及电子设备
US11606277B2 (en) * 2021-02-10 2023-03-14 Cohesity, Inc. Reducing the impact of network latency during a restore operation
US11971833B2 (en) * 2022-03-31 2024-04-30 Lenovo Global Technology (United States) Inc. Dynamic buffer selection in ethernet controllers
KR20240051780A (ko) 2022-10-13 2024-04-22 숭실대학교산학협력단 정보 중심 네트워크 환경에서 컨텐츠 우선순위를 고려한 컨텐츠 캐싱 최적화 시스템 및 컨텐츠 캐싱 최적화 방법
US11949754B1 (en) 2022-10-13 2024-04-02 Foundation Of Soongsil University-Industry Cooperation Content caching optimization system and method

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040110484A1 (en) * 2002-12-04 2004-06-10 Ntt Docomo, Inc. Relay apparatus, method of controlling content delivery, and content delivery system
US20090113068A1 (en) * 2007-10-31 2009-04-30 Hitachi, Ltd. Content delivery system, cache server, and cache control server
KR20100038800A (ko) * 2008-10-06 2010-04-15 에스케이텔레콤 주식회사 캐시서버에 저장된 데이터 갱신방법, 그 캐시서버 및 컨텐츠 제공시스템
KR20100048315A (ko) * 2008-10-30 2010-05-11 에스케이텔레콤 주식회사 캐시서버를 이용한 컨텐츠 전송시스템 및 방법, 그 캐시서버
KR20100056934A (ko) * 2008-11-20 2010-05-28 에스케이텔레콤 주식회사 캐시서버를 이용한 컨텐츠 전송 시스템 및 방법
US20100325264A1 (en) * 2009-04-24 2010-12-23 William Crowder Media resource storage and management

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7120666B2 (en) * 2002-10-30 2006-10-10 Riverbed Technology, Inc. Transaction accelerator for client-server communication systems
EP1721438B1 (en) * 2004-03-02 2010-09-08 Divinetworks Ltd. Server, method and system for caching data streams
US7636767B2 (en) * 2005-11-29 2009-12-22 Cisco Technology, Inc. Method and apparatus for reducing network traffic over low bandwidth links
US7653055B2 (en) * 2006-03-31 2010-01-26 Alcatel-Lucent Usa Inc. Method and apparatus for improved multicast streaming in wireless networks
WO2010045262A1 (en) * 2008-10-14 2010-04-22 Wanova Technologies, Ltd. Storage-network de-duplication
US20120158884A1 (en) * 2009-08-31 2012-06-21 Nec Corporation Content distribution device, content distribution method, and program
US9401967B2 (en) * 2010-06-09 2016-07-26 Brocade Communications Systems, Inc. Inline wire speed deduplication system
US20110314070A1 (en) * 2010-06-18 2011-12-22 Microsoft Corporation Optimization of storage and transmission of data
CN101908073B (zh) * 2010-08-13 2012-07-11 清华大学 一种文件系统中实时删除重复数据的方法
US8380681B2 (en) * 2010-12-16 2013-02-19 Microsoft Corporation Extensible pipeline for data deduplication
US9703796B2 (en) * 2011-12-06 2017-07-11 Brocade Communications Systems, Inc. Shared dictionary between devices

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040110484A1 (en) * 2002-12-04 2004-06-10 Ntt Docomo, Inc. Relay apparatus, method of controlling content delivery, and content delivery system
US20090113068A1 (en) * 2007-10-31 2009-04-30 Hitachi, Ltd. Content delivery system, cache server, and cache control server
KR20100038800A (ko) * 2008-10-06 2010-04-15 에스케이텔레콤 주식회사 캐시서버에 저장된 데이터 갱신방법, 그 캐시서버 및 컨텐츠 제공시스템
KR20100048315A (ko) * 2008-10-30 2010-05-11 에스케이텔레콤 주식회사 캐시서버를 이용한 컨텐츠 전송시스템 및 방법, 그 캐시서버
KR20100056934A (ko) * 2008-11-20 2010-05-28 에스케이텔레콤 주식회사 캐시서버를 이용한 컨텐츠 전송 시스템 및 방법
US20100325264A1 (en) * 2009-04-24 2010-12-23 William Crowder Media resource storage and management

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2800310A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3133824A4 (en) * 2014-04-18 2017-03-22 SK Telecom Co., Ltd Method for transmitting broadcasting contents in real-time and device for same
JP2017517998A (ja) * 2014-04-18 2017-06-29 エスケーテレコム カンパニー リミテッドSk Telecom Co., Ltd. リアルタイム放送コンテンツ伝送方法及びそのための装置
US10298637B2 (en) 2014-04-18 2019-05-21 Sk Telecom Co., Ltd. Method for transmitting broadcasting contents in real-time and device for same

Also Published As

Publication number Publication date
EP2800310A4 (en) 2015-07-29
EP2800310A1 (en) 2014-11-05
JP5816380B2 (ja) 2015-11-18
KR101904482B1 (ko) 2018-10-08
CN104025521B (zh) 2016-11-23
CN104025521A (zh) 2014-09-03
US9781224B2 (en) 2017-10-03
KR20130093741A (ko) 2013-08-23
US20140310374A1 (en) 2014-10-16
EP2800310B1 (en) 2018-01-24
JP2015502115A (ja) 2015-01-19

Similar Documents

Publication Publication Date Title
WO2013100573A1 (ko) 콘텐트 전송 시스템, 그 시스템에서의 네트워크 트래픽 최적화 방법, 중앙 제어 장치 및 로컬 캐싱 장치
WO2014010992A1 (ko) 컨텐츠 이름 기반의 컨텐츠 중심 네트워크에서 컨텐츠 및 실시간 스트리밍 컨텐츠 제공을 위한 컨텐츠 요청자 및 컨텐츠 제공자의 통신 방법
WO2016010229A1 (ko) 스트리밍 서비스를 위한 클라이언트 및 서버의 동작 방법
US9160771B2 (en) Method and apparatus for dynamic destination address control in a computer network
WO2012138183A2 (en) Apparatus and method for providing content using a network condition-based adaptive data streaming service
WO2016171401A1 (ko) 공동 편집 문서를 공유하는 방법 및 장치
WO2021072881A1 (zh) 基于对象存储的请求处理方法、装置、设备及存储介质
WO2014200177A1 (ko) 통신 네트워크에서 컨텐츠 전달 방법 및 이를 위한 장치
KR101436049B1 (ko) 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치
WO2020050656A1 (en) Method and device for processing file
WO2013094837A1 (ko) 해시 함수 결과를 이용한 서버 부하 분산 처리 방법 및 그 장치
WO2016013718A1 (ko) 와이파이 망을 이용한 웹기반 광고 제공 시스템 및 방법
WO2014077458A1 (ko) 통신망의 종류를 구분하는 방법 및 이를 이용한 콘텐츠 제공 방법
WO2014073902A1 (en) Method and apparatus for providing web service in wireless communication system
WO2018128226A1 (ko) 이종 네트워크상에서의 컨텐츠 전송 방법 및 이를 위한 장치
WO2013129804A1 (ko) 무선 네트워크 부하 저감 정책 분석 방법 및 시스템과 기록매체
WO2014077459A1 (ko) 데이터 가속 알고리즘을 선택하여 콘텐츠를 제공하는 방법 및 장치
WO2013122362A1 (ko) 무선 네트워크 부하 저감 정책 운영 방법 및 시스템과 기록매체
WO2012093835A2 (ko) 모바일 p2p 서비스를 위한 지연-용인 콘텐츠 전송 장치 및 그 방법
WO2014208889A1 (ko) 컨텐츠 전송 시스템에서 데이터 처리를 위한 장치 및 이를 위한 방법
Shimano et al. An information propagation scheme for an autonomous distributed storage system in iSCSI environment
WO2016153119A1 (ko) 폐쇄형 데이터 공유 서비스 데이터 관리 방법 및 시스템
KR102148147B1 (ko) 컨텐츠 전송 방법 및 이를 위한 장치
KR102519390B1 (ko) 캐시 장치, 상기 캐시 장치에서의 mmt 컨텐츠 전송 방법
KR101888982B1 (ko) 적응형 컨텐츠 제공을 위한 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치

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: 12863260

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012863260

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2014545836

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE