WO2023085266A1 - データ処理システムおよびデータ処理方法 - Google Patents

データ処理システムおよびデータ処理方法 Download PDF

Info

Publication number
WO2023085266A1
WO2023085266A1 PCT/JP2022/041554 JP2022041554W WO2023085266A1 WO 2023085266 A1 WO2023085266 A1 WO 2023085266A1 JP 2022041554 W JP2022041554 W JP 2022041554W WO 2023085266 A1 WO2023085266 A1 WO 2023085266A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
packet
data processing
data
service
Prior art date
Application number
PCT/JP2022/041554
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 日本電信電話株式会社
Publication of WO2023085266A1 publication Critical patent/WO2023085266A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/036Updating the topology between route computation elements, e.g. between OpenFlow controllers
    • H04L45/037Routes obligatorily traversing service-related nodes
    • H04L45/0377Routes obligatorily traversing service-related nodes for service chaining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/645Splitting route computation layer and forwarding layer, e.g. routing according to path computational element [PCE] or based on OpenFlow functionality
    • H04L45/655Interaction between route computation entities and forwarding entities, e.g. for route determination or for flow table update
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS

Definitions

  • the present invention relates to a data processing system and a data processing method that provide services to users using service function chaining technology.
  • SFC service function chaining
  • an entrance classifier (Classifier) 10 adds a tag to a packet 11 for each user, and a service function forwarder (SFF) 12 based on the tag Forward packet 11 to the appropriate SF.
  • SFF service function forwarder
  • reference numeral 13 denotes a server that implements SF
  • 14 denotes a service chain in which SFs provided to users are linked together.
  • SFC is developed mainly for network services.
  • SF a firewall, DPI (Deep Packet Inspection), load balancing, etc. are assumed. Since these functions complete processing for each packet, there is no need to consider users or packet order.
  • DPI Deep Packet Inspection
  • Non-Patent Document 2 discloses a video monitoring service combining two types of image processing functions as an image processing service using SFC.
  • the technology disclosed in Non-Patent Document 2 does not assume a situation in which multiple users use the network, and problems may occur when each user operates a service.
  • a user who uses a cloud service generally divides data into a plurality of packets (data packets) and sends them to the server 13, as shown in FIG.
  • 11A represents user A's data packet
  • 11B represents user B's data packet.
  • 14A represents a service chain in which SFs provided to user A are connected in a daisy chain
  • 14B represents a service chain in which SFs provided to user B are connected in a daisy chain.
  • the server 13 sorts data packets for each user, it is necessary to allocate computational resources for this purpose. In addition, memory resources are required to hold data packets. If the server 13 manages the users in this way, the resources that can be allocated to the SFs are reduced. Furthermore, since a user management function is required for each server 13, many resources are consumed in the entire system. Therefore, the mounting efficiency of the SF becomes low with respect to the system scale. A method of allocating different SFs without sharing SFs between service chains is also conceivable.
  • the present invention has been made to solve the above problems.
  • the object is to provide a system and a data processing method.
  • a data processing system of the present invention comprises a user management device configured to manage information on users who have applied for use of services and to control the transfer of packets received from users; a data processing device configured to perform data processing of a service function at a service function; one or more data transfer devices having one or more of the data processing devices under control; It is configured to calculate a chain route, send route information to the user management device, and update a routing table registered in the data transfer device on the calculated route based on the result of the route calculation.
  • an external transmission device configured to return to the user a packet for which all data processing of the service chain has been completed, wherein the user management device adds the A tag describing route information is added to the packet and sent to the data transfer device, and the data transfer device receives the packet based on the route information and the routing table included in the tag attached to the received packet.
  • a packet is transferred to a data processing device or another data transfer device, and the data processing device returns a packet for which data processing has been completed to the data transfer device as a transmission source.
  • the user management device can be used to manage data for each user, and one service chain can manage data. Control so that only user data is sent.
  • data collision in the data processing device is avoided and one data processing device (service function) can be used by a plurality of users. A decrease in efficiency can be suppressed.
  • FIG. 1 is a block diagram showing the configuration of a data processing system according to an embodiment of the invention.
  • FIG. 2 is a block diagram showing the configuration of the user management device according to the embodiment of the invention.
  • FIG. 3 is a flow chart explaining the operation of the user management device according to the embodiment of the present invention.
  • FIG. 4 is a block diagram showing the configuration of the data management section of the user management device according to the embodiment of the present invention.
  • FIG. 5 is a block diagram showing configurations of a data transfer device and a data processing device according to an embodiment of the present invention.
  • FIG. 6 is a flow chart illustrating the operation of a data transfer device according to an embodiment of the invention.
  • FIG. 7 is a flow chart illustrating the operation of a data processing device according to an embodiment of the invention.
  • FIG. 1 is a block diagram showing the configuration of a data processing system according to an embodiment of the invention.
  • FIG. 2 is a block diagram showing the configuration of the user management device according to the embodiment of the invention.
  • FIG. 8 is a flow chart explaining the operation of the communication management device according to the embodiment of the present invention.
  • FIG. 9 is a diagram showing an example of network connection of the data processing system according to the embodiment of the present invention.
  • FIG. 10 is a diagram showing another example of network connection of the data processing system according to the embodiment of the present invention.
  • FIG. 11 is a diagram showing another example of network connection of the data processing system according to the embodiment of the present invention.
  • FIG. 12 is a diagram showing another example of network connection of the data processing system according to the embodiment of the present invention.
  • FIG. 13 is a sequence diagram explaining the operation of the data processing system according to the embodiment of the invention.
  • FIG. 14 is a sequence diagram illustrating another operation of the data processing system according to the embodiment of the invention.
  • FIG. 15A is a diagram showing the format of a packet transmitted from a user terminal when applying for service use.
  • FIG. 15B is a diagram showing the format of packets transmitted and received between the user terminal and the data processing system when using the service.
  • FIG. 15C is a diagram showing the format of packets transmitted and received within the data processing system when using the service.
  • FIG. 16 is a block diagram showing a configuration example of a computer that implements the data processing system according to the embodiment of the present invention.
  • FIG. 17 is a diagram illustrating conventional service function chaining technology.
  • FIG. 18 is a diagram for explaining problems with conventional service function chaining technology.
  • FIG. 1 is a block diagram showing the configuration of a data processing system according to an embodiment of the invention.
  • the data processing system includes user management devices 1-1 to 1-3 for managing information on users who have applied for use of services and for controlling transfer of packets received from users, and one or more data for transferring packets. Transfer devices 2-1 to 2-9, data processing devices 3-1 to 3-13 for performing SF data processing on data contained in received packets, and packets for which all data processing in the service chain has been completed. to the user. Further, the data processing system calculates the route of the service chain necessary for realizing the service requested by the user, transmits the route information to the user management devices 1-1 to 1-3, and transfers data on the calculated route.
  • a communication management device 5 is provided for updating the routing table registered in the devices 2-1 to 2-9 based on the result of route calculation.
  • the data processing devices 3-1 to 3-13 include CPUs (Central Processing Units), FPGAs (field-programmable gate arrays), GPUs (graphics processing units), and ASICs (Application Specific integrated circuits).
  • CPUs Central Processing Units
  • FPGAs field-programmable gate arrays
  • GPUs graphics processing units
  • ASICs Application Specific integrated circuits
  • services customized for each user are provided by combining SF realized by data processing devices 3-1 to 3-13.
  • data transfer devices 2-1 to 2-9 communicate with each other, and transfer data packets sent from users to appropriate SFs.
  • the data packet is transferred to another SF for data processing.
  • the processing contents are changed for each user to provide a service according to the purpose of the user.
  • the communication path that data packets follow is called a service chain. Similar to FIG. 17, 14 in FIG. 1 represents a service chain. If a service chain is used by multiple users at the same time, data will collide in SF, and an appropriate result cannot be guaranteed. Therefore, in this embodiment, data packets are managed by the user management devices 1-1 to 1-3 at the entrance of the data processing system, and the service chain is controlled so that only one user can use it.
  • the user management devices 1-1 to 1-3 also add tags to data packets.
  • the tag describes the route information of the service chain.
  • Data transfer devices 2-1 to 2-9 perform routing of data packets based on tags.
  • Specific examples of tags include NSH (Network Service Header), MPLS (Multi-Protocol Label Switching) header, and SRv6 (Segment Routing over IPv6). You can also define your own header.
  • routing using tags as in the present embodiment, the size of the routing table can be reduced by providing route information to the data packet, and the computational and memory resources required for routing can be reduced.
  • the external transmission devices 4-1 to 4-3 add destination information to the data packet for which all data processing has been completed and send it back to the user.
  • the reason why the external transmitters 4-1 to 4-3 are necessary is that the protocols used inside and outside the data processing system are different. TCP/IP is used as a global standard for communication outside the data processing system. On the other hand, within the data processing system, packet communication using tags is performed for the reason described above. Therefore, external transmission devices 4-1 to 4-3 are used in order to absorb differences in protocols inside and outside the data processing system.
  • FIG. 2 is a block diagram showing the configuration of the user management device 1-1.
  • the user management device 1-1 includes a packet receiving unit 100, a packet transmitting unit 101, a packet analyzing unit 102 for analyzing received packets, a packet type determining unit 103 for determining the type of received packets, and a user A user information extraction unit 104 for extracting information, a data management unit 105 for transferring packets received from users to a tag addition unit 107 at timing according to priority, and a buffer for temporarily storing packets received from users.
  • a storage unit 106 a tag adding unit 107 that adds a tag to a packet received from a user, a data communication control unit 108, a user that manages information on a user who has applied for use of a service, issues a user ID, and issues a user ID.
  • a user management unit 109 that notifies the user of the ID, a QoS (Quality of Service) control unit 110 that determines the priority of packet transfer for each user based on user information managed by the user management unit 109, and communication
  • a tag generation unit 111 for generating a tag describing the route information received from the management device 5 is provided.
  • FIG. 3 is a flow chart for explaining the operation of the user management device 1-1.
  • the packet analyzer 102 first analyzes the packet (step S2 in FIG. 3).
  • the packet type determination unit 103 determines the packet type based on the analysis result by the packet analysis unit 102 (step S3 in FIG. 3). Packet types include "application for service use” and "use of service”.
  • the packet type determination unit 103 sends packets with the packet type "service use application” to the user information extraction unit 104, and sends packets with the packet type "service use” to the data management unit 105.
  • the user information extraction unit 104 acquires user information (IP address, port number, contract number, service information, priority, etc.) described in the packet received from the packet type determination unit 103 (step S4 in FIG. 3). User information extraction unit 104 sends the acquired user information to user management unit 109 .
  • user information IP address, port number, contract number, service information, priority, etc.
  • the user management unit 109 manages the user information received from the user information extraction unit 104.
  • the user management unit 109 issues a user ID for using the service to the user (step S5 in FIG. 3), and transfers the user information together with the user ID to the communication management device 5 (step S6 in FIG. 3).
  • the QoS control unit 110 determines the priority of packet transfer for each user based on the priority requested by the user and service information, and registers the priority information (QoS information) in the data management unit 105 (FIG. 3 step S7).
  • the tag generation unit 111 receives route information from the communication management device 5 and generates a tag describing the route information. Then, the tag generation unit 111 associates the generated tag with the user ID issued by the user management unit 109 and registers them in the tag addition unit 107 (step S8 in FIG. 3).
  • the data management unit 105 receives packets determined to be "use of service” by the packet type determination unit 103, sorts the received packets by user, and temporarily stores them in the storage unit 106. Based on the priority information registered by the QoS control unit 110, the data management unit 105 extracts the specific user's packet from the storage unit 106 for each service chain and transfers it to the tag addition unit 107 (step S9 in FIG. 3). ).
  • the user When a user ID is issued to a user, the user adds the user ID to a packet whose packet type is "service use" as described later.
  • the tag addition unit 107 adds a tag corresponding to the user ID added to the packet received from the data management unit 105 among the tags registered by the tag generation unit 111 to the received packet, thereby creating a tagged packet.
  • the packet is output to the packet transmission unit 101 (step S10 in FIG. 3).
  • the packet transmission unit 101 transmits the packets output from the tag addition unit 107 to the nearest data transfer devices 2-1 to 2-9 (step S11 in FIG. 3).
  • tags as described above include NSH and MPLS headers. You can also define your own header. It is also possible to use MAC addresses and IP addresses instead of tags. However, the method using MAC addresses and IP addresses requires the data transfer devices 2-1 to 2-9 to have large-scale routing tables, and consumes more computational and memory resources than the method using tags. do.
  • the user management device 1-1 is taken as an example, but the configuration and operation of the user management devices 1-2 and 1-3 are the same as those of the user management device 1-1. It is the same.
  • FIG. 4 is a block diagram showing the configuration of the data management units 105 of the user management devices 1-1 to 1-3.
  • the data management unit 105 includes a packet distribution unit 1050, one or more user determination units 1051-1 to 1051-N (N is an integer equal to or greater than 1), and one or more user selection units 1052-1 to 1052-N. , one to a plurality of output selection units 1053 - 1 to 1053 -N, and an output control unit 1054 .
  • the user determination unit 1051-1, the user selection unit 1052-1, and the output selection unit 1053-1 constitute a memory controller 1055-1.
  • user determination section 1051-N, user selection section 1052-N, and output selection section 1053-N constitute memory controller 1055-N.
  • Each of the memory controllers 1055-1 to 1055-N stores and retrieves data packets from the memory unit 106.
  • FIG. Although one memory controller may be provided, by providing a plurality of memory controllers, access to the storage unit 106 can be parallelized, and processing performance can be improved.
  • the data management unit 105 manages the data packets received from the packet type determination unit 103 for each user, and outputs the data packets to the subsequent tag addition unit 107 at appropriate timing.
  • Packet distribution unit 1050 determines a memory controller that controls storage of the data packet received from packet type determination unit 103, and outputs the data packet to user determination unit 1051 (1051-1 to 1051-N) of the determined memory controller. do. If part of the user ID is the number of the memory controller, the packet distribution unit 1050 can perform high-speed distribution. The determination of the memory controller that distributes the packets may be determined as appropriate according to, for example, the state of idleness of the processing of the memory controller.
  • User determination units 1051-1 to 1051-N refer to user IDs of packets received from packet distribution unit 1050, and determine to which of storage unit 106 or output selection units 1053-1 to 1053-N packets are to be transferred. decide.
  • user determination units 1051-1 to 1051-N have the same user ID as the user ID of packets currently output by output selection units 1053-1 to 1053-N belonging to the same memory controller as themselves. When a packet is received, it transfers the received packet to output selectors 1053-1 to 1053-N belonging to the same memory controller as itself. Also, user determination units 1051-1 to 1051-N receive packets having user IDs different from the user IDs of packets currently being output by output selection units 1053-1 to 1053-N belonging to the same memory controller as themselves. If so, the received packet is temporarily stored in the storage unit 106 .
  • the user selection units 1052-1 to 1052-N selectively extract data packets from the storage unit 106 based on the QoS information (priority information) registered by the QoS control unit 110. When QoS control is not performed, user selection units 1052-1 to 1052-N extract the data packet of the user stored first among the data packets stored in storage unit 106.
  • FIG. 1 A block diagram illustrating an exemplary computing environment in accordance with the present disclosure.
  • Output selection units 1053-1 to 1053-N select data packets received from either user determination units 1051-1 to 1051-N or user selection units 1052-1 to 1052-N belonging to the same memory controller as themselves. Select whether to output. Since back pressure is applied to the user selection units 1052-1 to 1052-N, the data packets received from the user determination units 1051-1 to 1051-N are preferentially output. This selection may change the packet order. Therefore, the data processing devices 3-1 to 3-13 must have a packet order control function.
  • the output control section 1054 outputs the packets output from the output selection sections 1053 - 1 to 1053 -N to the tag addition section 107 .
  • the output control unit 1054 controls from which memory controller packets are output to the tag addition unit 107.
  • FIG. As the control method there are a round robin method, a best effort method, a DiffServ method (QoS), and the like.
  • the received packet may be stored in the storage unit 106 as it is. At this time, if a packet having the same user ID as the received packet is already stored in storage unit 106, user determination units 1051-1 to 1051-N combine the stored packet with the received packet. By storing the data in the storage unit 106 as above, larger data may be held in the storage unit 106 .
  • FIG. 5 is a block diagram showing the configuration of the data transfer device 2-8 and data processing devices 3-9 and 3-10.
  • the data transfer device 2 - 8 comprises a packet receiver 200 , a packet transmitter 201 , a packet analyzer 202 , a transfer controller 203 and a data communication controller 204 .
  • Data processing devices 3-9 and 3-10 each comprise a payload acquisition unit 300, a data construction unit 301, a data processing unit 302, a register management unit 303, a packet creation unit 304, and a tag update unit 305. be done.
  • FIG. 6 is a flow chart explaining the operation of the data transfer device 2-8
  • FIG. 7 is a flow chart explaining the operation of the data processing devices 3-9 and 3-10.
  • Transfer control unit 203 forwards the data packet output from packet analysis unit 202 to data communication control unit 204 based on the route information included in the tag acquired by packet analysis unit 202 and the routing table registered therein. or transfer the data packet output from the packet analysis unit 202 to an adjacent data transfer device through the packet transmission unit 201 (step S22 in FIG. 6). ).
  • the payload acquisition unit 300 of the data processing device 3-9 or 3-10 extracts the payload from the data packet received from the data transfer device 2-8 (steps S30 and S31 in FIG. 7). At this time, the payload acquisition unit 300 passes the user ID and tag added to the received data packet to the packet generation unit 304 .
  • the data constructing unit 301 of the data processing device 3-9 or 3-10 reconstructs the original data by combining the payloads obtained from the multiple data packets by the payload obtaining unit 300 (step S32 in FIG. 7). Since the order of the arriving packets may be changed, the data construction unit 301 performs packet order control and arranges the data extracted from the plurality of packets in the correct order. This order control is performed based on a sequence number, which will be described later. When the data construction unit 301 becomes ready for data processing, it transmits the reconstructed data to the data processing unit 302 .
  • the data processing unit 302 executes a predetermined process on the data received from the data construction unit 301, and transmits the processed data to the packet creation unit 304 (step S33 in FIG. 7).
  • the packet generator 304 packetizes the data received from the data processor 302 and transmits the generated packet to the tag updater 305 (step S34 in FIG. 7). At this time, the packet creation unit 304 adds the user ID and tag received from the payload acquisition unit 300 to the generated packet.
  • the tag update unit 305 refers to the route information included in the tag attached to the packet received from the packet creation unit 304, and removes the own device (data processing device 3-9 or 3-10) from the route of the service chain.
  • the route information included in the tag is updated so that the packet can be read, and the updated packet is sent to the data transfer device 2-8 (step S35 in FIG. 7).
  • the register management unit 303 registers parameters in the data processing unit 302 and acquires parameters. Specifically, the register management unit 303 acquires user-specific parameters required for SF processing from the user management devices 1-1 to 1-3 as described later (step S36 in FIG. 7), and is registered in the data processing unit 302 (step S37 in FIG. 7). Registration of parameters is performed for each user (each user ID).
  • the register management unit 303 When the register management unit 303 receives collection request packets from the user management devices 1-1 to 1-3 (step S38 in FIG. 7), the register management unit 303 stores the parameter corresponding to the user ID included in the collection request packet in the data processing unit 303. Delete from The packet creation unit 304 of the data processing device packetizes the parameters registered in the data processing unit 302, and sends the packets to the requesting user management devices 1-1 to 1-3 (step S39 in FIG. 7). In this way, the parameters are managed in association with the user ID in the user management devices 1-1 to 1-3. With such parameter registration and collection functions, parameters can be replaced for each user, and data processing can be performed using parameters suitable for the user.
  • the data processing unit 302 performs predetermined processing on the data received from the data construction unit 301 using the parameter corresponding to the user ID acquired by the payload acquisition unit 300 among the parameters registered by the register management unit 303. Execute.
  • the packet analysis unit 202 of the data transfer device 2-8 analyzes the packet received from the data processing device 3-9 or 3-10 via the data communication control unit 204 and acquires the tag added to the packet. , the received packet is output to the transfer control unit 203 (steps S20 and S21 in FIG. 6).
  • Transfer control unit 203 forwards the data packet output from packet analysis unit 202 to data communication control unit 204 based on the route information included in the tag acquired by packet analysis unit 202 and the routing table registered therein. or transfer the data packet output from the packet analysis unit 202 to an adjacent data transfer device through the packet transmission unit 201 (step S22 in FIG. 6). ).
  • the tag updating unit 305 does not select a data transfer device (SF) for which processing has been completed as a transfer destination.
  • SF processing is executed by the data processing device 3-9 or 3-10. If a plurality of data processing devices 3-9, 3-10 are connected in parallel to the data transfer device 2-8 as in the example of FIG. 5, each data processing device 3-9, 3-10 can be accessed with little overhead. It is possible to By making the data processing devices 3-9 and 3-10 independent from the data transfer device 2-8, communication between the existing data processing devices 3-9 and 3-10 and the data transfer device 2-8 is hindered. new data processing devices can be added and deleted without
  • a CPU or GPU may be used as the data processing devices 3-9 and 3-10, and the processing of the data processing devices 3-9 and 3-10 may be executed by software.
  • an FPGA may be used as the processor, and the processing of the data processing devices 3-9 and 3-10 may be executed by hardware.
  • hardware since hardware generally has higher packet processing performance, it is better to use hardware in order to realize a high-speed network.
  • FIG. 8 is a flowchart explaining the operation of the communication management device 5.
  • the communication management device 5 cooperates with the user management devices 1-1 to 1-3 to receive user information and service usage end information, and to transmit route information to the user management devices 1-1 to 1-3. do.
  • the communication management device 5 also manages routing tables registered in the transfer control units 203 of the data transfer devices 2-1 to 2-9, and adds/replaces the SFs of the data processing devices 3-1 to 3-13. Control deletion.
  • the communication management device 5 When the communication management device 5 receives the service usage end information, it deletes the SF from the corresponding data processing devices 3-1 to 3-13 (step S100 in FIG. 8). Specifically, if the data processing device is composed of, for example, a CPU or GPU, the SF program may be deleted from the memory of the CPU or GPU. Also, if the data processing device is composed of, for example, an FPGA, the circuitry for the SF may be deleted by updating the circuit configuration of the FPGA. By removing the SF, the power consumption of the data processing system can be reduced.
  • the communication management device 5 When the communication management device 5 receives the user information and the user ID from the user management units 109 of the user management devices 1-1 to 1-3 (Yes in step S101 in FIG. 8), the communication management device 5 acquires the service information included in the user information. (Step S102 in FIG. 8).
  • the communication management device 5 calculates a route via SFs necessary for realizing the service requested by the user (step S103 in FIG. 8).
  • a route via SFs necessary for realizing the service requested by the user (step S103 in FIG. 8).
  • the new service chain is Take care not to affect others.
  • route calculation for example, a placement and routing method such as a maze method or a genetic algorithm can be used.
  • an SF may be added to the data processing devices 3-1 to 3-13 whose operation is stopped.
  • the communication management device 5 adds the desired SF to a data processing device that is out of operation at the position of the desired SF on a route passing through the SF required for a new service chain. (Step S104 in FIG. 8).
  • the communication management device 5 may transfer the desired SF program to the data processing device and store it in the memory of the data processing device. . Further, when the data processing device is configured by, for example, an FPGA, the communication management device 5 transfers data for updating the circuit configuration of the FPGA to the data processing device, and changes the circuit for the desired SF. should be added.
  • the communication management device 5 transmits the route information and the user ID to the user management device which is the starting point of the calculated route among the user management devices 1-1 to 1-3 (step S105 in FIG. 8). ).
  • the route information By transmitting the route information only to the user management device serving as the starting point of the route in this way, each of the user management devices 1-1 to 1-3 holds only the route information related to itself in association with the user ID. can.
  • the communication management device 5 transfers the user information and the user ID to the external transmission device, which is the end point of the calculated route, among the external transmission devices 4-1 to 4-3 (step S106 in FIG. 8). In this way, by transferring user information only to the external transmission device that is the end point of the route, each of the external transmission devices 4-1 to 4-3 holds only the user information related to itself in association with the user ID. can.
  • the communication management device 5 transfers the data transfer device 2 on the calculated route.
  • the routing tables registered in the transfer control units 203 of -1 to 2-9 are updated based on the route calculation results (step S107 in FIG. 8). That is, the routing table is updated so that a "service usage" packet sent from a user requesting a new service follows the calculated route.
  • the routing table is updated so that a "service usage" packet sent from a user requesting a new service follows the calculated route.
  • communication management device 5 fails in route calculation, or when information sent from itself is not received by destination user management devices 1-1 to 1-3 or external transmission devices 4-1 to 4-3 , the user is notified via the user management devices 1-1 to 1-3 that the service cannot be started.
  • the communication management device 5 repeatedly executes the above processing until the operation of the data processing system ends (Yes in step S108 in FIG. 8).
  • FIG. A configuration in which 1 to 4-6 are connected is conceivable.
  • FIG. 10 As another form of network connection, as shown in FIG. 10, there is a configuration in which all user management devices and external transmission devices 1a-1 to 1a-9 are connected to all data transfer devices 2-1 to 2-9. Conceivable. As is clear from the names, the user management device/external transmission devices 1a-1 to 1a-9 have the functions of a user management device and an external transmission device. 9 and 10 omit the description of the data processing device.
  • the intra-system communication in this embodiment is packet communication, and the connection configuration between the data transfer devices 2-1 to 2-9 is arbitrary.
  • a connection configuration between the data transfer devices 2-1 to 2-9 may be, for example, a bus type, star type, line type, tree type, ring type, torus type, mesh type, or a combination of these types.
  • a packet from a user is sent to any user management device 1-1 to 1-6 or any user management device/external transmission device 1a-1 to 1a-1 by using a load balancer 6 outside the data processing system.
  • 1a-9 can be entered.
  • User management device 1 -1 to 1-6 (or the functional units of the user management devices in the user management devices and external transmission devices 1a-1 to 1a-9) have user information (IP addresses, etc.) through the communication management device 5 to the external transmission devices. 4-1 to 4-6 (or the functional units of the external transmission devices in the user management devices/external transmission devices 1a-1 to 1a-9).
  • the communication management device 5 selects one of the external transmission devices 4-1 to 4-6 or the user management device/external transmission devices 1a-1 to 1a-9 as the end point of the calculated route.
  • the user information is transferred to the transmission device or the user management device/external transmission device (step S106).
  • the external transmission devices 4-1 to 4-6 or the user management devices and external transmission devices 1a-1 to 1a-9 identify the destination user of the packet based on the user ID added to the packet for which data processing is completed. Then, based on the user information transferred from the communication management device 5, the packet for which data processing has been completed is sent back to the user.
  • the calculation of the route of the service chain is performed by the communication management device 5.
  • One communication management device 5 is arranged in the domain, and the communication management device 5 transmits route information to the responsible user management devices 1-1 to 1-6 in the domain. By calculating routes with one communication management device 5, unexpected duplication of routes can be avoided.
  • the domain is divided into, for example, two domains, and each domain 7-1, 7-2 is managed by one communication management device 5-1, 5-2. do.
  • the routes between the domains 7-1 and 7-2 are determined in cooperation with the adjacent communication management devices 5-1 and 5-2. As described above, in this embodiment, an appropriate route can be assigned to each service chain.
  • FIG. 12 is a diagram showing an example of a bus network.
  • user management device 1 data transfer devices 2-1 to 2-3, and external transmission device 4 are connected in series.
  • a bus network has a simple data route.
  • all service chains pass through the same data transfer devices 2-1 to 2-3, there is a problem that the communication band tends to become a bottleneck.
  • Bus networks are suitable for carrier networks because the inputs and outputs are separated.
  • FIG. 13 is a sequence diagram explaining the operation of the data processing system of this embodiment.
  • a user who wants to use the data processing system of this embodiment uses his/her own user terminal 8 to apply for service use to the data processing system before using the service (step S200 in FIG. 13).
  • the user information extraction unit 104 of the user management device 1 When the user information extraction unit 104 of the user management device 1 receives a packet whose packet type is "application for service use" from the user terminal 8, it acquires the user information described in the packet.
  • the user management unit 109 of the user management device 1 issues a user ID and transfers the user information and the user ID to the communication management device 5 (step S201 in FIG. 13).
  • the communication management device 5 Upon receiving the user information, the communication management device 5 calculates the route of the service chain based on the service information included in the user information, and selects the user management device 1 as the starting point of the calculated route among the plurality of user management devices. route information and user ID are sent to (step S202 in FIG. 13).
  • the communication management device 5 transmits the user information and the user ID to the external transmission device 4, which is the end point of the calculated route, among the plurality of external transmission devices (step S203 in FIG. 13). Also, although not shown in FIG. 13, the communication management device 5 updates the routing table registered in the transfer control unit 203 of the data transfer device on the calculated route based on the route calculation result. In this way, the communication management device 5 prepares an environment for the user to use the service.
  • the user management unit 109 of the user management device 1 notifies the user of the user ID by returning a packet containing the issued user ID to the user terminal 8 in response to the "service usage application" packet (Fig. 13 step S204).
  • the user to whom the user ID has been issued uses his/her own user terminal 8 to notify the data processing system of the start of use of the service (step S205 in FIG. 13).
  • the user management unit 109 of the user management device 1 When the user management unit 109 of the user management device 1 receives a packet whose packet type is "service use start" from the user terminal 8, the user is identified based on the user ID added to the packet, and the user management unit 109 associates the packet with the user ID. User-specific parameters required for data processing in SF are generated based on service information included in user information managed by the SF. Then, the user management unit 109 transmits the user-specific parameter to the data processing devices 3-1 to 3-N (SF) on the route of the service chain based on the route information managed in association with the user ID. (step S206 in FIG. 13).
  • the data transfer device is not described in FIG. 13, user-specific parameters are packetized and transmitted from the user management device 1 to the nearest data transfer device. Based on the result of packet analysis by the packet analysis unit 202, the transfer control unit 203 of each data transfer device determines which of the data processing devices 3-1 to 3-N (SF) to which parameters are to be sent. transfer the packetized parameters to the data processing device
  • the register management units 303 of the data processing devices 3-1 to 3-N (SF) that have received the packetized parameters register the parameters in the data processing unit 302 in association with the user IDs added to the received packets. do.
  • the user uses his/her own user terminal 8 to transmit data packets to the data processing system (step S207 in FIG. 13).
  • a user ID is added to a data packet transmitted from the user terminal 8 whose packet type is "use of service".
  • the tag addition unit 107 of the user management device 1 adds a tag corresponding to the user ID added to the packet received from the user terminal 8 and having the packet type "service use" to the packet, and converts the tagged packet into a packet. Output to the transmission unit 101 .
  • the packet transmission unit 101 of the user management device 1 transmits the packet output from the tag adding unit 107 to the nearest data transfer device.
  • the packet analysis unit 202 of each data transfer device analyzes the received packet and acquires the tag attached to the packet.
  • the transfer control unit 203 of the data transfer device selects one of the data processing devices 3-1 to 3-N (SF) on the route of the service chain according to the route information included in the tag acquired by the packet analysis unit 202.
  • the packet is transferred to the data processing device connected to (step S208 in FIG. 13).
  • Each data processing device 3-1 to 3-N receives a packet from the data transfer device connected to its own device, and transmits the packet after SF processing is completed to the data transfer device. In this way, the data transfer device on the route of the service chain transfers the packet to the data processing device (SF) a plurality of times. It is transferred to the external transmission device 4 which is the end point (step S209 in FIG. 13).
  • the external transmission device 4 identifies the destination user of the packet based on the user ID added to the received packet, and deletes the tag from the packet. Based on the user information corresponding to the user ID, the external transmission device 4 adds TCP/IP destination information to the packet and sends it back to the user terminal 8 (step S210 in FIG. 13).
  • the user management unit 109 of the user management device 1 sends a packet requesting collection of parameters specific to the user who has finished using the service to the user ID of the user. is transmitted to the data processing devices 3-1 to 3-N (SF) on the route of the service chain based on the route information managed in association with .
  • the transfer control unit 203 of each data transfer device selects the data processing device connected to the own device among the data processing devices 3-1 to 3-N (SF). transfer the collection request packet from the user management device 1 to the .
  • the register management unit 303 of the data processing device Upon receiving the collection request packet from the user management device 1, the register management unit 303 of the data processing device deletes from the data processing unit 302 the parameter corresponding to the user ID included in the collection request packet.
  • the packet creation unit 304 of the data processing device packetizes the parameters registered in the data processing unit 302 and transmits the packet to the data transfer device connected to the own device. The packetized parameters are transferred from the data transfer device to the user management device 1 (step S211 in FIG. 13).
  • the user management unit 109 of the user management device 1 manages the parameters collected from the data processing devices 3-1 to 3-N (SF) via the data transfer device in association with the user ID of the user who has finished using the service. do. Also, the user management device 1 notifies the user terminal 8 of the termination of service use (step S212 in FIG. 13). A packet indicating termination of service use is also transmitted from the user management device 1 to the communication management device 5 .
  • the timing at which the system determines that the use of the service has ended is when the user notifies that they will stop using the service, or when they do not send data for a certain period of time (timeout). In either case, the user terminal 8 is notified of the termination of service use. At that time, if parameters for the user remain in the data processing devices 3-1 to 3-N (SF), they are collected (discarded) and the parameters for the next user are transmitted.
  • the data processing device 3-1 Even if the user is using the service, if another user is waiting, after using the service for a certain period of time, the data processing device 3-1 is temporarily interrupted as a result of QoS control or when instructed from the outside. ⁇ 3-N(SF) is surrendered to the next user. At that time, the parameters are collected from the data processing devices 3-1 to 3-N (SF), and the parameters of the next user are transmitted.
  • the timing of surrendering is when the data processing is completed. For example, in the image processing service, processing is performed for each frame, so after one frame of data has been transmitted, the process shifts to parameter update processing.
  • FIG. 14 is a sequence diagram explaining another operation of the data processing system of this embodiment.
  • the data processing system of this embodiment can also provide services without user-specific parameters. If user-specific parameters are not used, the processing of steps S206 and S211 described with reference to FIG. 13 becomes unnecessary. Other processing is the same as in the case of FIG.
  • a network service is an example of a service that does not use parameters.
  • network services such as firewalls, DPI, and load balancing are assumed to be used by multiple traffics at the same time, and do not require parameter switching.
  • the data processing system of this embodiment can use a general IP network for communication with the user terminal 8 .
  • the data processing system uniquely identifies the user from the IP address and port number described in the packet received from the user terminal 8 and issues a user ID.
  • FIG. 15A shows the format of packets transmitted from the user terminal 8 when applying for service use
  • FIG. 15B shows the format of packets transmitted and received between the user terminal 8 and the data processing system when using the service
  • FIG. 15C shows the format of the packets transmitted and received within.
  • a “service usage application” packet includes an Ethernet (registered trademark) header 400 , an IP header 401 , a TCP or UDP header 402 , a payload 403 , and an FCS (Frame Check Sequence) 404 .
  • the user terminal 8 stores packet type information indicating "application for service use" in the payload 403 of the packet (at 405 in FIG. 15A) and transmits the packet to the data processing system.
  • the user management unit 109 of the user management device 1 uniquely identifies the user from the source IP address and source port number extracted from the "application for service use" packet, and issues a user ID.
  • the user management unit 109 sends back to the user terminal 8 a packet in which the issued user ID is stored at 405 in FIG. 15A.
  • the user terminal 8 When the user terminal 8 uses the service, the user terminal 8 stores the user ID, the sequence number, and the information of the packet type indicating "use of service" in the portion indicated by 405 of the payload 403 in the packet of FIG. 15B.
  • the data top flag, data, and data end flag are stored in .
  • the user terminal 8 transmits the thus generated "use of service” packet to the data processing system.
  • the data start flag, data end flag, and sequence number are information necessary for data reconstruction by the data processing device (SF).
  • a packet with the format shown in FIG. 15C is transmitted and received within the data processing system when using the service.
  • This packet includes Ethernet header 400 , tag 407 , payload 403 and FCS 404 .
  • User ID, sequence number, and packet type information are stored in a portion 408 of the payload 403, and a data head flag, data, and data end flag are stored in a portion 409 of the payload 403.
  • FIG. Packet communication using the tag 407 is performed within the data processing system. By describing the route information to the destination SF in each tag 407, the packet is transferred according to the route information, and the data processing is performed in the SF corresponding to the service requested by the user.
  • the user management devices 1, 1-1 to 1-6 are used to manage data for each user, and control is performed so that only one user's data is sent per service chain.
  • collision of data in the data processing devices 3-1 to 3-13 is avoided, and one data processing device (service function) can be used by multiple users. It is possible to suppress the deterioration of the utilization efficiency of the service function even in the lower level.
  • the user management devices 1, 1-1 to 1-6 are composed of a user management unit 109, a tag generation unit 111, a tag addition unit 107, a packet transmission unit 101, a QoS control unit 110, and a data management unit 105.
  • a tag describing route information By adding a tag describing route information to a packet received from a user, packet communication within the data processing system can be realized. Also, in this embodiment, by providing the QoS control unit 110, it is possible to control the priority of packet transfer for each user.
  • the data management unit 105 is composed of user selection units 1052-1 to 1052-N, user determination units 1051-1 to 1051-N, and output selection units 1053-1 to 1053-N.
  • the packet received from the user can be transferred to the tag adding unit 107 at timing according to the transfer priority.
  • memory controllers 1055-1 to 1055-1 configured by user determination units 1051-1 to 1051-N, user selection units 1052-1 to 1052-N, and output selection units 1053-1 to 1053-N
  • user determination units 1051-1 to 1051-N user selection units 1052-1 to 1052-N
  • output selection units 1053-1 to 1053-N By providing a plurality of 1055-N, access to the storage unit 106 can be parallelized, and processing performance can be improved.
  • the user management devices 1, 1-1 to 1-6 set user-specific parameters required for service function processing to a service chain based on route information before the user uses the service.
  • the parameters can be replaced for each user, Data processing can be performed with parameters suitable for the user.
  • the communication management apparatuses 5, 5-1, 5-2 when a new service function is required to realize a service requested by a user, By adding the necessary service functions to 3-13 and deleting the service functions from the data processing devices 3-1 to 3-13 used for realizing the services after the use of the services is completed, the service functions are added and Deletion can be performed as appropriate.
  • 1 to 3-13, external transmission devices 4, 4-1 to 4-6, communication management devices 5, 5-1, 5-2, and user terminal 8 each include a CPU (or GPU), a storage device, and an interface. It can be realized by a computer equipped with the hardware and a program that controls these hardware resources. A configuration example of this computer is shown in FIG.
  • the computer comprises a CPU 500 (or GPU), a storage device 501 and an interface device 502 .
  • a program for implementing the data processing method of the present invention is stored in storage device 501 .
  • the CPU 500 (or GPU) of each device executes the processing described in this embodiment according to the program stored in the storage device 501 .
  • At least part of the external transmission devices 4, 4-1 to 4-6 and the communication management devices 5, 5-1, 5-2 may be configured by FPGA or ASIC.
  • an improvement in processing performance can be expected by executing part of the packet processing and data processing by these hardware.
  • a data processing system of the present invention includes a user management device configured to manage information on users who have applied for use of a service and to control transfer of packets received from the users, and a data processing device configured to perform data processing of a service function on data received from a user; one or more data transfer devices having one or more of the data processing devices under control; and realizing a service requested by a user. calculates the route of the service chain required for the above, transmits the route information to the user management device, and updates the routing table registered in the data transfer device on the calculated route based on the result of the route calculation.
  • an external transmission device configured to return to a user a packet for which all data processing of the service chain has been completed, wherein the user management device receives from the user A packet is attached with a tag describing the route information and transmitted to the data transfer device, and the data transfer device receives the packet based on the route information and the routing table included in the tag attached to the packet. , the packet is transferred to the data processing device under control or another data transfer device, and the data processing device returns the packet for which data processing is completed to the data transfer device of the transmission source.
  • the user management device is configured to manage information of users who have applied for use of services, to issue user IDs, and to notify the users of the issued user IDs.
  • a tag generation unit configured to generate a tag describing route information received from the communication management device; and a tag configured to add the tag to a packet received from the user.
  • an addition unit a packet transmission unit configured to transmit the tagged packet to the data transfer device, and transfer of packets for each user based on user information managed by the user management unit.
  • a QoS control unit configured to determine priority; and a data management unit configured to transfer a packet received from a user to the tagging unit at a timing corresponding to the priority, The user ID is added to the received packet.
  • the data processing system further includes a storage unit for temporarily storing packets received from users, and the data management unit receives packets from the storage unit based on the priority information.
  • a user selection unit configured to selectively retrieve packets; and determining whether a packet received from a user has the same user ID as the user ID of a packet currently being output to the tagging unit.
  • an output selection unit configured to selectively output packets output from either the user determination unit or the user selection unit to the tag addition unit. and the user determination unit forwards the packet received from the user to either the storage unit or the output selection unit based on the determination result.
  • the data management unit includes a plurality of memory controllers configured by the user determination unit, the user selection unit, and the output selection unit, and stores packets received from users.
  • a packet distribution unit configured to determine the memory controller to be distributed and output packets received from a user to the determined memory controller; and an output control unit configured to select according to a predetermined control method and output to the tag addition unit.
  • the user management device sets the user-specific parameters required for processing the service function to the user before the user uses the service. Based on the route information, the parameter is transmitted to the data processing device on the route of the service chain, and the parameter is retrieved from the data processing device after using the service.
  • Supplementary note 6 In the data processing system according to any one of Supplementary notes 1 to 5, when a new service function is required to realize a service requested by a user, the communication management device can A necessary service function is added to the data processing device, and after the use of the service is finished, the service function is deleted from the data processing device used for realizing this service.
  • the data processing method of the present invention includes a first step in which a user management device transmits information on a user who has applied for use of a service to a communication management device and an external transmission device; calculating a route of a service chain necessary for realizing a service requested by the user based on service information included in the user information, transmitting the route information to the user management device, and transferring data on the calculated route; a second step of updating a routing table registered in a device based on the result of route calculation; a third step of transmitting to a transfer device; and based on the route information included in the tag attached to the received packet and the routing table managed by the data transfer device, a subordinate data processing device or other a fourth step of transferring the packet to the data transfer device of the above; and the data processing device performing data processing of the service function on data contained in the received packet, and transferring the packet for which the data processing has been completed to the transmission source of the a fifth step of returning to the data transfer device; and a sixth step of returning
  • Supplementary note 8 The data processing method described in Supplementary note 7 is such that, before the user uses the service, the user management device stores user-specific parameters necessary for processing the service function in the service chain based on the route information. a seventh step of transmitting to the data processing device on the route of , and an eighth step of retrieving the parameter from the data processing device by the user management device after use of the service is finished.
  • the present invention can be applied to service function chaining technology.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

