WO2018159677A1 - データ処理装置、ネットワークシステム、パケット順序制御回路、およびデータ処理方法 - Google Patents

データ処理装置、ネットワークシステム、パケット順序制御回路、およびデータ処理方法 Download PDF

Info

Publication number
WO2018159677A1
WO2018159677A1 PCT/JP2018/007501 JP2018007501W WO2018159677A1 WO 2018159677 A1 WO2018159677 A1 WO 2018159677A1 JP 2018007501 W JP2018007501 W JP 2018007501W WO 2018159677 A1 WO2018159677 A1 WO 2018159677A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
data processing
buffer
data
input
Prior art date
Application number
PCT/JP2018/007501
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 JP2019503062A priority Critical patent/JP6654733B2/ja
Priority to CN201880015077.2A priority patent/CN110383779B/zh
Priority to US16/490,393 priority patent/US10891246B2/en
Publication of WO2018159677A1 publication Critical patent/WO2018159677A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/128Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Definitions

  • the present invention relates to a packet order control technique used when a network service is provided by linking a plurality of data processing devices.
  • NFV Network Functions
  • SFC Service Function Chaining
  • SF Service Function
  • SFF packet transfer function
  • SFC technology has been developed mainly for the purpose of virtualizing functions related to network services and enabling flexible service operation, but similar effects can be expected when applied to functions other than networks.
  • SFC technology has been developed mainly for the purpose of virtualizing functions related to network services and enabling flexible service operation, but similar effects can be expected when applied to functions other than networks.
  • Such an image processing function generally requires a large amount of calculation and is not suitable for software processing, and therefore, hardware such as ASIC (Application Specific Integrated Circuit), GPU (Graphics Processing Unit), FPGA (Field-Programmable Gate Array) is used. It is desirable to calculate. Therefore, a network device that performs data processing needs to have a hardware processing function in addition to a software processing function.
  • ASIC Application Specific Integrated Circuit
  • GPU Graphics Processing Unit
  • FPGA Field-Programmable Gate Array
  • packet communication when exchanging data on a network, packet communication is generally used.
  • data is divided into small units of packets and transmitted individually. Since the processing order of packets may be changed due to various factors, it is necessary for the receiving side to assemble correct data by changing the order of the packets.
  • IP Internet Protocol
  • TCP Transmission Control Protocol
  • UDP User Datagram Protocol
  • UDP User Datagram Protocol
  • a Reorder Library has been provided in a Data Plane Development Kit (DPDK) as a mechanism for controlling the processing order of packets (see, for example, Non-Patent Document 1).
  • the DPDK is a software library group specialized for network processing, and can realize very high-speed network processing.
  • the Reorder Library operates as follows. First, the input packet is stored in the Order Buffer according to the sequence number. Next, move the contents of the Order Buffer to the Ready Buffer empty area. Thereafter, the application retrieves the packet from the Ready Buffer.
  • the present invention is intended to solve such a problem, and an object of the present invention is to provide a packet order control technique capable of guaranteeing a packet processing order with a small memory resource.
  • a data processing apparatus performs one or more input / output circuits that perform data communication via a communication link, and data processing that constitutes a network service used by a user.
  • a hardware processing unit configured to be realized by hardware, and the hardware processing unit executes the data processing based on input data, and executes the data processing.
  • a packet transfer circuit for receiving a packet including data for transmission and transmitting a packet including the data obtained by the data processing, and a packet received and input by the packet transfer circuit, and header information of these packets
  • a packet sequence control circuit for performing transfer processing to transfer to the logic circuit, wherein the packet sequence control circuit includes a buffer for temporarily storing packets, a packet ID of an input packet, and the next in accordance with the sequence.
  • the input packet is stored in the storage location corresponding to the packet ID, and when the packet ID and the next selection ID match, the transfer process is performed without storing the input packet in the buffer.
  • a control circuit that selects the target, and the control circuit includes a packet ID of a packet in which the next selection ID is stored in the buffer. If there is a match, in which the packet was to be selected as the target of the transfer process.
  • the network system according to the present invention is a network system that includes a plurality of data processing devices distributed on a network and provides various network services to users by linking these data processing devices.
  • at least one or a plurality of the data processing devices includes the above-described data processing device that implements data processing constituting the network service by hardware.
  • the packet order control circuit includes a buffer for temporarily storing a packet for performing a preset process, a packet ID included in the input packet, and a packet ID according to the order of the packet ID. If the packet ID and the next selection ID do not match as a result of comparison by the comparison circuit comparing the next selection ID indicating the packet ID of the packet to be selected and the comparison circuit, The input packet is stored in a storage position corresponding to the packet ID, and when the packet ID and the next selection ID match, the input packet is not stored in the buffer and the processing target A control circuit that selects the packet ID of the packet in which the next selection ID is stored in the buffer. If match, in which the packet was to be selected as the target of the processing.
  • the data processing method according to the present invention is configured so that one or a plurality of input / output circuits for performing data communication via a communication link and data processing constituting a network service used by a user are realized by hardware.
  • a data processing method used in a data processing apparatus including a configured hardware processing unit, wherein a data processing circuit executes a data processing based on input data, and a packet transfer circuit includes: A packet transfer step for receiving a packet including data for executing the data processing, and transmitting a packet including the data obtained by the data processing; and a packet sequence control circuit receives the packet at the packet transfer step.
  • a packet order control step for performing a transfer process for transferring the data included in the selected packet to the data processing step includes: A comparison step of comparing a packet ID with a next selection ID indicating a packet ID of a packet to be selected next in accordance with the order; and a control circuit, as a result of the comparison in the comparison circuit, as a result of the comparison, the packet ID and the next selection ID
  • the input packet is stored in a storage position corresponding to the packet ID, and the packet ID and the next selection ID are If they match, the input packet is not stored in the buffer and is selected as a target for the transfer process.
  • a step, said control step when the next selection ID matches the packet ID of the packet stored in the buffer, in which the packet was to be selected as the target of the transfer process.
  • the packet ID and the next selection are selected. It is determined accurately based on the ID. For this reason, when a packet is selected as a transfer target, it can be transferred to the data processing unit without going through the buffer. Further, since the packet stored in the buffer can uniquely identify the storage location based on the packet ID, the packet corresponding to the next selection ID can be immediately selected from the buffer.
  • FIG. 1 is a block diagram showing a configuration of a network system.
  • FIG. 2 is a block diagram showing the configuration of the data processing apparatus.
  • FIG. 3A is a block diagram illustrating a configuration of a packet order control circuit.
  • FIG. 3B is a block diagram illustrating a configuration of the packet order control unit.
  • FIG. 4 is an explanatory diagram showing a packet format used in the network system.
  • FIG. 5 is an explanatory diagram illustrating an operation example of the packet order control unit.
  • FIG. 6 is an explanatory diagram illustrating an operation example of the buffer.
  • FIG. 7 is a flowchart showing packet reception processing in the packet order control unit.
  • FIG. 8 is a flowchart showing packet transfer processing in the packet order control unit.
  • FIG. 9 is an explanatory diagram illustrating an operation example in which two images are continuously transmitted.
  • the network system 1 is based on the SFC (Service Function Chaining) technology, and cooperates with a plurality of data processing functions distributed on the network to provide various types of data to users. It has a function to provide network services.
  • the network service in the present invention not only provides a network function but also includes, for example, a host application that operates on the network, such as image processing and moving image processing.
  • the network system 1 includes a plurality of data processing devices 10 that are connected to each other via a communication link L and execute data processing constituting a network service used by a user, and SFC header information that adds SFC header information to a packet.
  • a control device that provides a network service to a user by controlling the data processing device 10 to cooperate with each other in a predetermined order based on a service pattern indicating cooperation between the granting device 22 and data processing constituting the network service 20.
  • the data processing device 10 includes, as main functional units, a data processing unit (SF) 11S that executes data processing constituting a network service used by a user, and a packet that rearranges the processing order based on header information of each packet.
  • SR sequence control unit
  • SFF packet transfer unit
  • HF data processing circuit
  • HR packet order control circuit
  • HFF packet transfer circuit
  • SFC header information is added to the packet from the external communication network NW by the SFC header information adding device 22.
  • routing is performed by the packet transfer unit 13S or the packet transfer circuit 13H of the data processing device 10 based on the SFC header information.
  • the packet transfer unit 13S the packet is transferred to the data processing unit 11S or the packet transfer unit 13S of the own device via the packet order control unit 12S or transferred to another data processing device 10.
  • the packet transfer circuit 13H the packet is transferred to the data processing circuit 11H or the packet transfer circuit 13H of its own device via the packet order control circuit 12H or transferred to another data processing device 10.
  • the packet is calculated in one or more data processing units 11S or the data processing circuit 11H and sent to the user terminal 21. With this mechanism, processing required by the user is performed on the network, so processing at the user terminal 21 is reduced.
  • the data processing apparatus 10 is configured to realize data processing that constitutes a network service used by a user mainly through cooperation between a CPU (hardware) and a program (software).
  • the software processing unit 10S that has been configured to perform data communication via the communication link L
  • the hardware processing unit 10H that is configured to implement data processing that constitutes the network service used by the user, mainly by hardware 1
  • it is realized by combining a general-purpose server and an FPGA (Field-Programmable Gate Array).
  • the software processing unit 10S includes, as main functional units, one or more data processing units (SF) 11S that collectively process one or more packets including service data, and an external device via an input / output circuit 15.
  • a packet transfer unit (SFF) 13S for transferring a packet received from the data processing unit 11S or another data processing device 10, and a corresponding data processing unit 11S and packet transfer unit 13S provided for each data processing unit 11S.
  • a packet order control unit (SR) 12S for rearranging the processing order based on the header information of each packet exchanged between them, and a transfer control unit for acquiring packet transfer destination information from outside the apparatus via the input / output circuit 15 14S.
  • the hardware processing unit 10H includes, as main functional units, one or more data processing circuits (HF) 11H that collectively process one or more packets including service data, and an input / output circuit 15
  • a packet transfer circuit (HFF) 13H for transferring a packet received from the outside to the data processing circuit 11H or another data processing device 10, and a packet data input from the packet transfer circuit 13H provided for each data processing circuit 11H Is transferred to the corresponding data processing circuit 11H through a packet sequence control circuit (HR) 12H that sequentially selects and transfers data according to the sequence of packet IDs included in the header information of these packets, and the input / output circuit 15.
  • HR packet sequence control circuit
  • a transfer control circuit 14H that acquires packet transfer destination information from outside the apparatus.
  • FIG. 2 an example in which two data processing units 11S and two data processing circuits 11H are provided in the software processing unit 10S and the hardware processing unit 10H, respectively, is shown.
  • the number of data processing circuits 11H is not limited to this.
  • the transfer control unit 14S and the transfer control circuit 14H have a function of exchanging packet transfer destination information with each other.
  • the input / output circuit 15 has a function of exchanging packets with each other.
  • the packet received by the input / output circuit 15 is transferred to the corresponding packet transfer unit 13S or the packet transfer circuit 13H.
  • the packet transfer unit 13S transfers the input packet to the input / output circuit 15, the packet order control unit 12S, or the packet transfer circuit 13H based on the SFC header information of the input packet.
  • the transfer destination information regarding the packet is managed by the transfer control unit 14S.
  • the packet transfer circuit 13H transfers the input packet to the input / output circuit 15, the packet order control circuit 12H, or the packet transfer unit 13S based on the SFC header information of the input packet.
  • the transfer destination information regarding the packet is managed by the transfer control circuit 14H.
  • the packet is transferred from the packet transfer unit 13S to the data processing unit 11S via the packet order control unit 12S.
  • the packet order control unit 12S performs control relating to the packet processing order and packet parsing.
  • the data calculated by the data processing unit 11S is shaped into a packet by the packet order control unit 12S and then transferred to the packet transfer unit 13S.
  • the packet is transferred from the packet transfer circuit 13H to the data processing circuit 11H via the packet order control circuit 12H.
  • the packet order control circuit 12H performs control relating to the packet processing order and packet parsing.
  • the data calculated by the data processing circuit 11H is shaped into a packet by the packet order control circuit 12H and then transferred to the packet transfer circuit 13H.
  • the packet that has undergone the necessary processing in the data processing device 10 is transferred to another data processing device 10 via the input / output circuit 15. By repeating this in each data processing device 10, processing required by the user is executed in order, and the final calculation result reaches the user terminal 21.
  • the packet order control circuit 12H is realized by hardware as a whole, and the main circuit units include a packet reception circuit 30, a comparison circuit 31, a buffer 32, a packet selection circuit 33, and a data analysis circuit. 34, a data transmission circuit 35, a control circuit 36, a data reception circuit 37, a packet generation circuit 38, and a packet transmission circuit 39.
  • the packet order control unit 12S of the software processing unit 10S has the same function as the packet order control circuit 12H, and detailed description thereof is omitted here. That is, as shown in FIG. 3B, the packet order control unit 12S is realized by the cooperation of the CPU and the program as a whole, and the packet receiving unit 70, the comparison unit 71, and the buffer 72 are main processing units.
  • These processing units include a packet reception circuit 30, a comparison circuit 31, a buffer 32, a packet selection circuit 33, a data analysis circuit 34, a data transmission circuit 35, a control circuit 36, a data reception circuit 37, and a packet generation circuit of the packet order control circuit 12H. 38 and the packet transmission circuit 39, respectively.
  • the packet receiving circuit 30 receives a packet from the packet transfer circuit 13H, transfers the received packet to the comparison circuit 31, and transfers the packet to the buffer 32 or the packet selection circuit 33 in accordance with an instruction from the control circuit 36. It has a function.
  • the buffer 32 is composed of a semiconductor memory as a whole, and is used as a ring buffer for temporarily storing packets in order to control the processing order of packets.
  • the comparison circuit 31 has a function of acquiring the packet ID assigned to the packet from the header information of the input packet, comparing it with the next selection ID held by the comparison circuit 31, and outputting the comparison result to the control circuit 36.
  • the next selection ID is a value used to determine a packet to be sent to the data processing circuit 11H at that time, and indicates the packet processing order.
  • the packet selection circuit 33 has a function of selecting either a packet read from the buffer 32 or a packet input from the packet reception circuit 30 in accordance with an instruction from the control circuit 36 and outputting the selected packet to the data analysis circuit 34. is doing.
  • the control circuit 36 acquires the comparison result from the comparison circuit 31, and controls the packet selection circuit 33 without storing it in the buffer 32 when the packet ID and the next selection ID match and the received packet is a transfer target.
  • the packet selection circuit 33 is controlled to read the packet from the buffer 32 and transfer it to the data analysis circuit 34. .
  • the control circuit 36 inputs the difference between the packet ID and the next selection ID in the buffer 32 to the storage position advanced from the reference position corresponding to the next selection ID.
  • the function of storing the received packet is compared with the reference position corresponding to the next selection ID and the leading position of each packet stored in the buffer 32.
  • the packet stored at the head position is selected as a transfer process target.
  • the data analysis circuit 34 acquires data excluding header information from the input packet and transmits the data to the data processing circuit 11H via the data transmission circuit 35, and the packet generation circuit uses the header information acquired from the input packet. 38, and a function of transferring to the H.38.
  • the packet generation circuit 38 has a function of generating a packet by combining the data after data received from the data processing circuit 11H via the data reception circuit 37 and the header information from the data analysis circuit 34. .
  • the packet transmission circuit 39 has a function of transmitting the packet generated by the packet generation circuit 38 to the packet transfer circuit 13H.
  • the packet 40 used in the network system 1 uses a general Ethernet (registered trademark) II frame format.
  • the data portion 41 of the packet 40 includes IP header information 42, UDP header information 43, user-defined header information 44, and a data portion 45.
  • the IP header information 42 and the UDP header information 43 are header information defined in the standard, but the user-defined header information 44 is the fifth layer (session layer), the sixth layer (presentation layer), or the seventh layer ( This is unique header information that is stored in an area corresponding to the application layer) and used in processing in these layers.
  • the packet according to the present invention includes various kinds of unique information such as SFC header information 46 given by the SFC header information giving device 22 and a packet ID 47 used by the packet order control circuit 12H in the user-defined header information 44. .
  • the packet ID 47 is a sequential value that is continuous between packets, and is compared with a next selection ID that indicates the processing order of the packets.
  • the data unit 45 stores data that is actually used for data processing for network services in the data processing unit 11S and the data processing circuit 11H.
  • the packet order control unit 12S of the software processing unit 10S operates in the same manner as the packet order control circuit 12H shown below, and a detailed description thereof is omitted here.
  • the buffer 32 is configured by a ring buffer, and is managed by a reference address (tp: reference position) 60, a start address (sp: start position) 61, and an end address (ep: end position) 62.
  • sp and ep indicate the beginning and end of the packet storage section
  • tp is the storage position when it is assumed that the packet to be output is stored in the buffer 32.
  • the input packet is stored in the buffer 32.
  • the beginning and end of the packet do not change, it is not necessary to correct sp and ep.
  • the next selection ID is updated to 5
  • the location of the packet stored in the buffer 32 can be uniquely specified. Therefore, the packet can be transferred to the data processing circuit 11H at the timing to be transferred in packet units. It is possible to assume that some packets will not arrive. In this case, if the time has elapsed or if more than a certain amount of packets are stored in the buffer 32, the next selection ID is forcibly updated to stall the process. Can be prevented.
  • the packet sequence control circuit 12H initializes various processing parameters set in advance (step 100), and then waits until a packet is received from the packet transfer circuit 13H (step 101: NO).
  • the packet order control circuit 12H compares the packet ID of the received input packet with the next selection ID (step 102).
  • the packet order control circuit 12H analyzes the input packet (step 103), and uses the header information of the input packet as the packet generation circuit 38. (Step 104), and the data stored in the input packet is output to the data processing circuit 11H (step 105).
  • the packet order control circuit 12H updates the next selection ID to the next packet ID and also updates tp (step 106), and determines the end of the operation based on an external control signal or the like (step 107).
  • the process returns to step 101, and when ending the packet reception process (step 107: YES), the series of packet reception processes is terminated.
  • the packet sequence control circuit 12H determines whether or not there is an empty space in the buffer 32 (step 108). If there is a free space (step 108: YES), the packet storage position in the buffer 32 is calculated by the above-described method (step 109), the packet is stored at that position (step 110), and the search for sp and ep is performed. After updating (step 112), the process proceeds to step 107. If there is no space (step 108: NO), the packet is discarded (step 112), and the process proceeds to step 107.
  • the packet sequence control circuit 12H initializes various processing parameters set in advance (step 200), and then stores the packet in the buffer 32 until the buffer 32 is not empty. (Step 201: YES).
  • the packet order control circuit 12H determines the packet ID of the first packet in the buffer 32 indicated by sp and the next selection ID of the target packet indicated by tp. Are compared (step 202). If these packet IDs do not match the next selection ID (step 202: NO), the process returns to step 201.
  • the packet sequence control circuit 12H reads the packet stored at the position of sp from the buffer 32 (step 203), and the data analysis circuit 34. The packet is analyzed (step 204), the header information of the packet is transferred to the packet generation circuit 38 (step 205), and the data stored in the packet is output to the data processing circuit 11H (step 206).
  • the packet order control circuit 12H searches for the next top packet stored in the buffer 32 by updating sp (step 207). At this time, if sp and ep match, it can be determined that no packet is stored in the buffer 32, and therefore the search is stopped. At the same time, the next selection ID and tp are updated (step 208).
  • step 209 NO
  • step 209: YES a series of packet transfer processes are ended.
  • the packet order control circuit 12H can guarantee the packet order and pass the data to the data processing circuit 11H in an appropriate order.
  • Fig. 9 shows an example of transmitting two images in succession.
  • the data processing unit 11H can specify the image and coordinates to which each packet belongs, and determine the transmission order of the packets. It can be applied to
  • the number of blocks included in one image that is, the number of block divisions
  • the packet ID to which integer values are sequentially assigned is calculated as the packet transmission order by the following equation.
  • packetID N ⁇ (frameID) + (blockID)
  • the buffer 32 for temporarily storing the packets is provided in the packet order control circuit 12H, and the comparison circuit 31 selects the next according to the packet ID of the input packet and the order.
  • the control circuit 36 selects the packet as a transfer processing target.
  • the packet ID does not match the next selection ID, the packet is stored in the storage location corresponding to the packet ID, and the packet having the packet ID corresponding to the next selection ID is stored in the buffer 32 The packet is selected as a transfer process target.
  • the control circuit 36 stores a packet in the buffer 32
  • the control circuit 36 stores the packet in a storage position that is advanced from the reference position by the difference between the packet ID and the next selection ID in the buffer 32 and transfers the packet.
  • the head position of the packet stored in the buffer 32 is compared with the reference position corresponding to the next selection ID, and these head position and the reference position match. In this case, the packet stored at the head position is selected as a transfer processing target.
  • the packet ID and the next selection are selected. It is determined accurately based on the ID. Therefore, when a packet is selected as a transfer target, it can be transferred to the data processing circuit 11H without going through the buffer 32. Further, since the packet stored in the buffer 32 can uniquely identify the storage location based on the packet ID, the packet corresponding to the next selection ID can be immediately selected from the buffer 32.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

