WO2018096609A1 - 計算機、通信制御方法、及びプログラム - Google Patents

計算機、通信制御方法、及びプログラム Download PDF

Info

Publication number
WO2018096609A1
WO2018096609A1 PCT/JP2016/084719 JP2016084719W WO2018096609A1 WO 2018096609 A1 WO2018096609 A1 WO 2018096609A1 JP 2016084719 W JP2016084719 W JP 2016084719W WO 2018096609 A1 WO2018096609 A1 WO 2018096609A1
Authority
WO
WIPO (PCT)
Prior art keywords
session
information
communication
switching
optimization
Prior art date
Application number
PCT/JP2016/084719
Other languages
English (en)
French (fr)
Inventor
瑞紀 上原
伊織 山崎
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2016/084719 priority Critical patent/WO2018096609A1/ja
Publication of WO2018096609A1 publication Critical patent/WO2018096609A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability

Definitions

  • the present invention relates to an apparatus for controlling communication between terminals.
  • a WAN Wide Area Network
  • IP-VPN Internet Protocol-Virtual Private Network
  • a terminal at a certain base communicates with a terminal or server at another base, it passes through a line connecting the local LAN and the WAN and a line connecting the WAN and the separate LAN. Communication takes place.
  • Japanese Patent Laid-Open No. 2004-228688 discloses an analysis device that analyzes a packet processed by a communication device connected to a network and that receives a mirror packet of a packet flowing through the network, and a part of the mirror packet.
  • An analysis unit that obtains and analyzes information, and determines whether or not the function of the communication device needs to be applied to a packet transferred through the network based on a result of the analysis.
  • a method of incorporating a function for selecting a session to be accelerated into a device having a function for optimizing communication via a session is conceivable. Specifically, the device selects a session to be accelerated based on the configuration information.
  • a typical example of the invention disclosed in the present application is as follows. That is, a computer that controls communication between terminals connected via a network, wherein the computer includes a processor, a memory connected to the processor, and an interface connected to the processor.
  • Setting information for storing a policy for determining whether to apply a communication optimization function for optimizing communication through an arbitrary session, and the communication optimization from the optimization session to which the communication optimization function is applied Storing switching history information for storing information of a session switched to a normal session that does not apply the optimization function
  • the processor calculates an index indicating a communication state of the optimized session, and based on the index, the optimization Judgment for identifying a session to be switched that is a candidate for switching to the normal session from Execute processing, switch the switching target session to the normal session based on the result of the determination process, update the switching history information based on the result of the determination process, based on the switching history information, A session to be set as the normal session is specified, and information on the specified session is set in the setting information
  • FIG. 1 is a diagram illustrating a configuration example of a network system according to a first embodiment.
  • 1 is a diagram illustrating a configuration example of a network system according to a first embodiment.
  • 2 is a diagram illustrating an example of a hardware configuration of a server according to Embodiment 1.
  • FIG. 3 is a diagram illustrating an example of a software configuration of a server according to the first embodiment.
  • FIG. 6 is a diagram illustrating an example of configuration information according to the first embodiment. It is a figure which shows an example of the session management information of Example 1. It is a figure which shows an example of the switch history information of Example 1. 6 is a flowchart illustrating an example of processing executed by the input / output management module according to the first embodiment.
  • FIG. 6 is a flowchart illustrating an example of processing executed by a session switching processing module according to the first embodiment.
  • 7 is a flowchart illustrating an example of a switching determination process executed by a session switching process module according to the first embodiment. It is a flowchart explaining an example of the policy update process which the policy update module of Example 1 performs.
  • FIGS. 1A and 1B are diagrams illustrating a configuration example of a network system according to the first embodiment.
  • 1A and 1B includes an office 10 and a data center 11.
  • the office 10 and the data center 11 are connected via the WAN 150.
  • the office 10 and the data center 11 in FIG. 1A include a server 100, a plurality of calculation servers 110, and a maintenance management terminal 120.
  • the server 100 and the plurality of calculation servers 110 are connected via the LAN 160.
  • the office 10 in FIG. 1B includes a plurality of terminals 130, and the data center 11 in FIG. 1B includes a server 100, a plurality of calculation servers 110, and a maintenance management terminal 120.
  • a plurality of terminals 130 included in the office 10 are connected via a LAN 160, and a server 100 and a plurality of calculation servers 110 included in the data center 11 are connected via a LAN 160.
  • the calculation server 110 included in the office 10 and the calculation server 110 included in the data center 11 communicate via a session.
  • the terminal 130 included in the office 10 and the calculation server 110 included in the data center 11 perform communication via a session.
  • the calculation server 110 is a server that provides a specific service, such as an application server or a Web server.
  • the maintenance management terminal 120 is a terminal for managing the server 100.
  • the terminal 130 is a terminal used by the user.
  • the server 100 relays the communication through the session and executes the optimization process for the communication through the specific session.
  • the server 100 of this embodiment includes a communication optimization module 300.
  • the communication optimization module 300 executes a process for optimizing communication via the WAN 150 for a specific session. This speeds up communication through a specific session. Note that the number of sessions that can be accelerated is set in advance.
  • FIG. 1A the bidirectional communication between the office 10 and the data center 11 is speeded up.
  • FIG. 1B communication from the data center 11 to the office 10 is speeded up.
  • FIG. 2 is a diagram illustrating an example of a hardware configuration of the server 100 according to the first embodiment.
  • the server 100 includes a processor 201, a memory 202, a storage device 203, a network interface 204, and an I / O interface 205. Each hardware is connected to each other via an internal bus 206.
  • the processor 201 executes a program stored in the memory 202.
  • the processor 201 functions as a predetermined module by operating according to a program.
  • the memory 202 stores a program executed by the processor 201 and information used by the program.
  • the memory 202 includes storage areas such as a buffer and a work area.
  • the memory 202 stores programs for realizing the communication optimization module 300, the input / output management module 301, the session switching processing module 302, and the policy update module 303.
  • the memory 202 stores configuration information 330, session management information 331, and switching history information 332.
  • the memory 202 includes a reception buffer 321 and a transmission buffer 322.
  • Storage device 203 stores data permanently. Examples of the storage device 203 include an HDD (Hard Disk Drive) and an SSD (Solid State Drive). Note that the program and information stored in the memory 202 may be stored in the storage device 203. In this case, the processor 201 reads the program and information from the storage device 203, loads the program and information into the memory 202, and executes the program loaded into the memory 202.
  • HDD Hard Disk Drive
  • SSD Solid State Drive
  • the network interface 204 is an interface for communicating with an external device via a network.
  • the I / O interface 205 is an interface for connecting to an input device and an output device.
  • the input device includes a keyboard, a mouse, a touch panel, and the like
  • the output device includes a display, a touch panel, and the like.
  • the number of the processors 201, the memory 202, the storage device 203, the network interface 204, and the I / O interface 205 is one, but may be two or more.
  • the maintenance management terminal 120 is connected via the network interface 204 or the I / O interface 205.
  • FIG. 3 is a diagram illustrating an example of a software configuration of the server 100 according to the first embodiment.
  • the communication optimization module 300 is a module that provides an optimization function, and executes an optimization process for communication via a specific session.
  • the optimization processing includes TCP acceleration processing, compression processing, application acceleration processing, differential transfer processing, encryption acceleration processing, cache processing, and the like.
  • a communication optimization module 300 including an acceleration processing module 310 that executes TCP communication acceleration processing will be described as an example.
  • the communication optimization module 300 includes the acceleration processing modules 310 as many as the maximum number of sessions to which the acceleration function can be applied.
  • a session to which the optimization function (acceleration function) is applied is described as an optimization session, and a session to which the optimization function (acceleration function) is not applied is described as a normal session.
  • the input / output management module 301 controls packet transfer processing (transmission processing and reception processing).
  • the input / output management module 301 includes an acceleration determination module 311.
  • the acceleration determination module 311 manages the configuration information 330 and identifies a session to which the acceleration function is applied based on the configuration information 330. In this embodiment, the acceleration determination module 311 switches the normal session to the optimized session.
  • the reception buffer 321 and the transmission buffer 322 are buffers that temporarily store packets flowing through the optimization session.
  • the reception buffer 321 and the transmission buffer 322 can be set by the maximum number of sessions to which the acceleration function can be applied. Note that it is not always necessary to secure the storage areas of the reception buffer 321 and the transmission buffer 322 in the memory 202, and a storage area of a size necessary for executing high-speed processing for communication via an optimization session is secured. do it. Further, the sizes of the reception buffer 321 and the transmission buffer 322 can be changed as appropriate.
  • the session switching processing module 302 switches the optimized session to the normal session based on the session management information 331.
  • the policy update module 303 manages the switching history information 332 and updates the configuration information 330 based on the switching history information 332.
  • the configuration information 330 stores information for identifying a session and information indicating whether or not the optimization function is applied to the session. Details of the configuration information 330 will be described with reference to FIG.
  • Session management information 331 stores session information. Details of the session management information 331 will be described with reference to FIG.
  • the switching history information 332 stores information on the session switched from the optimized session to the normal session by the session switching processing module 302. Details of the switching history information 332 will be described with reference to FIG.
  • the acceleration determination module 311 refers to the configuration information 330 based on the header information of the packet and determines whether the packet flows through the optimization session. . In the case of a packet flowing through the optimization session, the acceleration determination module 311 outputs the packet to a predetermined reception buffer 321. In the case of a packet that flows through a normal session, the acceleration determination module 311 outputs the packet to the input / output management module 301 on the WAN side.
  • the acceleration processing module 310 of the communication optimization module 300 executes the acceleration processing using the packet stored in the reception buffer 321 and the session management information 331, and outputs the processed packet to the transmission buffer 322.
  • the WAN-side input / output management module 301 transmits a packet output from the LAN-side input / output management module 301 or a packet stored in the transmission buffer 322 to a device connected via the WAN 150.
  • the acceleration determination module 311 of the WAN-side input / output management module 301 outputs a packet to the reception buffer 321 or the LAN-side input / output management module 301.
  • the communication optimization module 300 executes the speed-up process using the packet stored in the reception buffer 321 and the session management information 331, and outputs the processed packet to the transmission buffer 322.
  • the LAN-side input / output management module 301 transmits a packet output from the WAN-side input / output management module 301 or a packet stored in the transmission buffer 322 to a device connected via the LAN 160.
  • the session switching processing module 302 and the policy update module 303 execute processing asynchronously with the input / output management module 301 and the communication optimization module 300.
  • the session switching processing module 302 identifies a session to be switched from among the optimization sessions based on the session management information 331 periodically. In addition, the session switching processing module 302 identifies a session that is actually switched from the session to be switched to the normal session, and switches the identified session from the optimized session to the normal session.
  • the policy update module 303 reflects the processing result of the session switching processing module 302 in the switching history information 332. Further, the policy update module 303 specifies a session to be set as a normal session based on the switching history information 332 and reflects the information on the session in the configuration information 330.
  • FIG. 4 is a diagram illustrating an example of the configuration information 330 according to the first embodiment.
  • the configuration information 330 includes an entry including an ID 401, a LAN side IP address 402, a LAN side port number 403, a WAN side IP address 404, a WAN side port number 405, a VLAN ID 406, a speedup 407, and a priority 408.
  • One entry corresponds to one policy.
  • ID 401 is identification information for uniquely identifying an entry in the configuration information 330. Numbers are assigned in order from 1 to the ID 401 in this embodiment.
  • the LAN side IP address 402, the LAN side port number 403, the WAN side IP address 404, the WAN side port number 405, and the VLAN ID 406 are information for specifying a session. Note that the above-described column group is an example of information for specifying a session, and is not limited thereto.
  • the LAN side IP address 402 and the LAN side port number 403 are the IP address and port number of a device connected to the server 100 via the LAN 160.
  • the WAN side IP address 404 and the WAN side port number 405 are the IP address and port number of a device connected to the server 100 via the WAN 150.
  • the VLAN ID 406 is VLAN identification information used in communication via a session.
  • Acceleration 407 is information indicating whether to apply the optimization function. In the acceleration 407, either “ON” or “OFF” is set. “ON” indicates that the optimization function is applied, and “OFF” indicates that the optimization function is not applied.
  • Priority 408 indicates the priority of the policy. In the present embodiment, “1” has the highest priority, and the priority becomes lower in order from “1”.
  • Config policy 330 does not need to be set for each session. Therefore, the VLAN ID 406 etc. may be blank.
  • Priorities 408 are set so that the priorities of policies whose values are set in all columns are higher. On the other hand, the priority 408 is set so that the priority becomes lower as the policy has a larger number of columns for which values are not set.
  • a policy in which all the column values are blank is a policy for an unknown session. In this embodiment, the optimization function is set to be applied to an unknown session.
  • the initial configuration information 330 may not be set, or a policy with a coarse granularity may be set.
  • the server 100 can set a fine-grained policy, that is, a policy for each session, based on the switching result from the optimized session to the normal session.
  • FIG. 5 is a diagram illustrating an example of the session management information 331 according to the first embodiment.
  • the session management information 331 includes an entry including a session ID 501, a LAN side IP address 502, a LAN side port number 503, a WAN side IP address 504, a WAN side port number 505, a VLAN ID 506, an acceleration 507, and a determination count 508. Including. Note that the session management information 331 includes entries for the number of sessions that can be managed by the server 100.
  • LAN-side IP address 502, LAN-side port number 503, WAN-side IP address 504, WAN-side port number 505, VLAN ID 506, and acceleration 507 are LAN-side IP address 402, LAN-side port number 403, and WAN-side IP address 404.
  • WAN side port number 405, VLAN ID 406, and high speed 407 are the same columns.
  • the session ID 501 is identification information for uniquely identifying the session information registered in the session management information 331.
  • numbers are assigned to the session ID 501 in order from 1 in advance.
  • the determination number 508 is the number of times determined as a session that is a candidate for switching from the optimized session to the normal session.
  • a session that is a candidate for switching from an optimized session to a normal session is described as a switching target session.
  • FIG. 6 is a diagram illustrating an example of the switching history information 332 according to the first embodiment.
  • the switching history information 332 includes an entry including a LAN side IP address 601, a LAN side port number 602, a WAN side IP address 603, a WAN side port number 604, a VLAN ID 605, the number of times of switching 606, and a date and time 607.
  • LAN side IP address 601, LAN side port number 602, WAN side IP address 603, WAN side port number 604, and VLAN ID 605 are LAN side IP address 402, LAN side port number 403, WAN side IP address 404, WAN side port This is the same column as number 405 and VLAN ID 406. One entry corresponds to one session switching history.
  • the switching count 606 is the number of times the session specified by the LAN side IP address 601, the LAN side port number 602, the WAN side IP address 603, the WAN side port number 604, and the VLAN ID 605 is switched from the optimized session to the normal session. It is.
  • the date / time 607 is the date / time when the policy update module 303 described later executes a policy update process.
  • FIG. 7 is a flowchart illustrating an example of processing executed by the input / output management module 301 according to the first embodiment.
  • processing when the LAN-side input / output management module 301 receives a packet from a device connected to the server 100 via the LAN 150 will be described.
  • the input / output management module 301 specifies a session based on the header information of the packet, and determines whether or not the session information of the session specified in the session management information 331 is registered (step S101).
  • the input / output management module 301 analyzes the packet header information to obtain a TCP option number, a transmission source IP address, a transmission source port number, a transmission destination IP address, a transmission destination port number, a VLAN tag, and the like. To get.
  • the input / output management module 301 determines whether there is an entry in which the LAN side IP address 502, the LAN side port number 503, the WAN side IP address 504, the WAN side port number 505, and the VLAN ID 506 match the information included in the header information. Determine whether.
  • the input / output management module 301 proceeds to step S103.
  • the input / output management module 301 registers the session information of the specified session in the session management information 331 (step S102). Specifically, the following processing is executed.
  • the input / output management module 301 refers to the session management information 331 and searches for an entry in which session information is not registered. In this embodiment, it is assumed that the search is performed in order from the top entry.
  • the input / output management module 301 registers the header information values in the LAN-side IP address 502, LAN-side port number 503, WAN-side IP address 504, WAN-side port number 505, and VLAN ID 506 of the retrieved entry. Further, the input / output management module 301 sets “0” to the determination count 508 of the searched entry.
  • the input / output management module 301 determines whether it is an optimization session (step S103). A process when session information is registered in the session management information 331 and a process when session information is not registered in the session management information 331 will be described. Specifically, the following processing is executed.
  • the input / output management module 301 refers to the session management information 331 and determines whether or not the speedup 507 of the entry in which the session information of the specified session is registered is “ON”. When the acceleration 507 is “ON”, the acceleration determination module 311 determines that the session is an optimization session.
  • the acceleration determination module 311 compares the LAN side IP address 402, the LAN side port number 403, the WAN side IP address 404, and the WAN side port number 405 with the information included in the header information, and determines an applicable policy. Identify. When there are a plurality of applicable policies, the acceleration determination module 311 selects a policy (entry) with the highest priority based on the priority 408. When searching for a policy, a blank column of each entry of the configuration information 330 is treated as a wild card. The acceleration determination module 311 determines whether the acceleration 407 of the retrieved entry is “ON”. When the acceleration 407 is “ON”, the acceleration determination module 311 determines that the session is an optimization session. The acceleration determination module 311 refers to the session management information 331 and sets the searched entry acceleration 407 in the entry acceleration 507 in which the session information of the identified session is registered. The above is the description of the process in step S103.
  • the input / output management module 301 outputs the received packet to the reception buffer 321 (step S104). Thereafter, the input / output management module 301 ends the process.
  • the session ID 501 is associated with the reception buffer 321 and the transmission buffer 322 on a one-to-one basis. Therefore, the input / output management module 301 outputs a packet to the reception buffer 321 corresponding to the session information of the identified session.
  • the communication optimization module 300 performs optimization processing on the packet stored in the reception buffer 321 and outputs it to the transmission buffer 322 corresponding to the session information.
  • Information stored in the transmission buffer 322 is transmitted to a device connected via the WAN 150 by the input / output management module 301 on the WAN side.
  • the input / output management module 301 outputs the received packet to the input / output management module 301 on the WAN side (step S105). Thereafter, the input / output management module 301 ends the process.
  • FIG. 8 is a flowchart illustrating an example of processing executed by the session switching processing module 302 according to the first embodiment.
  • the session switching processing module 302 starts processing described below after the server 100 is started.
  • the session switching processing module 302 determines whether or not the session management information 331 is empty (step S201).
  • the session switching processing module 302 determines whether or not an entry in which session information is registered exists in the session management information 331.
  • the session switching processing module 302 proceeds to step S207.
  • the session switching processing module 302 sets an initial value “1” in the variable s indicating the session ID (step S202).
  • the session switching processing module 302 refers to the session management information 331 and determines whether or not the session information of the optimized session is registered in the entry whose session ID 501 matches the variable s (step S203).
  • the session switching processing module 302 determines whether or not session information is stored in an entry whose session ID 501 matches the variable s. When the session information is not stored in the entry whose session ID 501 matches the variable s, the session switching processing module 302 determines that the session information of the optimized session is not registered. On the other hand, when session information is stored in an entry whose session ID 501 matches the variable s, the session switching processing module 302 determines whether or not the acceleration 507 of the entry is “ON”. If the entry acceleration 507 is “ON”, the session switching processing module 302 determines that the session information of the optimized session is registered in the entry whose session ID 501 matches the variable s. In the following description, an entry whose session ID 501 matches the variable s is also described as a target entry.
  • the session switching processing module 302 proceeds to step S205.
  • the session switching processing module 302 executes a switching determination process (step S204).
  • the session switching processing module 302 proceeds to step S205 after the switching determination processing is completed.
  • the switching determination process will be described with reference to FIG.
  • step S203 After the determination result of step S203 is NO or the processing of step S204 is completed, the session switching processing module 302 sets a value obtained by adding “1” to the value of the variable s to the new variable s (step S205).
  • the session switching processing module 302 determines whether or not the value of the variable s is smaller than the maximum number of sessions (step S206). That is, it is determined whether or not the processing has been completed for all entries of the session management information 331.
  • the session switching processing module 302 proceeds to step S207.
  • the session switching processing module 302 When it is determined that the value of the variable s is smaller than the maximum number of sessions, the session switching processing module 302 returns to step S203 and executes the same processing.
  • step S201 If the determination result in step S201 is YES or the determination result in step S206 is YES, the session switching processing module 302 shifts to a waiting state for a predetermined time (step S207), and then returns to step S201.
  • the certain time corresponds to the execution cycle of the process.
  • the input / output management module 301 or the like deletes the session information of the session from the session management information 331. That is, the values of the LAN side IP address 402, the LAN side port number 403, the WAN side IP address 404, the WAN side port number 405, the VLAN ID 406, the acceleration 407, and the priority 408 are deleted.
  • FIG. 9 is a flowchart illustrating an example of the switching determination process executed by the session switching processing module 302 according to the first embodiment.
  • the session switching processing module 302 analyzes the usage state of the reception buffer 321 and the transmission buffer 322 corresponding to the session specified in step S203 (step S301).
  • the session switching processing module 302 calculates usage rates of the reception buffer 321 and the transmission buffer 322.
  • the session switching processing module 302 determines whether or not Expression (1) and Expression (2) are satisfied (Step S302). That is, it is determined whether there is a large amount of communication through the session. When the expressions (1) and (2) are satisfied, it indicates that the communication amount of communication via the session is small. When the amount of communication through the session is small, the effect of speeding up is low, so the session switching processing module 302 determines the identified session as a switching target session.
  • the threshold value k and the threshold value l are set in advance. Each threshold can be updated as appropriate.
  • the session switching processing module 302 proceeds to step S305.
  • the session switching processing module 302 determines whether Expression (3) and Expression (4) are satisfied (Step S303). ). That is, it is determined whether or not a bottleneck has occurred in communication via a session. When Expression (3) and Expression (4) are satisfied, it indicates that a bottleneck has occurred in communication via a session. When a bottleneck has occurred, since the effect of speeding up is low, the session switching processing module 302 determines the identified session as a switching target session.
  • the threshold value m and the threshold value n are set in advance. Each threshold can be updated as appropriate.
  • step S305 If it is determined that the expressions (3) and (4) are satisfied, the session switching processing module 302 proceeds to step S305.
  • the session switching processing module 302 sets “0” in the determination number 508 of the entry whose session ID 501 matches the variable s. (Step S304), and then the switching determination process ends.
  • step S302 determines whether or not the target entry determination count 508 is equal to or greater than the threshold value j (step S305).
  • the session switching processing module 302 adds “1” to the target entry determination count 508 (step S306), and then ends the switching determination processing. .
  • the session switching processing module 302 When it is determined that the target entry determination count 508 is greater than or equal to the threshold value j, the session switching processing module 302 outputs a policy update processing execution instruction to the policy update module 303 (step S307), and the optimized session is set as a normal session. (Step S308). Thereafter, the session switching processing module 302 ends the switching determination process.
  • the session switching processing module 302 sets “target entry acceleration” 507 to “OFF” and sets the determination count 508 to “0”.
  • the session switching processing module 302 includes session information stored in the target entry in the policy update processing execution instruction.
  • FIG. 10 is a flowchart illustrating an example of policy update processing executed by the policy update module 303 according to the first embodiment.
  • the policy update module 303 When the policy update module 303 receives an execution instruction from the session switching processing module 302, the policy update module 303 starts a policy update process described below.
  • the policy update module 303 determines whether or not session information stored in the target entry exists in the switching history information 332 (step S401).
  • the policy update module 303 includes the LAN side IP address 601, the LAN side port number 602, the WAN side IP address 603, the WAN side port number 604, and the VLAN ID 605 included in the session information stored in the target entry. Find the entry that matches the value
  • the policy update module 303 registers the session information stored in the target entry in the switching history information 332 (step S407). Thereafter, the policy update module 303 ends the policy update process.
  • the policy update module 303 adds an entry to the switching history information 332, and adds the LAN-side IP address 601, LAN-side port number 602, WAN-side IP address 603, WAN-side port number 604 of the added entry, And the value included in the session information stored in the target entry is set in the VLAN ID 605. Further, the policy update module 303 sets “0” to the switching count 606 of the added entry. The policy update module 303 sets the policy update processing start time and the like in the date and time 607 of the added entry.
  • the policy update module 303 determines whether or not the switching count 606 of the retrieved entry is smaller than the threshold c (step S402). ).
  • the policy update module 303 registers the session corresponding to the session information set in the searched entry in the configuration information 330 as a normal session. (Step S403). Specifically, the following processing is executed.
  • the policy update module 303 searches for an entry in which the LAN side IP address 402, the LAN side port number 403, the WAN side IP address 404, and the WAN side port number 405 of the configuration information 330 match the session information stored in the target entry. To do. That is, it is determined whether there is a policy corresponding to the session information stored in the target entry. Note that entries including blank columns are excluded from search targets.
  • the policy update module 303 sets “OFF” in the entry acceleration 407 of the configuration information 330.
  • the policy update module 303 When there is no policy corresponding to the session information stored in the target entry, the policy update module 303 adds the entry to the configuration information 330, and adds the LAN-side IP address 402, LAN-side port number 403, WAN of the added entry.
  • the session information value stored in the target entry is set in the side IP address 404 and the WAN side port number 405. Further, the policy update module 303 sets “OFF” in the speed-up 407 of the added entry. Further, the policy update module 303 sets a predetermined value for the priority 408 of the added entry. For example, “1” is set as the priority 408. The above is the description of the process in step S403.
  • the policy update module 303 deletes the session information stored in the target entry from the switching history information 332 (step S404), and ends the policy update process.
  • step S402 If it is determined in step S402 that the switching count 606 of the searched entry is smaller than the threshold value c, the policy update module 303 determines whether or not the elapsed time after the previous policy update process is greater than the threshold value f. Is determined (step S405).
  • the policy update module 303 calculates the elapsed time using the date and time 607 of the retrieved entry and the current time, and determines whether or not the elapsed time is greater than the threshold value f.
  • the method for calculating the elapsed time is an example and is not limited to this.
  • step S404 If it is determined that the elapsed time is greater than the threshold f, the policy update module 303 proceeds to step S404.
  • the policy update module 303 updates the switching history information 332 (step S406). Thereafter, the policy update module 303 ends the policy update process.
  • the policy update module 303 adds “1” to the switching count 606 of the searched entry, and sets the policy update processing start time and the like as the date and time 607.
  • the server 100 can switch between an optimization session and a normal session based on information in the server 100 without using an external device such as a packet analysis device.
  • session switching processing can be realized flexibly and immediately without generating overhead.
  • the server 100 identifies a session to be set as a normal session based on the number of times of switching from the optimized session to the normal session, and sets it in the configuration information 330.
  • efficient communication optimization can be realized.
  • this invention is not limited to the above-mentioned Example, Various modifications are included. Further, for example, the above-described embodiments are described in detail for easy understanding of the present invention, and are not necessarily limited to those provided with all the described configurations. Further, a part of the configuration of each embodiment can be added to, deleted from, or replaced with another configuration.
  • each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
  • the present invention can also be realized by software program codes that implement the functions of the embodiments.
  • a storage medium in which the program code is recorded is provided to the computer, and a CPU included in the computer reads the program code stored in the storage medium.
  • the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the program code itself and the storage medium storing it constitute the present invention.
  • Examples of storage media for supplying such program codes include flexible disks, CD-ROMs, DVD-ROMs, hard disks, SSDs (Solid State Drives), optical disks, magneto-optical disks, CD-Rs, magnetic tapes, A non-volatile memory card, ROM, or the like is used.
  • program code for realizing the functions described in this embodiment can be implemented by a wide range of programs or script languages such as assembler, C / C ++, Perl, Shell, PHP, Java, and the like.
  • the program code is stored in a storage means such as a hard disk or memory of a computer or a storage medium such as a CD-RW or CD-R.
  • the CPU included in the computer may read and execute the program code stored in the storage unit or the storage medium.
  • control lines and information lines indicate those that are considered necessary for the explanation, and do not necessarily indicate all the control lines and information lines on the product. All the components may be connected to each other.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