ユーザ管理装置(1-1~1-3)は、ユーザから受信したパケットに、ルート情報を記載したタグを付加してデータ転送デバイス(2-1~2-9)に送信する。データ転送デバイス(2-1~2-9)は、受信したパケットに含まれるルート情報に基づいて、配下のデータ処理デバイスまたは他のデータ転送デバイスにパケットを転送する。データ処理デバイス(3-1~3-13)は、受信したパケットに含まれるデータに対してサービス機能の処理を行う。通信管理装置(5)は、ユーザが要求するサービスの実現に必要なサービスチェインのルートを計算し、ルート情報をユーザ管理装置(1-1~1-3)に送信する。

Description

データ処理システムおよびデータ処理方法
 本発明は、サービスファンクションチェイニングの技術によってユーザにサービスを提供するデータ処理システムおよびデータ処理方法に関するものである。
 エンドツーエンドのサービスを柔軟に提供するため、サービスファンクションチェイニング(SFC)が検討されている(非特許文献1)。SFCは、ネットワーク上に点在するサービス機能(Service Function:SF)を自由に組み合わせる技術であり、SFCを用いることでユーザごとに最適なサービスを提供することができる。
 SFCを用いたネットワークでは、図17に示すように入り口の分類器(Classifier)10がユーザごとにパケット11にタグを付加し、サービス機能転送装置(Service Function Forwarder:SFF)12がタグに基づいて適切なSFにパケット11を転送する。図17の13はSFを実現するサーバ、14はユーザに対して提供されるSFを数珠つなぎにしたサービスチェインを表している。SFCにより、ユーザは自身の目的に応じたSFを組み合わせて独自のサービスを構築することができる。
 SFCは、主にネットワークサービスを対象として開発されている。SFとしては、ファイヤウォールやDPI(Deep Packet Inspection)、ロードバランシングなどが想定されている。これらの機能はパケットごとに処理が完了するため、ユーザやパケット順序の考慮が不要である。
 SFCはクラウドサービスに対しても有用な技術である。例えば非特許文献2には、SFCを用いた画像処理サービスとして、2種類の画像処理機能を組み合わせた映像監視サービスが開示されている。しかし、非特許文献2に開示された技術では、複数のユーザがネットワークを利用する状況が想定されておらず、ユーザがそれぞれサービスを稼働させる場合に問題が発生する可能性がある。
 クラウドサービスを利用するユーザは、一般的に図18に示すように、データを複数のパケット(データパケット)に分割してサーバ13に送る。図18の11AはユーザAのデータパケット、11BはユーザBのデータパケットを表している。また、14AはユーザAに対して提供されるSFを数珠つなぎにしたサービスチェイン、14BはユーザBに対して提供されるSFを数珠つなぎにしたサービスチェインを表している。
 従来のSFCは、ユーザやパケット順序を考慮しない。このため、従来のSFCを用いたクラウドサービスでは、異なるユーザのデータパケット11A,11Bがサーバ13に続けて到着する可能性がある。このとき、サーバ13は、異なるユーザのデータパケット11A,11Bが混ざると適切な結果を保証できない。図18の×印は、データパケット11A,11Bが混ざり、処理ができなくなったことを示している。
 サーバ13でユーザごとにデータパケットを仕分けると、そのために計算リソースを割く必要がある。また、データパケットを保持するためのメモリリソースが必要になる。このようにサーバ13でユーザを管理すると、SFに割り当てることができるリソースが減る。更に、サーバ13ごとにユーザ管理機能が必要になるため、システム全体で多くのリソースが消費される。よって、システム規模に対してSFの実装効率が低くなる。サービスチェイン間でSFを共有せず、異なるSFを割り当てる方法も考えられるが、待機時間が長くなるため、SFの利用効率が低くなる。