パケット順序制御回路(12H)に、パケットを一時格納しておくためのバッファ(32)を設け、比較回路(31)が、入力されたパケットのパケットIDと、順序に従って次に選択すべきパケットのパケットIDを示す次選択IDとを比較し、制御回路(36)が、比較の結果、パケットIDと次選択IDとが一致しなかった場合は、当該パケットIDと対応する格納位置に入力されたパケットを格納し、これらパケットIDと次選択IDとが一致した場合は、入力されたパケットをバッファ(32)に格納せずに転送処理の対象として選択し、次選択IDがバッファ(32)に格納されているパケットのパケットIDと一致した場合、当該パケットを転送処理の対象として選択する。これにより、少ないメモリリソースでパケットの処理順序を保証する。

Description

データ処理装置、ネットワークシステム、パケット順序制御回路、およびデータ処理方法
 本発明は、複数のデータ処理装置を連携させてネットワークサービスを提供する際に用いるパケット順序制御技術に関する。
 従来、ユーザに対して提供するネットワークサービスに関する機能は、ルータやゲートウェイなど専用ハードウェアで構成されていたが、近年、設備コストの削減等を目的として汎用サーバ上でソフトウェアとして動作させるNFV(Network Functions Virtualization)技術に注目が集まっている。
 このような、ネットワーク上に点在する複数のNFVアプリケーションを自由に組み合わせて柔軟にネットワークサービスを提供する仕組みとして、ネットワークサービスに含まれる機能に応じて適切な順序で、サービスデータをパケットで転送処理するSFC(Service Function Chaining)技術が検討されている(例えば、特許文献1など参照)。
 一般に、SFC技術を用いたシステムは、任意のアルゴリズムに基づいたサービス処理を行うデータ処理機能(SF:Service Function)と、ヘッダ情報を基にしてサービスデータを含むパケットを転送するパケット転送機能(SFF:Service Function Forwarder)と、ネットワークシステム全体を制御する制御機能とから構成される。
 SFC技術は、主にネットワークサービスに関する機能を仮想化して柔軟なサービス運用を可能とすることを目的に開発されているが、ネットワーク以外の機能に応用しても同様の効果が期待できると考えられる。例えば、画像処理機能を仮想化し、ネットワーク上で画像を分類することを考える。本来であれば、ユーザは対象となるすべての画像を取得してから目的の物体が写った画像を分類する必要がある。しかし、ネットワーク上で画像を分類することでユーザは必要な画像だけを受け取ることができ、自端末での処理を削減することができる。