ネットワークを介して接続される端末間の通信を制御する計算機であって、任意のセッションを介した通信の最適化を行う通信最適化機能を適用するか否かを判定するためのポリシを格納する設定情報、及び通信最適化機能を適用する最適化セッションから通信最適化機能を適用しない通常セッションへ切り替えられたセッションの情報を格納する切替履歴情報を格納し、最適化セッションの通信状態を示す指標を算出し、指標に基づいて、最適化セッションの中から、通常セッションに切り替える候補となる切替対象セッションを特定する判定処理を実行し、判定処理の結果に基づいて、切替対象セッションを通常セッションに切り替え、判定処理の結果に基づいて、切替履歴情報を更新し、切替履歴情報に基づいて、通常セッションとして設定するセッションを特定し、特定されたセッションの情報を設定情報に設定する。

Description

計算機、通信制御方法、及びプログラム
 本発明は、端末間の通信を制御する装置に関する。
 クラウド等に用いられる拠点間の通信網として、IP-VPN(Internet Protocol- Virtual Private Network)技術等を用いたWAN(Wide Area Network)を用いることが一般的になっている。
 ある拠点に存在する端末が別の拠点に存在する端末又はサーバとの間で通信を行う場合、自拠点LAN及びWANを接続する回線と、WAN及び別拠点LANを接続する回線とを経由して通信が行われる。
 LANとWANとの間にセッションを介した通信を最適化する機能を備えた通信装置を設置して、帯域を有効に活用する手法が知られている(例えば、特許文献1参照)。
 特許文献1には、「ネットワークに接続される通信装置が処理するパケットを解析する、解析装置であって、前記ネットワークを流れるパケットのミラーパケットを受信する、受信部と、前記ミラーパケットの一部情報を取得して解析し、前記解析の結果に基づき前記ネットワークを転送されるパケットに対する前記通信装置の機能の適用の要否を判定する解析部と、を含む。」ことが記載されている。
