Patent Publication Number: US-9893991-B2

Title: Device and method for processing data in content transmission system

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     The present application is a continuation of International Application No. PCT/KR2014/004064 filed on May 8, 2014, which is based on, and claims priority from Korean Patent Application No. 10-2013-0074373 filed in the Korean Intellectual Property Office on Jun. 27, 2013. The disclosures of the above-listed applications are hereby incorporated by reference herein in their entirety. 
    
    
     TECHNICAL FIELD 
     The present disclosure relates to content transmission technology, and more particularly, to a device for enabling a cache device to perform necessary processing on a packet input from a network to the cache device in a content transmission system and a method for the same. 
     BACKGROUND 
     The statements in this section merely provide background information related to the present disclosure and do not constitute prior art. 
     Lately, the performance of user equipment (UE), such as a smart phone, and mobile communication technology are rapidly being improved. Accordingly, a user has become able to access a web server provided by a content provider (CP) and use a variety of content, such as photographs, videos, audio, and applications, through UE at any time and any place. Also, the frequency of using content through a mobile network (e.g., a mobile communication network) in which the mobility of a user is ensured is continuously increasing. 
     However, while the number of web servers provided by a CP is limited, the number of users who access the web servers is rapidly increasing. For this reason, the inventor(s) has noted that there occur various needs related to improve communication resource and quality of service by reducing or, for example, data loss, a bottleneck, transmission delay, data discontinuity and data interruption. The inventor(s) has noted that to solve these needs, a content delivery network (CDN) has been provided. 
     A CDN is a service for stably transferring various types of content, such as photographs, movies, and music videos, to one or more UEs. More specifically, the CDN provides cache devices which are widely distributed to major points in a network. The inventor(s) has noted that these cache devices copy and store in advance a part or all of a variety of content, which is content having a large capacity, such as images, videos, and audio, or frequently requested by one or more UEs, present in web servers of a CP far away from the UEs. Subsequently, when a content request message is received from the UEs, a cache device located closest to the UE transmits content to the UEs. The inventor(s) has noted that the CDN improves content access speed and stably provides content. 
     SUMMARY 
     In accordance with some embodiments, a switching device for data processing comprises a processor unit and a switching unit. The processor unit is configured to generate a pseudo-first-form packet by attaching a second-form header to an end portion of a first-form packet when a second-form packet is input, the second-form packet including the first-form packet encapsulated with the second-form header. And the switching unit is configured to transfer the second-form packet to the processor unit when the second-form packet is input from a network, and transfer the pseudo-first-form packet generated by the processor unit to a cache device such that the cache device processes the pseudo-first-form packet. 
     In accordance with some embodiments, a method performed by a switching device for data processing, the switching device comprising a processor unit and a switching unit, the method comprises: generating a pseudo-first-form packet by attaching a second-form header to an end portion of a first-form packet when a second-form packet is input, the second-form packet including the first-form packet encapsulated with the second-form header; transferring the second-form packet to the processor unit when the second-form packet is input; and transferring the pseudo-first-form packet to a cache device such that the cache device processes the pseudo-first-form packet. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         FIG. 1  is a diagram of a content transmission system according to exemplary embodiments of the present disclosure. 
         FIG. 2  is a block diagram of a configuration of a switching device in the content transmission system according to exemplary embodiments of the present disclosure. 
         FIG. 3  is a diagram of a pseudo-packet according to embodiments of the present disclosure. 
         FIG. 4  is a block diagram of a configuration of a cache device in the content transmission system according to exemplary embodiments of the present disclosure. 
         FIG. 5  is a flowchart of a data processing method according to exemplary embodiments of the present disclosure. 
         FIG. 6  is a flowchart of a data processing method of a switching device according to exemplary embodiments of the present disclosure. 
         FIG. 7  is a flowchart of a data processing method of a switching device according to exemplary embodiments of the present disclosure. 
         FIG. 8  is a flowchart of a data processing method of a switching unit according to exemplary embodiments of the present disclosure. 
         FIG. 9  is a flowchart of a method for data processing of a processor unit according to exemplary embodiments of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     Hereinafter, exemplary embodiments that enable those of ordinary skill in the art of the present disclosure to implement some of embodiments the present disclosure will be described in detail with reference to the accompanying drawings. In the detailed description of exemplary embodiments of the present disclosure, when detailed descriptions of related known functions or elements are determined to unnecessarily obscure the gist of the present disclosure, the detailed descriptions will be omitted. This is intended not to obscure but to clearly deliver the core of the present disclosure by omitting unnecessary descriptions. Some embodiments of the present disclosure provide a device for data processing which enables a cache device to perform necessary processing in a content transmission system without damaging the information of an original packet input to the cache device, and a method for the same. In some embodiments of the present disclosure, a content transmission system is a system for providing a content delivery network (CDN) service, and a cache device transmits content to user equipment (UE) in replacement of a content server. To this end, the cache device requests and receives the content from the content server. Alternatively, the cache device receives, copies, and stores the content transmitted to the UE by the content server, as an intermediary. After that, the cache device transmits the content to the UE. However, a packet which is used to process transmission and reception of the content in a core network does not be recognized by the cache device. Therefore, a switching device of some embodiments of the present disclosure converts the packet into a form recognizable by the cache device, and then provides the converted packet to the cache device. Also, the cache device completes processing of the packet, for example, content copying and storing, and then provides the packet back to the switching device. Then, the switching device restores the packet to a form used in the core network, and then transmits the packet. As described above, some embodiments of the present disclosure makes it possible to modify an original packet input to a cache device into a packet recognizable by the cache device without damaging information of the original packet. 
     When an element is referred to as being “connected” or “coupled” to another element, it can be directly connected or coupled to the other element or intervening elements may be present. The terminology used in this specification is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. The singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. The terms “comprises,” “comprising,” “includes,” and “including,” when used herein, specify the presence of stated features, numbers, steps, operations, elements, parts, or combinations thereof, but do not preclude the presence or addition of one or more other features, numbers, steps, operations, elements, parts, or combinations thereof. 
     The terms, such as “first” and “second,” are used to describe various elements. The terms are merely used to distinguish one element from other elements, but are not used to limit the elements. Throughout the drawings, like numerals refer to portions that perform similar functions and exert similar effects, and duplicate descriptions of the portions will be omitted. 
       FIG. 1  is a diagram of a content transmission system according to exemplary embodiments of the present disclosure. 
     Referring to  FIG. 1 , a content transmission system according to embodiments of the present disclosure includes user equipment (UE)  100 , a base station (BS) device  200 , a switching device  300 , a cache device  500 , a serving gateway  600 , a data gateway  700 , and a content server  800 . 
     The UE  100  accesses the content server  800  through an access network  10 , a core network  20 , and a public network  30 . In other words, the UE  100  accesses the content server  800  through the BS device  200 , the switching device  300 , the serving gateway  600 , and the data gateway  700 . Here, it is to be noted that the switching device  300  is included in a path for the UE  100  to access the content server  800 . The UE  100 , as an exemplary embodiment of the present application, is a user terminal device such as a PC (personal computer), notebook computer, PDA (personal digital assistant), PMP (portable multimedia player), PSP (PlayStation Portable), wireless communication terminal, smart phone, network-connectable appliance such as TV and the like. 
     The access network  10  is a network including network entities which provide a wireless zone service in a cellular system. For example, the access network  10  is implemented by a plurality of BSs, such as a base transceiver station (BTS) and a node base station (NodeB), and a base station controller (BSC), such as a radio network controller (RNC). In another example, the access network  10  is implemented by one entity such as an evolved node base station (eNodeB). In still another example, the access network  10  comprises a digital unit (DU) and a radio unit (RU). The DU and the RU are configured by separating a digital signal processing unit and a wireless signal processing unit integrally implemented in a BS from each other. Here, a plurality of RUs are connected to one DU. Consequently, the BS device  200  is any one of the aforementioned configurations. 
     The core network  20  manages information on users who subscribe to a communication service, and performs circuit switching or packet switching. Also, the core network  20  manages inter-frequency mobility, and manages and controls traffic in the access network  10  and the core network  20  and interoperation with another network, for example, the public network  30 . The core network  20  includes entities which perform the aforementioned functions. These entities are exemplified by a mobile switching center (MSC), a home location register (HLR), a mobile mobility entity (MME), a home subscriber server (HSS), and so on. In particular, the serving gateway  600  and the data gateway  700  may be the aforementioned entities of the core network  20 . The serving gateway  600  processes traffic for a plurality of BS devices  200 . Here, the serving gateway  600  may be a serving gateway (S-GW). The data gateway  700  processes traffic between the core network  20  to which the data gateway  700  belongs and a network (e.g., a public network) other than the core network  20  to which the data gateway  700  belongs. Such a data gateway  700  may be a packet data network gateway (P-GW). In embodiments of the present disclosure, entities in the core network  20  including the serving gateway  600 , the data gateway  700 , etc. are referred to as “core devices.” 
     The public network  30  is a general open network in which information is exchanged according to transmission control protocol/Internet protocol (TCP/IP). Such a public network  30  is exemplified by the Internet which employs IP. In the public network  30 , the content server  800  is located. The content server  800  is provided to store content and provide a variety of content to the UE  100  upon request. Here, content is exemplified by photographs, videos, audio, applications, and so on. The content server  800  is a server run by a so-called content provider (CP). The content server  800  may provide content to a plurality of pieces of UE  100 . Such a content server  800  is exemplified by a web server, a web application server (WAS), and so on. 
     The UE  100  is provided to receive content from the content server  800  and play the content upon request of a user. For example, the UE  100  finds a uniform resource locator (URL) of content requested by a user. After that, the UE  100  may acquire address information (an IP address) of the content server  800  corresponding to the URL through a domain name system (DNS) or so on. Then, the UE  100  requests the content from the content server  800  corresponding to the address information. Accordingly, the UE  100  may receive the content transmitted by the content server  800 . 
     The cache device  500  stores a part or all of a content copy provided by the content server  800 . The cache device  500  is provided to provide stored content to the UE  100  in replacement of the content server  800  when there is a request of the UE  100 . To this end, the cache device  500  is configured to receive the content request transmitted from the UE  100  to the content server  800 , as an intermediary. Also, the cache device  500  may receive, copy, and then store content transmitted to the UE  100  by the content server  800 , as an intermediary, or may receive content from the content server  800  and store the content in advance. 
     The content server  800 , the UE  100 , and the cache device  500  use first-form packets. Here, a first-form packet is a TCP/IP packet. The TCP/IP packet includes a TCP/IP header and a payload. On the other hand, the BS device  200 , the serving gateway  600 , and the data gateway  700  communicate with each other through tunneling. Packets used for such tunneling are second-form packets. A second-form packet is generated by encapsulating a first-form packet with a second-form header. Such a second-form header includes a general packet radio service tunneling protocol (GTP) header. More specifically, a second-form header includes, for example, an outer IP header for tunneling, a user datagram protocol (UDP) header, and a GTP header. Therefore, a second-form packet is a GTP packet obtained by attaching an outer IP header, a UDP header, and a GTP header in front of a TCP/IP header in the aforementioned first-form packet having the TCP/IP header and a payload. 
     To perform communication through tunneling, the BS device  200 , the serving gateway  600 , and the data gateway  700  use second-form packets. However, the UE  100  and the content server  800  do not process a second-form header. Therefore, the BS device  200  and the data gateway  700  perform the following operation. The BS device  200  encapsulates a first-form packet received from the UE  100  with a second-form header, thereby generating a second-form packet. Subsequently, the BS device  200  transfers the second-form packet to the serving gateway  600 . Also, the BS device  200  removes a second-form header from a second-form packet received from the serving gateway  600 , thereby restoring a first-form packet. After that, the BS device  200  transfers the first-form packet to the UE  100 . Likewise, the data gateway  700  encapsulates a first-form packet received from the content server  800  with a second-form header, thereby generating a second-form packet. After that, the data gateway  700  transfers the generated second-form packet to the serving gateway  600 . Also, the data gateway  700  removes a second-form header from a second-form packet received from the serving gateway  600 , thereby restoring a first-form packet. After that, the data gateway  700  transfers the first-form packet to the content server  800 . A second-form packet as described above is used to process traffic for data transmission and reception in a network, and is distinguished from a packet for audio. 
     Meanwhile, the switching device  300  is located between the access network  10  and the core network  20 . The cache device  500  is connected to the switching device  300 . The cache device  500 , in some situations, is not configured to process or recognize a second-form header. In addition, as described above, the cache device  500  is configured to receive a packet transmitted from the content server  800  to the UE  100 , as an intermediary. Further, the cache device  500  is configured to copy and store content included in the packet and then transmit the packet to the UE  100 . Therefore, the switching device  300  and the cache device  500  are configured to receive a second-form packet from the content server  800 , perform necessary processing on the second-form packet, and then transfer the second-form packet to the UE  100  in its entirety. Also, when content requested by the UE is determined as a cache hit, the cache device  500  is configured to directly transfer the stored content to the UE  100 . In this case, the switching device  300  is configured to receive a second-form packet rather than a pseudo-first-form packet and then transfer the second-form packet to the UE  100 . 
     Packets of all uplinks or downlinks of the access network  10  in which the switching device  300  is located pass through the switching device  300 . Accordingly, the switching device  300  is configured, in some embodiments, to cause a packet which does not require processing by the cache device  500  to pass through the switching device  300 . 
     Therefore, when a packet is input and the packet is a second-form packet for tunneling, the switching device  300  determines the packet as traffic for data transmission and reception. Then, the switching device  300  performs processing corresponding to the second-form packet. At this time, the switching device  300  processes the second-form packet to generate a packet of a form recognizable by the cache device  500  (a pseudo-first-form packet), and transfers the generated packet (i.e., a pseudo-first-form packet) to the cache device  500 . The second-form packet has a structure in which a first-form packet is encapsulated with a second-form header. Therefore, the switching device  300  attaches a second-form header, for example, behind a first-form packet. In this way, a pseudo-first-form packet is generated. The pseudo-first-form packet has a first-form header at a beginning portion thereof, and thus is recognizable by the cache device  500 . Also, the cache device  500  performs necessary processing on the pseudo-first-form packet. Such processing includes, for example, a cache hit determination, content copying and storing, and so on. After that, the cache device  500  transfers the pseudo-first-form packet back to the switching device  300 . Then, the switching device  300  moves a second-form header of the pseudo-first-form packet from the rear to the front so as to restore the second-form packet (as shown in  FIG. 3 , presented as an exemplary embodiment of the present disclosure), and then transmits the restored second-form packet. 
     According to a result of a cache hit determination, the cache device  500  loads previously stored content in a second-form packet and transfer the second-form packet to the switching device  300 . In this case, the switching device  300  causes the second-form packet transmitted from the cache device  500  to bypass the switching device  300 , as it is. At this time, the second-form packet output from the cache device  500  is transmitted to the UE  100  which is the original destination. 
     As described above, according to embodiments of the present disclosure, the switching device  300  can modify a packet provided to the cache device  500  into a packet recognizable by the cache device  500  without damaging information of the packet. Accordingly, the cache device  500  can perform necessary processing on the packet. 
     In embodiments described below, it is assumed that the content server  800  transmits a packet to the UE  100 . However, the present disclosure is not limited to this case, and exemplary embodiments of the present disclosure are applied to the case of uplink transmission in which the UE  100  transmits a packet to the content server  800  as well as such a case of downlink transmission. In other words, the switching device  300  is located between the BS device  200  and a core device (e.g., the serving gateway  600  and the data gateway  700 ), and receives all uplink or downlink packets between the BS device  200  and the core device. Accordingly, when an uplink or downlink packet corresponds to a second-form packet, the switching device  300  converts the second-form packet into a pseudo-first-form packet such that the cache device  500  recognizes the uplink or downlink packet, and provides the pseudo-first form packet to the cache device  500 . 
       FIG. 2  is a block diagram of a configuration of a switching device in the content transmission system according to exemplary embodiments of the present disclosure, and  FIG. 3  is a diagram of a pseudo-packet according to exemplary embodiments of the present disclosure. 
     Referring to  FIGS. 2 and 3 , the switching device  300  includes interface units  310 , a switching unit  320 , and a processor unit  330 . Other components of the switching device  300 , such as the interface units  310 , the switching unit  320  and the processor unit  330  are implemented by one or more processors and/or application-specific integrated circuits (ASICs). 
     The interface units  310  include one or more hardware communication modules to transmit signals (e.g., instructions or controls to perform a content delivery (i.e., in a form of one or more packets) and a plurality of different interfaces between the cache device  500 , the BS device  200  and contents server  600 ) to network entities (e.g., the cache device  500 , the access network  10  and contents server  600 ) and/or receive signals from the network entities. The interface units  310  are entities on paths through which the interface units  310  transmits and received packets, and include one or more hardware communication modules (such as network adapters and/or antennas) to perform a plurality of interfaces. In other words, the interface units  310  transmit and received packets to and from the core device and the BS device. A packet received from an uplink or a downlink by the interface unit  310  is input to the switching unit  320 . Also, a packet output from the switching unit  320  is transmitted to an uplink or a downlink through the interface unit  310 . A particular packet is output from the switching unit  320  to the cache device  500  through the interface unit  310 . Also, a packet is received from the cache device  500  through the interface unit  310 . 
     The switching unit  320  is entity on a path through which the switching unit  320  transmits and receives an uplink or downlink packet through the interface unit  310 . When an uplink or downlink packet is input through an interface unit  310 , the switching unit  320  determines whether or not the input packet corresponds to a packet for transmission and reception of content (data). In other words, the switching unit  320  determines whether or not the input packet corresponds to a second-form packet by checking a second-form header included in the second-form packet. For example, when headers for tunneling (an outer IP header, a UDP header, and a GTP header) are included in the input packet, the switching unit  320  determines the input packet as a second-form packet. When the input packet is determined as a second-form packet, the switching unit  320  inputs the input packet to the processor unit  330 . When the input packet is not determined as a second-form packet, the switching unit  320  causes the input packet to bypass the switching unit  320  and to be output, without changes, through the interface unit  310 . 
     Subsequently, the switching unit  320  receives a pseudo-first-form packet obtained by attaching a second-form header behind a first-form packet in the second-form packet from the processor unit  330 . That is, the processor unit  330  generates the pseudo-first-form packet in a manner that the processor unit  330  encapsulates a first-form packet with a second-form header by attaching the second-form header to the end of a first-form packet, as indicated in  FIG. 3  of an exemplary embodiment of the present disclosure. Then, the switching unit  320  outputs the pseudo-first-form packet to the cache device  500 . Meanwhile, the switching unit  320  receives a pseudo-first-form packet from the cache device  500 . The switching unit  320  transfers the pseudo-first-form packet to the processor unit  330 . Then, the switching unit  320  receives a second-form packet from the processor unit  330 . The switching unit  320  transmits the second-form packet to an uplink or a downlink through the interface unit  310 . Also, the switching unit  320  receives a second-form packet from the cache device  500 . In this case, the switching unit  320  transmits the second-form packet received from the cache device  500  to a downlink, as it is without any process performed on the second-form packet. 
     The switching unit  320  transmits an operation check message received from the processor unit  330  to the cache device  500  through the interface unit  310 . Also, the switching unit  320  transfers an operation response message received from the cache device  500  through the interface unit  310  to the processor unit  330 . In particular, in case a fault occurs in the switching device  320  or the cache device  500  connected to the switching device  320 , the switching unit  320  serves as an optical transmission line, i.e., all uplink packets or downlink packets passing through the switching unit  320  bypass the switching unit  320 . Further, even when the power of the switching device  300  is off, the switching unit  320  serves as an optical transmission line. Therefore, even when the power of the switching device  300  is off, network traffic is not stopped (i.e., data transmission and data reception related to uplink packets or downlink packets to the switching device  300  are performed and maintained even when the power of the switching device  300  is off). 
     The processor unit  330  is provided for data processing. The processor unit  330  is typically exemplified by a network processor. The processor unit  330  converts a second-form packet into a pseudo-first-form packet. As shown in  FIG. 3 , a second-form packet has a structure in which a first-form packet is encapsulated with a second-form header. Therefore, when a second-form packet is input from the switching unit  320 , the processor unit  330  attaches the second-form header behind the first-form packet to generate a pseudo-first-form packet. After that, the processor unit  330  outputs the pseudo-first-form packet to the switching unit  320 . The cache device  500  reads the pseudo-first-form packet from a beginning portion of the pseudo-first-form packet. For this reason, the cache device  500  reads a first-form header of the pseudo-first-form packet. Accordingly, the cache device  500  handles the pseudo-first-form packet in the same way as a first-form packet. As a result, the cache device  500  performs necessary processing on the pseudo-first-form packet and transfer the pseudo-first-form packet back to the switching device  300 . Then, the switching unit  320  transfers the pseudo-first-form packet to the processor unit  330 . In this case, the processor unit  330  processes the pseudo-first-form packet to thereby restore the second-form packet. In other words, the processor unit  330  restores the second-form packet by moving the second-form header of the pseudo-first-form packet from the rear portion to the front portion in the pseudo-first-form packet. Accordingly, the second-form packet is restored. After that, the processor unit  330  transfers the second-form packet to the switching unit  320 . 
     To determine whether or not the cache device  500  has broken down, the processor unit  330  periodically transfers an operation check message to the switching unit  320 . Such an operation check message is exemplified by an address resolution protocol (ARP) request message, a ping test, a synchronization (SYN) packet to a particular TCP port, and so on. The switching unit  320  transmits the operation check message to the cache device  500  through the interface unit  310 . Also, when the cache device  500  operates normally, the switching unit  320  receives an operation response message from the cache device  500  through the interface unit  310 . When the operation response message is received from the switching unit  320 , the processor unit  330  determines that the cache device  500  operates normally. On the other hand, when no operation response message is received within a pre-set time, the processor unit  330  recognizes a fault in the cache device  500 . Meanwhile, when a fault occurs in the cache device  500 , the cache device  500  shuts down the link with the switching device  300 . Also, the processor unit  330  senses link down of the cache device  500  connected thereto. Accordingly, the processor unit  330  does not transmit any packet to the cache device  500  and controls the switching unit  320  to pass all packets. 
       FIG. 4  is a block diagram of a configuration of a cache device in the content transmission system according to exemplary embodiments of the present disclosure. 
     Referring to  FIGS. 1 and 4 , the cache device  500  includes an interface module  510 , a storage module  520 , and a control module  530 . Other components of the cache device  500 , such as the interface module  510  and a control module  530  are implemented by one or more processors and/or application-specific integrated circuits (ASICs). The interface module  510  include one or more hardware communication modules (as described herein) to transmit signals (e.g., instructions or controls to perform a content delivery (i.e., in a form of one or more packets) and a plurality of different interfaces between the switching device  300 , the UE  100  and the content server  800 ) to network entities (e.g., the switching device  300 , the UE  100  and the content server  800 ) and/or receive signals from the network entities. The storage module  520  comprises one or more non-transitory computer-readable recording medium. 
     The interface module  510  is provided to receive packets transmitted and received through the access network  10  or the core network  20  or transmit stored packets. In particular, the interface module  510  communicates with the UE  100  and the content server  800 . To this end, the interface module  510  transmits and receives packets through the switching device  300 . According to embodiments of the present disclosure, the interface module  510  receives a pseudo-first-form packet from the switching device  300 . Also, the interface module  510  receives a first-form packet from the control module  530  and transfers the first-form packet to the switching device  300 . 
     The storage module  520  has a storage space for storing content. In the storage space, a part or all of the copy of content stored in at least one content server  800  is stored. The control module  530  receives a packet transmitted from the content server  800  to the UE  100  through the interface module  510 . Then, the control module  530  copies content of the received packet and stores the content in the storage module  520 . Also, the control module  530  requests content from the content server  800  according to a pre-set policy, receives and stores the content when the content server  800  transmits a packet including the content. 
     Content stored in the storage space of the storage module is maintained or removed according to the frequency of request thereof. Content is stored in the storage space according to first-in first-out (FIFO) queuing. When there is a request for content but the content is not stored, the content is received from the original server, that is, the content server  800 , and input to and stored in a queue. At this time, the storage space is in accordance with FIFO queuing. In this case, first-stored content is removed when there is not enough storage space to store new content. On the other hand, when there is a request for content and the content is stored in the storage space, the stored content is input again to the queue as if the content were stored again. In this way, content stored in the storage space is removed or maintained according to the frequency of request of the content. 
     The control module  530  is provided to control overall operation of the cache device  500 . When a pseudo-first-form packet including content is received through the interface module  510 , the control module  530  stores the content in the storage module  520 . The control module  530  reads a packet from a beginning portion of the packet, and thus processes a pseudo-first-form packet in the same way as a first-form packet without processing a second-form header. At this time, when content is included in the pseudo-first-form packet, the control module  530  copies the content included in the pseudo-first-form packet and stores the content in the storage module  520 . 
     The control module  530  then transfers the pseudo-first-form packet back to the switching device  300  through the interface module  510 . 
     Meanwhile, when the pseudo-first-form packet is a content request message, the control module  530  determines whether content request by the pseudo-first-form packet is stored in the storage module  520 . This is referred to as a cache hit determination. When a determination result indicates a cache hit, that is, when the requested content is stored in the storage module  520 , the control module  530  retrieves the content stored in the storage module  520 , load the content in a second-form packet, and transfer the second-form packet to the switching device  300 . At this time, the second-form packet is configured like a packet transmitted from the content server  800  to the UE  100 . Therefore, the second-form packet generated by the cache device  500  bypasses the switching device  300  and is directly transferred to the UE  100 . 
     In particular, the control module  530  receives an operation check message through the interface module  510 . Then, when the cache device  500  operates normally, the control module  530  transmits an operation response message providing a notification that the cache device  500  is operating normally to the switching device  300  through the interface module  510 . On the other hand, when a fault in the cache device  500  is sensed, the control module  530  shuts down the link with the switching device  300  regardless of whether or not an operation check message is received. Accordingly, the switching device  300  recognizes a fault in the cache device  500 . 
       FIG. 5  is a flowchart of a data processing method according to exemplary embodiments of the present disclosure. 
     In  FIG. 5 , it is assumed that, during a process in which the content server  800  transmits content to the UE  100 , the cache device  500  copies and stores the content. 
     Referring to  FIGS. 3 and 5 , in operation S 510 , the content server  800  transmits a first-form packet including content to the data gateway  700 . The first-form packet includes a first-form header and a payload. 
     When the first-form packet is received, the data gateway  700  encapsulates the first-form packet with a second-form header to generate a second-form packet. This is provided for communication through tunneling. Here, values designating the serving gateway  600  are stored in a destination-related field of the second-form header. Therefore, when the data gateway  700  transmits the second-form packet in operation S 520 , the second-form packet is transferred to the serving gateway  600 . 
     In operation S 530 , the serving gateway  600  designates a BS device  200  in the access network  10  with which the UE  100  has been registered as a destination in the second-form header, and transmits the second-form packet. When there is not the switching device  300 , the second-form packet does not pass through the switching device  300  and is transferred to the BS device  200 . However, the switching device  300  receives the second-form packet between the serving gateway  600  and the BS device  200 . 
     The switching device  300  converts the second-form packet into a pseudo-first-form packet. The second-form packet is obtained by encapsulating the first-form packet with the second-form header. The switching device  300  attaches the second-form header behind the first-form packet to generate the pseudo-first-form packet. Subsequently, in operation S 540 , the switching device  300  transfers the pseudo-first-form packet to the cache device  500 . 
     The cache device  500  reads the received packet from a beginning portion of the packet, and thus directly processes a first-form header in the pseudo-first-form packet without processing the second-form header. In at least one embodiment, the cache device  500  copies and stores the content included in the pseudo-first-form packet. In operation S 550 , the cache device  500  transfers the pseudo-first-form packet back to the switching device  300 . 
     When the pseudo-first-form packet is transmitted as it is, entities in a network do not recognize the destination (BS device) included in the second-form header attached behind the first-form packet. Accordingly, the packet is lost. For this reason, the switching device  300  processes the pseudo-first-form packet to restore the second-form packet. After that, the switching device  300  transmits the second-form packet to the BS device  200  in operation S 560 . 
     When the second-form packet is received, the BS device  200  removes the second-form header from the second-form packet to restore the first-form packet. This is because, in some situations, the UE  100  is not configured to recognize the second-form packet. Next, in operation S 570 , the BS device  200  transmits the first-form packet to the UE  100 . Accordingly, the UE  100  receives content through the first-form packet. 
       FIG. 6  is a flowchart of a data processing method of a switching device according to exemplary embodiment of the present disclosure. 
     Referring to  FIGS. 3 and 6 , in operation S 610 , the switching unit  320  of the switching device  300  receives a second-form packet from a network through an interface unit  310 . Then, in operation S 615 , the switching unit  320  inputs the second-form packet to the processor unit  330 . 
     When the second-form packet is input, the processor unit  330  converts the second-form packet into a pseudo-first-form packet. At this time, the processor unit  330  generates the pseudo-first-form packet by attaching a second-form header to an end portion of a first-form packet. After that, in operation S 620 , the processor unit  330  outputs the pseudo-first-form packet to the switching unit  320 . 
     The second-form header has a variable length. Therefore, the switching unit  320  recognizes the second-form header (or a second-form packet) through some field values in a leading portion of the second-form header. However, the switching unit  320  does not know the total length of the second-form header. Therefore, the switching unit  320  does not recognize a first-form header attached behind the second-form header. For example, assuming that the second-form header is a tunneling header (an outer IP header, a UDP header, and a GTP header) and the first-form header is a TCP/IP header, the switching unit  320  recognizes only the type of the second-form header due to the variable length of the GTP header but does not recognize the position of the TCP/IP header. However, the pseudo-first-form packet has a TCP/IP header at the beginning portion thereof. Therefore, the switching unit  320  recognizes a field value in the header of the packet. In other words, the switching unit  320  determines whether or not the packet is a packet processable by the cache device  500 . For example, from a port number (e.g., port  80 ) of a TCP header, whether the cache device  500  recognizes the corresponding packet is determined. Accordingly, in operation S 625 , the switching unit  320  transmits the pseudo-first-form packet to the cache device  500  through the interface unit  310 . 
     The cache device  500  receiving the pseudo-first-form packet performs necessary processing on the pseudo-first-form packet. At this time, since the pseudo-first-form packet has the same leading portion as the first-form packet, the cache device  500  processes the pseudo-first-form packet in the same way as a general first-form packet. Such processing includes a process in which the control module  530  of the cache device  500  copies content in the packet and stores the content in the storage module  520 . In operation S 630 , the cache device  500  transmits the pseudo-first-form packet back to the switching device  300 . 
     When the pseudo-first-form packet is received from the cache device  500  through the interface unit  310 , the switching unit  320  inputs the pseudo-first-form packet to the processor unit  330  again in operation S 635 . 
     When the pseudo-first-form packet is input, the processor unit  330  processes the pseudo-first-form packet to restore the second-form packet. At this time, the processor unit  330  recognizes that the input packet is a pseudo-first-form packet through the second-form header attached to a rear portion of the pseudo-first-form packet, and restores the pseudo-first-form packet to the second-form packet. After that, in operation S 640 , the processor unit  330  outputs the restored second-form packet. 
     In operation S 645 , the switching unit  320  receiving the second-form packet from the processor unit  330  transmits the second-form packet to a network through an interface unit  310 . 
       FIG. 7  is a flowchart of a data processing method of a switching device according to exemplary embodiments of the present disclosure. 
     Referring to  FIGS. 3 and 7 , in operation S 630 , the switching unit  320  of the switching device  300  receives a second-form packet from a network through an interface unit  310 . Here, it is assumed that the received second-form packet is a content request message transmitted from the UE  100  to the content server  800 . 
     In operation S 615 , the switching unit  320  receiving the second-form packet inputs the second-form packet to the processor unit  330 . 
     When the second-form packet is input, the processor unit  330  converts the second-form packet into a pseudo-first-form packet. At this time, the processor unit  330  generates the pseudo-first-form packet by attaching a second-form header behind a first-form packet (i.e., attaching a second-form header to an end portion of a first-form packet). After that, in operation S 620 , the processor unit  330  outputs the pseudo-first-form packet to the switching unit  320 . 
     In operation S 625 , the switching unit  320  transfers the pseudo-first-form packet received from the processor unit  330  to the cache device  500  through the interface unit  310 . 
     The cache device  500  receiving the pseudo-first-form packet performs necessary processing on the pseudo-first-form packet. At this time, since the pseudo-first-form packet has the same leading portion as the first-form packet, the cache device  500  processes the pseudo-first-form packet in the same way as a first-form packet. Meanwhile, when the received pseudo-first-form packet is a content request message, the cache device  500  determines whether or not the cache device  500  stores requested content (whether or not a cache hit occurs) in operation S 650 . 
     When it is determined that the cache device  500  stores the requested content, the cache device  500  retrieves the stored content to generate a second-form packet to be transmitted to the UE  100 , and outputs the generated second-form packet to the switching unit  320  in operation S 655 . 
     When the second-form packet is received from the cache device  500 , the switching unit  320  causes the received second-form packet to bypass the switching unit  320 , as it is, in operation S 660 . 
     Therefore, the second-form packet that the cache device  500  intends to transmit to the UE  100  is transmitted to the UE  100  through a network.  FIG. 8  is a flowchart of a data processing method of a switching unit according to exemplary embodiments of the present disclosure. 
     Referring to  FIGS. 3 and 8 , in operation S 700 , the switching unit  320  receives a packet. At this time, processing of the packet varies according to which one of a network (a downlink or an uplink), the processor unit  330 , and the cache device  500  the packet has been received from. 
     First, when it is determined in operation S 710  that the received (in operation S 700 ) packet has been received from a network, the switching unit  320  performs operations S 720  to S 740 . Therefore, in operation S 720 , the switching unit  320  determines whether or not the received packet is a second-form packet. A second-form header has a variable length, and the switching unit  320  does not process the variable length of the second-form header. However, the switching unit  320  determines whether or not a packet is a second-form packet through a field value in a leading portion of a second-form header. When it is determined in operation S 720  that the received packet is a second-form packet, the switching unit  320  inputs the packet to the processor unit  330  in operation S 730 . On the other hand, when it is determined in operation S 720  that the received packet is not a second-form packet, the switching unit  320  causes the packet to pass through the switching unit  320 , without changes, and to be transmitted to a network in operation S 740 . More specifically, the switching unit  320  transfers the packet to a downlink when the packet has been received from an uplink, and transfers the packet to an uplink when the packet has been received from a downlink. 
     Meanwhile, in operation S 750 , the switching unit  320  determines whether the received (in operation S 700 ) packet is a packet having been received from the processor unit  330  or the cache device  500 . 
     When it is determined in operation S 750  that the received packet is a packet having been received from the processor unit  330 , the switching unit  320  determines whether the packet is a pseudo-first-form packet or a second-form packet in operation S 760 . 
     When it is determined in operation S 760  that the packet is a second-form packet, the packet is a packet which has been processed by the cache device  500  and then restored to the original form. Therefore, in operation S 770 , the switching unit  320  transmits the packet (second-form packet) to a network. In other words, the switching unit  320  transfers the packet to a downlink when the packet is a packet having been received from an uplink before being processed by the cache device  500 . Also, the switching unit  320  transfers the packet to an uplink when the packet is a packet having been received from a downlink before being processed by the cache device  500 . 
     On the other hand, when it is determined in operation S 760  that the packet is a pseudo-first-form packet, the switching unit  320  transmits the packet (pseudo-first-form packet) to the cache device  500  in operation S 780 . Here, the switching unit  320  does not recognize a beginning position of a first-form header due to the variable length of a second-form header. However, the pseudo-first-form packet has a first-form header at the beginning portion thereof, and thus, the switching unit  320  can recognize a field value in the first-form header of the packet. Therefore, the switching unit  320  may determine that the packet is a packet process sable by the cache device  500 . The first-form header is positioned at a leading portion of the pseudo-first-form packet, and a TCP header is included in the first-form header. Therefore, the switching unit  320  determines that the packet (i.e., pseudo-first-form packet) is a packet processable by the cache device  500  through the TCP header. For example, from a port number (e.g., port  80 ) of the TCP header, the switching unit  320  determines whether or not the cache device  500  can recognize the packet. After the determination, the switching unit  320  transmits the packet to the cache device  500 . 
     Meanwhile, when the switching unit  320  receives the packet from the cache device  500 , the switching unit  320  determines whether the packet is a pseudo-first-form packet or a second-form packet in operation S 790 . 
     When it is determined in operation S 790  that the packet is a second-form packet, the packet is a packet which has been generated by the cache device  500  and is transmitted to the UE  100 . Therefore, in operation S 795 , the switching unit  320  causes the packet (second-form packet) to pass through the switching unit  320 , without changes, and to be transmitted to a network. Accordingly, the second-form packet transmitted from the cache device  500  is transmitted to the UE through the network. 
     On the other hand, when it is determined in operation S 790  that the packet is a pseudo-first-form packet, the packet is a packet which has been transmitted from the switching unit  320  to the cache device  500 , processed by the cache device  500 , and then transferred back to the switching unit  320 . In this case, in operation S 800 , the switching unit  320  transfers the packet (pseudo-first-form packet) to the processor unit  330  to restore the packet to the original form. 
       FIG. 9  is a flowchart of a method for data processing of a processor unit according to exemplary embodiments of the present disclosure. 
     Referring to  FIG. 9 , in operation S 810 , a packet is input from the switching unit  320  to the processor unit  330 . Then, in operation S 820 , the processor unit  330  determines whether the input packet is a second-form packet or a pseudo-first-form packet. Accordingly, the processor unit  330  performs operation S 830  when the input packet is a second-form packet, and performs operation S 850  when the input packet is a pseudo-first-form packet. 
     When the input packet is a second-form packet, the processor unit  330  converts the second-form packet into a pseudo-first-form packet in operation S 830 . For example, it is assumed that a second-form header is a header for tunneling. The header for tunneling includes a GTP header, which has a variable length. Therefore, the processor unit  330  identifies the length of the second-form header by recognizing the variable length of the GTP header. After that, the processor unit  330  attaches the second-form header behind a first-form packet. In this way, the second-form packet is converted into a pseudo-first-form packet. After that, in operation S 840 , the processor unit  330  outputs the pseudo-first-form packet. 
     Meanwhile, when the input packet is a pseudo-first-form packet, the processor unit  330  recovers the pseudo-first-form packet to the second-form packet in operation S 850 . At this time, from a second-form header attached behind the input pseudo-first-form packet, the processor unit  330  recognizes that the input packet is a pseudo-first-form packet. Then, the processor unit  330  attaches the second-form header in front of a first-form packet to recover a second-form packet. After that, in operation  860 , the processor unit  330  outputs the second-form packet. 
     As described above, various embodiments of the present disclosure provide modification of an original packet input to a cache device into a packet of a form recognizable by the cache device without damaging information of the original packet. Accordingly, the cache device is able to be caused to perform necessary processing on the packet. In addition, a switching device is able to restore the packet of a form recognizable by the cache device to a packet of a form used in a network. Accordingly, the switching device maintains compatibility with other entities in the network. 
     As described above, the processor unit  330  is able to modify an input original packet into a packet of a form recognizable by a cache device without damaging information of the original packet. Accordingly, a cache device is able to perform necessary processing on the packet. Such a method for data processing according to embodiments of the present disclosure can be implemented as a computer-readable code in a non-transitory computer-readable recording medium. The non-transitory computer-readable recording medium separately includes program instructions, data files, data structures, etc. or include a combination thereof. The non-transitory computer-readable recording medium includes all types of recording devices in which data readable by a computer system is stored. Examples of the non-transitory computer-readable recording medium include magnetic media, such as a hard disk, a floppy disk, and a magnetic tape, optical media, such as a compact disk read only memory (CD-ROM) and a digital video disk (DVD), magneto-optical media, such as a floptical disk, and hardware devices, such as a ROM, a random access memory (RAM), and a flash memory, that are specially configured to store and execute program instructions. 
     In addition, the non-transitory computer-readable recording medium is distributed in computer systems connected via a network such that computer-readable codes can be stored and executed in a distributed manner. Functional programs, codes, and code segments used to implement one or more embodiments of the present disclosure can be deduced by programmers in the technical field to which the present disclosure pertains. 
     Some embodiments for exemplifying the technical spirit of the present disclosure have been described and shown above, but the present disclosure is not limited to shown and described constitutions and effects. Those of ordinary skill in the art appreciate that various changes and modifications of some embodiments of the present disclosure can be made without departing from the spirit and scope of the claimed invention. Specific terms used in this disclosure and drawings are used for illustrative purposes and not to be considered as limitations of the present disclosure. Therefore, it is to be understood that all suitable changes, modifications, and equivalents fall within the scope of the claimed invention.