RFC 7665 - Service Function Chaining (SFC) Architecture,Internet Engineering Task Force (IETF),October 2015,<https://datatracker.ietf.org/doc/html/rfc7665> Yuta UKON,Koji YAMAZAKI,Koyo NITTA,"Real-Time Image Processing Based on Service Function Chaining Using CPU-FPGA Architecture",IEICE Transactions on Communications,Vol.E103-B,No.1,pp.11-19,2020,<https://search.ieice.org/bin/summary.php?id=e103-b_1_11>
 本発明は、上記課題を解決するためになされたもので、データ処理デバイスにおけるデータの衝突を回避し、複数のユーザによる利用下においてもサービス機能の利用効率の低下を抑制することができるデータ処理システムおよびデータ処理方法を提供することを目的とする。
 本発明のデータ処理システムは、サービスの利用を申請したユーザの情報の管理とユーザから受信したパケットの転送制御とを行うように構成されたユーザ管理装置と、受信したパケットに含まれるデータに対してサービス機能のデータ処理を行うように構成されたデータ処理デバイスと、1乃至複数の前記データ処理デバイスを配下に有する1乃至複数のデータ転送デバイスと、ユーザが要求するサービスの実現に必要なサービスチェインのルートを計算し、ルート情報を前記ユーザ管理装置に送信すると共に、計算したルート上の前記データ転送デバイスに登録されているルーティングテーブルを、ルート計算の結果に基づいて更新するように構成された通信管理装置と、前記サービスチェインの全てのデータ処理が完了したパケットをユーザ宛に返送するように構成された外部送信装置とを備え、前記ユーザ管理装置は、ユーザから受信したパケットに、前記ルート情報を記載したタグを付加して前記データ転送デバイスに送信し、前記データ転送デバイスは、受信したパケットに付加されたタグに含まれる前記ルート情報と前記ルーティングテーブルとに基づいて、配下の前記データ処理デバイスまたは他のデータ転送デバイスにパケットを転送し、前記データ処理デバイスは、データ処理が完了したパケットを送信元の前記データ転送デバイスに返信することを特徴とするものである。
 本発明によれば、ユーザ管理装置とデータ処理デバイスとデータ転送デバイスと通信管理装置と外部送信装置とを設けることにより、ユーザ管理装置を用いてユーザごとにデータを管理し、1サービスチェインあたり1ユーザのデータしか流さないように制御する。本発明では、データ処理デバイスにおけるデータの衝突を回避すると共に、1つのデータ処理デバイス(サービス機能)を複数のユーザで利用できるようにしたので、複数のユーザによる利用下においても、サービス機能の利用効率の低下を抑制することができる。