特開2016-100721号公報
 特許文献1の技術を用いることによって、セッション数を増加させることなく、通信を最適化できる。しかし、特許文献1の技術では、通信装置とは異なる解析装置が必要なるため、システムの導入コストが高くなるという課題がある。また、解析装置の解析処理、及び解析装置及び通信装置との間の通信によるオーバーヘッドが発生するため、最適化処理を適用するセッションの切替処理の柔軟性及び即応性が低いという課題がある。特に、高速化対象のセッションを変更するためのオーバーヘッドが大きい。
 前述の課題を解決する方法として、セッションを介した通信を最適化する機能を備えた装置に、高速化対象のセッションを選択する機能を組み込む方法が考えられる。具体的には、装置が、コンフィグ情報に基づいて高速化対象のセッションを選択する。
 装置の計算機リソースは有限であるため、高速化できるセッションの数には上限がある。そのため、高速化対象のセッションを予めコンフィグ情報に設定する必要がある。しかし、高速化対象のセッションを決めるためには、実際の通信状況を把握する必要がある。したがって、予め高速化対象のセッションを定義することは難しい。また、通信状況は時々刻々と変化するため、固定的なコンフィグ情報を設定しても、効率的な通信の最適化を実現できない。
 本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ネットワークを介して接続される端末間の通信を制御する計算機であって、前記計算機は、プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるインタフェースを備え、前記メモリは、任意のセッションを介した通信の最適化を行う通信最適化機能を適用するか否かを判定するためのポリシを格納する設定情報、及び前記通信最適化機能を適用する最適化セッションから前記通信最適化機能を適用しない通常セッションへ切り替えられたセッションの情報を格納する切替履歴情報を格納し、前記プロセッサは、前記最適化セッションの通信状態を示す指標を算出し、前記指標に基づいて、前記最適化セッションの中から、前記通常セッションに切り替える候補となる切替対象セッションを特定する判定処理を実行し、前記判定処理の結果に基づいて、前記切替対象セッションを前記通常セッションに切り替え、前記判定処理の結果に基づいて、前記切替履歴情報を更新し、前記切替履歴情報に基づいて、前記通常セッションとして設定するセッションを特定し、前記特定されたセッションの情報を前記設定情報に設定することを特徴とする。
 本発明によれば、内部情報を用いた最適化機能を適用するセッションの切替処理によって、当該切替処理のオーバーヘッドを削減でき、また、通信状況に応じて設定情報を更新することによって、効率的な通信の最適化を実現できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
