[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

WO2011037105A1 - コンテンツベーススイッチシステム、及びコンテンツベーススイッチ方法 - Google Patents

コンテンツベーススイッチシステム、及びコンテンツベーススイッチ方法 Download PDF

Info

Publication number
WO2011037105A1
WO2011037105A1 PCT/JP2010/066311 JP2010066311W WO2011037105A1 WO 2011037105 A1 WO2011037105 A1 WO 2011037105A1 JP 2010066311 W JP2010066311 W JP 2010066311W WO 2011037105 A1 WO2011037105 A1 WO 2011037105A1
Authority
WO
WIPO (PCT)
Prior art keywords
content
flow
information
relay device
destination
Prior art date
Application number
PCT/JP2010/066311
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 JP2011532995A priority Critical patent/JP5621778B2/ja
Priority to US13/498,101 priority patent/US8971339B2/en
Publication of WO2011037105A1 publication Critical patent/WO2011037105A1/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/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application

Definitions

  • the present invention relates to a content-based switch system that performs switch processing and routing processing based on traffic content in network traffic data processing.
  • Patent Document 1 Japanese Patent Laid-Open No. 2006-203904 discloses a technology related to a content base router and a content base network.
  • the contents of the data packet are matched with a stored subscription.
  • a routing label indicating an egress router corresponding to a subscriber (subscriber) of the matched subscription is assigned to the data packet, and the data packet is transmitted to the content base router to be transferred.
  • the subscriber indicates a user who subscribes to the content. Further, the subscription indicates query information and selection conditions specified by the subscriber.
  • a delivery destination is determined by matching content data described in a meta language called XML (Extensible Markup Language) with subscription data described in XML.
  • XML Extensible Markup Language
  • each router on a route compares the XML description with an XML query (query) and determines whether to transfer the process at each XML router.
  • a process for determining a destination based on the message content of communication data may be performed.
  • a load balancer load balancer
  • a URI Unified Resource Identifier
  • HTTP Hyper Text Transfer Protocol
  • Cookie an identifier included in an HTTP header called Cookie.
  • the destination server can be selected based on the contents of the URI and Cookie, but the route cannot be designated.
  • an optimal destination can be selected by applying a policy to the URI and Cookie values included in the HTTP request message.
  • the server which provides a service can be selected.
  • TCP / IP Transmission Control Protocol / Internet Protocol
  • a transfer process using a label has a problem that a relay device called a label switch for interpreting the label is necessary.
  • the label switch interprets the label and performs switch processing based on the label.
  • Japanese Patent Application Laid-Open No. 2004-304456 discloses a network system, a path setting method in the system, a network management apparatus used in the system, and a technique related to the network apparatus.
  • the network management device calculates and determines in advance a delivery route that satisfies a specific standard for content provided between certain network devices periodically or when a predetermined event occurs.
  • the network management device creates a correspondence table that associates specific content with a calculated delivery route that is optimal for delivering the content, and requests the created correspondence table according to the requested content by the user. Send the message to the network device (edge router).
  • the network device When the network device (edge router) receives the request message, the network device (edge router) extracts a transit node list in the message, and based on the transit node list, a predetermined path setup signaling (path setup message) is used for MPLS (Multiple). -Set (establish) the Protocol Label Switching path.
  • MPLS Multiple
  • -Set establish
  • Patent Document 3 Japanese Patent Laid-Open No. 2007-096741 discloses a technology related to a port hopping detection system, a bandwidth control system, a port hopping detection method, and a program.
  • a port hopping flow detection device calculates information related to port hopping of a plurality of received flows, and detects port hopping by comparing the calculation result with the application information.
  • An object of the present invention is to perform content-based routing processing in order to efficiently perform content-based routing processing.
  • the content forwarding processing is transferred based only on the TCP / IP header without using a label. It is to provide a content-based switch system.
  • the content-based switch system of the present invention is a content-based switch system that determines a communication path between a plurality of terminals based on content included in a packet payload, and includes a relay device, a switch, and a controller.
  • the relay device relays communication between a plurality of terminals based on a predetermined communication protocol, receives data from any one of the plurality of terminals, extracts content information from the packet payload of the received data, and extracts
  • the content information and the address information of the terminal are transmitted to the controller, and the flow to the destination terminal is set using the flow information specified by the controller.
  • At least one switch exists on a network connecting a plurality of terminals, receives data from any one of the plurality of terminals and the relay device, and includes an identifier and an output route of flow information notified from the outside Communicate to the destination terminal according to the correspondence table.
  • the controller controls the relay device and the switch, determines the transfer route based on the content information and the address information of the terminal, further determines the flow information used for transfer, and creates a correspondence table between the flow information and the output route. It is set in the route table of the switch on the transfer route, and the determined flow information is notified to the relay device.
  • the content-based switching method of the present invention is a content-based switching method that determines a communication path between a plurality of terminals based on content included in a packet payload.
  • a relay device relays communication between a plurality of terminals based on a predetermined communication protocol, extracts content information from the packet payload, and extracts the extracted content information, terminal address information, Is sent to the controller.
  • data is received from any one of the plurality of terminals and the relay device by at least one switch on the network connecting the plurality of terminals.
  • the controller controls the relay device and the switch, determines the transfer route based on the content information and the address information of the terminal, further determines the flow information used for transfer, and the correspondence between the flow information and the output route
  • the table is set in the route table of the switch on the transfer route, and the determined flow information is notified to the relay device.
  • the flow to the destination terminal is set by the relay device using the flow information communicated from the controller.
  • the switch communicates with the destination terminal using the identifier of the flow information notified from the controller.
  • the program according to the present invention is a program for causing a computer to execute the operation / processing of any one of the relay device, the switch, and the controller in the content-based switching method.
  • the program according to the present invention can be stored in a storage device or a storage medium.
  • content-based network transfer processing route optimization is performed by linking content-based destination determination processing, network route determination processing, and TCP / IP transfer control processing. Can be realized.
  • a flow that can be shared can be determined by linking network path determination and flow management with a controller. As a result, communication flows after relaying can be aggregated, and the processing load on network resources and terminals can be reduced.
  • FIG. 1 It is a figure which shows the structural example of the content base switch system of this invention. It is a figure which shows the structural example of a relay apparatus, a switch, and a network controller. It is a figure which shows the example of a transfer policy table. It is a figure which shows the example of a flow management table. It is a figure which shows the structural example of an execution machine (computer). It is a flowchart which shows operation
  • FIG. 1 shows a configuration example of a content-based switch system according to the present invention.
  • the content-based switching system of the present invention includes a terminal 210 (terminal 210-1 to terminal 210-N: N is an integer), a terminal 220 (terminal 220-1 to terminal 220-N), a relay device 10, and a switch 20 (Switches 20-1 to 20-6) and a network controller 30.
  • the terminal 210 indicates each terminal included in the terminal group of the terminals 210-1 to 210-N.
  • a terminal 220 represents each terminal included in the terminal group of the terminals 220-1 to 220-N.
  • the switch 20 represents each switch included in the switch group of the switches 20-1 to 20-6.
  • each of the terminals 210-1 to 210-N is referred to as a terminal 210.
  • Each of terminal 220-1 to terminal 220-N is referred to as terminal 220.
  • Each of the switches 20-1 to 20-6 is referred to as a switch 20.
  • the content-based switch system of the present invention provides relay processing between the terminal 210 and the terminal 220.
  • the relay device 10 and the switch 20 are connected to the network between the terminal 210 and the terminal 220.
  • the relay device 10 and the switch 20 are connected to the network controller 30.
  • the network controller 30 is a controller that controls network devices, and centrally manages the relay device 10 and the switch 20.
  • the number of terminals and switches is an arbitrary number and is not limited to the number shown.
  • FIG. 2 shows a configuration example of the relay device 10, the switch 20, and the network controller 30.
  • the relay device 10 includes a protocol termination unit 11, a content extraction unit 12, a protocol termination unit 13, a relay request interface unit 14, and a protocol port instruction unit 15.
  • the relay device 10 is connected to the first communication line 60 and the second communication line 70 and relays between the first communication line 60 and the second communication line 70.
  • the protocol termination unit 11 is connected to the outside via the first communication line 60. In addition, the protocol termination unit 11 is connected to the content extraction unit 12.
  • the content extraction unit 12 is connected to the protocol termination unit 11, the protocol termination unit 13, and the relay request interface unit 14.
  • the protocol termination unit 13 is connected to the content extraction unit 12.
  • the protocol termination unit 13 is connected to the switch 20 via the second communication line 70.
  • the relay request interface unit 14 is connected to the network controller 30 via the content extraction unit 12 and the control line 81.
  • the protocol port instruction unit 15 is connected to the protocol termination unit 13 and the relay request interface unit 14.
  • the switch 20 includes a flow table 21, a switch processing unit 22, and a switch interface unit 23.
  • the flow table 21 includes an entry for registering information obtained from the MAC header, the IP header, and the layer 4 header as flow identification information, and storing output information (action information such as output line and header rewriting) for the flow.
  • a flow defines a predetermined process (action) to be performed on a packet that conforms to a predetermined rule (rule).
  • the flow rule uses any or all of a destination address (Destination Address), a source address (Source Address), a destination port (Destination Port), and a source port (Source Port) included in the header area of the MAC frame. Defined and distinguishable by various combinations. Note that the above addresses include a MAC address (Media Access Control Address) and an IP address (Internet Protocol Address). In addition to the above, information on an ingress port (Ingress Port) can also be used as a flow rule.
  • the switch processing unit 22 performs switching from a specific interface to an interface based on the route setting specified in the flow table 21, and further performs QoS and bandwidth control according to the designated control content.
  • the switch processing unit 22 performs switching of the switch interface unit 23.
  • the switch interface unit 23 accommodates a plurality of lines.
  • the switch interface unit 23 is connected to the protocol termination unit 13 of the relay device 10 via the second communication line 70, and is connected to another switch 20 or the terminal 220. is there.
  • These may be different interfaces as hardware, or may be the same interface with different physical ports.
  • the network controller 30 includes a relay request interface unit 31, a route determination unit 32, a protocol port management unit 33, and a route setting unit 34.
  • the relay request interface unit 31 is connected to the relay request interface unit 14 of the relay device 10 via the control line 81.
  • the route determination unit 32 is connected to the relay request interface unit 31, the protocol port management unit 33, and the route setting unit 34.
  • the route determination unit 32 also holds a transfer policy table. The transfer policy table will be described later.
  • the protocol port management unit 33 is connected to the relay request interface unit 31 and the route determination unit 32.
  • the protocol port manager 33 holds a flow management table. The flow management table will be described later.
  • the route setting unit 34 sets / updates the flow table 21 of the switch 20 via the control line 82.
  • FIG. 3A shows an example of a transfer policy table held by the route determination unit 32 of the network controller 30.
  • the transfer policy table is used to acquire a policy ID (Identifier) and QoS parameter information for transfer based on the address information and content information of the traffic to be relayed requested from the relay apparatus 10.
  • the transfer policy table stores a transmission source address, a destination address (virtual destination address), a content rule, a policy ID, and a transfer QoS parameter.
  • the route determination unit 32 can acquire the policy ID and the transfer QoS parameter as the transfer policy corresponding to the transmission source address, the destination address (virtual destination address) and the content rule from the transfer policy table. Note that the route determination unit 32 can acquire a routing transfer policy using the policy ID as an index.
  • FIG. 3B shows an example of a flow management table held by the protocol port management unit 33 of the network controller 30.
  • the flow management table stores information related to the transfer flow specified by the policy ID.
  • the flow management table stores a destination address, a route, a QoS parameter, a policy ID, flow information, and KeepAlive information.
  • the KeepAlive information is information indicating whether or not to use “Keep Alive”.
  • “Keep Alive” is communication periodically performed to confirm that the connection is valid on the network.
  • “Keep Alive” is specified, “true (true)” is set, and if not specified, “false (false)” is set.
  • the route determination unit 32 can acquire flow information when a designated route to the destination address, a QoS parameter, and a policy ID are designated.
  • FIG. 4 shows an example of the configuration of a machine (computer) in which each processing unit of the content-based switching system of the present invention is executed.
  • each of the relay device 10, the switch 20, and the network controller 30 is a computer 50
  • each of these processing units is a combination of a CPU (Central Processing Unit) 51, a memory 52, a secondary storage device 53, and a network interface 54. Realized.
  • a CPU Central Processing Unit
  • the CPU 51 governs the overall operation of the relay device 10, the switch 20, and the network controller 30 by executing various software programs (computer programs). More specifically, in the present embodiment, the CPU 51 receives a protocol termination unit, a content extraction unit, a route determination unit, a route setting unit, a protocol port from the memory 52, the secondary storage device 53, or via the network interface 54. Acquire a software program for realizing the functions and processing of the management unit, etc., and execute it appropriately.
  • the memory 52 and the secondary storage device 53 store data received from the CPU 51 and the network interface 54, and provide stored data in response to a request from the CPU 51.
  • the network interface 54 is connected to a communication line that forms a network among the relay device 10, the switch 20, and the network controller 30.
  • the CPU 51 may be a microprocessor, a microcontroller, or a semiconductor integrated circuit (IC: Integrated Circuit) having a similar function. However, actually, it is not limited to these examples.
  • the memory 52 is a RAM (Random Access Memory) that can be directly read and written by the CPU 51, a ROM (Read Only Memory) used for storing a program that is read first when the power is turned on, or an EEPROM (Electrically Erasable and Programmable Read Only). Alternatively, it is a semiconductor memory device such as a flash memory. Here, the memory 52 indicates a main storage device (main memory). However, actually, it is not limited to these examples.
  • the secondary storage device 53 is an auxiliary storage device that stores data and programs inside and outside the computer.
  • the secondary storage device 53 indicates an external storage device (storage) such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive).
  • the secondary storage device 53 may be a DVD (Digital Versatile Disk) and its drive device (drive), a storage medium (media) such as a memory card, or the like. However, actually, it is not limited to these examples.
  • Examples of the network interface 54 include a network adapter such as a NIC (Network Interface Card), a communication device such as an antenna, and a communication port such as a connection port (connector).
  • Examples of communication lines used by the network interface 54 include the Internet, a LAN (Local Area Network), a wireless LAN (Wireless LAN), a cable TV (CATV) line, a fixed telephone network, a mobile phone network, WiMAX (IEEE 802. 16a), 3G (3rd Generation), leased line, IrDA (Infrared Data Association), Bluetooth (registered trademark), serial communication line, data bus, and the like. However, actually, it is not limited to these examples.
  • the terminal 210-1 in FIG. 1 connects to another terminal that provides a certain service.
  • the terminal 210-1 transmits a packet destined for the address (possibly a virtual address) of the relay device 10 and tries TCP connection.
  • This connection request corresponds to the first communication connection in FIG. 2, and TCP termination processing is performed in the protocol termination unit 11.
  • the protocol termination unit 11 extracts an application layer protocol payload by TCP termination processing.
  • application layer protocols include HTTP (Hyper Text Transfer Protocol) and SMTP (Simple Mail Transfer Protocol).
  • the content extraction unit 12 extracts content information from this protocol payload.
  • the content information is a character string, and this character string is designated in advance.
  • the content extraction unit 12 extracts content information from the protocol payload according to a character string specified in advance.
  • a character string specified in advance As an example of content information, in the case of HTTP, a URI (Unified Resource Identifier) included in a request message and a cookie character string can be cited.
  • URI Uniform Resource Identifier
  • tag information described in XML eXtended Markup Language
  • the relay request interface unit 14 refers to the URI character string extracted by the content extraction unit 12 together with the IP address of the transmission source and the destination IP address on the relay device side as information on the first communication connection, Create a relay request message. Further, the relay request interface unit 14 transmits this relay request message to the network controller 30 via the control line 81.
  • the relay request interface unit 31 when receiving the relay request message via the control line 81, the relay request interface unit 31 notifies the route determination unit 32 of the relay request message.
  • the route determination unit 32 determines the transfer route of this relay request message based on the transfer policy.
  • the above transfer policy is exemplified in the transfer policy table of FIG. 3A.
  • the destination IP address is “133.202.1.1”
  • the URI matches “foo.com”
  • the entry “No. 1” is entered.
  • the transfer policy ID is “101”
  • the QoS parameter is “10 Mbps”.
  • the route determination unit 32 selects a forwarding node associated with the policy ID. Specifically, the route determination unit 32 selects a route corresponding to the policy ID 101 by the route determination logic.
  • the left switch is a path that passes through the switches A, B, C, and D in the expression in FIG. Further, it is assumed that the IP address of the destination terminal 220-1 is “10.1.2.1”.
  • the route determination unit 32 passes the destination, route, and policy information obtained by the transfer policy determination to the protocol port management unit 33, and searches the flow management table in the protocol port management unit 33.
  • a new protocol port number is assigned.
  • the destination port number represents the service port number of the server, and takes a fixed value for each service such as HTTP or SMTP.
  • the source port number is dynamically assigned so that the connection can be specified.
  • a port number is issued and used from a range of 1024 or more (65535 or less) that is a reserved port (Registered Port) or a dynamic / private port (Dynamic and / or Private Port).
  • the route determination unit 32 searches the flow management table in the protocol port management unit 33, and if a flow with the same condition is registered and “Keep Alive” is specified, the flow can be used. Judge that it is possible.
  • the route determination unit 32 determines which flow to use for the relay request.
  • the route determination unit 32 returns the IP address and protocol port information of the destination terminal to the relay request interface unit 31.
  • the protocol port information is a TCP source port number and destination port number.
  • the relay request interface unit 31 transmits these pieces of information to the relay device 10 as a response message.
  • the relay request interface unit 14 of the relay device 10 passes the response message to the protocol port instruction unit 15.
  • the protocol port instruction unit 15 selects the second communication connection based on the response message. If the flow information specified by the response message is new, the protocol port instruction unit 15 establishes a new second communication connection to the protocol termination unit 13 according to the specified destination IP address and protocol port information. To request. For example, if the flow information specified by the response message is “Keep Alive”, the protocol port instruction unit 15 specifies to use a connection that uses the specified destination IP address and protocol port information.
  • a socket is a network address that combines an IP address and a port number that is a sub (auxiliary) address of the IP address.
  • the protocol port instruction unit 15 associates the source port number information with the socket by using a bind () system call, and further connects the socket. Is used and the connect () system call is used. With these commands, the protocol port instruction unit 15 can set a new connection in which the TCP port number is specified. By specifying this socket ID, the protocol port instruction unit 15 performs relay processing using the protocol port number assigned by the network controller 30. realizable.
  • the route setting unit 34 sets the route determined by the route determination unit 32 of the network controller 30 to the switch 20-1, the switch 20-2, the switch 20-3, and the switch 20-4 on the route.
  • the path setting unit 34 writes the flow entry in the flow table 21 of the switch 20.
  • FIG. 5 shows processing of the network controller 30 from when a relay request is received from the relay device 10 until a response is returned.
  • Step S11 In the network controller 30, the relay request interface unit 31 notifies the route determination unit 32 when receiving the relay request message from the relay device 10.
  • the route determination unit 32 searches the transfer policy table in the route determination unit 32 based on the transmission source information, the destination information, and the content information included in the relay request message, and acquires the transfer policy.
  • Step S12 The route determination unit 32 determines a destination, a route, and QoS information based on the obtained transfer policy.
  • Step S13 The route determination unit 32 determines whether to use “Keep Alive” in the obtained transfer policy.
  • Step S14 When using “Keep Alive” in the obtained transfer policy, the route determination unit 32 searches the flow management table in the protocol port management unit 33 to find out whether there is an available flow. Specifically, the route determination unit 32 searches the flow management table for the same destination, route, and path to which QoS is applied, using these pieces of information as keys.
  • Step S15 The route determination unit 32 determines whether or not the same flow exists.
  • Step S16 The route determination unit 32 acquires existing flow information when the same flow exists.
  • Step S17 On the other hand, when the same flow does not exist, the route determination unit 32 assigns a new flow because an existing flow cannot be reused. Also, the route determination unit 32 assigns a new flow even when “Keep Alive” is not used in step S13.
  • Step S18 When a new flow is assigned, the route determination unit 32 sets a flow entry corresponding to the flow information from the route setting unit 34 to one or more switches 20 on the route.
  • Step S19 When the flow information used for relay is determined by the above processing, the route determination unit 32 notifies the relay request interface unit 31 of a response message including the flow information.
  • the relay request interface unit 31 transmits a response message to the relay device 10.
  • FIG. 6 shows the processing of the network controller 30 when the flow ends for a certain flow in the relay device 10.
  • Step S21 In the network controller 30, when the relay request interface unit 31 receives the flow end message from the relay device 10, it notifies the route determination unit 32.
  • the route determination unit 32 acquires flow information from the flow end message.
  • the route determination unit 32 refers to the flow management table in the protocol port management unit 33, identifies the route to the destination, and issues a flow entry deletion request for the switch 20 on the route.
  • the aging process is a break-in for obtaining the original performance of the device.
  • Step S23 the route determination unit 32 returns an unused port number to the protocol port management unit 33. Specifically, in the case of a TCP flow, the path determination unit 32 releases a TCP transmission source port number that has been dynamically allocated, and makes it available for new allocation.
  • Step S24 Finally, the route determination unit 32 deletes the flow information from the flow management table in the protocol port management unit 33.
  • related control information (table entry, port number, etc.) is deleted from the network controller 30 and the switch 20 for the flow for which the relay processing has been completed.
  • the second embodiment of the present invention shows a case where the flow management table in the protocol port management unit 33 specifies a flow using only an IP address without specifying a TCP port number.
  • the route determination unit 32 of the network controller 30 determines the destination and route for the content based on the transfer policy table.
  • the route determination unit 32 assigns a destination IP address for uniquely specifying the route and the destination.
  • the route determination unit 32 associates a plurality of destination IP addresses with the same terminal 220, and allocates different destination IP addresses to identify different routes.
  • the route determination unit 32 registers the flow information in the flow management table in the protocol port management unit 33.
  • the path determination unit 32 does not manage the TCP port number, and therefore does not specify “tcp sp”. Note that “tcp sp” indicates a TCP source port (sp). Further, the route determination unit 32 arbitrarily allocates the destination IP address from the free address and associates it with the actual IP address of the terminal.
  • the network controller 30 sets a flow entry of a switch to be transferred for a flow having the IP address of the relay device 10 as a transmission source IP address and the destination as the assigned IP address. Assuming that the source IP address is “10.3.3.1”, the destination terminal obtained from the content is 220-4, and the destination IP address is “10.2.2.1”, the network controller 30 10 ("10.0.3.1") and the terminal 220-4 ("10.2.2.1”), the switch on the selected route for the flow concerned A flow entry is set in 20 flow tables 21. For example, the network controller 30 has a combination of (“133.202.10.1”, “10.2.2.1”) for each of the switches 20-1, 20-5, 20-6, and 20-4. A flow entry that sets a packet having an IP header as a target flow is set. If the terminal cannot process a plurality of IP addresses, the IP address may be converted by any switch on the route so that the terminal 220-4 can be reached with the actual IP address. .
  • the relay device 10 When the relay device 10 receives a response message in which the TCP port number is not specified from the network controller 30, the relay device 10 autonomously assigns the TCP port number to the terminal 220-4 and performs connection. At this time, the relay device 10 uses “10.2.2.1” specified in the response message described above as the destination IP address.
  • the communication data related to this connection is transferred from the relay device 10 to the terminal 220-4 according to the flow entry set for the switch 20 from the network controller 30, and as a result, the content is transferred from the terminal 210-2 to the terminal 220-4. Transfer based on content-based routing is realized.
  • FIG. 7 shows a sequence diagram when routing based on content is performed in the relay device 10 and the network controller (controller) 30 in the transfer from the terminal 210-1 to the terminal 220-1.
  • Step S101 The terminal 210-1 transmits data to the relay device 10.
  • TCP is used as a transport.
  • a TCP connection is made from the terminal 210-1 toward the IP address of the relay device 10 or a virtual IP address representing the destination terminal group.
  • the TCP connection is performed by a sequence called “3 way handshake”, and communication of control packets (SYN, SYN-ACK, ACK) is performed between the terminal 210-1 and the relay apparatus 10.
  • the terminal 210-1 transmits communication data including content information to the relay device 10.
  • Step S102 The relay device 10 transmits a relay request message including the content information extracted by the TCP termination and the IP address information of the terminal 210-1 to the network controller 30, and requests a message routing process based on the content content.
  • Step S103 The network controller 30 acquires flow information, determines routing (route determination), and sets the switch 20 based on the processing sequence described with reference to FIG.
  • a routing determination the network controller 30 determines what transfer policy is applied by comparing (collating) the transmission source IP address, content contents, and transfer policy.
  • the network controller 30 specifies the destination terminal 220-1, specifies the route to the terminal, and specifies the QoS parameter at the time of transfer.
  • the network controller 30 refers to the flow management table based on the obtained destination, route, and QoS information, and acquires flow information used for transfer.
  • the flow information includes communication port information used for TCP connection from the relay apparatus 10 to the destination terminal 220.
  • Step S104 Based on the obtained flow information, the network controller 30 sets a flow entry for the switch 20-1 on the route, and switches between input and output ports when the data of the corresponding flow is input to the switch 20-1. Enable processing.
  • Step S105 the network controller 30 sets a flow entry for the switch 20-2 on the route based on the obtained flow information, and the input / output port when the data of the corresponding flow is input to the switch 20-2. Switching between them. Although only two switches are illustrated in FIG. 7, the network controller 30 actually sets paths for a plurality of switches according to the determined path.
  • Step S106 When the above setting is completed, the network controller 30 transmits a response message to the relay request message to the relay device 10.
  • Step S107 The relay device 10 establishes a communication path to the terminal 220-1 using a new or existing TCP connection based on the flow information specified by the response message from the network controller 30.
  • the TCP port number designated from the relay apparatus 10 to the terminal 220-1 is used.
  • the relay device 10 acquires a socket descriptor by a socket () system call, and from the network controller 30 as a local address of the socket descriptor by a bind () system call. Specify the specified source port number.
  • the relay device 10 can use the specified value instead of the TCP / IP stack autonomously assigning the source port number.
  • the relay device 10 designates the IP address of the destination terminal 220-1 and the TCP destination port number indicating the service using the connect () system call. Thereby, a TCP connection having flow information designated by the network controller 30 is established between the relay device 10 and the terminal 220-1.
  • the relay device 10 transmits the communication message received and held in step S101 to the destination terminal 220-1.
  • Step S108 The relay device 10 relays messages and communication data between the terminal 210-1 and the terminal 220-1. Thereafter, the message and communication data between the terminal 210-1 and the terminal 220-1 are the first TCP connection between the terminal 210-1 and the relay device 10, the relay device 10 and the terminal 220-1. Is relayed using the second TCP connection.
  • a GET request from the terminal 210-1 is transmitted to the terminal 220-1 via the relay device 10.
  • the response message from the terminal 220-1 and the transfer of content such as a file designated and acquired by GET are transmitted from the network controller 30 to the terminal 210-1 via the relay device 10.
  • the routing processing based on the content can be realized between the terminal 210-1 and the terminal 220-1.
  • Step S109 Finally, when the communication between the terminal 210-1 and the terminal 220-1 is completed, the relay device 10 notifies the network controller 30 that the corresponding flow is completed. Upon receiving the flow end notification message, the network controller 30 deletes the information of the corresponding flow from the flow management table, makes the TCP port number used in the corresponding flow unused, and makes it usable again.
  • the relay device 10 transfers data using information (TCP port number) specifying the flow notified from the network controller 30. Therefore, the flow information (TCP port number) itself does not explicitly represent a path. That is, the flow information does not specify a route through which the TCP connection passes.
  • transfer can be performed in the TCP / IP header format without using the MPLS label.
  • the relay device 10 is notified of the flow identifier from the network controller 30, and the relay device 10 communicates using the flow identifier. That is, the relay device 10 does not autonomously assign a new flow identifier, but the network controller 30 assigns a flow identifier.
  • the content-based switch system of the present invention is a content-based switch processing system that determines a communication path between a plurality of terminals based on content included in a packet payload, and performs communication between a plurality of terminals.
  • a relay device that relays based on a predetermined communication protocol and extracts content information from a packet payload, one or more switches that connect a plurality of terminals, and a controller that includes a relay device and a control function of the switches.
  • the relay device transmits the content information extracted from the packet payload of the data received from the terminal and the address information of the terminal to the controller.
  • the controller determines the transfer path based on the content information and the terminal address information. Further, the controller determines flow information used for transfer. The controller also sets a correspondence table between the flow information and the output route in the route table of the switch on the transfer route. Further, the controller notifies the relay apparatus of the determined flow information.
  • the relay device communicates with the destination terminal using the identifier of the flow information notified from the controller.
  • the communication protocol between a plurality of terminals is TCP
  • a flow information identifier notified from the controller to the relay apparatus either or both of the TCP source port number and the destination port number, and the IP address of the destination terminal Including.
  • the identifier of the flow information notified from the controller to the relay device includes at least one of IP addresses corresponding to two terminals serving as communication end points.
  • the communication protocol between a plurality of terminals is UDP
  • the identifier of the flow information notified from the controller to the relay device either or both of the UDP source port number and the destination port number, and the destination terminal IP address.
  • the relay device In the communication from the relay device to the destination terminal, the relay device newly establishes the same flow (IP, UDP, TCP, etc.) as the determined flow information when the flow information determined by the controller is a new flow. Data to the destination terminal.
  • IP IP, UDP, TCP, etc.
  • the relay device In the communication from the relay device to the destination terminal, when the flow information determined by the controller assigns a flow in use, the relay device transfers data to and from the destination terminal using the already established flow.

Landscapes

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

Abstract

 通信のコンテンツに基づくルーティング処理において、経路上のスイッチごとにコンテンツを参照するスイッチングをするか、ルーティングラベルを使用することが必要であり、効率的な処理が行えないという問題があった。この問題を解決するため、送信元端末からのデータを中継装置で終端してコンテンツ内容をネットワークコントローラに渡し、ネットワークコントローラは中継に必要となるフロー情報を割り当てると共に、スイッチに対してフロー転送指示を設定する。割り当てたフロー情報は中継装置に通知され、中継装置は指定されたフロー情報を用いて宛先端末までの通信フローを設定し、送信元端末から宛先端末までのデータを中継する。

Description

コンテンツベーススイッチシステム、及びコンテンツベーススイッチ方法
 本発明は、ネットワークトラヒックのデータ処理において、トラヒックのコンテンツに基づくスイッチ処理、ルーティング処理を行うコンテンツベーススイッチシステムに関する。
 特許文献1(特開2006-203904号公報)には、コンテンツベースルータ、コンテンツベースネットワークに関する技術が開示されている。この技術では、入口ルータにおいて、データパケットのコンテンツを、格納されているサブスクリプション(subscription)とマッチングする。そして、マッチした場合に、マッチしたサブスクリプションのサブスクライバー(subscriber)に対応した出口ルータを表すルーティングラベルをデータパケットに割り当てて、転送すべきコンテンツベースルータにデータパケットを送信する。なお、サブスクライバーとは、コンテンツを購読するユーザを示す。また、サブスクリプションとは、サブスクライバーが規定するクエリー(query)情報、選択条件を示す。
 特許文献1に開示された技術では、XML(Extensible Markup Language)と呼ばれるメタ言語で記述されたコンテンツデータとXMLで記述されたサブスクリプションのデータとのマッチを取ることにより、配送先を決定する。
 コンテンツベースルータの実現方法としては、特許文献1に開示されているように、経路上の各ルータがXML記述をXMLクエリー(query)と比較しながら、各XMLルータで処理を転送判定する方法や、コンテンツの宛先を判定した後にラベルをパケットに付加し、以降はラベルに基づいてルーティングを行う方法が挙げられる。
 コンテンツベースのルーティング処理に類似する処理として、通信データのメッセージ内容に基づいて宛先を判定する処理が行われる場合もある。例えば、ロードバランサ装置(Load Balancer:負荷分散装置)では、HTTP(Hyper Text Transfer Protocol)で利用されるURI(Unified Resource Identifier)やCookieと呼ばれる、HTTPヘッダに含まれる識別子に基づいて宛先のサーバを選択する処理が行われている。但し、この処理では、URIやCookieの内容に基づいて宛先サーバを選択することはできるが、経路を指定することはできない。
 先に述べたロードバランサ装置では、HTTPのリクエストメッセージに含まれるURIやCookieの値に対してポリシーを適用することにより、最適な宛先を選択することができる。これにより、HTTP通信の場合は、サービスを提供するサーバを選択することができる。しかし、最適なサーバを選択できても、そのサーバまでの経路はTCP/IP(Transmission Control Protocol/Internet Protocol)ルーティングに従うため、どのようなネットワーク経路を通るかを指定することができない。また、ネットワーク経路だけでなく、どのような帯域を割り当てるかも指定することができない。そのため、特定のURIに対して広帯域の回線を利用して転送することは困難である。
 これを実現するためには、URIやCookieで宛先サーバを判定する処理と、その宛先サーバが決定してから、宛先サーバに接続する際に、QoS(Quality of Service)を考慮した経路制御を行う処理が必要になる。しかしながら、この場合、URIやCookieから宛先を判断する処理と、宛先への接続に対してどのようなネットワーク経路を使用するかを判断する処理との2段階の処理のそれぞれにおいて、ポリシー指定が必要になり、処理が複雑になるという課題がある。
 一方、特許文献1に示すコンテンツベースネットワーク処理では、コンテンツに基づいてパケットにラベルが割り当てられ、ラベルに基づいてネットワーク上の中継処理が行われる。そのため、コンテンツベースルータが、コンテンツに応じてパケットにラベルを割り当てる際に、ラベルスイッチに対する転送ポリシーを指定することで、最適な経路を指定して中継することが可能になる。
 しかし、ラベルを用いた転送処理では、ラベルを解釈するためのラベルスイッチと呼ばれる中継装置が必要であるという課題がある。ラベルスイッチは、ラベルを解釈し、ラベルに基づいてスイッチ処理を行う。
 また、コンテンツを配送するトランスポートプロトコルとして、信頼性のあるTCPを使用することを考えると、サブスクリプションのサブスクライバーに対応した出口ルータまでのTCPコネクションを確立する処理と、ラベルを指定して転送を行う処理との2つの処理が必要になる。TCPコネクションを利用した転送のためにパケットにはTCP/IPヘッダを付加しているので、そのヘッダに更にラベルを付加するのではなく、TCP/IP形式のパケットのままで転送処理ができることが望ましい。
 関連する技術として、特許文献2(特開2004-304456号公報)には、ネットワークシステム、同システムにおけるパス設定方法並びに同システムに用いられるネットワーク管理装置及びネットワーク装置に関する技術が開示されている。この技術では、ネットワーク管理装置は、定期的に、又は、所定のイベント発生時に、或るネットワーク装置間で提供するコンテンツ内容について特定の基準を満たす配送経路を予め算出・決定する。また、このネットワーク管理装置は、特定のコンテンツと当該コンテンツを配信するのに最適な計算済みの配送経路とを関連付けた対応表を作成し、作成された対応表をユーザによる要求コンテンツに応じたリクエストメッセージをネットワーク装置(エッジルータ)に送信する。ネットワーク装置(エッジルータ)は、上記リクエストメッセージを受信すると、当該メッセージ中の通過ノードリストを抽出し、当該通過ノードリストに基づいて、所定のパス設定シグナリング(パス設定メッセージ)を用いてMPLS(Multi-Protocol Label Switching)パスを設定(確立)する。
 また、特許文献3(特開2007-096741号公報)には、ポートホッピング検出システム、帯域制御システム、ポートホッピング検出方法、及びプログラムに関する技術が開示されている。この技術では、ポートホッピングフロー検出装置が、受信した複数のフローのポートホッピングに関する情報を演算し、その演算結果と前記アプリケーション情報とを比較することによりポートホッピングを検出する。
特開2006-203904号公報 特開2004-304456号公報 特開2007-096741号公報
 本発明の目的は、コンテンツベースのルーティング処理を効率的に行うため、コンテンツベースのパケット転送処理を行う際に、コンテンツに対する転送処理を、ラベルを用いずにTCP/IPヘッダのみに基づいて転送するコンテンツベーススイッチシステムを提供することである。
 本発明のコンテンツベーススイッチシステムは、複数の端末間の通信経路をパケットペイロードに含まれるコンテンツに基づいて決定するコンテンツベーススイッチシステムであって、中継装置と、スイッチと、コントローラとを具備する。中継装置は、複数の端末間の通信を所定の通信プロトコルに基づいて中継し、複数の端末のいずれかの端末からデータを受信し、受信されたデータのパケットペイロードからコンテンツ情報を抽出し、抽出されたコンテンツ情報と端末のアドレス情報とをコントローラに送信し、コントローラから指定されるフロー情報を用いて宛先端末までのフローを設定する。スイッチは、複数の端末間を接続するネットワーク上に少なくとも1つ存在し、複数の端末及び中継装置のうちのいずれかからデータを受信し、外部から通知されたフロー情報の識別子と出力方路との対応表に従い宛先端末まで通信を行う。コントローラは、中継装置及びスイッチの制御を行い、コンテンツ情報と端末のアドレス情報に基づいて転送経路を決定し、更に転送に使用するフロー情報を決定し、フロー情報と出力方路との対応表を転送経路上にあるスイッチの経路テーブルに設定し、決定されたフロー情報を中継装置に通知する。
 本発明のコンテンツベーススイッチ方法は、複数の端末間の通信経路をパケットペイロードに含まれるコンテンツに基づいて決定するコンテンツベーススイッチ方法である。本発明のコンテンツベーススイッチ方法では、中継装置により、複数の端末間の通信を所定の通信プロトコルに基づいて中継し、パケットペイロードからコンテンツ情報を抽出し、抽出されたコンテンツ情報と端末のアドレス情報とをコントローラに送信する。また、複数の端末間を接続するネットワーク上に少なくとも1つ存在するスイッチにより、複数の端末及び中継装置のうちのいずれかからデータを受信する。また、コントローラにより、中継装置及びスイッチの制御を行い、コンテンツ情報と端末のアドレス情報に基づいて転送経路を決定し、更に転送に使用するフロー情報を決定し、フロー情報と出力方路との対応表を転送経路上にあるスイッチの経路テーブルに設定し、決定されたフロー情報を中継装置に通知する。また、中継装置により、コントローラから通信されたフロー情報を用いて宛先端末までのフローを設定する。また、スイッチにより、コントローラから通知されたフロー情報の識別子を用いて宛先端末まで通信を行う。
 本発明に係るプログラムは、上記のコンテンツベーススイッチ方法における中継装置、スイッチ及びコントローラのいずれかの動作・処理を、計算機に実行させるためのプログラムである。なお、本発明に係るプログラムは、記憶装置や記憶媒体に格納することが可能である。
 本発明によれば、コンテンツベースネットワーク処理において、コンテンツに基づく宛先判定処理、ネットワークの経路判定処理と、TCP/IP転送の制御処理を連携させることで、コンテンツベースのネットワーク転送処理の経路の最適化が実現できる。また、コントローラでネットワークの経路判定とフロー管理とを連携させることで、共有利用できるフローを判断できる。これにより、中継後の通信フローを集約することができ、ネットワークリソースや端末への処理負荷を低減することが可能になる。
本発明のコンテンツベーススイッチシステムの構成例を示す図である。 中継装置、スイッチ、及びネットワークコントローラの構成例を示す図である。 転送ポリシーテーブルの例を示す図である。 フロー管理テーブルの例を示す図である。 実行マシン(コンピュータ)の構成例を示す図である。 中継要求を受信してから応答を返すまでのネットワークコントローラの動作を示すフローチャートである。 あるフローに関してフローが終了する場合のネットワークコントローラの動作を示すフローチャートである。 コンテンツに基づいたルーティングを行う場合のシーケンス図である。
 <第1実施形態>
 以下に、本発明の第1実施形態について添付図面を参照して説明する。
 図1に、本発明のコンテンツベーススイッチシステムの構成例を示す。
 本発明のコンテンツベーススイッチシステムは、端末210(端末210-1~端末210-N:Nは整数)と、端末220(端末220-1~端末220-N)と、中継装置10と、スイッチ20(スイッチ20-1~スイッチ20-6)と、ネットワークコントローラ30を備える。
 ここでは、端末210は、端末210-1~端末210-Nの端末群に含まれる各端末を示す。また、端末220は、端末220-1~端末220-Nの端末群に含まれる各端末を示す。また、スイッチ20は、スイッチ20-1~スイッチ20-6のスイッチ群に含まれる各スイッチを示す。
 以下の説明では、端末210-1~端末210-Nの各々を、端末210と称す。また、端末220-1~端末220-Nの各々を、端末220と称す。また、スイッチ20-1~スイッチ20-6の各々を、スイッチ20と称す。
 本発明のコンテンツベーススイッチシステムは、端末210と、端末220との間の中継処理を提供する。
 端末210と端末220との間のネットワークには、中継装置10とスイッチ20が接続されている。
 また、中継装置10及びスイッチ20は、ネットワークコントローラ30に接続されている。ネットワークコントローラ30は、ネットワーク機器を制御するコントローラであり、中継装置10及びスイッチ20を集中的に管理する。
 なお、本発明では、端末及びスイッチの台数は任意の数であり、図示した数に限定されない。
 図2に、中継装置10、スイッチ20、及びネットワークコントローラ30の構成例を示す。
 中継装置10は、プロトコル終端部11と、コンテンツ抽出部12と、プロトコル終端部13と、中継要求インタフェース部14と、プロトコルポート指示部15を備える。
 中継装置10は、第1の通信回線60と第2の通信回線70に接続され、第1の通信回線60と第2の通信回線70の間の中継を行う。
 プロトコル終端部11は、第1の通信回線60を介して、外部に接続されている。また、プロトコル終端部11は、コンテンツ抽出部12に接続されている。
 コンテンツ抽出部12は、プロトコル終端部11と、プロトコル終端部13と、中継要求インタフェース部14に接続されている。
 プロトコル終端部13は、コンテンツ抽出部12に接続されている。また、プロトコル終端部13は、第2の通信回線70を介して、スイッチ20に接続されている。
 中継要求インタフェース部14は、コンテンツ抽出部12と、制御回線81を介して、ネットワークコントローラ30に接続されている。
 プロトコルポート指示部15は、プロトコル終端部13と、中継要求インタフェース部14に接続されている。
 スイッチ20は、フローテーブル21と、スイッチ処理部22と、スイッチインタフェース部23を備える。
 フローテーブル21は、MACヘッダ、IPヘッダ、レイヤ4ヘッダから得られる情報をフローの識別情報として登録し、そのフローに対する出力情報(出力回線やヘッダ書き換え等のアクション情報)を格納するエントリーを備える。
 [フローの例]
 フローとは、所定の規則(ルール)に適合するパケットに対して行うべき所定の処理(アクション)を定義したものである。フローのルールは、MACフレームのヘッダ領域に含まれる宛先アドレス(Destination Address)、送信元アドレス(Source Address)、宛先ポート(Destination Port)、送信元ポート(Source Port)のいずれか又は全てを用いた様々な組み合わせにより定義され、区別可能である。なお、上記のアドレスには、MACアドレス(Media Access Control Address)やIPアドレス(Internet Protocol Address)を含むものとする。また、上記に加えて、入口ポート(Ingress Port)の情報も、フローのルールとして使用可能である。
 フローの詳細については、以下の文献に記載されている。“OpenFlow Switch Specification Version 0.9.0(Wire Protocol 0x98) July 20, 2009 Current Maintainer: Brandon Heller(brandonh@stanford.edu)” <http://www.openflowswitch.org/documents/openflow-spec-v0.9.0.pdf>
 スイッチ処理部22は、フローテーブル21に指示された経路設定に基づいて、特定のインタフェースからインタフェースへスイッチングを行い、更に指定された制御内容に応じてQoS、帯域の制御を行う。ここでは、スイッチ処理部22は、スイッチインタフェース部23のスイッチングを行う。
 スイッチインタフェース部23は、複数の回線を収容する。ここでは、スイッチインタフェース部23には、第2の通信回線70を介して、中継装置10のプロトコル終端部13に接続されているものと、他のスイッチ20又は端末220に接続されているものがある。これらは、ハードウェアとして異なる別々のインタフェースでも良いし、物理ポートが異なるだけの同一のインタフェースでも良い。
 ネットワークコントローラ30は、中継要求インタフェース部31と、経路判定部32と、プロトコルポート管理部33と、経路設定部34を備える。
 中継要求インタフェース部31は、制御回線81を介して、中継装置10の中継要求インタフェース部14に接続されている。
 経路判定部32は、中継要求インタフェース部31と、プロトコルポート管理部33と、経路設定部34に接続されている。また、経路判定部32は、転送ポリシーテーブルを保持する。転送ポリシーテーブルについては後述する。
 プロトコルポート管理部33は、中継要求インタフェース部31と経路判定部32に接続されている。また、プロトコルポート管理部33は、フロー管理テーブルを保持する。フロー管理テーブルについては後述する。
 経路設定部34は、制御回線82を介して、スイッチ20のフローテーブル21の設定/更新を行う。
 [転送ポリシーテーブルの例]
 図3Aに、ネットワークコントローラ30の経路判定部32が保持する転送ポリシーテーブルの例を示す。転送ポリシーテーブルは、中継装置10から要求のあった、中継対象トラヒックのアドレス情報、コンテンツ情報に基づいて、転送のためのポリシーID(Identifier)、QoSパラメータ情報を取得するために用いられる。ここでは、転送ポリシーテーブルは、送信元アドレス、宛先アドレス(仮想宛先アドレス)、コンテンツルール、ポリシーIDならびに転送QoSパラメータを格納している。経路判定部32は、転送ポリシーテーブルから、送信元アドレスと宛先アドレス(仮想宛先アドレス)、コンテンツルールに対応する転送ポリシーとして、ポリシーIDならびに転送QoSパラメータを取得できる。なお、経路判定部32は、ポリシーIDをインデックスとして、ルーティングの転送ポリシーを取得することができるものとする。
 [フロー管理テーブルの例]
 図3Bに、ネットワークコントローラ30のプロトコルポート管理部33が保持するフロー管理テーブルの例を示す。フロー管理テーブルは、ポリシーIDによって指定された転送フローに関する情報を格納する。ここでは、フロー管理テーブルは、宛先アドレス、経路、QoSパラメータ、ポリシーID、フロー情報、KeepAlive情報を格納している。KeepAlive情報は、「Keep Alive(キープアライブ)」を使用するか否かを示す情報である。なお、「Keep Alive」とは、ネットワーク上で、接続が有効であることを確認するために定期的に行われる通信である。ここでは、「Keep Alive」の指定があれば「true(真)」、指定がなければ「false(偽)」とする。経路判定部32は、このフロー管理テーブルを参照することにより、宛先アドレスまでの指定経路、QoSパラメータ、ポリシーIDを指定した場合のフロー情報を取得できる。
 [実行マシン(コンピュータ)の構成例]
 図4は、本発明のコンテンツベーススイッチシステムの各処理部が実行されるマシン(コンピュータ)の構成の一例を示している。
 中継装置10、スイッチ20、及びネットワークコントローラ30の各々がコンピュータ50である場合、これらの各処理部は、CPU(Central Processing Unit)51、メモリ52、二次記憶装置53、ネットワークインタフェース54の組み合わせにより実現される。
 CPU51は、各種ソフトウェア・プログラム(コンピュータ・プログラム)を実行することにより、中継装置10、スイッチ20、ネットワークコントローラ30の全体的な動作を司る。より具体的には、本実施形態において、CPU51は、メモリ52、二次記憶装置53から、又はネットワークインタフェース54を介して、プロトコル終端部、コンテンツ抽出部、経路判定部、経路設定部、プロトコルポート管理部等の機能・処理を実現するためのソフトウェア・プログラムを取得し、適宜実行する。メモリ52及び二次記憶装置53は、CPU51やネットワークインタフェース54から受け取ったデータを記憶し、CPU51からの要求に応じて、記憶されているデータを提供する。ネットワークインタフェース54は、中継装置10と、スイッチ20と、ネットワークコントローラ30の間のネットワークを構成する通信回線に接続される。
 なお、CPU51は、マイクロプロセッサ(microprocessor)や、マイクロコントローラ、あるいは同様の機能を有する半導体集積回路(IC:Integrated Circuit)等でも良い。但し、実際には、これらの例に限定されない。
 メモリ52は、CPU51が直接読み書きできるRAM(Random Access Memory)や、電源投入時に最初に読み込まれるプログラムの記憶等に使われるROM(Read Only Memory)、又はEEPROM(Electrically Erasable and Programmable Read Only Memory)、あるいはフラッシュメモリ等の半導体記憶装置である。ここでは、メモリ52は、主記憶装置(メインメモリ)を示す。但し、実際には、これらの例に限定されない。
 二次記憶装置53は、コンピュータ内外でデータやプログラムを格納する補助記憶装置である。ここでは、二次記憶装置53は、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の外部記憶装置(storage)を示す。また、二次記憶装置53は、DVD(Digital Versatile Disk)とその駆動装置(ドライブ)や、メモリカード等の記憶媒体(メディア)等でも良い。但し、実際には、これらの例に限定されない。
 ネットワークインタフェース54の例として、NIC(Network Interface Card)等のネットワークアダプタや、アンテナ等の通信装置、接続口(コネクタ)等の通信ポート等が考えられる。また、ネットワークインタフェース54が利用する通信回線の例として、インターネット、LAN(Local Area Network)、無線LAN(Wireless LAN)、ケーブルテレビ(CATV)回線、固定電話網、携帯電話網、WiMAX(IEEE 802.16a)、3G(3rd Generation)、専用線(lease line)、IrDA(Infrared Data Association)、Bluetooth(登録商標)、シリアル通信回線、データバス等が考えられる。但し、実際には、これらの例に限定されない。
 [中継処理]
 以下に、端末210から端末220へと中継処理の際の各機能の動作について説明する。
 ここでは、図1において、端末210-1からあるサービスを提供する他の端末に対して接続する場合を考える。このとき、端末210-1からは中継装置10が持つアドレス(仮想アドレスの場合もあり)を宛先としたパケットを送信し、TCP接続を試みる。この接続要求は、図2における第1の通信コネクションに相当し、プロトコル終端部11においてTCPの終端処理がされる。
 プロトコル終端部11は、TCPの終端処理により、アプリケーションレイヤのプロトコルペイロードを取り出す。アプリケーションレイヤのプロトコルの例としては、HTTP(Hyper Text TransferProtocol)やSMTP(Simple Mail Transfer Protocol)等が挙げられる。
 次に、コンテンツ抽出部12は、このプロトコルペイロードからコンテンツ情報を抽出する。このとき、コンテンツ情報は文字列であり、この文字列は予め指定されている。コンテンツ抽出部12は、プロトコルペイロードから、予め指定された文字列にしたがってコンテンツ情報を抽出する。コンテンツ情報の例として、HTTPの場合は、リクエストメッセージに含まれるURI(Unified Resource Identifier)やCookie文字列が挙げられる。あるいは、XML(eXtended Markup Language)で記述されたタグ情報が挙げられる。
 ここでは、例としてコンテンツ抽出部12がコンテンツ情報としてURI文字列を抽出した場合について説明する。この場合、中継要求インタフェース部14は、第1の通信コネクションに関する情報として、送信元のIPアドレス、中継装置側の宛先IPアドレスと共に、コンテンツ抽出部12で抽出されたURI文字列を参照して、中継要求メッセージを作成する。また、中継要求インタフェース部14は、制御回線81を経由して、この中継要求メッセージをネットワークコントローラ30に送信する。
 ネットワークコントローラ30において、中継要求インタフェース部31は、制御回線81を経由して中継要求メッセージを受信すると、この中継要求メッセージを経路判定部32に通知する。経路判定部32は、転送ポリシーに基づいて、この中継要求メッセージの転送経路を判定する。
 上記の転送ポリシーは、図3Aの転送ポリシーテーブルに例示したものとする。この例では、送信元アドレスが任意(any)で、宛先IPアドレスが「133.202.1.1」で、URIが「foo.com」にマッチする場合には、「1番」のエントリーにマッチし、転送ポリシーIDが「101」で、QoSパラメータが「10Mbps」であることがわかる。経路判定部32は、ポリシーIDに関連付けられた転送ノードを選択する。具体的には、経路判定部32は、ポリシーID101に対応する経路を経路判定ロジックによって選択する。ここでは、スイッチ20-1、スイッチ20-2、スイッチ20-3、スイッチ20-4を経由して端末220-1に到達する経路が選択されたとする。左記のスイッチは、図1上の表現では、スイッチA、B、C、Dを通過する経路になる。また、宛先端末220-1のIPアドレスが「10.1.2.1」であるとする。
 次に、経路判定部32は、プロトコルポート管理部33に対して、転送ポリシー判定により得られた宛先、経路、ポリシー情報を渡して、プロトコルポート管理部33内のフロー管理テーブルを検索する。ここで既に同じ条件のフローが登録されていなければ、新規にプロトコルポート番号を割り当てる。TCPの場合は、TCPの送信元ポート番号と宛先ポート番号を割り当てる。なお、一般的に、宛先ポート番号は、サーバのサービスポート番号を表しており、HTTPやSMTP等のサービス毎に固定値をとる。送信元ポート番号は、コネクションを特定できるように、動的に割り当てられる。一般的には、予約済みポート(Registered Port)や動的/プライベートポート(Dynamic and/or Private Port)である1024番以上(65535番以下)の範囲からポート番号が払い出されて使用される。
 また、経路判定部32は、プロトコルポート管理部33内のフロー管理テーブルを検索し、同じ条件のフローが登録されていて、更に「Keep Alive」の指定があれば、そのフローを利用することが可能であると判断する。
 このようにして、経路判定部32は、中継要求に対してどのフローを使用するかを決定する。次に、経路判定部32は、中継要求インタフェース部31に対して、宛先端末のIPアドレスとプロトコルポート情報を返す。TCPを使う場合のプロトコルポート情報は、TCPの送信元ポート番号、宛先ポート番号になる。中継要求インタフェース部31は、応答メッセージとして、これらの情報を中継装置10に送信する。
 中継装置10の中継要求インタフェース部14は、ネットワークコントローラ30からの応答メッセージを受信すると、プロトコルポート指示部15にその応答メッセージを渡す。プロトコルポート指示部15は、その応答メッセージに基づいて、第2の通信コネクションを選択する。プロトコルポート指示部15は、応答メッセージで指定されるフロー情報が新規であれば、指定された宛先IPアドレスとプロトコルポート情報にしたがって、プロトコル終端部13に新規の第2の通信コネクションを確立するように要求する。例えば、プロトコルポート指示部15は、応答メッセージで指定されるフロー情報が「Keep Alive」であれば、指定された宛先IPアドレスとプロトコルポート情報を使用しているコネクションを使用するように指定する。
 プロトコルポート指示部15によるコネクションの指定については、Unix(登録商標)系のOS(Operating System)の場合では、アドレスならびにプロトコルポート番号からソケットIDを検索し、そのソケットIDを指定することで、データの中継が可能になる。なお、ソケットとは、IPアドレスと、IPアドレスのサブ(補助)アドレスであるポート番号を組み合わせたネットワークアドレスのことである。
 また、プロトコルポート指示部15は、新規コネクションにおいて、OSが自動でポート番号を割り当てないように指定するためには、bind()システムコールで、送信元ポート番号情報とソケットを関連付け、更にそのソケットを指定してconnect()システムコールを用いる。プロトコルポート指示部15は、これらのコマンドにより、TCPのポート番号を指定した新規のコネクションを設定でき、このソケットIDを指定することで、ネットワークコントローラ30が割り当てたプロトコルポート番号を使用した中継処理を実現できる。
 また、経路設定部34は、ネットワークコントローラ30の経路判定部32で決定した経路を、経路上のスイッチ20-1、スイッチ20-2、スイッチ20-3、スイッチ20-4に設定する。ここでは、経路設定部34は、スイッチ20のフローテーブル21に、フローエントリーを書き込む。例えば、経路設定部34は、フロー管理テーブル1に相当するフローの場合は、「送信元IPアドレス=10.0.0.1、宛先IPアドレス=10.1.2.1、TCPの送信元ポート(sp:source port)=2001、宛先ポート(dp:destination port)=80」というフローに対して入出力ポートを指定するフローエントリーを設定する。
 図5、図6を参照して、ネットワークコントローラ30の処理のうち、本発明に関係する箇所について説明する。
 [要求受信]
 図5は、中継装置10からの中継要求を受信してから応答を返すまでのネットワークコントローラ30の処理を示している。
 (1)ステップS11
 ネットワークコントローラ30において、中継要求インタフェース部31は、中継装置10からの中継要求メッセージを受信すると、経路判定部32に通知する。経路判定部32は、中継要求メッセージに含まれる送信元情報と、宛先情報と、コンテンツ情報に基づいて、経路判定部32内の転送ポリシーテーブルを検索し、転送ポリシーを取得する。
 (2)ステップS12
 経路判定部32は、得られた転送ポリシーに基づいて、宛先、経路、QoS情報を決定する。
 (3)ステップS13
 経路判定部32は、得られた転送ポリシーにおいて、「Keep Alive」を使用するか否か判断する。
 (4)ステップS14
 経路判定部32は、得られた転送ポリシーにおいて、「Keep Alive」を使用する場合は、プロトコルポート管理部33内のフロー管理テーブルを検索し、利用可能なフローがあるかどうかを探す。具体的には、経路判定部32は、同一の宛先、経路、QoSを適用しているパスを、これらの情報をキーとしてフロー管理テーブルを検索する。
 (5)ステップS15
 経路判定部32は、同一のフローが存在するか否か判断する。
 (6)ステップS16
 経路判定部32は、同一のフローが存在した場合は、既存のフロー情報を取得する。
 (7)ステップS17
 一方、経路判定部32は、同一のフローが存在しない場合は、既にあるフローの再利用ができないので、新規フローを割り当てる。また、経路判定部32は、ステップS13において、「Keep Alive」を使用しない場合も新規フローを割り当てる。
 (8)ステップS18
 経路判定部32は、新規フローを割り当てた場合は、そのフロー情報に対応するフローエントリーを経路設定部34から経路上の1つ以上のスイッチ20に対して設定する。
 (9)ステップS19
 経路判定部32は、以上の処理により、中継に使用するフロー情報が確定すると、中継要求インタフェース部31に、フロー情報を含む応答メッセージを通知する。中継要求インタフェース部31は、中継装置10に対して応答メッセージを送信する。
 [フロー終了通知]
 図6は、中継装置10において、あるフローに関してフローが終了する場合の、ネットワークコントローラ30の処理を示している。
 (1)ステップS21
 ネットワークコントローラ30において、中継要求インタフェース部31は、中継装置10からフロー終了メッセージを受け取ると、経路判定部32に通知する。経路判定部32は、フロー終了メッセージからフロー情報を取得する。
 (2)ステップS22
 次に、経路判定部32は、プロトコルポート管理部33内のフロー管理テーブルを参照し、宛先までの経路を特定し、経路上のスイッチ20のフローエントリー削除要求を出す。なお、スイッチ20のフローエントリーがエージング処理(aging)により自動的に削除される場合は、明示的にスイッチ20のフローエントリー削除要求を出さないようにすることも可能である。エージング処理とは、機器の本来の性能を出すための慣らしをすることである。
 (3)ステップS23
 更に、経路判定部32は、プロトコルポート管理部33に対して、未使用となったポート番号を返却する。具体的には、経路判定部32は、TCPのフローの場合は、動的に割り当てていたTCPの送信元ポート番号を解放し、新規割当に使用可能とする。
 (4)ステップS24
 最後に、経路判定部32は、プロトコルポート管理部33内のフロー管理テーブルからフロー情報を削除する。
 以上により、中継処理が完了したフローについて、ネットワークコントローラ30ならびにスイッチ20から、関連する制御情報(テーブルエントリー、ポート番号等)を削除する。
 ネットワークコントローラ30からスイッチ20内のフローテーブル21を操作する具体的な方式としては、「Openflow」(http://www.openflowswitch.org/)等が挙げられる。「Openflow」の場合、ネットワークコントローラ30の経路設定部34が「Openflow Controller」に対応し、制御回線82が「Secure Channel」に対応する。
 <第2実施形態>
 以下に、本発明の第2実施形態について説明する。
 本発明の第2実施形態では、プロトコルポート管理部33内のフロー管理テーブルがTCPのポート番号を指定せずにIPアドレスのみでフローを指定する場合を示す。
 ネットワークコントローラ30の経路判定部32は、転送ポリシーテーブルに基づいてコンテンツに対する宛先ならびに経路を判定する。ここで、経路判定部32は、経路ならびに宛先を一意に特定するための宛先IPアドレスを割り振る。経路判定部32は、同一の端末220に対して複数の宛先IPアドレスを対応付けるものとし、異なる経路を識別するために異なる宛先IPアドレスを割り振る。
 次に、経路判定部32は、プロトコルポート管理部33内のフロー管理テーブルにフロー情報を登録する。本実施形態では、経路判定部32は、TCPのポート番号を管理しないので、「tcp sp」を指定しない。なお、「tcp sp」は、TCPの送信元ポート(sp)を示す。また、経路判定部32は、宛先IPアドレスを空きアドレスから任意に割り振り、端末の実際のIPアドレスに対応付ける。
 ネットワークコントローラ30は、中継装置10のIPアドレスを送信元IPアドレスとし、前記割り当てたIPアドレスを宛先とするフローについて、転送するスイッチのフローエントリーを設定する。ネットワークコントローラ30は、送信元IPアドレスが「10.0.3.1」で、コンテンツから求めた宛先端末が220-4でその宛先IPアドレスが「10.2.2.1」だとすると、中継装置10(「10.0.3.1」)と端末220-4(「10.2.2.1」)との間の転送を行うために、当該フローについて、選択された経路上にあるスイッチ20のフローテーブル21にフローエントリーを設定する。例えば、ネットワークコントローラ30は、スイッチ20-1、20-5、20-6、20-4のそれぞれに(「133.202.10.1」、「10.2.2.1」)の組み合わせのIPヘッダを持つパケットを対象フローとするフローエントリーを設定する。なお、端末が複数のIPアドレスを処理できない場合は、経路上のいずれかのスイッチにおいてIPアドレスを変換して、端末220-4に対しては、実際のIPアドレスで到達できるようにしても良い。
 中継装置10は、ネットワークコントローラ30からTCPのポート番号を指定していない応答メッセージを受け取ると、端末220-4に対して、TCPのポート番号を自律的に割り当てて接続を行う。このとき、中継装置10は、宛先IPアドレスとして、前述の応答メッセージで指定された「10.2.2.1」を使う。
 このコネクションに関する通信データは、ネットワークコントローラ30からスイッチ20に対して設定されたフローエントリーに従い、中継装置10から端末220-4まで転送され、結果的に端末210-2から端末220-4まで、コンテンツ内容に基づくルーティングでの転送が実現される。
 使用するプロトコルがTCPではなくUDP(User Datagram Protocol)の場合でもポート番号を管理することで同様の処理が実現できる。
 なお、上記の各実施形態は、組み合わせて実施することも可能である。例えば、本発明のコンテンツベーススイッチシステムにおいて、上記の各実施形態に対応する機能を選択できるようにしても良い。
 <実施例1>
 図7に、端末210-1から端末220-1までの転送において、中継装置10ならびにネットワークコントローラ(コントローラ)30においてコンテンツに基づいたルーティングを行う場合のシーケンス図を示す。
 (1)ステップS101
 端末210-1は、中継装置10に向けてデータを送信する。ここで、トランスポートとしてTCPを使った場合を想定する。すると、端末210-1からは、中継装置10のIPアドレス、あるいは宛先端末群を代表する仮想IPアドレスに向けてTCP接続を行う。TCP接続は、「3way handshake」と呼ばれるシーケンスによって行われ、端末210-1と中継装置10の間で制御パケット(SYN、SYN-ACK、ACK)の通信が行われる。端末210-1は、コネクションが確立すると、中継装置10に向けて、コンテンツ情報を含む通信データを送信する。
 (2)ステップS102
 中継装置10は、TCP終端によって抽出したコンテンツ情報ならびに端末210-1のIPアドレス情報を含む中継要求メッセージをネットワークコントローラ30に対して送信し、コンテンツ内容に基づくメッセージルーティング処理を依頼する。
 (3)ステップS103
 ネットワークコントローラ30は、図5を用いて説明した処理シーケンスに基づいてフロー情報の取得、ルーティング判定(経路判定)ならびにスイッチ20の設定を行う。ネットワークコントローラ30は、ルーティング判定として、送信元IPアドレス、コンテンツ内容と転送ポリシーを比較(照合)することで、どのような転送ポリシーを適用するかを判定する。ここでは、ネットワークコントローラ30は、宛先端末220-1の特定、端末までの経路の特定、転送の際のQoSパラメータの特定を行う。例えば、ネットワークコントローラ30は、HTTPのリクエストデータに含まれるURIをコンテンツ内容とする場合は、URI文字列と転送ポリシーを比較することで、宛先端末ならびに転送経路を決定する。更に、ネットワークコントローラ30は、得られた宛先、経路、QoS情報を基にフロー管理テーブルを参照して、転送に用いるフロー情報を取得する。フロー情報は、中継装置10から宛先端末220までのTCP接続で用いられる通信ポート情報を含む。
 (4)ステップS104
 ネットワークコントローラ30は、得られたフロー情報を基に、経路上のスイッチ20-1に対してフローエントリーを設定し、スイッチ20-1において該当フローのデータが入力した際に入出力ポート間でスイッチング処理を行えるようにする。
 (5)ステップS105
 同様に、ネットワークコントローラ30は、得られたフロー情報を基に、経路上のスイッチ20-2に対してフローエントリーを設定し、スイッチ20-2において該当フローのデータが入力した際に入出力ポート間でスイッチング処理を行えるようにする。図7には、スイッチが2台のみ記載されているが、実際には、ネットワークコントローラ30は、判定した経路に応じて複数のスイッチに対して経路を設定する。
 (6)ステップS106
 ネットワークコントローラ30は、以上の設定が終わると、中継要求メッセージに対する応答メッセージを中継装置10に対して送信する。
 (7)ステップS107
 中継装置10は、ネットワークコントローラ30からの応答メッセージで指定されたフロー情報に基づき、新規、あるいは既存のTCPコネクションを利用して端末220-1までの通信路を確立する。新規のTCPコネクションを利用する場合は、中継装置10から端末220-1に対して指定されたTCPポート番号を使う。具体的には、中継装置10は、Unix(登録商標)系のOSでは、socket()システムコールでソケットディスクリプタを取得し、bind()システムコールで、ソケットディスクリプタのローカルアドレスとして、ネットワークコントローラ30から指定された送信元ポート番号を指定する。これにより、中継装置10は、TCP/IPスタックが送信元ポート番号を自律的に割り当てるのではなく、指定された値を用いることができるようになる。更に、中継装置10は、connect()システムコールを用いて宛先端末220-1のIPアドレスとサービスを示すTCPの宛先ポート番号を指定する。これにより、ネットワークコントローラ30が指定したフロー情報を持つTCPコネクションが中継装置10と端末220-1との間に確立される。通信経路が確立すると、中継装置10は、ステップS101で受信して保持していた通信メッセージを宛先である端末220-1に送信する。
 (8)ステップS108
 中継装置10は、端末210-1と端末220-1との間のメッセージ及び通信データを中継する。以降において、端末210-1と端末220-1との間のメッセージ及び通信データは、端末210-1、中継装置10との間の第1のTCPコネクションと、中継装置10と端末220-1との間の第2のTCPコネクションを使って中継される。HTTPのGETリクエストの場合では、端末210-1からのGETリクエストが中継装置10を介して端末220-1に送信される。逆に、端末220-1からのレスポンスメッセージ、ならびにGETで指定され取得されたファイル等のコンテンツの転送は、ネットワークコントローラ30から中継装置10を介して端末210-1に送信される。以上により、端末210-1と端末220-1との間でコンテンツに基づくルーティング処理が実現できる。
 (9)ステップS109
 最後に、端末210-1と端末220-1間の通信が終了すると、中継装置10は、該当フローが終了したことをネットワークコントローラ30に対して通知する。ネットワークコントローラ30は、フロー終了通知メッセージを受け取ると、フロー管理テーブルから該当フローの情報を削除すると共に、該当フローで使用していたTCPのポート番号を未使用とし、再度利用できるようにする。
 本発明では、中継装置10は、ネットワークコントローラ30から通知されたフローを特定する情報(TCPのポート番号)を使用してデータを転送している。そのため、フロー情報(TCPのポート番号)そのものは、経路(パス)を明示的には表していない。すなわち、フロー情報は、TCPコネクションで通過する経路を指定しない。
 また、本発明では、MPLSラベルを用いずTCP/IPヘッダの形式のままで転送ができる。
 また、本発明では、中継装置10は、フローの識別子をネットワークコントローラ30から通知してもらい、そのフロー識別子を使って中継装置10が通信をする。すなわち、中継装置10が自律的に新規のフロー識別子を割り当てるのではなく、ネットワークコントローラ30がフロー識別子を割り当てる。
 以上のように、本発明のコンテンツベーススイッチシステムは、複数の端末間の通信経路をパケットペイロードに含まれるコンテンツに基づいて決定するコンテンツベーススイッチの処理システムであって、複数の端末間の通信を所定の通信プロトコルに基づいて中継し、パケットペイロードからコンテンツ情報を抽出する中継装置と、複数の端末間を接続する1つ以上のスイッチと、中継装置ならびにスイッチの制御機能を備えるコントローラを備える。
 中継装置は、端末から受信したデータのパケットペイロードから抽出したコンテンツ情報と端末のアドレス情報をコントローラに送信する。
 コントローラは、コンテンツ情報と端末のアドレス情報に基づいて転送経路を決定する。更に、コントローラは、転送に使用するフロー情報を決定する。また、コントローラは、フロー情報と出力方路との対応表を転送経路上にあるスイッチの経路テーブルに設定する。また、コントローラは、決定されたフロー情報を中継装置に通知する。
 中継装置は、コントローラから通知されたフロー情報の識別子を用いて宛先端末まで通信を行う。
 複数の端末間の通信プロトコルがTCPである場合に、コントローラから中継装置に通知されるフロー情報の識別子として、TCPの送信元ポート番号と宛先ポート番号のいずれかもしくは両方と、宛先端末のIPアドレスとを含む。
 あるいは、コントローラから中継装置に通知されるフロー情報の識別子として、通信の端点となる二つの端末に対応するIPアドレスのうちの少なくとも1つを含む。
 また、複数の端末間の通信プロトコルがUDPである場合に、コントローラから中継装置に通知されるフロー情報の識別子として、UDPの送信元ポート番号と宛先ポート番号のいずれかもしくは両方と、宛先端末のIPアドレスとを含む。
 中継装置は、中継装置から宛先端末までの通信において、コントローラが決定するフロー情報が新規フローである場合に、決定されたフロー情報と同一のフロー(IP、UDP、TCP等)を新規に確立して宛先端末までのデータを転送する。
 中継装置から宛先端末までの通信において、コントローラにより決定されたフロー情報が使用中フローを割り当てた場合に、中継装置が既に確立済みのフローを使用して宛先端末との間のデータを転送する。
 以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
 なお、本出願は、日本出願番号2009-221454に基づく優先権を主張するものであり、日本出願番号2009-221454における開示内容は引用により本出願に組み込まれる。

Claims (18)

  1.  複数の端末間の通信経路をパケットペイロードに含まれるコンテンツに基づいて決定するコンテンツベーススイッチシステムであって、
     コントローラと、
     複数の端末間の通信を所定の通信プロトコルに基づいて中継し、前記複数の端末のいずれかの端末からデータを受信し、前記受信されたデータのパケットペイロードからコンテンツ情報を抽出し、前記抽出されたコンテンツ情報と端末のアドレス情報とを前記コントローラに送信し、前記コントローラから指定されるフロー情報を用いて宛先端末までのフローを設定する中継装置と、
     前記複数の端末間を接続するネットワーク上に少なくとも1つ存在し、前記複数の端末及び前記中継装置のうちのいずれかからデータを受信し、外部から通知されたフロー情報の識別子と出力方路との対応表に従い宛先端末まで通信を行うスイッチと
    を具備し、
     前記コントローラは、前記中継装置及び前記スイッチの制御を行い、前記コンテンツ情報と前記宛先端末のアドレス情報とに基づいて転送経路を決定し、更に転送に使用するフロー情報を決定し、フロー情報と出力方路との対応表を転送経路上にあるスイッチの経路テーブルに設定し、前記決定されたフロー情報を前記中継装置に通知する
     コンテンツベーススイッチシステム。
  2.  請求項1に記載のコンテンツベーススイッチシステムであって、
     前記複数の端末間の通信プロトコルがTCPである場合に、
     前記決定されたフロー情報の識別子は、
     TCPの送信元ポート番号及び宛先ポート番号のうちの少なくとも一方と、
     前記宛先端末のIPアドレスと
    を含む
     コンテンツベーススイッチシステム。
  3.  請求項1又は2に記載のコンテンツベーススイッチシステムであって、
     前記決定されたフロー情報の識別子は、
     通信の端点となる二つの端末に対応するIPアドレスのうちの少なくとも1つ
    を含む
     コンテンツベーススイッチシステム。
  4.  請求項1乃至3のいずれか一項に記載のコンテンツベーススイッチシステムであって、
     前記複数の端末間の通信プロトコルはUDPである場合に、
     前記決定されたフロー情報の識別子は、
     UDPの送信元ポート番号及び宛先ポート番号のうちの少なくとも一方と、
     前記宛先端末のIPアドレスと
    を含む
     コンテンツベーススイッチシステム。
  5.  請求項1乃至4のいずれか一項に記載のコンテンツベーススイッチシステムであって、
     前記中継装置は、前記決定されたフロー情報に基づいて、前記中継装置から前記宛先端末までの通信フローが新規のフローであると判断した場合に、前記決定されたフロー情報が示す通信フローと同一の通信フローを新規に確立して前記宛先端末までのデータを転送する
     コンテンツベーススイッチシステム。
  6.  請求項1乃至5のいずれか一項に記載のコンテンツベーススイッチシステムであって、
     前記中継装置は、前記決定されたフロー情報に基づいて、前記中継装置から前記宛先端末までの通信フローが使用中のフローであると判断した場合に、既に確立済みのフローを使用して前記宛先端末との間のデータを転送する
     コンテンツベーススイッチシステム。
  7.  請求項1乃至6のいずれか一項に記載のコンテンツベーススイッチシステムであって、
     前記中継装置は、
     第1の通信コネクションにより、前記複数の端末のうちのいずれかの端末から前記中継装置が持つアドレスを宛先とした接続要求パケットを受信する第1のプロトコル終端部と、
     前記接続要求パケットからアプリケーションレイヤのプロトコルペイロードを取り出し、前記プロトコルペイロードからコンテンツ情報を抽出するコンテンツ抽出部と、
     第2の通信コネクションにより、前記スイッチと通信する前記第2のプロトコル終端部と、
     前記第1の通信コネクションに関する情報として、送信元のIPアドレスと、前記中継装置側の宛先IPアドレスと、前記コンテンツ情報と、に基づいて中継要求メッセージを作成し、前記中継要求メッセージを前記コントローラに送信し、前記コントローラから応答メッセージを受信する中継要求インタフェース部と、
     前記応答メッセージで指定されるフロー情報が新規であれば、前記指定された宛先IPアドレスとプロトコルポート情報とにしたがって、前記第2のプロトコル終端部に、前記第2の通信コネクションとして新規の通信コネクションを確立するように要求し、前記応答メッセージで指定されるフロー情報がKeep Aliveであれば、前記第2のプロトコル終端部に、前記第2の通信コネクションとして前記指定された宛先IPアドレスとプロトコルポート情報とを使用しているコネクションを使用するように要求する
     コンテンツベーススイッチシステム。
  8.  請求項7に記載のコンテンツベーススイッチシステムであって、
     前記コントローラは、
     前記中継装置から前記中継要求メッセージを受信し、中継に使用するフロー情報が確定すると、前記中継装置に対して、前記確定したフロー情報を含む応答メッセージを返す中継要求インタフェース部と、
     送信元情報と、宛先情報と、コンテンツ情報と、転送ポリシーと、を関連付けて格納するための転送ポリシーテーブルと、
     宛先と、経路と、QoS情報と、を関連付けて格納するためのフロー管理テーブルと、
     前記中継要求メッセージに含まれる送信元情報と、宛先情報と、コンテンツ情報と、に基づいて、前記転送ポリシーテーブルを検索し、転送ポリシーを取得し、前記転送ポリシーに基づいて、宛先、経路、QoS情報を決定し、前記転送ポリシーにおいてキープアライブを使用するか否か判断し、キープアライブを使用する場合は、同一の宛先、経路、QoSを適用しているパスを、前記宛先、前記経路、前記QoS情報をキーとして前記フロー管理テーブルを検索し、同一のフローが存在するか否か判断し、同一のフローが存在した場合は、既存のフロー情報を取得し、同一のフローが存在しない場合、及びキープアライブを使用しない場合は、新規フローを割り当て、中継に使用するフロー情報を確定する経路判定部と、
     前記新規フローを割り当てた場合は、前記新規フローのフロー情報に対応するフローエントリーを経路上のスイッチに対して設定する経路設定部と
    を具備する
     コンテンツベーススイッチシステム。
  9.  請求項1乃至8のいずれか一項に記載のコンテンツベーススイッチシステムで使用される中継装置。
  10.  請求項1乃至8のいずれか一項に記載のコンテンツベーススイッチシステムで使用されるスイッチ。
  11.  請求項1乃至8のいずれか一項に記載のコンテンツベーススイッチシステムで使用されるコントローラ。
  12.  複数の端末間の通信経路をパケットペイロードに含まれるコンテンツに基づいて決定するコンテンツベーススイッチ方法であって、
     中継装置により、複数の端末間の通信を所定の通信プロトコルに基づいて中継し、パケットペイロードからコンテンツ情報を抽出し、前記抽出されたコンテンツ情報と端末のアドレス情報とをコントローラに送信し、
     前記複数の端末間を接続するネットワーク上に少なくとも1つ存在するスイッチにより、前記複数の端末及び前記中継装置のうちのいずれかからデータを受信し、
     前記コントローラにより、前記中継装置及び前記スイッチの制御を行い、前記コンテンツ情報と前記宛先端末のアドレス情報とに基づいて転送経路を決定し、更に転送に使用するフロー情報を決定し、フロー情報と出力方路との対応表を転送経路上にあるスイッチの経路テーブルに設定し、前記決定されたフロー情報を前記中継装置に通知し、
     前記中継装置により、前記コントローラから通信されたフロー情報を用いて宛先端末までのフローを設定し、
     前記スイッチにより、前記コントローラから通知されたフロー情報の識別子を用いて宛先端末まで通信を行う
     コンテンツベーススイッチ方法。
  13.  請求項12に記載のコンテンツベーススイッチ方法であって、
     前記複数の端末間の通信プロトコルがTCPである場合に、
     前記決定されたフロー情報の識別子は、
     TCPの送信元ポート番号及び宛先ポート番号のうちの少なくとも一方と、
     前記宛先端末のIPアドレスと
    を含む
     コンテンツベーススイッチ方法。
  14.  請求項12又は13に記載のコンテンツベーススイッチ方法であって、
     前記決定されたフロー情報の識別子は、
     通信の端点となる二つの端末に対応するIPアドレスのうちの少なくとも1つ
    を含む
     コンテンツベーススイッチ方法。
  15.  請求項12乃至14のいずれか一項に記載のコンテンツベーススイッチ方法であって、
     前記複数の端末間の通信プロトコルはUDPである場合に、
     前記決定されたフロー情報の識別子は、
     UDPの送信元ポート番号及び宛先ポート番号のうちの少なくとも一方と、
     前記宛先端末のIPアドレスと
    を含む
     コンテンツベーススイッチ方法。
  16.  請求項12乃至15のいずれか一項に記載のコンテンツベーススイッチ方法であって、
     前記中継装置により、前記決定されたフロー情報に基づいて、前記中継装置から前記宛先端末までの通信フローが新規のフローであると判断された場合に、前記決定されたフロー情報が示す通信フローと同一の通信フローを新規に確立して前記宛先端末までのデータを転送する
     コンテンツベーススイッチ方法。
  17.  請求項12乃至16のいずれか一項に記載のコンテンツベーススイッチ方法であって、
     前記中継装置により、前記決定されたフロー情報に基づいて、前記中継装置から前記宛先端末までの通信フローが使用中のフローであると判断された場合に、既に確立済みのフローを使用して前記宛先端末との間のデータを転送する
     コンテンツベーススイッチ方法。
  18.  請求項12乃至17のいずれか一項に記載のコンテンツベーススイッチ方法における中継装置、スイッチ及びコントローラのいずれかの動作を、計算機に実行させるためのプログラムを格納した記憶媒体。
PCT/JP2010/066311 2009-09-25 2010-09-21 コンテンツベーススイッチシステム、及びコンテンツベーススイッチ方法 WO2011037105A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011532995A JP5621778B2 (ja) 2009-09-25 2010-09-21 コンテンツベーススイッチシステム、及びコンテンツベーススイッチ方法
US13/498,101 US8971339B2 (en) 2009-09-25 2010-09-21 Contents base switching system and contents base switching method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009221454 2009-09-25
JP2009-221454 2009-09-25

Publications (1)

Publication Number Publication Date
WO2011037105A1 true WO2011037105A1 (ja) 2011-03-31

Family

ID=43795852

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/066311 WO2011037105A1 (ja) 2009-09-25 2010-09-21 コンテンツベーススイッチシステム、及びコンテンツベーススイッチ方法

Country Status (3)

Country Link
US (1) US8971339B2 (ja)
JP (1) JP5621778B2 (ja)
WO (1) WO2011037105A1 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012141086A1 (ja) * 2011-04-15 2012-10-18 日本電気株式会社 コンピュータシステム、コントローラ、及びネットワークアクセスポリシ制御方法
JP2013070183A (ja) * 2011-09-21 2013-04-18 Nec Corp 通信装置、制御装置、通信システム、通信制御方法及びプログラム
WO2013146885A1 (ja) * 2012-03-28 2013-10-03 日本電気株式会社 通信システム、上位レイヤスイッチ、制御装置、スイッチ制御方法及びプログラム
JP2014039141A (ja) * 2012-08-15 2014-02-27 Nec Corp アプリケーション通信制御システムおよびアプリケーション通信制御方法
EP2759101A1 (en) * 2011-09-22 2014-07-30 NEC Corporation Communication terminal, communication method, and program
KR101562789B1 (ko) * 2015-03-20 2015-10-23 (주)루먼텍 Hd/uhd급 멀티채널 비디오 라우팅 겸용 스위칭 방법 및 그 장치
KR101600865B1 (ko) * 2015-03-20 2016-03-08 (주)루먼텍 스튜디오용 hd/uhd급 멀티채널 영상 데이터 라우팅 스위치 시스템 및 그 방법
JP2016525825A (ja) * 2013-06-08 2016-08-25 華為技術有限公司Huawei Technologies Co.,Ltd. ルーティング及び転送の方法、装置、及びシステム
JP2017519450A (ja) * 2014-06-26 2017-07-13 華為技術有限公司Huawei Technologies Co.,Ltd. ソフトウェア定義ネットワーク化のためのサービス品質制御方法及びデバイス
KR101852596B1 (ko) 2018-02-19 2018-04-27 보은전자방송통신(주) 다수의 믹서 출력을 갖는 멀티 채널 비디오 스위칭 장치

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012060316A1 (ja) * 2010-11-01 2012-05-10 日本電気株式会社 通信システム、制御装置、パケット転送経路の制御方法およびプログラム
EP2665229B1 (en) 2011-01-13 2018-10-17 Nec Corporation Network system and routing method
ES2640871T3 (es) * 2011-09-21 2017-11-07 Nec Corporation Aparato de comunicación, sistema de comunicación, método de control de comunicación y programa
ES2660738T3 (es) * 2012-10-10 2018-03-26 Nec Corporation Nodo de comunicaciones, sistema de comunicaciones, dispositivo de control, método de transferencia de paquetes, y programa
US9548920B2 (en) * 2012-10-15 2017-01-17 Cisco Technology, Inc. System and method for efficient use of flow table space in a network environment
US9009349B2 (en) 2013-02-08 2015-04-14 Dell Products, Lp System and method for dataplane extensibility in a flow-based switching device
EP3010278B1 (en) * 2013-06-13 2019-01-09 Nec Corporation Control method and control device for service quality in communication system, and communication device
KR102130301B1 (ko) * 2013-06-27 2020-07-08 에스케이텔레콤 주식회사 컨텐츠 전송 시스템에서 데이터 분산을 위한 장치 및 이를 위한 방법
WO2015010256A1 (zh) 2013-07-23 2015-01-29 华为技术有限公司 一种报文转发方法及设备
WO2015026809A1 (en) * 2013-08-19 2015-02-26 Centurylink Intellectual Property Llc Network management layer - configuration management
EP3044933B1 (en) * 2013-09-12 2019-01-09 Nec Corporation A method for operating an information-centric network and network
US9787586B2 (en) 2013-10-24 2017-10-10 University Of Houston System Location-based network routing
CN104838624B (zh) * 2013-11-22 2017-12-08 华为技术有限公司 一种控制业务数据在虚拟网络中转发的方法、装置及系统
CN105247831B (zh) * 2014-01-23 2018-10-30 华为技术有限公司 流表修改方法、流表修改装置和开放流网络系统
US20150363423A1 (en) * 2014-06-11 2015-12-17 Telefonaktiebolaget L M Ericsson (Publ) Method and system for parallel data replication in a distributed file system
TWI562661B (en) 2015-08-27 2016-12-11 Ind Tech Res Inst Cell and method and system for bandwidth management of backhaul network of cell
WO2017199704A1 (ja) * 2016-05-17 2017-11-23 日本電信電話株式会社 経路計算制御装置及び経路計算制御方法
CN108306831B (zh) * 2017-01-13 2021-12-03 华为技术有限公司 选路方法及装置
WO2019046214A1 (en) 2017-08-28 2019-03-07 Sigma Designs, Inc. EXTERNAL MICROCONTROLLER COMMUNICATIONS
US11502873B2 (en) * 2018-03-07 2022-11-15 Sumitomo Electric Industries, Ltd. Switch device, vehicle-mounted communication device, vehicle-mounted communication system, time correction method, and time correction program
CN110390020A (zh) * 2018-04-19 2019-10-29 株式会社日立制作所 语义网关的建模方法和语义网关
CN116366530A (zh) * 2023-04-23 2023-06-30 北京火山引擎科技有限公司 一种流表老化方法、装置、计算机设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002094561A (ja) * 2000-09-19 2002-03-29 Nippon Telegr & Teleph Corp <Ntt> 意味情報ネットワーク、意味情報スイッチ、意味情報ルータ、意味情報ゲートウェイ、イベントルーティング方法、及びイベントルーティング装置
JP2002124976A (ja) * 2000-10-18 2002-04-26 Nec Corp インタードメインルーティング装置
JP2004304456A (ja) * 2003-03-31 2004-10-28 Fujitsu Ltd ネットワークシステム,同システムにおけるパス設定方法並びに同システムに用いられるネットワーク管理装置及びネットワーク装置
JP2006203904A (ja) * 2005-01-21 2006-08-03 Nec Corp 方法、コンテンツベースルータ、コンテンツベースネットワーク

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001067690A1 (fr) 2000-03-07 2001-09-13 Nippon Telegraph And Telephone Corporation Reseau d'information semantique
US7301952B2 (en) * 2000-04-06 2007-11-27 The Distribution Systems Research Institute Terminal-to-terminal communication connection control method using IP transfer network
JP2004140539A (ja) * 2002-10-17 2004-05-13 Hitachi Ltd 情報ルーティング方式および情報中継装置
JP4627669B2 (ja) * 2005-03-16 2011-02-09 アラクサラネットワークス株式会社 パケット転送装置およびその転送制御方式
JP4626811B2 (ja) 2005-09-29 2011-02-09 日本電気株式会社 ポートホッピング検出システム、ポートホッピング検出装置、ポートホッピング検出方法、及びプログラム
JP4922972B2 (ja) * 2008-03-13 2012-04-25 株式会社日立製作所 通信システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002094561A (ja) * 2000-09-19 2002-03-29 Nippon Telegr & Teleph Corp <Ntt> 意味情報ネットワーク、意味情報スイッチ、意味情報ルータ、意味情報ゲートウェイ、イベントルーティング方法、及びイベントルーティング装置
JP2002124976A (ja) * 2000-10-18 2002-04-26 Nec Corp インタードメインルーティング装置
JP2004304456A (ja) * 2003-03-31 2004-10-28 Fujitsu Ltd ネットワークシステム,同システムにおけるパス設定方法並びに同システムに用いられるネットワーク管理装置及びネットワーク装置
JP2006203904A (ja) * 2005-01-21 2006-08-03 Nec Corp 方法、コンテンツベースルータ、コンテンツベースネットワーク

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9065815B2 (en) 2011-04-15 2015-06-23 Nec Corporation Computer system, controller, and method of controlling network access policy
WO2012141086A1 (ja) * 2011-04-15 2012-10-18 日本電気株式会社 コンピュータシステム、コントローラ、及びネットワークアクセスポリシ制御方法
JP5660202B2 (ja) * 2011-04-15 2015-01-28 日本電気株式会社 コンピュータシステム、コントローラ、及びネットワークアクセスポリシ制御方法
JP2013070183A (ja) * 2011-09-21 2013-04-18 Nec Corp 通信装置、制御装置、通信システム、通信制御方法及びプログラム
US10412001B2 (en) 2011-09-22 2019-09-10 Nec Corporation Communication terminal, communication method, and program
EP2759101A1 (en) * 2011-09-22 2014-07-30 NEC Corporation Communication terminal, communication method, and program
EP2759101A4 (en) * 2011-09-22 2015-03-11 Nec Corp COMMUNICATION TERMINAL, COMMUNICATION METHOD, AND PROGRAM THEREOF
US9515926B2 (en) 2012-03-28 2016-12-06 Nec Corporation Communication system, upper layer switch, control apparatus, switch control method, and program
JPWO2013146885A1 (ja) * 2012-03-28 2015-12-14 日本電気株式会社 通信システム、上位レイヤスイッチ、制御装置、スイッチ制御方法及びプログラム
WO2013146885A1 (ja) * 2012-03-28 2013-10-03 日本電気株式会社 通信システム、上位レイヤスイッチ、制御装置、スイッチ制御方法及びプログラム
JP2014039141A (ja) * 2012-08-15 2014-02-27 Nec Corp アプリケーション通信制御システムおよびアプリケーション通信制御方法
JP2016525825A (ja) * 2013-06-08 2016-08-25 華為技術有限公司Huawei Technologies Co.,Ltd. ルーティング及び転送の方法、装置、及びシステム
US9948550B2 (en) 2013-06-08 2018-04-17 Huawei Technologies Co., Ltd. Method, apparatus, and system for routing and forwarding
JP2017519450A (ja) * 2014-06-26 2017-07-13 華為技術有限公司Huawei Technologies Co.,Ltd. ソフトウェア定義ネットワーク化のためのサービス品質制御方法及びデバイス
US10313266B2 (en) 2014-06-26 2019-06-04 Huawei Technologies Co., Ltd. Quality of service control method and device for software-defined networking
US10848437B2 (en) 2014-06-26 2020-11-24 Huawei Technologies Co., Ltd. Quality of service control method and device for software-defined networking
KR101562789B1 (ko) * 2015-03-20 2015-10-23 (주)루먼텍 Hd/uhd급 멀티채널 비디오 라우팅 겸용 스위칭 방법 및 그 장치
KR101600865B1 (ko) * 2015-03-20 2016-03-08 (주)루먼텍 스튜디오용 hd/uhd급 멀티채널 영상 데이터 라우팅 스위치 시스템 및 그 방법
KR101852596B1 (ko) 2018-02-19 2018-04-27 보은전자방송통신(주) 다수의 믹서 출력을 갖는 멀티 채널 비디오 스위칭 장치

Also Published As

Publication number Publication date
US8971339B2 (en) 2015-03-03
JPWO2011037105A1 (ja) 2013-02-21
JP5621778B2 (ja) 2014-11-12
US20120263186A1 (en) 2012-10-18

Similar Documents

Publication Publication Date Title
JP5621778B2 (ja) コンテンツベーススイッチシステム、及びコンテンツベーススイッチ方法
JP5757324B2 (ja) コンピュータシステム、及び通信方法
US9215175B2 (en) Computer system including controller and plurality of switches and communication method in computer system
US8930552B2 (en) Application switch system and application switch method
JP4537357B2 (ja) 加入者情報ストリングに基づいたvlanインターフェイスの動的な構築
WO2011087085A1 (ja) 計算機、ネットワーク接続切替え方法およびプログラム
JP5743906B2 (ja) 通信制御システム
JP2004080487A (ja) パケット転送装置、パケット転送方法解決サーバ、dnsサーバ、ネットワークシステム及びプログラム
JP2015508967A (ja) コントローラでネットワークパケット転送を管理するシステム及び方法
JP2014533001A (ja) 転送装置の制御装置、転送装置の制御方法、通信システムおよびプログラム
WO2014049432A2 (en) Method operating in a fixed access network and ues
JPWO2013147193A1 (ja) ネットワークアプライアンス冗長化システム、制御装置、ネットワークアプライアンス冗長化方法及びプログラム
JP5725236B2 (ja) 通信システム、ノード、パケット転送方法およびプログラム
CN103460676A (zh) 通过查询远程服务器的流路由协议
JP2016225783A (ja) 仮想ネットワークシステムおよび仮想ネットワーク経路設定方法
KR20210016802A (ko) 소프트웨어 정의 네트워킹 환경에서 서버-클라이언트 기반의 네트워크 서비스를 위한 플로우 테이블을 최적화하는 방법 및 이를 위한 sdn 스위치
US7796614B1 (en) Systems and methods for message proxying
KR101755829B1 (ko) Sdn 환경에서 arp 처리 방법 및 장치
WO2013062070A1 (ja) 制御装置、通信システム、仮想ネットワークの管理方法およびプログラム
US10044671B2 (en) Control apparatus, communication system, communication method, and program
JP2006245894A (ja) 転送経路制御装置および転送経路制御プログラム
JP4242262B2 (ja) 通信システム及び端末
WO2023093786A1 (zh) 一种引流的方法、设备及系统
JP6424496B2 (ja) パケット転送システム,及びパケット転送装置
JP2006245896A (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: 10818778

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13498101

Country of ref document: US

Ref document number: 2011532995

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10818778

Country of ref document: EP

Kind code of ref document: A1