図1は、本発明の実施例に係るデータ処理システムの構成を示すブロック図である。 図2は、本発明の実施例に係るユーザ管理装置の構成を示すブロック図である。 図3は、本発明の実施例に係るユーザ管理装置の動作を説明するフローチャートである。 図4は、本発明の実施例に係るユーザ管理装置のデータ管理部の構成を示すブロック図である。 図5は、本発明の実施例に係るデータ転送デバイスとデータ処理デバイスの構成を示すブロック図である。 図6は、本発明の実施例に係るデータ転送デバイスの動作を説明するフローチャートである。 図7は、本発明の実施例に係るデータ処理デバイスの動作を説明するフローチャートである。 図8は、本発明の実施例に係る通信管理装置の動作を説明するフローチャートである。 図9は、本発明の実施例に係るデータ処理システムのネットワークの接続形態の1例を示す図である。 図10は、本発明の実施例に係るデータ処理システムのネットワークの接続形態の別の例を示す図である。 図11は、本発明の実施例に係るデータ処理システムのネットワークの接続形態の別の例を示す図である。 図12は、本発明の実施例に係るデータ処理システムのネットワークの接続形態の別の例を示す図である。 図13は、本発明の実施例に係るデータ処理システムの動作を説明するシーケンス図である。 図14は、本発明の実施例に係るデータ処理システムの別の動作を説明するシーケンス図である。 図15Aは、サービス利用申請時にユーザ端末から送信されるパケットのフォーマットを示す図である。 図15Bは、サービス利用時にユーザ端末とデータ処理システム間で送受信されるパケットのフォーマットを示す図である。 図15Cは、サービス利用時にデータ処理システム内で送受信されるパケットのフォーマットを示す図である。 図16は、本発明の実施例に係るデータ処理システムを実現するコンピュータの構成例を示すブロック図である。 図17は、従来のサービスファンクションチェイニング技術を説明する図である。 図18は、従来のサービスファンクションチェイニング技術の課題を説明する図である。
 以下、本発明の実施例について図面を参照して説明する。図1は本発明の実施例に係るデータ処理システムの構成を示すブロック図である。データ処理システムは、サービスの利用を申請したユーザの情報の管理とユーザから受信したパケットの転送制御とを行うユーザ管理装置1-1~1-3と、パケットの転送を行う1乃至複数のデータ転送デバイス2-1~2-9と、受信したパケットに含まれるデータに対してSFのデータ処理を行うデータ処理デバイス3-1~3-13と、サービスチェインの全てのデータ処理が完了したパケットをユーザ宛に返送する外部送信装置4-1~4-3とを備えている。さらに、データ処理システムは、ユーザが要求するサービスの実現に必要なサービスチェインのルートを計算し、ルート情報をユーザ管理装置1-1~1-3に送信すると共に、計算したルート上のデータ転送デバイス2-1~2-9に登録されているルーティングテーブルを、ルート計算の結果に基づいて更新する通信管理装置5を備えている。
 データ処理デバイス3-1~3-13としては、CPU(Central Processing Unit)、FPGA(field-programmable gate array)、GPU(graphics processing units)、ASIC(Application Specific integrated circuit)などがある。
 本実施例では、データ処理デバイス3-1~3-13によって実現されるSFを組み合わせてユーザごとにカスタマイズしたサービスを提供する。具体的にはデータ転送デバイス2-1~2-9間で通信し、ユーザから送られてきたデータパケットを適切なSFに転送する。SFにおけるデータ処理が完了すると、さらに別のSFにデータパケットを転送してデータ処理を行う。これにより、本実施例では、ユーザごとに処理内容を変えてユーザの目的に応じたサービスを提供する。
 データパケットが辿る通信経路をサービスチェインと呼ぶ。図17と同様に、図1の14はサービスチェインを表す。サービスチェインを複数のユーザが同時に利用すると、SFでデータが衝突し、適切な結果を保証できない。そこで、本実施例では、データ処理システムの入り口のユーザ管理装置1-1~1-3でデータパケットを管理し、サービスチェインを1ユーザしか利用しないように制御する。
 また、ユーザ管理装置1-1~1-3は、データパケットへのタグ付加も行う。タグには、サービスチェインのルート情報が記載されている。データ転送デバイス2-1~2-9は、タグに基づくデータパケットのルーティングを行う。タグの具体例としては、NSH(Network Service Header)やMPLS(Multi-Protocol Label Switching)ヘッダ、SRv6(Segment Routing over IPv6)などが考えられる。また、独自ヘッダを定義してもよい。
 MAC(Media Access Control)アドレスやIP(Internet Protocol)アドレスを用いるルーティングでは、データ転送デバイス2-1~2-9に大きなルーティングテーブルを持たせなければならない。一方、本実施例のようなタグを用いたルーティングでは、データパケットにルート情報を持たせることでルーティングテーブルの規模を小さくし、ルーティングに必要な計算リソースやメモリリソースを減らすことができる。
 外部送信装置4-1~4-3は、全てのデータ処理が完了したデータパケットに対して宛先情報を付加してユーザに送り返す。外部送信装置4-1~4-3が必要な理由は、データ処理システム内外で使われるプロトコルが異なるためである。データ処理システム外における通信は、TCP/IPが世界標準的に利用されている。一方、データ処理システム内では、前述の理由によりタグを用いたパケット通信を行う。そこで、データ処理システム内外のプロトコルの違いを吸収するため、外部送信装置4-1~4-3を用いる。
 図2はユーザ管理装置1-1の構成を示すブロック図である。ユーザ管理装置1-1は、パケット受信部100と、パケット送信部101と、受信したパケットを解析するパケット解析部102と、受信したパケットの種別を判定するパケット種別判定部103と、パケットからユーザ情報を抽出するユーザ情報抽出部104と、ユーザから受信したパケットを優先度に応じたタイミングでタグ付加部107に転送するデータ管理部105と、ユーザから受信したパケットを一時的に格納するための記憶部106と、ユーザから受信したパケットにタグを付加するタグ付加部107と、データ通信制御部108と、サービスの利用を申請したユーザの情報を管理し、ユーザIDを発行し、発行したユーザIDをユーザに通知するユーザ管理部109と、ユーザ管理部109が管理するユーザの情報に基づいて、ユーザごとのパケットの転送の優先度を決定するQoS(Quality of Service)制御部110と、通信管理装置5から受信したルート情報を記載したタグを生成するタグ生成部111とを備えている。
 図3はユーザ管理装置1-1の動作を説明するフローチャートである。ユーザ管理装置1-1のパケット受信部100がパケットを受信すると(図3ステップS1)、始めにパケット解析部102はパケットを解析する(図3ステップS2)。
 パケット種別判定部103は、パケット解析部102による解析結果に基づいてパケット種別を判定する(図3ステップS3)。パケット種別としては、「サービス利用申請」と「サービス利用」とがある。
 パケット種別判定部103は、パケット種別が「サービス利用申請」のパケットをユーザ情報抽出部104に送り、パケット種別が「サービス利用」のパケットをデータ管理部105に送る。
 ユーザ情報抽出部104は、パケット種別判定部103から受け取ったパケットに記載されたユーザ情報(IPアドレス、ポート番号、契約番号、サービス情報、優先度など)を取得する(図3ステップS4)。ユーザ情報抽出部104は、取得したユーザ情報をユーザ管理部109に送る。
 ユーザ管理部109は、ユーザ情報抽出部104から受け取ったユーザ情報を管理する。ユーザ管理部109は、ユーザに対してサービスを利用するためのユーザIDを発行し(図3ステップS5)、ユーザ情報をユーザIDと共に通信管理装置5に転送する(図3ステップS6)。
 QoS制御部110は、ユーザが要求する優先度やサービスの情報に基づいてユーザごとのパケットの転送の優先度を決定し、優先度の情報(QoS情報)をデータ管理部105に登録する(図3ステップS7)。
 タグ生成部111は、通信管理装置5からルート情報を受け取り、ルート情報を記載したタグを生成する。そして、タグ生成部111は、生成したタグとユーザ管理部109によって発行されたユーザIDとを対応付けてタグ付加部107に登録する(図3ステップS8)。
 データ管理部105は、パケット種別判定部103で「サービス利用」と判定されたパケットを受信し、受信したパケットをユーザごとに仕分けて記憶部106に一時格納する。そして、データ管理部105は、QoS制御部110によって登録された優先度の情報を基にサービスチェインごとに特定ユーザのパケットを記憶部106から取り出してタグ付加部107に転送する(図3ステップS9)。
 ユーザに対してユーザIDが発行されると、パケット種別が「サービス利用」のパケットには、後述のようにユーザによってユーザIDが付加される。
 タグ付加部107は、タグ生成部111によって登録されたタグのうち、データ管理部105から受信したパケットに付加されているユーザIDに対応するタグを、受信したパケットに付加して、タグ付きのパケットをパケット送信部101に出力する(図3ステップS10)。
 パケット送信部101は、タグ付加部107から出力されたパケットを最寄りのデータ転送デバイス2-1~2-9に送信する(図3ステップS11)。
 上記のようにタグの具体例としては、NSHやMPLSヘッダなどが考えられる。また、独自ヘッダを定義してもよい。タグの代わりにMACアドレスやIPアドレスを用いることも可能である。しかし、MACアドレスやIPアドレスを用いる方法では、データ転送デバイス2-1~2-9が大規模なルーティングテーブルを持つ必要があり、タグを用いる方法と比べて計算リソースやメモリリソースをより多く消費する。
 なお、図2、図3の例では、ユーザ管理装置1-1を例に挙げて説明しているが、ユーザ管理装置1-2,1-3の構成と動作もユーザ管理装置1-1と同様である。
 図4はユーザ管理装置1-1~1-3のデータ管理部105の構成を示すブロック図である。データ管理部105は、パケット振り分け部1050と、1乃至複数のユーザ判定部1051-1~1051-N(Nは1以上の整数)と、1乃至複数のユーザ選択部1052-1~1052-Nと、1乃至複数の出力選択部1053-1~1053-Nと、出力制御部1054とから構成される。
 ユーザ判定部1051-1とユーザ選択部1052-1と出力選択部1053-1とは、メモリコントローラ1055-1を構成している。同様に、ユーザ判定部1051-Nとユーザ選択部1052-Nと出力選択部1053-Nとは、メモリコントローラ1055-Nを構成している。各メモリコントローラ1055-1~1055-Nは、記憶部106へのデータパケットの格納と取り出しを行う。メモリコントローラは1つでもよいが、複数設けることにより、記憶部106へのアクセスを並列化することができ、処理性能を向上させることができる。
 データ管理部105は、パケット種別判定部103から受信したデータパケットをユーザごとに管理し、適切なタイミングで後段のタグ付加部107に出力する。
 パケット振り分け部1050は、パケット種別判定部103から受信したデータパケットの格納を制御するメモリコントローラを決定し、決定したメモリコントローラのユーザ判定部1051(1051-1~1051-N)にデータパケットを出力する。なお、ユーザIDの一部をメモリコントローラの番号とすれば、パケット振り分け部1050は高速な振り分けが可能になる。パケットを振り分けるメモリコントローラの決定は、例えばメモリコントローラの処理の空きの状態に応じて適宜決定すればよい。
 ユーザ判定部1051-1~1051-Nは、パケット振り分け部1050から受信したパケットのユーザIDを参照し、記憶部106と出力選択部1053-1~1053-Nのどちらにパケットを転送するかを決める。
 具体的には、ユーザ判定部1051-1~1051-Nは、自身と同じメモリコントローラに属する出力選択部1053-1~1053-Nが現在出力しているパケットのユーザIDと同じユーザIDを有するパケットを受信した場合、受信したパケットを自身と同じメモリコントローラに属する出力選択部1053-1~1053-Nに転送する。また、ユーザ判定部1051-1~1051-Nは、自身と同じメモリコントローラに属する出力選択部1053-1~1053-Nが現在出力しているパケットのユーザIDと異なるユーザIDを有するパケットを受信した場合、受信したパケットを記憶部106に一時格納する。
 ユーザ選択部1052-1~1052-Nは、QoS制御部110によって登録されたQoS情報(優先度の情報)を基に記憶部106からデータパケットを選択的に取り出す。ユーザ選択部1052-1~1052-Nは、QoS制御を行わない場合、記憶部106に格納されているデータパケットのうち、最も先に格納されたユーザのデータパケットを取り出す。
 出力選択部1053-1~1053-Nは、自身と同じメモリコントローラに属するユーザ判定部1051-1~1051-Nとユーザ選択部1052-1~1052-Nのうち、どちらから受信したデータパケットを出力するかを選択する。ユーザ選択部1052-1~1052-Nに対してはバックプレッシャーをかけられるため、ユーザ判定部1051-1~1051-Nから受信したデータパケットを優先して出力する。この選択によりパケット順序が入れ替わることがある。そのため、データ処理デバイス3-1~3-13は、パケット順序制御機能を備えなければならない。
 出力制御部1054は、出力選択部1053-1~1053-Nから出力されたパケットをタグ付加部107に出力する。出力制御部1054は、メモリコントローラ(出力選択部1053-1~1053-N)が複数ある場合、どのメモリコントローラからのパケットをタグ付加部107に出力するかを制御する。その制御方式としては、ラウンドロビン方式やベストエフォート方式、DiffServ方式(QoS)などがある。
 ユーザ判定部1051-1~1051-Nは、自身と同じメモリコントローラに属する出力選択部1053-1~1053-Nが現在出力しているパケットのユーザIDと異なるユーザIDを有するパケットを受信した場合、受信したパケットをそのまま記憶部106に格納してもよい。このとき、ユーザ判定部1051-1~1051-Nは、受信したパケットと同じユーザIDを有するパケットが記憶部106に既に格納済みの場合には、格納済みのパケットと受信したパケットとを結合するように記憶部106に格納することで、より大きなデータを記憶部106に保持させるようにしてもよい。
 図5はデータ転送デバイス2-8とデータ処理デバイス3-9,3-10の構成を示すブロック図である。
 データ転送デバイス2-8は、パケット受信部200と、パケット送信部201と、パケット解析部202と、転送制御部203と、データ通信制御部204とから構成される。
 データ処理デバイス3-9,3-10は、それぞれペイロード取得部300と、データ構築部301と、データ処理部302と、レジスタ管理部303と、パケット作成部304と、タグ更新部305とから構成される。
 図6はデータ転送デバイス2-8の動作を説明するフローチャート、図7はデータ処理デバイス3-9,3-10の動作を説明するフローチャートである。
 データ転送デバイス2-8のパケット受信部200が前段のユーザ管理装置または他のデータ転送デバイスからデータパケットを受信すると(図6ステップS20)、パケット解析部202は、データパケットを解析して、データパケットに付加されているタグを取得し、受信したデータパケットを転送制御部203に出力する(図6ステップS21)。
 転送制御部203は、パケット解析部202によって取得されたタグに含まれるルート情報と自身に登録されているルーティングテーブルとに基づいて、パケット解析部202から出力されたデータパケットをデータ通信制御部204を介してデータ処理デバイス3-9もしくは3-10に転送するか、またはパケット解析部202から出力されたデータパケットをパケット送信部201を介して隣接するデータ転送デバイスに転送する(図6ステップS22)。
 データ処理デバイス3-9または3-10のペイロード取得部300は、データ転送デバイス2-8から受信したデータパケットからペイロードを取り出す(図7ステップS30,S31)。このとき、ペイロード取得部300は、受信したデータパケットに付加されていたユーザIDとタグとをパケット作成部304に渡す。
 データ処理デバイス3-9または3-10のデータ構築部301は、ペイロード取得部300によって複数のデータパケットから取得されたペイロードを組み合わせて元のデータを再構築する(図7ステップS32)。データ構築部301は、到着したパケットの順序が入れ替わっている可能性があるため、パケット順序制御を行い、複数のパケットから取り出されたデータを正しい順序で並べる。この順序制御は、後述するシーケンス番号に基づいて行われる。データ構築部301は、データ処理可能な状態になったら、再構築したデータをデータ処理部302に送信する。
 データ処理部302は、データ構築部301から受信したデータに対して所定の処理を実行し、処理完了後のデータをパケット作成部304に送信する(図7ステップS33)。パケット作成部304は、データ処理部302から受信したデータをパケット化し、生成したパケットをタグ更新部305に送信する(図7ステップS34)。このとき、パケット作成部304は、生成したパケットにペイロード取得部300から受け取ったユーザIDとタグとを付加する。
 タグ更新部305は、パケット作成部304から受信したパケットに付加されているタグに含まれるルート情報を参照し、自装置(データ処理デバイス3-9または3-10)がサービスチェインのルートから除かれるように、タグに含まれるルート情報を更新して、更新後のパケットをデータ転送デバイス2-8に送信する(図7ステップS35)。
 レジスタ管理部303は、データ処理部302へのパラメータの登録とパラメータの取得とを行う。具体的には、レジスタ管理部303は、後述のようにユーザ管理装置1-1~1-3からSFの処理に必要なユーザ固有のパラメータを取得して(図7ステップS36)、取得したパラメータをデータ処理部302に登録する(図7ステップS37)。パラメータの登録はユーザごと(ユーザIDごと)に行われる。
 また、レジスタ管理部303は、ユーザ管理装置1-1~1-3からの回収要求パケットを受信すると(図7ステップS38)、回収要求パケットに含まれるユーザIDに対応するパラメータをデータ処理部302から削除する。データ処理デバイスのパケット作成部304は、データ処理部302に登録されていたパラメータをパケット化して、要求元のユーザ管理装置1-1~1-3宛に返信する(図7ステップS39)。こうして、パラメータは、ユーザ管理装置1-1~1-3においてユーザIDと対応付けて管理される。このようなパラメータの登録と回収の機能により、ユーザごとにパラメータを入れ替えることができ、ユーザに適したパラメータでデータ処理を行うことができる。
 データ処理部302は、レジスタ管理部303によって登録されたパラメータのうち、ペイロード取得部300が取得したユーザIDに対応するパラメータを用いて、データ構築部301から受信したデータに対して所定の処理を実行する。
 データ転送デバイス2-8のパケット解析部202は、データ通信制御部204を介してデータ処理デバイス3-9または3-10から受信したパケットを解析して、パケットに付加されているタグを取得し、受信したパケットを転送制御部203に出力する(図6ステップS20,S21)。
 転送制御部203は、パケット解析部202によって取得されたタグに含まれるルート情報と自身に登録されているルーティングテーブルとに基づいて、パケット解析部202から出力されたデータパケットをデータ通信制御部204を介してデータ処理デバイス3-9もしくは3-10に転送するか、またはパケット解析部202から出力されたデータパケットをパケット送信部201を介して隣接するデータ転送デバイスに転送する(図6ステップS22)。このとき、上記のタグ更新部305によるタグの更新により、処理完了済みのデータ転送デバイス(SF)が転送先として選択されることはない。
 こうして、データ処理デバイス3-9または3-10によってSFの処理が実行される。図5の例のように、複数のデータ処理デバイス3-9,3-10を並列にデータ転送デバイス2-8に接続すれば、少ないオーバヘッドで各データ処理デバイス3-9,3-10にアクセスすることが可能である。また、データ処理デバイス3-9,3-10をデータ転送デバイス2-8と独立させることで、既存のデータ処理デバイス3-9,3-10とデータ転送デバイス2-8との通信を阻害することなく、新たなデータ処理デバイスの追加と削除が可能である。
 データ処理デバイス3-9,3-10として例えばCPUまたはGPUを用い、データ処理デバイス3-9,3-10の処理をソフトウェアで実行してもよいし、データ処理デバイス3-9,3-10として例えばFPGAを用い、データ処理デバイス3-9,3-10の処理をハードウェアで実行してもよい。ただし、一般的にはハードウェアの方がパケット処理性能が高いので、高速ネットワークを実現するには、ハードウェアを用いたほうがよい。
 なお、図5、図6、図7の例では、データ転送デバイス2-8、データ処理デバイス3-9,3-10を例に挙げて説明しているが、データ転送デバイス2-1~2-7,2-9の構成と動作はデータ転送デバイス2-8と同様であり、データ処理デバイス3-1~3-8,3-11~3-13の構成と動作はデータ処理デバイス3-9,3-10と同様である。
 図8は通信管理装置5の動作を説明するフローチャートである。通信管理装置5は、ユーザ管理装置1-1~1-3と連携し、ユーザ情報やサービスの利用終了の情報を受信し、ユーザ管理装置1-1~1-3に対してルート情報を送信する。また、通信管理装置5は、データ転送デバイス2-1~2-9の転送制御部203に登録されているルーティングテーブルを管理し、各データ処理デバイス3-1~3-13のSFの追加/削除を制御する。
 通信管理装置5は、サービス利用終了の情報を受信したときに、該当するデータ処理デバイス3-1~3-13からSFを削除する(図8ステップS100)。具体的には、データ処理デバイスが例えばCPUまたはGPUによって構成されている場合には、CPUまたはGPUのメモリからSFのプログラムを削除すればよい。また、データ処理デバイスが例えばFPGAによって構成されている場合には、FPGAの回路構成を更新して、SFのための回路を削除すればよい。SFを削除することにより、データ処理システムの消費電力を削減することができる。
 通信管理装置5は、ユーザ管理装置1-1~1-3のユーザ管理部109からユーザ情報とユーザIDとを受信すると(図8ステップS101においてYes)、ユーザ情報に含まれるサービス情報を取得する(図8ステップS102)。
 そして、通信管理装置5は、取得したサービス情報に基づいて、ユーザが要求するサービスの実現に必要なSFを経由するルートの計算を行う(図8ステップS103)。この計算では、稼働中のSFの配置やデータ転送デバイス2-1~2-9間の使用帯域およびデータ転送デバイス2-1~2-9内の使用帯域を考慮して、新たなサービスチェインが他に影響を与えないように配慮する。ルート計算には、例えば、迷路法や遺伝的アルゴリズムなどの配置配線手法が利用できる。
 稼働中のサービスが多いと既にあるSFだけでは新しいサービスを実現できない可能性がある。そこで稼動停止中のデータ処理デバイス3-1~3-13にSFを追加することもある。通信管理装置5は、SFの追加が必要な場合、新たなサービスチェインに必要なSFを経由するルート上の、所望のSFの位置にある稼動停止中のデータ処理デバイスに所望のSFを追加する(図8ステップS104)。
 通信管理装置5は、データ処理デバイスが例えばCPUまたはGPUによって構成されている場合には、所望のSFのプログラムをデータ処理デバイスに転送して、データ処理デバイスのメモリに格納させるようにすればよい。また、通信管理装置5は、データ処理デバイスが例えばFPGAによって構成されている場合には、FPGAの回路構成の更新のためのデータをデータ処理デバイスに転送して、所望のSFのための回路を追加すればよい。
 ルート計算に成功すると、通信管理装置5は、ユーザ管理装置1-1~1-3のうち、計算したルートの始点となるユーザ管理装置にルート情報とユーザIDとを送信する(図8ステップS105)。このように、ルートの始点となるユーザ管理装置のみにルート情報を送信することにより、各ユーザ管理装置1-1~1-3は、自身に関係するルート情報だけをユーザIDと対応付けて保持できる。
 また、通信管理装置5は、外部送信装置4-1~4-3のうち、計算したルートの終点となる外部送信装置にユーザ情報とユーザIDとを転送する(図8ステップS106)。このように、ルートの終点となる外部送信装置のみにユーザ情報を転送することにより、各外部送信装置4-1~4-3は、自身に関係するユーザ情報だけをユーザIDと対応付けて保持できる。
 通信管理装置5は、自身から送った情報を送信先のユーザ管理装置1-1~1-3と外部送信装置4-1~4-3とが受理すると、計算したルート上のデータ転送デバイス2-1~2-9の転送制御部203に登録されているルーティングテーブルを、ルート計算の結果に基づいて更新する(図8ステップS107)。すなわち、新しいサービスを要求したユーザから送信された「サービス利用」のパケットが、計算したルートを辿るようにルーティングテーブルを更新する。本実施例では、ルーティングテーブルの更新対象を最小限のデータ転送デバイスに絞ることで、ルーティングテーブルの肥大化を抑えることができる。
 通信管理装置5は、ルート計算に失敗した場合、または自身から送った情報を送信先のユーザ管理装置1-1~1-3または外部送信装置4-1~4-3が受理しなかった場合には、サービスが開始できない旨をユーザ管理装置1-1~1-3を介してユーザに通知する。
 通信管理装置5は、以上の処理を、データ処理システムの動作が終了するまで(図8ステップS108においてYes)、繰り返し実行する。
 次に、本実施例のデータ処理システムのネットワークの接続形態について説明する。本実施例のネットワークの接続形態としては、図9に示すように特定のデータ転送デバイス2-1~2-9に特定のユーザ管理装置1-1~1-6や特定の外部送信装置4-1~4-6を接続する構成が考えられる。
 また、ネットワークの別の接続形態として、図10に示すように全てのデータ転送デバイス2-1~2-9に全てのユーザ管理装置兼外部送信装置1a-1~1a-9を接続する構成が考えられる。名称から明らかなように、ユーザ管理装置兼外部送信装置1a-1~1a-9は、ユーザ管理装置と外部送信装置の機能を兼ね備えたものである。なお、図9、図10では、データ処理デバイスの記載を省略している。
 本実施例におけるシステム内通信は、パケット通信であり、データ転送デバイス2-1~2-9間の接続構成は任意である。データ転送デバイス2-1~2-9間の接続構成としては、例えばバス型、スター型、ライン型、ツリー型、リング型、トーラス型、メッシュ型、もしくはこれらの複合型が考えられる。
 ユーザからのパケットは、図1に示すようにデータ処理システムの外部のロードバランサ6を用いて任意のユーザ管理装置1-1~1-6または任意のユーザ管理装置兼外部送信装置1a-1~1a-9に入力できる。
 図9に示す構成のように入力と出力の位置が固定されている場合、ルートの計算が容易である。しかし、ユーザ数(=サービスチェイン数)が増えると、最適なルートが取れなくなり、サービスレイテンシが悪化する可能性がある。最悪サービス提供が行えないこともある。
 全てのデータ処理が完了したパケットを任意の外部送信装置4-1~4-6または任意のユーザ管理装置兼外部送信装置1a-1~1a-9からユーザ宛に送り返すには、ユーザ管理装置1-1~1-6(またはユーザ管理装置兼外部送信装置1a-1~1a-9におけるユーザ管理装置の機能部)が有するユーザ情報(IPアドレス等)を通信管理装置5を介して外部送信装置4-1~4-6(またはユーザ管理装置兼外部送信装置1a-1~1a-9における外部送信装置の機能部)に転送する方法が考えられる。
 図8で説明したように、通信管理装置5は、外部送信装置4-1~4-6またはユーザ管理装置兼外部送信装置1a-1~1a-9のうち、計算したルートの終点となる外部送信装置またはユーザ管理装置兼外部送信装置にユーザ情報を転送する(ステップS106)。
 外部送信装置4-1~4-6またはユーザ管理装置兼外部送信装置1a-1~1a-9は、データ処理が完了したパケットに付加されているユーザIDに基づいてパケットの宛先のユーザを特定し、データ処理が完了したパケットを、通信管理装置5から転送されたユーザ情報に基づいてユーザ宛に送り返す。
 通信経路の自由度を高めるため、またスケーラビリティの観点でデータ処理システムが普遍であるため、全てのデータ転送デバイス2-1~2-9に全てのユーザ管理装置兼外部送信装置1a-1~1a-9を接続する図10の構成が望ましい。この構成は、入力と出力が近くにあるため、データセンタに適している。
 上記のとおりサービスチェインのルートの計算は通信管理装置5によって行われる。通信管理装置5をドメイン内に1台配置することとし、通信管理装置5は、ドメイン内の担当のユーザ管理装置1-1~1-6にルート情報を送信する。1台の通信管理装置5でルートを計算することで、想定外の経路重複を回避することができる。
 システム規模が大きくなった際は、図11に示すようにドメインを例えば2つに分けて、それぞれのドメイン7-1,7-2を1台の通信管理装置5-1,5-2で管理する。ドメイン7-1,7-2間のルートは、隣接する通信管理装置5-1,5-2間で連携して決める。
 以上により、本実施例では、各サービスチェインに適切なルートを割り当てることができる。
 本実施例のデータ処理システムは、データ転送デバイス2-1~2-9とデータ処理デバイス3-1~3-13とが別れているため、従来のSFCでも検討されているバス型ネットワークやパーシャルメッシュ型ネットワークを実現することができる。
 図12はバス型ネットワークの例を示す図である。図12の構成では、ユーザ管理装置1とデータ転送デバイス2-1~2-3と外部送信装置4とが直列に接続されている。バス型ネットワークは、データのルートがシンプルである。一方、全てのサービスチェインが同じデータ転送デバイス2-1~2-3を通るため、通信帯域がボトルネックになり易いという問題がある。
 この問題を解決するには、データ転送デバイス2-1~2-3に分岐点を作ればよい。経済的な観点からは必要なポイントにのみ分岐点を作ることが望ましい。バス型ネットワークは、入力と出力が離れているため、キャリアネットワークに適している。
 図13は本実施例のデータ処理システムの動作を説明するシーケンス図である。本実施例のデータ処理システムを利用したいユーザは、自身のユーザ端末8を使用して、サービス利用前にデータ処理システムに対してサービス利用申請を行う(図13ステップS200)。
 ユーザ管理装置1のユーザ情報抽出部104は、ユーザ端末8からパケット種別が「サービス利用申請」のパケットを受信すると、パケットに記載されたユーザ情報を取得する。ユーザ管理装置1のユーザ管理部109は、ユーザIDを発行すると共に、ユーザ情報とユーザIDとを通信管理装置5に転送する(図13ステップS201)。
 通信管理装置5は、ユーザ情報を受信すると、ユーザ情報に含まれるサービス情報に基づいてサービスチェインのルートの計算を行い、複数のユーザ管理装置のうち、計算したルートの始点となるユーザ管理装置1にルート情報とユーザIDとを送信する(図13ステップS202)。
 また、通信管理装置5は、複数の外部送信装置のうち、計算したルートの終点となる外部送信装置4にユーザ情報とユーザIDとを送信する(図13ステップS203)。また、図13では記載していないが、通信管理装置5は、計算したルート上のデータ転送デバイスの転送制御部203に登録されているルーティングテーブルを、ルート計算の結果に基づいて更新する。こうして、通信管理装置5は、ユーザがサービスを利用する環境を整える。
 ユーザ管理装置1のユーザ管理部109は、「サービス利用申請」のパケットに対して、発行したユーザIDを含むパケットをユーザ端末8に返信することで、ユーザに対してユーザIDを通知する(図13ステップS204)。
 ユーザIDが発行されたユーザは、サービスの利用開始時に自身のユーザ端末8を使用して、データ処理システムに対してサービスの利用開始通知を行う(図13ステップS205)。
 ユーザ管理装置1のユーザ管理部109は、ユーザ端末8からパケット種別が「サービス利用開始」のパケットを受信すると、パケットに付加されているユーザIDを基にユーザを識別し、ユーザIDと対応付けて管理しているユーザ情報に含まれるサービス情報に基づいてSFでのデータ処理に必要なユーザ固有のパラメータを生成する。そして、ユーザ管理部109は、ユーザ固有のパラメータを、ユーザIDと対応付けて管理しているルート情報に基づいてサービスチェインのルート上のデータ処理デバイス3-1~3-N(SF)に送信する(図13ステップS206)。
 図13ではデータ転送デバイスについて記載していないが、ユーザ固有のパラメータはパケット化され、ユーザ管理装置1から最寄りのデータ転送デバイスに送信される。各データ転送デバイスの転送制御部203は、パケット解析部202によるパケット解析の結果に基づいて、パラメータの送信先のデータ処理デバイス3-1~3-N(SF)のうち、自装置と接続されているデータ処理デバイスにパケット化されたパラメータを転送する。
 パケット化されたパラメータを受信したデータ処理デバイス3-1~3-N(SF)のレジスタ管理部303は、受信したパケットに付加されていたユーザIDと対応付けてパラメータをデータ処理部302に登録する。
 ユーザは、サービスを利用するために、自身のユーザ端末8を使用してデータパケットをデータ処理システムに向けて送信する(図13ステップS207)。ユーザ端末8から送信されるパケット種別が「サービス利用」のデータパケットにはユーザIDが付加されている。
 ユーザ管理装置1のタグ付加部107は、ユーザ端末8から受信したパケット種別が「サービス利用」のパケットに付加されているユーザIDに対応するタグをパケットに付加して、タグ付きのパケットをパケット送信部101に出力する。ユーザ管理装置1のパケット送信部101は、タグ付加部107から出力されたパケットを最寄りのデータ転送デバイスに送信する。
 図13ではデータ転送デバイスについて記載していないが、各データ転送デバイスのパケット解析部202は、受信したパケットを解析して、パケットに付加されているタグを取得する。データ転送デバイスの転送制御部203は、パケット解析部202によって取得されたタグに含まれるルート情報に従って、サービスチェインのルート上のデータ処理デバイス3-1~3-N(SF)のうち、自装置と接続されているデータ処理デバイスにパケットを転送する(図13ステップS208)。
 各データ処理デバイス3-1~3-N(SF)は、自装置と接続されているデータ転送デバイスからパケットを受信し、SFの処理完了後のパケットをデータ転送デバイスに送信する。こうして、サービスチェインのルート上のデータ転送デバイスによってデータ処理デバイス(SF)にパケットが転送されることが複数回行われ、全てのデータ処理が完了したパケットは、データ転送デバイスによってサービスチェインのルートの終点となる外部送信装置4に転送される(図13ステップS209)。
 外部送信装置4は、受信したパケットに付加されているユーザIDに基づいてパケットの宛先のユーザを特定し、パケットからタグを削除する。そして、外部送信装置4は、ユーザIDに対応するユーザ情報に基づいて、パケットにTCP/IPの宛先情報を付加してユーザ端末8宛に送り返す(図13ステップS210)。
 同じFSを別のユーザが利用する場合、ユーザが切り替わるタイミングで、ユーザ管理装置1のユーザ管理部109は、サービス利用が終了したユーザ固有のパラメータの回収を要求するパケットを、当該ユーザのユーザIDと対応付けて管理しているルート情報に基づいてサービスチェインのルート上のデータ処理デバイス3-1~3-N(SF)に送信する。各データ転送デバイスの転送制御部203は、パケット解析部202によるパケット解析の結果に基づいて、データ処理デバイス3-1~3-N(SF)のうち、自装置と接続されているデータ処理デバイスにユーザ管理装置1からの回収要求パケットを転送する。
 データ処理デバイスのレジスタ管理部303は、ユーザ管理装置1からの回収要求パケットを受信すると、回収要求パケットに含まれるユーザIDに対応するパラメータをデータ処理部302から削除する。データ処理デバイスのパケット作成部304は、データ処理部302に登録されていたパラメータをパケット化して、自装置と接続されているデータ転送デバイスに送信する。パケット化されたパラメータは、データ転送デバイスからユーザ管理装置1に転送される(図13ステップS211)。
 ユーザ管理装置1のユーザ管理部109は、データ転送デバイスを介してデータ処理デバイス3-1~3-N(SF)から回収したパラメータを、サービス利用が終了したユーザのユーザIDと対応付けて管理する。また、ユーザ管理装置1は、ユーザ端末8に対してサービス利用終了を通知する(図13ステップS212)。サービス利用終了を示すパケットは、ユーザ管理装置1から通信管理装置5にも送信される。
 システムがサービス利用終了と判断するタイミングは、ユーザがサービス利用を止める旨を通知してきたとき、もしくは一定時間データを送ってこないとき(タイムアウト)である。いずれの場合もユーザ端末8に対してサービス利用終了を通知する。その際に、データ処理デバイス3-1~3-N(SF)にそのユーザに向けたパラメータが残っていた場合、回収(破棄)して次ユーザに向けたパラメータを送信する。
 ユーザがサービス利用中であっても別ユーザが待機していた場合、一定時間サービスを利用した後、QoS制御の結果、もしくは外部から指示された時、に一時中断してデータ処理デバイス3-1~3-N(SF)を次ユーザに明け渡す。その際、パラメータをデータ処理デバイス3-1~3-N(SF)から回収し、次ユーザのパラメータを送信する。ただし、明け渡すタイミングはデータ処理が一段落したときとする。例えば、画像処理サービスではフレームごとに処理が行われるので、1フレーム分のデータの送信が終わってからパラメータ更新処理に移行する。
 図14は本実施例のデータ処理システムの別の動作を説明するシーケンス図である。本実施例のデータ処理システムは、ユーザ固有のパラメータがないサービスも提供することができる。ユーザ固有のパラメータを使用しない場合、図13で説明したステップS206,S211の処理が不要となる。その他の処理は図13の場合と同じである。
 パラメータを使用しないサービスの例としては、ネットワークサービスがある。例えば、ファイヤウォールやDPI、ロードバランシングなどのネットワークサービスは、複数のトラフィックが同時に利用することを想定しており、パラメータの切り替えは不要である。
 クラウドサービスにおいても、例えば、機械学習で同じ学習データを使用する場合や、画像処理で同じパラメータを使用可能な場合などは、パラメータの切り替えは不要であり、パラメータを使用しないサービスとして扱うことができる。
 本実施例のデータ処理システムは、ユーザ端末8との通信に一般的なIPネットワークを利用することができる。その場合、データ処理システムは、ユーザ端末8から受信したパケットに記載されたIPアドレスおよびポート番号からユーザを一意に識別し、ユーザIDを発行する。
 サービス利用申請時にユーザ端末8から送信されるパケットのフォーマットを図15Aに示し、サービス利用時にユーザ端末8とデータ処理システム間で送受信されるパケットのフォーマットを図15Bに示し、サービス利用時にデータ処理システム内で送受信されるパケットのフォーマットを図15Cに示す。
 「サービス利用申請」のパケットには、Ethernet(登録商標)ヘッダ400と、IPヘッダ401と、TCPヘッダもしくはUDPヘッダ402と、ペイロード403と、FCS(Frame Check Sequence)404とが含まれる。
 サービス利用申請時、ユーザ端末8は、パケットのペイロード403に「サービス利用申請」を示すパケット種別の情報(図15Aの405の箇所)を格納してデータ処理システム宛に送信する。
 上記のとおり、ユーザ管理装置1のユーザ管理部109は、「サービス利用申請」のパケットから抽出された送信元IPアドレスと送信元ポート番号からユーザを一意に識別し、ユーザIDを発行する。ユーザ管理部109は、発行したユーザIDを図15Aの405の箇所に格納したパケットをユーザ端末8に返信する。
 ユーザ端末8は、サービス利用時に、図15Bのパケットにおけるペイロード403の405で示す箇所にユーザIDとシーケンス番号と「サービス利用」を示すパケット種別の情報とを格納し、ペイロード403の406で示す箇所にデータ先頭フラグとデータとデータ末尾フラグとを格納する。ユーザ端末8は、このようにして生成した「サービス利用」のパケットをデータ処理システム宛に送信する。データ先頭フラグとデータ末尾フラグとシーケンス番号は、データ処理デバイス(SF)によるデータの再構築に必要な情報である。
 サービス利用時にデータ処理システム内では、図15Cに示すフォーマットのパケットが送受信される。このパケットには、Ethernetヘッダ400と、タグ407と、ペイロード403と、FCS404とが含まれる。ペイロード403の408で示す箇所には、ユーザIDとシーケンス番号とパケット種別の情報とが格納され、ペイロード403の409で示す箇所には、データ先頭フラグとデータとデータ末尾フラグとが格納される。データ処理システム内では、タグ407を用いたパケット通信が行われる。各タグ407に行き先のSFまでのルート情報を記載することで、ルート情報に従ってパケットが転送され、ユーザが要求するサービスに対応したSFでデータ処理が行われる。
 以上のように、本実施例では、ユーザ管理装置1,1-1~1-6を用いてユーザごとにデータを管理し、1サービスチェインあたり1ユーザのデータしか流さないように制御する。本実施例では、データ処理デバイス3-1~3-13におけるデータの衝突を回避すると共に、1つのデータ処理デバイス(サービス機能)を複数のユーザで利用できるようにしたので、複数のユーザによる利用下においても、サービス機能の利用効率の低下を抑制することができる。
 また、本実施例では、ユーザ管理装置1,1-1~1-6を、ユーザ管理部109とタグ生成部111とタグ付加部107とパケット送信部101とQoS制御部110とデータ管理部105とから構成し、ユーザから受信したパケットにルート情報を記載したタグを付加することにより、データ処理システム内でのパケット通信を実現することができる。また、本実施例では、QoS制御部110を設けることにより、ユーザごとのパケットの転送の優先度を制御することができる。
 また、本実施例では、データ管理部105を、ユーザ選択部1052-1~1052-Nとユーザ判定部1051-1~1051-Nと出力選択部1053-1~1053-Nとから構成することにより、ユーザから受信したパケットを、転送の優先度に応じたタイミングでタグ付加部107に転送することができる。
 また、本実施例では、ユーザ判定部1051-1~1051-Nとユーザ選択部1052-1~1052-Nと出力選択部1053-1~1053-Nとによって構成されるメモリコントローラ1055-1~1055-Nを複数設けることにより、記憶部106へのアクセスを並列化することができ、処理性能を向上させることができる。
 また、本実施例では、ユーザ管理装置1,1-1~1-6が、ユーザによるサービス利用の前に、サービス機能の処理に必要なユーザ固有のパラメータを、ルート情報に基づいてサービスチェインのルート上のデータ処理デバイス3-1~3-13に送信し、サービスの利用終了後にパラメータをデータ処理デバイス3-1~3-13から回収することにより、ユーザごとにパラメータを入れ替えることができ、ユーザに適したパラメータでデータ処理を行うことができる。
 また、本実施例では、通信管理装置5,5-1,5-2が、ユーザが要求するサービスの実現に新たなサービス機能が必要な場合に、稼動停止中のデータ処理デバイス3-1~3-13に必要なサービス機能を追加し、サービスの利用終了後に、サービスの実現のために使用したデータ処理デバイス3-1~3-13からサービス機能を削除することにより、サービス機能の追加と削除を適宜行うことが可能になる。
 本実施例で説明したユーザ管理装置1,1-1~1-6とユーザ管理装置兼外部送信装置1a-1~1a-9とデータ転送デバイス2-1~2-9とデータ処理デバイス3-1~3-13と外部送信装置4,4-1~4-6と通信管理装置5,5-1,5-2とユーザ端末8の各々は、CPU(またはGPU)、記憶装置及びインタフェースを備えたコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。このコンピュータの構成例を図16に示す。コンピュータは、CPU500(またはGPU)と、記憶装置501と、インタフェース装置502とを備えている。このようなコンピュータにおいて、本発明のデータ処理方法を実現させるためのプログラムは、記憶装置501に格納される。各装置のCPU500(またはGPU)は、記憶装置501に格納されたプログラムに従って本実施例で説明した処理を実行する。
 ユーザ管理装置1,1-1~1-6とユーザ管理装置兼外部送信装置1a-1~1a-9とデータ転送デバイス2-1~2-9とデータ処理デバイス3-1~3-13と外部送信装置4,4-1~4-6と通信管理装置5,5-1,5-2の少なくとも一部をFPGAもしくはASICによって構成してもよい。特に、パケット処理およびデータ処理の一部をこれらのハードウェアで実行することで処理性能の向上が期待できる。
 上記の実施例の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
 (付記1)本発明のデータ処理システムは、サービスの利用を申請したユーザの情報の管理とユーザから受信したパケットの転送制御とを行うように構成されたユーザ管理装置と、受信したパケットに含まれるデータに対してサービス機能のデータ処理を行うように構成されたデータ処理デバイスと、1乃至複数の前記データ処理デバイスを配下に有する1乃至複数のデータ転送デバイスと、ユーザが要求するサービスの実現に必要なサービスチェインのルートを計算し、ルート情報を前記ユーザ管理装置に送信すると共に、計算したルート上の前記データ転送デバイスに登録されているルーティングテーブルを、ルート計算の結果に基づいて更新するように構成された通信管理装置と、前記サービスチェインの全てのデータ処理が完了したパケットをユーザ宛に返送するように構成された外部送信装置とを備え、前記ユーザ管理装置は、ユーザから受信したパケットに、前記ルート情報を記載したタグを付加して前記データ転送デバイスに送信し、前記データ転送デバイスは、受信したパケットに付加されたタグに含まれる前記ルート情報と前記ルーティングテーブルとに基づいて、配下の前記データ処理デバイスまたは他のデータ転送デバイスにパケットを転送し、前記データ処理デバイスは、データ処理が完了したパケットを送信元の前記データ転送デバイスに返信する。
 (付記2)付記1記載のデータ処理システムにおいて、前記ユーザ管理装置は、サービスの利用を申請したユーザの情報を管理し、ユーザIDを発行し、発行したユーザIDをユーザに通知するように構成されたユーザ管理部と、前記通信管理装置から受信したルート情報を記載したタグを生成するように構成されたタグ生成部と、ユーザから受信したパケットに前記タグを付加するように構成されたタグ付加部と、前記タグが付加されたパケットを前記データ転送デバイスに送信するように構成されたパケット送信部と、前記ユーザ管理部が管理するユーザの情報に基づいて、ユーザごとのパケットの転送の優先度を決定するように構成されたQoS制御部と、ユーザから受信したパケットを前記優先度に応じたタイミングで前記タグ付加部に転送するように構成されたデータ管理部とを備え、ユーザから受信したパケットに前記ユーザIDが付加されていることを特徴とする。
 (付記3)付記2記載のデータ処理システムは、ユーザから受信したパケットを一時的に格納するための記憶部をさらに備え、前記データ管理部は、前記優先度の情報に基づいて前記記憶部からパケットを選択的に取り出すように構成されたユーザ選択部と、ユーザから受信したパケットが、前記タグ付加部に向けて現在出力されているパケットのユーザIDと同じユーザIDを有するものか否かを判定するように構成されたユーザ判定部と、前記ユーザ判定部と前記ユーザ選択部のいずれかから出力されたパケットを前記タグ付加部に向けて選択的に出力するように構成された出力選択部とを備え、前記ユーザ判定部は、判定の結果に基づいて、ユーザから受信したパケットを前記記憶部と前記出力選択部のいずれかに転送する。
 (付記4)付記3記載のデータ処理システムにおいて、前記データ管理部は、前記ユーザ判定部と前記ユーザ選択部と前記出力選択部とによって構成されるメモリコントローラを複数備え、ユーザから受信したパケットの振り分け先の前記メモリコントローラを決定し、決定したメモリコントローラにユーザから受信したパケットを出力するように構成されたパケット振り分け部と、前記複数のメモリコントローラのそれぞれの出力選択部から出力されたパケットを所定の制御方式に従って選択して前記タグ付加部に出力するように構成された出力制御部とをさらに備える。
 (付記5)付記1乃至4のいずれか1項に記載のデータ処理システムにおいて、前記ユーザ管理装置は、ユーザによるサービス利用の前に、前記サービス機能の処理に必要なユーザ固有のパラメータを、前記ルート情報に基づいて前記サービスチェインのルート上の前記データ処理デバイスに送信し、サービスの利用終了後に前記パラメータを前記データ処理デバイスから回収する。
 (付記6)付記1乃至5のいずれか1項に記載のデータ処理システムにおいて、前記通信管理装置は、ユーザが要求するサービスの実現に新たなサービス機能が必要な場合に、稼動停止中の前記データ処理デバイスに必要なサービス機能を追加し、サービスの利用終了後に、このサービスの実現のために使用した前記データ処理デバイスからサービス機能を削除する。
 (付記7)本発明のデータ処理方法は、ユーザ管理装置が、サービスの利用を申請したユーザの情報を通信管理装置と外部送信装置とに送信する第1のステップと、前記通信管理装置が、前記ユーザの情報に含まれるサービス情報に基づいて、ユーザが要求するサービスの実現に必要なサービスチェインのルートを計算し、ルート情報を前記ユーザ管理装置に送信すると共に、計算したルート上のデータ転送デバイスに登録されているルーティングテーブルを、ルート計算の結果に基づいて更新する第2のステップと、前記ユーザ管理装置が、ユーザから受信したパケットに、前記ルート情報を記載したタグを付加してデータ転送デバイスに送信する第3のステップと、前記データ転送デバイスが、受信したパケットに付加されたタグに含まれる前記ルート情報と自身で管理するルーティングテーブルとに基づいて、配下のデータ処理デバイスまたは他のデータ転送デバイスにパケットを転送する第4のステップと、前記データ処理デバイスが、受信したパケットに含まれるデータに対してサービス機能のデータ処理を行い、データ処理が完了したパケットを送信元の前記データ転送デバイスに返送する第5のステップと、前記外部送信装置が、前記サービスチェインの全てのデータ処理が完了したパケットをユーザ宛に返送する第6のステップとを含む。
 (付記8)付記7記載のデータ処理方法は、前記ユーザ管理装置が、ユーザによるサービス利用の前に、前記サービス機能の処理に必要なユーザ固有のパラメータを、前記ルート情報に基づいて前記サービスチェインのルート上の前記データ処理デバイスに送信する第7のステップと、前記ユーザ管理装置が、サービスの利用終了後に、前記パラメータを前記データ処理デバイスから回収する第8のステップとをさらに含む。
 本発明は、サービスファンクションチェイニング技術に適用することができる。
 1,1-1~1-6…ユーザ管理装置、1a-1~1a-9…ユーザ管理装置兼外部送信装置、2-1~2-9…データ転送デバイス、3-1~3-13…データ処理デバイス、4,4-1~4-6…外部送信装置、5,5-1,5-2…通信管理装置、6…ロードバランサ、7-1,7-2…ドメイン、8…ユーザ端末、100,200…パケット受信部、101,201…パケット送信部、102,202…パケット解析部、103…パケット種別判定部、104…ユーザ情報抽出部、105…データ管理部、106…記憶部、107…タグ付加部、108…データ通信制御部、109…ユーザ管理部、110…QoS制御部、111…タグ生成部、203…転送制御部、204…データ通信制御部、300…ペイロード取得部、301…データ構築部、302…データ処理部、303…レジスタ管理部、304…パケット作成部、305…タグ更新部、1050…パケット振り分け部、1051-1~1051-N…ユーザ判定部、1052-1~1052-N…ユーザ選択部、1053-1~1053-N…出力選択部、1054…出力制御部、1055-1~1055-N…メモリコントローラ。