実施例1のネットワークシステムの構成例を示す図である。 実施例1のネットワークシステムの構成例を示す図である。 実施例1のサーバのハードウェア構成の一例を示す図である。 実施例1のサーバのソフトウェア構成の一例を示す図である。 実施例1のコンフィグ情報の一例を示す図である。 実施例1のセッション管理情報の一例を示す図である。 実施例1の切替履歴情報の一例を示す図である。 実施例1の入出力管理モジュールが実行する処理の一例を説明するフローチャートである。 実施例1のセッション切替処理モジュールが実行する処理の一例を説明するフローチャートである。 実施例1のセッション切替処理モジュールが実行する切替判定処理の一例を説明するフローチャートである。 実施例1のポリシ更新モジュールが実行するポリシ更新処理の一例を説明するフローチャートである。
 以下、添付図面を参照して本発明の実施例について説明する。各図において共通の構成については同一の参照符号を付している。
 図1A及び図1Bは、実施例1のネットワークシステムの構成例を示す図である。
 図1A及び図1Bのネットワークシステムは、オフィス10及びデータセンタ11から構成される。オフィス10及びデータセンタ11は、WAN150を介して接続される。
 図1Aのオフィス10及びデータセンタ11は、サーバ100、複数の計算サーバ110、及び保守管理用端末120を備える。サーバ100及び複数の計算サーバ110はLAN160を介して接続される。図1Bのオフィス10は、複数の端末130を備え、また、図1Bのデータセンタ11は、サーバ100、複数の計算サーバ110、及び保守管理用端末120を備える。オフィス10に含まれる複数の端末130はLAN160を介して接続され、また、データセンタ11に含まれるサーバ100及び複数の計算サーバ110はLAN160を介して接続される。
 図1Aのネットワークシステムでは、オフィス10に含まれる計算サーバ110及びデータセンタ11に含まれる計算サーバ110が、セッションを介した通信を行う。図1Bのネットワークシステムでは、オフィス10に含まれる端末130及びデータセンタ11に含まれる計算サーバ110が、セッションを介した通信を行う。
 計算サーバ110は、アプリケーションサーバ及びWebサーバ等、特定のサービスを提供するサーバである。保守管理用端末120は、サーバ100を管理するための端末である。端末130は、ユーザが使用する端末である。
 サーバ100は、セッションを介した通信を中継し、特定のセッションを介した通信に対して最適化処理を実行する。
 本実施例のサーバ100は、通信最適化モジュール300を有する。通信最適化モジュール300は、特定のセッションに対して、WAN150を介した通信の最適化処理を実行する。これによって、特定のセッションを介した通信が高速化される。なお、高速化可能なセッションの数は予め設定されている。
 図1Aでは、オフィス10及びデータセンタ11の双方向の通信が高速化される。図1Bでは、データセンタ11からオフィス10への通信が高速化される。
 図2は、実施例1のサーバ100のハードウェア構成の一例を示す図である。
 サーバ100は、プロセッサ201、メモリ202、記憶装置203、ネットワークインタフェース204、及びI/Oインタフェース205を有する。各ハードウェアは、内部バス206を介して互いに接続される。
 プロセッサ201は、メモリ202に格納されるプログラムを実行する。プロセッサ201は、プログラムにしたがって動作することによって、所定のモジュールとして機能する。
 メモリ202は、プロセッサ201が実行するプログラム及び当該プログラムが使用する情報を格納する。また、メモリ202は、バッファ及びワークエリア等の記憶領域を含む。
 本実施例では、メモリ202は、通信最適化モジュール300、入出力管理モジュール301、セッション切替処理モジュール302、及びポリシ更新モジュール303を実現するプログラムを格納する。メモリ202は、コンフィグ情報330、セッション管理情報331、及び切替履歴情報332を格納する。また、メモリ202は、受信バッファ321及び送信バッファ322を含む。
 記憶装置203は、データを永続的に格納する。記憶装置203は、例えば、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等が考えられる。なお、メモリ202に格納されるプログラム及び情報は、記憶装置203に格納されてもよい。この場合、プロセッサ201は、記憶装置203からプログラム及び情報を読み出し、メモリ202にプログラム及び情報をロードし、メモリ202にロードされたプログラムを実行する。
 ネットワークインタフェース204は、外部装置とネットワークを介して通信するためのインタフェースである。
 I/Oインタフェース205は、入力装置及び出力装置と接続するためのインタフェースである。なお、入力装置は、キーボード、マウス、及びタッチパネル等を含み、出力装置は、ディスプレイ及びタッチパネル等を含む。
 図2では、プロセッサ201、メモリ202、記憶装置203、ネットワークインタフェース204、及びI/Oインタフェース205の数は一つであるが、二つ以上でもよい。
 本実施例では、ネットワークインタフェース204又はI/Oインタフェース205を介して、保守管理用端末120が接続される。
 計算サーバ110、保守管理用端末120、及び端末130のハードウェア構成は、サーバ100と同様であるため説明を省略する。
 図3は、実施例1のサーバ100のソフトウェア構成の一例を示す図である。
 通信最適化モジュール300は、最適化機能を提供するモジュールであり、特定のセッションを介した通信に対して最適化処理を実行する。最適化処理には、TCP高速化処理、圧縮処理、アプリケーション高速化処理、差分転送処理、暗号高速化処理、及びキャッシュ処理等が含まれる。本実施例では、TCP通信の高速化処理を実行する高速化処理モジュール310を含む通信最適化モジュール300を一例として説明する。通信最適化モジュール300は、高速化機能を適用できるセッションの最大数と同じ数だけ高速化処理モジュール310を含む。
 以下の説明では、最適化機能(高速化機能)を適用するセッションを最適化セッションと記載し、最適化機能(高速化機能)を適用しないセッションを通常セッションと記載する。
 入出力管理モジュール301は、パケットの転送処理(送信処理及び受信処理)を制御する。入出力管理モジュール301は、高速化判定モジュール311を含む。高速化判定モジュール311は、コンフィグ情報330を管理し、コンフィグ情報330に基づいて高速化機能を適用するセッションを特定する。本実施例では、高速化判定モジュール311が、通常セッションを最適化セッションに切り替える。
 受信バッファ321及び送信バッファ322は、最適化セッションを流れるパケットを一時的に格納するバッファである。本実施例では、受信バッファ321及び送信バッファ322は、高速化機能を適用できるセッションの最大数だけ設定することができる。なお、メモリ202には、常に受信バッファ321及び送信バッファ322の記憶領域を確保する必要はなく、最適化セッションを介した通信に対して高速化処理を実行する時に必要なサイズの記憶領域を確保すればよい。また、受信バッファ321及び送信バッファ322のサイズは、適宜変更できる。
 セッション切替処理モジュール302は、セッション管理情報331に基づいて、最適化セッションを通常セッションに切り替える。
 ポリシ更新モジュール303は、切替履歴情報332を管理し、切替履歴情報332に基づいてコンフィグ情報330を更新する。
 コンフィグ情報330は、セッションを特定する情報及びセッションに対して最適化機能を適用するか否かを示す情報を格納する。コンフィグ情報330の詳細は図4を用いて説明する。
 セッション管理情報331は、セッションの情報を格納する。セッション管理情報331の詳細は図5を用いて説明する。
 切替履歴情報332は、セッション切替処理モジュール302によって最適化セッションから通常セッションに切り替えられたセッションの情報を格納する。切替履歴情報332の詳細は図6を用いて説明する。
 ここで、サーバ100における処理の流れを説明する。
 LAN側の入出力管理モジュール301がパケットを受信した場合、高速化判定モジュール311は、パケットのヘッダ情報に基づいてコンフィグ情報330を参照し、最適化セッションを流れるパケットであるか否かを判定する。最適化セッションを流れるパケットである場合、高速化判定モジュール311は、当該パケットを所定の受信バッファ321に出力する。通常セッションを流れるパケットである場合、高速化判定モジュール311は、WAN側の入出力管理モジュール301にパケットを出力する。
 通信最適化モジュール300の高速化処理モジュール310は、受信バッファ321に格納されるパケット及びセッション管理情報331を用いて高速化処理を実行し、処理後のパケットを送信バッファ322に出力する。
 WAN側の入出力管理モジュール301は、LAN側の入出力管理モジュール301が出力したパケット、又は、送信バッファ322に格納されるパケットを、WAN150を介して接続される装置に送信する。
 なお、WAN側の入出力管理モジュール301がパケットを受信した場合、同様の処理が実行される。すなわち、WAN側の入出力管理モジュール301の高速化判定モジュール311は、受信バッファ321又はLAN側の入出力管理モジュール301にパケットを出力する。通信最適化モジュール300は、受信バッファ321に格納されるパケット及びセッション管理情報331を用いて高速化処理を実行し、処理後のパケットを送信バッファ322に出力する。LAN側の入出力管理モジュール301は、WAN側の入出力管理モジュール301が出力したパケット、又は、送信バッファ322に格納されるパケットを、LAN160を介して接続される装置に送信する。
 セッション切替処理モジュール302及びポリシ更新モジュール303は、入出力管理モジュール301及び通信最適化モジュール300とは非同期で、処理を実行する。
 セッション切替処理モジュール302は、周期的にセッション管理情報331に基づいて、最適化セッションの中から切替対象のセッションを特定する。また、セッション切替処理モジュール302は、切替対象のセッションの中から実際に通常セッションに切り替えるセッションを特定し、特定されたセッションを最適化セッションから通常セッションに切り替える。
 ポリシ更新モジュール303は、セッション切替処理モジュール302の処理結果を切替履歴情報332に反映する。また、ポリシ更新モジュール303は、切替履歴情報332に基づいて、通常セッションとして設定するセッションを特定し、当該セッションの情報をコンフィグ情報330に反映する。
 図4は、実施例1のコンフィグ情報330の一例を示す図である。
 コンフィグ情報330は、ID401、LAN側IPアドレス402、LAN側ポート番号403、WAN側IPアドレス404、WAN側ポート番号405、VLAN ID406、高速化407、及び優先度408から構成されるエントリを含む。一つのエントリが一つのポリシに対応する。
 ID401は、コンフィグ情報330のエントリを一意に識別する識別情報である。本実施例のID401には、1から順に番号が付与される。
 LAN側IPアドレス402、LAN側ポート番号403、WAN側IPアドレス404、WAN側ポート番号405、及びVLAN ID406は、セッションを特定するための情報である。なお、前述のカラム群は、セッションを特定する情報の一例であってこれに限定されない。
 LAN側IPアドレスは402及びLAN側ポート番号403は、LAN160を介してサーバ100と接続される装置のIPアドレス及びポート番号である。WAN側IPアドレス404及びWAN側ポート番号405は、WAN150を介してサーバ100と接続される装置のIPアドレス及びポート番号である。VLAN ID406は、セッションを介した通信において使用されるVLANの識別情報である。
 高速化407は、最適化機能を適用するか否かを示す情報である。高速化407には「ON」又は「OFF」のいずれかが設定される。「ON」は、最適化機能を適用することを示し、「OFF」は最適化機能を適用しないことを示す。
 優先度408は、ポリシの優先順位を示す。本実施例では、「1」が最も優先順位が高く、「1」から順に優先順位が低くなる。
 コンフィグ情報330にはセッション単位でポリシを設定する必要はない。そのため、VLAN ID406等は空欄でもよい。全てカラムに値が設定されたポリシは、優先順位が高くなるように優先度408が設定される。一方、値が設定されていないカラムの数が多いポリシほど、優先順位が低くなるように優先度408が設定される。全てカラムの値が空欄のポリシは、未知のセッションに対するポリシである。本実施例では、未知のセッションに対して最適化機能を適用するように設定されている。
 本実施例では、初期のコンフィグ情報330は、設定されていなくてもよいし、また、粒度が荒いポリシが設定されてもよい。後述するように、サーバ100は、最適化セッションから通常セッションへの切替結果に基づいて、粒度の細かいポリシ、すなわち、セッション単位のポリシを設定できる。
 図5は、実施例1のセッション管理情報331の一例を示す図である。
 セッション管理情報331は、セッションID501、LAN側IPアドレス502、LAN側ポート番号503、WAN側IPアドレス504、WAN側ポート番号505、VLAN ID506、高速化507、及び判定回数508から構成されるエントリを含む。なお、セッション管理情報331は、サーバ100が管理可能なセッションの数だけエントリを含む。
 LAN側IPアドレス502、LAN側ポート番号503、WAN側IPアドレス504、WAN側ポート番号505、VLAN ID506、及び高速化507は、LAN側IPアドレス402、LAN側ポート番号403、WAN側IPアドレス404、WAN側ポート番号405、VLAN ID406、及び高速化407と同一のカラムである。
 セッションID501は、セッション管理情報331に登録されたセッション情報を一意に識別するための識別情報である。本実施例では、セッションID501には、予め1から順に番号が付与される。
 判定回数508は、最適化セッションから通常セッションへ切り替える候補となるセッションと判定された回数である。以下の説明では、最適化セッションから通常セッションへ切り替える候補となるセッションを切替対象セッションと記載する。
 図6は、実施例1の切替履歴情報332の一例を示す図である。
 切替履歴情報332は、LAN側IPアドレス601、LAN側ポート番号602、WAN側IPアドレス603、WAN側ポート番号604、VLAN ID605、切替回数606、及び日時607から構成されるエントリを含む。
 LAN側IPアドレス601、LAN側ポート番号602、WAN側IPアドレス603、WAN側ポート番号604、及びVLAN ID605は、LAN側IPアドレス402、LAN側ポート番号403、WAN側IPアドレス404、WAN側ポート番号405、及びVLAN ID406と同一のカラムである。一つのエントリが一つのセッションの切替履歴に対応する。
 切替回数606は、LAN側IPアドレス601、LAN側ポート番号602、WAN側IPアドレス603、WAN側ポート番号604、及びVLAN ID605によって特定されるセッションが、最適化セッションから通常セッションへ切り替えられた回数である。
 日時607は、ポリシ更新モジュール303に後述するポリシ更新処理が実行された日時である。
 図7は、実施例1の入出力管理モジュール301が実行する処理の一例を説明するフローチャートである。図7では、LAN側の入出力管理モジュール301が、LAN150を介してサーバ100と接続される装置からパケットを受信した場合の処理について説明する。
 入出力管理モジュール301は、パケットのヘッダ情報に基づいてセッションを特定し、セッション管理情報331に特定されたセッションのセッション情報が登録されているか否かを判定する(ステップS101)。
 具体的には、入出力管理モジュール301は、パケットのヘッダ情報を解析することによって、TCPオプション番号、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号、及びVLANタグ等を取得する。入出力管理モジュール301は、LAN側IPアドレス502、LAN側ポート番号503、WAN側IPアドレス504、WAN側ポート番号505、及びVLAN ID506がヘッダ情報に含まれる情報と一致するエントリが存在するか否かを判定する。
 セッション管理情報331に特定されたセッションの情報が登録されていると判定された場合、入出力管理モジュール301は、ステップS103に進む。
 セッション管理情報331に特定されたセッションの情報が登録されていないと判定された場合、入出力管理モジュール301は、特定されたセッションのセッション情報をセッション管理情報331に登録する(ステップS102)。具体的には、以下のような処理が実行される。
 入出力管理モジュール301は、セッション管理情報331を参照し、セッション情報が登録されていないエントリを検索する。本実施例では、上のエントリから順に検索されるものとする。入出力管理モジュール301は、検索されたエントリのLAN側IPアドレス502、LAN側ポート番号503、WAN側IPアドレス504、WAN側ポート番号505、及びVLAN ID506にヘッダ情報の値を登録する。また、入出力管理モジュール301は、検索されたエントリの判定回数508に「0」を設定する。
 入出力管理モジュール301は、最適化セッションであるか否かを判定する(ステップS103)。セッション管理情報331にセッション情報が登録されている場合の処理、及びセッション管理情報331にセッション情報が登録されていない場合の処理について説明する。具体的には、以下のような処理が実行される。
 (セッション管理情報331にセッション情報が登録されている場合)
 入出力管理モジュール301は、セッション管理情報331を参照し、特定されたセッションのセッション情報が登録されたエントリの高速化507が「ON」であるか否かを判定する。高速化507が「ON」である場合、高速化判定モジュール311は、最適化セッションであると判定する。
 (セッション管理情報331にセッション情報が登録されていない場合)
 高速化判定モジュール311は、LAN側IPアドレス402、LAN側ポート番号403、WAN側IPアドレス404、及びWAN側ポート番号405と、ヘッダ情報に含まれる情報とを比較して、適用可能なポリシを特定する。適用可能なポリシが複数存在する場合、高速化判定モジュール311は、優先度408に基づいて、優先順位が最も高いポリシ(エントリ)を選択する。なお、ポリシを検索する場合、コンフィグ情報330の各エントリの空欄のカラムはワイルドカードとして扱われる。高速化判定モジュール311は、検索されたエントリの高速化407が「ON」であるか否かを判定する。高速化407が「ON」である場合、高速化判定モジュール311は、最適化セッションであると判定する。高速化判定モジュール311は、セッション管理情報331を参照し、特定されたセッションのセッション情報が登録されたエントリの高速化507に検索されたエントリの高速化407を設定する。以上がステップS103の処理の説明である。
 最適化セッションであると判定された場合、入出力管理モジュール301は、受信したパケットを受信バッファ321に出力する(ステップS104)。その後、入出力管理モジュール301は処理を終了する。
 本実施例では、セッションID501と受信バッファ321及び送信バッファ322とが、一対一に対応付けられている。したがって、入出力管理モジュール301は、特定されたセッションのセッション情報に対応する受信バッファ321にパケットを出力する。通信最適化モジュール300は、受信バッファ321に格納されたパケットに対して最適化処理を実行し、セッション情報に対応する送信バッファ322に出力する。送信バッファ322に格納された情報は、WAN側の入出力管理モジュール301によってWAN150を介して接続される装置に送信される。
 最適化セッションではないと判定された場合、入出力管理モジュール301は、受信したパケットをWAN側の入出力管理モジュール301に出力する(ステップS105)。その後、入出力管理モジュール301は処理を終了する。
 図8は、実施例1のセッション切替処理モジュール302が実行する処理の一例を説明するフローチャートである。
 セッション切替処理モジュール302は、サーバ100の起動後、以下で説明する処理を開始する。
 セッション切替処理モジュール302は、セッション管理情報331が空であるか否かを判定する(ステップS201)。
 具体的には、セッション切替処理モジュール302は、セッション管理情報331に、セッション情報が登録されたエントリが存在するか否かを判定する。
 セッション管理情報331が空であると判定された場合、セッション切替処理モジュール302は、ステップS207に進む。
 セッション管理情報331が空ではないと判定された場合、セッション切替処理モジュール302は、セッションIDを示す変数sに初期値「1」を設定する(ステップS202)。
 次に、セッション切替処理モジュール302は、セッション管理情報331を参照し、セッションID501が変数sに一致するエントリに、最適化セッションのセッション情報が登録されているか否かを判定する(ステップS203)。
 具体的には、セッション切替処理モジュール302は、セッションID501が変数sに一致するエントリにセッション情報が格納されているか否かを判定する。セッションID501が変数sに一致するエントリにセッション情報が格納されていない場合、セッション切替処理モジュール302は、最適化セッションのセッション情報が登録されていないと判定する。一方、セッションID501が変数sに一致するエントリにセッション情報が格納されている場合、セッション切替処理モジュール302は、当該エントリの高速化507が「ON」であるか否かを判定する。当該エントリの高速化507が「ON」である場合、セッション切替処理モジュール302は、セッションID501が変数sに一致するエントリに、最適化セッションのセッション情報が登録されていると判定する。なお、以下の説明では、セッションID501が変数sに一致するエントリをターゲットエントリとも記載する。
 ターゲットエントリに最適化セッションのセッション情報が登録されていないと判定された場合、セッション切替処理モジュール302は、ステップS205に進む。
 ターゲットエントリに最適化セッションのセッション情報が登録されていると判定された場合、セッション切替処理モジュール302は、切替判定処理を実行する(ステップS204)。セッション切替処理モジュール302は、切替判定処理が完了した後、ステップS205に進む。なお、切替判定処理は、図9を用いて説明する。
 ステップS203の判定結果がNO又はステップS204の処理が完了した後、セッション切替処理モジュール302は、変数sの値に「1」を加算した値を新たな変数sに設定する(ステップS205)。
 次に、セッション切替処理モジュール302は、変数sの値が最大セッション数より小さいか否かを判定する(ステップS206)。すなわち、セッション管理情報331の全てのエントリについて処理が完了したか否かが判定される。
 変数sの値が最大セッション数以上であると判定された場合、セッション切替処理モジュール302は、ステップS207に進む。
 変数sの値が最大セッション数より小さいと判定された場合、セッション切替処理モジュール302は、ステップS203に戻り、同様の処理を実行する。
 ステップS201の判定結果がYES又はステップS206の判定結果がYESの場合、セッション切替処理モジュール302は、一定時間待ち状態に移行し(ステップS207)、その後、ステップS201に戻る。ここで、一定時間は、処理の実行周期に対応する。
 なお、セッションを介した通信が終了した場合、入出力管理モジュール301等が、セッション管理情報331から当該セッションのセッション情報を削除する。すなわち、LAN側IPアドレス402、LAN側ポート番号403、WAN側IPアドレス404、WAN側ポート番号405、VLAN ID406、高速化407、及び優先度408の値が削除される。
 図9は、実施例1のセッション切替処理モジュール302が実行する切替判定処理の一例を説明するフローチャートである。
 セッション切替処理モジュール302は、ステップS203において特定されたセッションに対応する受信バッファ321及び送信バッファ322の使用状態を解析する(ステップS301)。
 具体的には、セッション切替処理モジュール302は、受信バッファ321及び送信バッファ322の使用率を算出する。
 次に、セッション切替処理モジュール302は、式(1)及び式(2)を満たすか否かを判定する(ステップS302)。すなわち、セッションを介した通信の通信量が多いか否かが判定される。式(1)及び式(2)を満たす場合、セッションを介した通信の通信量が少ないことを示す。セッションを介した通信の通信量が少ない場合、高速化の効果が低いため、セッション切替処理モジュール302は、特定されたセッションを切替対象セッションと判定する。閾値k及び閾値lは予め設定されている。なお、各閾値は適宜更新できる。
Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000002
 式(1)及び式(2)を満たすと判定された場合、セッション切替処理モジュール302は、ステップS305に進む。
 式(1)及び式(2)の少なくともいずれか一方を満たさないと判定された場合、セッション切替処理モジュール302は、式(3)及び式(4)を満たすか否かを判定する(ステップS303)。すなわち、セッションを介した通信にボトルネックが発生しているか否かが判定される。式(3)及び式(4)を満たす場合、セッションを介した通信にボトルネックが発生しているを示す。ボトルネックが発生している場合、高速化の効果が低いため、セッション切替処理モジュール302は、特定されたセッションを切替対象セッションと判定する。閾値m及び閾値nは、予め設定されている。なお、各閾値は適宜更新できる。