特開2016-46736号公報
"DPDK Programmer’s Guide 15.Reorder Library"、[online]、2015年、Intel Corporation、[平成28年12月21日検索]、インターネット<URL:http://dpdk.org/doc/guides/prog_guide/reorder_lib.html>
 このような、画像処理機能は、一般に計算量が多くソフトウェア処理に向かないため、ASIC(Application Specific Integrated Circuit)やGPU(Graphics Processing Unit)、FPGA(Field-Programmable Gate Array)などのハードウェアを用いて計算することが望ましい。そのため、データ処理を行うネットワーク装置はソフトウェア処理機能に加えてハードウェア処理機能を備える必要がある。
 また、ネットワーク上でデータをやり取りする場合、一般にはパケット通信が用いられる。パケット通信ではデータを小さな単位であるパケットに分割して個別に送信する。パケットは様々な要因で処理順序が入れ替わる可能性があるため、受信側ではパケットの順序を入れ替えて正しいデータを組み立てる必要がある。
 OSI(Open Systems Interconnection)参照モデルにおいて、IP(Internet Protocol)はネットワーク層における主要なプロトコルであり、TCP(Transmission Control Protocol)はトランスポート層におけるプロトコルである。このTCPを用いた通信では、パケットの処理順序をトランスポート層で保証することができるが、TCPは一般に複雑な処理を必要とする通信プロトコルであるため、遅延が致命的であるアプリケーションには向かない。
 このようなアプリケーションに対しては、トランスポート層における他のプロトコルであるUDP(User Datagram Protocol)を用いた通信を行うことがある。しかし、UDPではパケットの処理順序を保証することができないため、データの正しさはアプリケーション層で保証する必要がある。
 よって、ハードウェアにおいてUDPパケットを入力としたデータ処理を行う場合、アプリケーションと結合したパケット順序制御機構が必要となる。
 従来、パケットの処理順序を制御する仕組みとして、DPDK(Data Plane Development Kit)においてReorder Libraryが提供されている(例えば、非特許文献1など参照)。このDPDKは、ネットワーク処理に特化したソフトウェアライブラリ群であり、非常に高速なネットワーク処理を実現することができる。
 具体的には、Reorder Libraryは、次のように動作する。まず、入力パケットをシーケンス番号に従ってOrder Bufferに格納する。次に、Order Bufferの中身をReady Bufferの空き領域に移動する。この後、アプリケーションがReady Bufferからパケットを取り出す。
 しかしながら、このようなDPDKのReorder Libraryによれば、パケットの処理順序を保証できるものの、構成上Order BufferとReady Bufferという2個のバッファが必要となる。このため、メモリリソースの制約が厳しいハードウェア実装には向いておらず、少ないメモリリソースでパケットの処理順序を保証できないという問題点があった。
 本発明はこのような課題を解決するためのものであり、少ないメモリリソースでパケットの処理順序を保証できるパケット順序制御技術を提供することを目的としている。
 このような目的を達成するために、本発明にかかるデータ処理装置は、通信リンクを介してデータ通信を行う1つまたは複数の入出力回路と、ユーザが利用するネットワークサービスを構成するデータ処理を、ハードウェアで実現するように構成されたハードウェア処理部とを備え、前記ハードウェア処理部は、入力されたデータに基づいて前記データ処理を実行するデータ処理回路と、前記データ処理を実行するためのデータを含むパケットの受信、および、前記データ処理により得られたデータを含むパケットの送信を行うパケット転送回路と、前記パケット転送回路で受信して入力されたパケットを、これらパケットのヘッダ情報に含まれるパケットIDの順序に従って順に選択し、選択したパケットに含まれるデータを前記データ処理回路へ転送する転送処理を行うパケット順序制御回路とを備え、前記パケット順序制御回路は、パケットを一時格納しておくためのバッファと、入力されたパケットのパケットIDと、前記順序に従って次に選択すべきパケットのパケットIDを示す次選択IDとを比較する比較回路と、前記比較回路での比較の結果、前記パケットIDと前記次選択IDとが一致しなかった場合は、前記バッファのうち前記パケットIDと対応する格納位置に前記入力されたパケットを格納し、前記パケットIDと前記次選択IDとが一致した場合は、前記入力されたパケットを前記バッファに格納せずに前記転送処理の対象として選択する制御回路とを備え、前記制御回路は、前記次選択IDが前記バッファに格納されているパケットのパケットIDと一致した場合、前記パケットを前記転送処理の対象として選択するようにしたものである。
 また、本発明にかかるネットワークシステムは、ネットワーク上に分散配置された複数のデータ処理装置を備え、これらデータ処理装置を連携させることにより、ユーザに対して各種のネットワークサービスを提供するネットワークシステムであって、少なくとも1つまたは複数の前記データ処理装置が、前記ネットワークサービスを構成するデータ処理をハードウェアで実現する、上記のデータ処理装置からなるものである。
 また、本発明にかかるパケット順序制御回路は、予め設定されている処理を行うパケットを一時格納しておくためのバッファと、入力されたパケットに含まれるパケットIDと、パケットIDの順序に従って次に選択すべきパケットのパケットIDを示す次選択IDとを比較する比較回路と、前記比較回路での比較の結果、前記パケットIDと前記次選択IDとが一致しなかった場合は、前記バッファのうち前記パケットIDと対応する格納位置に前記入力されたパケットを格納し、前記パケットIDと前記次選択IDとが一致した場合は、前記入力されたパケットを前記バッファに格納せずに前記処理の対象として選択する制御回路とを備え、前記制御回路は、前記次選択IDが前記バッファに格納されているパケットのパケットIDと一致した場合、前記パケットを前記処理の対象として選択するようにしたものである。
 また、本発明にかかるデータ処理方法は、通信リンクを介してデータ通信を行う1つまたは複数の入出力回路と、ユーザが利用するネットワークサービスを構成するデータ処理を、ハードウェアで実現するように構成されたハードウェア処理部とを備えるデータ処理装置で用いられるデータ処理方法であって、データ処理回路が、入力されたデータに基づいて前記データ処理を実行するデータ処理ステップと、パケット転送回路が、前記データ処理を実行するためのデータを含むパケットの受信、および、前記データ処理により得られたデータを含むパケットの送信を行うパケット転送ステップと、パケット順序制御回路が、前記パケット転送ステップで受信して入力されたパケットを、これらパケットのヘッダ情報に含まれるパケットIDの順序に従って順に選択し、選択したパケットに含まれるデータを前記データ処理ステップへ転送する転送処理を行うパケット順序制御ステップとを備え、前記パケット順序制御ステップは、比較回路が、入力されたパケットのパケットIDと、前記順序に従って次に選択すべきパケットのパケットIDを示す次選択IDとを比較する比較ステップと、制御回路が、前記比較回路での比較の結果、前記パケットIDと前記次選択IDとが一致しなかった場合は、パケットを一時格納しておくためのバッファのうち、前記パケットIDと対応する格納位置に前記入力されたパケットを格納し、前記パケットIDと前記次選択IDとが一致した場合は、前記入力されたパケットを前記バッファに格納せずに前記転送処理の対象として選択する制御ステップとを備え、前記制御ステップは、前記次選択IDが前記バッファに格納されているパケットのパケットIDと一致した場合、前記パケットを前記転送処理の対象として選択するようにしたものである。
 本発明によれば、パケットIDの順序に従って、パケット順序制御回路に入力されたパケットを、データ処理回路への転送対象として選択するか、もしくは、バッファに一時格納するかが、パケットIDと次選択IDとに基づいて正確に判定されることになる。このため、パケットが転送対象として選択した場合は、バッファを経由することなくデータ処理部へ転送することができる。また、バッファに格納されているパケットはパケットIDに基づいてその格納場所を一意に特定することができるため、次選択IDと対応するパケットをバッファから直ちに選択することが可能となる。
 したがって、1つのバッファを設けるだけで、順次入力されるパケットを、これらパケットのヘッダ情報に含まれるパケットIDの順序に従って、順に選択することができる。このため、メモリリソースの制約が厳しいハードウェア実装であっても、最小限のメモリリソースでパケットの処理順序を保証することが可能となる。これにより、画像処理など、計算量が多くソフトウェア処理に向かないデータ処理が必要となるネットワークサービスであっても、メモリリソースの制約が厳しいハードウェア実装で実現することが可能となる。