Claims (8)

  1.  サービスの利用を申請したユーザの情報の管理とユーザから受信したパケットの転送制御とを行うように構成されたユーザ管理装置と、
     受信したパケットに含まれるデータに対してサービス機能のデータ処理を行うように構成されたデータ処理デバイスと、
     1乃至複数の前記データ処理デバイスを配下に有する1乃至複数のデータ転送デバイスと、
     ユーザが要求するサービスの実現に必要なサービスチェインのルートを計算し、ルート情報を前記ユーザ管理装置に送信すると共に、計算したルート上の前記データ転送デバイスに登録されているルーティングテーブルを、ルート計算の結果に基づいて更新するように構成された通信管理装置と、
     前記サービスチェインの全てのデータ処理が完了したパケットをユーザ宛に返送するように構成された外部送信装置とを備え、
     前記ユーザ管理装置は、ユーザから受信したパケットに、前記ルート情報を記載したタグを付加して前記データ転送デバイスに送信し、
     前記データ転送デバイスは、受信したパケットに付加されたタグに含まれる前記ルート情報と前記ルーティングテーブルとに基づいて、配下の前記データ処理デバイスまたは他のデータ転送デバイスにパケットを転送し、
     前記データ処理デバイスは、データ処理が完了したパケットを送信元の前記データ転送デバイスに返信することを特徴とするデータ処理システム。
  2.  請求項1記載のデータ処理システムにおいて、
     前記ユーザ管理装置は、
     サービスの利用を申請したユーザの情報を管理し、ユーザIDを発行し、発行したユーザIDをユーザに通知するように構成されたユーザ管理部と、
     前記通信管理装置から受信したルート情報を記載したタグを生成するように構成されたタグ生成部と、
     ユーザから受信したパケットに前記タグを付加するように構成されたタグ付加部と、
     前記タグが付加されたパケットを前記データ転送デバイスに送信するように構成されたパケット送信部と、
     前記ユーザ管理部が管理するユーザの情報に基づいて、ユーザごとのパケットの転送の優先度を決定するように構成されたQoS制御部と、
     ユーザから受信したパケットを前記優先度に応じたタイミングで前記タグ付加部に転送するように構成されたデータ管理部とを備え、
     ユーザから受信したパケットに前記ユーザIDが付加されていることを特徴とするデータ処理システム。
  3.  請求項2記載のデータ処理システムにおいて、
     ユーザから受信したパケットを一時的に格納するための記憶部をさらに備え、
     前記データ管理部は、
     前記優先度の情報に基づいて前記記憶部からパケットを選択的に取り出すように構成されたユーザ選択部と、
     ユーザから受信したパケットが、前記タグ付加部に向けて現在出力されているパケットのユーザIDと同じユーザIDを有するものか否かを判定するように構成されたユーザ判定部と、
     前記ユーザ判定部と前記ユーザ選択部のいずれかから出力されたパケットを前記タグ付加部に向けて選択的に出力するように構成された出力選択部とを備え、
     前記ユーザ判定部は、判定の結果に基づいて、ユーザから受信したパケットを前記記憶部と前記出力選択部のいずれかに転送することを特徴とするデータ処理システム。
  4.  請求項3記載のデータ処理システムにおいて、
     前記データ管理部は、
     前記ユーザ判定部と前記ユーザ選択部と前記出力選択部とによって構成されるメモリコントローラを複数備え、
     ユーザから受信したパケットの振り分け先の前記メモリコントローラを決定し、決定したメモリコントローラにユーザから受信したパケットを出力するように構成されたパケット振り分け部と、
     前記複数のメモリコントローラのそれぞれの出力選択部から出力されたパケットを所定の制御方式に従って選択して前記タグ付加部に出力するように構成された出力制御部とをさらに備えることを特徴とするデータ処理システム。
  5.  請求項1乃至4のいずれか1項に記載のデータ処理システムにおいて、
     前記ユーザ管理装置は、ユーザによるサービス利用の前に、前記サービス機能の処理に必要なユーザ固有のパラメータを、前記ルート情報に基づいて前記サービスチェインのルート上の前記データ処理デバイスに送信し、サービスの利用終了後に前記パラメータを前記データ処理デバイスから回収することを特徴とするデータ処理システム。
  6.  請求項1乃至5のいずれか1項に記載のデータ処理システムにおいて、
     前記通信管理装置は、ユーザが要求するサービスの実現に新たなサービス機能が必要な場合に、稼動停止中の前記データ処理デバイスに必要なサービス機能を追加し、サービスの利用終了後に、このサービスの実現のために使用した前記データ処理デバイスからサービス機能を削除することを特徴とするデータ処理システム。
  7.  ユーザ管理装置が、サービスの利用を申請したユーザの情報を通信管理装置と外部送信装置とに送信する第1のステップと、
     前記通信管理装置が、前記ユーザの情報に含まれるサービス情報に基づいて、ユーザが要求するサービスの実現に必要なサービスチェインのルートを計算し、ルート情報を前記ユーザ管理装置に送信すると共に、計算したルート上のデータ転送デバイスに登録されているルーティングテーブルを、ルート計算の結果に基づいて更新する第2のステップと、
     前記ユーザ管理装置が、ユーザから受信したパケットに、前記ルート情報を記載したタグを付加してデータ転送デバイスに送信する第3のステップと、
     前記データ転送デバイスが、受信したパケットに付加されたタグに含まれる前記ルート情報と自身で管理するルーティングテーブルとに基づいて、配下のデータ処理デバイスまたは他のデータ転送デバイスにパケットを転送する第4のステップと、
     前記データ処理デバイスが、受信したパケットに含まれるデータに対してサービス機能のデータ処理を行い、データ処理が完了したパケットを送信元の前記データ転送デバイスに返送する第5のステップと、
     前記外部送信装置が、前記サービスチェインの全てのデータ処理が完了したパケットをユーザ宛に返送する第6のステップとを含むことを特徴とするデータ処理方法。
  8.  請求項7記載のデータ処理方法において、
     前記ユーザ管理装置が、ユーザによるサービス利用の前に、前記サービス機能の処理に必要なユーザ固有のパラメータを、前記ルート情報に基づいて前記サービスチェインのルート上の前記データ処理デバイスに送信する第7のステップと、
     前記ユーザ管理装置が、サービスの利用終了後に、前記パラメータを前記データ処理デバイスから回収する第8のステップとをさらに含むことを特徴とするデータ処理方法。