Figure JPOXMLDOC01-appb-M000003
Figure JPOXMLDOC01-appb-M000004
 式(3)及び式(4)を満たすと判定された場合、セッション切替処理モジュール302は、ステップS305に進む。
 式(3)及び式(4)の少なくともいずれか一方を満たさないと判定された場合、セッション切替処理モジュール302は、セッションID501が変数sに一致するエントリの判定回数508に「0」を設定し(ステップS304)、その後、切替判定処理を終了する。
 ステップS302又はステップS303の判定結果がYESである場合、セッション切替処理モジュール302は、ターゲットエントリの判定回数508が閾値j以上であるか否かを判定する(ステップS305)。
 ターゲットエントリの判定回数508が閾値jより小さいと判定された場合、セッション切替処理モジュール302は、ターゲットエントリの判定回数508に「1」を加算し(ステップS306)、その後、切替判定処理を終了する。
 ターゲットエントリの判定回数508が閾値j以上であると判定された場合、セッション切替処理モジュール302は、ポリシ更新処理の実行指示をポリシ更新モジュール303に出力し(ステップS307)、最適化セッションを通常セッションに切り替える(ステップS308)。その後、セッション切替処理モジュール302は切替判定処理を終了する。
 具体的には、セッション切替処理モジュール302は、ターゲットエントリの高速化507を「OFF」を設定し、また、判定回数508に「0」を設定する。また、セッション切替処理モジュール302は、ポリシ更新処理の実行指示にターゲットエントリに格納されるセッション情報を含める。
 図10は、実施例1のポリシ更新モジュール303が実行するポリシ更新処理の一例を説明するフローチャートである。
 ポリシ更新モジュール303は、セッション切替処理モジュール302から実行指示を受け付けた場合、以下で説明するポリシ更新処理を開始する。
 ポリシ更新モジュール303は、切替履歴情報332に、ターゲットエントリに格納されるセッション情報が存在するか否かを判定する(ステップS401)。
 具体的には、ポリシ更新モジュール303は、LAN側IPアドレス601、LAN側ポート番号602、WAN側IPアドレス603、WAN側ポート番号604、及びVLAN ID605が、ターゲットエントリに格納されるセッション情報に含まれる値と一致するエントリを検索する。
 切替履歴情報332に、ターゲットエントリに格納されるセッション情報が存在しないと判定された場合、ポリシ更新モジュール303は、切替履歴情報332に、ターゲットエントリに格納されるセッション情報を登録する(ステップS407)。その後、ポリシ更新モジュール303はポリシ更新処理を終了する。
 具体的には、ポリシ更新モジュール303は、切替履歴情報332にエントリを追加し、追加されたエントリのLAN側IPアドレス601、LAN側ポート番号602、WAN側IPアドレス603、WAN側ポート番号604、及びVLAN ID605に、ターゲットエントリに格納されるセッション情報に含まれる値を設定する。また、ポリシ更新モジュール303は、追加されたエントリの切替回数606に「0」を設定する。また、ポリシ更新モジュール303は、追加されたエントリの日時607にポリシ更新処理の開始時間等を設定する。
 切替履歴情報332に、ターゲットエントリに格納されるセッション情報が存在すると判定された場合、ポリシ更新モジュール303は、検索されたエントリの切替回数606が閾値cより小さいか否かを判定する(ステップS402)。
 検索されたエントリの切替回数606が閾値c以上であると判定された場合、ポリシ更新モジュール303は、検索されたエントリに設定されたセッション情報に対応するセッションを通常セッションとしてコンフィグ情報330に登録する(ステップS403)。具体的には、以下のような処理が実行される。
 ポリシ更新モジュール303は、コンフィグ情報330のLAN側IPアドレス402、LAN側ポート番号403、WAN側IPアドレス404、及びWAN側ポート番号405が、ターゲットエントリに格納されるセッション情報と一致するエントリを検索する。すなわち、ターゲットエントリに格納されるセッション情報に対応するポリシが存在するか否かが判定される。なお、空欄のカラムを含むエントリは、検索対象から除外される。
 ターゲットエントリに格納されるセッション情報に対応するポリシが存在する場合、ポリシ更新モジュール303は、コンフィグ情報330のエントリの高速化407に「OFF」を設定する。
 ターゲットエントリに格納されるセッション情報に対応するポリシが存在しない場合、ポリシ更新モジュール303は、コンフィグ情報330にエントリを追加し、追加されたエントリのLAN側IPアドレス402、LAN側ポート番号403、WAN側IPアドレス404、及びWAN側ポート番号405に、ターゲットエントリに格納されるセッション情報の値を設定する。また、ポリシ更新モジュール303は、追加されたエントリの高速化407に「OFF」を設定する。さらに、ポリシ更新モジュール303は、追加されたエントリの優先度408に所定の値を設定する。優先度408には、例えば、「1」が設定される。以上がステップS403の処理の説明である。
 次に、ポリシ更新モジュール303は、切替履歴情報332から、ターゲットエントリに格納されるセッション情報を削除し(ステップS404)、ポリシ更新処理を終了する。
 ステップS402において、検索されたエントリの切替回数606が閾値cより小さいと判定された場合、ポリシ更新モジュール303は、前回のポリシ更新処理が完了してからの経過時間が閾値fより大きいか否かを判定する(ステップS405)。
 具体的には、ポリシ更新モジュール303は、検索されたエントリの日時607と現在時刻を用いて経過時間を算出し、経過時間が閾値fより大きいか否かを判定する。なお、経過時間の算出方法は一例であってこれに限定されない。
 経過時間が閾値fより大きいと判定された場合、ポリシ更新モジュール303は、ステップS404に進む。
 経過時間が閾値f以下であると判定された場合、ポリシ更新モジュール303は、切替履歴情報332を更新する(ステップS406)。その後、ポリシ更新モジュール303はポリシ更新処理を終了する。
 具体的には、ポリシ更新モジュール303は、検索されたエントリの切替回数606に「1」を加算し、また、日時607にポリシ更新処理の開始時間等を設定する。
 以上で説明したように、サーバ100は、パケット解析装置等の外部装置を用いることなく、サーバ100内部の情報に基づいて、最適化セッション及び通常セッションを切り替えることができる。これによって、オーバーヘッドを発生させることなく、柔軟かつ即時に、セッションの切替処理を実現できる。
 また、サーバ100は、最適化セッションから通常セッションへの切替回数に基づいて、通常セッションとして設定すべきセッションを特定し、コンフィグ情報330に設定する。これによって、効率的な通信の最適化を実現できる。
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
 また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるCPUが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
 また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java等の広範囲のプログラム又はスクリプト言語で実装できる。
 さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるCPUが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
 上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。