図1は、ネットワークシステムの構成を示すブロック図である。 図2は、データ処理装置の構成を示すブロック図である。 図3Aは、パケット順序制御回路の構成を示すブロック図である。 図3Bは、パケット順序制御部の構成を示すブロック図である。 図4は、ネットワークシステムで用いるパケットフォーマットを示す説明図である。 図5は、パケット順序制御部の動作例を示す説明図である。 図6は、バッファの動作例を示す説明図である。 図7は、パケット順序制御部でのパケット受信処理を示すフローチャートである。 図8は、パケット順序制御部でのパケット転送処理を示すフローチャートである。 図9は、2枚の画像を連続して送信する動作例を示す説明図である。
 次に、本発明の一実施の形態について図面を参照して説明する。
[ネットワークシステム]
 まず、図1を参照して、本実施の形態にかかるネットワークシステム1について説明する。
 図1に示すように、このネットワークシステム1は、SFC(Service Function Chaining)技術に基づいて、ネットワーク上に分散して配置されている複数のデータ処理機能を連携させることにより、ユーザに対して各種のネットワークサービスを提供する機能を有している。なお、本発明におけるネットワークサービスとは、ネットワーク機能を提供するだけでなく、例えば、画像処理や動画処理など、ネットワーク上で動作する上位アプリケーションを含むものである。
 ネットワークシステム1は、通信リンクLを介して相互に接続されて、ユーザが利用するネットワークサービスを構成するデータ処理を実行する複数のデータ処理装置10と、パケットにSFCヘッダ情報を付与するSFCヘッダ情報付与装置22と、ネットワークサービスを構成するデータ処理の連携を示すサービスパターンに基づいて、データ処理装置10を制御して所定の順序で連携させることにより、ネットワークサービスをユーザに対して提供する制御装置20とから構成される。
 データ処理装置10は、主な機能部として、ユーザが利用するネットワークサービスを構成するデータ処理を実行するデータ処理部(SF)11S、各パケットのヘッダ情報に基づいて処理順序の並び替えを行うパケット順序制御部(SR)12S、および、データ処理部11Sで処理するサービスデータを転送するパケット転送部(SFF)13Sと、ユーザが利用するネットワークサービスを構成するデータ処理を実行するデータ処理回路(HF)11H、各パケットのヘッダ情報に基づいて処理順序の並び替えを行うパケット順序制御回路(HR)12H、および、データ処理回路11Hで処理するサービスデータを転送するパケット転送回路(HFF)13Hとを備えている。
 ネットワークシステム1において、外部通信ネットワークNWからのパケットは、SFCヘッダ情報付与装置22でSFCヘッダ情報が付与される。ネットワークシステム1内では、このSFCヘッダ情報を元にして、データ処理装置10のパケット転送部13Sまたはパケット転送回路13Hでルーティングが行われる。
 これにより、パケット転送部13Sでは、パケット順序制御部12Sを介して自装置のデータ処理部11Sまたはパケット転送部13Sに転送されるか、他のデータ処理装置10に転送される。また、パケット転送回路13Hでは、パケット順序制御回路12Hを介して自装置のデータ処理回路11Hまたはパケット転送回路13Hに転送されるか、他のデータ処理装置10に転送される。
 この際、パケットは1つ以上のデータ処理部11Sまたはデータ処理回路11Hにおいて計算され、ユーザ端末21に送られる。この仕組みにより、ユーザが必要とした処理はネットワーク上で行われるため、ユーザ端末21での処理が削減される。