PCT/JP2022/041554 2021-11-12 2022-11-08 データ処理システムおよびデータ処理方法 WO2023085266A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021184725A JP2023072282A (ja) 2021-11-12 2021-11-12 データ処理システムおよびデータ処理方法
JP2021-184725 2021-11-12

Publications (1)

Publication Number Publication Date
WO2023085266A1 true WO2023085266A1 (ja) 2023-05-19

Family

ID=86335739

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/041554 WO2023085266A1 (ja) 2021-11-12 2022-11-08 データ処理システムおよびデータ処理方法

Country Status (2)

Country Link
JP (1) JP2023072282A (ja)
WO (1) WO2023085266A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120281540A1 (en) * 2011-05-03 2012-11-08 Cisco Technology, Inc. Mobile service routing in a network environment
JP2016046603A (ja) * 2014-08-20 2016-04-04 日本電信電話株式会社 ネットワーク機能の負荷分散システム及び方法
JP2016144030A (ja) * 2015-02-02 2016-08-08 日本電信電話株式会社 トラヒック振り分け装置、その方法及びプログラム
JP2016225877A (ja) * 2015-06-01 2016-12-28 日本電信電話株式会社 サービス提供システム、サービス提供方法、およびサービス提供プログラム
WO2018159677A1 (ja) * 2017-03-01 2018-09-07 日本電信電話株式会社 データ処理装置、ネットワークシステム、パケット順序制御回路、およびデータ処理方法
US20180262431A1 (en) * 2015-10-12 2018-09-13 Fujitsu Limited Service function chaining based on resource availability in the time dimension

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120281540A1 (en) * 2011-05-03 2012-11-08 Cisco Technology, Inc. Mobile service routing in a network environment
JP2016046603A (ja) * 2014-08-20 2016-04-04 日本電信電話株式会社 ネットワーク機能の負荷分散システム及び方法
JP2016144030A (ja) * 2015-02-02 2016-08-08 日本電信電話株式会社 トラヒック振り分け装置、その方法及びプログラム
JP2016225877A (ja) * 2015-06-01 2016-12-28 日本電信電話株式会社 サービス提供システム、サービス提供方法、およびサービス提供プログラム
US20180262431A1 (en) * 2015-10-12 2018-09-13 Fujitsu Limited Service function chaining based on resource availability in the time dimension
WO2018159677A1 (ja) * 2017-03-01 2018-09-07 日本電信電話株式会社 データ処理装置、ネットワークシステム、パケット順序制御回路、およびデータ処理方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
MOCHIZUKI, KONOMI ET AL.: "Service Chaining Method to Satisfy the Carrier Requirements for Network Functions Virtualization", IEICE TECHNICAL REPORT, vol. 114, no. 206, 4 September 2014 (2014-09-04), pages 113 - 118, XP009545606 *
TAKAYA, NAOKI ET AL.: "Service Chaining Technologies", THE JOURNAL OF THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS, vol. 99, no. 6, 1 June 2016 (2016-06-01), pages 536 - 542, XP009545617 *
WATANABE, HIROKI ET AL.: "Application Function Chaining towards Integration of Communication and Computation", IEICE TECHNICAL REPORT, vol. 118, no. 326, 30 November 2018 (2018-11-30), pages 9 - 16, XP009545607 *