Claims (15)

  1.  ネットワークを介して接続される端末間の通信を制御する計算機であって、
     前記計算機は、プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるインタフェースを備え、
     前記メモリは、任意のセッションを介した通信の最適化を行う通信最適化機能を適用するか否かを判定するためのポリシを格納する設定情報、及び前記通信最適化機能を適用する最適化セッションから前記通信最適化機能を適用しない通常セッションへ切り替えられたセッションの情報を格納する切替履歴情報を格納し、
     前記プロセッサは、
     前記最適化セッションの通信状態を示す指標を算出し、
     前記指標に基づいて、前記最適化セッションの中から、前記通常セッションに切り替える候補となる切替対象セッションを特定する判定処理を実行し、
     前記判定処理の結果に基づいて、前記切替対象セッションを前記通常セッションに切り替え、
     前記判定処理の結果に基づいて、前記切替履歴情報を更新し、
     前記切替履歴情報に基づいて、前記通常セッションとして設定するセッションを特定し、
     前記特定されたセッションの情報を前記設定情報に設定することを特徴とする計算機。
  2.  請求項1に記載の計算機であって、
     前記切替履歴情報は、前記最適化セッションから前記通常セッションに切り替えられたセッション毎のエントリを含み、
     前記切替履歴情報に含まれるエントリは、前記最適化セッションから前記通常セッションへ切り替えられた切替回数を含み、
     前記設定情報は、セッションを特定する情報及び前記通信最適化機能を適用するか否かを示すフラグから構成されるエントリを含み、
     前記プロセッサは、前記切替回数及び第1の閾値の比較結果に基づいて、前記通常セッションとして設定するセッションを特定し、
     第1のセッションを介した通信のデータを受信した場合、当該データを解析することによって取得される前記第1のセッションを特定する情報に基づいて前記設定情報を参照して、前記第1のセッションを介した通信に前記通信最適化機能を適用するか否かを判定することを特徴とする計算機。
  3.  請求項2に記載の計算機であって、
     前記切替履歴情報に含まれるエントリは、前記最適化セッションから前記通常セッションに切り替えられた時間を示す日時情報を含み、
     前記プロセッサは、
     現在時刻及び前記日時情報を用いて経過時間を算出し、
     前記経過時間及び第2の閾値の比較結果に基づいて、前記通常セッションとして設定するセッションを特定することを特徴とする計算機。
  4.  請求項3に記載の計算機であって、
     前記プロセッサは、前記通常セッションとして設定するセッションの情報を前記設定情報に設定する場合、当該セッションを特定する情報及び前記通信最適化機能を適用しないことを示すフラグを含むエントリを前記設定情報に追加することを特徴とする計算機。
  5.  請求項3に記載の計算機であって、
     前記メモリは、前記最適化セッションを介して送受信されるデータを格納するバッファを含み、
     前記プロセッサは、前記最適化セッションに割り当てられる前記バッファの使用状態を示す値を、前記指標として算出することを特徴とする計算機。
  6.  請求項5に記載の計算機であって、
     前記メモリは、セッションを管理するセッション管理情報を格納し、
     前記セッション管理情報は、セッションを特定する情報、前記通信最適化機能が適用されているか否かを示す情報、及び前記切替対象セッションとして判定された判定回数から構成されるエントリを含み、
     前記プロセッサは、
     前記指標に基づいて、通信量が第3の閾値より小さい通信に対応するセッション及びボトルネックが発生している通信に対応するセッションを、前記切替対象セッションとして特定して、当該セッションに対応する前記セッション管理情報のエントリの前記判定回数を更新し、
     第4の閾値より大きい前記判定回数を含むエントリに対応する前記切替対象セッションを、前記最適化セッションから前記通常セッションに切り替えることを特徴とする計算機。
  7.  ネットワークを介して接続される端末間の通信を制御する計算機における通信制御方法であって、
     前記計算機は、プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるインタフェースを備え、
     前記メモリは、任意のセッションを介した通信の最適化を行う通信最適化機能を適用するか否かを判定するためのポリシを格納する設定情報、及び前記通信最適化機能を適用する最適化セッションから前記通信最適化機能を適用しない通常セッションへ切り替えられたセッションの情報を格納する切替履歴情報を格納し、
     前記通信制御方法は、
     前記プロセッサが、前記最適化セッションの通信状態を示す指標を算出する第1のステップと、
     前記プロセッサが、前記指標に基づいて、前記最適化セッションの中から、前記通常セッションに切り替える候補となる切替対象セッションを特定する判定処理を実行する第2のステップと、
     前記プロセッサが、前記判定処理の結果に基づいて、前記切替対象セッションを前記通常セッションに切り替える第3のステップと、
     前記プロセッサが、前記判定処理の結果に基づいて、前記切替履歴情報を更新する第4のステップと、
     前記プロセッサが、前記切替履歴情報に基づいて、前記通常セッションとして設定するセッションを特定する第5のステップと、
     前記プロセッサが、前記特定されたセッションの情報を前記設定情報に設定する第6のステップと、を含むことを特徴とする通信制御方法。
  8.  請求項7に記載の通信制御方法であって、
     前記切替履歴情報は、前記最適化セッションから前記通常セッションに切り替えられたセッション毎のエントリを含み、
     前記切替履歴情報に含まれるエントリは、前記最適化セッションから前記通常セッションへ切り替えられた切替回数を含み、
     前記設定情報は、セッションを特定する情報及び前記通信最適化機能を適用するか否かを示すフラグから構成されるエントリを含み、
     前記第5のステップは、前記プロセッサが、前記切替回数及び第1の閾値の比較結果に基づいて、前記通常セッションとして設定するセッションを特定するステップを含み、
     前記通信制御方法は、
     前記プロセッサが、第1のセッションを介した通信のデータを受信した場合、当該データを解析することによって前記第1のセッションを特定する情報を取得するステップと、
     前記プロセッサが、前記第1のセッションを特定する情報に基づいて前記設定情報を参照して、前記第1のセッションを介した通信に前記通信最適化機能を適用するか否かを判定するステップと、を含むことを特徴とする通信制御方法。
  9.  請求項8に記載の通信制御方法であって、
     前記切替履歴情報に含まれるエントリは、前記最適化セッションから前記通常セッションに切り替えられた時間を示す日時情報を含み、
     前記第5のステップは、
     前記プロセッサが、現在時刻及び前記日時情報を用いて経過時間を算出するステップと、
     前記プロセッサが、前記経過時間及び第2の閾値の比較結果に基づいて、前記通常セッションとして設定するセッションを特定するステップとを、含むことを特徴とする通信制御方法。
  10.  請求項9に記載の通信制御方法であって、
     前記第6のステップは、前記プロセッサが、前記通常セッションとして設定するセッションを特定する情報及び前記通信最適化機能を適用しないことを示すフラグを含むエントリを前記設定情報に追加するステップを含むことを特徴とする通信制御方法。
  11.  請求項9に記載の通信制御方法であって、
     前記メモリは、前記最適化セッションを介して送受信されるデータを格納するバッファを含み、
     前記第1のステップは、前記プロセッサが、前記最適化セッションに割り当てられる前記バッファの使用状態を示す値を、前記指標として算出するステップを含むことを特徴とする通信制御方法。
  12.  請求項11に記載の通信制御方法であって、
     前記メモリは、セッションを管理するセッション管理情報を格納し、
     前記セッション管理情報は、セッションを特定する情報、前記通信最適化機能が適用されているか否かを示す情報、及び前記切替対象セッションとして判定された判定回数から構成されるエントリを含み、
     前記第2のステップは、前記プロセッサが、前記指標に基づいて、通信量が第3の閾値より小さい通信に対応するセッション及びボトルネックが発生している通信に対応するセッションを、前記切替対象セッションとして特定して、当該セッションに対応する前記セッション管理情報のエントリの前記判定回数を更新するステップを含み、
     前記第3のステップは、前記プロセッサが、第4の閾値より大きい前記判定回数を含むエントリに対応する前記切替対象セッションを、前記最適化セッションから前記通常セッションに切り替えるステップを含むことを特徴とする通信制御方法。
  13.  ネットワークを介して接続される端末間の通信を制御する計算機に実行させるプログラムであって、
     前記計算機は、プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるインタフェースを備え、
     前記メモリは、任意のセッションを介した通信の最適化を行う通信最適化機能を適用するか否かを判定するためのポリシを格納する設定情報、及び前記通信最適化機能を適用する最適化セッションから前記通信最適化機能を適用しない通常セッションへ切り替えられたセッションの情報を格納する切替履歴情報を格納し、
     前記設定情報は、セッションを特定する情報及び前記通信最適化機能を適用するか否かを示すフラグから構成されるエントリを含み、
     第1のセッションを介した通信のデータを受信した場合、当該データを解析することによって取得される前記第1のセッションを特定する情報に基づいて前記設定情報を参照して、前記第1のセッションを介した通信に前記通信最適化機能を適用するか否かを判定する第1の手順と、
     前記最適化セッションの通信状態を示す指標を算出する第2の手順と、
     前記指標に基づいて、前記最適化セッションの中から、前記通常セッションに切り替える候補となる切替対象セッションを特定する判定処理を実行する第3の手順と、
     前記判定処理の結果に基づいて、前記切替対象セッションを前記通常セッションに切り替える第4の手順と、
     前記判定処理の結果に基づいて、前記切替履歴情報を更新する第5の手順と、
     前記切替履歴情報に基づいて、前記通常セッションとして設定するセッションを特定する第6の手順と、
     前記特定されたセッションの情報を前記設定情報に設定する第7の手順と、を前記計算機に実行させることを特徴とするプログラム。
  14.  請求項13に記載のプログラムであって、
     前記メモリは、前記最適化セッションを介して送受信されるデータを格納するバッファを含み、
     前記切替履歴情報は、前記最適化セッションから前記通常セッションに切り替えられたセッション毎のエントリを含み、
     前記切替履歴情報に含まれるエントリは、前記最適化セッションから前記通常セッションへ切り替えられた切替回数、及び前記最適化セッションから前記通常セッションに切り替えられた時間を示す日時情報を含み、
     前記第2の手順は、前記最適化セッションに割り当てられる前記バッファの使用状態を示す値を、前記指標として算出する手順を含み、
     前記第5の手順は、
     前記切替回数及び第1の閾値の比較結果に基づいて、前記通常セッションとして設定するセッションを特定する手順と、
     現在時刻及び前記日時情報を用いて算出される経過時間及び第2の閾値の比較結果に基づいて、前記通常セッションとして設定するセッションを特定する手順とを、含み、
     前記第7の手順は、前記通常セッションとして設定するセッションを特定する情報及び前記通信最適化機能を適用しないことを示すフラグを含むエントリを前記設定情報に追加する手順を含むことを特徴とするプログラム。
  15.  請求項14に記載のプログラムであって、
     前記メモリは、セッションを管理するセッション管理情報を格納し、
     前記セッション管理情報は、セッションを特定する情報、前記通信最適化機能が適用されているか否かを示す情報、及び前記切替対象セッションとして判定された判定回数から構成されるエントリを含み、
     前記第3の手順は、前記指標に基づいて、通信量が第3の閾値より小さい通信に対応するセッション及びボトルネックが発生している通信に対応するセッションを、前記切替対象セッションとして特定して、当該セッションに対応する前記セッション管理情報のエントリの前記判定回数を更新する手順を含み、
     前記第4の手順は、第4の閾値より大きい前記判定回数を含むエントリに対応する前記切替対象セッションを、前記最適化セッションから前記通常セッションに切り替える手順を含むことを特徴とするプログラム。