[データ処理装置]
 次に、図2を参照して、本実施の形態にかかるデータ処理装置10について説明する。
 図2に示すように、データ処理装置10は、主にCPU(ハードウェア)とプログラム(ソフトウェア)とが協働することにより、ユーザが利用するネットワークサービスを構成するデータ処理を実現するように構成されたソフトウェア処理部10S、主にハードウェアにより、ユーザが利用するネットワークサービスを構成するデータ処理を実現するように構成されたハードウェア処理部10H、および通信リンクLを介してデータ通信を行う1つまたは複数の入出力回路15から構成されており、例えば、汎用サーバとFPGA(Field-Programmable Gate Array)を組み合わせることで実現される。
 ソフトウェア処理部10Sは、主な機能部として、サービスデータを含む1つ以上のパケットをまとめてデータ処理する1つまたは複数のデータ処理部(SF)11Sと、入出力回路15を介して装置外部から受信したパケットをデータ処理部11Sまたは他のデータ処理装置10に転送するパケット転送部(SFF)13Sと、データ処理部11Sごとに設けられて、対応するデータ処理部11Sとパケット転送部13Sとの間でやり取りする各パケットのヘッダ情報に基づいて処理順序の並び替えを行うパケット順序制御部(SR)12Sと、入出力回路15を介して装置外部からパケット転送先情報を取得する転送制御部14Sとを備えている。
 ハードウェア処理部10Hは、主な機能部として、サービスデータを含む1つ以上のパケットをまとめてデータ処理する1つまたは複数のデータ処理回路(HF)11Hと、入出力回路15を介して装置外部から受信したパケットをデータ処理回路11Hまたは他のデータ処理装置10に転送するパケット転送回路(HFF)13Hと、データ処理回路11Hごとに設けられて、パケット転送回路13Hから入力されたパケットのデータを対応するデータ処理回路11Hへ転送する際、これらパケットのヘッダ情報に含まれるパケットIDの順序に従って順に選択してデータを転送するパケット順序制御回路(HR)12Hと、入出力回路15を介して装置外部からパケット転送先情報を取得する転送制御回路14Hとを備えている。
 図2の構成例では、ソフトウェア処理部10Sおよびハードウェア処理部10Hに、それぞれデータ処理部11Sおよびデータ処理回路11Hが2つずつ設けられている例が示されているが、データ処理部11Sおよびデータ処理回路11Hの数についてはこれに限定されるものではない。
 また、転送制御部14Sおよび転送制御回路14Hは、パケット転送先情報を相互にやり取りする機能を有している。また、入出力回路15はパケットを相互にやり取りする機能を有している。
 入出力回路15が受信したパケットは、対応するパケット転送部13Sまたはパケット転送回路13Hに転送される。ソフトウェア処理部10Sにおいて、パケット転送部13Sは、入力パケットのSFCヘッダ情報に基づいて、入出力回路15、パケット順序制御部12S、もしくはパケット転送回路13Hに入力パケットを転送する。パケットに関する転送先情報は、転送制御部14Sによって管理される。ハードウェア処理部10Hにおいて、パケット転送回路13Hは、入力パケットのSFCヘッダ情報に基づいて、入出力回路15、パケット順序制御回路12H、もしくはパケット転送部13Sに入力パケットを転送する。パケットに関する転送先情報は、転送制御回路14Hによって管理される。
 ソフトウェア処理部10Sにおいて、パケットを用いてデータ処理を行う場合、パケットは、パケット転送部13Sからパケット順序制御部12Sを経由して、データ処理部11Sに転送される。この際、パケット順序制御部12Sでは、パケットの処理順序に関する制御と、パケットのパースとが行われる。データ処理部11Sで計算されたデータは、パケット順序制御部12Sでパケットに整形された後、パケット転送部13Sに転送される。
 ハードウェア処理部10Hにおいて、パケットを用いてデータ処理を行う場合、パケットは、パケット転送回路13Hからパケット順序制御回路12Hを経由して、データ処理回路11Hに転送される。この際、パケット順序制御回路12Hでは、パケットの処理順序に関する制御と、パケットのパースとが行われる。データ処理回路11Hで計算されたデータは、パケット順序制御回路12Hでパケットに整形された後、パケット転送回路13Hに転送される。
 データ処理装置10内で必要な処理が終わったパケットは、入出力回路15を経由して他のデータ処理装置10へ転送される。これを各データ処理装置10で繰り返すことで、ユーザが必要とした処理が順番に実行され、最終的な計算結果がユーザ端末21に届くことになる。
[パケット順序制御回路]
 次に、図3Aを参照して、本実施の形態にかかるパケット順序制御回路12Hについて説明する。
 図3Aに示すように、パケット順序制御回路12Hは、全体としてハードウェアにより実現されており、主な回路部として、パケット受信回路30、比較回路31、バッファ32、パケット選択回路33、データ解析回路34、データ送信回路35、制御回路36、データ受信回路37、パケット生成回路38、およびパケット送信回路39を備えている。
 なお、ソフトウェア処理部10Sのパケット順序制御部12Sは、パケット順序制御回路12Hと同様の機能を備えているものであり、ここでの詳細な説明は省略する。
 すなわち、図3Bに示すように、パケット順序制御部12Sは、全体としてCPUとプログラムとが協働することにより実現されており、主な処理部として、パケット受信部70、比較部71、バッファ72、パケット選択部73、データ解析部74、データ送信部75、制御部76、データ受信部77、パケット生成部78、およびパケット送信部79を備えている。これら処理部は、パケット順序制御回路12Hのパケット受信回路30、比較回路31、バッファ32、パケット選択回路33、データ解析回路34、データ送信回路35、制御回路36、データ受信回路37、パケット生成回路38、およびパケット送信回路39にそれぞれ対応している。
 パケット受信回路30は、パケット転送回路13Hからパケットを受信し、受信したパケットを比較回路31に転送する機能と、制御回路36からの指示に応じてパケットをバッファ32またはパケット選択回路33へ転送する機能とを有している。
 バッファ32は、全体として半導体メモリから構成されて、パケットの処理順序を制御するためにパケットを一時的に格納しておくためのリングバッファとして用いられる。
 比較回路31は、入力されたパケットのヘッダ情報からそのパケットに割り当てられたパケットIDを取得して、比較回路31が保持する次選択IDと比較し、比較結果を制御回路36に出力する機能を有している。次選択IDは、その時点でデータ処理回路11Hに送るパケットを判別するために用いる値で、パケットの処理順序を示している。
 パケット選択回路33は、制御回路36からの指示に応じて、バッファ32から読み出したパケットまたはパケット受信回路30から入力されたパケットのいずれかを選択して、データ解析回路34へ出力する機能を有している。
 制御回路36は、比較回路31からの比較結果を取得し、パケットIDと次選択IDが一致し、受信したパケットが転送対象であった場合、バッファ32に格納せずにパケット選択回路33を制御してそのパケットをデータ解析回路34に転送する機能と、パケットIDと次選択IDが不一致だった場合、パケット受信回路30を制御してそのパケットをバッファ32に格納する機能と、バッファ32に格納されているパケットのパケットIDと次選択IDが一致した場合(時点)において、パケット選択回路33を制御してそのパケットをバッファ32から読み出してデータ解析回路34に転送する機能とを有している。
 また、制御回路36は、バッファ32に入力されたパケットを格納する際、バッファ32のうち、パケットIDと次選択IDとの差分だけ、次選択IDに対応する基準位置から進んだ格納位置に入力されたパケットを格納する機能と、転送処理の対象としてバッファ32からパケットを選択する際、バッファ32に格納されているそれぞれのパケットの先頭位置と、次選択IDに対応する基準位置とを比較し、これら先頭位置と基準位置とが一致した場合は、先頭位置に格納されているパケットを転送処理の対象として選択する機能とを有している。
 データ解析回路34は、入力されたパケットからヘッダ情報を除くデータを取得し、データ送信回路35を介してデータ処理回路11Hへ送信する機能と、入力されたパケットから取得したヘッダ情報をパケット生成回路38に転送する機能とを有している。
 パケット生成回路38は、データ受信回路37を介してデータ処理回路11Hから受信したデータ処理後のデータと、データ解析回路34からのヘッダ情報とを合わせて、パケットを生成する機能を有している。
 パケット送信回路39は、パケット生成回路38で生成したパケットをパケット転送回路13Hに送信する機能を有している。
 ネットワークシステム1で用いるパケット40は、一般的なEthernet(登録商標)IIのフレーム形式を用いている。図4のパケットフォーマットに示すように、パケット40のデータ部41は、IPヘッダ情報42、UDPヘッダ情報43、ユーザ定義ヘッダ情報44、およびデータ部45から構成されている。IPヘッダ情報42とUDPヘッダ情報43は規格で定められたヘッダ情報だが、ユーザ定義ヘッダ情報44はOSI参照モデルにおける第5層(セッション層)、第6層(プレゼンテーション層)、または第7層(アプリケーション層)と対応する領域に格納されて、これらレイヤにおける処理で用いられる独自のヘッダ情報である。
 本発明にかかるパケットは、このユーザ定義ヘッダ情報44に、SFCヘッダ情報付与装置22で付与されるSFCヘッダ情報46や、パケット順序制御回路12Hで用いるパケットID47などの各種の独自情報を含んでいる。パケットID47は、パケット間で連続したシーケンシャルな値であり、パケットの処理順序を示す次選択IDと比較される。データ部45には、データ処理部11Sおよびデータ処理回路11Hにおいて、実際にネットワークサービスのためのデータ処理に使用されるデータが格納される。
[本実施の形態の動作]
 次に、図5を参照して、本実施の形態にかかるハードウェア処理部10Hのパケット順序制御回路12Hの動作について説明する。なお、ソフトウェア処理部10Sのパケット順序制御部12Sは、以下に示すパケット順序制御回路12Hと同様に動作するものであり、ここでの詳細な説明は省略する。
 図5に示すように、時刻TとT+1では、入力パケット(50)のパケットID(=1、2)とパケットの処理順序を示す次選択ID(51)(=1、2)とが一致していることから、入力パケットが出力データ(54)として転送される。このとき、次選択IDを次のパケットIDに更新する。
 一方、時刻T+2~T+4では、入力パケットのパケットID(=6、4、5)と次選択ID(=3)が一致しないため、入力パケットをバッファ32(52)に格納する。パケットを格納するアドレスの特定方法については後述する。
 時刻T+5において、入力パケットのパケットID(=3)と次選択ID(=3)が一致 するため、入力パケットが出力データとして転送され、次選択IDを次のパケットID(=4)に更新される。
 これにより、 時刻T+6では、バッファ32に格納されたパケットのパケットID(=4)が次選択ID(=4)と一致するため、該当の格納パケット(53)はバッファ32から取り出され、出力データとして転送される。 この間に次の入力パケット(パケットID=7)が到着した場合、出力対象外であることからバッファ32に格納される。
 次に、図6を参照して、本実施の形態にかかるバッファ32の動作について説明する。
 図6に示すように、バッファ32は、リングバッファにより構成し、基準アドレス(tp:基準位置)60、先頭アドレス(sp:先頭位置)61、末尾アドレス(ep:末尾位置)62によって管理する。spとepはパケットの格納区間の先頭と末尾の1つ後を示し、tpは出力対象のパケットをバッファ32に格納すると仮定した場合の格納位置である。
 リングバッファは、アドレスが末尾に達すると先頭に戻る動作をするため、終端とそれ以外においてはtpとspとepの値の大小関係が逆転する。しかし、それぞれの変数間は一致、不一致のみが重要であるため、各変数は同じルールに基づいて値を更新すれば問題はない。したがって、終端処理では値が末尾に達したとき、先頭に戻すだけでよい。
 入力パケットをバッファ32に追加する場合には、パケットIDと次選択IDの相対距離(=tpからの距離)を計算し、その結果をバッファ32のアドレスに変換する。そして、得られたアドレスの位置にパケットを格納する。tpは次選択IDと連動して更新し、tpとspが一致した時、spの位置に格納されている格納パケットをバッファ32から取り出す。その後、spを次の先頭パケットの格納位置に更新する。
 図6の時刻Tにおいて、バッファ32は空であり、tpとspとepは同じ位置(=2)を示しており、入力パケットのパケットID(=2)とパケットの処理順序を示す次選択ID(=2)とが一致していることから、入力パケットが出力データとして転送される。このとき、spとepを更新する(=3)とともに、次選択IDとtpを次のパケットID(=3)に更新する。
 続く、時刻T+1では、入力パケットのパケットID(=6)が次選択ID(=3)と一致しないため、入力パケットはバッファ32に格納する。このとき、パケットを次選択IDと入力パケットのパケットIDの差分(=6-3=3)だけtp(=3)より、格納アドレス順に沿って、時計回りに進んだ格納位置np(=6)に格納する。このとき、spをパケットを格納した位置(=6)に合わせ、epをその次の格納位置(=7)に合わせる。
 同様に、時刻T+2では、ID不一致のため、差分4-3=1だけtp(=3)より時計回りに進んだ格納位置np(=4)に格納する。このとき、先頭のパケットが変わるため、spをパケットIDが4のパケットを格納した位置(=4)に合わせる。
 次の時刻T+3では、ID不一致のため、差分5-3=2だけtp(=3)より時計回りに進んだ格納位置np(=5)に格納する。このときは、パケットの先頭と末尾は変わらないため、spとepを修正する必要はない。
 続く、時刻T+4では、入力パケットのパケットID(=3)と次選択ID(=3)が一致することから、入力パケットはバッファ32に格納されることなく、出力データとして転送される。このとき、次選択IDは更新されて4となり、tpが指し示すパケット格納位置は1つ隣の格納位置(=4)に更新される。
 この後、時刻T+5では、バッファ32のsp(=4)が示す格納位置にあるパケットがtpが示すパケット格納位置(=4)と一致するため、該当のパケット(パケットID=4)がバッファ32から取り出されて、出力データとして転送される。このとき、次選択IDは更新されて5となり、tpとspが指し示すパケット格納位置は1つ隣の格納位置(=5)に更新される。
 この後、入力パケットのパケットID(=7)が次選択ID(=5)と一致しないため、差分7-5=2だけtp(=5)より時計回りに進んだ格納位置np(=7)に格納する。このとき、epをその次の格納位置(=8)に合わせる。
 以上の動作により、バッファ32に格納されたパケットはその所在を一意に特定することが可能であるため、パケット単位で転送すべきタイミングにおいてデータ処理回路11Hへの転送が可能である。
 なお、一部のパケットが届かない状況も想定できるが、その場合は時間経過やパケットが一定量以上バッファ32に格納された場合に、次選択IDを強制的に更新することで、処理がストールすることを防ぐことができる。
[パケット受信処理]
 次に、図7を参照して、本実施の形態にかかるパケット順序制御回路12Hでのパケット受信処理について説明する。
 図7に示すように、まず、パケット順序制御回路12Hは、予め設定されている各種処理パラメータを初期化した後(ステップ100)、パケット転送回路13Hからパケットを受信するまで待機する(ステップ101:NO)。
 パケット転送回路13Hからパケットを受信した場合(ステップ101:YES)、パケット順序制御回路12Hは、受信した入力パケットのパケットIDと次選択IDとを比較する(ステップ102)。
 ここで、これらパケットIDと次選択IDとが一致した場合(ステップ102:YES)、パケット順序制御回路12Hは、入力パケットの解析を行い(ステップ103)、入力パケットのヘッダ情報をパケット生成回路38に転送し(ステップ104)、入力パケットに格納されているデータをデータ処理回路11Hに向けて出力する(ステップ105)。
 その後、パケット順序制御回路12Hは、次選択IDを次のパケットIDに更新するとともにtpも合わせて更新し(ステップ106)、外部からの制御信号等に基づいて動作の終了判定を行う(ステップ107)。ここで、パケット受信処理を続行する場合には(ステップ107:NO)、ステップ101に戻り、パケット受信処理を終了する場合には(ステップ107:YES)、一連のパケット受信処理を終了する。
 一方、入力パケットのパケットIDと次選択IDとが一致しなかった場合(ステップ102:NO)、パケット順序制御回路12Hは、バッファ32に空きがあるかを判定する(ステップ108)。
 ここで、空きがあれば(ステップ108:YES)、前述した手法によって、バッファ32におけるパケット格納位置を計算し(ステップ109)、その位置にパケットを格納し(ステップ110)、spとepの探索・更新を行った後(ステップ112)、ステップ107へ移行する。また、空きがなければ(ステップ108:NO)、そのパケットを破棄して(ステップ112)、ステップ107へ移行する。
[パケット転送処理]
 次に、図8を参照して、本実施の形態にかかるパケット順序制御回路12Hでのパケット転送処理について説明する。
 図8に示すように、まず、パケット順序制御回路12Hは、予め設定されている各種処理パラメータの初期化した後(ステップ200)、バッファ32が空き状態ではなくなるまで、すなわちパケットがバッファ32に格納されるまで待機する(ステップ201:YES)。
 いずれかのパケットがバッファ32に格納された場合(ステップ201:NO)、パケット順序制御回路12Hは、spが示すバッファ32内の先頭パケットのパケットIDと、tpが示す対象パケットの次選択IDとを比較する(ステップ202)。
 ここで、これらパケットIDと次選択IDとが一致しなかった場合(ステップ202:NO)、ステップ201に戻る。
 一方、パケットIDと次選択IDとが一致した場合(ステップ202:YES)、パケット順序制御回路12Hは、spの位置に格納されたパケットをバッファ32から読み出して(ステップ203)、データ解析回路34によりパケットを解析し(ステップ204)、パケットのヘッダ情報をパケット生成回路38に転送し(ステップ205)、パケットに格納されているデータをデータ処理回路11Hへ出力する(ステップ206)。
 続いて、パケット順序制御回路12Hは、spを更新してバッファ32内に格納された次の先頭パケットを探索する(ステップ207)。このとき、spとepが一致したら、バッファ32内にパケットは格納されていないと判断できるため、探索を停止する。合わせて次選択IDとtpを更新する(ステップ208)。
 この後、外部からの制御信号等に基づいて動作の終了判定を行う(ステップ209)。ここで、パケット転送処理を続行する場合には(ステップ209:NO)、ステップ201に戻り、パケット転送処理を終了する場合には(ステップ209:YES)、一連のパケット転送処理を終了する。
 以上により、パケット順序制御回路12Hは、パケット順序を保証し、データ処理回路11Hに適切な順序でデータを渡すことができる。
[本実施の形態の動作例]
 次に、図9を参照して、本実施の形態の動作例について説明する。
 画像データ等のリアルタイム通信でよく用いられるUDP通信では、パケットの順序を特定する手段は実装されていない。このため、通信経路上でパケットの順序が入れ替わる場合があるが、受信したパケットを組み立てて元の画像データを再生する際、効率よく処理する上で、パケットの順序は重要となる。
 そこで、本実施の形態を適用して、UDPヘッダよりも上位にアプリケーションに関連する情報を定義するヘッダ(図4のユーザ定義ヘッダ44)を追加し、パケットの順序制御に利用することを考える。
 図9に2枚の画像を連続して送信する例を示す。ここでは各画像(frameID=0~1)を4つのブロック(blockID=1~4)に分割してそれぞれをパケット化して順番に送信している。このとき、各パケットのユーザ定義ヘッダ44にframeIDとblockIDを保持しておくことで、データ処理部11Hでは各パケットが属している画像および座標を特定することができるとともに、パケットの送信順序を判別するのに応用することが可能である。
 例えば、1画像あたりに含まれるブロック数、すなわちブロック分割数をNとし、パケットの送信順序として、整数値がシーケンシャルに割り当てられるpacketIDを、次の式により計算する。
 packetID=N×(frameID)+(blockID)
 これにより、図9の例では、各画像には4つのブロックが含まれており、N=4となる。このため、最初に送信されるframeID=0、blockID=1のデータを含むパケットのpacketIDは4×0+1=1と計算される。また、frameID=1、blockID=1のデータを含むパケットのIDは4×1+1=5と計算される。
 したがって、このようにして計算したpacketIDを用いれば、パケット順序制御部12Hにおいてパケット順序を正しく保証することができる。
[本実施の形態の効果]
 このように、本実施の形態は、パケット順序制御回路12Hに、パケットを一時格納しておくためのバッファ32を設け、比較回路31が、入力されたパケットのパケットIDと、順序に従って次に選択すべきパケットのパケットIDを示す次選択IDとを比較し、制御回路36が、比較の結果、パケットIDと次選択IDとが一致した場合は、当該パケットを転送処理の対象として選択し、これらパケットIDと次選択IDとが一致しなかった場合は、当該パケットIDと対応する格納位置に当該パケットを格納し、次選択IDに対応するパケットIDを持つパケットがバッファ32に格納されている場合、当該パケットを転送処理の対象として選択するようにしたものである。
 より具体的には、制御回路36が、バッファ32にパケットを格納する際、バッファ32のうち、パケットIDと次選択IDとの差分だけ基準位置から進んだ格納位置に当該パケットを格納し、転送処理の対象としてバッファ32からパケットを選択する際、バッファ32に格納されているパケットの先頭位置と、次選択IDに対応する基準位置とを比較し、これら先頭位置と基準位置とが一致した場合は、先頭位置に格納されているパケットを転送処理の対象として選択するようにしたものである。
 これにより、パケットIDの順序に従って、パケット順序制御回路12Hに入力されたパケットを、データ処理回路11Hへの転送対象として選択するか、もしくは、バッファ32に一時格納するかが、パケットIDと次選択IDとに基づいて正確に判定されることになる。このため、パケットが転送対象として選択した場合は、バッファ32を経由することなくデータ処理回路11Hへ転送することができる。また、バッファ32に格納されているパケットはパケットIDに基づいてその格納場所を一意に特定することができるため、次選択IDと対応するパケットをバッファ32から直ちに選択することが可能となる。
 したがって、1つのバッファ32を設けるだけで、順次入力されるパケットを、これらパケットのヘッダ情報に含まれるパケットIDの順序に従って、順に選択することができる。このため、メモリリソースの制約が厳しいハードウェア実装であっても、最小限のメモリリソースでパケットの処理順序を保証することが可能となる。これにより、画像処理など、計算量が多くソフトウェア処理に向かないデータ処理が必要となるネットワークサービスであっても、メモリリソースの制約が厳しいハードウェア実装で実現することが可能となる。
[実施の形態の拡張]
 以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。
 1…ネットワークシステム、10…データ処理装置、10S…ソフトウェア処理部、10H…ハードウェア処理部、11S…データ処理部(SF)、11H…データ処理回路(HF)、12S…パケット順序制御部(SR)、12H…パケット順序制御回路(HR)、13S…パケット転送部(SFF)、13H…パケット転送回路(HFF)、14S…転送制御部、14H…転送制御回路、15…入出力回路、20…制御装置、21…ユーザ端末、22…SFCヘッダ情報付与装置(CL)、30…パケット受信回路、31…比較回路、32…バッファ、33…パケット選択回路、34…データ解析回路、35…データ送信回路、36…制御回路、37…データ受信回路、38…パケット生成回路、39…パケット送信回路、40…パケット、41…データ部、42…IPヘッダ情報、43…UDPヘッダ情報、44…ユーザ定義ヘッダ情報、45…データ部、46…SFCヘッダ情報、47…パケットID、70…パケット受信部、71…比較部、72…バッファ、73…パケット選択部、74…データ解析部、75…データ送信部、76…制御部、77…データ受信部、78…パケット生成部、79…パケット送信部、L…通信リンク。

Claims (9)

  1.  通信リンクを介してデータ通信を行う1つまたは複数の入出力回路と、
     ユーザが利用するネットワークサービスを構成するデータ処理を、ハードウェアで実現するように構成されたハードウェア処理部とを備え、
     前記ハードウェア処理部は、
     入力されたデータに基づいて前記データ処理を実行するデータ処理回路と、
     前記データ処理を実行するためのデータを含むパケットの受信、および、前記データ処理により得られたデータを含むパケットの送信を行うパケット転送回路と、
     前記パケット転送回路で受信して入力されたパケットを、これらパケットのヘッダ情報に含まれるパケットIDの順序に従って順に選択し、選択したパケットに含まれるデータを前記データ処理回路へ転送する転送処理を行うパケット順序制御回路とを備え、
     前記パケット順序制御回路は、
     パケットを一時格納しておくためのバッファと、
     入力されたパケットのパケットIDと、前記順序に従って次に選択すべきパケットのパケットIDを示す次選択IDとを比較する比較回路と、
     前記比較回路での比較の結果、前記パケットIDと前記次選択IDとが一致しなかった場合は、前記バッファのうち前記パケットIDと対応する格納位置に前記入力されたパケットを格納し、前記パケットIDと前記次選択IDとが一致した場合は、前記入力されたパケットを前記バッファに格納せずに前記転送処理の対象として選択する制御回路とを備え、
     前記制御回路は、前記次選択IDが前記バッファに格納されているパケットのパケットIDと一致した場合、前記パケットを前記転送処理の対象として選択する
     ことを特徴とするデータ処理装置。
  2.  請求項1に記載のデータ処理装置において、
     前記制御回路は、前記バッファに前記入力されたパケットを格納する際、前記バッファのうち、前記パケットIDと前記次選択IDとの差分だけ、前記次選択IDに対応する基準位置から進んだ格納位置に前記入力されたパケットを格納することを特徴とするデータ処理装置。
  3.  請求項1または請求項2に記載のデータ処理装置において、
     前記制御回路は、前記転送処理の対象として前記バッファからパケットを選択する際、前記バッファに格納されているそれぞれのパケットの先頭位置と、前記次選択IDに対応する基準位置とを比較し、これら先頭位置と前記基準位置とが一致した場合は、前記先頭位置に格納されているパケットを前記転送処理の対象として選択することを特徴とするデータ処理装置。
  4.  請求項1~請求項3のいずれかに記載のデータ処理装置において、
     前記パケットIDは、前記パケットのうちOSI参照モデルにおける第5層、第6層、または第7層と対応する領域に格納されていることを特徴とするデータ処理装置。
  5.  ネットワーク上に分散配置された複数のデータ処理装置を備え、これらデータ処理装置を連携させることにより、ユーザに対して各種のネットワークサービスを提供するネットワークシステムであって、少なくとも1つまたは複数の前記データ処理装置が、前記ネットワークサービスを構成するデータ処理をハードウェアで実現する、請求項1~請求項4のいずれかに記載のデータ処理装置からなることを特徴とするネットワークシステム。
  6.  予め設定されている処理を行うパケットを一時格納しておくためのバッファと、
     入力されたパケットに含まれるパケットIDと、パケットIDの順序に従って次に選択すべきパケットのパケットIDを示す次選択IDとを比較する比較回路と、
     前記比較回路での比較の結果、前記パケットIDと前記次選択IDとが一致しなかった場合は、前記バッファのうち前記パケットIDと対応する格納位置に前記入力されたパケットを格納し、前記パケットIDと前記次選択IDとが一致した場合は、前記入力されたパケットを前記バッファに格納せずに前記処理の対象として選択する制御回路とを備え、
     前記制御回路は、前記次選択IDが前記バッファに格納されているパケットのパケットIDと一致した場合、前記パケットを前記処理の対象として選択する
     ことを特徴とするパケット順序制御回路。
  7.  通信リンクを介してデータ通信を行う1つまたは複数の入出力回路と、ユーザが利用するネットワークサービスを構成するデータ処理を、ハードウェアで実現するように構成されたハードウェア処理部とを備えるデータ処理装置で用いられるデータ処理方法であって、
     データ処理回路が、入力されたデータに基づいて前記データ処理を実行するデータ処理ステップと、
     パケット転送回路が、前記データ処理を実行するためのデータを含むパケットの受信、および、前記データ処理により得られたデータを含むパケットの送信を行うパケット転送ステップと、
     パケット順序制御回路が、前記パケット転送ステップで受信して入力されたパケットを、これらパケットのヘッダ情報に含まれるパケットIDの順序に従って順に選択し、選択したパケットに含まれるデータを前記データ処理ステップへ転送する転送処理を行うパケット順序制御ステップとを備え、
     前記パケット順序制御ステップは、
     比較回路が、入力されたパケットのパケットIDと、前記順序に従って次に選択すべきパケットのパケットIDを示す次選択IDとを比較する比較ステップと、
     制御回路が、前記比較回路での比較の結果、前記パケットIDと前記次選択IDとが一致しなかった場合は、パケットを一時格納しておくためのバッファのうち、前記パケットIDと対応する格納位置に前記入力されたパケットを格納し、前記パケットIDと前記次選択IDとが一致した場合は、前記入力されたパケットを前記バッファに格納せずに前記転送処理の対象として選択する制御ステップとを備え、
     前記制御ステップは、前記次選択IDが前記バッファに格納されているパケットのパケットIDと一致した場合、前記パケットを前記転送処理の対象として選択する
     ことを特徴とするデータ処理方法。
  8.  請求項7に記載のデータ処理方法において、
     前記制御ステップは、前記バッファに前記入力されたパケットを格納する際、前記バッファのうち、前記パケットIDと前記次選択IDとの差分だけ、前記次選択IDに対応する基準位置から進んだ格納位置に当該パケットを格納することを特徴とするデータ処理方法。
  9.  請求項7または請求項8に記載のデータ処理方法において、
     前記制御ステップは、前記転送処理の対象として前記バッファからパケットを選択する際、前記バッファに格納されているそれぞれのパケットの先頭位置と、前記次選択IDに対応する基準位置とを比較し、これら先頭位置と前記基準位置とが一致した場合は、前記先頭位置に格納されているパケットを前記転送処理の対象として選択することを特徴とするデータ処理方法。
PCT/JP2018/007501 2017-03-01 2018-02-28 データ処理装置、ネットワークシステム、パケット順序制御回路、およびデータ処理方法 WO2018159677A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019503062A JP6654733B2 (ja) 2017-03-01 2018-02-28 データ処理装置、ネットワークシステム、パケット順序制御回路、およびデータ処理方法
CN201880015077.2A CN110383779B (zh) 2017-03-01 2018-02-28 数据处理装置、网络系统、分组顺序控制电路和数据处理方法
US16/490,393 US10891246B2 (en) 2017-03-01 2018-02-28 Data processing apparatus, network system, packet order control circuit, and data processing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-038051 2017-03-01
JP2017038051 2017-03-01

Publications (1)

Publication Number Publication Date
WO2018159677A1 true WO2018159677A1 (ja) 2018-09-07

Family

ID=63370678

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/007501 WO2018159677A1 (ja) 2017-03-01 2018-02-28 データ処理装置、ネットワークシステム、パケット順序制御回路、およびデータ処理方法

Country Status (4)

Country Link
US (1) US10891246B2 (ja)
JP (1) JP6654733B2 (ja)
CN (1) CN110383779B (ja)
WO (1) WO2018159677A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023085266A1 (ja) * 2021-11-12 2023-05-19 日本電信電話株式会社 データ処理システムおよびデータ処理方法
WO2023085270A1 (ja) * 2021-11-12 2023-05-19 日本電信電話株式会社 データ転送デバイス、データ処理デバイスおよびデータ処理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003023462A (ja) * 2001-07-09 2003-01-24 Hitachi Ltd 多地点同報通信網用再送方法
JP2016046736A (ja) * 2014-08-25 2016-04-04 日本電信電話株式会社 サービスチェイニングシステム、サービスチェイニングフォワーダ装置、及びサービスチェイニング方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289023B1 (en) * 1997-09-25 2001-09-11 Hewlett-Packard Company Hardware checksum assist for network protocol stacks
JP5524584B2 (ja) * 2009-11-20 2014-06-18 キヤノン株式会社 画像処理装置及びその制御方法
CN102771093B (zh) * 2010-02-22 2014-12-10 日本电气株式会社 通信控制系统、切换节点、通信控制方法
US8903966B2 (en) * 2011-06-01 2014-12-02 International Business Machines Corporation Re-programming programmable hardware devices without system downtime
US9477631B2 (en) * 2014-06-26 2016-10-25 Intel Corporation Optimized credit return mechanism for packet sends

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003023462A (ja) * 2001-07-09 2003-01-24 Hitachi Ltd 多地点同報通信網用再送方法
JP2016046736A (ja) * 2014-08-25 2016-04-04 日本電信電話株式会社 サービスチェイニングシステム、サービスチェイニングフォワーダ装置、及びサービスチェイニング方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023085266A1 (ja) * 2021-11-12 2023-05-19 日本電信電話株式会社 データ処理システムおよびデータ処理方法
WO2023085270A1 (ja) * 2021-11-12 2023-05-19 日本電信電話株式会社 データ転送デバイス、データ処理デバイスおよびデータ処理方法

Also Published As

Publication number Publication date
US20200192833A1 (en) 2020-06-18
CN110383779A (zh) 2019-10-25
JPWO2018159677A1 (ja) 2019-11-07
JP6654733B2 (ja) 2020-02-26
CN110383779B (zh) 2021-09-14
US10891246B2 (en) 2021-01-12

Similar Documents

Publication Publication Date Title
CN109361600B (zh) 一种获取路径标识的方法和设备
EP3331205B1 (en) Data packet transmission method utilized in ipv6 network and device utilizing same
CN102272716A (zh) 网络分组的simd处理
JP2022550343A (ja) Srネットワークでパケットを転送する方法、デバイス、及びシステム
CN108429701A (zh) 网络加速系统
CN113691460B (zh) 基于负载均衡的数据传输方法、装置、设备及存储介质
WO2018159677A1 (ja) データ処理装置、ネットワークシステム、パケット順序制御回路、およびデータ処理方法
CN100377550C (zh) 一种路由表下一跳ip地址到mac地址解析方法
US20130262383A1 (en) Control method and storage controller apparatus
US20140112142A1 (en) Method of forwarding packet and apparatus thereof
JP2002077200A (ja) 管理局及び機器並びにネットワークシステム
CN106130867B (zh) 跨数据中心的虚拟机通信方法及装置
US9210093B2 (en) Alignment circuit and receiving apparatus
US10320661B2 (en) Communication device and communication method
US11388078B1 (en) Methods, systems, and computer readable media for generating and using statistically varying network traffic mixes to test network devices
CN104506440A (zh) 路由器的数据包发送方法和路由表修改方法
US20190391856A1 (en) Synchronization of multiple queues
CN114363236B (zh) 一种基于显式路径的流量控制方法及相关设备
WO2023085270A1 (ja) データ転送デバイス、データ処理デバイスおよびデータ処理方法
CN114553757B (zh) 基于可编程交换机的协议报文处理方法、装置和设备
US20210406013A1 (en) Processing device, information processing device, and information processing method
JP6907903B2 (ja) パケット識別装置および方法
JP5047099B2 (ja) データ通信システム、データ通信方法およびデータ通信システムを構成する情報処理装置
KR101701086B1 (ko) 사용자 정의 프로토콜을 적용한 하드웨어 프로토콜 스택과 하드웨어 프로토콜 스택의 사용자 정의 프로토콜 적용 방법
US11424959B2 (en) Communication apparatus and communication method that control processing sequence of communication packet

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019503062

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18761448

Country of ref document: EP

Kind code of ref document: A1