Also Published As

Publication number Publication date
JP2023072282A (ja) 2023-05-24

Similar Documents

Publication Publication Date Title
CN107465590B (zh) 网络基础设施系统、路由网络业务的方法及计算机可读介质
US6539432B1 (en) Network manager, nodes and network management system
CN105706043B (zh) 推进式链接的列表吞吐量
JP5991424B2 (ja) パケット書換装置、制御装置、通信システム、パケット送信方法及びプログラム
JP6544401B2 (ja) パケット転送装置、制御装置、通信システム、通信方法及びプログラム
US20050111455A1 (en) VLAN server
US8121120B2 (en) Packet relay apparatus
JP6076275B2 (ja) 通信ネットワークの経路制御連携システム及び方法
JP2003209567A (ja) パケット交換システム、パケット交換方法、ルーティング装置、パケットデータ及びその生成方法
JP2011170718A (ja) コンピュータシステム、コントローラ、サービス提供サーバ、及び負荷分散方法
TWI759571B (zh) 基於流表的資料傳送方法
JP2014502811A (ja) 通信システムおよび通信方法
CN100377550C (zh) 一种路由表下一跳ip地址到mac地址解析方法
US20040215819A1 (en) Apparatus for and method for controlling packet, and computer program product
KR101794719B1 (ko) Sdn 기반 네트워크 가상화 플랫폼에서의 ip 주소 가상화 방법 및 시스템
CN110022263A (zh) 一种数据传输的方法及相关装置
WO2023085266A1 (ja) データ処理システムおよびデータ処理方法
WO2023085270A1 (ja) データ転送デバイス、データ処理デバイスおよびデータ処理方法
JP7302730B2 (ja) 経路情報管理装置、経路情報管理方法及びプログラム
JP2002077257A (ja) ストリーム配信ネットワークサービス方法およびシステム
JP6546566B2 (ja) 並列負荷分散システム、並列負荷分散方法、sdnコントローラホスト及びプログラム
JP4864868B2 (ja) データ配信システム
CN115150312A (zh) 一种路由方法及设备
Almohaimeed et al. Distribution Model for OpenFlow-Based Networks
WO2023085267A1 (ja) データ転送装置およびデータ転送方法

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

Country of ref document: EP

Kind code of ref document: A1