PCT/JP2016/084719 2016-11-24 2016-11-24 計算機、通信制御方法、及びプログラム WO2018096609A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/084719 WO2018096609A1 (ja) 2016-11-24 2016-11-24 計算機、通信制御方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/084719 WO2018096609A1 (ja) 2016-11-24 2016-11-24 計算機、通信制御方法、及びプログラム

Publications (1)

Publication Number Publication Date
WO2018096609A1 true WO2018096609A1 (ja) 2018-05-31

Family

ID=62194846

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/084719 WO2018096609A1 (ja) 2016-11-24 2016-11-24 計算機、通信制御方法、及びプログラム

Country Status (1)

Country Link
WO (1) WO2018096609A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014504822A (ja) * 2010-12-30 2014-02-24 ピーラップ リミテッド コンピュータネットワークによるデータの送信方法及びシステム
WO2015162753A1 (ja) * 2014-04-24 2015-10-29 株式会社日立製作所 帯域制御装置、ネットワークシステム、帯域制御方法、及び計算機読み取り可能な非一時的な記憶媒体
JP2016174268A (ja) * 2015-03-17 2016-09-29 株式会社日立製作所 ネットワークシステム、ネットワークシステムの制御方法、通信装置、及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014504822A (ja) * 2010-12-30 2014-02-24 ピーラップ リミテッド コンピュータネットワークによるデータの送信方法及びシステム
WO2015162753A1 (ja) * 2014-04-24 2015-10-29 株式会社日立製作所 帯域制御装置、ネットワークシステム、帯域制御方法、及び計算機読み取り可能な非一時的な記憶媒体
JP2016174268A (ja) * 2015-03-17 2016-09-29 株式会社日立製作所 ネットワークシステム、ネットワークシステムの制御方法、通信装置、及びプログラム

Similar Documents

Publication Publication Date Title
KR101826725B1 (ko) 네트워크 장치 흐름 룩업 관리를 위한 기술
US9634938B2 (en) Adaptive scheduling of data flows in data center networks for efficient resource utilization
KR101559644B1 (ko) 통신 제어 시스템, 스위치 노드 및 통신 제어 방법
US9032017B1 (en) Method and system for transparent read-write query routing when load balancing databases
US8484242B1 (en) Method and system for transparent database connection pooling and query queuing
US8943499B2 (en) Providing a virtual network topology in a data center
US11929944B2 (en) Network forwarding element with key-value processing in the data plane
JP2008294717A (ja) 仮想ネットワーク構成方法及びネットワークシステム
US10153979B2 (en) Prioritization of network traffic in a distributed processing system
Yildirim et al. End-to-end data-flow parallelism for throughput optimization in high-speed networks
JP5900352B2 (ja) パケット処理装置、パケット処理方法およびプログラム
JP6926953B2 (ja) 情報処理装置、情報処理方法及びプログラム
US20230403197A1 (en) Optimizing the transfer of massive amounts of data using AI strategies
Alqarni Benefits of SDN for Big data applications
JP6951846B2 (ja) 計算機システム及びタスクの割当方法
US10009222B2 (en) Input method engine management for edge services
KR20140051802A (ko) 패킷 포워딩 룰 설정 방법 및 이를 이용한 제어 장치
EP3343879B1 (en) A system and method of managing flow state in stateful applications
WO2018096609A1 (ja) 計算機、通信制御方法、及びプログラム
CN112685167A (zh) 资源使用方法、电子设备和计算机程序产品
EP3539278A1 (en) Method and system for affinity load balancing
JP4089506B2 (ja) ファイル共有システム及びサーバー並びにプログラム
JP6339978B2 (ja) リソース割当管理装置およびリソース割当管理方法
WO2013065151A1 (ja) 計算機システム、データ転送方法、および、データ転送プログラム
JP5359357B2 (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: 16922254

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16922254

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP