[go: up one dir, main page]

WO2006064561A1 - Virtual private network system - Google Patents

Virtual private network system Download PDF

Info

Publication number
WO2006064561A1
WO2006064561A1 PCT/JP2004/018794 JP2004018794W WO2006064561A1 WO 2006064561 A1 WO2006064561 A1 WO 2006064561A1 JP 2004018794 W JP2004018794 W JP 2004018794W WO 2006064561 A1 WO2006064561 A1 WO 2006064561A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual
tcp
lan card
data
hub
Prior art date
Application number
PCT/JP2004/018794
Other languages
French (fr)
Japanese (ja)
Inventor
Daiyuu Nobori
Original Assignee
Softether Corporation
Mitsubishi Materials Corporation
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 Softether Corporation, Mitsubishi Materials Corporation filed Critical Softether Corporation
Priority to PCT/JP2004/018794 priority Critical patent/WO2006064561A1/en
Publication of WO2006064561A1 publication Critical patent/WO2006064561A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]

Definitions

  • the present invention relates to a virtual private network system that forms a virtual private network on a network.
  • a LAN Local Area Network
  • a facility company, school, hospital, etc.
  • a database for sharing the data of each computer. Used for data sharing and transmission / reception.
  • each computer connected to the LAN has a private IP address as a terminal, and for connecting to an external network (Internet), a NAT (Network Address) set on a server with a router function is used. Translation), firewall, and HTTP (HyperText Transfer Protocol) proxy.
  • TCPZIP Transmission Control
  • Patent Document 1 Japanese Patent Laid-Open No. 2000-224219
  • TCP over TCP is a technique for realizing VPN by using the TCP / IP protocol as a transmission means for encapsulating virtual network packets that may use the TCP / IP protocol.
  • TCP / IP protocol a transmission means for encapsulating virtual network packets that may use the TCP / IP protocol.
  • the conventional tunneling technology uses TCP / IP for data transmission, this IP packet can be streamed when transferring IP packets in Layer 2 over TCP or Layer 3 over TCP.
  • the protocol for realizing VPN communication is executed by TCP-based connection.
  • the TCP / IP packet storing the data to be transmitted is given a sequence number in the order of transmission from the sender, and the bandwidth by the route the IP packet is sent to If the arrival order changes due to differences or delays, the receiving side rearranges the data in the order of the sequence number and compensates for the data. Do what you want.
  • This time-out time is increased every time a TCP / IP packet does not reach and times out.
  • the lower layer to be encapsulated is SSH (Secure Shell)
  • the upper layer to be encapsulated is PPP (Point to Point)
  • TCP communication HTTP or POP3 which is PPP
  • HTTP or POP3 which is PPP
  • the upper layer and the lower layer have timers with different timeout periods, and each tries to adjust the timeout period independently. Therefore, these adjustments do not work well in TCP over TCP. Transmission performance will be degraded.
  • Socket Layer cannot be used, so session management and IP packet encryption. Digital signatures must be implemented by other methods than SSL.
  • IP layer IP layer, etc.
  • IP routing is required to connect LANN networks over the Internet. Necessary.
  • the present invention has been made in view of such circumstances, and via a LAN with many restrictions on communication between external networks, between the Internet and a computer in another LAN.
  • the purpose is to provide a virtual private network (VPN) system that connects the lines and operates at a practical data transfer rate.
  • VPN virtual private network
  • the present invention In the virtual private network system, the present invention generates a virtual MAC frame in which the MAC address of a destination virtual LAN card and its own MAC address as a transmission source are added to the data to be transmitted. Convert the virtual LAN card to be converted into stream data and encapsulate it, and divide the stream data and assign the Virtual Hub IP address. Generate a destination IP packet and send it to the information communication network.
  • a client terminal equipped with a TCP / IP stack, a connection port number for switching control, and a connected virtual
  • a correspondence table with the MAC address of the LAN card is provided.
  • the stream data is restored, the MAC address of the transmission destination and the transmission source is referred to, and the connection port corresponding to the transmission destination MAC address is restored.
  • a server device mounted with a virtual hub that transmits stream data in IP packets.
  • the present invention is characterized in that, in the virtual private network system, when the virtual LAN card generates a virtual MAC frame, at least a sign ⁇ or a digital signature or both are performed.
  • Item 1 Virtual private network system.
  • the present invention is characterized in that, in the virtual private network system, when the virtual HUB generates a MAC frame, at least encryption and / or electronic signature processing is performed.
  • the present invention is characterized in that, in the virtual private network system, a plurality of TCP / IP connections are provided for one session established between the virtual LAN card card and the virtual HUB. .
  • the present invention detects a state variable indicating a quality state of each TCP / IP connection in a plurality of TCP / IP connections in the virtual LAN card card / session, and obtains the best quality state.
  • the MAC frame is output to the TCP / IP connection.
  • the present invention provides the virtual private network system, wherein the virtual hub includes a transmission queue that serially shifts input MAC frames in the order of input and outputs from the oldest input order.
  • the number of MAC frames accumulated in the transmission queue is detected, and according to the number of MAC frames, input MAC frames are discarded at a predetermined rate, and the amount of MAC frames input to the transmission queue is controlled.
  • the present invention provides the virtual private network system in which the virtual hub holds a communication amount for each transmission source as a state variable, and MAC frames from a transmission source exceeding a preset set amount are transmitted at a predetermined rate. It is characterized by discarding at.
  • the present invention releases the encapsulation of the IP packet input from the Virtual Hub, extracts a virtual MAC frame, and sets the destination IP address of the virtual MAC frame after the release.
  • the virtual MAC frame data is rearranged in the order of the sequence number of the TCP header and sent to the terminal having the destination IP address in order, while the data input from the terminal is set in a predetermined data unit.
  • a virtual LAN frame having a NAT function unit that divides and configures a virtual MAC frame by adding a destination IP address, converts the MAC frame into force, and sends it to the virtual hub is provided. To do.
  • VPN virtual private network
  • FIG. 1 is a conceptual diagram illustrating a configuration example of a general communication system for explaining communication between application programs.
  • FIG. 2 is a conceptual diagram illustrating the data flow when data communication between computers is performed using the TCP / IP protocol.
  • FIG. 3 is a conceptual diagram illustrating the flow of processing for specifying a communication destination in a TCP / IP connection.
  • FIG. 4 is a conceptual diagram showing the relationship between a TCP / IP server program and a TCP / IP client program.
  • FIG. 5 is a conceptual diagram showing a configuration example of a communication system VPN system according to an embodiment of the present invention.
  • FIG. 6 is a conceptual diagram illustrating the configuration of a virtual LAN configured on a network in the VPN system of the present invention.
  • FIG. 7 is a conceptual diagram for explaining a method of exchanging MAC frames by the physical switching HUB158.
  • FIG. 8 is a conceptual diagram for explaining a method of virtual MAC frame exchange by the VPN system of the present invention.
  • FIG. 9 is a conceptual diagram simply showing the server / client relationship between the virtual hub 31 and the virtual LAN cards 11, 21,.
  • FIG. 10 is a conceptual diagram showing sequence processing when data is transmitted / received between a virtual LAN card and a virtual HUB for explaining the SE protocol sequence in the VPN system of the present invention.
  • FIG. 11 is a conceptual diagram of virtual LAN strength for explaining the processing of the encapsulation unit in the virtual LAN card.
  • FIG. 12 is a conceptual diagram showing a configuration example of a Virtual HUB for explaining processing of a Virtual HUB encapsulation unit in the VPN system of the present invention.
  • FIG. 13 is a block diagram showing a configuration example of a capsule capsule unit in FIG.
  • FIG. 14 is a conceptual diagram illustrating the MAC frame combining process of the combining unit 60 in FIG. 13.
  • FIG. 15 is a conceptual diagram illustrating the extension data adding process of the extension processing unit 61 in FIG.
  • FIG. 16 is a conceptual diagram for explaining the security information attaching process of the security information adding unit 62 in FIG.
  • FIG. 17 is a block diagram showing a configuration example of capsule capsule release units 19 and 48 in FIG. 12.
  • FIG. 18 is a conceptual diagram showing the operation of the switching process of the virtual MAC frame switching processing unit 49.
  • FIG. 20 is a conceptual diagram showing a connection relationship between a LAN card 181 and a LAN card 182 connected via a low-speed communication line (10 Mbps), a switching HUB 158, and a high-speed communication line (100 Mbps).
  • FIG. 21 is a conceptual diagram showing a configuration example of a Virtual HUB provided with a congestion control unit 300.
  • FIG. 22 is a conceptual diagram showing a configuration example of a VPN system according to the present invention.
  • FIG. 23 is a conceptual diagram showing a configuration example of a VPN system of the present invention having a bridge connection.
  • FIG. 24 is a conceptual diagram of a configuration for establishing transmission / reception by establishing a plurality of TCP / IP connections for one SE session in the VPN system of the present invention.
  • FIG. 25 is a conceptual diagram of the configuration of a computer on which NAT is implemented to explain the operation of NAT.
  • FIG. 26 is a conceptual diagram showing a system configuration of remote access using a virtual LAN card and NAT.
  • FIG. 27 is a conceptual diagram showing a system configuration for explaining the configuration and operation of a user NAT program in the embodiment of the present invention.
  • Virtual LAN card (virtual LAN card program)
  • TCP / IP stack (TCP / IP protocol
  • the present invention is a virtual private network system that installs (implements) a network device as an application program in a terminal (personal computer or the like) or a server, configures a virtual device, and performs VPN communication.
  • the devices to be virtualized correspond to LAN cards and HUBs that support Ethernet (registered trademark) and IEEE 802.3 standard protocols, which are virtual LAN cards and virtual hubs, respectively.
  • the present invention configures an Ethernet (registered trademark) or IEEE802.3 standard virtual network on a physical information communication network including the Internet, and performs VPN communication using this network. Do.
  • the virtual LAN card program is a virtual LAN card
  • the virtual hub program has a configuration that physically exists as a virtual hub.
  • IEEE802.3 is a kind of layer 2 frame exchange method generally known as Ethernet (registered trademark) and its extended standard.
  • a LAN LAN card and a switching HUB that are actually configured corresponding to a Virtual HUB and a Virtual LAN card that configure a virtual LAN on the network are connected to a physical LAN. Describe as a card and switching hub.
  • NAT Network Address Port Translation
  • plurality refers to one or more items.
  • the TCP / IP stack and the TCP / IP protocol stack are used in the same meaning, and the protocol stack is an arbitrary protocol stack of layer 3 (L3) or higher (regardless of TCP / IP).
  • L3 layer 3
  • FIG. 1 is a conceptual diagram illustrating a configuration example of a general communication system for explaining communication between application programs.
  • communication is realized by exchanging data based on the data exchange method of the application program that is to communicate.
  • an application program installed in each computer to communicate with performs communication processing by a predetermined compatible method (protocol).
  • Each application program runs on a computer that is remote from each other, and data communication between them, for example, the application program 100 running on the sender's computer A is received by the recipient's computer B. It tries to communicate with the application program 101 that operates above.
  • the data 107 to be transmitted is passed to the communication control program 102 that performs the application program 100 power communication control.
  • the communication control program 102 When the communication control program 102 cannot send the data 107 to be transmitted directly to the physical line 106, for example, when the amount of data that can be transmitted in the transmission protocol is exceeded, the communication control program 102 It is divided into relatively small chunks of data called packets that can be sent and received above.
  • the communication control program 102 divides the data 107 into packets 109 of a predetermined amount of data (number of bits), converts the format into a format that can be processed by the communication hardware 104, and performs physical processing. Output to computer B via line 106.
  • the communication hardware 104 receives the packet from the packet communication program 102 and sends it out to the connected physical line 106 as an electronic signal.
  • the physical line 106 may be a single copper wire or a frame exchange installed between the communication hardware 104 and 111.
  • routers and packet switches and various other hardware are inserted, and they are combined to deliver a packet to another specified node at a remote location. Or a set of networks including routing processing. In general, there are local area networks (LAN) and the Internet.
  • LAN local area networks
  • the communication hardware 111 receives a packet as an electrical signal via (via) the physical line 106
  • the communication hardware 111 converts it into a packet 110 as logical data, and the communication control program. Is output to 103.
  • the communication control program 103 combines the input packet 110 by the reverse method that the communication program 102 divides, and uses the received data 108 as an application. Output to Chillon Program 101.
  • the data 108 is converted into a configuration corresponding to the data 107 that the application program 100 on the sender side wishes to transmit.
  • the application program 101 is input as data 108 equivalent to the data 107 output from the application program 100.
  • the data transmitted by the application program 100 reaches the power 107 and the application program 101.
  • the above method is generally applicable to communication between applications using any communication protocol.
  • the TCP / IP protocol used as the basis of communication in the present invention is also used to communicate between applications (or computers) at remote locations as shown in FIG. The method is often used.
  • Fig. 2 is a conceptual diagram illustrating the data flow when data communication between computers is performed using the TCP / IP protocol.
  • TCP / IP is a reliable bi-directional stream data.
  • the stream data transfer service is a connection between two application programs (computers) (two sets of IP address and port number of one node and IP address and port number of one node). If a program that wants to send data sends data in multiple steps, the program that tries to receive the data can be received without changing the content and order of the data. And in fact, the data is going to be received even if it is going to be transmitted or may be divided in the transmission process.
  • a program is a data transfer service that does not need to depend on data delimiters. Stream data refers to data transferred by the transfer service.
  • stream data to be transmitted / received starts at a certain point in time, but the transmission side program does not declare the end, or the reception side program stops receiving, or the computer The network will not be terminated until either time when the network is disconnected.
  • the application program 100 transmits stream data 115 of a predetermined length at a time to the application program 101 (reception side program).
  • the application program 101 has the following character string data
  • the function may be divided as follows on the sending side by the TCP / IP stack program 117, which is one of the function programs that communicate with the TCP / IP protocol included in the OS.
  • the TCP / IP stack program 118 of the computer that has received all of the packets thus divided automatically combines the contents of the original character string.
  • FIG. 2 an application program 115, which operates on the computers A and B connected by the IP network 119 and attempts to communicate using the TCP / IP protocol, An example will be described in which an arbitrary stream data is transmitted / received between 116.
  • IP packets 120 having a predetermined amount of data, and a TCP header and an IP header are added (according to the RFC specification of TCP / IP).
  • the TCP / IP stack program 117 outputs the plurality of dividedly generated IP packets 120 to the driver 121 of the physical network interface.
  • the physical network interface driver 121 is a program for controlling a physical network interface device (noware) 123 such as a LAN card or a modem.
  • the IP network 119 has a function to directly transmit the IP packet 102 when viewed as physical wiring.
  • the driver 121 converts the IP packet 120 into a packet of a different format for each physical layer called a frame, that is, a packet that can be easily handled as an electric signal (hereinafter referred to as a frame 122).
  • the driver 121 converts the IP packet 120 into a frame 122 for transmission to the IP network 119, and converts the frame 122 into the physical network interface device 12.
  • the network interface device 123 converts the input frame 122 into an electrical signal and sends it to the existing physical IP network 119.
  • the process of converting the IP packet 120 into the frame 122 may be performed by the TCP / IP stack program 117 without being performed by the driver 121, or may be performed by the physical network interface device 123. .
  • IP packet 120 (frame 122) is propagated to the computer having the destination IP address described in the IP header of each IP packet 120. arrive.
  • this frame 122 reaches the destination computer B (the final destination application program 101 of the IP packet 120 is activated)
  • the network interface device 124 is converted from the IP network 119 into an electrical signal.
  • Frame 122 is received and output to driver 126 as frame 125.
  • the driver 126 extracts the IP packet 127 from the frame 125 force, and outputs it to the TCP / IP stack program 118 by processing reverse to that on the transmission side.
  • the TCP / IP stack program 118 refers to the IP header and TCP header in the input IP packet 127 by the method defined in the RFC specification of the TCP / IP protocol, and Referring to the destination information such as the port number, the destination application program 101 is determined, and the application program 101 is converted into stream data 116 having the same data format as stream data 115 (that is, restoration). To do.
  • the TCP / IP stack program 118 performs the reverse process of dividing the stream data 115 into a plurality of IP packets 120 performed by the TCP / IP stack program 117.
  • the connection is made based on the information indicating the transmission order of the TCP header, and the stream data 116 (that is, the stream data 115) is restored.
  • the TCP / IP stack program 118 outputs the restored stream data 116 to the application program 101.
  • the stream data 115 (stream data 116) can be transmitted and received between the application programs 100 and 101 using the TCP / IP protocol.
  • the application program 100 transmits the single stream data to the application program 101 between the two computers A and B as an example.
  • the TCP / IP protocol provides a plurality of stream data transfer services that do not interfere with each other's contents, and actually uses one physical communication line or network interface device. It has a multiplexing function that can be done via.
  • a logical set of stream data transfer services in this case, that is, a data transmission / reception path (communication line) between the application program 100 and the application program 101 is called a “TCP / IP connection”.
  • the application program 100 only transmits stream data to the application program 101 by communication using the TCP / IP protocol.
  • the reverse direction is used. This transmission process can also be performed in parallel with the forward transmission process. That is, the TCP / IP connection is a bidirectional connection.
  • Full duplex communication can be performed.
  • each application program that is a party of communication is a 16-bit numerical value to distinguish the application program that is currently connected and the communication destination application program in the TCP / IP connection from the other communication destination application programs.
  • the other party is identified by the identification information. This is the port number in the identification information STCP header.
  • FIG. Figure 3 is a conceptual diagram illustrating the flow of processing for identifying the communication destination in a TCP / IP connection. It is.
  • Two application programs 131 and 132 are running on the computer B to identify the communication destination by the TCP / IP connection, and the application program 131 is an application program using the port number X on the computer A.
  • One application program 132 communicates with the application program using port number Y on computer A by establishing a separate TCP / IP connection.
  • the application program 131 generates stream data 138 to be transmitted to the port number X of the computer A, outputs the stream data 138 to the TCP / IP protocol stack 135, and transmits the stream data 138 to the port number X of the computer A. Instruct to send.
  • the application program 132 At almost the same time, the application program 132 generates stream data to be transmitted to the port number Y of the computer A, outputs it to the TCP / IP protocol stack 135, and transmits the stream data 139 to the port Y of the computer A. Instruct.
  • the TCP / IP protocol stack 135 divides each stream data 138 and 139 input from both application programs 131 and 132 into sizes that can be transmitted, and generates IP packets 133 and 134.
  • the TCP / IP protocol stack 135 then adds the port number of the destination computer A, the sequence number indicating the transmission order, the IP address of the destination computer A, etc. Generate multiple IP packets (IP packets 133, 134) with IP headers including
  • the TCP / IP protocol stack 135 outputs the generated IP packets to the network interface driver 137 in the order in which the processing is completed or in an arbitrary order.
  • the network interface device 137f is controlled to the network interface device, and the IP packet is transmitted to the network and the IP network via the network interface device.
  • the TCP / IP protocol stack 135 implemented in the computer A uses the destination application based on the port number included in the IP packet. For each program, Is reconstructed and output to the corresponding application program.
  • TCP is sent via the network interface device and network interface driver in the opposite direction.
  • IP comes into the protocol stack.
  • the TCP / IP protocol stack refers to the IP header and TCP header of each IP packet, and extracts the IP address, the destination IP address, the source port number, and the destination port number of the transmission source computer A.
  • the TCP / IP protocol stack uses the data obtained by removing the IP header and TCP header for each set of connections based on the sequence number in the TCP header. Connect together.
  • the TCP / IP protocol stack sends the reconfigured stream data to the corresponding port number, that is, to the first application program 131 if the data arrives from port X of computer A. If the data arrives from port Y of computer A, it is output to the second application program 132, respectively.
  • the TCP / IP packet header includes a source IP address, a source port number, a destination IP address, a destination port number, a sequence number, a harmed
  • a TCP / IP connection is a logical connection that provides a two-way stream data transfer that is recognized by a program on the node that is trying to communicate or is doing so. It is distinguished from other connections by a set of four pieces of information: IP address, source port number, destination IP address, and destination port number.
  • the above sequence number is a regular number added by the sender when the stream data, which was originally a series of data flows, is divided into packets, and the received communication such as the TCP / IP protocol stack is received. It is used by the control program to reconstruct the divided packet power stream data.
  • communication can also be performed by forming multiple (two or more) TCP connections between two application programs.
  • TCP / IP server In order to establish a TCP / IP connection and enable both parties to communicate via this TCP / IP connection, as shown in Fig. 4, in general, one of the computers running on one of the computers The application program becomes a “TCP / IP server” and there is another component.
  • Figure 4 is a conceptual diagram showing the relationship between the TCP / IP server program and the TCP / IP client program.
  • the TCP / IP server program 140 is waiting for one or more TCP / IP ports (port number X).
  • the TCP / IP client program 141 is connected to the connected computer, the IP address of the computer on which the TCP / IP server program 140 is running, and the port number that the program is waiting on (TCP / IP port port number). And send a connection request signal (synchronization request signal) to the computer running the TCP / IP server program 140.
  • the TCP / IP server program 140 has a connection request. If it is determined that the connection with the TCP / IP client program 141 is permitted, a connection acceptance response signal is returned to the TCP / IP client program 141 of the transmission source.
  • the TCP / IP client program 141 returns a confirmation signal (acknowledge signal) indicating that the connection acceptance response signal has been received to the TCP / IP server program 140.
  • the TCP / IP server program 140 when receiving the confirmation signal, establishes a new TCP / IP connection between the two application programs. Configure.
  • Fig. 4 is a conceptual diagram that briefly shows the processing described above, which is an application program.
  • one of the two application programs to communicate is a TCP / IP server program in advance, and one or more TCP / IP Powerful that you need to wait for the port.
  • This port is called a standby port, and this port number is called a standby port number. Normally, one application program can prepare multiple standby ports.
  • the TCP / IP server program can permit all the connections.
  • the TCP / IP server program forms a TCP / IP connection with multiple TCP / IP client programs by itself (independently). Stream data can be sent to and received from IP client programs separately from other TCP client programs.
  • VPN virtual private network
  • IP network such as the Internet
  • VPN system does not actually have a hardware (physical) network interface
  • a network interface hereinafter referred to as a LAN card
  • a virtual network interface device hereinafter referred to as a virtual LAN card
  • a program or a hardware system composed of ASICs with similar functions
  • a hardware network interface that does not actually have Is a virtual IEEE802.3 MAC frame exchange program that emulates the operation of a packet switching device (hereinafter referred to as a switching HUB) that has a connection port from multiple network interfaces that support IEEE802.3.
  • Virtual HUB Packet Control Unit
  • FIG. 5 is a conceptual diagram showing a configuration example of a communication-system VPN system according to an embodiment of the present invention.
  • virtual LAN card programs 11 and 21 are installed on two computers, VPN client computers 10 and 20, respectively, and virtual HUB program 31 is installed on one computer.
  • IP network 119 such as the Internet
  • the configuration of the embodiment of the present invention of FIG. 5 is that the virtual hub program 31 is installed, the computer operating as the virtual hub is the VPN server computer 30, and each of the virtual LAN card programs 11 and 21 is installed.
  • the computers operating as the virtual LAN card are the VPN client computer 10 and the VPN client computer 20.
  • each of the virtual LAN card programs 11 and 21 operating on both the VPN client computer 10 and the VPN client computer 20 is a TCP / IP client program (the virtual LAN card is a hardware (If a TCP / IP client terminal) Is working as.
  • the Virtual Hub program 31 running on the VPN server computer 30 is running as a TCP / IP server program (or TCP / IP server device if the Virtual Hub is hardware).
  • the Virtual Hub program 31 prepares a predetermined TCP port as a standby port as a TCP / IP server program.
  • the Virtual Hub program 31 is configured so that the virtual LAN card programs 11 and 21 operating on both the VPN client computers 10 and 20 are connected to the TCP port on which the TCP / IP server program is listening. On the other hand, after completing the handshake using the TCP / IP protocol, a connection is formed, and authentication work and the like are completed for both the VPN client computers 10 and 20.
  • the VPN server computer 30 It is possible to send and receive arbitrary MAC frames (corresponding to frames 122 and 125 in Fig. 2) via (via) the virtual HUB program running on.
  • the protocol stack 13 provided as a part of ⁇ S already describes the above data.
  • the MAC frame is converted into a plurality of MAC frames having a predetermined amount of data, and the MAC frame is output to the LAN card set in advance in the application program 12, that is, the virtual LAN card 11.
  • the virtual LAN card 11 when the virtual LAN card 11 receives the MAC frame, the virtual LAN card 11 performs processing necessary for the VPN of the present invention, such as adding an encryption and an SE header, which will be described later, and performing encapsulation. Is output to protocol stack 13.
  • the protocol stack 13 adds a predetermined TCP / IP header to the input packet and converts the packet into an IP packet, and sends it to the IP network 119 via the interface device 14.
  • the protocol stack 33 receives the IP packet via the interface device 34. To do.
  • the protocol stack 33 When the protocol stack 33 detects that the destination of the IP packet is the Virtual HUB 31 by referring to the TCP / IP header, the protocol stack 33 outputs the IP packet to the Virtual HUB 31.
  • the Virtual Hub 31 can receive the IP packet in the VPN system of the present invention, and performs the reverse process to the encapsulation process performed by the virtual LAN card 11 in the VPN client computer 10.
  • the MAC frame generated by the protocol stack 13 of the VPN client computer 10 is extracted.
  • the Virtual HUB 31 performs processing necessary for the VPN of the present invention such as adding the encryption and SE header to be described later to the extracted MAC frame and encapsulating it, and after the change Packet is output to protocol stack 33.
  • the protocol stack 33 adds a TCP / IP header, which is the virtual LAN card 21 of the destination SVPN client computer 20, to the input packet, generates an IP packet, and sends the IP packet to the interface device. It is sent to IP network 11 9 via 34.
  • the protocol stack 23 sends the IP packet via the interface device 24. Receive. Next, when receiving the IP packet, the protocol stack 23 refers to the TCP / IP header and outputs the IP packet to the virtual LAN card 21 when the destination is the TCP / IP virtual LAN 21.
  • the virtual LAN card 21 When the virtual LAN card 21 receives the IP packet, the virtual LAN card 21 performs processing opposite to the encapsulation processing performed by the virtual hub 31 of the VPN server computer 30 and the protocol stack 13 of the VPN client computer 10 The generated MAC frames are extracted and sequentially output to the protocol stack 23.
  • the protocol stack 23 refers to the TCP / IP header for each input MAC frame, performs predetermined processing such as rearrangement of MAC frame data in the order of output from the protocol stack 13, The data transmitted by the application program 12 is reconfigured and output to the destination application program 22.
  • Fig. 6 (a) shows the concept of the normal LAN configuration
  • Fig. 6 (b) shows the concept of the virtual LAN configuration virtually formed on the network in the VPN system of the present invention. I'm going.
  • the device 36 does not need to be a single layer 2 frame switching device, but an IP network (a large-scale network such as the Internet) that is a collection of multiple layer 2 and layer 3 switching devices. But it may be good).
  • IP network a large-scale network such as the Internet
  • network interface devices (physical LAN cards) that support IEEE802.3 and are installed in multiple computers, respectively.
  • 182, 183, and IEEE802.3 MAC frame exchange device 158 (physical switching hub) installed in the center and force S, cable, optical fiber, or wireless It is connected by a communication line of any physical layer.
  • the MAC address of the LAN card 181 of one of the computers connected to the switching HUB158 is the MAC address of the LAN card 182 of another computer connected to the same switching HUB158. If the LAN card 182 with this MAC address is used as the destination to transmit data, the IEEE802.3 specification states that each transmitted data is a maximum of 1,514 bytes called a MAC frame. (Variable) packets are divided by the protocol stack.
  • the switching HUB 158 receives a MAC frame at the connection port set for the LAN card 181, the MAC frame is connected to another LAN card of an appropriate destination described in the MAC header. Send to the connected port.
  • the switching HUB 158 is connected to some device other than the connection port from which the MAC frame was transmitted. The same MAC frame is copied and transmitted to all connection ports.
  • the switching HUB 158 copies and distributes the same packet to all connected parties other than the sender of the MAC frame (this operation is called flooding). Call).
  • the MAC frame distribution function of the switching HUB 158 allows the physical network interface device on each computer to send and receive arbitrary MAC frames between them.
  • a virtual LAN card program (virtual LAN card) and a virtual switching HUB program (virtual HUB) exist as programs in the VPN as in the LAN described above.
  • two or more virtual LAN cards connected to one Virtual Hub can send and receive arbitrary MAC frames to each other.
  • FIG. 6 (b) This configuration will be described with reference to FIG. 6 (b).
  • Each virtual LAN card 12, 22, and 522 operating (provided) on each computer operates on one computer. Connected to Virtual Hub 31.
  • a virtual LAN card 12 recognizes the destination MAC address of the virtual LAN card 22 on another computer connected to the same virtual HUB 31, and the virtual LAN card 22
  • the MAC frame undergoes a process called encapsulation by the process in the virtual LAN card 12, and is converted into stream data.
  • the virtual LAN card 12 waits for the generated stream data for the physical IP address of the computer on which the virtual hub 31 to which the virtual LAN card 22 is connected and the virtual hub 31 to listen. Instructs the TCP / IP stack (protocol stack already described) to transmit to the TCP / IP port number that is being sent, and outputs stream data to the TCP / IP stack.
  • TCP / IP stack protocol stack already described
  • the TCP / IP stack 15 performs exactly the same processing as when a normal application program already described tries to send arbitrary stream data to other programs on the network using the TCP / IP protocol.
  • the stream data generated by the virtual LAN card 12 is sent to the destination Virtual Hub 31.
  • An existing IP network (such as the Internet) is used for this transmission.
  • Virtual HUB 31 performs processing opposite to encapsulation (referred to as decapsulation) for the content of stream data that is finally received from virtual LAN card 12 via TCP / IP stack 15 or the like. And take out the MAC frame that the virtual LAN card 12 tried to transmit.
  • Virtual Hub 31 refers to the destination MAC address of each MAC frame, and if it detects that virtual LAN card 22 of that destination MAC address is currently connected to itself, that virtual LAN card 22 operates.
  • the destination computer is encapsulated in the same way as the virtual LAN card 12, and the MAC frame is converted to stream data via the IP network. Sent to a computer running card 22.
  • the Virtual Hub 31 sends the virtual LAN that is the sender of the MAC frame.
  • the MAC frame is copied and distributed to all virtual LAN cards connected to cards other than card 12 (that is, flooded).
  • each of the plurality of virtual LAN cards connected to the Virtual Hub 31 can transmit / receive an arbitrary MAC frame between the Virtual Hub cards via the Virtual Hub 31.
  • FIG. 7 is a conceptual diagram illustrating a method of MAC frame exchange by the physical switching HUB158.
  • the physical LAN card 151 may overlap within a range in which MAC frames can be directly transmitted and received with the same IEEE 802.3 (this range is called a broadcast domain).
  • the MAC address is added as a unique address.
  • This MAC address is usually an identification number assigned by each LAN card manufacturer and an industry group created by the manufacturer or engineer. This MAC address is 6 bytes (48 bits).
  • the MAC frame sent from any physical LAN card 151 automatically has two MAC addresses: the MAC address of the LAN card 151 and the MAC address specified as the destination LAN card 152.
  • Information card (destination MAC address, source MAC address), additional information necessary for control of other MAC frames, and a MAC frame of up to 1,514 bytes including data that you want to actually transmit. 158 is transmitted as an electrical signal.
  • the physical switching HUB 158 When the physical switching HUB 158 receives a MAC frame as an electrical signal from the physical LAN card 151 at a predetermined connection port # 1, it is converted into digital data at a MAC frame receiving unit (usually an electronic circuit) 154.
  • a MAC frame receiving unit usually an electronic circuit
  • the MAC frame switching processing unit 155 reads two pieces of address information, that is, a destination MAC address and a source MAC address, from each input MAC frame.
  • the switching hub 158 usually has a finite number of connection ports, and if any device is connected to each connection port, the MAC frame transmission queue (160) corresponding to the connection port to which the device is connected. , 161, 162) inside.
  • 155 adds the input MAC frame to the MAC frame transmission queue corresponding to the connection port connected to the LAN card having the MAC address that is the destination of this MAC frame.
  • the MAC frame switching processing unit 155 refers to only the destination MAC address, and when it is detected in advance which connection port the LAN card 152 having the destination MAC address is connected to, The input MAC frame is added only to transmission queue 161 of connection port # 2.
  • switching HUB 158 internally has a list of known MAC addresses and a correspondence table for storing which connection port each MAC address in this list corresponds to.
  • the MAC frame switching processing unit 155 examines this table for all MAC frames that contain the MAC address information of the destination LAN card and determines which transmission port transmission queue the MAC address should be added to. It is detected every time.
  • the MAC frame switching processing unit 155 when the MAC frame switching processing unit 155 receives a new MAC frame at an arbitrary connection port, the MAC frame switching processing unit 155 refers to the transmission source MAC address extracted from the header of the received MAC frame, and determines the MAC address. Correspondence between MAC address and connection port number If the MAC address and connection port number do not exist in the table, a new MAC frame source MAC address and connection port number are registered in the correspondence table between MAC address and connection port number. If the address exists and the connection port number is different, the process of constantly updating the correspondence table between the MAC address and the connection port number is performed by overwriting the connection port number for that MAC address. I'm going.
  • the MAC frame switching processing unit 155 sends a destination to each MAC frame.
  • the MAC address and port number required for processing while adding the MAC frame to the transmission queue (160, 161, 162) corresponding to the port where the LAN card may be connected To create or update the correspondence table.
  • the MAC frame transmission unit 157 corresponding to the connection port receives The MAC frames are taken out in order from the head of the corresponding MAC frame transmission queue, and converted into electrical signals are sent out electrically from the connection port.
  • This electrical signal is sent by the MAC frame transmission unit 157 to the physical LAN card that is the destination.
  • MAC frame As described above, once a MAC frame is passed, it is assigned to the transmission queue prepared for each connected device, and then the bucket is forwarded to the actual destination in the order of the head strength of the transmission queue. Generally called “Store and Forward”.
  • the store In store-and-forward, the store is to determine the transmission queue corresponding to the appropriate connection destination and add it to the transmission queue, and the forward is to extract the leading packet from the transmission queue and connect to the connection destination. It refers to the action of sending to.
  • FIG. 8 is a conceptual diagram for explaining a method of virtual MAC frame exchange by the VPN system of the present invention. This FIG. 8 is written in contrast to the method of MAC frame exchange by the physical switching HUB158 described in FIG.
  • the VPN system constituted by the virtual LAN system of the present invention has the virtual HUB 31 and a plurality of virtual LAN cards (12, 21,%) Connected around it.
  • This virtual LAN system has the same configuration as the LAN system using the physical switching HUB 158 described in FIG. 7 and a plurality of physical LAN cards (151, 152) connected to it. ing.
  • each of the virtual LAN card 11 and the virtual LAN card 21 is logically IEEE802.3-compliant than the network interface device (physical LAN card) 16 and 26 with a physical connection connector.
  • a program (or hardware) that emulates the operation of a LAN card.
  • These virtual LAN cards (11, 21) are recognized and controlled in the same manner as physical LAN cards by the protocol stack application program operating in a higher layer.
  • a MAC frame in a format compliant with IEEE 802.3 transmitted between the virtual LAN cards 11 and 21 via the virtual hub 31 is defined as a “virtual MAC frame”.
  • the virtual MAC frame is transmitted and received between the virtual LAN card (11, 21) and the virtual hub (31), but the raw data of the virtual MAC frame is actually used as an electrical signal. This is because it is encapsulated by a header (described later) that contains some information that does not flow on the line.
  • the virtual LAN card 11 is set to a MAC address “001111111111”
  • the virtual LAN card 21 is set to a MAC address “002222222222”.
  • the virtual LAN card 11 uses itself as the source MAC address and the destination MAC address as the MAC address of the virtual LAN card 21, and transmits a virtual MAC frame including data to be transferred to the virtual LAN card 21.
  • the virtual LAN card 11 performs processing such as encryption and electronic signature on one or more virtual MAC frames to be transmitted.
  • the virtual LAN card 11 adds the SE header corresponding to the protocol in the VPN system of the present invention to the MAC frame on which the above processing has been performed.
  • Data (stream data 40 in SE protocol format) is generated and output to the TCP / IP stack 15.
  • the virtual LAN card 11 uses the IP address of the computer C on which the Virtual HUB 31 is operating and the Virtual HUB 31 operating on the computer C as the destination for transmission processing in the TCP / IP protocol. Specify as the port number of the TCP port that is listening on.
  • the TCP / IP stack 15 uses the same processing procedure as when the stream data 40 in the SE protocol format is input from the application program that performs communication using the normal TCP / IP protocol.
  • the TCP interface and the IP header are divided, and this is converted into an IP packet to form a plurality of IP packets 41 to the physical network interface device 16 provided in the computer C. Output via a device driver that supports.
  • the IP packet is transmitted on the IP network 119 by processing according to the normal TCP / IP protocol, and is a physical network interface device 34 provided in the computer C on which the virtual hub 31 is operating. To be received.
  • the network interface device 34 outputs the received IP packet 44 (IP packet 41) to the TCP / IP stack 35 via the device driver corresponding to itself.
  • the IP packet 44 input to the TCP / IP stack 35 corresponds to a plurality of IP packets 41 that the TCP / IP stack 15 converts into IP packets.
  • the TCP / IP stack 35 combines the plurality of IP packets 44 according to the sequence number included in the TCP header to restore the stream data 45.
  • the TCP / IP stack 35 uses the IP packet generated by dividing the TCP / IP stack 15 in the same way as when the data addressed to the application program that communicates according to the normal TCP / IP protocol arrives. 41 is combined, and the stream data 45 corresponding to the stream data 40 generated by the virtual LAN card 11 is restored.
  • TCP / IP stack 35 specifies stream data 45 restored by combining IP packets 44. Output to Virtual Hub 31 that listens on the specified port number.
  • the Virtual HUB 31 When the Virtual HUB 31 receives the stream data 45 in the SE protocol format, the Virtual HUB 31 performs a process reverse to the encapsulation performed by the virtual LAN card 11, that is, a decapsulation process.
  • Virtual HUB 31 extracts the virtual MAC frame in the virtual LAN system by processing such as decapsulation.
  • the extracted virtual MAC frame is a virtual MAC frame transmitted by the virtual LAN card 11, and is output from the virtual hub 31 to the virtual MAC frame switching processing unit 49. Then, the virtual MAC frame switching processing unit 49 The configuration is the same as the physical switching hub 158 described in FIG. 7, and virtual MAC frame exchange is performed by the same processing as the MAC frame exchange method performed by the switching hub 158 (details will be described later).
  • the Virtual HUB 31 operates on a plurality of computers (for example, computer B) and performs a plurality of virtual LAN cards (for example, 2 1,. ⁇ ) is established, and there is one transmission queue (51, 52, ...;) corresponding to each connection port for each virtual LAN card.
  • the virtual MAC frame switching processing unit 49 refers to the virtual MAC frame input from the decapsulation unit 48 that performs decapsulation and extracts the source MAC address and the destination MAC address.
  • Virtual HUB 31 shows a correspondence table between the virtual MAC address and the virtual LAN force connected to the connection port, with the MAC address and connection port number in the physical switching HUB158 shown in Fig. 7. Perform the same processing as the operation for the correspondence table (details will be described later), look at the destination MAC address of the input virtual MAC frame, and check the destination MAC address and the virtual LAN card connected to the connection port. From the correspondence table, a transmission queue for the destination virtual LAN card, for example, the transmission queue 51 is selected.
  • the Virtual HUB 31 adds a virtual MAC frame to the end of the selected transmission queue 51 (at the end of the queue).
  • the destination MAC address is a broadcast address or if the destination virtual LAN card cannot be determined, except for the transmission queue corresponding to the source virtual LAN card, Performs flooding processing for all other transmission queues.
  • the virtual hub 31 is provided with encapsulation units 53, 54, and 55 for performing encapsulation.
  • Each of these power psenolays 54 and 55 takes out the virtual MAC frame in order from the top in the state where one or more virtual MAC frames exist in the transmission queues 50, 51 and 52, respectively.
  • a communication protocol SE that controls the communication method between the virtual LAN card and the virtual hub, such as encrypting and digitally signing each MAC frame and adding an SE protocol header
  • SE that controls the communication method between the virtual LAN card and the virtual hub, such as encrypting and digitally signing each MAC frame and adding an SE protocol header
  • It is converted (encapsulated) into a data format according to the protocol.
  • Each of the encapsulation units 53, 54, and 55 generates stream data (stream data in the SE protocol format) 47 that can be transmitted by the TCP / IP protocol, and converts this into the TCP / IP stack 35. Output to.
  • the destination at the time of transmission processing in the TCP / IP protocol corresponds to the IP address of computer B on which the destination virtual LAN card 21 is operating and the virtual LAN card 21 operating on that computer C. Specify the TCP port number.
  • the TCP / IP stack 35 uses the same procedure as when stream data is input from an application program that performs communication using the normal TCP / IP protocol. , And a TCP header and an IP header are added to the divided packet, and the IP packet is made into a plurality of IP packets 46, and this network is connected to the physical network interface device 34 provided in the computer C. Output via a device driver compatible with interface device 34.
  • the IP packet 46 is sent to the IP network by normal TCP / IP protocol transmission control.
  • the physical network interface device 26 inputs the IP packet 46 and outputs the IP packet 43 (corresponding to the IP packet 46) to the TCP / IP stack 25.
  • the TCP / IP stack 25 combines the IP packet 43 and outputs it to the virtual LAN card 21 as stream data 42 by processing corresponding to the normal TCP / IP protocol.
  • the stream data 42 corresponds to the stream data 47 generated by the virtual HUB 31.
  • the virtual LAN card 21 receives the stream data 42 from the TCP / IP stack 25, cancels the encapsulation by the reverse process of the encapsulation process by the virtual hub 31, and finally the virtual LAN card 11 transmits it. Extract multiple MAC frames.
  • the virtual LAN card 21 can receive the virtual MAC frame transmitted by the virtual LAN card 11 and having the destination MAC address “002222222222”.
  • transmission from the virtual LAN card 21 to the virtual LAN card 11, that is, transmission of a virtual MAC frame in the reverse direction described above, or any virtual LAN operating and running on another computer 500 other than this example If there are virtual MAC frames sent to the card that are connected to the same Virtual HUB 31, any virtual MAC frame sent to or received from that virtual LAN card is the same as the process described here. Can be done.
  • transmission / reception of a virtual MAC frame between a plurality of virtual LAN cards centered on a virtual hub by the VPN system of the present invention is performed between a plurality of physical LAN cards centered on a physical switching hub. This is possible in the same way as sending and receiving MAC frames.
  • the data encapsulating the virtual MAC frame transmitted / received between the virtual LAN cards 11, 21 and the virtual hub 31 uses the TCP / IP protocol as stream data. Sent and received.
  • TCP / IP connection When a TCP / IP connection is established between two computers by using the processing according to the TCP / IP protocol described above and a bidirectional stream data transfer service is used, one is a server and the other is a client. A relationship needs to be configured.
  • a program that becomes a TCP / IP server puts a specific port number on standby
  • Program power as a TCP / IP client Specify the computer's IP address and port number, and call the TCP / IP stack (protocol stack).
  • TCP / IP client program tries to handshake the port number on which the TCP / IP server program is running, and if successful, the TCP / IP client program and the TCP / IP server program
  • a TCP / IP connection is defined that is defined by four sets of information: “server-side IP address, server-side port number, client-side IP address, client-side port number”, and is distinguished from other connections. It is.
  • Virtual Hub 31 is the center of the VPN system, that is, a TCP / IP server program, and virtual LAN cards 11, 21,... Are TCP / IP client programs.
  • a TCP / IP connection is established with the Virtual Hub 31 as the server and the Virtual LAN card as the client.
  • FIG. 9 is a conceptual diagram briefly showing the server / client relationship between the virtual hub 31 and the virtual LAN cards 11, 21,...
  • the virtual LAN card 11 is not connected to any Virtual HUB. Therefore, in order to use it, the virtual LAN card can be used on another computer or the same computer by user operation. However, it is necessary to connect to a Virtual HUB that is operating in good quality.
  • the first stage is a handshake process for connecting the Virtual LAN card 11 as a TCP / IP client to the TCP / IP port where the Virtual Hub 31 is waiting as a TCP / IP server. is there.
  • the virtual HUB 31 and the virtual hub 31 are connected to the virtual hub 31 using the established TCP / IP connection.
  • SE protocol-specific handshake processing is performed between LAN cards 11 using the SE protocol.
  • This SE protocol-specific handshake processing includes authentication processing for the virtual LAN 11 to check the validity of the Virtual Hub 31, authentication processing for the Virtual Hub 31 to check the validity of the Virtual LAN 11, This includes the process of checking the version information of Virtual Hub 31 and Virtual Network Adapter 11 between each other.
  • TCP / IP connection function established between all virtual LAN cards (11, 21, 521) and the virtual hub 31. Is called.
  • Virtual LAN Force 11 remembers that the client is authenticated by an access control database (such as a user name and password pair) that is determined by the Virtual Hub administrator in advance.
  • the Virtual Hub 31 communicates with each of the plurality of virtual LAN cards (11, 21, 521, ⁇ ) in a reliable manner. (Client side and server side force S, which means that the current session is remembered. Physically does not occupy one line) Therefore, after each reliable logical connection is established, the logical communication session with each virtual LAN card 11 is managed in units.
  • the above logical connection refers to the state in which the Virtual Hub is currently connected and can transmit / receive virtual MAC frames to / from each LAN card at any time.
  • a logical storage of the relationship between Called Yon In the VPN system of the present invention, a logical storage of the relationship between Called Yon.
  • the session in the VPN system of the present invention is logical (meaning that the client side and the server side remember that the session is currently established. Physically, one The virtual MAC frame is transmitted and received in full duplex between the virtual LAN card 11 that is the client and the virtual hub 31 that is the server in the session. You can do it.
  • the virtual MAC frame actually transmitted / received is transmitted / received by transmitting / receiving the stream data after performing the capsule processing such as encryption in the handshake processing and the attachment of the electronic signature. Flows within a logical TCP / IP connection.
  • each logical session has a one-to-one correspondence with one logical TCP / IP connection. Can support more than two TCP / IP connections).
  • FIG. 10 is a conceptual diagram showing sequence processing when data is transmitted and received between the virtual LAN card and the virtual HUB for explaining the SE protocol sequence in the VPN system of the present invention.
  • the virtual LAN card 11 requests to connect to a specific virtual HUB 31 by a communication processing operation 200 from the user (connection request 201).
  • the virtual LAN card 11 tries to establish a TCP / IP connection to the destination Virtual HUB 31 according to the connection request 200 from the user.
  • the virtual LAN card 11 determines the IP address of the Virtual Hub 31 and the standby port number.
  • a connection request 201 including the specified instruction is output to the TCP / IP stack 15.
  • the TCP / IP stack 15 attempts a handshake to establish a TCP / IP connection with the connection-destination Virtual HUB 31 according to the TCP / IP protocol.
  • the handshake process is actually a force performed by a plurality of times of IP packet transmission / reception, which is omitted here and expressed as handshake establishment 202.
  • any type of IP network (Ethernet (registered trademark), ATM, frame relay, telephone line, etc.) is connected between Virtual Hub 31 and Virtual Network Adapter 11 during this period. Even if it exists, if one computer power tries to send any stream data, it means that the stream data reaches the other computer.
  • the virtual LAN card 11 After the TCP / IP connection is established between the virtual LAN card 11 and the virtual HUB 31, the virtual LAN card 11 performs a handshake process according to the SE protocol with the virtual HUB 31. (SE protocol handshake request 203).
  • the Virtual Hub 31 transmits the following information (SE protocol handshake response 205) to the virtual LAN card 11.
  • the information (SE protocol handshake request 203) transmitted from the virtual LAN card 11 to the Virtual HUB 31 for handshake processing includes the following.
  • the TCP / IP stack 15 sends the IP packet 204 including the SE protocol handshake request 203 to the virtual HUB 31. Send.
  • the TCP / IP stack 35 outputs the input SE protocol handshake request 203 to the virtual HUB 31.
  • Virtual Hub 31 confirms the validity of virtual LAN card 11 by referring to the input SE protocol handshake request 203, and outputs SE protocol handshake response 205 to TCP / IP stack 35. To do.
  • the TCP / IP stack 35 transmits an IP packet 206 including this SE protocol handshake response 205 to the virtual LAN card 11.
  • the virtual LAN card 11 inputs the SE protocol handshake response 205 via the TCP / IP stack 15 and confirms the validity of the virtual HUB 31.
  • the hand that includes information indicating that the virtual hub 31 has completed the handshake processing and accepted the connection to the virtual LAN card 11.
  • Send a shake success notification signal final signal in the SE protocol handshake response).
  • This handshake success notification signal includes the following information.
  • the virtual MAC frame 208 transmitted from the virtual LAN card 11 to the other virtual LAN card via the virtual hub 31 is encapsulated by the virtual LAN card 11, As described above, it is converted into stream data.
  • the rules for converting to stream data are stipulated in a common protocol defined in advance by Virtual Hub 31 and Virtual LAN Card 11.
  • the virtual LAN card 11 outputs stream data 209 to the TCP / IP stack 15.
  • the TCP / IP stack 15 makes the TCP / IP connection associated with the SE session established with the Virtual Hub 31 by converting the input stream data 209 into an IP packet. Is used to transmit through the IP network and send to the computer running Virtual Hub 31.
  • the TCP / IP stack 35 operating on this computer receives this IP packet 210.
  • the TCP / IP stack 35 restores the stream data 211 from the input IP packet, and outputs this stream data 211 to the virtual HUB 31.
  • the virtual HUB 31 extracts the virtual MAC frame 212 from the input stream data 211 by performing processing reverse to the encapsulation performed by the virtual LAN 11, that is, decapsulation.
  • Virtual HUB 31 can specify a session to which another virtual LAN card corresponding to the destination MAC address described in the virtual MAC frame is connected after performing predetermined switching processing and store-and-forward processing.
  • the virtual LAN card 11 has a virtual MAC frame 20 8 is encapsulated, and the stream data 214 encapsulated in the virtual MAC frame 213 is processed by the TCP / IP stack 35 using the same process as that transmitted to the Virtual Hub 31 via the TCP / IP connection as stream data. Packet 215 is passed to other virtual LAN card via TCP / IP connection.
  • VPN that can send and receive IEEE802.3 MAC frames via Virtual Hub can be constructed and operated between remote locations in a manner that spans existing IP networks such as the Internet. It becomes like this.
  • FIG. 11 is a conceptual diagram of the virtual LAN card for explaining the processing of the encapsulation unit in the virtual LAN card.
  • the encapsulating unit 18 converts the virtual MAC frame 303 input from the protocol stack 302 of the upper layer into stream data, and forms the stream data 40 as the lower data. Output to TCP / IP protocol stack 13.
  • the capsule release unit 19 performs a process opposite to the capsule unit 18 and extracts a plurality of virtual MAC frames 304 from the stream data 42.
  • the encapsulation unit 18 and the decapsulation unit 19 have a central role in the IEEE 802.3 virtualization processing by the VPN system of the present invention.
  • the virtual LAN card 11 when the virtual LAN card 11 tries to transmit / receive arbitrary data to / from another virtual LAN card, the virtual LAN card 11 uses a program to perform communication. It can be used like a physical LAN card for the following reasons.
  • the operating system has an interface (device driver) that is no different from a virtual LAN card operating one physical LAN card. is doing.
  • the communication application program 300 instructs the protocol stack 302 of the protocol to be used to transmit data. .
  • the protocol stack 302 of the protocol you want to use is that the physical layer LAN card receives data from applications such as TCP / IP protocol stack, NetBEUI protocol stack, IPX / SPX protocol stack, etc. Any existing protocol stack can be used as long as it has the ability to be converted into a MAC frame.
  • the arbitrary protocol stack 302 is selected by the communication application program 300 and outputs a plurality of virtual MAC frames 303 to the virtual LAN card 11.
  • the force processor 18 encapsulates the plurality of virtual MAC frames and converts them into stream data 40.
  • Data 40 is output to TCP / IP protocol stack 13.
  • the TCP / IP protocol stack 13 converts the input stream data 40 into IP packets 41, and passes through the existing physical network interface device 14 to the computer running the Virtual Hub on the IP network. Send to
  • IP packet 43 is input from the computer on which the Virtual Hub is operating on the IP network to the computer on which the virtual LAN card 11 is operating, the network interface device 14 is input. IP packet 43 is output to TCP / IP stack 13. The TCP / IP stack 13 restores it as stream data 42 since the IP packet 43 is converted into stream data (encapsulated) by the Virtual Hub and converted into IP data. Output to LAN card 11.
  • the decapsulation unit 19 performs decapsulation processing on the input stream data 42, and extracts a plurality of virtual MAC frames 304. And, the decapsulation unit 19 extracts the extracted virtual MAC frames 304, The protocol number is referred to from the header part of the MAC frame, and passed to any protocol stack 302 currently available in the form of a plurality of virtual MAC frames.
  • an arbitrary communication application program 300 can finally receive data by other computer power or VPN.
  • FIG. 12 is a conceptual diagram showing a configuration example of a Virtual HUB for explaining the processing of the encapsulation unit of the Virtual HUB in the VPN system of the present invention.
  • a virtual hub for example, virtual hub 31
  • the virtual MAC frame encapsulated from these IP packets is extracted and the header is extracted.
  • the destination MAC address the destination session of the MAC frame is determined, and transmission to the destination session is actually performed, that is, switching processing logically equivalent to the IEEE802.3 switching HUB is performed.
  • the TCP / IP protocol stack 35 combines the input IP packet 44 to restore the stream data 45, and outputs this stream data 45 to the decapsulation unit 48.
  • the decapsulation unit 48 performs predetermined processing to decapsulate the input stream data 45, extracts a plurality of virtual MAC frames 307, and outputs them to the MAC frame switching processing unit 49 To do.
  • the MAC frame switching processing unit 49 uses the above-described “virtual MAC frame exchanging method by the VPN system of the present invention” to map the correspondence between the virtual MAC address and the SE session (corresponding to the connection port of Virtual Hub). , The switching process is performed according to the correspondence table, and the virtual MAC frame 306 sorted for each destination session is added to the transmission queue (50, 51, 52, ⁇ ) for each session. To do.
  • the session encapsulation units (53, 54, 55,%) Corresponding to the transmission queue each correspond to the corresponding transmission queue. From the head of (50, 51, 52,%), For example, the head force of the transmission queue 51 is taken out and a plurality of virtual MAC frames 308 are taken out and encapsulated.
  • the encapsulation unit 54 converts the plurality of virtual MAC frames into stream data 47 and outputs the stream data 47 to the TCP / IP protocol stack 35.
  • the TCP / IP protocol stack 35 converts the stream data 47 into an IP packet, generates a plurality of IP packets 46, and transmits the IP packets 46 to the IP network via the network interface device 34.
  • the IP packet is sent to the virtual LAN card ahead of the destination session.
  • VPN system of the present invention which may be shared by the HUB, these are implemented by a common program (algorithm).
  • FIG. 13 is a block diagram illustrating a configuration example of the capsule unit.
  • the capsule section 18 (53-55) has a coupling section 60, an expansion processing section 61, and a security information adding section 62.
  • the combining unit 60 When a plurality of virtual MAC frames 59 are input, the combining unit 60 performs a process of connecting and combining them in an appropriate order according to a predetermined number of frames when the plurality of virtual MAC frames arrives. Stream 63 is generated.
  • the extension processing unit 61 performs 0 or 1 or more extension processing on the input stream 63, generates stream data 64, and outputs the stream data 64 to the security information adding unit 62.
  • the expansion processing can include processing for improving communication efficiency such as data compression.
  • the security information adding unit 62 performs security processing such as encryption and digital signature on the stream data 64 to generate data 65 with the security information added. To do. Then, the security information adding unit 62 passes the data 65 as stream data 47 to the TCP / IP stack 35 in the next stage and transmits it to the program of the destination computer.
  • the security information adding unit 62 can be omitted.
  • FIG. 14 is a conceptual diagram illustrating the MAC frame combining process of the combining unit.
  • the combining unit 60 combines the input virtual MAC frames with the second virtual MAC frame after the first virtual MAC frame and the third virtual frame after the second MAC frame. Like MAC frames, they are arranged in a straight line in the order of input or in an appropriate order, but not in the order of input, that is, they are connected in series.
  • the length information (bit length) of the MAC frame is added before each MAC frame, where each virtual MAC frame is from where to where, and the total number of combined virtual MAC frames is In order to be able to detect how much it will be, the stream information described in FIG. 13 is added while adding length information and alternative delimiters to it.
  • the combined stream 63 is output to the extension processing unit 61.
  • FIG. 15 is a conceptual diagram illustrating the extension data adding process of the extension processing unit 61.
  • the input stream 63 can be subjected to 0 or one or more arbitrary number of extension processes.
  • the expansion processing unit 61 when a stream 63 containing data with a high compression rate is input, the expansion processing unit 61 outputs a data compressed using a data compression algorithm, etc. Short stream data 64 can be generated to increase efficiency.
  • the extension processing unit may use 0, that is, the input stream 61 as the output stream 64 as it is.
  • FIG. 16 is a conceptual diagram illustrating the security information adding process of the security information adding unit 62.
  • a plurality of encryption algorithms and electronic signature algorithms are stored in a table, and a signature algorithm and an electronic signature algorithm selected in advance from the table by the user are used.
  • the electronic signature unit 66 calculates the data of the electronic signature 68 for the contents of the input stream 64 by the selected electronic signature algorithm. Is added to the contents of the stream 64, and is output to the encryption unit 67.
  • the encryption unit 67 encrypts the entire stream data with the selected encryption algorithm for the stream data, and Output as stream 47. At this time, the size of the stream data may change.
  • the stream 47 obtained in this way is a stream that includes both the content of the stream 64 and the content of the electronic signature 68 and, if necessary, other extension information.
  • the encryption unit 67 first performs the encryption algorithm processing, and then the electronic signature unit 66 uses the electronic signature algorithm.
  • the processing may be performed in the reverse order as described above, in which an electronic signature is calculated and added.
  • a method compatible with SSL is adopted as the security information-added card unit 62.
  • FIG. 6 is a block diagram showing an example of the configuration of the de-releasing units 19, 48.
  • the decapsulation units 19 and 48 have a disassembling unit 71, an extended processing removing unit 72 and a security information removing unit 73.
  • the decapsulation unit 19 or 48 converts the input stream data 45 into a virtual MAC frame in the reverse order of the encapsulation units 18 and 5355.
  • the security information removing unit 73 performs processing in the reverse order to the processing detailed in the processing content of the security information adding unit 62 in Fig. 16, and is input from the TCP / IP stack.
  • the stream data 74 before encryption / electronic signature is restored from the stream data 45 added with the digital signature and output to the extended processing removal unit 72.
  • the security information removing unit 73 outputs data 74 obtained by removing the security information from the stream data 45 and restoring the stream before the sign.
  • the extended processing removal unit 72 restores the data changed by each extended processing to the original data 75 and outputs it to the decomposition unit 71.
  • the extended process removing unit 72 removes information from the extended process from the data 74 and outputs the restored data 75.
  • the disassembling unit 71 performs reverse processing to the combining unit 60 on the input data 75, and from the virtual MAC frames arranged in a straight line and the identification codes for separating them, each virtual MAC The frame 307 is extracted, and the extracted plurality of virtual MAC frames 307 are output as the capsule release unit 48.
  • FIG. 18 is a conceptual diagram showing the operation of the switching process of the virtual MAC frame switching processing unit 49.
  • the virtual MAC frame switching processing unit 49 performs switching processing for each virtual MAC frame that is input and assigns it to an appropriate session by looking at the destination MAC address.
  • One correspondence table (that is, correspondence table between virtual MAC address and SE session number) is managed.
  • Each row of this correspondence table describes the correspondence between the virtual MAC address and the session number, and it is also possible to describe extended information such as the date and time when each row was created or updated.
  • the virtual MAC frame switching processing unit 49 refers to the header of the input virtual MAC frame 307 and extracts the MAC address of the sender of the virtual MAC frame 307.
  • the virtual MAC frame switching processing unit 49 detects whether or not a row including the MAC address exists in the correspondence table between the virtual MAC address and the session number and the virtual MAC frame switching processing unit When 49 detects that the searched MAC address does not exist, 49 newly adds the correspondence between the MAC address and the transmission source session number of the MAC frame to the correspondence table.
  • the virtual MAC frame switching processing unit 49 detects that the corresponding MAC address exists, the virtual MAC frame switching processing unit 49 actually transmits the MAC frame in which the session number is recorded in the correspondence table. If the number of the session you tried is different, update the session number in that row of the correspondence table.
  • the virtual MAC frame switching processing unit 49 extracts a destination MAC address in the virtual MAC frame.
  • the virtual MAC frame switching processing unit 49 is a unique address, so the row corresponding to the MAC address is the virtual MAC address. And whether it exists in the correspondence table between and session number.
  • the virtual MAC frame switching processor 49 transmits the virtual MAC frame by reading the session number corresponding to the virtual MAC address from the correspondence table. Confirm the destination session number To do.
  • the virtual MAC frame switching processing unit 49 adds a virtual MAC frame to the transmission queue corresponding to the confirmed session number.
  • the virtual MAC frame switching processing unit 49 excludes the transmission source session when it detects that the destination MAC address does not exist in the correspondence table or when the destination MAC address is a broadcast address, because the session number cannot be determined. Packets are flooded to the transmission queue (50, 51, 52, ⁇ ) of all sessions.
  • the processing described above is the processing of the virtual MAC frame switching processing unit 49.
  • the encapsulation unit 53 55 in the Virtual HUB transmits the packet. Is read and encapsulated.
  • FIG. 19 is a conceptual diagram showing the configuration of the VPN system of the present invention using IP networks with different line speeds.
  • the virtual LAN card 11 on the sender side is first virtual. Encapsulate the MAC frame into stream data and output it to the TCP / IP stack 15.
  • the TCP / IP stack 15 uses the TCPZIP connection corresponding to the SE session already established with the Virtual Hub 31, and the TCP / IP stack 15 sends the stream data to the computer where the Virtual Hub 31 is operating. Send.
  • the computer on which Virtual Hub 31 is operating receives the stream data from the IP network (high-speed line with a line speed of 100), decapsulates the stream data with TCP / IP stack 35, and creates a virtual MAC frame. Session to the virtual LAN card 11 corresponding to the destination MAC address by various processing of the Virtual Hub 31. Insert into send queue 50 corresponding to.
  • the above-described process is a process of transferring a virtual MAC frame from the virtual LAN card 11 to the virtual HUB 31 via the high-speed line IP network.
  • the Virtual Hub 31 encapsulates the virtual MAC frames accumulated in the internal transmission queue 50, converts them into stream data, and transmits them to the IP network using the TCPZIP stack 35.
  • the TCPZIP stack 25 of the computer on which the destination virtual LAN card 21 is operating restores the stream data input via the IP network (low speed line with a line speed of 1) and outputs it to the virtual LAN card 21.
  • the virtual LAN card 21 decapsulates the input stream data and takes out the virtual MAC frame.
  • the processing up to the above is the transfer processing of the virtual MAC frame from the virtual hub 31 to the virtual LAN card 21 via the low-speed line IP network.
  • the virtual LAN card 11 is transferred through a two-stage transfer process, the “Virtual MAC frame transfer process from Virtual Network Adapter 11 to Virtual Hub 31” and the “Virtual MAC frame transfer process from Virtual Hub 31 to Virtual Network Adapter 21”.
  • the MAC frame transmitted by arriving at virtual LAN mode 21.
  • the line speed of the communication line between the computer on which the virtual LAN card 11 is operating and the computer on which the virtual hub 31 is operating and the virtual hub 31 are operating.
  • the line speed of the communication line between the computer and the computer on which the virtual LAN card 21 is operating is almost equal, or the data receiving side can communicate at high speed with the data sending side. If there is no problem, especially in communication.
  • the computer and virtual LAN on which Virtual HUB31 operates can be determined by the line speed of the communication line between the computer on which Virtual LAN card 11 is operating and the computer on which Virtual HUB31 is operating. If the line speed of the communication line with the computer on which the card 21 is operating is lower, that is, if the data receiving side can only perform low-speed communication with the data sending side, Problems occur.
  • the ratio of the transfer capability between the communication line K1 and the communication line K2 is 100: 1.
  • the virtual LAN card 11 attempts to transmit a plurality of virtual MAC frames, for example, a total size of 100, to the virtual LAN card 21.
  • the line speed between the virtual LAN card 11 and the virtual hub 31 is 100, and the size of the stream data encapsulated by the virtual LAN card 11 is 100 (actually, it is slightly Since the increase force S and its influence can be ignored compared to the above line speed difference, for example, transmission processing of all virtual MAC frames to the Virtual Hub 31 is completed in a unit time.
  • the Virtual Hub 31 obtains the TCP / IP connection of the communication session corresponding to the virtual LAN card 21 from the network and the transmission queue 50 in order from the computer running the virtual LAN card 21. Attempt to send stream data encapsulating MAC frames.
  • the number of virtual MAC frames that can be transmitted in unit time on communication line 2 is only 1% of the total number of virtual MAC frames accumulated in transmission queue 50, which is 1 The remaining 99 virtual MAC frames are still in the transmission queue 50.
  • the transmission queue 50 corresponding to the session of the Virtual LAN card 21 is stored in the transmission queue 50.
  • the MAC frame size that enters within a certain time is significantly larger than the MAC frame size that exits within a certain time, that is, congestion occurs.
  • the operation method of the application program that attempts to perform the communication described in FIG. In the case of communication between programs via a physical communication line that does not involve a VPN, a line between the communication hardware and the destination communication hardware is transmitted to one of the programs for the communication hardware. If you try to send a packet that significantly exceeds the speed capability (throughput), the transmission capacity will be exceeded by the communication hardware, physical line, or packet switching equipment such as an IP router on the physical line or routing equipment. Packets are automatically discarded and ignored because they have not arrived.
  • the role of the TCPZIP protocol stack is that multiple TCPZIP stacks are used to send stream data input to the TCP / IP stack on the source computer.
  • the packet is sent to the network and sent to the network.
  • the TCP / IP stack of the recipient's computer that receives it is restored to the original state before the IP packet arrived, and is first sent to the source computer. Attempt to restore the stream data input to the TCP / IP stack above.
  • the sending TCP / IP stack When the sending TCP / IP stack detects that such a situation has occurred, it resends to the destination computer the same IP packet that was sent again the last time it was thought to have not reached the other party.
  • a plurality of switching hubs using a normal physical IEEE802.3 are mainly used.
  • a LAN card transfers the processing capacity of the switching HUB and the communication lines (LAN cables, wireless transmission paths, etc.) that connect the switching HUB to each LAN mode. If you try to send a MAC frame that significantly exceeds its capabilities, some or all of the MAC frame will be discarded by the hardware.
  • one set of 100Mbps-compatible cables and LAN cards are connected to two types of switching hubs that support 100802_TX and 10Base_T. And a LAN card is connected.
  • FIG. Figure 20 is a conceptual diagram showing the connection relationship between LAN card 181 and LAN card 182 connected via a low-speed communication line (10 Mbps), switching HUB158, and high-speed communication line (100 Mbps).
  • FIG. 10 Mbps 10 Mbps
  • HUB158 switching HUB158
  • HP-speed communication line 100 Mbps
  • the switching HUB 158 transmits a MAC frame to the LAN card 182 by LAN card 181 power OO Mbps connected at 100 Mbps.
  • switching HUB 158 can receive packets with a throughput of 100 Mbps. Since the communication line speed to LAN card 182 is only 10 Mbps, packets are discarded electronically when the transfer capacity is exceeded, and 90 Mbps Packets will not arrive.
  • the transmission of encapsulated stream data between the Virtual Hub 31 and the Virtual LAN Cards 11 and 21 is effective for each TCP /
  • the communication speed and ratio of the communication line K1 used in the “virtual MAC frame transfer processing from the virtual LAN card 11 to the virtual hub 31” are compared.
  • the communication speed of the communication line K2 used for “Virtual MAC frame transfer processing from Virtual Hub 31 to Virtual LAN card 21” is extremely slow, the following phenomenon occurs.
  • the Virtual HUB 31 has a transmission queue 50 to be transmitted to the virtual LAN card 21, and sequentially encapsulates the virtual MAC frames accumulated in the transmission queue 50 to send a TCP to the virtual LAN card 21. Attempt to transmit using / IP connection.
  • the TCP / IP stack 35 can hardly complete the transmission of the encapsulated stream data.
  • the TCPZIP protocol specification tries to transmit all stream data in order from the beginning, even if the line speed is low, without changing the contents or losing some of the data.
  • the data to be transmitted that has been accumulated in the transmission queue 50, sequentially encapsulated, and data streamed will be accumulated immediately before the TCPZIP stack 35.
  • FIG. 21 is a conceptual diagram showing a configuration example of a Virtual HUB provided with the congestion control unit 300.
  • the above-described congestion is caused by the virtual MAC frame to be transmitted at the head portion of the transmission queue 50, the force to be transmitted by the S encapsulation unit 53, and the line speed of the communication line constituting the IP network to the destination computer is slow. Occurs when it takes time to complete the encapsulated stream data transmission by the TCP / IP stack.
  • the essence of the congestion problem is that the encapsulated stream by the TCPZIP stack
  • the congestion occurs in the transmission queue 50, and the transmission queue Since the virtual MAC frame stored in 50 is preferentially taken out and encapsulated and transmitted, the virtual MAC frame that arrives later is the time between being put in the queue and transmitted. The time interval of this will become long.
  • a state variable A is provided for each transmission queue 50.
  • the virtual MAC frame added to the transmission queue 50 from the virtual MAC frame switching unit 49 always passes through the congestion control unit 300, so that the virtual MAC frame passes through the algorithm in the congestion control unit 300. If it is permitted to pass, it is added to the transmission queue 50, and if it is rejected, the virtual MAC frame is discarded as if it was not received at first.
  • the congestion control process performed in the congestion control unit 300 is calculated for each transmission queue for each of a plurality of virtual MAC frames input simultaneously from the virtual MAC frame switching processing unit 49. It is determined whether or not to add to the transmission queue based on the probability of frame addition, and the virtual MAC frame determined to be added is added to the transmission queue and the others are discarded.
  • the frame addition probability determination method that can be determined in advance by the user is determined in advance by the Virtual Hub program and cannot be changed by the user. It ’s good, and you can change it.
  • the frame addition probability is set to 0.5. If A is not 0, update A twice and set the frame addition probability to 2 (-A). In the above method, the frame addition probability decreases exponentially when the transmission queue remains.
  • one TCPZIP connection is used for transmission of the encapsulated stream data between the Virtual Hub 31 and the Virtual LAN cards 11 and 21 in FIG.
  • the communication speed of the communication line K1 used for the “Virtual MAC frame transfer process from the virtual LAN card 11 to the Virtual HUB 31” in the configuration as described by the disadvantages of The following drawbacks that occur when the communication speed of the communication line K2 used for “Virtual MAC frame transfer processing to the LAN card 21” is extremely slow can be solved.
  • the Virtual HUB 31 has a transmission queue 50 to be transmitted to the virtual LAN card 21, and sequentially encapsulates the virtual MAC frames stored in the transmission queue 50 to send TCP / IP to the virtual LAN card 21.
  • the line speed of the communication line K2 is slower than that of the communication line K1, so the TCP / IP stack is unable to complete the transmission of the stream data that has been
  • the data to be transmitted that are encapsulated in the transmission queue 50 and sequentially encapsulated into a data stream accumulates immediately before the TCP / IP stack.
  • the congestion control unit 300 connected to the transmission queue 50 adds frames based on the number of frames accumulated in the transmission queue. Probability was determined.
  • the congestion control unit 300 In this state, the SE session power other than the SE session that sent a large amount of virtual MAC frames first ⁇
  • the state variable A of the transmission queue becomes large. Even when trying to transmit, the congestion control unit 300 also decreases the frame addition probability as the value of the state variable A of the transmission queue increases.
  • the initial value is 0, and the state variable A [n] that is updated every unit time is the state variable from session n to the transmission queue.
  • a [n] is determined for each transmission queue, but for the sake of simplicity, only one transmission queue will be described.
  • a [n] is set to 0 and the frame addition probability is set to 1.
  • the frame addition probability is set to 0.5.
  • a [n] is doubled and the frame addition probability is set to 2 (—A [n]).
  • the frame addition probability decreases exponentially when the transmission queue remains.
  • a virtual HUB The amount of packets that are automatically added to the attacked session by the congestion control unit 300 is limited, and the attacked SE session receives packets from other SE sessions. Only the packets from the attack source, that is, the source SE session, can be restricted, which can be resolved.
  • stream data in which a virtual MAC frame is encapsulated is transmitted / received via a TCP / IP connection.
  • the encapsulated data is flowing on the IP network as PPTP packets and L2TP packets.
  • the Virtual Hub that is the VPN server operates as a TCP / IP server program
  • the Virtual LAN card that is the VPN client is TC
  • the Virtual LAN card is connected to the Virtual HUB.
  • the CONNECT method in the HTTPS proxy server and the connection request signal in the SOCKS server for the proxy server corresponding to the HTTPS protocol and the proxy server corresponding to the SOCKS version 4 protocol ( The details are left to each protocol specification.)
  • the virtual LAN card can connect to a server computer running Virtual HUB via VPN.
  • FIG. 22 is a conceptual diagram showing a configuration example of the VPN system of the present invention.
  • the virtual LAN card 11 of the VPN client computer 10 is connected to the virtual HUB 31 on the VPN server computer 30 via the proxy server 301.
  • one TCP / IP connection is established between the virtual LAN card 11 and the proxy server 301, and one TCP / IP connection is established between the proxy server 301 and the virtual hub 31.
  • the virtual LAN card 11 of the VPN client computer 10 establishes a TCP / IP connection to the Virtual Hub 31 on the VPN server computer 30 and sends / receives the encapsulated data stream. Absent.
  • the proxy server 301 sends the data stream received from one TCPZIP connection as it is to the other TCP / IP connection.
  • the virtual LAN card 11 of the VPN client computer 10 establishes a TCP / IP connection directly with the Virtual HUB 31 on the VPN server computer 30 and performs communication similar to that performed by the SE protocol. Is done.
  • an application program 12 that performs network communication that operates on the VPN client computer 10 and an application prod- ucer that performs network communication that operates on the VPN client computer 20. You can communicate freely through the Virtual Hub 31 running on the VPN server computer 30.
  • a host such as a server that provides each service
  • an external IP network such as the Internet
  • the application program that you want to use by communicating between the above computer and the computer on the external IP network S, if the proxy server installed in the company LAN is not supported, the application program has been improved Rewrite to enable communication via a proxy server (such as an HTTPS server or a SOCKS server) installed on the corporate LAN. Even if the internal LAN configuration is changed and the proxy server is not used, the external IP It was necessary to take measures such as enabling communication with hosts on the network.
  • FIG. 23 is a conceptual diagram showing a configuration example of the VPN system of the present invention having a bridge connection.
  • the virtual LAN card 11 is recognized as one LAN card by the operating system.
  • any MAC frame can be transmitted and received between the PC 305 and another PC 303 (or 304) on the in-house LAN.
  • Sessions between virtual and LAN networks and virtual and HUBs may have an identification code called a session ID.
  • This session ID is known only to both the virtual LAN card and the Virtual Hub (one is determined using a random number during handshaking and notified to the other). Even when the TCP / IP connection that controls session communication between the virtual LAN card and the Virtual Hub is disconnected, the logical session remains for a certain period of time set by the user (or fixed by the program). It has been continued.
  • the virtual LAN card detects that the connection with the Virtual Hub has been disconnected, it establishes a TCP / IP connection with the Virtual Hub again and communicates as before in the handshake processing.
  • the session ID is communicated to the Virtual Hub.
  • the Virtual HUB searches for the presence of a session corresponding to the session ID for the pending session strength, and if a corresponding session ID is detected, the Virtual HUB can reconnect to the session.
  • This reconnection function is installed in the VPN system of the present invention.
  • the protocol stack application program operating at a higher level than the virtual LAN card does not respond to the fact that the line between the LAN card and the HUB was originally disconnected. Since the power is recognized as if it was not disconnected, there is an effect that the disconnection of communication in the upper layer can be suppressed even on the poor quality IP network where the TCP / IP session is disconnected.
  • the logical session indicating the communication between the virtual LAN card and the virtual HUB is one TCP / IP. It was established by a connection, and one TCP / IP connection was supported for one session.
  • two or more multiple applications not one, between application programs (specifically, between a TCP / IP server program and a TCP / IP client program)
  • the data flowing over the TCP / IP connection is capable of determining the start point because the end point is up to the end of the VPN communication. It is unknown, and due to the characteristics of VPN, it is necessary to send packets that have been encapsulated at an early time and converted into stream data as soon as possible by the encapsulation unit on the transmission side.
  • FIG. 24 is a conceptual diagram of a configuration in which a plurality of TCP / IP connections are established and transmitted / received for one SE session in the VPN system of the present invention.
  • Fig. 24 (b) The correspondence to multiple TCP / IP connections is explained using Fig. 24 (b).
  • Fig. 24 (b) in order to establish a plurality of TCP / IP connections between the virtual LAN card and the Virtual HUB and use these TCP / IP connections well, For each SE session, the same number of TCP / IP connections as the encapsulation units 181 to 183 are established.
  • the TCP / IP stack 13 divides the packet into IP packets corresponding to one TCP / IP connection, and transmits the packet via the IP network 119.
  • the TCP / IP stack 35 of the remote computer receives the transmitted IP packet, restores the IP packet to stream data, and outputs it to the capsule release unit 48.
  • the decapsulation unit 48 extracts the virtual MAC frame from this stream data.
  • the virtual MAC frame when the virtual MAC frame is transmitted, the virtual MAC frame is input to the connection selection unit 310 before being input to the encapsulation units 181 to 183.
  • connection selection unit 310 is provided as a stage immediately before the capsule unit.
  • the connection selection unit 310 distributes a plurality of input virtual MAC frames to each of the encapsulation units 181 to 183 prepared in the same number as the number of established TCP / IP connections based on a predetermined algorithm. Take control.
  • connection selection unit 310 receives the input virtual
  • the MAC frame is distributed to the encapsulation unit 181, the encapsulation unit 182, and the encapsulation unit 183.
  • Each of the encapsulating unit 181, the encapsulating unit 182, and the encapsulating unit 183 has one TCP / IP connection corresponding thereto.
  • connection selection unit 310 selects which encapsulation unit each virtual MAC frame is assigned to, and outputs the virtual MAC frame as it is based on the selection result. Do not do any processing such as editing the contents of the virtual MAC frame.
  • Each of the encapsulation units 181 to 183 outputs a plurality of virtual MAC frames to which the encapsulation unit 181 to 183 is input via the TCP / IP stack 13 to the corresponding TCP / IP connection. To help.
  • the TCP / IP stack 13 transmits the virtual MAC frame to the virtual LAN card of the receiver computer connected via the IP network 119. Then, the TCP / IP stack 35, in the order opposite to the above transmission processing by the computer that transmitted, the stream data encapsulated by the plurality of decapsulation units 481, 482, 483 corresponding to the TCP / IP connection. Decapsulation is performed, a plurality of virtual MAC frames are extracted, and the virtual MAC frames are output to the connection coupling unit 490.
  • connection coupling unit 490 rearranges the received virtual MAC frames in the order of the received time series, and outputs the received virtual MAC frames to the process for performing the next processing.
  • connection selection unit 490 can be replaced, but it is considered that the encapsulation unit that outputs the virtual MAC frame should be selected by the following method.
  • connection selection unit 490 allocates the virtual MAC frame to any one of the encapsulation units 181 to 183 will be described.
  • Each of the encapsulation units 181 to 183 has a state variable Q for managing the quality state of the corresponding TCP / IP connection.
  • the initial value of Q is “0”, and the larger the value of Q, the worse the quality.
  • connection selection unit 310 selects the one with the smallest value of the state variable Q from all the capsule units (181 to 183), Instructs the selected encapsulation unit to transmit the MAC frame. In addition, the connection selection unit 310 selects the one with the lowest value of the state variable Q from the plurality of capsule units (181 to 183). A capsule part with state variable Q is selected according to a rule set by the user at random. Further, the connection selection unit 310 can receive a plurality of virtual MAC frames at the same time as the previous process power, and can instantly perform these processes for each virtual MAC frame without blocking. This is encapsulated by the connection selector 310 This is because the process of distributing the frame to the part is a process in the memory of the computer. (Because communication is not involved, there is no blocking)
  • Encapsulation units 181 to 183 encapsulate virtual MAC frames (which may be received at the same time) input from connection selection unit 310, and hold them as stream data on a first-come-first-served basis. At this time, the capsule units 181 to 183 perform stream data combining processing by adding the stream data generated later to the end of the stream data generated immediately before.
  • Capsule section 181 attempts to transmit the currently held stream data in order from the top using a TCP / IP connection.
  • the capsule data unit passes the stream data to the TCP / IP stack 13 to instruct transmission.
  • the TCP / IP stack 13 attempts to transmit the stream data input from the encapsulation unit to the IP network.
  • the TCP / IP stack 13 notifies the encapsulation unit corresponding to the transmitted stream data of the completion of the transmission process.
  • the TCP / IP stack 13 may indicate that if the network speed is slow or the quality is poor, or if the stream data to be transmitted is too large, the transmission of the part of the stream data up to
  • the transmission information indicating that the data has not been transmitted is notified to the encapsulation unit corresponding to the stream data. This notification is sent each time the encapsulation is sent to the TCP / IP stack, and the following information is known.
  • Capsule (181, 182, 183) receives the notification from TCP / IP Stack 13 in response to (5) and transfers the data to TCP / IP Stack 13.
  • the state variable Q is initialized to “0”.
  • capsule capsule (181, 182, 1 83) adds n to the state variable Q when it receives from the TCP / IP stack 13 transmission information indicating that the instructed data transfer has not yet been completed.
  • n is a variable, and may be fixed to 1. Also, even if it is passed to the TCP / IP stack 13, the transmission is completed and the value is proportional to the total amount of data. It ’s good.
  • the virtual LAN card 11 provides a plurality of TCP / IP connections for one SE session established with the virtual hub 31 and a plurality of TCP / IP connections provided for this SE session.
  • the status variable indicating the quality status of each TCP / IP connection is detected, and the MAC frame is output to the TCP / IP connection in the best quality status.
  • an SE session can be configured with multiple TCP / IP connections, and the encapsulated stream data that should flow through the SE session is as efficient as possible for each TCP / IP connection. Will be transmitted evenly. As a result, the total throughput in the SE session is improved compared to the method in which one TCP / IP connection is supported for the SE session.
  • connection selection unit 310 needs to be placed immediately before the encapsulation unit.
  • connection combining unit 310 needs to be placed immediately after the capsule release unit on the receiving side.
  • the encapsulated part of one virtual MAC frame (that is, the IP packet into which one stream data is divided) is actually transmitted after being divided into multiple TCP / IP connections. Can happen.
  • the receiving side receives IP packets from multiple TCP / IP connections divided by the transmitting side and simply combines the IP packets to restore the original stream data. When data arrival in one line is delayed
  • the original stream data cannot be restored until the data arrives.
  • connection selection unit 310 is installed immediately before the encapsulation unit, and the TCP that transmits the virtual MAC frame by the quality state variable Q managed by each capsule unit is transmitted.
  • the method of selecting an / IP connection has an effect that cannot be realized with a normal combination.
  • any existing arbitrary communication is possible.
  • the data to be transmitted by the communication application program is encapsulated in accordance with the SE protocol. It will be divided into / IP connections and sent.
  • VPN system of the present invention all existing arbitrary communication keywords are used.
  • benefits such as improved communication speed and stable communication in parallel IJTCP / IP connection communication can be automatically received without rewriting each application program.
  • a remote access system can be configured by combining a virtual LAN card and NAT (Network Address Translation).
  • FIG. 25 is a conceptual diagram of the configuration of a computer on which NAT is implemented to explain the operation of NAT.
  • NAPT Address Translation
  • NAT technology is a general technology, and its basic specifications are defined in RFC 2663, so here are the details.
  • TCP / IP client program (port number 1234) on computer A (IP address 192 ⁇ 168.0.2) on IP network 192.168.0.0/24 inside NAT NAT IP network outside NAT 192 ⁇ Computer B on 168.10.0 / 24 (IP address
  • Computer F that becomes NAT is 192 ⁇ 168.0.1 as NAT inside, and as outside
  • computer A IP address 192.168.0.2/TCP port number 1234
  • computer B IP address 192.168.10.1/TCP port number 80
  • the TCP packet is transmitted from the physical LAN card 323.
  • the NAT program in the computer F inputs the TCP packet via the LAN card 321 and rewrites the IP address of the TCP packet.
  • the address rewriting unit 322 in the NAT program In case of either TCP / IP packet or UDP / IP packet, rewrite two sets of port number and IP address in TCP header or UDP header and IP header, but other operations such as TCP packet No reconfiguration is performed.
  • the TCP / IP packet is sent from the address rewriting unit 322 by the source.
  • the reverse TCP / IP packet flow is the opposite of the above process.
  • NAT The use of NAT in Figure 25 shows that two physical LAN cards are installed on computer F, which is one NAT, and one is outside NAT (for example, the external Internet side) and the other is on the other side. It is inside NAT (for example, in-house LAN side).
  • FIG. 26 is a conceptual diagram showing a system configuration of remote access using a virtual LAN card and NAT.
  • a virtual LAN card is logically identical to a physical LAN card from the viewpoint of the operating system, so it can be replaced with a physical LAN card.
  • the VPN configured by the VPN system of the present invention is used for remote access.
  • the system connection status is as follows: a computer with a virtual LAN card installed on the Internet and a virtual hub 3 installed on the Internet that is logically connected at the same time.
  • the virtual LAN card 11 operating in the computer F that will be the NAT for remote access is logically connected to the virtual hub 31 (SE session is established).
  • SE session is established.
  • the communication path for the encapsulated (VPN) TCP / IP connection established between Virtual LAN Card 11 and Virtual HUB 31 is the network that is connected to LAN Card 323. Forces constituted by means passing through or other means, etc. Since they are constituted by conventional means, and have already been described, description thereof will be omitted.
  • the NAT program operates in the same manner in the central computer.
  • the virtual LAN card 11 is connected to the virtual HUB 31, and the virtual LAN card of the computer 10 is also connected to the same virtual HUB 31.
  • the IP address of the virtual LAN card of the computer 10 is 192.168.0.2.
  • Figure 26 shows the TCP / IP client program (port number 1234) on this computer 10 (IP address 192.168.0.2) and computer B (IP address 192) on the IP network 192.168.10.0/24 outside NAT. ⁇ 168 ⁇ 10.1) This indicates a state in which a TCP / IP connection is established with the TCP / IP server program (port number 80) to establish communication.
  • Computer F that becomes NAT is 192.168.0.1 as inside NAT and outside as NAT
  • a TCP packet is sent from computer 10's virtual LAN card (IP address 192.168.0.2/TCP port number 1234) to computer B (IP address 192.168.10.1/TCP port number 80).
  • This sent TCP packet is IP address rewritten by the NAT program of computer F.
  • the address rewriting unit 322 in the NAT program sets the port number and IP address in the TCP header or UDP header and IP header. Perform two sets of rewriting. [0248] Here, the address rewriting unit 322 rewrites the IP address of the TCP / IP packet with the source as 192.168.10.10 and the port number 5678.
  • the TCP / IP packet with the rewritten IP address and port number arrives at the destination computer B.
  • the reverse direction that is, the transmission of the TCP / IP packet from the computer B to the computer 10, the processing opposite to that described above is performed.
  • the virtual MAC frame flowing between the Virtual Hub and each virtual LAN card is encapsulated by each encapsulating unit, and if encryption is performed when encapsulating, this It is safe to pass virtual MAC frames over dangerous networks such as the Internet.
  • This method is different from the conventional layer 3 encapsulation technology in the VPN system of the present invention, in which the MAC frame in layer 2 is encapsulated and the LAN card is emulated by the virtual LAN card program. This is what makes it possible.
  • the NAT program power of the remote access computer works correctly in the applications described in the section “Remote access using a virtual LAN card and NAT”. It must be implemented as a program that corresponds to the operating system used.
  • the virtual LAN card program is compatible with Windows 2000 (registered trademark) or later. It does not support Windows 98 (registered trademark), and other UNIX (registered trademark) operating systems are also supported. Unpublished.
  • the NAT program comes standard with an implementation that can be used as a NAT if it is a Windows (registered trademark) server-based operating system such as Windows 2000 (registered trademark) or Server 2003 (registered trademark).
  • Windows registered trademark
  • Server 2003 registered trademark
  • Versions such as Windows XP do not provide NAT program implementations that meet the NAT requirements (sometimes included in third-party gateway programs).
  • kernel mode specifications vary greatly from one operating system to another, a kernel mode program written on one system must run on another system without significant rework.
  • the programming interface specifications in the user mode are unified to some extent for each system.
  • porting a user mode program to another system is much easier than porting a kernel mode program.
  • the system (operating system) power of the computer you want to use as a remote access computer is installed in either the virtual LAN card or NAT program. It is necessary to give up using it.
  • NAT program needs to access the device driver of the LAN card that is currently connected to the computer (to rewrite the contents of the TCP or UDP packet). This is because the mode program must exercise unauthorized system privileges.
  • the VPN system of the present invention includes the function of the user mode NAT program used in the user mode.
  • This user-mode NAT program greatly expands the operation of the conventional NAT program, combines several processes for each TCP / IP packet, and can be integrated with the VPN technology of the VPN system of the present invention. It has been done.
  • the NAT program that conventionally required the kernel mode can be realized in the user mode if there are certain restrictions.
  • kernel mode In a normal system, two types of programs, kernel mode and user mode, are operating.
  • the user does not need to use a program that needs to run in the kernel mode of the system, and does not use a user in the user mode.
  • a NAT program running in kernel mode
  • FIG. 27 is a conceptual diagram showing a system configuration for explaining the configuration and operation of the user NAT program in the embodiment of the present invention.
  • the user mode NAT program 500 in FIG. 27 has two interfaces for communication with an external network.
  • TCP / IP stack 530 Communication using TCP / IP stack 530 as one (first) interface, and communication using TCP / IP stack 570 as the other (second) interface.
  • the computer on which the user mode NAT program 500 is operating that is, the computer D used for remote access, is connected to the Internet via the existing network I / F 540.
  • This user mode NAT program 500 is always logically connected to a Virtual Hub 550 installed on another PC (such as on the Internet) (that is, an SE session is established).
  • encapsulation / decapsulation unit used in the virtual LAN card Functions for encapsulating / decapsulating virtual MAC frames (for example, the capsule unit 508 and decapsulation unit 504 configured by a program or hardware) are provided in the user mode NAT. ing.
  • Virtual Hub 550 (the same configuration as Virtual Hub 31 described so far) is connected to Virtual LAN card 560 on another computer via the Internet or the like.
  • User mode NAT500-operated computer that is, the computer D used for remote access, is connected to the corporate LAN via the existing network I / F580 (connected to the Internet via the corporate LAN.
  • existing network I / F540 and existing network I / F580 may be the same). That is, the user mode NAT 500, TCP / IP stack 530, network I / F 540, TCP / IP stack 570, and network I / F 580 are mounted on the computer D.
  • networks such as the Internet and corporate LAN.
  • the TCP / IP client program 560 running on a computer connected to the Virtual Hub 550 on the Internet is connected to the existing network I / F580.
  • the following describes the state in which a TCP / IP connection is established and communicated with the TCP / IP server program 590 running on the computer E (another PC (E)) connected to the same corporate LAN.
  • the original TCP / IP server program 590 is on the corporate LAN and on the Internet.
  • the TCP / IP client program 560 should not be accessible. However, the TCP / IP client program 560 can be accessed because the user mode NAT program 500 serves as a NAT.
  • the user mode NAT program 500 it is the encapsulation unit 508 and the decapsulation unit 504 that maintain the virtual and HUB550 SE sessions.
  • the user mode NAT program 500 is set in advance by the user.
  • VPN system of the present invention One virtual MAC address and one virtual IP address that can only be used in the system are set.
  • the TCP / IP client program 560 on another PC running the virtual LAN card tries to perform TCP / IP communication using the virtual IP address set in the user mode NAT program 500 as a gateway. (Ie try to send data).
  • the encapsulated stream data is transmitted from the virtual LAN mode of the PC on which the TCP / IP client program 560 is installed.
  • the Virtual HUB 550 performs a switching process of the IP packet sent from the TCP / IP client program 560 input via the SE session, and transfers it to the computer D on which the user mode NAT program 500 is operating.
  • This IP packet then arrives at computer D and is received by the operating system via the existing network I / F 540 and TCP / IP stack 530.
  • the user mode NAT program 500 receives the virtual MAC frame output from the TCP / IP stack 530.
  • the user mode NAT program 500 is set with a virtual MAC address and a virtual IP address used for transfer in the VPN system of the present invention.
  • ARP Address Resolution Protocol
  • the stream data received by the decapsulation release unit 504 is expanded into a plurality of virtual MAC frames 604 by the decapsulation unit 504.
  • the IP header analysis unit 503 refers to the input virtual MAC frame, and reads the information of the IP header when the transmitted packet (virtual MAC frame) is an IP packet. On the other hand, if the IP header protocol number is 503 (TCP), The packet is detected as a TCP packet and output to the TCP header analysis unit 502.
  • TCP IP header protocol number
  • the TCP header analysis unit 502 refers to the TCP header, extracts the information stored in the TCP header, and combines the information extracted by the IP header analysis unit 503 with the source IP address,
  • a logical TCP / IP connection is identified by a set of four types: source port number, destination IP address, and destination IP address.
  • a list of logical TCP / IP connections identified for each set of these four types of information is maintained. For each logical connection, the transmission data queue 510 and One receive data queue 509 is held in the program.
  • the TCP / IP header analysis unit 502 extracts the payload (text) of the received TCP packet 605 and outputs it to the data combining unit 501 as data 606.
  • the data combining unit 501 receives the divided data 606 (payload (text) of the received TCP packet 605) input from the TCP header analysis unit 502 as the sequence number of each TCP packet. (The sorting behavior is defined in the TCP / IP RFC specification).
  • the data combining unit 501 adds the stream to the transmission data queue 510 in order from the top.
  • the transmission data queue 510 is a buffer in which bit strings are arranged on a straight line, and is a queue having a data structure (first in first out) in which a bit string is added from the end and output from the head. is there.
  • the user mode NAT program 500 sequentially transmits the stream data from the head of the transmission data queue 510 to the TCP / Using IP stack 570, send to TCP / IP server program 590 that is waiting on computer E on the existing network (company LAN) that is specified as the destination of the logical TCP / IP connection. To instruct.
  • the already established TCP / IP connection is used.
  • the TCP / IP client program 560 runs on the remote access computer D.
  • the user mode NAT program 500 is another computer on a private network that cannot be normally accessed, such as a corporate LAN.
  • the above TCP / IP server can connect to the TCP port on which one program 590 is listening, and can send arbitrary data.
  • TCP / IP server program 590 on computer E sends the stream data to the TCP / IP client program 560 of the computer on the Internet using the established TCP / IP connection.
  • the processing to be performed will be described below.
  • the data transmission process the data transmission process from the TCP / IP client program 560 to the TCP / IP server program 590 described above, that is, a process almost opposite to the process in the user mode NAT 500 is performed.
  • the user mode NAT program 500 is the destination for establishing a direct TCP / IP connection.
  • the user mode NAT program 500 When stream data is input from the TCP / IP server program 590 on the computer E via the existing network I / F 580 and TCP / IP stack 570, the user mode NAT program 500 receives this stream data as received data. When the received data queue 509 contains received data of 1 byte or more, the user mode NAT program 500 finally operates the virtual LAN mode. It is sent as transfer data to a TCP / IP client program 560 on another PC via a logical TCP / IP connection.
  • the data division unit 505 starts the user mode from the top of the reception data queue 509.
  • the data 600 sequentially read by the NAT program 500 is divided into data smaller than the maximum size that can be transmitted as IP packets, as described in “Specifying the communication destination by TCP / IP connection” in FIG. Output as 601 to TCP header adder 506.
  • the TCP header adding unit 506 sets the source port number as the port number of the TCP / IP server program 590 on the computer E, and the destination port number as a TCP / IP client on another PC that operates the virtual LAN card.
  • Program 560 port number is attached to input data 601 and output as TCP packet 602 to IP header ZMAC header adding unit 507.
  • the IP header / MAC header adding unit 507 adds an IP header and a MAC header to the input TCP packet 602 (actually a plurality of packets), and creates a virtual MAC frame 603 as a power packet. Output to the conversion unit 508.
  • IP address of the computer running the TCP / IP server program 590 as the source IP address in the IP header
  • IP address of the computer running the TCP / IP client program 560 as the destination IP address Is attached.
  • the encapsulating unit 508 encapsulates the generated virtual MAC frame 603, and virtualizes it as an IP packet via the TCP / IP stack 530 and the network I / F 540.
  • the TCP / IP client program 560 receives the IP packet switched by the Virtual HUB 550 via the Internet via the virtual LAN card.
  • the retransmission control unit 520 stores transmission information such as the transmission time and the number of transmission trials in the internal storage unit as a transmission table for each TCP packet that has been transmitted once. Based on this transmission information, refer to the transmission table and resend TCP packets that have arrived, received, and possibly.
  • the maximum size is set by the user or fixed by a program.
  • the receiving apparatus receives data from the transmitting apparatus, the receiving apparatus must notify the transmitting apparatus by transmitting an "acknowledgment response". Les.
  • the user mode NAT program in the VPN system of the present invention also follows this specification.
  • reception window size advertisement an integer value called “reception window size advertisement” is included in the acknowledgment packet.
  • the value of “Receiving window size advertisement” is the value for general NAT or when NAT is not used at all.
  • the nodes at both ends that are doing the notification of the size of the free buffer called the current “Receiving window size”.
  • the advertisement value of the reception window size of the TCP packet for the node inside the NAT indicates the smaller one between the free size of the transmission data queue 510 and 65,536.
  • the user one-mode NAT program needs to implement most of the detailed requirements defined in other TCP / IP protocols.
  • Each logical connection managed by the user mode NAT program has a timeout, and this timeout period can be set by the user arbitrarily.
  • the user NAT program functions as a relay terminal having a virtual IP address that is effective in the external virtual network in remote access processing, etc., for example, an external virtual hub and an internal LAN (local With a terminal connected to the This is a virtual LAN card installed in this relay terminal when transferring data between them, and decapsulating the IP packet input by the Virtual Hub, extracting the virtual MAC frame, and extracting the virtual MAC frame after this release.
  • a virtual IP address that is effective in the external virtual network in remote access processing, etc.
  • an external virtual hub and an internal LAN local With a terminal connected to the This is a virtual LAN card installed in this relay terminal when transferring data between them, and decapsulating the IP packet input by the Virtual Hub, extracting the virtual MAC frame, and extracting the virtual MAC frame after this release.
  • a terminal that exists in an external virtual network that can communicate with an external Virtual Hub is a terminal connected to the internal LAN by being relayed by the external Virtual Hub and a user NAT program. It is possible to communicate with
  • the client software for example, virtual LAN force
  • the NAT program is premised on operating in the kernel mode.
  • a program for realizing the functions of the virtual LAN card, the virtual hub, and the user mode NAT is recorded on a computer-readable recording medium, and the program recorded on the recording medium is recorded on the computer.
  • the communication control processing in the virtual LAN card, virtual hub, and user mode NAT described above may be performed by loading the system and executing it.
  • the “computer system” here includes the OS and hardware such as peripheral devices.
  • “Computer system” includes a WWW system equipped with a home page provision environment (or display environment).
  • the “computer-readable recording medium” refers to a storage device such as a flexible disk, a magneto-optical disk, a portable medium such as ROM, CD-ROM, or a hard disk built in the computer system.
  • “computer-readable recording medium” means a volatile memory (RAM) in a computer system that becomes a server or client when a program is transmitted via a network such as the Internet or a communication line such as a telephone line. As described above, it is assumed that the program is held for a certain period of time.
  • RAM volatile memory
  • the program may be transmitted from a computer system storing the program in a storage device or the like to another computer system via a transmission medium or by a transmission wave in the transmission medium.
  • the “transmission medium” for transmitting a program refers to a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line.
  • the program may be for realizing a part of the functions described above.
  • the functions described above can be What can be realized in combination with programs already recorded in the system, so-called differential files (difference programs).

Landscapes

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

Abstract

A virtual private network system comprises a client terminal having a virtual LAN card and a TCP/IP stack mounted thereon. The virtual LAN card generates virtual MAC frames, in which the MAC address of the virtual LAN card of a transmission destination and its own MAC address as the transmission source are added to data to be transmitted, and converts and capsulates the virtual MAC frames into stream data. The TCP/IP stack generates an IP packet destined to the IP address of the virtual HUB by dividing the stream data, and sends the IP packet to an information communication net. The virtual private network system further comprises a server device provided with a mapping table of connection port numbers for switching controls and the MAC address of the virtual LAN card connected. The server device a virtual HUB mounted therein, which restores the stream data, when it receives the IP packet, and which transmits, with reference to the MAC address of the transmission destination and source, the stream data in the IP packet to the connection port corresponding to the MAC address.

Description

明 細 書  Specification
仮想プライベートネットワークシステム  Virtual private network system
技術分野  Technical field
[0001] 本発明は、ネットワーク上に仮想プライベートネットワークを形成する仮想プライべ ートネットワークシステムに関する。  The present invention relates to a virtual private network system that forms a virtual private network on a network.
背景技術  Background art
[0002] 従来、 LAN (Local Area Network)は、施設(会社,学校及び病院など)内に分散し ているコンピュータと、各コンピュータのデータを共有するためのデータベースとを相 互に接続して構築され、データの共有及び送受信に用いられてレ、る。  [0002] Conventionally, a LAN (Local Area Network) is constructed by mutually connecting computers distributed in a facility (company, school, hospital, etc.) and a database for sharing the data of each computer. Used for data sharing and transmission / reception.
近年、インターネットの普及により、複数の施設をまたいだ LAN間のネットワーク接 続が行われるようになってきてレ、る。  In recent years, with the spread of the Internet, network connections between LANs across multiple facilities have come to be established.
し力しながら、インターネット,公衆回線網を含む公衆情報通信網において、ネット ワークの接続をする場合、セキュリティの問題から、 LAN間のネットワーク接続に専 用回線を用いることが考えられる。  However, when connecting networks in public information communication networks including the Internet and public network, it is conceivable to use a dedicated network for network connection between LANs due to security issues.
[0003] し力、しながら、専用回線が高価であるため、公衆情報通信網を使用して、 LAN間 のネットワーク接続をする場合、セキュリティ確保のため、社内 LANや学内 LANなど には、外部のネットワークと接続に際して各種の接続制限が設けられている。  [0003] However, since dedicated lines are expensive, when using a public information communication network to connect networks between LANs, external LANs such as in-house LANs and campus LANs are used for security purposes. Various connection restrictions are provided when connecting to other networks.
すなわち、 LANに接続されている各コンピュータには端末してのプライベート IPが 設定されており、外部ネットワーク (インターネット)との接続には、ルータ機能を有す るサーバに設定された NAT (Network Address Translation) ,ファイアウォール及び HTTP (HyperText Transfer Protocol)プロキシ等を介して行う必要がある。  In other words, each computer connected to the LAN has a private IP address as a terminal, and for connecting to an external network (Internet), a NAT (Network Address) set on a server with a router function is used. Translation), firewall, and HTTP (HyperText Transfer Protocol) proxy.
[0004] 上述したような環境下において、 TCPZIP (Transmission Control  [0004] Under the environment described above, TCPZIP (Transmission Control
Protocol/Internet Protocol)を利用する様々なアプリケーションを用レ、、メールの送受 信や IRC (Internet Relay Chat)サーバへの接続、会社内及び学内 LANから FTP ( File Transfer Protocol)による自宅のコンピュータへの接続、また、 Windows (登録商 標)のリモートデスクトップ機能の使用を行いたい場合、その都度ネットワーク管理者 にそれらの処理の許可を申請して、上記サーバに設けられたファイアウォールに例外 のポートを設定してもらう、 IPsecなどを用いたトンネリング技術(VPN ; Virtual Private Network)を用いる必要がある(例えば、特許文献 1を参照)。 Use various applications that use (Protocol / Internet Protocol), send / receive emails, connect to IRC (Internet Relay Chat) servers, and connect to the home computer via FTP (File Transfer Protocol) from the company and campus LAN If you want to connect or use the Windows (registered trademark) remote desktop function, apply to the network administrator for permission to do so, and make exceptions to the firewall on the server. It is necessary to use a tunneling technology (VPN; Virtual Private Network) using IPsec or the like to have the port set (see, for example, Patent Document 1).
特許文献 1 :特開 2000 - 224219号公報  Patent Document 1: Japanese Patent Laid-Open No. 2000-224219
発明の開示  Disclosure of the invention
発明が解決しょうとする課題  Problems to be solved by the invention
[0005] し力 ながら、特許文献 1に示すトンネリング技術にあっては、 VPNクライアントと VP Nサーバーとの間で直接 IPパケットを送受信することができない環境 (たとえば社内 L ANなどで HTTPSプロトコルに対応したプロキシサーバーを経由しなければインタ 一ネットに接続できないような環境)においては、 VPNクライアントと VPNサーバーと の間の論理的な接続を確立することができないため、これらの VPNを利用することが できない。 However, in the tunneling technology shown in Patent Document 1, an environment in which IP packets cannot be directly transmitted and received between the VPN client and the VPN server (for example, in-house LAN supports HTTPS protocol) In an environment where it is not possible to connect to the Internet without going through a proxy server, it is not possible to establish a logical connection between the VPN client and the VPN server. Can not.
[0006] TCP over TCPとは、 TCP/IPプロトコルを使用する可能性のある仮想ネットワークの パケットをカプセル化したものの伝送手段に TCP/IPプロトコルを使用することによつ て VPNを実現する手法のことを指す。し力、しながら、従来のトンネリング技術のうちデ ータ伝送に TCP/IPを用いるものにあっては、 Layer2 over TCPあるいは Layer3 over TCPにおける IPパケットの転送において、この IPパケットをストリーム転送に対応した フォーマットにカプセル化しており、 VPN通信を実現するためのプロトコルを TCPベ ースの接続によって実行している。  [0006] TCP over TCP is a technique for realizing VPN by using the TCP / IP protocol as a transmission means for encapsulating virtual network packets that may use the TCP / IP protocol. Refers to that. However, if the conventional tunneling technology uses TCP / IP for data transmission, this IP packet can be streamed when transferring IP packets in Layer 2 over TCP or Layer 3 over TCP. The protocol for realizing VPN communication is executed by TCP-based connection.
[0007] このため、従来の TCP/IPを使用したトンネリング技術においては、以下に説明する 理由から、効率が悪ぐ長時間の遅延と頻繁な接続失敗が予想される。  [0007] For this reason, in the conventional tunneling technology using TCP / IP, for the reasons described below, a long delay and frequent connection failures are expected to be inefficient.
TCPは、データを伝送しょうとするときに、その伝送しょうとしたデータを格納した TCP/IPパケットに対して、送信元からの送信順にシーケンス番号を与え、 IPパケット の送信される経路による帯域幅の違いや遅延等による到着順が前後した場合、受信 側においてシーケンス番号順に並べ替えて、データの補償をしており、 IPパケットの 損失により到達しないパケットがあると所定のタイムアウト時間経過後に再送を行う処 理を行う。  When TCP tries to transmit data, the TCP / IP packet storing the data to be transmitted is given a sequence number in the order of transmission from the sender, and the bandwidth by the route the IP packet is sent to If the arrival order changes due to differences or delays, the receiving side rearranges the data in the order of the sequence number and compensates for the data. Do what you want.
[0008] このタイムアウト時間は、 TCP/IPパケットが到達せず、タイムアウトとなるたびに増加 されてレ、くことになる。 ここで、 TCP over TCPにおいては、上部レイヤと下部レイヤ、例えば PPP over SSH の場合、カプセル化する下部レイヤが SSH (Secure Shell)となり、カプセル化される 上部レイヤが PPP (Point to Point)となり、 TCP通信(SSH)の上にさらに TCP通信( PPPである HTTPや POP3)を通すこととなる。 [0008] This time-out time is increased every time a TCP / IP packet does not reach and times out. Here, in TCP over TCP, in the case of upper layer and lower layer, for example, PPP over SSH, the lower layer to be encapsulated is SSH (Secure Shell), and the upper layer to be encapsulated is PPP (Point to Point), In addition to TCP communication (SSH), TCP communication (HTTP or POP3 which is PPP) is passed.
[0009] このため、 TCP over TCPにおいては、 IPパケットの損失が起こった際、キャリア(SS H)の TCPと、アプリケーション層(HTTPや POP3等)の TCPとが共に、 IPパケットの 再送を行おうとする。 [0009] Therefore, in TCP over TCP, when an IP packet loss occurs, both the carrier (SSH) TCP and the application layer (HTTP, POP3, etc.) TCP retransmit the IP packet. I will try.
ここで、上位のレイヤと下位のレイヤとがタイムアウト時間の異なるタイマを有してお り、それぞれ独自にタイムアウト時間を調整しょうとするため、 TCP over TCPにおいて は、これらの調整がうまく働かずに送信のパフォーマンスが低下することとなる。  Here, the upper layer and the lower layer have timers with different timeout periods, and each tries to adjust the timeout period independently. Therefore, these adjustments do not work well in TCP over TCP. Transmission performance will be degraded.
[0010] そのため、 TCPではなぐパケット到達補償のなレ、、すなわちタイムアウトの機能が ない UDP (User Datagram Protocol)を用レ、、送信のパフォーマンスを低下させなレヽ ようにするトンネリングを行うことも提案されている。 [0010] For this reason, it is also proposed to perform tunneling that does not reduce packet arrival compensation, that is, uses UDP (User Datagram Protocol) that does not have a timeout function, and does not degrade transmission performance. Has been.
しかしながら、上記 UDPを用いたトンネリング技術においては、 SSL (Secure However, in the tunneling technology using UDP, SSL (Secure
Socket Layer)を使用することができないため、セッション管理や IPパケットの暗号化. デジタル署名を SSL以外の別の手法によって実装しなければならない。 Socket Layer) cannot be used, so session management and IP packet encryption. Digital signatures must be implemented by other methods than SSL.
[0011] さらに、 UDPを用いたトンネリング技術においては、ほとんどの VPNプロトコルが La yer3 (IP層など)をトンネリングするため、インターネットを介して、 LANNのネットヮー ク間を接続するためには IPルーティングが必要となる。 [0011] Furthermore, in tunneling technology using UDP, most VPN protocols tunnel Layer 3 (IP layer, etc.), so IP routing is required to connect LANN networks over the Internet. Necessary.
[0012] 本発明は、このような事情に鑑みてなされたもので、外部ネットワーク間の通信に制 限の多い LANを経由し、インターネットや別の LAN内のコンピュータとの間において[0012] The present invention has been made in view of such circumstances, and via a LAN with many restrictions on communication between external networks, between the Internet and a computer in another LAN.
、回線の接続を行い、実用的なデータの転送速度で動作する仮想プライベートネット ワーク (VPN)システムを提供することを目的とする。 The purpose is to provide a virtual private network (VPN) system that connects the lines and operates at a practical data transfer rate.
課題を解決するための手段  Means for solving the problem
[0013] 本発明は、仮想プライベートネットワークシステムにおいて、送信するデータに対し て、送信先の仮想 LANカードの MACアドレスと送信元として自身の MACアドレスとを 付加した仮想 MACフレームを生成し、これらをストリームデータに変換してカプセル 化する仮想 LANカードと、このストリームデータを分割して、仮想 HUBの IPアドレスを 宛先とする IPパケットを生成して、情報通信網に送出する TCP/IPスタックとが実装さ れたクライアント端末と、スイッチング制御する接続口番号と、接続されている仮想[0013] In the virtual private network system, the present invention generates a virtual MAC frame in which the MAC address of a destination virtual LAN card and its own MAC address as a transmission source are added to the data to be transmitted. Convert the virtual LAN card to be converted into stream data and encapsulate it, and divide the stream data and assign the Virtual Hub IP address. Generate a destination IP packet and send it to the information communication network. A client terminal equipped with a TCP / IP stack, a connection port number for switching control, and a connected virtual
LANカードの MACアドレスとの対応表が具備され、前記 IPパケットを受信すると、ストリ ームデータを復元して、送信先及び送信元の MACアドレスを参照して、この送信先 MACアドレスに対応する接続口に、ストリームデータを IPパケット化して送信する仮 想 HUBが実装されたサーバ装置とを有することを特徴とする。 A correspondence table with the MAC address of the LAN card is provided. When the IP packet is received, the stream data is restored, the MAC address of the transmission destination and the transmission source is referred to, and the connection port corresponding to the transmission destination MAC address is restored. And a server device mounted with a virtual hub that transmits stream data in IP packets.
[0014] 本発明は、上記仮想プライベートネットワークシステムにおいて、前記仮想 LANカー ドが仮想 MACフレームを生成する際、少なくとも喑号ィ匕または電子署名もしくは双方 の処理を施していることを特徴とする請求項 1記載の仮想プライベートネットワークシ ステム。 [0014] The present invention is characterized in that, in the virtual private network system, when the virtual LAN card generates a virtual MAC frame, at least a sign 喑 or a digital signature or both are performed. Item 1 Virtual private network system.
[0015] 本発明は、上記仮想プライベートネットワークシステムにおいて、前記仮想 HUBが MACフレームを生成する際、少なくとも暗号ィヒまたは電子署名もしくは双方の処理を 施していることを特徴とする。  [0015] The present invention is characterized in that, in the virtual private network system, when the virtual HUB generates a MAC frame, at least encryption and / or electronic signature processing is performed.
[0016] 本発明は、上記仮想プライベートネットワークシステムにおいて、前記仮想 LANカー ドカ \仮想 HUBとの間に確立される 1つのセッションに対して、複数の TCP/IPコネクシ ヨンを設けることを特徴とする。  [0016] The present invention is characterized in that, in the virtual private network system, a plurality of TCP / IP connections are provided for one session established between the virtual LAN card card and the virtual HUB. .
[0017] 本発明は、上記仮想プライベートネットワークシステムにおいて、前記仮想 LANカー ドカ \セッションにおける複数の TCP/IPコネクションにおいて、各 TCP/IPコネクション の品質状態を示す状態変数を検出し、最も良い品質状態の TCP/IPコネクションに MACフレームを出力することを特徴とする。  [0017] In the virtual private network system, the present invention detects a state variable indicating a quality state of each TCP / IP connection in a plurality of TCP / IP connections in the virtual LAN card card / session, and obtains the best quality state. The MAC frame is output to the TCP / IP connection.
[0018] 本発明は、上記仮想プライベートネットワークシステムにおいて、前記仮想 HUBが、 入力される MACフレームを入力順に直列にシフトさせ、入力の古い順から出力させる 送信キューを有しており、仮想 HUBが該送信キューに蓄積された MACフレーム数を 検出し、この MACフレーム数に応じて、入力される MACフレームを所定の割合にて 破棄し、送信キューに入力される MACフレーム量を制御することを特徴とする。  [0018] The present invention provides the virtual private network system, wherein the virtual hub includes a transmission queue that serially shifts input MAC frames in the order of input and outputs from the oldest input order. The number of MAC frames accumulated in the transmission queue is detected, and according to the number of MAC frames, input MAC frames are discarded at a predetermined rate, and the amount of MAC frames input to the transmission queue is controlled. Features.
[0019] 本発明は、上記仮想プライベートネットワークシステムにおいて、前記仮想 HUBが 送信元毎の通信量を状態変数として保持し、予め設定した設定量を超えた送信元か らの MACフレームを所定の割合にて破棄することを特徴とする。 [0020] 本発明は、上記仮想プライベートネットワークシステムにおいて、仮想 HUBから入力 される前記 IPパケットのカプセル化を解除し、仮想 MACフレームを抽出し、この解除 後の仮想 MACフレームの宛先の IPアドレスを参照し、この仮想 MACフレームのデー タを、 TCPヘッダのシーケンス番号の順に並べ替え、順に宛先の IPアドレスを有する 端末へ送出し、一方、該端末から入力されるデータを、所定のデータ単位に分割し て、宛先の IPアドレスを付加して仮想 MACフレームを構成し、この MACフレームの力 プセル化を行い、前記仮想 HUBへ送出する NAT機能部を有する仮想 LANカードを 具備することを特徴とする。 [0019] The present invention provides the virtual private network system in which the virtual hub holds a communication amount for each transmission source as a state variable, and MAC frames from a transmission source exceeding a preset set amount are transmitted at a predetermined rate. It is characterized by discarding at. [0020] In the virtual private network system, the present invention releases the encapsulation of the IP packet input from the Virtual Hub, extracts a virtual MAC frame, and sets the destination IP address of the virtual MAC frame after the release. The virtual MAC frame data is rearranged in the order of the sequence number of the TCP header and sent to the terminal having the destination IP address in order, while the data input from the terminal is set in a predetermined data unit. A virtual LAN frame having a NAT function unit that divides and configures a virtual MAC frame by adding a destination IP address, converts the MAC frame into force, and sends it to the virtual hub is provided. To do.
発明の効果  The invention's effect
[0021] 以上説明したように、本発明の VPNシステムによれば、外部ネットワーク間の通信に 制限の多い LANを経由し、インターネットや別の LAN内のコンピュータとの間にお いて、特に既存の VPNシステムのように、特別な VPN装置を必要とせず、各家庭及び 社内のコンピュータを用いた VPNとして回線の接続を行うことが可能となり、確立した VPNにおいて実用的なデータの転送速度で動作する仮想プライベートネットワーク( VPN)システムを提供することができるとレ、う効果が得られる。  [0021] As described above, according to the VPN system of the present invention, an existing network is connected to a computer in the Internet or another LAN via a LAN with many restrictions on communication between external networks. Unlike a VPN system, it does not require a special VPN device, and it is possible to connect lines as a VPN using computers in each home and office, and the established VPN operates at a practical data transfer rate. If you can provide a virtual private network (VPN) system, you can get the effect.
図面の簡単な説明  Brief Description of Drawings
[0022] [図 1]アプリケーションプログラム間における通信を説明する、一般的な通信システム の構成例を示す概念図である。  FIG. 1 is a conceptual diagram illustrating a configuration example of a general communication system for explaining communication between application programs.
[図 2]TCP/IPプロトコルを使用して、コンピュータ間のデータ通信を行なう場合のデー タの流れを説明する概念図である。  FIG. 2 is a conceptual diagram illustrating the data flow when data communication between computers is performed using the TCP / IP protocol.
[図 3]TCP/IPコネクションにおける通信先の特定処理の流れを説明する概念図であ る。  FIG. 3 is a conceptual diagram illustrating the flow of processing for specifying a communication destination in a TCP / IP connection.
[図 4]TCP/IPサーバープログラムと TCP/IPクライアントプログラムとの関係を示す概念 図である。  FIG. 4 is a conceptual diagram showing the relationship between a TCP / IP server program and a TCP / IP client program.
[図 5]本発明の一実施形態である通信方式の VPNシステムの構成例を示す概念図 である。  FIG. 5 is a conceptual diagram showing a configuration example of a communication system VPN system according to an embodiment of the present invention.
[図 6]本発明の VPNシステムにおいてネットワーク上に構成される仮想 LANの構成を 説明する概念図である。 [図 7]物理的なスイッチング HUB158による MACフレーム交換の方法を説明する概念 図である。 FIG. 6 is a conceptual diagram illustrating the configuration of a virtual LAN configured on a network in the VPN system of the present invention. FIG. 7 is a conceptual diagram for explaining a method of exchanging MAC frames by the physical switching HUB158.
[図 8]本発明の VPNシステムによる仮想的な MACフレーム交換の方法を説明するた めの概念図である。  FIG. 8 is a conceptual diagram for explaining a method of virtual MAC frame exchange by the VPN system of the present invention.
[図 9]仮想 HUB31と仮想 LANカード 11 , 21 ,…とのサーバー/クライアント関係を簡 潔に示す概念図である。  FIG. 9 is a conceptual diagram simply showing the server / client relationship between the virtual hub 31 and the virtual LAN cards 11, 21,.
[図 10]本発明の VPNシステムにおける SEプロトコルのシーケンスを説明するための、 仮想 LANカードと仮想 HUBとの間のデータの送受信を行う際のシーケンス処理を示 す概念図である。  FIG. 10 is a conceptual diagram showing sequence processing when data is transmitted / received between a virtual LAN card and a virtual HUB for explaining the SE protocol sequence in the VPN system of the present invention.
[図 11]仮想 LANカードにおけるカプセル化部の処理を説明するための仮想 LAN力一 ドの概念図である。  FIG. 11 is a conceptual diagram of virtual LAN strength for explaining the processing of the encapsulation unit in the virtual LAN card.
[図 12]本発明の VPNシステムにおける仮想 HUBのカプセル化部の処理の説明を行う ための仮想 HUBの構成例を示す概念図である。  FIG. 12 is a conceptual diagram showing a configuration example of a Virtual HUB for explaining processing of a Virtual HUB encapsulation unit in the VPN system of the present invention.
[図 13]図 12におけるカプセルィ匕部の構成例を示すブロック図である。  13 is a block diagram showing a configuration example of a capsule capsule unit in FIG.
[図 14]図 13における結合部 60の MACフレームの結合処理を説明する概念図である 園 15]図 13における拡張処理部 61の拡張データの付加処理を説明する概念図であ る。  FIG. 14 is a conceptual diagram illustrating the MAC frame combining process of the combining unit 60 in FIG. 13. FIG. 15 is a conceptual diagram illustrating the extension data adding process of the extension processing unit 61 in FIG.
[図 16]図 13におけるセキュリティ情報付加部 62のセキュリティ情報の付カ卩処理を説 明する概念図である。  FIG. 16 is a conceptual diagram for explaining the security information attaching process of the security information adding unit 62 in FIG.
[図 17]図 12におけるカプセルィ匕解除部 19, 48の構成例を示すブロック図である。  FIG. 17 is a block diagram showing a configuration example of capsule capsule release units 19 and 48 in FIG. 12.
[図 18]仮想 MACフレームスイッチング処理部 49のスイッチング処理の動作を示す概 念図である。 FIG. 18 is a conceptual diagram showing the operation of the switching process of the virtual MAC frame switching processing unit 49.
園 19]回線速度が異なる IPネットワークを用いた本発明の VPNシステムの構成を示す 概念図である。 19] It is a conceptual diagram showing the configuration of the VPN system of the present invention using IP networks with different line speeds.
[図 20]低速の通信回線(10Mbps)と、スイッチング HUB158と、高速の通信回線(10 0Mbps)とを介して接続された LANカード 181と LANカード 182との接続関係を示す 概念図である。 [図 21]輻輳制御部 300を設けた仮想 HUBの構成例を示す概念図である。 FIG. 20 is a conceptual diagram showing a connection relationship between a LAN card 181 and a LAN card 182 connected via a low-speed communication line (10 Mbps), a switching HUB 158, and a high-speed communication line (100 Mbps). FIG. 21 is a conceptual diagram showing a configuration example of a Virtual HUB provided with a congestion control unit 300.
[図 22]本発明の VPNシステムの構成例を示す概念図である。  FIG. 22 is a conceptual diagram showing a configuration example of a VPN system according to the present invention.
[図 23]ブリッジ接続を有する本発明の VPNシステムの構成例を示す概念図である。  FIG. 23 is a conceptual diagram showing a configuration example of a VPN system of the present invention having a bridge connection.
[図 24]本発明の VPNシステムにおいて、 1つの SEセッションに対して複数の TCP/IP コネクションを確立して送受信を行う構成の概念図である。  FIG. 24 is a conceptual diagram of a configuration for establishing transmission / reception by establishing a plurality of TCP / IP connections for one SE session in the VPN system of the present invention.
[図 25]NATの動作を説明するための、 NATが実装されているコンピュータの構成の概 念図である。  FIG. 25 is a conceptual diagram of the configuration of a computer on which NAT is implemented to explain the operation of NAT.
[図 26]仮想 LANカードと NATを使用したリモートアクセスのシステム構成を示す概念 図である。  FIG. 26 is a conceptual diagram showing a system configuration of remote access using a virtual LAN card and NAT.
[図 27]本発明の実施形態におけるユーザ NATプログラムの構成及び動作を説明する システム構成を示す概念図である。  FIG. 27 is a conceptual diagram showing a system configuration for explaining the configuration and operation of a user NAT program in the embodiment of the present invention.
符号の説明 Explanation of symbols
11 , 21 , 521…仮想 LANカード(仮想 LANカードプログラム) 11, 21, 521… Virtual LAN card (virtual LAN card program)
15, 25, 35—TCP/IPスタック(TCP/IPプロトコルスタック) 15, 25, 35—TCP / IP stack (TCP / IP protocol stack)
14, 16, 24, 26, 526…ネットワークインターフェースデノ イス 14, 16, 24, 26, 526 ... Network interface device
18, 53, 54, 55, 508…力プセノレィ匕咅  18, 53, 54, 55, 508 ... Power Psenoley
19, 48, 504…力プセノレイ匕角军除咅  19, 48, 504… Strengthening the psenolay
22…アプリケーションプログラム 22 Application program
31■ ·■仮想 HUB (仮想 HUBプログラム)  31 ■ Virtual Hub (Virtual Hub program)
36…スイッチング HUB  36… Switching HUB
49…仮想 MACフレームスイッチング処理部  49… Virtual MAC frame switching processor
50, 51, 52…送信キュー  50, 51, 52 ... Send queue
60…結合部  60 ... Connection
61…拡張処理部  61… Expansion processing part
62…セキュリティ情報付加部  62… Security information addition part
66…電子署名部  66… Digital signature
67…暗号化部 71··' '分解部 67 ... Encryption part 71.
72··· '拡張処理除去部  72 ... 'Extended processing removal section
73··· 'セキュリティ情報除去部  73 ... 'Security information removal part
119- • -IPネットワーク  119- • -IP network
181, 182, 183…力プセノレィ匕咅 B  181, 182, 183 ... Power Psenoley B
300- ·-輻輳制御部  300 --- Congestion controller
301- ·-プロキシサーバー  301- ·-Proxy server
310- ·-コネクション選択部  310- ·-Connection selection part
481, 482, 483…力プセノレイ匕角军除咅 B  481, 482, 483… force psenoley angle corner removal B
490- ·-コネクション結合部  490- · -Connection joint
500- ·-ユーザモード NATプログラム  500- User-mode NAT program
501- ··データ結合部  501- · Data coupling part
502· ••TCPヘッダ解析部  502 •• TCP header analyzer
503· ••IPヘッダ解析部  503IP header analysis part
509· ··受信データキュー  509 ··· Receive data queue
510· ··送信データキュー  510 ··· Transmission data queue
525, 530, 570---TCP/IPスタック(TCP/IPプロ  525, 530, 570 --- TCP / IP stack (TCP / IP protocol
発明を実施するための最良の形態  BEST MODE FOR CARRYING OUT THE INVENTION
[0024] 本発明は、ネットワークデバイスをアプリケーションプログラムとして、端末 (パーソナ ルコンピュータ等)やサーバにインストール (実装)し、仮想的なデバイスを構成し、 V PN通信を行う仮想プライベートネットワークシステムである。  [0024] The present invention is a virtual private network system that installs (implements) a network device as an application program in a terminal (personal computer or the like) or a server, configures a virtual device, and performs VPN communication.
仮想化するデバイスは、イーサネット(登録商標)や、 IEEE802.3の規格のプロト コルに対応した LANカード及び HUBに対応し、それぞれ仮想 LANカード及び仮想 HUBとしている。  The devices to be virtualized correspond to LAN cards and HUBs that support Ethernet (registered trademark) and IEEE 802.3 standard protocols, which are virtual LAN cards and virtual hubs, respectively.
そして、本発明は、インターネットを含む物理的な情報通信網上において、イーサ ネット(登録商標)や、 IEEE802.3の規格の仮想的なネットワークを構成して、この ネットワークを利用して VPN通信を行う。  The present invention configures an Ethernet (registered trademark) or IEEE802.3 standard virtual network on a physical information communication network including the Internet, and performs VPN communication using this network. Do.
[0025] また、以下の本発明の構成の説明において、 VPNを構成するために実装される仮 想 LAN力ード及び仮想 HUBを、インストールして用いるプログラムとして説明してい る力 ASIC等の集積回路によりハードウェアとして、コンピュータに実装することもで きる。 [0025] Further, in the following description of the configuration of the present invention, a temporary implementation for configuring a VPN is described. It is also possible to mount the LAN power card and Virtual Hub on a computer as hardware by using an integrated circuit such as Force ASIC, which is described as a program to be installed and used.
このハードウェアにより実装する場合、仮想 LANカードプログラムは仮想 LANカー ドとなり、仮想 HUBプログラムは仮想 HUBとして、物理的に存在する構成を有する。 ここで、「IEEE802. 3」とは、一般的にイーサネット(登録商標)およびその拡張規 格として知られているレイヤ 2フレーム交換方式の一種である。  When implemented with this hardware, the virtual LAN card program is a virtual LAN card, and the virtual hub program has a configuration that physically exists as a virtual hub. Here, “IEEE802.3” is a kind of layer 2 frame exchange method generally known as Ethernet (registered trademark) and its extended standard.
[0026] また、本発明の VPNシステムにおける、ネットワーク上に仮想の LANを構成する仮想 HUB及び仮想 LANカードに対応させて、実際に構成される LANの LANカード及びス イッチング HUBを物理的な LANカード及びスイッチング HUBとして記述する。 [0026] In addition, in the VPN system of the present invention, a LAN LAN card and a switching HUB that are actually configured corresponding to a Virtual HUB and a Virtual LAN card that configure a virtual LAN on the network are connected to a physical LAN. Describe as a card and switching hub.
また、以下の本発明の実施形態における説明での「NAT」とは、「NAPT(Network Address Port Translation)」のことを意味しており、 IPマスカレードと同等である。 また、「複数」とは、 1個以上のことを指す。  Further, “NAT” in the following description of the embodiment of the present invention means “NAPT (Network Address Port Translation)” and is equivalent to IP masquerading. The term “plurality” refers to one or more items.
また、本発明の説明において、 TCP/IPスタックと TCP/IPプロトコルスタックとは同様 な意味で用いられており、プロトコルスタックは TCP/IPにかかわらず任意のレイヤ 3 ( L3)以上のプロトコルスタック(NetBEUI, IPX/SPX, AppleTalk (登録商標)など)を意味 しています。  In the description of the present invention, the TCP / IP stack and the TCP / IP protocol stack are used in the same meaning, and the protocol stack is an arbitrary protocol stack of layer 3 (L3) or higher (regardless of TCP / IP). NetBEUI, IPX / SPX, AppleTalk (registered trademark)).
[0027] <本発明の前提となるネットワーク構成の説明 >  <Description of network configuration as a premise of the present invention>
まず、本発明を説明する前に、前提となる従来の通信のシーケンスを説明し、その 後本願発明の仮想的なネットワークの構成を説明して、いずれの構成が本願発明で あるかを明確にしたい。  First, prior to describing the present invention, the conventional communication sequence as a premise will be described, and then the configuration of the virtual network of the present invention will be described to clearly identify which configuration is the present invention. Want to.
異なった端末 (コンピュータ)間において、送信者 Aと送信者 Bとがデータの交換処理 を行う、すなわち通信を行おうとするアプリケーションプログラム間で何らかのデータ を交換する場合、通常、図 1に示すような処理が行われる。  When different data are exchanged between sender A and sender B between different terminals (computers), that is, when some data is exchanged between application programs that are trying to communicate, usually, as shown in Fig. 1. Processing is performed.
図 1は、アプリケーションプログラム間における通信を説明する、一般的な通信システ ムの構成例を示す概念図である。  FIG. 1 is a conceptual diagram illustrating a configuration example of a general communication system for explaining communication between application programs.
まず、通信を行おうとするアプリケーションプログラムのデータ交換処理の方法に基 づき、データを交換することにより通信を実現する。 [0028] ここで、通信を行おうとする各々のコンピュータにインストールされたアプリケーショ ンプログラムが予め定められた互換性のある方法(プロトコル)により通信処理を行う。 そして、各々のアプリケーションプログラムが、互いに離れたコンピュータ上で動作 しており、これらの間においてデータ通信、例えば、送信者のコンピュータ A上で動 作しているアプリケーションプログラム 100が、受信者のコンピュータ B上で動作して レ、るアプリケーションプログラム 101に対して通信を行おうとする。 First, communication is realized by exchanging data based on the data exchange method of the application program that is to communicate. [0028] Here, an application program installed in each computer to communicate with performs communication processing by a predetermined compatible method (protocol). Each application program runs on a computer that is remote from each other, and data communication between them, for example, the application program 100 running on the sender's computer A is received by the recipient's computer B. It tries to communicate with the application program 101 that operates above.
[0029] このとき、アプリケーションプログラム 100力 通信制御を行う通信制御プログラム 10 2に送信するデータ 107を渡す。 At this time, the data 107 to be transmitted is passed to the communication control program 102 that performs the application program 100 power communication control.
通信制御プログラム 102は、送信するデータ 107を直接そのままの形で物理回線 1 06に送出することができない場合、例えば、送信のプロトコルにおいて送信できるデ 一タ量を超えている場合等、物理回線 106上で送受信できるパケットと呼ばれる比較 的小さなデータの塊に分割する。  When the communication control program 102 cannot send the data 107 to be transmitted directly to the physical line 106, for example, when the amount of data that can be transmitted in the transmission protocol is exceeded, the communication control program 102 It is divided into relatively small chunks of data called packets that can be sent and received above.
[0030] 図 1の場合、通信制御プログラム 102がデータ 107を、所定のデータ量 (ビット数) のパケット 109に分割し、通信用ハードウェア 104が処理できる形式に、フォーマット を変換して、物理回線 106を介してコンピュータ Bへ出力する。 [0030] In the case of FIG. 1, the communication control program 102 divides the data 107 into packets 109 of a predetermined amount of data (number of bits), converts the format into a format that can be processed by the communication hardware 104, and performs physical processing. Output to computer B via line 106.
そして、通信用ハードウェア 104は、上記パケット通信用プログラム 102からパケット を受信し、電子信号として、接続されている物理回線 106に対して送出する。  Then, the communication hardware 104 receives the packet from the packet communication program 102 and sends it out to the connected physical line 106 as an electronic signal.
ここで、物理回線 106は、単一の銅線のようなものや、通信ハードウェア 104及び 1 11間にフレーム交換機が介挿されてレ、るものでも良レ、。  Here, the physical line 106 may be a single copper wire or a frame exchange installed between the communication hardware 104 and 111.
[0031] し力しながら、実際にはルータやパケット交換機とレ、つた様々なハードウェアが介挿 され、それぞれが組み合わされて、パケットを遠隔地の指定した別のノードに届ける 能力を持つ回線の集合体、すなわちルーティング処理が入ったネットワークの集合で あっても良い。一般的には構内ネットワーク(LAN)やインターネットなどがある。 通信用ハードウェア 111 (受信者側)は、物理回線 106を介して (経由して)電気信 号としてパケットが入力されると、論理的なデータとしてのパケット 110に変換され、通 信制御プログラム 103に出力される。 [0031] However, in reality, routers and packet switches and various other hardware are inserted, and they are combined to deliver a packet to another specified node at a remote location. Or a set of networks including routing processing. In general, there are local area networks (LAN) and the Internet. When the communication hardware 111 (receiver side) receives a packet as an electrical signal via (via) the physical line 106, the communication hardware 111 converts it into a packet 110 as logical data, and the communication control program. Is output to 103.
[0032] そして、通信制御プログラム 103は、入力される上記パケット 110を、通信用プログ ラム 102が分割したのと逆の方法により結合し、受信したデータ 108としてアプリケー シヨンプログラム 101へ出力する。 [0032] Then, the communication control program 103 combines the input packet 110 by the reverse method that the communication program 102 divides, and uses the received data 108 as an application. Output to Chillon Program 101.
このとき、データ 108は送信者側のアプリケーションプログラム 100が送信しようとし たデータ 107に対応した構成に変換されている。  At this time, the data 108 is converted into a configuration corresponding to the data 107 that the application program 100 on the sender side wishes to transmit.
[0033] そして、アプリケーションプログラム 101は、上記データ 108をアプリケーションプロ グラム 100の出力したデータ 107と同等なものとして入力される。 Then, the application program 101 is input as data 108 equivalent to the data 107 output from the application program 100.
これにより、アプリケーションプログラム 100の送信したデータ 107力 S、アプリケーショ ンプログラム 101へ届いたこととなる。  As a result, the data transmitted by the application program 100 reaches the power 107 and the application program 101.
また、アプリケーションプログラム 101がアプリケーションプログラム 100へデータを 送信する場合、上述した逆の処理が行われる。  When the application program 101 transmits data to the application program 100, the reverse process described above is performed.
[0034] 上記の方法は一般にどのような通信プロトコルを使用してアプリケーション間の通信 を行う場合にもあてはまることである。 [0034] The above method is generally applicable to communication between applications using any communication protocol.
一方、現在、インターネット上において広く普及しており、本発明においても通信の 基本として用いられる TCP/IPプロトコルを使用し、遠隔地にあるアプリケーション (もし くはコンピュータ)同士を通信する図 2に示す方法がよく用いられている。  On the other hand, currently widely spread on the Internet, the TCP / IP protocol used as the basis of communication in the present invention is also used to communicate between applications (or computers) at remote locations as shown in FIG. The method is often used.
この図 2は、 TCP/IPプロトコルを使用して、コンピュータ間のデータ通信を行なう場 合のデータの流れを説明する概念図である。  Fig. 2 is a conceptual diagram illustrating the data flow when data communication between computers is performed using the TCP / IP protocol.
[0035] まず、一般論として、アプリケーションプログラムは、 TCP/IPプロトコルを使用して通 信を行おうとする場合、このプロトコルによりデータの送受信が行える力 TCP/IPプロ トコルの仕様により、送受信するデータがストリームデータ形式となっている必要があ る(TCP/IPプロトコルにおける緊急パケットは除く。以下同様)。 [0035] First, as a general theory, when an application program attempts to communicate using the TCP / IP protocol, it can transmit and receive data using this protocol. Must be in the stream data format (except for urgent packets in the TCP / IP protocol; the same shall apply hereinafter).
ここで、 TCP/IPは良く知られているように、信頼性のある双方向のストリームデータ  Here, as is well known, TCP / IP is a reliable bi-directional stream data.
[0036] また、ストリームデータ転送サービスとは、 2つのアプリケーションプログラム(コンビュ ータ)間でコネクション(片方ノードの IPアドレスとポート番号、および網片方ノードの IP アドレスとポート番号、との 2組の間の論理的回線接続)が形成され、データを送信し ようとするプログラムが複数回に分けてデータを送信した場合、そのデータの内容と 順序が変わらずに受信しょうとするプログラムが受信でき、かつ実際にはデータは送 信しょうとする時または送信過程において分割される場合があっても、受信しようとす るプログラムはデータの区切りに依存する必要がないようなデータ転送サービスのこ とであり、ストリームデータとはその転送サービスによって転送されるデータのことを指 している。 [0036] In addition, the stream data transfer service is a connection between two application programs (computers) (two sets of IP address and port number of one node and IP address and port number of one node). If a program that wants to send data sends data in multiple steps, the program that tries to receive the data can be received without changing the content and order of the data. And in fact, the data is going to be received even if it is going to be transmitted or may be divided in the transmission process. A program is a data transfer service that does not need to depend on data delimiters. Stream data refers to data transferred by the transfer service.
[0037] TCP/IPプロトコルにおいて、送受信されるストリームデータは、ある時点によって開 始されるが、送信側プログラムが終了を宣言しなレ、か、受信側プログラムが受信を停 止するか、コンピュータ間のネットワークが切断されるかのいずれかの時点まで終了 しないこととなる。  [0037] In the TCP / IP protocol, stream data to be transmitted / received starts at a certain point in time, but the transmission side program does not declare the end, or the reception side program stops receiving, or the computer The network will not be terminated until either time when the network is disconnected.
そして、アプリケーションプログラム 100 (送信側プログラム)は、アプリケーションプ ログラム 101 (受信側プログラム)に対して、一度に所定の長さのストリームデータ 115 を送信する。  Then, the application program 100 (transmission side program) transmits stream data 115 of a predetermined length at a time to the application program 101 (reception side program).
[0038] 例えば、アプリケーションプログラム 101が以下の文字列データ  [0038] For example, the application program 101 has the following character string data
ABCDEFGHIJKLMN  ABCDEFGHIJKLMN
を送信しょうとする。  Try to send.
機能プログラムとして OSに含まれる、 TCP/IPプロトコルにより通信を行う機能プログ ラムの 1つである TCP/IPスタックプログラム 117によって、送信側において以下のよう に分割される場合がある。  The function may be divided as follows on the sending side by the TCP / IP stack program 117, which is one of the function programs that communicate with the TCP / IP protocol included in the OS.
ABC DEFG IJK LM N  ABC DEFG IJK LM N
[0039] し力し、このように分割されたパケットをすベて受信したコンピュータの TCP/IPスタツ クプログラム 118は、その内容を自動的に結合し、元の文字列 [0039] The TCP / IP stack program 118 of the computer that has received all of the packets thus divided automatically combines the contents of the original character string.
ABCDEFGHIJKLMN  ABCDEFGHIJKLMN
としてアプリケーションプログラム 101へ出力する。  To the application program 101.
[0040] 次に、図 2を一例として、 IPネットワーク 119により接続されている、コンピュータ A及 び B上で動作している、 TCP/IPプロトコルを用いて通信を行おうとするアプリケーショ ンプログラム 115, 116間において、任意のストリームデータの送受信を行おうとして レ、る場合を例にして説明する。 [0040] Next, taking FIG. 2 as an example, an application program 115, which operates on the computers A and B connected by the IP network 119 and attempts to communicate using the TCP / IP protocol, An example will be described in which an arbitrary stream data is transmitted / received between 116.
まず、アプリケーションプログラム 100が TCP/IPプロトコルを用いて通信を行おうと する際、送信するデータをストリームデータ 115として用意し、 TCP/IPスタックプロダラ ム 117へ出力する。 [0041] TCP/IPスタックプログラム 117は、受け取ったストリームデータ 115を、データ量が 多いためにそのまま IPネットワーク 119上に送出することができないため、このストリー ムデータ 115を IPネットワーク 119へ送出することが可能な、所定のデータ量の複数 の IPパケット 120と呼ばれる種類のパケットに分割し、 TCPヘッダと IPヘッダとを付加 する(TCP/IPの RFC仕様に従う)。 First, when the application program 100 tries to communicate using the TCP / IP protocol, data to be transmitted is prepared as stream data 115 and output to the TCP / IP stack program 117. [0041] The TCP / IP stack program 117 cannot send the received stream data 115 to the IP network 119 as it is because the amount of data is large. Therefore, the stream data 115 can be sent to the IP network 119. The packet is divided into a plurality of types of packets called IP packets 120 having a predetermined amount of data, and a TCP header and an IP header are added (according to the RFC specification of TCP / IP).
そして、 TCP/IPスタックプログラム 117は、分割生成した複数の IPパケット 120を物 理的なネットワークインターフェイスのドライバ 121に出力する。  Then, the TCP / IP stack program 117 outputs the plurality of dividedly generated IP packets 120 to the driver 121 of the physical network interface.
[0042] この物理的なネットワークインターフェイスのドライバ 121とは、物理的なネットワーク インターフェイス装置(ノヽ一ドウエア) 123、例えば LANカードやモデムなどを制御す るためのプログラムである。 The physical network interface driver 121 is a program for controlling a physical network interface device (noware) 123 such as a LAN card or a modem.
通常、 IPネットワーク 119は、物理的な配線としてみると、直接に IPパケット 102を伝 送する機能が設けられてレ、なレ、。  Normally, the IP network 119 has a function to directly transmit the IP packet 102 when viewed as physical wiring.
このため、ドライバ 121は、 IPパケット 120をフレームと呼ばれる物理層ごとに種類の 異なったフォーマット、すなわち電気信号として扱いやすい形式のパケットに変換す る(以下、フレーム 122と呼ぶ)。  For this reason, the driver 121 converts the IP packet 120 into a packet of a different format for each physical layer called a frame, that is, a packet that can be easily handled as an electric signal (hereinafter referred to as a frame 122).
[0043] ここで、ドライバ 121は、 IPネットワーク 119へ送出するため、 IPパケット 120をフレー ム 122へ変換し、このフレーム 122を、物理的なネットワークインターフェイス装置 12Here, the driver 121 converts the IP packet 120 into a frame 122 for transmission to the IP network 119, and converts the frame 122 into the physical network interface device 12.
3に対して出力する。 Output to 3.
ネットワークインターフェイス装置 123は、入力するフレーム 122を電気信号に変換 し、既存の物理的な IPネットワーク 119へ送出する。  The network interface device 123 converts the input frame 122 into an electrical signal and sends it to the existing physical IP network 119.
実際には、 IPパケット 120をフレーム 122へ変換する処理は、ドライバ 121が行わず に、 TCP/IPスタックプログラム 117が行っても良いし、物理的なネットワークインターフ ヱイス装置 123が行っても良レヽ。  Actually, the process of converting the IP packet 120 into the frame 122 may be performed by the TCP / IP stack program 117 without being performed by the driver 121, or may be performed by the physical network interface device 123. .
[0044] この IPパケット 120をフレーム 122へ変換する処理は、外部力、ら見ると一括して行わ れているため、 1機能として考えられるからである。 This is because the process of converting the IP packet 120 into the frame 122 is considered as one function because it is performed at a glance when viewed from the external force.
上記 IPネットワーク 119において、フレーム 123の宛先が到達可能であれば、各 IP パケット 120の IPヘッダに記述されている宛先 IPアドレスを持ったコンピュータに対し て IPパケット 120 (フレーム 122)が伝播されて到着する。 そして、このフレーム 122が宛先のコンピュータ B (IPパケット 120の最終的な宛先の アプリケーションプログラム 101が起動している)に到達すると、ネットワークインターフ ェイス装置 124は、 IPネットワーク 119から、電気信号に変換されたフレーム 122を受 信し、それをフレーム 125としてドライバ 126へ出力する。 In the above IP network 119, if the destination of frame 123 is reachable, IP packet 120 (frame 122) is propagated to the computer having the destination IP address described in the IP header of each IP packet 120. arrive. When this frame 122 reaches the destination computer B (the final destination application program 101 of the IP packet 120 is activated), the network interface device 124 is converted from the IP network 119 into an electrical signal. Frame 122 is received and output to driver 126 as frame 125.
[0045] 次に、ドライバ 126は上記フレーム 125が入力されると、送信側と逆の処理により、 フレーム 125力、ら IPパケット 127を抽出し、 TCP/IPスタックプログラム 118へ出力する 図 2に示されているように、 TCP/IPスタックプログラム 118は、 TCP/IPプロトコルの RFC仕様に定められている方法により、入力される IPパケット 127内の IPヘッダ及び TCPヘッダを参照し、 IPアドレスやポート番号等の宛先情報を参照して、宛先である アプリケーションプログラム 101を決定し、このアプリケーションプログラム 101に対し て、ストリームデータ 115と同様のデータ形式あるストリームデータ 116に変換(すな わち復元)する。 Next, when the frame 125 is input, the driver 126 extracts the IP packet 127 from the frame 125 force, and outputs it to the TCP / IP stack program 118 by processing reverse to that on the transmission side. As shown, the TCP / IP stack program 118 refers to the IP header and TCP header in the input IP packet 127 by the method defined in the RFC specification of the TCP / IP protocol, and Referring to the destination information such as the port number, the destination application program 101 is determined, and the application program 101 is converted into stream data 116 having the same data format as stream data 115 (that is, restoration). To do.
[0046] ここで、 TCP/IPスタックプログラム 118は、 TCP/IPスタックプログラム 117が行う、スト リームデータ 115を複数の IPパケット 120へ分割したのと逆の処理を行い、複数の IP パケット 127を、 TCPヘッダの送信順を示す情報に基づいて接続し、ストリームデータ 116 (すなわちストリームデータ 115)に復元する。  [0046] Here, the TCP / IP stack program 118 performs the reverse process of dividing the stream data 115 into a plurality of IP packets 120 performed by the TCP / IP stack program 117. The connection is made based on the information indicating the transmission order of the TCP header, and the stream data 116 (that is, the stream data 115) is restored.
そして、 TCP/IPスタックプログラム 118は、復元したストリームデータ 116を、アプリ ケーシヨンプログラム 101へ出力する。  Then, the TCP / IP stack program 118 outputs the restored stream data 116 to the application program 101.
[0047] 上述した処理を行うことにより、 TCP/IPプロトコルを用いて、アプリケーションプログ ラム 100及び 101の間において、ストリームデータ 115 (ストリームデータ 116)の送受 信が行える。  By performing the above-described processing, the stream data 115 (stream data 116) can be transmitted and received between the application programs 100 and 101 using the TCP / IP protocol.
上述した例では、コンピュータ A及び Bの 2台のコンピュータ間において、アプリケー シヨンプログラム 100がアプリケーションプログラム 101に対し、単一のストリームデー タの送信を例として説明した。  In the above-described example, the application program 100 transmits the single stream data to the application program 101 between the two computers A and B as an example.
[0048] し力、しながら、実際には TCP/IPプロトコルを使用すると 1台のコンピュータ上で複数 のアプリケーションプログラムを動作させ、かつ IPネットワーク 119上に、同様に複数 のアプリケーションプログラムが動作しているコンピュータが複数ある場合、論理的に はそれらの各アプリケーションプログラム間において、それぞれ独立して、論理的なス トリームデータの流れを形成し、各アプリケーションプログラム間の通信がお互いにデ ータの内容を干渉させることなく通信し合うことができる。 However, when the TCP / IP protocol is actually used, a plurality of application programs are operated on one computer, and a plurality of application programs are also operated on the IP network 119 in the same manner. Logically if there are multiple computers Each of these application programs independently forms a logical stream data flow, and communication between the application programs can communicate with each other without interfering with the contents of the data. it can.
[0049] このように、 TCP/IPプロトコルは、相互の内容に干渉し合うことが無い複数個のストリ ームデータ転送サービスを、実際には 1本の物理的な通信回線やネットワークインタ 一フェイス装置を経由して行うことができる多重化機能を有してレ、る。  [0049] As described above, the TCP / IP protocol provides a plurality of stream data transfer services that do not interfere with each other's contents, and actually uses one physical communication line or network interface device. It has a multiplexing function that can be done via.
この場合の論理的な 1組のストリームデータ転送サービス、すなわち、アプリケーシ ヨンプログラム 100及びアプリケーションプログラム 101間におけるデータ送受信のパ ス(通信回線)を、「TCP/IPコネクション」と呼ぶ。  A logical set of stream data transfer services in this case, that is, a data transmission / reception path (communication line) between the application program 100 and the application program 101 is called a “TCP / IP connection”.
また、図 2の例において、アプリケーションプログラム 100力 TCP/IPプロトコルを用 いた通信により、アプリケーションプログラム 101に対して、ストリームデータを送信す るのみであつたが、 TCP/IPコネクションにおいては、逆方向の送信処理も順方向の 送信処理と並列に行える。すなわち、 TCP/IPコネクションは双方向コネクションであり In the example of FIG. 2, the application program 100 only transmits stream data to the application program 101 by communication using the TCP / IP protocol. However, in the TCP / IP connection, the reverse direction is used. This transmission process can also be performed in parallel with the forward transmission process. That is, the TCP / IP connection is a bidirectional connection.
、全二重通信が行える。 Full duplex communication can be performed.
[0050] 上述した図 2に示す例において、 1台のコンピュータ上で 1つのアプリケーションプロ グラムしか動作していなかつたが、 TCP/IPプロトコルにおいては 2台のコンピュータ各 々で複数のアプリケーションプログラムを動作させ、この 2台のコンピュータ間におい て、それぞれのアプリケーションプログラム間でそれぞれ TCP/IPコネクションを作成し 、この TCP/IPコネクションにおいて、双方向にストリームデータの送受信を行うことが 可能である。  [0050] In the example shown in Fig. 2 above, only one application program is running on one computer, but in the TCP / IP protocol, multiple application programs run on each of the two computers. In addition, a TCP / IP connection can be created between each application program between the two computers, and stream data can be transmitted and received in both directions using this TCP / IP connection.
上述した送受信の場合、通信の当事者である各アプリケーションプログラム同士は 、現在接続して TCP/IPコネクション内における通信先のアプリケーションプログラムを 、その他の通信先のアプリケーションプログラムと区別するため、 16ビットの数値によ る識別情報により相手先を区別することになつている。 上記識別情報力 STCPヘッダ におけるポート番号である。  In the case of the above transmission / reception, each application program that is a party of communication is a 16-bit numerical value to distinguish the application program that is currently connected and the communication destination application program in the TCP / IP connection from the other communication destination application programs. The other party is identified by the identification information. This is the port number in the identification information STCP header.
[0051] 上述した 2つのコンピュータ間において、それぞれ複数のアプリケーションが動作し ており、各アプリケーション間における通信先の特定処理を、図 3を用いて説明する。 図 3は、 TCP/IPコネクションにおける通信先の特定処理の流れを説明する概念図 である。 [0051] A plurality of applications are running between the two computers described above, and a communication destination specifying process between the applications will be described with reference to FIG. Figure 3 is a conceptual diagram illustrating the flow of processing for identifying the communication destination in a TCP / IP connection. It is.
TCP/IPコネクションによる通信先の特定において、コンピュータ B上で 2つのアプリ ケーシヨンプログラム 131 , 132が動作しており、アプリケーションプログラム 131はコ ンピュータ A上のポート番号 Xを使用しているアプリケーションプログラムと、一方のァ プリケーシヨンプログラム 132はコンピュータ A上のポート番号 Yを使用しているアプリ ケーシヨンプログラムと、それぞれ別の TCP/IPコネクションを成立させて通信を行って レ、るものとする。  Two application programs 131 and 132 are running on the computer B to identify the communication destination by the TCP / IP connection, and the application program 131 is an application program using the port number X on the computer A. One application program 132 communicates with the application program using port number Y on computer A by establishing a separate TCP / IP connection.
[0052] アプリケーションプログラム 131は、コンピュータ Aのポート番号 Xに対して送信した いストリームデータ 138を生成し、 TCP/IPプロトコルスタック 135に出力するとともに、 ストリームデータ 138のコンピュータ Aのポート番号 Xへの送信を指示する。  [0052] The application program 131 generates stream data 138 to be transmitted to the port number X of the computer A, outputs the stream data 138 to the TCP / IP protocol stack 135, and transmits the stream data 138 to the port number X of the computer A. Instruct to send.
また、ほぼ同時に、アプリケーションプログラム 132は、コンピュータ Aのポート番号 Y に対して送信したいストリームデータを生成し、 TCP/IPプロトコルスタック 135に出力 するとともに、ストリームデータ 139のコンピュータ Aのポート Yへの送信を指示する。  At almost the same time, the application program 132 generates stream data to be transmitted to the port number Y of the computer A, outputs it to the TCP / IP protocol stack 135, and transmits the stream data 139 to the port Y of the computer A. Instruct.
TCP/IPプロトコルスタック 135は、アプリケーションプログラム 131 , 132双方から入 力したストリームデータ 138及び 139各々を、それぞれ送信可能なサイズに分割し、 IPパケット 133, 134を生成する。  The TCP / IP protocol stack 135 divides each stream data 138 and 139 input from both application programs 131 and 132 into sizes that can be transmitted, and generates IP packets 133 and 134.
[0053] そして、 TCP/IPプロトコルスタック 135は、分割した所定のパケット単位のデータの 先頭部分に、宛先のコンピュータ Aのポート番号,送信順を示すシーケンス番号,宛 先のコンピュータ Aの IPアドレスなどを含む IPヘッダを付加した複数の IPパケット(IP パケット 133, 134)を生成する。 [0053] The TCP / IP protocol stack 135 then adds the port number of the destination computer A, the sequence number indicating the transmission order, the IP address of the destination computer A, etc. Generate multiple IP packets (IP packets 133, 134) with IP headers including
そして、 TCP/IPプロトコルスタック 135は、生成した IPパケットを処理が終わった順 に、または任意の順にネットワークインターフェイスドライバ 137に対して出力する。 これにより、ネットワークインターフェースドライバ 137fま、ネットワークインターフェイ ス装置を制御し、このネットワークインターフェース装置を介して、ネットワークおよび IPネットワーク上に、 IPパケットを送出する。  Then, the TCP / IP protocol stack 135 outputs the generated IP packets to the network interface driver 137 in the order in which the processing is completed or in an arbitrary order. As a result, the network interface device 137f is controlled to the network interface device, and the IP packet is transmitted to the network and the IP network via the network interface device.
[0054] そして、宛先のコンピュータ Aのネットワークインターフェイス装置力 IPパケットを受 信すると、コンピュータ Aに実装されている TCP/IPプロトコルスタック 135により、 IPパ ケットに含まれるポート番号に基づき、宛先のアプリケーションプログラム毎に、ストリ ームデータが再構成され、対応したアプリケーションプログラムに出力される。 [0054] Upon receiving the IP packet of the network interface device of the destination computer A, the TCP / IP protocol stack 135 implemented in the computer A uses the destination application based on the port number included in the IP packet. For each program, Is reconstructed and output to the corresponding application program.
逆に、コンピュータ Aから、コンピュータ B上において動作している各アプリケーショ ンプログラムに対 UPパケットが送信されると、送信したと際と逆方向に、ネットワーク インターフェイス装置、ネットワークインターフェイスドライバを経由して TCP/IPプロトコ ルスタックに入ってくる。  Conversely, when a UP packet is sent from computer A to each application program running on computer B, TCP is sent via the network interface device and network interface driver in the opposite direction. / IP comes into the protocol stack.
[0055] TCP/IPプロトコルスタックは各 IPパケットの IPヘッダ及び TCPヘッダを参照して、送 信元のコンピュータ Aの IPアドレス、宛先 IPアドレス、送信元ポート番号、宛先ポート番 号を抽出する。 [0055] The TCP / IP protocol stack refers to the IP header and TCP header of each IP packet, and extracts the IP address, the destination IP address, the source port number, and the destination port number of the transmission source computer A.
そして、 TCP/IPプロトコルスタックは、宛先の IPアドレス及び宛先ポート番号が正し い場合、各コネクションの組ごとに、 IPヘッダ及び TCPヘッダを取り除いたデータを、 TCPヘッダにおけるシーケンス番号をもとにつなぎ合わせる。  Then, if the destination IP address and destination port number are correct, the TCP / IP protocol stack uses the data obtained by removing the IP header and TCP header for each set of connections based on the sequence number in the TCP header. Connect together.
図 3の場合において、 TCP/IPプロトコルスタックは、再構成したストリームデータを、 対応するポート番号へ、すなわち、コンピュータ Aのポート Xから届いたデータの場合 、 1つ目のアプリケーションプログラム 131に、一方、コンピュータ Aのポート Yから届い たデータの場合、 2つ目のアプリケーションプログラム 132にそれぞれ出力する。  In the case of FIG. 3, the TCP / IP protocol stack sends the reconfigured stream data to the corresponding port number, that is, to the first application program 131 if the data arrives from port X of computer A. If the data arrives from port Y of computer A, it is output to the second application program 132, respectively.
[0056] 上述したパケットの送受信が行えるように、 TCP/IPパケットのヘッダには、送信元 IP アドレス,送信元ポート番号,宛先 IPアドレス,宛先ポート番号,シーケンス番号,分 害 |Jされたストリームデータの一部,その他の情報(この他の情報については RFCを参 照)が含まれている。 [0056] The TCP / IP packet header includes a source IP address, a source port number, a destination IP address, a destination port number, a sequence number, a harmed | Part of the data and other information (see RFC for other information).
また、 TCP/IPコネクションは、通信を行おうとしている、または行っているノード上の プログラムによって認識される双方向のストリームデータ転送を提供する論理的なコ ネクシヨンであり、そのコネクションは、送信元 IPアドレス,送信元ポート番号,宛先 IP アドレス,宛先ポート番号の 4つの情報の集合によって他のコネクションと区別される。  A TCP / IP connection is a logical connection that provides a two-way stream data transfer that is recognized by a program on the node that is trying to communicate or is doing so. It is distinguished from other connections by a set of four pieces of information: IP address, source port number, destination IP address, and destination port number.
[0057] 上記シーケンス番号は、もともと一連のデータの流れであったストリームデータをパ ケット分割する際、送信者によって付加される規則性のある番号であり、受信した TCP/IPプロトコルスタック等の通信制御プログラムが参考にして、分割されたパケット 力 ストリームデータを再構成するために用いられる。 [0057] The above sequence number is a regular number added by the sender when the stream data, which was originally a series of data flows, is divided into packets, and the received communication such as the TCP / IP protocol stack is received. It is used by the control program to reconstruct the divided packet power stream data.
また、上述した内容において、 2つのアプリケーションプログラムがある場合、それら のアプリケーションプログラム間において、最大 1つの TCP/IPコネクションが作成され て通信が行われている場合のみを説明した。 If there are two application programs in the above, Only the case where a maximum of one TCP / IP connection has been created and communication has been described between application programs.
しかしながら、実際の TCP/IPプロトコルにおいて、 2つのアプリケーションプログラム の間で、さらに複数の(2本以上の) TCPコネクションを形成して通信を行うこともでき る。  However, in the actual TCP / IP protocol, communication can also be performed by forming multiple (two or more) TCP connections between two application programs.
上述した処理が、接続が完了した後の TCP/IPコネクションの概略であり、他にも記 載しない処理が行われるが、本発明とは直接関係がないため、説明を省略する (詳し くは RFCなどの仕様書に明記されている)。  The above processing is an outline of the TCP / IP connection after the connection is completed, and processing not described elsewhere is performed. However, since it is not directly related to the present invention, the description thereof is omitted (details). (Specified in specifications such as RFC).
[0058] 2台のコンピュータ間で 2つのアプリケーションプログラム力 TCP/IPを使用して通信 を行なう際のデータの流れを図 2において説明してきたが、 TCP/IPプロトコルによる データ通信が可能である状態とは、すでに TCP/IPコネクションが 2つのプログラム間 で何らかの方法で成立していることが条件となっている。 [0058] The flow of data when communicating using two application program capabilities between two computers using TCP / IP has been explained in Fig. 2, but data communication using the TCP / IP protocol is possible. The condition is that a TCP / IP connection has already been established in some way between the two programs.
すなわち、 TCP/IPプロトコルにおいて、 2つのアプリケーションプログラム間で  In other words, in the TCP / IP protocol, between two application programs
TCP/IPコネクションを成立させ、この TCP/IPコネクションを介して双方の通信が可能 になるために、図 4に示す様に、一般的にはいずれかのコンピュータ上で動作してい るいずれかのアプリケーションプログラムが「TCP/IPサーバー」となり、もう一方のコン 要がある。  In order to establish a TCP / IP connection and enable both parties to communicate via this TCP / IP connection, as shown in Fig. 4, in general, one of the computers running on one of the computers The application program becomes a “TCP / IP server” and there is another component.
図 4は、 TCP/IPサーバープログラムと TCP/IPクライアントプログラムとの関係を示す 概念図である。  Figure 4 is a conceptual diagram showing the relationship between the TCP / IP server program and the TCP / IP client program.
[0059] この場合、図 4 (a)に示すように、 TCP/IPサーバープログラム 140は、 1つ以上の TCP/IPポート(ポート番号 X)を待ち受け状態にしている。  In this case, as shown in FIG. 4 (a), the TCP / IP server program 140 is waiting for one or more TCP / IP ports (port number X).
一方、 TCP/IPクライアントプログラム 141は、接続したレ、 TCP/IPサーバープログラ ム 140が動作しているコンピュータの IPアドレスとそのプログラムが待ち受け状態にし ているポート番号(TCP/IPポートのポート番号)の 2つを指定して、 TCP/IPサーバー プログラム 140が動作しているコンピュータに対して接続要求信号(同期要求信号)を 送信する。  On the other hand, the TCP / IP client program 141 is connected to the connected computer, the IP address of the computer on which the TCP / IP server program 140 is running, and the port number that the program is waiting on (TCP / IP port port number). And send a connection request signal (synchronization request signal) to the computer running the TCP / IP server program 140.
[0060] 次に、図 4 (b)に示すように、 TCP/IPサーバープログラム 140は、接続要求があった ことを検出し、 TCP/IPクライアントプログラム 141との接続を許可することを決定した 場合、接続受付応答信号を送信元の TCP/IPクライアントプログラム 141に対して返 信する。 [0060] Next, as shown in FIG. 4 (b), the TCP / IP server program 140 has a connection request. If it is determined that the connection with the TCP / IP client program 141 is permitted, a connection acceptance response signal is returned to the TCP / IP client program 141 of the transmission source.
そして、この後 TCP/IPクライアントプログラム 141は、接続受付応答信号を受信した 旨の確認信号(ァクノレッジ信号)を、 TCP/IPサーバープログラム 140に対して返信 する。  Thereafter, the TCP / IP client program 141 returns a confirmation signal (acknowledge signal) indicating that the connection acceptance response signal has been received to the TCP / IP server program 140.
[0061] 次に、図 4 (c)に示すように、 TCP/IPサーバープログラム 140は、上記確認信号を 受信した時点において、 2つのアプリケーションプログラムの間に、新しレ、 TCP/IPコネ クシヨンを構成する。  [0061] Next, as shown in FIG. 4 (c), the TCP / IP server program 140, when receiving the confirmation signal, establishes a new TCP / IP connection between the two application programs. Configure.
上述した図 4に示す一連の処理を行って、 2つの TCP/IPクライアント間において、新 しレ、 TCP/IPコネクションを成立させる手続き力 TCP/IPハンドシェイクである。  This is a procedural power TCP / IP handshake that establishes a new TCP / IP connection between two TCP / IP clients by performing the series of processing shown in FIG. 4 described above.
上述した処理を簡潔に示した概念図が図 4であり、アプリケーションプログラムである  Fig. 4 is a conceptual diagram that briefly shows the processing described above, which is an application program.
[0062] すなわち、 TCP/IPプロトコルを使用し、何らかのデータ通信を行う場合、通信を行 おうとする 2つのアプリケーションプログラムにおいて、いずれか一方があらかじめ TCP/IPサーバープログラムとなり、 1つ以上の TCP/IPポートを待ち受けている必要が あること力わ力る。 [0062] That is, when performing some data communication using the TCP / IP protocol, one of the two application programs to communicate is a TCP / IP server program in advance, and one or more TCP / IP Powerful that you need to wait for the port.
このポートのことを待ち受けポートと呼び、このポートの番号を待ち受けポート番号と 呼び、通常、 1つのアプリケーションプログラムが待ち受けポートを複数用意することも できる。  This port is called a standby port, and this port number is called a standby port number. Normally, one application program can prepare multiple standby ports.
[0063] また、 TCP/IPサーバープログラムは、 2つ以上の複数の TCP/IPクライアントプログラ ムから接続要求があった場合、それらすベての接続を許可することができる。  [0063] Further, when there is a connection request from two or more TCP / IP client programs, the TCP / IP server program can permit all the connections.
そして、 TCP/IPサーバープログラムは、接続を許可した後、 1つで(単独で)複数の TCP/IPクライアントプログラムとの間に TCP/IPコネクションを形成することになり、それ ぞれの TCP/IPクライアントプログラムとの間で、他の TCPクライアントプログラムと別々 にストリームデータの送受信を行うことができる。  Then, after permitting the connection, the TCP / IP server program forms a TCP / IP connection with multiple TCP / IP client programs by itself (independently). Stream data can be sent to and received from IP client programs separately from other TCP client programs.
[0064] <本発明の SoftEther (登録商標)によるネットワーク構成の説明 >  <Description of Network Configuration by SoftEther (Registered Trademark) of the Present Invention>
SoftEther (登録商標)、以下、本発明の VPNシステムとする。 本発明の VPNシステムを使用すると、インターネットなどの IPネットワーク上で 2台以 上のコンピュータを接続し、仮想プライベートネットワーク(以下 VPN)を構築すること ができる。 SoftEther (registered trademark), hereinafter referred to as the VPN system of the present invention. Using the VPN system of the present invention, a virtual private network (hereinafter referred to as VPN) can be constructed by connecting two or more computers over an IP network such as the Internet.
上記 VPNシステムは、実際にハードウェア的(物理的)なネットワークインターフェイ スを有してはいないが、論理的には IEEE802.3に対応したネットワークインターフェイ ス(以下 LANカード)の動作をエミユレーシヨンする仮想的なネットワークインターフエ イスデバイス(以下仮想 LANカード)と呼ばれるプログラム(あるいは同様な機能を有 する ASIC等で構成されるハードウェアシステム)と、やはり実際にハードウェア的な ネットワークインターフェイスを持たないが論理的には複数の IEEE802.3に対応したネ ットワークインターフェイスからの接続口を持っているパケット交換装置(以下スィッチ ング HUB)の動作をエミユレーシヨンする仮想的な IEEE802.3 MACフレーム交換プロ グラム(以下仮想 HUB)と呼ばれるプログラム(あるいは同様な機能を有する ASIC等 で構成されるハードウェアシステム)の 2つによって構成される。  Although the above VPN system does not actually have a hardware (physical) network interface, the operation of a network interface (hereinafter referred to as a LAN card) that supports IEEE802.3 is logically emulated. A virtual network interface device (hereinafter referred to as a virtual LAN card) called a program (or a hardware system composed of ASICs with similar functions) and a hardware network interface that does not actually have Is a virtual IEEE802.3 MAC frame exchange program that emulates the operation of a packet switching device (hereinafter referred to as a switching HUB) that has a connection port from multiple network interfaces that support IEEE802.3. (Hereinafter referred to as Virtual HUB) program (or similar It constituted by two configured hardware system) in ASIC or the like having a capability.
[0065] 図 5は、本発明の一実施形態である通信方式の VPNシステムの構成例を示す概 念図である。 FIG. 5 is a conceptual diagram showing a configuration example of a communication-system VPN system according to an embodiment of the present invention.
この図において、 2台のコンピュータ、 VPNクライアントコンピュータ 10及び 20に仮 想 LANカードプログラム 11 , 21それぞれをインストールし、 1台のコンピュータに仮想 HUBプログラム 31をインストールする。  In this figure, virtual LAN card programs 11 and 21 are installed on two computers, VPN client computers 10 and 20, respectively, and virtual HUB program 31 is installed on one computer.
これら 3台のコンピュータが相互に IPプロトコルにより通信可能な既存の IPネットヮー ク 119(インターネットなど)に接続されている。  These three computers are connected to an existing IP network 119 (such as the Internet) that can communicate with each other using the IP protocol.
[0066] この図 5の本発明の実施形態の構成は、仮想 HUBプログラム 31がインストールされ 、仮想 HUBとして動作しているコンピュータを VPNサーバーコンピュータ 30とし、仮 想 LANカードプログラム 11 , 21各々がインストールされて、仮想 LANカードとして動 作しているコンピュータを、 VPNクライアントコンピュータ 10と、 VPNクライアントコンビ ユータ 20としている。 The configuration of the embodiment of the present invention of FIG. 5 is that the virtual hub program 31 is installed, the computer operating as the virtual hub is the VPN server computer 30, and each of the virtual LAN card programs 11 and 21 is installed. The computers operating as the virtual LAN card are the VPN client computer 10 and the VPN client computer 20.
図 5の構成において、 VPNクライアントコンピュータ 10と、 VPNクライアントコンピュー タ 20との両方で動作している仮想 LANカードプログラム 11 , 21各々は、 TCP/IPクラ イアントプログラム(仮想 LANカードがハードウェアの場合、 TCP/IPクライアント端末) として動作している。 In the configuration shown in FIG. 5, each of the virtual LAN card programs 11 and 21 operating on both the VPN client computer 10 and the VPN client computer 20 is a TCP / IP client program (the virtual LAN card is a hardware (If a TCP / IP client terminal) Is working as.
[0067] VPNサーバーコンピュータ 30で動作している仮想 HUBプログラム 31が TCP/IPサー バープログラム(仮想 HUBがハードウェアの場合、 TCP/IPサーバ装置)として動作し ている。  [0067] The Virtual Hub program 31 running on the VPN server computer 30 is running as a TCP / IP server program (or TCP / IP server device if the Virtual Hub is hardware).
また、仮想 HUBプログラム 31は、 TCP/IPサーバープログラムとして、所定の TCPポ ートを待ち受け状態のポートとして準備している。  The Virtual Hub program 31 prepares a predetermined TCP port as a standby port as a TCP / IP server program.
そして、仮想 HUBプログラム 31は、すでに述べたように、 VPNクライアントコンピュー タ 10及び 20の双方において動作している仮想 LANカードプログラム 11 , 21が、 TCP/IPサーバープログラムの待ち受けている TCPポートに対して、 TCP/IPプロトコル によるハンドシェイクを完了した後にコネクションを形成し、 VPNクライアントコンピュー タ 10及び 20双方に対して、認証作業等を完了させる。  As described above, the Virtual Hub program 31 is configured so that the virtual LAN card programs 11 and 21 operating on both the VPN client computers 10 and 20 are connected to the TCP port on which the TCP / IP server program is listening. On the other hand, after completing the handshake using the TCP / IP protocol, a connection is formed, and authentication work and the like are completed for both the VPN client computers 10 and 20.
[0068] そして、各仮想 LANカードプログラム 11 , 21 (以下、仮想 LANカード 11, 21とする) と、仮想 HUBプログラム 31 (以下、仮想 HUB31とする)との間において、上述したコネ クシヨンの形成及び認証作業等の作業が完了している場合、仮想 LANカード 11 , 21 が仮想 HUB31に対して、本発明の VPNシステムにおける VPN接続が完了した状態と 呼ぶことにする。 [0068] The above-described connection is formed between each virtual LAN card program 11, 21 (hereinafter referred to as virtual LAN card 11, 21) and virtual HUB program 31 (hereinafter referred to as virtual HUB 31). When the work such as the authentication work is completed, the virtual LAN cards 11 and 21 are referred to as a state where the VPN connection in the VPN system of the present invention is completed with respect to the virtual HUB 31.
また、同一の仮想 HUB31に 2つ以上の仮想 LANカードが接続を完了しているとき、 これらの仮想 LANカードの間の通信は、 IEEE802.3の仕様に適合した MACフレーム によって行われる場合、仮想 HUB31を経由した形で任意に行うことができる。  In addition, when two or more virtual LAN cards have been connected to the same Virtual Hub 31, communication between these virtual LAN cards is performed when a MAC frame that conforms to the IEEE802.3 specifications is used. This can be done arbitrarily via HUB31.
[0069] したがって、図 5に示す本発明の実施形態による VPNシステムにおいては、 VPNク ライアントコンピュータ 10の仮想 LANカード 11と、 VPNクライアントコンピュータ 20の 仮想 LANカード 21との間において、 VPNサーバーコンピュータ 30で動作している仮 想 HUBプログラムを介して(経由して)、任意の MACフレーム(図 2におけるフレーム 1 22, 125に相当)を送受信することが可能である。  Therefore, in the VPN system according to the embodiment of the present invention shown in FIG. 5, between the virtual LAN card 11 of the VPN client computer 10 and the virtual LAN card 21 of the VPN client computer 20, the VPN server computer 30 It is possible to send and receive arbitrary MAC frames (corresponding to frames 122 and 125 in Fig. 2) via (via) the virtual HUB program running on.
この接続状態において、 VPNクライアントコンピュータ 10上で動作しているアプリケ ーシヨンプログラム 12がネットワーク通信を行おうとする際、このアプリケーションプロ グラム 12は、既存のプロトコルスタックに対して送信するデータを出力する。  In this connection state, when the application program 12 operating on the VPN client computer 10 tries to perform network communication, the application program 12 outputs data to be transmitted to the existing protocol stack.
[0070] そして、〇Sの一部として設けられたプロトコルスタック 13は、上記データをすでに述 ベたように、所定のデータ量の複数の MACフレームに変換し、予めアプリケーション プログラム 12に設定されている LANカード、すなわち仮想 LANカード 11へ、この MACフレームを出力する。 [0070] Then, the protocol stack 13 provided as a part of 〇S already describes the above data. As described above, the MAC frame is converted into a plurality of MAC frames having a predetermined amount of data, and the MAC frame is output to the LAN card set in advance in the application program 12, that is, the virtual LAN card 11.
ここで、仮想 LANカード 11は、上記 MACフレームを入力すると、後述する暗号化及 び SEヘッダを付加してカプセル化を行う等の、本発明の VPNに必要な処理を行い、 変更後のパケットをプロトコルスタック 13へ出力する。  Here, when the virtual LAN card 11 receives the MAC frame, the virtual LAN card 11 performs processing necessary for the VPN of the present invention, such as adding an encryption and an SE header, which will be described later, and performing encapsulation. Is output to protocol stack 13.
次に、プロトコルスタック 13は、入力される上記パケットに所定の TCP/IPヘッダを付 加し、 IPパケットに変換したものを、インターフェースデバイス 14を介して IPネットヮー ク 119へ送出する。  Next, the protocol stack 13 adds a predetermined TCP / IP header to the input packet and converts the packet into an IP packet, and sends it to the IP network 119 via the interface device 14.
[0071] 上記 IPパケットが IPネットワークに設けられた所定のルーティング等により、 VPNサー バーコンピュータ 30に送り届けられる(到達する)と、プロトコルスタック 33がインター フェースデバイス 34を介して、この IPパケットを受信する。  [0071] When the IP packet is delivered (arrived) to the VPN server computer 30 by predetermined routing or the like provided in the IP network, the protocol stack 33 receives the IP packet via the interface device 34. To do.
そして、プロトコルスタック 33は、 TCP/IPヘッダを参照して、この IPパケットの宛先が 仮想 HUB31であることを検出すると、 IPパケットを仮想 HUB31へ出力する。  When the protocol stack 33 detects that the destination of the IP packet is the Virtual HUB 31 by referring to the TCP / IP header, the protocol stack 33 outputs the IP packet to the Virtual HUB 31.
これにより、仮想 HUB31は、本発明の VPNシステムにおける IPパケットを入信するこ とができ、 VPNクライアントコンピュータ 10における仮想 LANカード 11が行ったカプセ ル化処理等に対して逆の処理を行レ、、 VPNクライアントコンピュータ 10のプロトコルス タック 13が生成した MACフレームを抽出する。  As a result, the Virtual Hub 31 can receive the IP packet in the VPN system of the present invention, and performs the reverse process to the encapsulation process performed by the virtual LAN card 11 in the VPN client computer 10. The MAC frame generated by the protocol stack 13 of the VPN client computer 10 is extracted.
[0072] 次に、仮想 HUB31は、抽出した各 MACフレームに対して、後述する暗号化及び SE ヘッダを付加してカプセル化を行う等の、本発明の VPNに必要な処理を行い、変更 後のパケットをプロトコルスタック 33へ出力する。 [0072] Next, the Virtual HUB 31 performs processing necessary for the VPN of the present invention such as adding the encryption and SE header to be described later to the extracted MAC frame and encapsulating it, and after the change Packet is output to protocol stack 33.
そして、プロトコルスタック 33は、入力される上記パケットに対し、宛先力 SVPNクライ アントコンピュータ 20の仮想 LANカード 21である TCP/IPヘッダを付加し、 IPパケット を生成して、この IPパケットをインターフェースデバイス 34を介して、 IPネットワーク 11 9へ送出する。  Then, the protocol stack 33 adds a TCP / IP header, which is the virtual LAN card 21 of the destination SVPN client computer 20, to the input packet, generates an IP packet, and sends the IP packet to the interface device. It is sent to IP network 11 9 via 34.
[0073] 上記 IPパケットが IPネットワークに設けられた所定のルーティング等により、 VPNクラ イアントコンピュータ 20に送り届けられる(到達する)と、プロトコルスタック 23がインタ 一フェースデバイス 24を介して、この IPパケットを受信する。 次に、プロトコルスタック 23は、上記 IPパケットを受信すると、 TCP/IPヘッダを参照し て、宛先が TCP/IP仮想 LAN21の場合、この IPパケットを仮想 LANカード 21へ出力す る。 [0073] When the IP packet is delivered (arrived) to the VPN client computer 20 by predetermined routing or the like provided in the IP network, the protocol stack 23 sends the IP packet via the interface device 24. Receive. Next, when receiving the IP packet, the protocol stack 23 refers to the TCP / IP header and outputs the IP packet to the virtual LAN card 21 when the destination is the TCP / IP virtual LAN 21.
そして、仮想 LANカード 21は、上記 IPパケットを入力すると、 VPNサーバーコンビュ ータ 30の仮想 HUB31が行ったカプセル化処理等と逆の処理を行レ、、 VPNクライアン トコンピュータ 10のプロトコルスタック 13が生成した MACフレームを抽出し、順次プロ トコルスタック 23へ出力する。  When the virtual LAN card 21 receives the IP packet, the virtual LAN card 21 performs processing opposite to the encapsulation processing performed by the virtual hub 31 of the VPN server computer 30 and the protocol stack 13 of the VPN client computer 10 The generated MAC frames are extracted and sequentially output to the protocol stack 23.
[0074] 次に、プロトコルスタック 23は、入力される各 MACフレームを、 TCP/IPヘッダを参照 して、プロトコルスタック 13の出力順に、 MACフレームのデータの並び替え等の所定 の処理を行い、アプリケーションプログラム 12の送信したデータを再構成して、宛先 であるアプリケーションプログラム 22へ出力する。 [0074] Next, the protocol stack 23 refers to the TCP / IP header for each input MAC frame, performs predetermined processing such as rearrangement of MAC frame data in the order of output from the protocol stack 13, The data transmitted by the application program 12 is reconfigured and output to the destination application program 22.
上述した一連の処理が行われることによって、ネットワーク通信を行うアプリケーショ ンプログラム 12及び 22間において、 VPNクライアントコンピュータ 10上で動作するァ プリケーシヨンプログラム 12の送信したデータ力 VPNクライアントコンピュータ 20で 動作するアプリケーションプログラム 22に渡され、双方におけるデータ通信が行われ ることになる。  Data power transmitted by the application program 12 that operates on the VPN client computer 10 between the application programs 12 and 22 that perform network communication by performing the above-described series of processing. Application that operates on the VPN client computer 20 It will be passed to program 22 and data communication between both sides will be performed.
[0075] <通常の LANと本発明の VPNシステムが仮想的に構成する LANとの比較 >  [0075] <Comparison of normal LAN and LAN virtually constituted by VPN system of the present invention>
次に、通常の IEEE802.3を物理レイヤに採用した LAN (図 6 (a)参照)と、 SoftEtherに よって構成される VPN (図 6 (b) )との比較を行う。  Next, a comparison is made between a LAN (see Fig. 6 (a)) that employs normal IEEE802.3 as the physical layer and a VPN (Fig. 6 (b)) configured by SoftEther.
図 6 (a)には通常の LANの構成の概念を示し、図 6 (b)には本発明の VPNシステム におレ、てネットワーク上に仮想に形成される仮想 LANの構成の概念を示してレ、る。 なお、実際の VPN構成においては、装置 36は単一のレイヤ 2フレーム交換装置であ る必要はなぐ複数のレイヤ 2およびレイヤ 3交換機の集合である IPネットワーク(イン ターネットなどの大規模なものでも良レ、)である場合もある。  Fig. 6 (a) shows the concept of the normal LAN configuration, and Fig. 6 (b) shows the concept of the virtual LAN configuration virtually formed on the network in the VPN system of the present invention. I'm going. In an actual VPN configuration, the device 36 does not need to be a single layer 2 frame switching device, but an IP network (a large-scale network such as the Internet) that is a collection of multiple layer 2 and layer 3 switching devices. But it may be good).
通常の IEEE802.3を採用した LANでは、図 5 (a)に示すように、複数台のコンピュー タに各々設けられた、 IEEE802.3に対応したネットワークインターフェイスデバイス (物 理的な LANカード) 181, 182, 183と、中央に設置された IEEE802.3 MACフレーム交 換装置 158 (物理的なスイッチング HUB)と力 S、ケーブルや光ファイバ、または無線な どの物理レイヤの通信線により接続されている。 In a normal LAN that uses IEEE802.3, as shown in Fig. 5 (a), network interface devices (physical LAN cards) that support IEEE802.3 and are installed in multiple computers, respectively. , 182, 183, and IEEE802.3 MAC frame exchange device 158 (physical switching hub) installed in the center and force S, cable, optical fiber, or wireless It is connected by a communication line of any physical layer.
[0076] そして、上記スイッチング HUB158 (MACフレーム交換装置)に接続されているいず れかのコンピュータの LANカード 181が、同一のスイッチング HUB158に接続されてレヽ る他のコンピュータの LANカード 182の MACアドレスを知ってレ、て、この MACアドレス の LANカード 182を宛先としてデータを送信する場合、 IEEE802.3の仕様においては 、すでに述べた様に、送信される各データは MACフレームと呼ばれる最大 1,514バイ ト(可変)のパケットに、プロトコルスタックにより分割される。  [0076] The MAC address of the LAN card 181 of one of the computers connected to the switching HUB158 (MAC frame switching device) is the MAC address of the LAN card 182 of another computer connected to the same switching HUB158. If the LAN card 182 with this MAC address is used as the destination to transmit data, the IEEE802.3 specification states that each transmitted data is a maximum of 1,514 bytes called a MAC frame. (Variable) packets are divided by the protocol stack.
[0077] そして、スイッチング HUB158が、上記 LANカード 181用に設定された接続口におい て、 MACフレームを受信すると、この MACフレームを、 MACヘッダに記載された適切 な宛先の別の LANカードの接続されている接続口に対して送出する。  [0077] Then, when the switching HUB 158 receives a MAC frame at the connection port set for the LAN card 181, the MAC frame is connected to another LAN card of an appropriate destination described in the MAC header. Send to the connected port.
ここで、仮に宛先として適切な LANカード 182の接続されてレ、る接続口がわからなレヽ 場合、スイッチング HUB158は、 MACフレームが送信されてきた接続口以外の何らか のデバイスが接続されてレ、る接続口のすべてに対して、同一の MACフレームをコピ 一して送信する。  Here, if the appropriate LAN card 182 is connected as the destination and the connection port is unknown, the switching HUB 158 is connected to some device other than the connection port from which the MAC frame was transmitted. The same MAC frame is copied and transmitted to all connection ports.
すなわち、スイッチング HUB158は、宛先の LANカードの接続口が不明な場合、 MACフレームの送信者以外の全接続者に対して同一のパケットをコピーして配信す る(このような動作をフラッデイングと呼ぶ)。  That is, when the connection port of the destination LAN card is unknown, the switching HUB 158 copies and distributes the same packet to all connected parties other than the sender of the MAC frame (this operation is called flooding). Call).
[0078] 上述したように、スイッチング HUB158の MACフレームの配信機能により、各コンビュ ータ上の物理的なネットワークインターフェイスデバイスはそれぞれの間で任意の MACフレームを送受信することができる。 [0078] As described above, the MAC frame distribution function of the switching HUB 158 allows the physical network interface device on each computer to send and receive arbitrary MAC frames between them.
本発明の VPNシステムの構成の場合、 VPNの内部においては、上述した LANと同 様に、仮想的な LANカードプログラム(仮想 LANカード)と仮想的なスイッチング HUB プログラム(仮想 HUB)がプログラムとして存在し、 1つの仮想 HUBに接続されている 2 つ以上の仮想 LANカードは相互に任意の MACフレームを送受信することができるよ うになつている。  In the configuration of the VPN system of the present invention, a virtual LAN card program (virtual LAN card) and a virtual switching HUB program (virtual HUB) exist as programs in the VPN as in the LAN described above. However, two or more virtual LAN cards connected to one Virtual Hub can send and receive arbitrary MAC frames to each other.
[0079] この構成を図 6 (b)において説明すると、各コンピュータ上で動作している(設けられ ている)各仮想 LANカード 12, 22 ,522は、 1台のコンピュータ上で動作している仮想 HUB31へ接続されている状態にある。 この図 6 (b)の構成において、ある仮想 LANカード 12が同一の仮想 HUB31に接続 されている他のコンピュータ上にある仮想 LANカード 22の宛先 MACアドレスを認識し ており、その仮想 LANカード 22に対して、 MACフレームを送信する場合、その MAC フレームは仮想 LANカード 12における処理により、カプセル化と呼ばれる処理が行 われ、ストリームデータに変換される。 [0079] This configuration will be described with reference to FIG. 6 (b). Each virtual LAN card 12, 22, and 522 operating (provided) on each computer operates on one computer. Connected to Virtual Hub 31. In the configuration shown in FIG. 6 (b), a virtual LAN card 12 recognizes the destination MAC address of the virtual LAN card 22 on another computer connected to the same virtual HUB 31, and the virtual LAN card 22 On the other hand, when transmitting a MAC frame, the MAC frame undergoes a process called encapsulation by the process in the virtual LAN card 12, and is converted into stream data.
[0080] そして、仮想 LANカード 12は、生成したストリームデータを、仮想 LANカード 22が接 続している仮想 HUB31の動作しているコンピュータの物理的な IPアドレスと、その仮 想 HUB31が待ち受けている TCP/IPポート番号とに対して送信することを、 TCP/IPス タック(すでに述べているプロトコルスタック)に指示するとともに、ストリームデータを TCP/IPスタックに出力する。  [0080] Then, the virtual LAN card 12 waits for the generated stream data for the physical IP address of the computer on which the virtual hub 31 to which the virtual LAN card 22 is connected and the virtual hub 31 to listen. Instructs the TCP / IP stack (protocol stack already described) to transmit to the TCP / IP port number that is being sent, and outputs stream data to the TCP / IP stack.
TCP/IPスタック 15は、すでに述べた通常のアプリケーションプログラムがネットヮー ク上の他のプログラムに対して、 TCP/IPプロトコルを使用して任意のストリームデータ を送信しょうとする場合と全く同等の処理を行レ、、仮想 LANカード 12が生成したストリ ームデータを、宛先の仮想 HUB31へ送信する。この送信には、既存の IPネットワーク (インターネットなど)が使用される。  The TCP / IP stack 15 performs exactly the same processing as when a normal application program already described tries to send arbitrary stream data to other programs on the network using the TCP / IP protocol. The stream data generated by the virtual LAN card 12 is sent to the destination Virtual Hub 31. An existing IP network (such as the Internet) is used for this transmission.
[0081] 仮想 HUB31は、仮想 LANカード 12から、 TCP/IPスタック 15等を経由して最終的に 受け取ったストリームデータの中身を、カプセル化と逆の処理(これをカプセル化解 除と呼ぶ)を行い、仮想 LANカード 12が送信しょうとした MACフレームを取り出す。 次に、仮想 HUB31は、各 MACフレームの宛先 MACアドレスを参照し、その宛先 MACアドレスの仮想 LANカード 22が、 自身に現在接続されていることを検出した場 合、その仮想 LANカード 22が動作しているコンピュータを宛先として、先ほど仮想 LANカード 12が行ったのと同等の方法でカプセル化を行レ、、 MACフレームをストリー ムデータに変換したものを、 IPネットワークを経由し、宛先の仮想 LANカード 22が動 作しているコンピュータに送信する。  [0081] Virtual HUB 31 performs processing opposite to encapsulation (referred to as decapsulation) for the content of stream data that is finally received from virtual LAN card 12 via TCP / IP stack 15 or the like. And take out the MAC frame that the virtual LAN card 12 tried to transmit. Next, Virtual Hub 31 refers to the destination MAC address of each MAC frame, and if it detects that virtual LAN card 22 of that destination MAC address is currently connected to itself, that virtual LAN card 22 operates. The destination computer is encapsulated in the same way as the virtual LAN card 12, and the MAC frame is converted to stream data via the IP network. Sent to a computer running card 22.
[0082] また、現在接続されており、かつ MACフレームの宛先 MACアドレスに対応している 適切な仮想 LANカードがわ力、らない場合、仮想 HUB31は、その MACフレームの送信 者である仮想 LANカード 12以外に接続されている仮想 LANカード全てに対して、上 記 MACフレームをコピーして配信する(つまりフラッデイングする)。 これにより、仮想 HUB31に接続された複数の仮想 LANカード各々は、仮想 HUB31 を経由することで、それぞれの仮想 LANカードの間で任意の MACフレームを送受信 すること力 Sできる。 [0082] If an appropriate virtual LAN card that is currently connected and that corresponds to the destination MAC address of the MAC frame does not match, the Virtual Hub 31 sends the virtual LAN that is the sender of the MAC frame. The MAC frame is copied and distributed to all virtual LAN cards connected to cards other than card 12 (that is, flooded). As a result, each of the plurality of virtual LAN cards connected to the Virtual Hub 31 can transmit / receive an arbitrary MAC frame between the Virtual Hub cards via the Virtual Hub 31.
[0083] <仮想 HUBによる MACフレーム交換の方法 > [0083] <Method of MAC frame exchange by Virtual HUB>
次に、仮想 HUBによる MACフレームの交換方法について説明を行うが、この交換 の処理の説明を判りやすくするため、始めに物理的なスイッチング HUBによる MACフ レームの交換方法にっレ、て簡単に説明する。  Next, we will explain how to exchange MAC frames using a Virtual Hub. To make the explanation of this exchange process easier to understand, we will first explain how to exchange MAC frames using a physical switching hub. explain.
ここで、物理的な LANにおいて、物理的なスイッチング HUBが稼動しており、複数の 物理的な LANカードが接続されている場合において、それぞれの LANカードの間で MACフレームの交換がどのように行われるのかを図 7に示した。この図 7は、物理的 なスイッチング HUB158による MACフレーム交換の方法を説明する概念図である。  Here, when a physical switching hub is operating in a physical LAN and multiple physical LAN cards are connected, how are MAC frames exchanged between the LAN cards? Figure 7 shows how this is done. FIG. 7 is a conceptual diagram illustrating a method of MAC frame exchange by the physical switching HUB158.
[0084] まず、物理的な LANカード 151には、同一の IEEE802.3で直接 MACフレームを送受 信することができる範囲(この範囲をブロードキャストドメインと呼ぶ)内で重複すること が有り得なレ、ような一意のアドレスとして、 MACアドレスが付加されてレ、る。 [0084] First, the physical LAN card 151 may overlap within a range in which MAC frames can be directly transmitted and received with the same IEEE 802.3 (this range is called a broadcast domain). The MAC address is added as a unique address.
通常、この MACアドレスは、各 LANカードのメーカーと、メーカーやエンジニアが作 る業界団体によって割り当てられる識別番号である。この MACアドレスは 6バイト(48 ビット)である。  This MAC address is usually an identification number assigned by each LAN card manufacturer and an industry group created by the manufacturer or engineer. This MAC address is 6 bytes (48 bits).
[0085] そして、任意の物理的な LANカード 151から送出された MACフレームは、自動的に その LANカード 151の持つ MACアドレスと、宛先の LANカード 152として指定された MACアドレスの 2つの MACアドレス情報(宛先 MACアドレス、送信元 MACアドレス)と 、その他の MACフレームの制御に必要な付加情報、および実際に送信したいデータ を含んだ最大 1,514 bytesの MACフレームとして、 LANカード 151力、らスイッチング HUB 158に対して電気信号として送出される。  [0085] Then, the MAC frame sent from any physical LAN card 151 automatically has two MAC addresses: the MAC address of the LAN card 151 and the MAC address specified as the destination LAN card 152. Information card (destination MAC address, source MAC address), additional information necessary for control of other MAC frames, and a MAC frame of up to 1,514 bytes including data that you want to actually transmit. 158 is transmitted as an electrical signal.
物理的なスイッチング HUB158は、物理的な LANカード 151から、所定の接続口 # 1において、電気信号として MACフレームを受信すると、 MACフレーム受信部(通常 は電子回路) 154においてデジタルデータ化される。  When the physical switching HUB 158 receives a MAC frame as an electrical signal from the physical LAN card 151 at a predetermined connection port # 1, it is converted into digital data at a MAC frame receiving unit (usually an electronic circuit) 154.
[0086] 次に、 MACフレームスイッチング処理部 155は、入力された各 MACフレームから、 宛先 MACアドレスと送信元 MACアドレスとの 2つのアドレス情報を読み出す。 そして、スイッチング HUB158は、通常、有限個の接続口を有しており、各接続口に 何らかのデバイスが接続されている場合、デバイスが接続されている接続口に対応し た MACフレーム送信キュー(160, 161, 162)を内部に有している。 Next, the MAC frame switching processing unit 155 reads two pieces of address information, that is, a destination MAC address and a source MAC address, from each input MAC frame. The switching hub 158 usually has a finite number of connection ports, and if any device is connected to each connection port, the MAC frame transmission queue (160) corresponding to the connection port to which the device is connected. , 161, 162) inside.
実際には、接続口に対してデバイスが接続されていなくとも、常に送信キューが内 部に設けられている場合もある。  Actually, even if no device is connected to the connection port, there is a case where a transmission queue is always provided inside.
[0087] そして、任意の MACフレームが入力された場合、 MACフレームスイッチング処理部 [0087] When an arbitrary MAC frame is input, the MAC frame switching processing unit
155は、この MACフレームの宛先である MACアドレスを有する LANカードの接続され た接続口に対応した MACフレーム送信キューに、入力された MACフレームを追加す る。  155 adds the input MAC frame to the MAC frame transmission queue corresponding to the connection port connected to the LAN card having the MAC address that is the destination of this MAC frame.
このとき、 MACフレームスイッチング処理部 155は、宛先 MACアドレスのみを参照し て、その宛先 MACアドレスを有する LANカード 152がいずれの接続口に接続されて レ、るかが予め検出されている場合、その接続口 # 2の送信キュー 161に対してのみ、 入力された MACフレームを追加する。  At this time, the MAC frame switching processing unit 155 refers to only the destination MAC address, and when it is detected in advance which connection port the LAN card 152 having the destination MAC address is connected to, The input MAC frame is added only to transmission queue 161 of connection port # 2.
[0088] このため、スイッチング HUB158は、内部において、既知の MACアドレスの一覧と、 この一覧にある各 MACアドレスがどの接続口に対応しているかを記憶する対応表を 有している。 [0088] For this reason, switching HUB 158 internally has a list of known MAC addresses and a correspondence table for storing which connection port each MAC address in this list corresponds to.
したがって、 MACフレームスイッチング処理部 155は、宛先 LANカードの MACアド レス情報が入った MACフレームすべてに対して、この表を調べてその MACアドレスを どの送信口の送信キューに追加すれば良いのかを毎回検出している。  Therefore, the MAC frame switching processing unit 155 examines this table for all MAC frames that contain the MAC address information of the destination LAN card and determines which transmission port transmission queue the MAC address should be added to. It is detected every time.
[0089] そして、 MACフレームスイッチング処理部 155は、新しい MACフレームを任意の接 続口において受信した際、その受信した MACフレームのヘッダから取り出した送信 元 MACアドレスを参照して、その MACアドレスが MACアドレスと接続口番号との対応 表内に存在しない場合、 MACアドレスと接続口番号との対応表に、新しく MACフレー ムの送信元 MACアドレスと接続口番号とを登録し、また、すでに MACアドレスが存在 しており、接続口番号の異なっている場合、その MACアドレスに対する接続口番号を 上書きするという処理を行うことにより、常時、 MACアドレスと接続口番号との対応表 を更新する処理を行ってレ、る。  Then, when the MAC frame switching processing unit 155 receives a new MAC frame at an arbitrary connection port, the MAC frame switching processing unit 155 refers to the transmission source MAC address extracted from the header of the received MAC frame, and determines the MAC address. Correspondence between MAC address and connection port number If the MAC address and connection port number do not exist in the table, a new MAC frame source MAC address and connection port number are registered in the correspondence table between MAC address and connection port number. If the address exists and the connection port number is different, the process of constantly updating the correspondence table between the MAC address and the connection port number is performed by overwriting the connection port number for that MAC address. I'm going.
[0090] すなわち、 MACフレームスイッチング処理部 155は、各 MACフレームに対して宛先 LANカードが接続されている可能性のある接続口に対応する送信キュー(160, 161 , 162)に対し、その MACフレームを追加しつつ、かつその処理のために必要な MAC アドレスと接続口番号との対応表を作成、あるいは更新する処理を行っている。 That is, the MAC frame switching processing unit 155 sends a destination to each MAC frame. The MAC address and port number required for processing while adding the MAC frame to the transmission queue (160, 161, 162) corresponding to the port where the LAN card may be connected To create or update the correspondence table.
また、接続口ごとに用意された MACフレームの送信キューに、 1つ以上の MACフレ ームが存在している場合、その接続口に対応している MACフレーム送信部 157は、 その接続口に対応した MACフレームの送信キューの先頭から順番に MACフレーム を取り出し、電気信号に変換したものを、接続口から電気的に送出する。  In addition, when one or more MAC frames exist in the MAC frame transmission queue prepared for each connection port, the MAC frame transmission unit 157 corresponding to the connection port receives The MAC frames are taken out in order from the head of the corresponding MAC frame transmission queue, and converted into electrical signals are sent out electrically from the connection port.
[0091] この電気信号は、 MACフレーム送信部 157により、宛先である物理的な LANカード [0091] This electrical signal is sent by the MAC frame transmission unit 157 to the physical LAN card that is the destination.
152、つまり MACフレームの宛先 MACアドレスとして指定されていた MACアドレスを 持っている LANカード 152に対して送出され、 MACフレームのデータ送信処理が完 了する。  152, that is, transmitted to the LAN card 152 having the MAC address designated as the destination MAC address of the MAC frame, and the data transmission processing of the MAC frame is completed.
上述したように、一度渡された MACフレームを、一旦接続先デバイスごとに用意さ れた送信キューに振り分け、次に送信キューの先頭力 順番に実際の宛先にバケツ トを転送する方式のことを、一般に「ストアアンドフォワード」と呼ぶ。  As described above, once a MAC frame is passed, it is assigned to the transmission queue prepared for each connected device, and then the bucket is forwarded to the actual destination in the order of the head strength of the transmission queue. Generally called “Store and Forward”.
ストアアンドフォワードにおいて、ストアとは受信したパケットを適切な接続先に対応 した送信キューを決定しその送信キューに追加することであり、フォワードとはその送 信キューの先頭力 パケットを取り出して接続先に送信するという動作のことを指して いる。  In store-and-forward, the store is to determine the transmission queue corresponding to the appropriate connection destination and add it to the transmission queue, and the forward is to extract the leading packet from the transmission queue and connect to the connection destination. It refers to the action of sending to.
[0092] 図 8は、本発明の VPNシステムによる仮想的な MACフレーム交換の方法を説明す るための概念図である。この図 8は、図 7に記載された物理的なスイッチング HUB158 による MACフレーム交換の方法と対比させて書かれたものである。  FIG. 8 is a conceptual diagram for explaining a method of virtual MAC frame exchange by the VPN system of the present invention. This FIG. 8 is written in contrast to the method of MAC frame exchange by the physical switching HUB158 described in FIG.
本発明の仮想 LANシステムによって構成される VPNシステムには、仮想 HUB31とそ れを中心に接続している複数の仮想 LANカード(12, 21 , ·■·)があることは前に述べ た。  As described above, the VPN system constituted by the virtual LAN system of the present invention has the virtual HUB 31 and a plurality of virtual LAN cards (12, 21,...) Connected around it.
そして、この仮想 LANシステムは、図 7において解説した物理的なスイッチング HUB 158とそれを中心に接続している複数の物理的な LANカード(151, 152)とによる LANシステムと同様の構成となっている。  This virtual LAN system has the same configuration as the LAN system using the physical switching HUB 158 described in FIG. 7 and a plurality of physical LAN cards (151, 152) connected to it. ing.
[0093] したがって、図 7における「物理的なスイッチング HUBによる MACフレーム交換の方 法」において説明したように、物理的なスイッチング HUB158を中心として、その 1台 のスイッチング HUB158に接続されている物理的な LANカード同士(151 , 152)がお 互いに任意の MACフレームを交換する仕組みと比較し、本発明の VPNシステムの内 部でどのようなフレームの交換処理が行われているのかを、以下に説明する。 [0093] Therefore, in Fig. 7, “How to exchange MAC frames using a physical switching hub” As explained in the “Method”, a mechanism in which physical LAN cards (151 and 152) connected to a single switching HUB158 exchange arbitrary MAC frames with each other, centering on the physical switching HUB158. In the following, what kind of frame exchange processing is performed in the VPN system of the present invention will be described.
まず、 1台の仮想 HUB31が動作しているコンピュータ Cと、 2台の仮想 LANカード 11 , 21各々が動作しているコンピュータ A, Bが存在している。  First, there is a computer C on which one virtual hub 31 is operating, and computers A and B on which two virtual LAN cards 11 and 21 are operating.
[0094] ここで、仮想 LANカード 11及び仮想 LANカード 21それぞれは、物理的に接続コネ クタが付いているネットワークインターフェイスデバイス(物理的な LANカード) 16, 26 ではなぐ論理的に IEEE802.3の LANカードの動作をエミユレーシヨンするプログラム( あるいはハードウェア)である。 [0094] Here, each of the virtual LAN card 11 and the virtual LAN card 21 is logically IEEE802.3-compliant than the network interface device (physical LAN card) 16 and 26 with a physical connection connector. A program (or hardware) that emulates the operation of a LAN card.
この仮想 LANカード(11 , 21)は、より上位レイヤで動作するプロトコルスタックゃァ プリケーシヨンプログラムから、物理的な LANカードと同様に認識され、制御される状 態となつている。  These virtual LAN cards (11, 21) are recognized and controlled in the same manner as physical LAN cards by the protocol stack application program operating in a higher layer.
[0095] まず、仮想 LANカード 11, 21間を、仮想 HUB31を経由して伝送される IEEE802.3 に準拠した形式の MACフレームを、「仮想 MACフレーム」と定義する。  First, a MAC frame in a format compliant with IEEE 802.3 transmitted between the virtual LAN cards 11 and 21 via the virtual hub 31 is defined as a “virtual MAC frame”.
なぜならば、この仮想 MACフレームは仮想 LANカード(11 , 21)と仮想 HUB (31)と の間を送受信されるが、実際にはその仮想 MACフレームの生のデータが電気信号と して既存の回線上を流れることはなぐ何らかの情報を含むヘッダ (後述する)により、 カプセル化されて流れるためである。  This is because the virtual MAC frame is transmitted and received between the virtual LAN card (11, 21) and the virtual hub (31), but the raw data of the virtual MAC frame is actually used as an electrical signal. This is because it is encapsulated by a header (described later) that contains some information that does not flow on the line.
ここで、例えば、仮想 LANカード 11は、 「001111111111」という MACアドレスに設定 されており、また、仮想 LANカード 21は、「002222222222」という MACアドレスに設定 されている。  Here, for example, the virtual LAN card 11 is set to a MAC address “001111111111”, and the virtual LAN card 21 is set to a MAC address “002222222222”.
[0096] そして、仮想 LANカード 11が自らを送信元 MACアドレス、宛先 MACアドレスを仮想 LANカード 21の MACアドレスとし、転送するデータ等を含めた仮想 MACフレームを 仮想 LANカード 21に対して送信する際、仮想 LANカード 11は、送信する 1つ以上の 仮想 MACフレームに対し、暗号化及び電子署名などの処理を行う。  Then, the virtual LAN card 11 uses itself as the source MAC address and the destination MAC address as the MAC address of the virtual LAN card 21, and transmits a virtual MAC frame including data to be transferred to the virtual LAN card 21. At this time, the virtual LAN card 11 performs processing such as encryption and electronic signature on one or more virtual MAC frames to be transmitted.
次に、仮想 LANカード 11は、上記処理が行われた MACフレームに対して、本発明 の VPNシステムにおけるプロトコルに対応した SEヘッダなどを付加した、仮想 LAN力 ード及び仮想 HUB間におけるデータの送受信方法を定義した通信規約(SEプロトコ ノレと呼ぶ)に従ったデータ形式に変換 (これをカプセル化と呼ぶ)し、 TCP/IPプロトコ ルにより送信可能なストリームデータ(SEプロトコルの形式のストリームデータ 40)を 生成し、 TCP/IPスタック 15に出力する。 Next, the virtual LAN card 11 adds the SE header corresponding to the protocol in the VPN system of the present invention to the MAC frame on which the above processing has been performed. A stream that can be transmitted using the TCP / IP protocol after being converted into a data format that conforms to the communication protocol (referred to as SE protocol control) that defines the data transmission / reception method between the host and the Virtual Hub. Data (stream data 40 in SE protocol format) is generated and output to the TCP / IP stack 15.
[0097] このとき、仮想 LANカード 11は、 TCP/IPプロトコルにおける送信処理の際の宛先を 、仮想 HUB31が動作しているコンピュータ Cの IPアドレスと、そのコンピュータ C上で 動作している仮想 HUB31が待ち受けている TCPポートのポート番号として指定する。 そして、 TCP/IPスタック 15は、入力した SEプロトコルの形式のストリームデータ 40を 、通常の TCP/IPプロトコルを使用して通信を行うアプリケーションプログラムからストリ ームデータが渡された場合と同様の処理手順により分割し、 TCPヘッダ及び IPヘッダ の付加を行レ、、これを IPパケット化することで複数の IPパケット 41として、コンピュータ Cに設けられた物理的なネットワークインターフェイスデバイス 16へ、このネットワーク インターフェイスデバイス 16に対応したデバイスドライバを介して出力する。  At this time, the virtual LAN card 11 uses the IP address of the computer C on which the Virtual HUB 31 is operating and the Virtual HUB 31 operating on the computer C as the destination for transmission processing in the TCP / IP protocol. Specify as the port number of the TCP port that is listening on. The TCP / IP stack 15 uses the same processing procedure as when the stream data 40 in the SE protocol format is input from the application program that performs communication using the normal TCP / IP protocol. The TCP interface and the IP header are divided, and this is converted into an IP packet to form a plurality of IP packets 41 to the physical network interface device 16 provided in the computer C. Output via a device driver that supports.
[0098] そして、 IPパケットは、通常の TCP/IPプロトコルに従った処理により、 IPネットワーク 1 19上を送信され、仮想 HUB31が動作しているコンピュータ Cに設けられた物理的な ネットワークインターフェイスデバイス 34に到達し、受信される。  Then, the IP packet is transmitted on the IP network 119 by processing according to the normal TCP / IP protocol, and is a physical network interface device 34 provided in the computer C on which the virtual hub 31 is operating. To be received.
これにより、ネットワークインターフェイスデバイス 34は、受信した IPパケット 44 (IPパ ケット 41)を、自身に対して対応するデバイスドライバを介して、 TCP/IPスタック 35へ 出力される。  As a result, the network interface device 34 outputs the received IP packet 44 (IP packet 41) to the TCP / IP stack 35 via the device driver corresponding to itself.
ここで、 TCP/IPスタック 35に入力される IPパケット 44は、 TCP/IPスタック 15が IPパケ ット化した複数の IPパケット 41に対応するものである。  Here, the IP packet 44 input to the TCP / IP stack 35 corresponds to a plurality of IP packets 41 that the TCP / IP stack 15 converts into IP packets.
[0099] そして、 TCP/IPスタック 35は、この複数の IPパケット 44を、 TCPヘッダに含まれるシ 一ケンス番号に従い、各々を結合してストリームデータ 45を復元する。 [0099] Then, the TCP / IP stack 35 combines the plurality of IP packets 44 according to the sequence number included in the TCP header to restore the stream data 45.
すなわち、通常の TCP/IPプロトコルに従った通信を行なうアプリケーションプロダラ ム宛のデータが届いた場合と同様に、 TCP/IPスタック 35は、 TCP/IPスタック 15が分 割して生成した IPパケット 41を結合し、仮想 LANカード 11の生成したストリームデー タ 40に対応したストリームデータ 45を復元する。  In other words, the TCP / IP stack 35 uses the IP packet generated by dividing the TCP / IP stack 15 in the same way as when the data addressed to the application program that communicates according to the normal TCP / IP protocol arrives. 41 is combined, and the stream data 45 corresponding to the stream data 40 generated by the virtual LAN card 11 is restored.
TCP/IPスタック 35は、 IPパケット 44を結合して復元されたストリームデータ 45を、指 定されたポート番号で待ち受ける仮想 HUB31へ出力する。 TCP / IP stack 35 specifies stream data 45 restored by combining IP packets 44. Output to Virtual Hub 31 that listens on the specified port number.
[0100] そして、仮想 HUB31は、 SEプロトコルの形式のストリームデータ 45を受信すると、仮 想 LANカード 11が行ったカプセル化と逆の処理、すなわちカプセル化解除の処理を 行う。 [0100] When the Virtual HUB 31 receives the stream data 45 in the SE protocol format, the Virtual HUB 31 performs a process reverse to the encapsulation performed by the virtual LAN card 11, that is, a decapsulation process.
これにより、仮想 HUB31は、カプセル化解除などの処理によって、仮想 LANシステ ムにおける仮想 MACフレームを抽出する。  As a result, Virtual HUB 31 extracts the virtual MAC frame in the virtual LAN system by processing such as decapsulation.
この抽出された仮想 MACフレームは、仮想 LANカード 11が送信した仮想 MACフレ ームであり、仮想 HUB31から仮想 MACフレームスイッチング処理部 49へ出力される そして、仮想 MACフレームスイッチング処理部 49は、図 7において説明した物理的 なスイッチング HUB158と同様な構成であり、かつスイッチング HUB158の行う MAC フレーム交換の方法と同様な処理により仮想 MACフレーム交換が行われる (詳しくは 後述)。  The extracted virtual MAC frame is a virtual MAC frame transmitted by the virtual LAN card 11, and is output from the virtual hub 31 to the virtual MAC frame switching processing unit 49. Then, the virtual MAC frame switching processing unit 49 The configuration is the same as the physical switching hub 158 described in FIG. 7, and virtual MAC frame exchange is performed by the same processing as the MAC frame exchange method performed by the switching hub 158 (details will be described later).
[0101] 仮想 HUB31は、仮想 LANカード 11に対応する送信キュー 50以外にも、複数のコン ピュータ(例えば、コンピュータ B等)で動作してレ、る複数の仮想 LANカード(例えば 2 1 , · · ·)との接続が成立しており、それぞれの仮想 LANカードに対する接続口に対応 して 1つずつ送信キュー(51 , 52,…;)が設けられている。  [0101] In addition to the transmission queue 50 corresponding to the virtual LAN card 11, the Virtual HUB 31 operates on a plurality of computers (for example, computer B) and performs a plurality of virtual LAN cards (for example, 2 1,. ···) is established, and there is one transmission queue (51, 52, ...;) corresponding to each connection port for each virtual LAN card.
仮想 MACフレームスイッチング処理部 49は、カプセル化解除などを行うカプセル化 解除部 48から入力した仮想 MACフレームを参照して、送信元 MACアドレス及び宛先 MACアドレスを抽出する。  The virtual MAC frame switching processing unit 49 refers to the virtual MAC frame input from the decapsulation unit 48 that performs decapsulation and extracts the source MAC address and the destination MAC address.
[0102] そして、仮想 HUB31は、仮想 MACアドレスと、接続口に接続されている仮想 LAN力 ードとの対応表を、図 7に示す物理的なスイッチング HUB158における MACアドレス と接続口番号との対応表に対する操作と同様な処理 (詳しくは後述する)を行レ、、入 力した仮想 MACフレームの宛先 MACアドレスを見て、この宛先 MACアドレスと、接続 口に接続されている仮想 LANカードとの対応表から、送信先の仮想 LANカードに対 する送信キュー、例えば送信キュー 51を選択する。  [0102] Then, Virtual HUB 31 shows a correspondence table between the virtual MAC address and the virtual LAN force connected to the connection port, with the MAC address and connection port number in the physical switching HUB158 shown in Fig. 7. Perform the same processing as the operation for the correspondence table (details will be described later), look at the destination MAC address of the input virtual MAC frame, and check the destination MAC address and the virtual LAN card connected to the connection port. From the correspondence table, a transmission queue for the destination virtual LAN card, for example, the transmission queue 51 is selected.
[0103] そして、仮想 HUB31は、選択した送信キュー 51の最後に(待ち行列の最後に)仮 想 MACフレームを追加する。 仮想 HUB31の場合も、物理的なスイッチング HUB158と同様に、宛先 MACアドレス がブロードキャストアドレスの場合や、宛先の仮想 LANカードが判定できない場合、 送信元の仮想 LANカードに対応する送信キューを除いて、他のすべての送信キュー に対してフラッデイング処理を行う。 [0103] Then, the Virtual HUB 31 adds a virtual MAC frame to the end of the selected transmission queue 51 (at the end of the queue). In the case of Virtual HUB31 as well as physical switching HUB158, if the destination MAC address is a broadcast address or if the destination virtual LAN card cannot be determined, except for the transmission queue corresponding to the source virtual LAN card, Performs flooding processing for all other transmission queues.
[0104] 仮想 HUB31にはカプセル化を行うカプセル化部 53, 54, 55が設けられている。  [0104] The virtual hub 31 is provided with encapsulation units 53, 54, and 55 for performing encapsulation.
この力プセノレイ匕き 54, 55各々は、それぞれ送信キュー 50, 51 , 52に、 1っ以 上の仮想 MACフレームが存在している状態において、先頭から順番に仮想 MACフ レームを取り出し、仮想 LANカード 11と同様に、各 MACフレームに対して暗号化、電 子署名などを施して、 SEプロトコルヘッダなどを付加した、仮想 LANカードと仮想 HUB との間の通信方法を制御する通信規約(SEプロトコルと呼ぶ)に従ったデータ形式に 変換(カプセル化)する。  Each of these power psenolays 54 and 55 takes out the virtual MAC frame in order from the top in the state where one or more virtual MAC frames exist in the transmission queues 50, 51 and 52, respectively. As with card 11, a communication protocol (SE that controls the communication method between the virtual LAN card and the virtual hub, such as encrypting and digitally signing each MAC frame and adding an SE protocol header) It is converted (encapsulated) into a data format according to the protocol.
[0105] そして、カプセル化部 53, 54, 55各々は、 TCP/IPプロトコルにより送信可能なスト リームデータ(SEプロトコルの形式のストリームデータ) 47を生成し、これを TCP/IPスタ ック 35へ出力する。  [0105] Each of the encapsulation units 53, 54, and 55 generates stream data (stream data in the SE protocol format) 47 that can be transmitted by the TCP / IP protocol, and converts this into the TCP / IP stack 35. Output to.
このとき、 TCP/IPプロトコルにおける送信処理の際の宛先は、宛先である仮想 LAN カード 21が動作しているコンピュータ Bの IPアドレスと、そのコンピュータ C上で動作し ている仮想 LANカード 21に対応している TCPポートの番号とを指定する。  At this time, the destination at the time of transmission processing in the TCP / IP protocol corresponds to the IP address of computer B on which the destination virtual LAN card 21 is operating and the virtual LAN card 21 operating on that computer C. Specify the TCP port number.
[0106] 次に、 TCP/IPスタック 35は、通常の TCP/IPプロトコルにより通信を行うアプリケーシ ヨンプログラムからストリームデータが入力されたときと同様の手順により、入力した SE プロトコルの形式のストリームデータ 47を分割し、分割したパケットに TCPヘッダ及び IPヘッダを付加し、これを IPパケットィ匕した複数の IPパケット 46として、そのコンビユー タ Cに設けられた物理的なネットワークインターフェイスデバイス 34に、このネットヮー クインターフェイスデバイス 34に対応したデバイスドライバを介して出力する。 [0106] Next, the TCP / IP stack 35 uses the same procedure as when stream data is input from an application program that performs communication using the normal TCP / IP protocol. , And a TCP header and an IP header are added to the divided packet, and the IP packet is made into a plurality of IP packets 46, and this network is connected to the physical network interface device 34 provided in the computer C. Output via a device driver compatible with interface device 34.
[0107] そして、 IPパケット 46は、通常の TCP/IPプロトコルの送信制御により、 IPネットワーク [0107] Then, the IP packet 46 is sent to the IP network by normal TCP / IP protocol transmission control.
119を介して、宛先の仮想 LANカード 21が動作しているコンピュータ B上の物理的な ネットワークインターフェイスデバイス 26に到達する。  Through 119, the physical network interface device 26 on the computer B on which the destination virtual LAN card 21 is operating is reached.
これにより、物理的なネットワークインターフェイスデバイス 26は、 IPパケット 46を入 力し、 TCP/IPスタック 25に対して、 IPパケット 43 (IPパケット 46に対応)を出力する。 次に、 TCP/IPスタック 25は、通常の TCP/IPプロトコルに対応した処理により、上記 IPパケット 43が結合され、ストリームデータ 42として、仮想 LANカード 21へ出力される As a result, the physical network interface device 26 inputs the IP packet 46 and outputs the IP packet 43 (corresponding to the IP packet 46) to the TCP / IP stack 25. Next, the TCP / IP stack 25 combines the IP packet 43 and outputs it to the virtual LAN card 21 as stream data 42 by processing corresponding to the normal TCP / IP protocol.
[0108] ここで、上記ストリームデータ 42は、仮想 HUB31が生成したストリームデータ 47に 対応している。 Here, the stream data 42 corresponds to the stream data 47 generated by the virtual HUB 31.
そして、仮想 LANカード 21は、ストリームデータ 42を、 TCP/IPスタック 25から入力し 、仮想 HUB 31によるカプセル化処理と逆の処理により、カプセル化を解除し、最終的 に仮想 LANカード 11が送信した複数の MACフレームを抽出する。  Then, the virtual LAN card 21 receives the stream data 42 from the TCP / IP stack 25, cancels the encapsulation by the reverse process of the encapsulation process by the virtual hub 31, and finally the virtual LAN card 11 transmits it. Extract multiple MAC frames.
上述した送受信の処理により、仮想 LANカード 11が送信した、宛先の MACアドレス が「002222222222」である仮想 MACフレームを、仮想 LANカード 21が受信することが できる。  Through the transmission / reception process described above, the virtual LAN card 21 can receive the virtual MAC frame transmitted by the virtual LAN card 11 and having the destination MAC address “002222222222”.
[0109] また、仮想 LANカード 21から仮想 LANカード 11への送信、すなわち上述した逆方 向の仮想 MACフレーム送信や、この例以外の他のコンピュータ 500上で動作してレヽ る任意の仮想 LANカードに対する仮想 MACフレームの送信において、同じ仮想 HUB 31に接続されているものがある場合、その仮想 LANカードとの間の任意の仮想 MAC フレームの送受信などが、ここで説明した処理と同様の処理で行うことができる。 このように、本発明の VPNシステムによる仮想 HUBを中心とした複数枚の仮想 LAN カード間の仮想 MACフレームの送受信は、物理的なスイッチング HUBを中心とした 物理的な複数枚の LANカード間の MACフレームの送受信と同様に可能である。  [0109] Further, transmission from the virtual LAN card 21 to the virtual LAN card 11, that is, transmission of a virtual MAC frame in the reverse direction described above, or any virtual LAN operating and running on another computer 500 other than this example If there are virtual MAC frames sent to the card that are connected to the same Virtual HUB 31, any virtual MAC frame sent to or received from that virtual LAN card is the same as the process described here. Can be done. As described above, transmission / reception of a virtual MAC frame between a plurality of virtual LAN cards centered on a virtual hub by the VPN system of the present invention is performed between a plurality of physical LAN cards centered on a physical switching hub. This is possible in the same way as sending and receiving MAC frames.
[0110] <仮想 HUBと仮想 LAN力ードとのサーバー/クライアント関係 > [0110] <Server / client relationship between Virtual Hub and Virtual LAN Force>
本発明の VPNシステムにおいて、図 8で説明したように、仮想 LANカード 11, 21と 仮想 HUB31との間で送受信される仮想 MACフレームをカプセル化したデータは、ス トリームデータとして TCP/IPプロトコルを使用して送受信される。  In the VPN system of the present invention, as described with reference to FIG. 8, the data encapsulating the virtual MAC frame transmitted / received between the virtual LAN cards 11, 21 and the virtual hub 31 uses the TCP / IP protocol as stream data. Sent and received.
すでに述べた TCP/IPプロトコルに従った処理により、 2台のコンピュータ間におい て、 TCP/IPコネクションを成立させ、双方向のストリームデータの転送サービスを利用 する際、一方がサーバー、他方がクライアントの関係を構成する必要がある。  When a TCP / IP connection is established between two computers by using the processing according to the TCP / IP protocol described above and a bidirectional stream data transfer service is used, one is a server and the other is a client. A relationship needs to be configured.
TCP/IPサーバーとなるプログラムが特定のポート番号を待ち受け状態にし、  A program that becomes a TCP / IP server puts a specific port number on standby,
TCP/IPクライアントとなるプログラム力 TCP/IPサーバープログラムが動作してレ、るコ ンピュータの IPアドレスとポート番号とを指定し、 TCP/IPスタック(プロトコルスタック)を 呼び出す。 Program power as a TCP / IP client Specify the computer's IP address and port number, and call the TCP / IP stack (protocol stack).
[0111] これにより、 TCP/IPサーバープログラムが動作しているポート番号に対し、 TCP/IP クライアントとなるプログラムがハンドシェイクを試み、成功すれば TCP/IPクライアント プログラムと TCP/IPサーバープログラムとの間で、「サーバー側 IPアドレス,サーバー 側ポート番号,クライアント側 IPアドレス,クライアント側ポート番号」の 4組の情報によ つて定義され、他のコネクションと区別される TCP/IPコネクションが成立するものであ る。  [0111] As a result, the TCP / IP client program tries to handshake the port number on which the TCP / IP server program is running, and if successful, the TCP / IP client program and the TCP / IP server program A TCP / IP connection is defined that is defined by four sets of information: “server-side IP address, server-side port number, client-side IP address, client-side port number”, and is distinguished from other connections. It is.
TCP/IPプロトコルにおけるコネクション成立と通信が開始する際、必ず TCP/IPサー バープログラムとなるプログラムが必要となる。  When a connection is established and communication is started in the TCP / IP protocol, a program that is a TCP / IP server program is required.
[0112] そして、本発明の VPNシステムの構成においては、図 9に示す様に、例えば、 1つの 仮想 HUB31を中心として複数の仮想 LANカード 11 , 21 , 501,…が接続されている ここで、仮想 HUB31が VPNシステムの中心となり、すなわち TCP/IPサーバープログ ラムとなり、仮想 LANカード 11, 21 ,…が TCP/IPクライアントプログラムとなるのが適 切である。  In the configuration of the VPN system of the present invention, as shown in FIG. 9, for example, a plurality of virtual LAN cards 11, 21, 501,... It is appropriate that Virtual Hub 31 is the center of the VPN system, that is, a TCP / IP server program, and virtual LAN cards 11, 21,... Are TCP / IP client programs.
したがって、仮想 HUB31がサーバー、仮想 LANカードがクライアントとして、 TCP/IP コネクションを成立させることになる。  Therefore, a TCP / IP connection is established with the Virtual Hub 31 as the server and the Virtual LAN card as the client.
図 9は、仮想 HUB31と仮想 LANカード 11, 21 ,…とのサーバー/クライアント関係を 簡潔に示す概念図である。  FIG. 9 is a conceptual diagram briefly showing the server / client relationship between the virtual hub 31 and the virtual LAN cards 11, 21,...
[0113] まず、初期状態においては、例えば仮想 LANカード 11はどの仮想 HUBとも接続さ れていないので、利用するためにはユーザー操作によって仮想 LANカードを別のコ ンピュータほたは同一のコンピュータ上でも良レ、)で動作している仮想 HUB、例えば 仮想 HUB31に接続する必要がある。  [0113] First, in the initial state, for example, the virtual LAN card 11 is not connected to any Virtual HUB. Therefore, in order to use it, the virtual LAN card can be used on another computer or the same computer by user operation. However, it is necessary to connect to a Virtual HUB that is operating in good quality.
この、仮想 LANカード 11を仮想 HUB31に接続するプロセスにおいて、 2つの段階 が存在する。  There are two stages in the process of connecting the virtual LAN card 11 to the Virtual Hub 31.
1段階が、仮想 HUB31が TCP/IPサーバーとして待ち受けている TCP/IPポートに、 仮想 LANカード 11が TCP/IPクライアントとして接続するためのハンドシェイク処理で ある。 The first stage is a handshake process for connecting the Virtual LAN card 11 as a TCP / IP client to the TCP / IP port where the Virtual Hub 31 is waiting as a TCP / IP server. is there.
これは、通常の TCP/IPプロトコルの通信において必要なものであり、本発明に特有 のものではない。  This is necessary for normal TCP / IP protocol communication and is not unique to the present invention.
[0114] 次に、 2段階として、 TCP/IPプロトコルのレイヤで接続が確立し(ノヽンドシェイクが成 功し)た後、それによつて成立した TCP/IPコネクションを使用して仮想 HUB31と仮想 LANカード 11の間で SEプロトコルによる SEプロトコル固有のハンドシェイク処理が行 われる。  [0114] Next, as the second step, after the connection is established at the TCP / IP protocol layer (the node shake is successful), the virtual HUB 31 and the virtual hub 31 are connected to the virtual hub 31 using the established TCP / IP connection. SE protocol-specific handshake processing is performed between LAN cards 11 using the SE protocol.
この SEプロトコル固有のハンドシェイク処理には、仮想 LAN 11が仮想 HUB 31の正 当性を確認するための認証処理及び仮想 HUB 31が仮想 LAN 11の正当性を確認す るための認証処理や、仮想 HUB31と仮想 LANカード 11との相互のバージョン情報の 確認処理等が含まれてレ、る。  This SE protocol-specific handshake processing includes authentication processing for the virtual LAN 11 to check the validity of the Virtual Hub 31, authentication processing for the Virtual Hub 31 to check the validity of the Virtual LAN 11, This includes the process of checking the version information of Virtual Hub 31 and Virtual Network Adapter 11 between each other.
SEプロトコル固有のハンドシェイク処理に必要なデータは、全ての仮想 LANカード( 11 , 21 , 521 · · ·)と仮想 HUB31との間で成立した TCP/IPコ才ヽクシヨンによって、各々 相互に行われる。  Data required for SE protocol-specific handshake processing is mutually exchanged by the TCP / IP connection function established between all virtual LAN cards (11, 21, 521) and the virtual hub 31. Is called.
[0115] 上記ハンドシェイク処理におけるのプロセスがすべて成功した段階において、仮想 HUB31と仮想 LANカード 11ほたは 21 , 521 ,…;)との間の通信が信頼できることが 検出され、仮想 HUB 31と仮想 LAN力ード 11とは相互に通信相手が仮想 HUBの管理 者によってあらかじめ定められたアクセス制御データベース(ユーザー名とパスワード の組など)によってクライアントが認証されているということを記憶する。  [0115] At the stage where all the processes in the handshake process are successful, it is detected that the communication between the Virtual Hub 31 and the Virtual LAN card 11 or 21, 521,. Virtual LAN Force 11 remembers that the client is authenticated by an access control database (such as a user name and password pair) that is determined by the Virtual Hub administrator in advance.
[0116] この正当性の確認された段階にぉレ、て、仮想 HUB31は複数の仮想 LANカード(11 , 21 , 521, · · ·)との間のそれぞれの信頼性のある論理的な通信(クライアント側とサ 一バー側力 S、現在セッションが成立していることを記憶している状態のことを意味する 。物理的には 1本の回線を占有しなレ、)が確立しているため、それぞれの信頼性のあ る論理的な接続が確立した後、各仮想 LANカード 11との論理的通信セッションとレ、う 単位で管理するようになってレ、る。  [0116] When this legitimacy is confirmed, the Virtual Hub 31 communicates with each of the plurality of virtual LAN cards (11, 21, 521, ···) in a reliable manner. (Client side and server side force S, which means that the current session is remembered. Physically does not occupy one line) Therefore, after each reliable logical connection is established, the logical communication session with each virtual LAN card 11 is managed in units.
上記論理的な接続とは、仮想 HUBが現在接続していて、各 LANカードと相互に、い つでも仮想 MACフレームの送受信が可能になっている状態を示し、各仮想 LANカー ドとの間の関係を論理的に記憶したものを本発明の VPNシステムにおいては「セッシ ヨン」と呼んでいる。 The above logical connection refers to the state in which the Virtual Hub is currently connected and can transmit / receive virtual MAC frames to / from each LAN card at any time. In the VPN system of the present invention, a logical storage of the relationship between Called Yon.
[0117] 本発明の VPNシステムにおけるセッションは論理的なもの(クライアント側とサーバ 一側が、現在セッションが成立していることを記憶している状態のことを意味する。物 理的には 1本の回線を占有しなレ、)であり、そのセッション内においてクライアントであ る仮想 LANカード 11とサーバーである仮想 HUB31との間におレ、て、仮想 MACフレ ームが全二重で送受信することができるようになってレ、る。  [0117] The session in the VPN system of the present invention is logical (meaning that the client side and the server side remember that the session is currently established. Physically, one The virtual MAC frame is transmitted and received in full duplex between the virtual LAN card 11 that is the client and the virtual hub 31 that is the server in the session. You can do it.
し力、しながら、実際に、上記送受信される仮想 MACフレームは、上記ハンドシェイク 処理における暗号化、電子署名の付カ卩などのカプセルィ匕処理を行った後のストリー ムデータを送受信することで、論理的な TCP/IPコネクション内を流れる。  However, the virtual MAC frame actually transmitted / received is transmitted / received by transmitting / receiving the stream data after performing the capsule processing such as encryption in the handshake processing and the attachment of the electronic signature. Flows within a logical TCP / IP connection.
[0118] このため、通常、論理的な各セッションは、 1本の論理的な TCP/IPコネクションに対 して、一対一に対応していることになるほた、後述するが、 1つのセッションが 2本以 上の複数の TCP/IPコネクションに対応させることもできる)。 [0118] For this reason, normally, each logical session has a one-to-one correspondence with one logical TCP / IP connection. Can support more than two TCP / IP connections).
そして、一度確立したセッションは、仮想 LANカード 11側からでも、仮想 HUB31側 力 でも、どちらからでも切断することができる。  Once a session is established, it can be disconnected from either the virtual LAN card 11 side or the Virtual Hub 31 side.
また、途中の IPネットワークの通信状態が不安定になったり、物理的回線が切断さ れたり、一方のコンピュータが停止したり、一方のプログラムが停止したりするなどの 異常事態の発生によって、いつでもセッションは切断される可能性がある。  Also, due to the occurrence of an abnormal situation such as the communication status of the IP network in the middle becoming unstable, the physical line being disconnected, one computer shutting down, or one program shutting down Session may be disconnected.
[0119] く本発明における SEプロトコルのシーケンス〉 <SE Protocol Sequence in the Present Invention>
次に、上述してきた本発明の VPNシステムにおける SEプロトコルのシーケンスを、図 10を用いて説明する。  Next, the SE protocol sequence in the VPN system of the present invention described above will be described with reference to FIG.
図 10は、本発明の VPNシステムにおける SEプロトコルのシーケンスを説明するため の、仮想 LANカードと仮想 HUBとの間のデータの送受信を行う際のシーケンス処理を 示す概念図である。  FIG. 10 is a conceptual diagram showing sequence processing when data is transmitted and received between the virtual LAN card and the virtual HUB for explaining the SE protocol sequence in the VPN system of the present invention.
まず、初期状態において、仮想 LANカード 11は、ユーザーからの通信処理の操作 200により、特定の仮想 HUB31に対して接続するように要求する(接続要求 201)。  First, in the initial state, the virtual LAN card 11 requests to connect to a specific virtual HUB 31 by a communication processing operation 200 from the user (connection request 201).
[0120] そして、仮想 LANカード 11は、ユーザーによる接続要求 200により、宛先の仮想 HUB31に対して、 TCP/IPコネクションを確立しょうとする。 [0120] Then, the virtual LAN card 11 tries to establish a TCP / IP connection to the destination Virtual HUB 31 according to the connection request 200 from the user.
このとき、仮想 LANカード 11は、仮想 HUB31の IPアドレスと待ち受けポート番号とを 指定した指示を含む接続要求 201を、 TCP/IPスタック 15へ出力する。 At this time, the virtual LAN card 11 determines the IP address of the Virtual Hub 31 and the standby port number. A connection request 201 including the specified instruction is output to the TCP / IP stack 15.
これにより、 TCP/IPスタック 15は、 TCP/IPプロトコルに従って、接続先の仮想 HUB3 1との間で TCP/IPコネクションを確立するためにハンドシェイクを試みる。  As a result, the TCP / IP stack 15 attempts a handshake to establish a TCP / IP connection with the connection-destination Virtual HUB 31 according to the TCP / IP protocol.
ここで、ハンドシェイク処理は、実際には、複数回の IPパケットの送受信により行わ れる力 ここではその省略してハンドシェイク確立 202と表現してレ、る。  Here, the handshake process is actually a force performed by a plurality of times of IP packet transmission / reception, which is omitted here and expressed as handshake establishment 202.
[0121] TCP/IPプロトコル上のハンドシェイクが確立した後、仮想 LANカードプログラムと仮 想 HUBプログラムとの間で任意のストリームデータの双方向転送が可能になった段 階を、図 10において、「TCP/IPコネクション確立」と表現している。 [0121] After the handshake on the TCP / IP protocol is established, the stage in which bi-directional transfer of arbitrary stream data is possible between the virtual LAN card program and the virtual HUB program is shown in Fig. 10. It is expressed as “TCP / IP connection establishment”.
TCP/IPコネクション確立段階では、仮想 HUB31と仮想 LANカード 11との間におレヽ ては、この間にどのような形式の IPネットワーク(Ethernet (登録商標)、 ATM、フレー ムリレー、電話回線など)が存在していても、一方のコンピュータ力 任意のストリーム データを送信しょうとすると、他方のコンピュータにそのストリームデータが届く状態に なっているということになる。  At the TCP / IP connection establishment stage, any type of IP network (Ethernet (registered trademark), ATM, frame relay, telephone line, etc.) is connected between Virtual Hub 31 and Virtual Network Adapter 11 during this period. Even if it exists, if one computer power tries to send any stream data, it means that the stream data reaches the other computer.
[0122] そして、仮想 LANカード 11と仮想 HUB31との間に TCP/IPコネクションが確立した後 、仮想 LANカード 11は、仮想 HUB31との間で SEプロトコルに従ったハンドシェイク処 理を行うことになる(SEプロトコルハンドシェイク要求 203)。 [0122] After the TCP / IP connection is established between the virtual LAN card 11 and the virtual HUB 31, the virtual LAN card 11 performs a handshake process according to the SE protocol with the virtual HUB 31. (SE protocol handshake request 203).
実際には、仮想 LANカード 11と仮想 HUB31との間におレ、て、認証に必要な情報や その他の付加情報の交換が行われる。  In practice, information necessary for authentication and other additional information is exchanged between the virtual LAN card 11 and the Virtual Hub 31.
具体的には、ハンドシェイク処理のため、仮想 HUB31が仮想 LANカード 11に対し て、以下に示す情報(SEプロトコルハンドシェイク応答 205)を送信する。  Specifically, for the handshake process, the Virtual Hub 31 transmits the following information (SE protocol handshake response 205) to the virtual LAN card 11.
•仮想 HUB31と仮想 LANカード 11との間で SSL通信を行う場合は SSL通信の開始に 必要な情報  • Information required to start SSL communication when performing SSL communication between Virtual Hub 31 and Virtual LAN Card 11
•仮想 HUB31のバージョン情報(必要な場合)  • Virtual Hub 31 version information (if necessary)
• チャレンジ/レスポンス方式のパスワード認証を使用する場合はチャレンジ値(必要 な場合)  • Challenge value (if required) when using challenge / response password authentication
•それ以外の認証方法を使用する場合は、それぞれの認証方法に対応した認証デ ータなど(必要な場合)  • When using other authentication methods, authentication data corresponding to each authentication method, etc. (if necessary)
•その他の拡張情報(必要な場合) [0123] また、ハンドシェイク処理のため、仮想 LANカード 11が仮想 HUB31に対して送信す る情報(SEプロトコルハンドシェイク要求 203)には、以下のようなものがある。 • Other extended information (if necessary) [0123] Further, the information (SE protocol handshake request 203) transmitted from the virtual LAN card 11 to the Virtual HUB 31 for handshake processing includes the following.
•仮想 HUBと仮想 LAN力ードとの間で SSL通信を行う場合は SSL通信の開始に必要 な情報  • Information required to start SSL communication when performing SSL communication between Virtual Hub and Virtual LAN
•仮想 LANカードプログラムのバージョン情報(必要な場合)  • Virtual LAN card program version information (if necessary)
•接続しょうとしているユーザー名などの利用者識別符号(必要な場合)  • User identification code, such as the name of the user trying to connect (if necessary)
. チャレンジ/レスポンス方式のパスワード認証を使用する場合はレスポンス値 Response value when using challenge / response password authentication
•それ以外の認証方法を使用する場合は、各認証方法に対応した認証データなど( 必要な場合) • If other authentication methods are used, authentication data corresponding to each authentication method, etc. (if necessary)
• その他の拡張情報(必要な場合)  • Other extended information (if required)
[0124] 上述したように、 TCP/IPスタック 15は、仮想 LANカード 11から SEプロトコルハンドシ ェイク要求 203が入力されると、この SEプロトコルハンドシェイク要求 203を含む IPパ ケット 204を仮想 HUB31へ送信する。 [0124] As described above, when the SE protocol handshake request 203 is input from the virtual LAN card 11, the TCP / IP stack 15 sends the IP packet 204 including the SE protocol handshake request 203 to the virtual HUB 31. Send.
そして、 TCP/IPスタック 35は、入力された SEプロトコルハンドシェイク要求 203を、 仮想 HUB31に出力する。  Then, the TCP / IP stack 35 outputs the input SE protocol handshake request 203 to the virtual HUB 31.
[0125] 仮想 HUB31は、入力された SEプロトコルハンドシェイク要求 203を参照することによ り、仮想 LANカード 11の正当性を確認し、 SEプロトコルハンドシェイク応答 205を、 TCP/IPスタック 35へ出力する。 [0125] Virtual Hub 31 confirms the validity of virtual LAN card 11 by referring to the input SE protocol handshake request 203, and outputs SE protocol handshake response 205 to TCP / IP stack 35. To do.
TCP/IPスタック 35は、この SEプロトコルハンドシェイク応答 205を含む IPパケット 20 6を、仮想 LANカード 11に対して送信する。  The TCP / IP stack 35 transmits an IP packet 206 including this SE protocol handshake response 205 to the virtual LAN card 11.
そして、仮想 LANカード 11は、 TCP/IPスタック 15を介して、 SEプロトコルハンドシェ イク応答 205を入力して、仮想 HUB31の正当性の確認を行う。  Then, the virtual LAN card 11 inputs the SE protocol handshake response 205 via the TCP / IP stack 15 and confirms the validity of the virtual HUB 31.
[0126] 上述した処理において、ハンドシェイク処理が成功した後、最後のステップとして、 仮想 HUB31が仮想 LANカード 11に対して、ハンドシェイク処理が完了し接続が受け 入れられた旨の情報を含むハンドシェイク成功通知信号(SEプロトコルハンドシェイク 応答における最終信号)を送信する。 [0126] In the above-described processing, after the handshake processing is successful, as a final step, the hand that includes information indicating that the virtual hub 31 has completed the handshake processing and accepted the connection to the virtual LAN card 11. Send a shake success notification signal (final signal in the SE protocol handshake response).
このハンドシェイク成功通知信号には、以下に示す情報が含まれる。  This handshake success notification signal includes the following information.
•ハンドシェイク完了によって仮想 LANカードと仮想 HUBとの間で確立されたセッショ ンを一意に識別するためのセッション ID • The session established between the virtual LAN card and Virtual HUB upon completion of the handshake Session ID to uniquely identify
•その他の拡張情報(必要な場合)  • Other extended information (if necessary)
[0127] このハンドシェイク処理が成功した後、仮想 LANカード 11と仮想 HUB31との間にお いては、 SEセッションが確立された状態となり、 VPN通信が可能となる。 [0127] After this handshake process is successful, the SE session is established between the virtual LAN card 11 and the virtual HUB 31, and VPN communication is possible.
そして、 VPN通信が可能な状態の場合、仮想 LANカード 11が仮想 HUB31を経由し て、他の仮想 LANカードに対して送信する仮想 MACフレーム 208は、仮想 LANカー ド 11よってカプセル化されて、すでに説明されたようにストリームデータ化される。 ストリームデータ化する際の規約は、仮想 HUB31と仮想 LANカード 11とが事前に 定めている共通なプロトコルに規定されている。  When the VPN communication is possible, the virtual MAC frame 208 transmitted from the virtual LAN card 11 to the other virtual LAN card via the virtual hub 31 is encapsulated by the virtual LAN card 11, As described above, it is converted into stream data. The rules for converting to stream data are stipulated in a common protocol defined in advance by Virtual Hub 31 and Virtual LAN Card 11.
[0128] 図 10の例においては、仮想 LANカード 11は、ストリームデータ 209を、 TCP/IPスタ ック 15へ出力する。 In the example of FIG. 10, the virtual LAN card 11 outputs stream data 209 to the TCP / IP stack 15.
これにより、 TCP/IPスタック 15は、このとき、入力されたストリームデータ 209を、 IP パケット化した IPパケット 210を、仮想 HUB31との間で確立されている SEセッションに 関連付けられた TCP/IPコネクションを使用し、 IPネットワーク内を伝送させ、仮想 HUB 31が動作しているコンピュータへ送信する。  As a result, the TCP / IP stack 15 at this time makes the TCP / IP connection associated with the SE session established with the Virtual Hub 31 by converting the input stream data 209 into an IP packet. Is used to transmit through the IP network and send to the computer running Virtual Hub 31.
このコンピュータ上において動作している TCP/IPスタック 35がこの IPパケット 210を 受信する。  The TCP / IP stack 35 operating on this computer receives this IP packet 210.
[0129] 次に、 TCP/IPスタック 35は、入力された IPパケットからストリームデータ 211を復元 し、このストリームデータ 211を、仮想 HUB31へ出力する。  Next, the TCP / IP stack 35 restores the stream data 211 from the input IP packet, and outputs this stream data 211 to the virtual HUB 31.
そして、仮想 HUB31は、入力されたストリームデータ 211から、仮想 LAN11が行つ たカプセル化と逆の処理、すなわちカプセル化解除を行うことで仮想 MACフレーム 2 12を抽出する。  Then, the virtual HUB 31 extracts the virtual MAC frame 212 from the input stream data 211 by performing processing reverse to the encapsulation performed by the virtual LAN 11, that is, decapsulation.
これにより、仮想 LANカード 11が送信しょうとした仮想 MACフレームが仮想 HUB31 に届いたことになる。  As a result, the virtual MAC frame that the virtual LAN card 11 tried to transmit has arrived at the Virtual Hub 31.
仮想 HUB31は所定のスイッチング処理、ストアアンドフォワード処理を行ったのち、 仮想 MACフレームに記述された宛先 MACアドレスに対応する他の仮想 LANカードが 接続されているセッションを特定することができる。  Virtual HUB 31 can specify a session to which another virtual LAN card corresponding to the destination MAC address described in the virtual MAC frame is connected after performing predetermined switching processing and store-and-forward processing.
[0130] そして、そのセッションに対して、先ほど仮想 LANカード 11が仮想 MACフレーム 20 8をカプセルィ匕し、ストリームデータとして TCP/IPコネクションを経由して仮想 HUB31 に伝送したのと同等の処理を行い、仮想 MACフレーム 213をカプセル化したストリー ムデータ 214を、 TCP/IPスタック 35により IPパケット 215として、 TCP/IPコネクションを 経由して他の仮想 LANカードに渡すことになる。 [0130] Then, for the session, the virtual LAN card 11 has a virtual MAC frame 20 8 is encapsulated, and the stream data 214 encapsulated in the virtual MAC frame 213 is processed by the TCP / IP stack 35 using the same process as that transmitted to the Virtual Hub 31 via the TCP / IP connection as stream data. Packet 215 is passed to other virtual LAN card via TCP / IP connection.
これらの一連の作業の結果、仮想 HUBを経由した IEEE802.3 MACフレームを送受 信することができる VPNがインターネットなどの既設の IPネットワークをまたいだ格好で 遠隔地同士で構築し運用することができるようになる。  As a result of these series of work, VPN that can send and receive IEEE802.3 MAC frames via Virtual Hub can be constructed and operated between remote locations in a manner that spans existing IP networks such as the Internet. It becomes like this.
[0131] <仮想 LANカードにおけるカプセル化部の処理 > [0131] <Processing of encapsulation unit in virtual LAN card>
次に、仮想 LANカード及び仮想 HUBの双方において、事前に定めた SEプロトコノレ の規則に従って、複数の MACフレームをカプセル化してストリームデータ化し、またス トリームデータをカプセル化解除して複数の MACフレームを取り出すという、ほぼ同 様の処理を行う機能部を共通化することができる。  Next, on both the virtual LAN card and the Virtual Hub, according to the SE protocol rule established in advance, multiple MAC frames are encapsulated into stream data, and stream data is unencapsulated to create multiple MAC frames. It is possible to share a functional unit that performs almost the same process of extraction.
まず、本発明の VPNシステムにおける、例えば仮想 LANカード 11おけるカプセル化 部の処理を図 11を用いて説明する。この図 11は、仮想 LANカードにおけるカプセル 化部の処理を説明するための仮想 LANカードの概念図である。  First, the processing of the encapsulation unit in the virtual LAN card 11 in the VPN system of the present invention will be described with reference to FIG. FIG. 11 is a conceptual diagram of the virtual LAN card for explaining the processing of the encapsulation unit in the virtual LAN card.
[0132] この図 11力もわかるように、カプセル化部 18は、上位レイヤのプロトコルスタック 30 2から入力される仮想 MACフレーム 303の列を、ストリームデータ化して、ストリームデ ータ 40として、下位の TCP/IPプロトコルスタック 13に出力する。 [0132] As can be seen from FIG. 11, the encapsulating unit 18 converts the virtual MAC frame 303 input from the protocol stack 302 of the upper layer into stream data, and forms the stream data 40 as the lower data. Output to TCP / IP protocol stack 13.
また、カプセルィ匕解除部 19は、上記カプセルィ匕部 18と正反対の処理を行レ、、ストリ ームデータ 42から、複数の仮想 MACフレーム 304を抽出する処理を行う。  Further, the capsule release unit 19 performs a process opposite to the capsule unit 18 and extracts a plurality of virtual MAC frames 304 from the stream data 42.
このため、このカプセル化部 18及びカプセル化解除部 19とが本発明の VPNシステ ムによる IEEE802.3の仮想化の処理に対して、中心的な役割を有していることがわか る。  Therefore, it can be seen that the encapsulation unit 18 and the decapsulation unit 19 have a central role in the IEEE 802.3 virtualization processing by the VPN system of the present invention.
[0133] ここで、仮想 LANカード 11は、すでに述べたように、他の仮想 LANカードとの間に おいて任意のデータの送受信を行おうとする際、通信を行おうとするプログラムによ つて、以下の理由により、物理的な LANカードと同様に利用することができる。  [0133] Here, as described above, when the virtual LAN card 11 tries to transmit / receive arbitrary data to / from another virtual LAN card, the virtual LAN card 11 uses a program to perform communication. It can be used like a physical LAN card for the following reasons.
すなわち、オペレーティングシステム(OS)からは、仮想 LANカードが 1枚の物理的 な LANカードを操作するのと何ら変わらなレ、インターフェイス(デバイスドライバ)を有 している。 In other words, the operating system (OS) has an interface (device driver) that is no different from a virtual LAN card operating one physical LAN card. is doing.
[0134] このとき、任意の通信アプリケーションプログラム 300が本発明の VPNを経由して通 信を行おうとするとき、通信アプリケーションプログラム 300は利用したいプロトコルの プロトコルスタック 302に対してデータの送信を指示する。  At this time, when any communication application program 300 attempts to communicate via the VPN of the present invention, the communication application program 300 instructs the protocol stack 302 of the protocol to be used to transmit data. .
この利用したいプロトコルのプロトコルスタック 302としては、 TCP/IPプロトコルスタツ クゃ、 NetBEUIプロトコルスタック、 IPX/SPXプロトコルスタックなど、アプリケーションか らのデータを受け取って、それを物理レイヤの LANカードが扱うことができる MACフレ ーム化することができる能力を持っているものであれば既存のすべてのプロトコルスタ ックを使用できる。  The protocol stack 302 of the protocol you want to use is that the physical layer LAN card receives data from applications such as TCP / IP protocol stack, NetBEUI protocol stack, IPX / SPX protocol stack, etc. Any existing protocol stack can be used as long as it has the ability to be converted into a MAC frame.
[0135] そして、任意のプロトコルスタック 302は、通信アプリケーションプログラム 300に選 択され、仮想 LANカード 11に対して、複数の仮想 MACフレーム 303を出力する。 これにより、仮想 LANカード 11に複数の仮想 MACフレーム 303が入力されると、力 プセル化部 18は複数の仮想 MACフレームに対してカプセル化処理をし、ストリーム データ 40に変換して、このストリームデータ 40を TCP/IPプロトコルスタック 13へ出力 する。  Then, the arbitrary protocol stack 302 is selected by the communication application program 300 and outputs a plurality of virtual MAC frames 303 to the virtual LAN card 11. As a result, when a plurality of virtual MAC frames 303 are input to the virtual LAN card 11, the force processor 18 encapsulates the plurality of virtual MAC frames and converts them into stream data 40. Data 40 is output to TCP / IP protocol stack 13.
TCP/IPプロトコルスタック 13は、入力されるストリームデータ 40を IPパケット 41に変 換し、物理的な既存のネットワークインターフェイスデバイス 14を介して、 IPネットヮー ク上の仮想 HUBが動作しているコンピュータに対して送出する。  The TCP / IP protocol stack 13 converts the input stream data 40 into IP packets 41, and passes through the existing physical network interface device 14 to the computer running the Virtual Hub on the IP network. Send to
[0136] 一方、 IPネットワーク上の仮想 HUBが動作しているコンピュータから、仮想 LANカー ド 11が動作しているコンピュータが IPパケット 43を入力されると、ネットワークインター フェースデバイス 14は、入力される IPパケット 43を TCP/IPスタック 13へ出力する。 そして、 TCP/IPスタック 13は、上記 IPパケット 43が仮想 HUBによってストリームデー タ化(カプセル化)されたものが IPパケット化されているものであるため、ストリームデ ータ 42として復元し、仮想 LANカード 11へ出力する。  On the other hand, when the IP packet 43 is input from the computer on which the Virtual Hub is operating on the IP network to the computer on which the virtual LAN card 11 is operating, the network interface device 14 is input. IP packet 43 is output to TCP / IP stack 13. The TCP / IP stack 13 restores it as stream data 42 since the IP packet 43 is converted into stream data (encapsulated) by the Virtual Hub and converted into IP data. Output to LAN card 11.
[0137] 次に、仮想 LANカード 11において、カプセル化解除部 19は、入力されるストリーム データ 42のカプセル化解除処理を行レ、、複数の仮想 MACフレーム 304を抽出する そして、カプセル化解除部 19は、取り出した複数の仮想 MACフレーム 304を、その MACフレームのヘッダ部からプロトコル番号を参照し、現在利用可能な任意のプロト コルスタック 302に対して複数の仮想 MACフレームの形式により渡す。 [0137] Next, in the virtual LAN card 11, the decapsulation unit 19 performs decapsulation processing on the input stream data 42, and extracts a plurality of virtual MAC frames 304. And, the decapsulation unit 19 extracts the extracted virtual MAC frames 304, The protocol number is referred to from the header part of the MAC frame, and passed to any protocol stack 302 currently available in the form of a plurality of virtual MAC frames.
上述した処理によって、最終的に任意の通信アプリケーションプログラム 300が他 のコンピュータ力、ら VPNによりデータを受信することができる。  Through the above-described processing, an arbitrary communication application program 300 can finally receive data by other computer power or VPN.
[0138] <仮想 HUBにおけるカプセル化部の処理 > <Processing of encapsulating part in Virtual HUB>
次に、本発明の VPNシステムにおける仮想 HUBのカプセル化部の構成を図 12を用 いて説明する。図 12は、本発明の VPNシステムにおける仮想 HUBのカプセル化部の 処理の説明を行うための仮想 HUBの構成例を示す概念図である。  Next, the configuration of the Virtual Hub encapsulation unit in the VPN system of the present invention will be described with reference to FIG. FIG. 12 is a conceptual diagram showing a configuration example of a Virtual HUB for explaining the processing of the encapsulation unit of the Virtual HUB in the VPN system of the present invention.
仮想 HUB (例えば仮想 HUB31)は、複数の SEセッションを介して接続されている複 数の仮想 LANカード力、ら IPパケットを入力すると、この IPパケットからカプセル化され た仮想 MACフレームを取り出し、ヘッダ力、ら宛先 MACアドレスを見て、その MACフレ ームの送信先セッションを決定し、実際に送信先セッションに対する送信、すなわち、 IEEE802.3のスイッチング HUBと論理的に同等のスイッチング処理を行う。  When a virtual hub (for example, virtual hub 31) inputs IP packets from multiple virtual LAN cards connected via multiple SE sessions, the virtual MAC frame encapsulated from these IP packets is extracted and the header is extracted. Seeing the destination MAC address, the destination session of the MAC frame is determined, and transmission to the destination session is actually performed, that is, switching processing logically equivalent to the IEEE802.3 switching HUB is performed.
[0139] まず、遠隔地にあるコンピュータに搭載された仮想 LANカードから、カプセル化され た仮想 MACフレームが複数入っているストリームデータを IPパケット化した IPパケット がネットワークインターフェイスデバイス 34を介して入力される。 [0139] First, from a virtual LAN card mounted on a remote computer, an IP packet obtained by converting stream data containing multiple encapsulated virtual MAC frames into IP packets is input via the network interface device 34. The
そして、 TCP/IPプロトコルスタック 35は、入力された IPパケット 44を結合してストリー ムデータ 45を復元して、このストリームデータ 45をカプセル化解除部 48へ出力する  Then, the TCP / IP protocol stack 35 combines the input IP packet 44 to restore the stream data 45, and outputs this stream data 45 to the decapsulation unit 48.
[0140] そして、カプセル化解除部 48は、入力されるストリームデータ 45を、所定の処理を 行ってカプセル化を解除し、複数の仮想 MACフレーム 307を抽出し、 MACフレーム スイッチング処理部 49へ出力する。 [0140] Then, the decapsulation unit 48 performs predetermined processing to decapsulate the input stream data 45, extracts a plurality of virtual MAC frames 307, and outputs them to the MAC frame switching processing unit 49 To do.
MACフレームスイッチング処理部 49は、すでに述べた「本発明の VPNシステムによ る仮想的な MACフレーム交換の方法」により、仮想 MACアドレスと SEセッション(仮想 HUBの接続口に対応)との対応表を適時更新しつつ、その対応表に従ってスィッチ ング処理を行レ、、宛先セッションごとに仕分けされた仮想 MACフレーム 306をセッショ ンごとの送信キュー(50, 51, 52,■·■)に追カロする。  The MAC frame switching processing unit 49 uses the above-described “virtual MAC frame exchanging method by the VPN system of the present invention” to map the correspondence between the virtual MAC address and the SE session (corresponding to the connection port of Virtual Hub). , The switching process is performed according to the correspondence table, and the virtual MAC frame 306 sorted for each destination session is added to the transmission queue (50, 51, 52, ■) for each session. To do.
[0141] 次に、 SEセッションごとに用意された送信キュー(50, 51, 52,■·■)には、 0または 1 以上の仮想 MACフレームが蓄積される。 [0141] Next, in the transmission queue (50, 51, 52, ■■) prepared for each SE session, 0 or 1 The above virtual MAC frames are accumulated.
ここで、 1個以上の仮想 MACフレームが蓄積された状態になったとき、その送信キュ 一に対応するセッションのカプセル化部(53, 54, 55· · ·)各々は、対応する送信キュ 一(50, 51, 52,■··)の先頭から、例えば送信キュー 51の先頭力 複数の仮想 MAC フレーム 308を取り出し、カプセル化処理を行う。  Here, when one or more virtual MAC frames are accumulated, the session encapsulation units (53, 54, 55,...) Corresponding to the transmission queue each correspond to the corresponding transmission queue. From the head of (50, 51, 52,...), For example, the head force of the transmission queue 51 is taken out and a plurality of virtual MAC frames 308 are taken out and encapsulated.
[0142] そして、カプセノレ化部 54は、上記複数の仮想 MACフレームをストリームデータ 47へ 変換した後、 TCP/IPプロトコルスタック 35へ出力する。 Then, the encapsulation unit 54 converts the plurality of virtual MAC frames into stream data 47 and outputs the stream data 47 to the TCP / IP protocol stack 35.
これにより、 TCP/IPプロトコルスタック 35は、上記ストリームデータ 47を IPパケットィ匕 して、複数の IPパケット 46を生成し、この IPパケット 46をネットワークインターフェイス デバイス 34を介して IPネットワークに送信する。  As a result, the TCP / IP protocol stack 35 converts the stream data 47 into an IP packet, generates a plurality of IP packets 46, and transmits the IP packets 46 to the IP network via the network interface device 34.
そして、その IPパケットは宛先セッションの先にある仮想 LANカードに送り届けられる  The IP packet is sent to the virtual LAN card ahead of the destination session.
[0143] <カプセル化/カプセル化解除に関する規約の共通化 > [0143] <Standardization of Encapsulation / Decapsulation Rules>
上述した仮想 LAN力一ド及び仮想 HUBの力プセル化部は、仮想 LAN力一ドと仮想 The virtual LAN force and virtual hub's power pusher unit described above
HUBとで共通であっても良ぐ本発明の VPNシステムにおいては、これらを共通のプ ログラム(アルゴリズム)で実装している。 In the VPN system of the present invention, which may be shared by the HUB, these are implemented by a common program (algorithm).
本発明における VPNシステムの実装においては、最適化のため、  In the implementation of the VPN system in the present invention, for optimization,
'仮想 HUBにおける複数の仮想 MACフレームをカプセル化してストリームデータィ匕 するための規約  'Convention for encapsulating multiple virtual MAC frames in a Virtual HUB to stream data
'仮想 LANにおけるストリームデータをカプセル化解除して複数の仮想 MACフレー ムを取り出すための規約  'Convention to unencapsulate stream data in virtual LAN and extract multiple virtual MAC frames
の 2つの処理に互換性がある必要がある。  The two processes must be compatible.
[0144] また、 [0144] Also,
'仮想 LANカードにおける複数の仮想 MACフレームをカプセル化してストリームデ ータ化するための規約  'Convention for encapsulating multiple virtual MAC frames in a virtual LAN card and converting them to stream data
'仮想 HUBにおけるストリームデータをカプセル化解除して複数の仮想 MACフレー ムを取り出すための規約  'Convention to unencapsulate stream data in Virtual Hub and extract multiple virtual MAC frames
の 2つの処理にも互換性が必要である。 [0145] 一方、 The two processes must be compatible. [0145] Meanwhile,
'仮想 HUBにおける複数の仮想 MACフレームをカプセル化してストリームデータィ匕 するための規約  'Convention for encapsulating multiple virtual MAC frames in a Virtual HUB to stream data
'仮想 LANカードにおける複数の仮想 MACフレームをカプセル化してストリームデ ータ化するための規約  'Convention for encapsulating multiple virtual MAC frames in a virtual LAN card and converting them to stream data
の 2つの処理には互換性が無くても支障は生じない。  There is no problem even if these two processes are not compatible.
[0146] また、 [0146] Also,
'仮想 LANカードにおけるストリームデータをカプセル化解除して複数の仮想 MAC フレームを取り出すための規約  'Convention to unencapsulate stream data in virtual LAN card and extract multiple virtual MAC frames
'仮想 LANカードにおける複数の仮想 MACフレームをカプセル化してストリームデ ータ化するための規約  'Convention for encapsulating multiple virtual MAC frames in a virtual LAN card and converting them to stream data
の 2つの処理も互換性が無くても VPN通信上は支障無レ、が、プログラミングの手間 を省くため、同一の規約を適用することが適切である。  Even if these two processes are not compatible, there is no problem in VPN communication, but it is appropriate to apply the same rules to save programming effort.
[0147] <カプセル化部の処理 > [0147] <Processing of encapsulation unit>
次に、図 11及び 12に示した力プセノレイ匕咅 18, 53, 54, 55の処理内容を図 13を 用いて説明する。図 13は、上記カプセルィ匕部の構成例を示すブロック図である。 カプセルィ匕部 18 (53— 55)は、結合部 60、拡張処理部 61及びセキュリティ情報付 加部 62を有している。  Next, the processing contents of the force psenolays 18, 53, 54, 55 shown in FIGS. 11 and 12 will be described with reference to FIG. FIG. 13 is a block diagram illustrating a configuration example of the capsule unit. The capsule section 18 (53-55) has a coupling section 60, an expansion processing section 61, and a security information adding section 62.
結合部 60は、複数の仮想 MACフレーム 59が入力されると、この複数の仮想 MACフ レームが届いた段階において、所定のフレーム数により適当な順番につなぎ合わせ て結合する処理を行い、結合されたストリーム 63が生成される。  When a plurality of virtual MAC frames 59 are input, the combining unit 60 performs a process of connecting and combining them in an appropriate order according to a predetermined number of frames when the plurality of virtual MAC frames arrives. Stream 63 is generated.
[0148] そして、拡張処理部 61は、入力されるストリーム 63に対して、 0または 1以上の拡張 処理を行い、ストリームデータ 64を生成し、セキュリティ情報付加部 62に出力する。 ここで、上記拡張処理には、データ圧縮などの通信効率を高める処理を含むことが できる。 [0148] Then, the extension processing unit 61 performs 0 or 1 or more extension processing on the input stream 63, generates stream data 64, and outputs the stream data 64 to the security information adding unit 62. Here, the expansion processing can include processing for improving communication efficiency such as data compression.
次に、セキュリティ情報付加部 62は、通信の秘密を保護するため、上記ストリームデ ータ 64に対して、暗号化及び電子署名などのセキュリティ処理を行い、セキュリティ 情報が付加されたデータ 65を生成する。 そして、セキュリティ情報付加部 62は、上記データ 65を、ストリームデータ 47として 、次段の TCP/IPスタック 35に渡して宛先コンピュータのプログラム宛に送信してもらう 。また、このセキュリティ情報付加部 62を省略することも可能である。 Next, in order to protect the communication secret, the security information adding unit 62 performs security processing such as encryption and digital signature on the stream data 64 to generate data 65 with the security information added. To do. Then, the security information adding unit 62 passes the data 65 as stream data 47 to the TCP / IP stack 35 in the next stage and transmits it to the program of the destination computer. The security information adding unit 62 can be omitted.
[0149] <結合部の処理内容 > [0149] <Processing content of combined part>
次に、図 13に示したカプセル化部 18, 53 55のにおける結合部 60の構成につ いて、図 14を用いて詳細に説明する。図 14は結合部の MACフレームの結合処理を 説明する概念図である。  Next, the configuration of the coupling unit 60 in the encapsulation units 18 and 5355 shown in FIG. 13 will be described in detail with reference to FIG. FIG. 14 is a conceptual diagram illustrating the MAC frame combining process of the combining unit.
結合部 60は、入力される複数の仮想 MACフレームを、図 14に示す様に、一つめの 仮想 MACフレームの次に 2つめの仮想 MACフレーム、 2つ目の MACフレームの次に 3つめの MACフレームというように、入力された順に、または入力された順ではないが 適当な順に一直線上に並べ、すなわち直列に並べて結合する。  As shown in FIG. 14, the combining unit 60 combines the input virtual MAC frames with the second virtual MAC frame after the first virtual MAC frame and the third virtual frame after the second MAC frame. Like MAC frames, they are arranged in a straight line in the order of input or in an appropriate order, but not in the order of input, that is, they are connected in series.
[0150] そして、各 MACフレームの前に、その MACフレームの長さ情報(ビット長)などを付 加し、どこからどこまでが各仮想 MACフレームであり、かつ結合した仮想 MACフレー ムの合計数がいくらであるかといったことが、後に検出できるように、長さ情報やそれ に代替可能な区切り記号などを付加しつつ、図 13で説明したストリーム化処理を行う 最終的に、結合部 60は、この結合済みストリーム 63を、拡張処理部 61へ出力され る。 [0150] Then, the length information (bit length) of the MAC frame is added before each MAC frame, where each virtual MAC frame is from where to where, and the total number of combined virtual MAC frames is In order to be able to detect how much it will be, the stream information described in FIG. 13 is added while adding length information and alternative delimiters to it. The combined stream 63 is output to the extension processing unit 61.
[0151] <拡張処理部の処理内容 >  [0151] <Processing content of extended processing part>
次に、図 13に示したカプセル化部 18, 53— 55のにおける拡張処理部 61の構成 について、図 15を用いて詳細に説明する。図 15は拡張処理部 61の拡張データの付 加処理を説明する概念図である。  Next, the configuration of the extension processing unit 61 in the encapsulation units 18, 53 to 55 shown in FIG. 13 will be described in detail with reference to FIG. FIG. 15 is a conceptual diagram illustrating the extension data adding process of the extension processing unit 61.
入力されるストリーム 63は、 0または 1個以上の任意個数の拡張処理を行うことがで きる。  The input stream 63 can be subjected to 0 or one or more arbitrary number of extension processes.
例えば、圧縮率の高いデータが入ったストリーム 63が入力された場合、拡張処理 部 61は、データ圧縮アルゴリズムなどを用いてデータ圧縮したものを出力するといつ た拡張処理を複数組み合わせることにより、通信の効率を上げる短いストリームデー タ 64を生成することができる。 ここで、拡張処理部は特にユーザーがそれを必要としない場合は 0個、すなわち入 カストリーム 61をそのまま出力ストリーム 64としても良い。 For example, when a stream 63 containing data with a high compression rate is input, the expansion processing unit 61 outputs a data compressed using a data compression algorithm, etc. Short stream data 64 can be generated to increase efficiency. Here, when the user does not need it, the extension processing unit may use 0, that is, the input stream 61 as the output stream 64 as it is.
[0152] <セキュリティ情報付加部の処理内容 > [0152] <Processing content of security information adding part>
次に、図 13に示したカプセル化部 18, 53 55のにおけるセキュリティ情報付加部 62の構成について、図 16を用いて詳細に説明する。図 16はセキュリティ情報付カロ 部 62のセキュリティ情報の付加処理を説明する概念図である。  Next, the configuration of the security information adding unit 62 in the encapsulation units 18 and 5355 shown in FIG. 13 will be described in detail with reference to FIG. FIG. 16 is a conceptual diagram illustrating the security information adding process of the security information adding unit 62.
まず、複数の暗号化アルゴリズムと電子署名アルゴリズムとがテーブルに記憶され ており、予めユーザーがテーブルから選択した喑号ィヒアルゴリズムと電子署名アルゴ リズムとが使用されることとする。  First, a plurality of encryption algorithms and electronic signature algorithms are stored in a table, and a signature algorithm and an electronic signature algorithm selected in advance from the table by the user are used.
[0153] そして、セキュリティ情報付カ卩部 62において、電子署名部 66は、入力されたストリー ム 64の内容に対して、選択された電子署名アルゴリズムによって電子署名 68のデー タを計算し、それをストリーム 64の内容に付加したストリームデータを生成し、 暗号化部 67へ出力する。 [0153] Then, in the security information card 62, the electronic signature unit 66 calculates the data of the electronic signature 68 for the contents of the input stream 64 by the selected electronic signature algorithm. Is added to the contents of the stream 64, and is output to the encryption unit 67.
次に、暗号化部 67は、入力される電子署名 68が付加されたストリームデータが入 力されると、このストリームデータに対して、選択された暗号化アルゴリズムによってス トリームデータ全体を暗号化し、ストリーム 47として出力する。このときストリームデー タのサイズが変化することもある。  Next, when the stream data to which the input electronic signature 68 is added is input, the encryption unit 67 encrypts the entire stream data with the selected encryption algorithm for the stream data, and Output as stream 47. At this time, the size of the stream data may change.
[0154] これによつて得られたストリーム 47は、ストリーム 64の内容と電子署名 68の内容を 両方含み、かつ必要な場合はその他の拡張情報を含んだストリームである。 [0154] The stream 47 obtained in this way is a stream that includes both the content of the stream 64 and the content of the electronic signature 68 and, if necessary, other extension information.
また、上述した処理において、使用する電子署名アルゴリズムと喑号ィヒアルゴリズム との種類によっては、先に暗号化部 67において暗号化アルゴリズムによる処理を行 つた後、電子署名部 66において電子署名アルゴリズムによる電子署名計算を行って それを付加するという、前述とは順序が逆の処理を行っても良い。  In the above-described processing, depending on the type of the digital signature algorithm and the 喑 sign algorithm, the encryption unit 67 first performs the encryption algorithm processing, and then the electronic signature unit 66 uses the electronic signature algorithm. The processing may be performed in the reverse order as described above, in which an electronic signature is calculated and added.
本発明の VPNシステムにおいては、一例として、セキュリティ情報付カ卩部 62として、 SSL (Secure Socket Layer)と互換性のある方法を採用している。  In the VPN system of the present invention, as an example, a method compatible with SSL (Secure Socket Layer) is adopted as the security information-added card unit 62.
[0155] <カプセル化解除部の処理 > [0155] <Process of decapsulation unit>
次に、上記カプセル化部 18, 53 55の処理を説明したため、この逆の処理である カプセル化解除部 19, 48の処理を、図 17を用いて説明する。図 17は、上記カプセ ル化解除部 19, 48の構成例を示すブロック図である。 Next, since the processes of the encapsulation units 18 and 5355 have been described, the process of the decapsulation units 19 and 48, which is the reverse process, will be described with reference to FIG. Figure 17 shows the above capsule. FIG. 6 is a block diagram showing an example of the configuration of the de-releasing units 19, 48.
カプセル化解除部 19, 48は、分解部 71,拡張処理除去部 72及びセキュリティ情 報除去部 73を有している。  The decapsulation units 19 and 48 have a disassembling unit 71, an extended processing removing unit 72 and a security information removing unit 73.
カプセル化解除部 19ほたは 48)は、入力されるストリームデータ 45を、カプセル化 部 18, 53 55とは逆の順序により、仮想 MACフレームに変換される。  The decapsulation unit 19 or 48) converts the input stream data 45 into a virtual MAC frame in the reverse order of the encapsulation units 18 and 5355.
[0156] まず、セキュリティ情報除去部 73は、図 16のセキュリティ情報付加部 62の処理内 容で詳解した処理と逆の順序の処理を行レ、、 TCP/IPスタックより入力される、喑号ィ匕 され電子署名を追加されたストリームデータ 45から、暗号化 ·電子署名前のストリーム データ 74を復元し、拡張処理除去部 72へ出力する。 [0156] First, the security information removing unit 73 performs processing in the reverse order to the processing detailed in the processing content of the security information adding unit 62 in Fig. 16, and is input from the TCP / IP stack. The stream data 74 before encryption / electronic signature is restored from the stream data 45 added with the digital signature and output to the extended processing removal unit 72.
すなわち、セキュリティ情報除去部 73は、このストリームデータ 45から、セキュリティ 情報を除去し喑号ィ匕前のストリームを復元したデータ 74を出力する。  That is, the security information removing unit 73 outputs data 74 obtained by removing the security information from the stream data 45 and restoring the stream before the sign.
[0157] 次に、拡張処理除去部 72は、上記データ 74が入力されると、各拡張処理によって 変化したデータを元のデータ 75に復元し、分解部 71へ出力する。 Next, when the data 74 is input, the extended processing removal unit 72 restores the data changed by each extended processing to the original data 75 and outputs it to the decomposition unit 71.
すなわち、拡張処理除去部 72は、データ 74に対して拡張処理による情報を除去し 、復元されたデータ 75を出力する。  That is, the extended process removing unit 72 removes information from the extended process from the data 74 and outputs the restored data 75.
最終的に、分解部 71は、入力されるデータ 75に対し、結合部 60と逆の処理を行つ て、一直線に並べられた仮想 MACフレームとそれらを区切るための識別符号から、 各仮想 MACフレーム 307を抽出し、この抽出された複数の仮想 MACフレーム 307を 、カプセルィ匕解除部 48の出力とする。  Finally, the disassembling unit 71 performs reverse processing to the combining unit 60 on the input data 75, and from the virtual MAC frames arranged in a straight line and the identification codes for separating them, each virtual MAC The frame 307 is extracted, and the extracted plurality of virtual MAC frames 307 are output as the capsule release unit 48.
[0158] <仮想 MACフレームスイッチング処理部の処理 > <Processing of virtual MAC frame switching processor>
図 8に示した本発明の VPNシステムによる仮想的な MACフレーム交換の方法、及 び図 12に示した仮想 HUBにおけるカプセル化部の処理の説明で用いた、仮想 HUB内で動作する仮想 MACフレームスイッチング処理部の説明を図 18を用いて説 明する。図 18は、仮想 MACフレームスイッチング処理部 49のスイッチング処理の動 作を示す概念図である。  The virtual MAC frame operating in the Virtual HUB used in the description of the method of virtual MAC frame exchange by the VPN system of the present invention shown in FIG. 8 and the processing of the encapsulation unit in the Virtual HUB shown in FIG. The explanation of the switching processing unit will be explained with reference to FIG. FIG. 18 is a conceptual diagram showing the operation of the switching process of the virtual MAC frame switching processing unit 49.
仮想 MACフレームスイッチング処理部 49は、入力される仮想 MACフレームごとに、 その宛先 MACアドレスを見て適切なセッションに振り分けるスイッチング処理を行う。  The virtual MAC frame switching processing unit 49 performs switching processing for each virtual MAC frame that is input and assigns it to an appropriate session by looking at the destination MAC address.
[0159] このスイッチング処理に前提条件として、仮想 HUBには複数のセッションが接続さ れており、セッションごとに送信キューが用意されていることがあげられる。 [0159] As a prerequisite for this switching process, multiple sessions are connected to the Virtual Hub. The transmission queue is prepared for each session.
また、 1つの対応表(すなわち、仮想 MACアドレスと SEセッション番号との対応表) が管理されている。  One correspondence table (that is, correspondence table between virtual MAC address and SE session number) is managed.
この対応表の各行には、仮想 MACアドレスとセッション番号との対応関係が記述さ れており、また、各行が作成または更新された日時などの拡張情報を記述することも 可能である。  Each row of this correspondence table describes the correspondence between the virtual MAC address and the session number, and it is also possible to describe extended information such as the date and time when each row was created or updated.
[0160] まず、仮想 MACフレームスイッチング処理部 49は、入力される仮想 MACフレーム 3 07のヘッダを参照して、その仮想 MACフレーム 307の送信者の MACアドレスを取り 出す。  First, the virtual MAC frame switching processing unit 49 refers to the header of the input virtual MAC frame 307 and extracts the MAC address of the sender of the virtual MAC frame 307.
次に、仮想 MACフレームスイッチング処理部 49は、この MACアドレスを含む行が仮 想 MACアドレスとセッション番号との上記対応表に存在しているか否かの検出を行う そして、仮想 MACフレームスイッチング処理部 49は、検索した MACアドレスが存在 していないことを検出した場合、新しくその MACアドレスと MACフレームの送信元セッ シヨン番号との対応関係を対応表に追加する。  Next, the virtual MAC frame switching processing unit 49 detects whether or not a row including the MAC address exists in the correspondence table between the virtual MAC address and the session number and the virtual MAC frame switching processing unit When 49 detects that the searched MAC address does not exist, 49 newly adds the correspondence between the MAC address and the transmission source session number of the MAC frame to the correspondence table.
[0161] 一方、仮想 MACフレームスイッチング処理部 49は、対応する MACアドレスが存在し ていることが検出された際、セッション番号が対応表に記録されているものと、実際に その MACフレームを送信しょうとしたセッションの番号とが相違する場合、対応表のそ の行のセッション番号を更新する。 On the other hand, when the virtual MAC frame switching processing unit 49 detects that the corresponding MAC address exists, the virtual MAC frame switching processing unit 49 actually transmits the MAC frame in which the session number is recorded in the correspondence table. If the number of the session you tried is different, update the session number in that row of the correspondence table.
次に、仮想 MACフレームスイッチング処理部 49は、同仮想 MACフレーム内の宛先 MACアドレスを抽出する。  Next, the virtual MAC frame switching processing unit 49 extracts a destination MAC address in the virtual MAC frame.
[0162] そして、仮想 MACフレームスイッチング処理部 49は、この抽出された宛先 MACアド レスが IEEE802.3におけるブロードキャストアドレスに該当しない場合、ュニキヤストア ドレスであるため、 MACアドレスに対応した行が仮想 MACアドレスとセッション番号と の対応表に存在しているか否かの検出を行う。 [0162] Then, when the extracted destination MAC address does not correspond to the broadcast address in IEEE802.3, the virtual MAC frame switching processing unit 49 is a unique address, so the row corresponding to the MAC address is the virtual MAC address. And whether it exists in the correspondence table between and session number.
このとき、仮想 MACフレームスイッチング処理部 49は、 MACアドレスに対応する行 が存在してレ、る場合、その仮想 MACアドレスに対応したセッション番号を対応表から 読み出すことにより、その仮想 MACフレームを送信する送信先セッション番号を確定 する。 At this time, if there is a row corresponding to the MAC address, the virtual MAC frame switching processor 49 transmits the virtual MAC frame by reading the session number corresponding to the virtual MAC address from the correspondence table. Confirm the destination session number To do.
[0163] 次に、仮想 MACフレームスイッチング処理部 49は、セッション番号が確定すること により、この確定したセッション番号に対応する送信キューに対し、仮想 MACフレーム を追加する。  Next, when the session number is confirmed, the virtual MAC frame switching processing unit 49 adds a virtual MAC frame to the transmission queue corresponding to the confirmed session number.
また、仮想 MACフレームスイッチング処理部 49は、対応表に宛先 MACアドレスが 存在しないことを検出した場合、または宛先 MACアドレスがブロードキャストアドレス である場合、セッション番号が確定できないため、送信元セッションを除外するすべて のセッションの送信キュー(50, 51, 52, ■·■)に対してパケットをフラッデイングする。 上述した処理が仮想 MACフレームスイッチング処理部 49の処理である。 仮想 MACフレームスイッチング処理部 49は、各 SEセッションごとに設置された送信 キューに対し、 1個以上の仮想 MACフレームが蓄積された状態を検出すると、仮想 HUB内のカプセル化部 53 55がそのパケットを読み込み、カプセル化処理を行う。  Also, the virtual MAC frame switching processing unit 49 excludes the transmission source session when it detects that the destination MAC address does not exist in the correspondence table or when the destination MAC address is a broadcast address, because the session number cannot be determined. Packets are flooded to the transmission queue (50, 51, 52, ■) of all sessions. The processing described above is the processing of the virtual MAC frame switching processing unit 49. When the virtual MAC frame switching processing unit 49 detects a state in which one or more virtual MAC frames are accumulated in the transmission queue set for each SE session, the encapsulation unit 53 55 in the Virtual HUB transmits the packet. Is read and encapsulated.
[0164] <TCP/IPコネクション力 本ずつの場合の問題点 > [0164] <Problems with TCP / IP connection power>
次に、図 19を用いて、各仮想 HUBと仮想 LANカードとの間のカプセル化されたス トリームデータの送受信において、各 SEセッションに対して 1本ずつの TCP/IPコネ クシヨンを使用する場合の欠点について説明する。図 19は回線速度が異なる IPネット ワークを用いた本発明の VPNシステムの構成を示す概念図である。  Next, referring to Figure 19, when one TCP / IP connection is used for each SE session in sending and receiving encapsulated stream data between each Virtual Hub and virtual LAN card. The shortcomings of will be described. FIG. 19 is a conceptual diagram showing the configuration of the VPN system of the present invention using IP networks with different line speeds.
これまでの説明において、 2つの仮想 LANカードが遠隔地にある仮想 HUBを経由 して、仮想 MACフレームを送受信する場合、例えば図 19の場合においては、送信者 側の仮想 LANカード 11がまず仮想 MACフレームをカプセル化してストリームデータ 化し、それを TCP/IPスタック 15に出力する。  In the above description, when two virtual LAN cards transmit and receive virtual MAC frames via a remote Virtual Hub, for example, in the case of FIG. 19, the virtual LAN card 11 on the sender side is first virtual. Encapsulate the MAC frame into stream data and output it to the TCP / IP stack 15.
[0165] すでに仮想 HUB31との間で確立されている SEセッションに対応した TCPZIPコネ クシヨンを使用し、上記 TCP/IPスタック 15は仮想 HUB31が動作しているコンビユー タに対して、上記ストリームデータを送信する。 [0165] The TCP / IP stack 15 uses the TCPZIP connection corresponding to the SE session already established with the Virtual Hub 31, and the TCP / IP stack 15 sends the stream data to the computer where the Virtual Hub 31 is operating. Send.
そして、仮想 HUB31が動作しているコンピュータは、 IPネットワーク(回線速度 100 の高速回線)から、そのストリームデータを受信して、 TCP/IPスタック 35によってス トリームデータをカプセル化解除し、仮想 MACフレームを取り出し、仮想 HUB31の 各種処理によって宛先 MACアドレスに対応した仮想 LANカード 11へのセッション に対応した送信キュー 50に挿入する。 The computer on which Virtual Hub 31 is operating receives the stream data from the IP network (high-speed line with a line speed of 100), decapsulates the stream data with TCP / IP stack 35, and creates a virtual MAC frame. Session to the virtual LAN card 11 corresponding to the destination MAC address by various processing of the Virtual Hub 31. Insert into send queue 50 corresponding to.
[0166] 上述した処理が、高速回線の IPネットワークを介した、仮想 LANカード 11から仮想 HUB31への仮想 MACフレームの転送処理である。 [0166] The above-described process is a process of transferring a virtual MAC frame from the virtual LAN card 11 to the virtual HUB 31 via the high-speed line IP network.
一方、仮想 HUB31は、内部の送信キュー 50に溜まった仮想 MACフレームをカプ セル化してストリームデータ化し、 TCPZIPスタック 35を使用し、 IPネットワーク上に 送出する。  On the other hand, the Virtual Hub 31 encapsulates the virtual MAC frames accumulated in the internal transmission queue 50, converts them into stream data, and transmits them to the IP network using the TCPZIP stack 35.
そして、宛先の仮想 LANカード 21が動作しているコンピュータの TCPZIPスタック 25は、 IPネットワーク(回線速度 1の低速回線)を介して入力されたストリームデータを 復元し、仮想 LANカード 21へ出力する。  Then, the TCPZIP stack 25 of the computer on which the destination virtual LAN card 21 is operating restores the stream data input via the IP network (low speed line with a line speed of 1) and outputs it to the virtual LAN card 21.
[0167] これにより、仮想 LANカード 21は、入力されるストリームデータをカプセル化解除し 、仮想 MACフレームを取り出す。  Thereby, the virtual LAN card 21 decapsulates the input stream data and takes out the virtual MAC frame.
上述したまでの処理が、低速回線の IPネットワークを介した、仮想 HUB31から仮想 LANカード 21への仮想 MACフレームの転送処理であるということがわかる。  It can be seen that the processing up to the above is the transfer processing of the virtual MAC frame from the virtual hub 31 to the virtual LAN card 21 via the low-speed line IP network.
この「仮想 LANカード 11から仮想 HUB31への仮想 MACフレーム転送処理」と、「 仮想 HUB31から仮想 LANカード 21への仮想 MACフレーム転送処理」との、 2段 階の転送処理により、仮想 LANカード 11が送信した MACフレームが仮想 LAN力 ード 21に到着することになる。  The virtual LAN card 11 is transferred through a two-stage transfer process, the “Virtual MAC frame transfer process from Virtual Network Adapter 11 to Virtual Hub 31” and the “Virtual MAC frame transfer process from Virtual Hub 31 to Virtual Network Adapter 21”. The MAC frame transmitted by arriving at virtual LAN mode 21.
[0168] 単純にこの処理を考えた場合、仮想 LANカード 11が動作しているコンピュータ,及 び仮想 HUB31が動作しているコンピュータとの間の通信回線の回線速度と、仮想 H UB31が動作しているコンピュータ,及び仮想 LANカード 21が動作しているコンビュ ータと、の間の通信回線の回線速度がほぼ等しいか、データを受信する側がデータ を送信する側に対して高速に通信が行える場合、特に通信上に問題は発生しなレ、。 し力、しながら、仮想 LANカード 11が動作しているコンピュータと仮想 HUB31が動 作しているコンピュータとの間の通信回線の回線速度より、仮想 HUB31が動作して レ、るコンピュータと仮想 LANカード 21が動作しているコンピュータとの間の通信回線 の回線速度のほうが低速である場合、すなわち、データを受信する側がデータを送 信する側に対して低速な通信しか行えない場合、通信上に問題が発生する。  [0168] If this process is simply considered, the line speed of the communication line between the computer on which the virtual LAN card 11 is operating and the computer on which the virtual hub 31 is operating and the virtual hub 31 are operating. The line speed of the communication line between the computer and the computer on which the virtual LAN card 21 is operating is almost equal, or the data receiving side can communicate at high speed with the data sending side. If there is no problem, especially in communication. However, the computer and virtual LAN on which Virtual HUB31 operates can be determined by the line speed of the communication line between the computer on which Virtual LAN card 11 is operating and the computer on which Virtual HUB31 is operating. If the line speed of the communication line with the computer on which the card 21 is operating is lower, that is, if the data receiving side can only perform low-speed communication with the data sending side, Problems occur.
[0169] 例えば、仮想 LANカード 11が動作しているコンピュータと仮想 HUB31が動作して レ、るコンピュータとの間の通信回線 Klの回線速度を 100とし、仮想 HUB31が動作 しているコンピュータと仮想 LANカード 21が動作しているコンピュータとの間の通信 回線 K2の回線速度を 1とする。 [0169] For example, if a computer running Virtual LAN Card 11 and Virtual HUB 31 are running, Communication line between the computer and the computer running Virtual HUB31 and the computer running Virtual LAN card 21 is set to 1 To do.
すなわち、通信回線 K1と通信回線 K2との転送能力の比率は 100 : 1である。このよ うな環境にぉレ、て、仮想 LANカード 11が仮想 LANカード 21に対して複数の仮想 M ACフレーム、例えば合計サイズ 100を送信しょうとする。  That is, the ratio of the transfer capability between the communication line K1 and the communication line K2 is 100: 1. In such an environment, the virtual LAN card 11 attempts to transmit a plurality of virtual MAC frames, for example, a total size of 100, to the virtual LAN card 21.
[0170] 仮想 LAN力ード 11と仮想 HUB 31との間の回線速度は 100であって、仮想 LAN カード 11によってカプセル化されたストリームデータのサイズは 100である(実際には カプセルィヒのため若干増える力 S、その影響は上記回線速度の違いと比べると無視で きる)ので、例えば単位時間において仮想 HUB31に対してすべての仮想 MACフレ ームの送信処理が完了する。 [0170] The line speed between the virtual LAN card 11 and the virtual hub 31 is 100, and the size of the stream data encapsulated by the virtual LAN card 11 is 100 (actually, it is slightly Since the increase force S and its influence can be ignored compared to the above line speed difference, for example, transmission processing of all virtual MAC frames to the Virtual Hub 31 is completed in a unit time.
次に、仮想 HUB31は、仮想 LANカード 21が動作しているコンピュータに対し、仮 想 LAN力ード 21に対応する通信セッションの TCP/IPコネクションを用レヽ、送信キ ユー 50から順次取得した仮想 MACフレームをカプセル化したストリームデータを送 信しょうとする。  Next, the Virtual Hub 31 obtains the TCP / IP connection of the communication session corresponding to the virtual LAN card 21 from the network and the transmission queue 50 in order from the computer running the virtual LAN card 21. Attempt to send stream data encapsulating MAC frames.
[0171] し力 ながら、仮想 HUB 31と仮想 LAN力ード 21との間の回線速度は 1であるため 、すべての送信キューに蓄積された仮想 MACフレームの送信が完了するまでに、通 信回線 K1の単位時間に対して通信回線 K2は 100倍の時間力 Sかかる。  [0171] However, since the line speed between Virtual Hub 31 and Virtual LAN Force 21 is 1, communication is completed before the transmission of the virtual MAC frames accumulated in all transmission queues is completed. The communication line K2 takes 100 times as much time as the unit time of the line K1.
したがって、通信回線 2において、単位時間の間に送信が完了する仮想 MACフレ ームは、送信キュー 50に溜まっていた仮想 MACフレームの全体数を 100とすると、 その 1%の 1のみであり、残り 99の仮想 MACフレームは依然として送信キュー 50に 溜まった状態となる。  Therefore, the number of virtual MAC frames that can be transmitted in unit time on communication line 2 is only 1% of the total number of virtual MAC frames accumulated in transmission queue 50, which is 1 The remaining 99 virtual MAC frames are still in the transmission queue 50.
[0172] 上述した状態となった場合、仮想 HUB31から仮想 LANカード 21に対する仮想 M ACフレームのカプセル化とその伝送処理が行われる際、その仮想 LANカード 21の セッションに対応する送信キュー 50には、一定時間内に入ってくる MACフレームサ ィズが、一定時間内に出て行く MACフレームサイズよりも著しく多い状態、すなわち 輻輳が発生する。  [0172] When the above-described state occurs, when the virtual MAC frame is encapsulated from the Virtual Hub 31 to the Virtual LAN card 21 and the transmission process is performed, the transmission queue 50 corresponding to the session of the Virtual LAN card 21 is stored in the transmission queue 50. In other words, the MAC frame size that enters within a certain time is significantly larger than the MAC frame size that exits within a certain time, that is, congestion occurs.
[0173] 通常、図 1にて説明した通信を行おうとするアプリケーションプログラムの動作方法 において、 VPNを伴わない物理的な通信回線を経由したプログラム同士の通信の 場合、一方のプログラムが通信用ハードウェアに対して、その通信用ハードウェアと、 宛先通信用ハードウェアとの間の回線速度の能力(スループット)を著しく超えたパケ ットを送信しょうとすると、通信用ハードウェア、物理回線、または物理回線上に存在 する IPルータなどのパケット交換装置やルーティング装置によって、転送能力を超え たパケットは自動的に破棄され、届かなかったこととされ無視される。 [0173] Usually, the operation method of the application program that attempts to perform the communication described in FIG. In the case of communication between programs via a physical communication line that does not involve a VPN, a line between the communication hardware and the destination communication hardware is transmitted to one of the programs for the communication hardware. If you try to send a packet that significantly exceeds the speed capability (throughput), the transmission capacity will be exceeded by the communication hardware, physical line, or packet switching equipment such as an IP router on the physical line or routing equipment. Packets are automatically discarded and ignored because they have not arrived.
[0174] したがって、既存のほとんどの通信プロトコルは、物理レイヤに送出したパケットは 相手先に届くまでに破棄されたり変質してしまったりする可能性があることを前提に設 計されている。 [0174] Therefore, most existing communication protocols are designed on the assumption that packets sent to the physical layer may be discarded or altered before reaching the destination.
図 2の TCPZIPプロトコルを使用して通信を行なう場合のデータの流れで説明に おいて、 TCPZIPプロトコルスタックの役割は、送信元コンピュータ上で TCP/IPス タックに入力したストリームデータを TCPZIPスタックが複数の IPパケットに分割して ネットワークに送出し、それを受け取った受信者のコンピュータの TCP/IPスタックが 到着した IPパケットを分割される前の元の状態に復元して、最初に送信元コンビユー タ上で TCP/IPスタックに入力したストリームデータを復元しょうとする。  In the description of the data flow when communication is performed using the TCPZIP protocol in Figure 2, the role of the TCPZIP protocol stack is that multiple TCPZIP stacks are used to send stream data input to the TCP / IP stack on the source computer. The packet is sent to the network and sent to the network. The TCP / IP stack of the recipient's computer that receives it is restored to the original state before the IP packet arrived, and is first sent to the source computer. Attempt to restore the stream data input to the TCP / IP stack above.
[0175] この場合、データの送受信を行うコンピュータ間の通信回線上の事故や、通信回線 の転送能力を超えた IPパケットが送信された場合などは、複数の IPパケットのうち、 一部または全部の IPパケットが破棄され、宛先に届かない状況が考えられる。 [0175] In this case, if there is an accident on the communication line between the computers that send and receive data, or if an IP packet that exceeds the transfer capacity of the communication line is sent, some or all of the multiple IP packets The IP packet is discarded and may not reach the destination.
このような状況が発生したことを送信側 TCP/IPスタックが検出すると、再度先刻 送信したのと同じ IPパケットで相手にまだ届いていないと考えられるものを送信先コ ンピュータに再送する。  When the sending TCP / IP stack detects that such a situation has occurred, it resends to the destination computer the same IP packet that was sent again the last time it was thought to have not reached the other party.
[0176] この再送処理は、送信元 TCPZIPスタックに渡されたすべてのストリームデータの 送信が完了するまで、何度も繰り返されることになる。  [0176] This retransmission processing is repeated many times until transmission of all stream data passed to the transmission source TCPZIP stack is completed.
したがって、 TCPZIPプロトコルを使用してデータストリームを送信した場合、その Therefore, if you send a data stream using the TCPZIP protocol,
TCP/IPコネクションが途切れない限り、途中で一部のデータが欠けたり変質したり する可能性は存在せず、たとえ回線速度が遅い通信回線を経由して大量のストリー ムデータを送信しょうとすると、そのストリームデータは完全な状態で受信者が受信す ることになる。 [0177] 図 6に示す通常の LANと、本発明の VPNシステムにおける仮想 LANとの比較にお いて説明したが、通常の物理的な IEEE802. 3を採用した、スイッチング HUBを中 心として複数の LANカード同士が MACフレームを交換し合うネットワークにおいて は、ある LANカードがスイッチング HUBの処理能力やスイッチング HUBと各 LAN力 ードとの間を結ぶ通信回線 (LANケーブル、無線伝送路など)の転送能力を著しく 超えた MACフレームを送信しょうとすると、その MACフレームの一部または全部が ハードウェアによって破棄される。 As long as the TCP / IP connection is not interrupted, there is no possibility that some data will be lost or altered on the way, even if you try to send a large amount of stream data via a communication line with a slow line speed, The stream data will be received by the receiver in its complete state. [0177] As described in the comparison between the normal LAN shown in FIG. 6 and the virtual LAN in the VPN system of the present invention, a plurality of switching hubs using a normal physical IEEE802.3 are mainly used. In a network in which LAN cards exchange MAC frames, a LAN card transfers the processing capacity of the switching HUB and the communication lines (LAN cables, wireless transmission paths, etc.) that connect the switching HUB to each LAN mode. If you try to send a MAC frame that significantly exceeds its capabilities, some or all of the MAC frame will be discarded by the hardware.
[0178] したがって、たとえば 100base_TXと 10Base_Tとの 2種類の IEEE802. 3に対応 したスイッチング HUBに、 1組の 100Mbpsに対応したケーブルと LANカードが接続 されており、もう 1組の 10Mbpsに対応したケーブルと LANカードが接続されている 場合を考える。  [0178] Therefore, for example, one set of 100Mbps-compatible cables and LAN cards are connected to two types of switching hubs that support 100802_TX and 10Base_T. And a LAN card is connected.
図 20を用いて、ハードウェアによるパケット破棄の例について説明する。この図 20 は、低速の通信回線(10Mbps)と、スイッチング HUB158と、高速の通信回線(100 Mbps)とを介して接続された LAN力ード 181と LANカード 182との接続関係を示す概 念図である。  An example of packet discard by hardware will be described with reference to FIG. Figure 20 is a conceptual diagram showing the connection relationship between LAN card 181 and LAN card 182 connected via a low-speed communication line (10 Mbps), switching HUB158, and high-speed communication line (100 Mbps). FIG.
[0179] スイッチング HUB158は、 100Mbpsで接続された LANカード 181力 OOMbpsに より、 LANカード 182に対して MACフレームを送信する。  [0179] The switching HUB 158 transmits a MAC frame to the LAN card 182 by LAN card 181 power OO Mbps connected at 100 Mbps.
この送信処理において、スイッチング HUB 158までは、 100Mbpsのスループット でパケットが届く力 LANカード 182への通信回線速度は 10Mbpsしか無いので、 転送能力を超えた段階で電子的にパケットが破棄され、 90Mbps分のパケットは届 かないことになる。  In this transmission process, switching HUB 158 can receive packets with a throughput of 100 Mbps. Since the communication line speed to LAN card 182 is only 10 Mbps, packets are discarded electronically when the transfer capacity is exceeded, and 90 Mbps Packets will not arrive.
[0180] し力、し、図 19に示した様に、仮想 HUB31と仮想 LANカード 11 , 21との間のカプ セル化されたストリームデータの伝送にぉレ、て、 1本ずつの TCP/IPコネクションを 使用する場合の欠点によつて説明されてレ、るように、「仮想 LANカード 11から仮想 H UB31への仮想 MACフレーム転送処理」に使用される通信回線 K1の通信速度と比 ベて、「仮想 HUB31から仮想 LANカード 21への仮想 MACフレーム転送処理」に 使用される通信回線 K2の通信速度が著しく遅いときなどは、以下のような現象が発 生する。 [0181] まず、仮想 HUB31は、仮想 LANカード 21に対して送信すべき送信キュー 50を有 しており、送信キュー 50に蓄積された仮想 MACフレームを順次カプセル化して仮想 LANカード 21への TCP/IPコネクションを使用して伝送しようと試みる。 [0180] As shown in FIG. 19, the transmission of encapsulated stream data between the Virtual Hub 31 and the Virtual LAN Cards 11 and 21 is effective for each TCP / As explained by the shortcomings of using an IP connection, the communication speed and ratio of the communication line K1 used in the “virtual MAC frame transfer processing from the virtual LAN card 11 to the virtual hub 31” are compared. When the communication speed of the communication line K2 used for “Virtual MAC frame transfer processing from Virtual Hub 31 to Virtual LAN card 21” is extremely slow, the following phenomenon occurs. [0181] First, the Virtual HUB 31 has a transmission queue 50 to be transmitted to the virtual LAN card 21, and sequentially encapsulates the virtual MAC frames accumulated in the transmission queue 50 to send a TCP to the virtual LAN card 21. Attempt to transmit using / IP connection.
し力、しながら、通信回線 K2の回線速度が通信回線 K1に比較して非常に遅いため 、 TCP/IPスタック 35はなかなかカプセル化されたストリームデータの送信を完了す ることができない。  However, since the line speed of the communication line K2 is much slower than that of the communication line K1, the TCP / IP stack 35 can hardly complete the transmission of the encapsulated stream data.
[0182] すでに述べた様に、 TCPZIPプロトコルの仕様では回線速度が遅い場合において も、全てのストリームデータを先頭から順番に、内容が変化したり、一部が消失したり すること無く伝送しようと試みるため、送信キュー 50に溜まっており、順次カプセルィ匕 され、データストリーム化された送信すべきデータが TCPZIPスタック 35の直前でど んどん溜まっていくことになる。  [0182] As already mentioned, the TCPZIP protocol specification tries to transmit all stream data in order from the beginning, even if the line speed is low, without changing the contents or losing some of the data. In order to try, the data to be transmitted that has been accumulated in the transmission queue 50, sequentially encapsulated, and data streamed will be accumulated immediately before the TCPZIP stack 35.
[0183] TCP/IPプロトコルの仕様により、通信回線の転送能力を超えた状態であっても、 送信しょうとしているデータストリームの一部が自動的に破棄されることは無いため、 このような状況が続くと、どんどん輻輳が悪化してしまうことになり、後から来た仮想 M ACフレームほど送信が完了するまでの時間が長くなり、ついには通信不能となって しまう可能性もある。  [0183] Due to the specifications of the TCP / IP protocol, even if the transfer capacity of the communication line is exceeded, a part of the data stream to be transmitted is not automatically discarded. If this continues, congestion will worsen, and the virtual MAC frame that comes later will take longer to complete transmission, and eventually communication may become impossible.
したがって、仮想 HUB31が制御可能な送信キュー 50に仮想 MACフレームを追 加する段階で数量制限を行うことが有効と考えられる。  Therefore, it is considered effective to limit the quantity at the stage of adding virtual MAC frames to the transmission queue 50 that can be controlled by the Virtual Hub 31.
[0184] <仮想 HUBの送信キューにおける輻輳制御 > [0184] <Congestion control in Virtual HUB transmission queue>
上述した輻輳問題を軽減する方法として、図 21に示す仮想 HUBの送信キューに おける輻輳制御を行う輻輳制御部を設けることが考えられ、実際に実装して実験を行 つた結果において、輻輳の問題が大幅に軽減されることが検証された。図 21は、輻 輳制御部 300を設けた仮想 HUBの構成例を示す概念図である。  As a method to alleviate the above-mentioned congestion problem, a congestion control unit that performs congestion control in the Virtual HUB transmission queue shown in Fig. 21 may be provided. Has been verified to be significantly reduced. FIG. 21 is a conceptual diagram showing a configuration example of a Virtual HUB provided with the congestion control unit 300.
上述した輻輳は、送信キュー 50の先頭部分の送信されるべき仮想 MACフレーム 力 Sカプセル化部 53によって送信されようとする力 送信先コンピュータまでの IPネット ワークを構成する通信回線の回線速度が遅ぐ TCP/IPスタックによるカプセル化さ れたストリームデータ送信の完了までに時間力かかる場合に起こる。  The above-described congestion is caused by the virtual MAC frame to be transmitted at the head portion of the transmission queue 50, the force to be transmitted by the S encapsulation unit 53, and the line speed of the communication line constituting the IP network to the destination computer is slow. Occurs when it takes time to complete the encapsulated stream data transmission by the TCP / IP stack.
[0185] すなわち、輻輳の問題の本質は、 TCPZIPスタックによるカプセル化されたストリー ムデータの送信速度に対し、この送信速度よりも速い速度で送信キュー 50に対して 仮想 MACフレームスイッチング部 49から仮想 MACフレームが追加されることにより 、送信キュー 50において輻輳が発生し、かつ送信キュー 50に蓄積された仮想 MAC フレームは先に追加されたものが優先されて取り出されてカプセル化され伝送される ため、後に届いた仮想 MACフレームほど、キューに入れられてから送信されるまで の間の時間間隔が長くなつてしまうことである。 [0185] That is, the essence of the congestion problem is that the encapsulated stream by the TCPZIP stack When a virtual MAC frame is added from the virtual MAC frame switching unit 49 to the transmission queue 50 at a higher speed than the transmission speed of the transmission data, the congestion occurs in the transmission queue 50, and the transmission queue Since the virtual MAC frame stored in 50 is preferentially taken out and encapsulated and transmitted, the virtual MAC frame that arrives later is the time between being put in the queue and transmitted. The time interval of this will become long.
[0186] そこで、まず送信キュー 50ごとに状態変数 Aを設ける。この状態変数 Aの初期値を A[0] =0とし、次の値を A[l]、その次を A[2]、以降 A[3]、 A[4]、…… とする。 次に、仮想 MACフレームスイッチング部 49から送信キュー 50に追加される仮想 M ACフレームは、必ず輻輳制御部 300を通過することにより、輻輳制御部 300内のァ ルゴリズムにより、仮想 MACフレームを通過させるか否かを決定し、通過が許可され た場合、送信キュー 50へ追加し、拒否された場合はその仮想 MACフレームを最初 力 届かなかったものとして破棄するものとする。  [0186] Therefore, first, a state variable A is provided for each transmission queue 50. The initial value of this state variable A is A [0] = 0, the next value is A [l], the next is A [2], and so on, A [3], A [4], and so on. Next, the virtual MAC frame added to the transmission queue 50 from the virtual MAC frame switching unit 49 always passes through the congestion control unit 300, so that the virtual MAC frame passes through the algorithm in the congestion control unit 300. If it is permitted to pass, it is added to the transmission queue 50, and if it is rejected, the virtual MAC frame is discarded as if it was not received at first.
[0187] すなわち、輻輳制御部 300において行われる輻輳制御の処理は、仮想 MACフ レームスィッチング処理部 49から同時に入力される複数個の仮想 MACフレームそ れぞれに対し、送信キューごとに算出されるフレーム追加確率に基づき当該送信キ ユーに追加を行うか否かを決定し、追加と判定された仮想 MACフレームは送信キュ 一に追加し、他は破棄することである。  That is, the congestion control process performed in the congestion control unit 300 is calculated for each transmission queue for each of a plurality of virtual MAC frames input simultaneously from the virtual MAC frame switching processing unit 49. It is determined whether or not to add to the transmission queue based on the probability of frame addition, and the virtual MAC frame determined to be added is added to the transmission queue and the others are discarded.
フレーム追加確率は、送信キューに残されているパケット数に応じて決定することが 適切であり、輻輳を防ぐために、残されているパケット数が多いほど追加確率を減少 させることが適切であり、通信量の変化に応じて適切に決定方法を定めることができ る。  It is appropriate to determine the frame addition probability according to the number of packets remaining in the transmission queue, and in order to prevent congestion, it is appropriate to decrease the addition probability as the number of remaining packets increases. Appropriate determination methods can be determined according to changes in traffic.
[0188] ここで、事前にユーザーが定めることができるフレーム追加確率決定方法は、予め 仮想 HUBのプログラムによって初期内容が決定されており、かつユーザーが変更で きなレ、ようになってレ、ても良レ、し、変更できるようになってレ、ても良レ、。  [0188] Here, the frame addition probability determination method that can be determined in advance by the user is determined in advance by the Virtual Hub program and cannot be changed by the user. It ’s good, and you can change it.
例えば、初期値が 0であり、単位時間ごとに更新される状態変数 Aに基づく次の決 定方法を用いた場合、データ送受信の効率が良いことが検証されている。なお、 Aは 送信キューごとに定められるものであるが、説明を簡単にするため、 1つの送信キュ 一に対してのみ説明する。 For example, it is verified that the efficiency of data transmission / reception is high when the following determination method based on state variable A, which has an initial value of 0 and is updated every unit time, is used. Note that A is defined for each transmission queue, but for ease of explanation, one transmission queue is used. Only one will be described.
(1)当該送信キューにパケットが残されていない場合  (1) When no packets remain in the transmission queue
Aを 0とし、フレーム追加確率を 1とする。  Let A be 0 and the frame addition probability be 1.
(2)当該送信キューにパケットが残っている場合  (2) When packets remain in the transmission queue
Aが 0であれば、 Aを 1に更新した後、フレーム追加確率を 0. 5とする。 Aが 0でなければ、 Aを 2倍に更新した後、フレーム追加確率を 2 (-A)とする。 上記方法では、送信キューが残っている場合は指数関数的にフレーム追加確率が 減少する。  If A is 0, after updating A to 1, the frame addition probability is set to 0.5. If A is not 0, update A twice and set the frame addition probability to 2 (-A). In the above method, the frame addition probability decreases exponentially when the transmission queue remains.
[0189] 上記の手法によって輻輳を軽減することができる原理は下記のとおりである。まず、 前に述べたカプセル化部(図では 53)の仕様としては、送信キューに仮想 MACフレ ームが蓄積されている場合は、先頭力 順番にカプセル化して、 TCP/IPコネクション を通して伝送しようと試みる。  [0189] The principle that congestion can be reduced by the above-described method is as follows. First, according to the specifications of the encapsulating unit (53 in the figure) described above, if virtual MAC frames are accumulated in the transmission queue, encapsulate them in the order of the head and transmit them through the TCP / IP connection. Try.
し力し TCP/IPコネクションの状態が悪い(物理回線が混雑しているなど)場合は、 TCP/IPコネクションに対する伝送指示の段階でブロッキングが発生する可能性があ る。なぜなら、その前に送信しょうとしたデータがまだ送信し終わっていないため。 ブロッキングの可能性、つまり直前のデータの送信が完了していないことを検出した 場合は、キューの先頭からとった仮想 MACフレームはキューの先頭から削除せずに そのままキューに残す。したがって、キューに新たなパケットを追加する場合、キュー にパケットが残っている場合は転送が間に合つていない状態が発生していることを検 出できる。  However, if the state of the TCP / IP connection is bad (physical line is congested, etc.), blocking may occur at the stage of transmission instruction for the TCP / IP connection. Because the data that we tried to send before that has not been sent yet. When the possibility of blocking is detected, that is, when the transmission of the previous data is not completed, the virtual MAC frame taken from the head of the queue is not deleted from the head of the queue but remains in the queue. Therefore, when a new packet is added to the queue, it can be detected that a state in which the transfer is not in time has occurred if the packet remains in the queue.
[0190] 次に、この「転送が間に合つていない状態」が発生するたびに、その回数を加算して 記録する。転送が間に合った状態になるとその記録した回数は 0に初期化する。この 回数ごとに、パケットを破棄する割合を 2倍、 4倍、 8倍…とすると、大量のパケットがキ ユーに入れられようとするとき、そのパケットが通過する確率は、ランダム関数によって 、 1/2、 1/4、 1/8、 ·■·になっていく。したがって、送信元力 ^、くらパケットを送りつけても 、どんどん通過するパケット数は減っていく。送信元がパケットを送りつけることを止め た場合は、キューの前方から順にカプセルィ匕されていって送信が完了し、いっかキュ 一の中が空になるので、その段階で変数は 0にリセットされる。このような原理によって 、送信先セッションの伝送能力を超えたフレームをキューに押し込む事態の発生を軽 減し、かつ転送能力ぎりぎりのところを維持することができる。 [0190] Next, whenever this "transfer is not in time" occurs, the number of times is added and recorded. When the transfer is in time, the recorded count is initialized to zero. If the rate of discarding packets is doubled, quadrupled, 8x, etc. for each number of times, when a large number of packets are to be queued, the probability that the packets will pass is 1 / 2, 1/4, 1/8, ... Therefore, the number of packets that pass through will decrease even if the sending power ^ and how many packets are sent. If the source stops sending packets, it will be encapsulated in order from the front of the queue and transmission will be completed, and the queue will be empty, so the variable will be reset to 0 at that stage. The By this principle Therefore, it is possible to reduce the occurrence of a situation where a frame exceeding the transmission capacity of the destination session is pushed into the queue, and to maintain the limit of the transfer capacity.
[0191] 上記輻輳制御部 300を実装した結果、本発明の VPNシステムにおける「TCP/IP コネクションが 1本ずつの場合の欠点」が軽減された。  [0191] As a result of implementing the congestion control unit 300, the "defects in the case of one TCP / IP connection" in the VPN system of the present invention were alleviated.
すなわち、上記輻輳制御部 300を仮想 HUB31に設けることにより、図 19の仮想 H UB31と仮想 LANカード 11, 21との間のカプセル化されたストリームデータの伝送 において、 1本ずつの TCPZIPコネクションを使用する場合の欠点によって説明され ているような構成で、「仮想 LANカード 11から仮想 HUB31への仮想 MACフレーム 転送処理」に使用される通信回線 K1の通信速度に比較して、「仮想 HUB31から仮 想 LANカード 21への仮想 MACフレーム転送処理」に使用される通信回線 K2の通 信速度が著しく遅いときに発生する以下の欠点を解決することができる。  That is, by providing the congestion control unit 300 in the Virtual Hub 31, one TCPZIP connection is used for transmission of the encapsulated stream data between the Virtual Hub 31 and the Virtual LAN cards 11 and 21 in FIG. Compared to the communication speed of the communication line K1 used for the “Virtual MAC frame transfer process from the virtual LAN card 11 to the Virtual HUB 31” in the configuration as described by the disadvantages of The following drawbacks that occur when the communication speed of the communication line K2 used for “Virtual MAC frame transfer processing to the LAN card 21” is extremely slow can be solved.
[0192] すなわち、仮想 HUB31は仮想 LANカード 21に対して送信すべき送信キュー 50 を有しており、送信キュー 50に蓄積された仮想 MACフレームを順次カプセル化して 仮想 LANカード 21への TCP/IPコネクションを使用して伝送する際、通信回線 K2 の回線速度が通信回線 K1に比較して遅いため、 TCP/IPスタックはなかなかカブ セルイ匕されたストリームデータの送信を完了することができず、送信キュー 50に入つ ていて順次カプセル化されデータストリーム化された送信すべきデータが、 TCP/IP スタックの直前でどんどん溜まってしまう。  That is, the Virtual HUB 31 has a transmission queue 50 to be transmitted to the virtual LAN card 21, and sequentially encapsulates the virtual MAC frames stored in the transmission queue 50 to send TCP / IP to the virtual LAN card 21. When transmitting using the IP connection, the line speed of the communication line K2 is slower than that of the communication line K1, so the TCP / IP stack is unable to complete the transmission of the stream data that has been The data to be transmitted that are encapsulated in the transmission queue 50 and sequentially encapsulated into a data stream accumulates immediately before the TCP / IP stack.
[0193] このため、 TCP/IPの仕様により、回線の転送能力を超えた状態であっても、送信 しょうとしているデータストリームの一部が自動的に破棄されることは無いので、このよ うな状況が続くと、どんどん輻輳が悪化してしまうことになり、後から来た仮想 MACフ レームほど送信が完了するまでの時間が長くなり、ついには通信不能となってしまう 可能性があるという欠点があった。  [0193] Therefore, according to the TCP / IP specifications, even if the transfer capacity of the line is exceeded, a part of the data stream to be transmitted is not automatically discarded. If the situation continues, the congestion will worsen, and the virtual MAC frame that came later will take longer to complete transmission, and eventually it may become impossible to communicate was there.
[0194] この欠点は、輻輳制御部 300を実装した結果、送信先セッションごとの送信キュー(  [0194] As a result of implementing the congestion control unit 300, this disadvantage is that the transmission queue for each destination session (
50, 51, 52,■·■)力、ら出て行く仮想 MACフレームの速度よりも速い速度で仮想 MA Cフレームスイッチング処理部 49から仮想 MACフレームが追加されようとした場合、 追加しょうとする各 MACフレームを一定の割合により破棄し、その割合を現在送信 キューに、送信すべき仮想 MACフレームがどの程度残ってレ、かどうかにより調節する ことによって、軽減すること力 Sできる。 50, 51, 52, ■■■) When a virtual MAC frame is about to be added from the virtual MAC frame switching processing unit 49 at a speed faster than the speed of the virtual MAC frame going out, try to add it. Discard each MAC frame at a certain rate, and adjust the rate according to how much virtual MAC frames to be transmitted remain in the current transmission queue. It is possible to reduce power S.
[0195] <状態変数を増やすことによる送信元セッションごとのパケット量制限 >  [0195] <Limiting the amount of packets per source session by increasing the state variable>
上述した「仮想 HUBの送信キューにおける輻輳制御」の方法にぉレ、ては、送信キ ユー 50に接続された輻輳制御部 300においては、送信キューに蓄積されたフレーム 数をもとにフレーム追加確率を決定した。  In contrast to the method of “congestion control in the transmission queue of the Virtual Hub” described above, the congestion control unit 300 connected to the transmission queue 50 adds frames based on the number of frames accumulated in the transmission queue. Probability was determined.
この方式において、 VPN内である 1つの SEセッションに対して、他の 1つの SEセッ シヨンに対応する仮想 LANカードが継続的に大量の仮想 MACフレームを送信して きた場合、大量の仮想 MACフレームを受信したセッションの送信キューに、大量の 仮想 MACフレームがたまり、 TCP/IPプロトコルによるアルゴリズムによって、その S Eセッションの送信キューの状態変数 Aの値がだんだん増加する。  In this method, if a virtual LAN card corresponding to another SE session continuously sends a large number of virtual MAC frames to one SE session in the VPN, a large number of virtual MAC frames A large amount of virtual MAC frames accumulates in the transmission queue of the session that received the message, and the value of state variable A of the transmission queue of the SE session gradually increases due to the algorithm based on the TCP / IP protocol.
[0196] したがって、その SEセッションの送信キューに対して以後送信されてきた仮想 MA Cフレームが送信キューに追加される確率が低くなつてくる。 [0196] Therefore, the probability that a virtual MAC frame that is subsequently transmitted to the transmission queue of the SE session is added to the transmission queue becomes low.
このような状態で、最初に大量の仮想 MACフレームを送信してきた SEセッション以 外の他の SEセッション力 \送信キューの状態変数 Aが大きくなつてレ、る SEセッション に対して仮想 MACフレームを送信しょうとしても、やはり輻輳制御部 300によってフ レーム追加確率は送信キューの状態変数 Aの値が大きくなる程低くなつてしまう。  In this state, the SE session power other than the SE session that sent a large amount of virtual MAC frames first \ The state variable A of the transmission queue becomes large. Even when trying to transmit, the congestion control unit 300 also decreases the frame addition probability as the value of the state variable A of the transmission queue increases.
[0197] このことは、意図的に大量の仮想 MACフレームを特定のセッションに対して送り付 けるなどの攻撃を行うと、仮想 HUBの輻輳制御部によって自動的に攻撃を受けたセ ッシヨンへのパケットが追加される量が制限され、攻撃を受けたセッションは他のセッ シヨン力 のパケットを受信しに《なるという問題を引き起こす。 [0197] This means that if an attack such as intentionally sending a large number of virtual MAC frames to a specific session is performed, the attack to the session automatically attacked by the congestion control unit of the Virtual Hub The amount of additional packets is limited, causing an attacked session to receive other session power packets.
これを解決するために、上述した「仮想 HUBの送信キューにおける輻輳制御」にお いては送信キューごとにフレーム追加確率を決定していたことを拡張し、送信キュー 及び送信元セッションごとにフレーム追加確率を決定することとする。  In order to solve this problem, the fact that the frame addition probability was determined for each transmission queue in the above-mentioned “congestion control in the transmission queue of Virtual Hub” was expanded, and a frame was added for each transmission queue and each transmission source session. The probability will be determined.
このように拡張を行った場合、上述のフレーム追加確率決定方法は、次のとおりに 変更される。  When the extension is performed in this way, the above-described method for determining the frame addition probability is changed as follows.
[0198] 初期値が 0であり、単位時間ごとに更新される状態変数 A[n]を、セッション nから当 該送信キューへの状態変数とする。上述したとおり、 A[n]は送信キューごとに定めら れるものであるが、説明を簡単にするため、 1つの送信キューに対してのみ説明する (1)当該送信キューにセッション nからのパケットが残されていない場合 A[n]を 0とし、フレーム追加確率を 1とする。 [0198] The initial value is 0, and the state variable A [n] that is updated every unit time is the state variable from session n to the transmission queue. As described above, A [n] is determined for each transmission queue, but for the sake of simplicity, only one transmission queue will be described. (1) When no packet from session n remains in the transmission queue, A [n] is set to 0 and the frame addition probability is set to 1.
(2)当該送信キューにセッション nからのパケットが残っている場合  (2) When packets from session n remain in the send queue
A[n]が 0であれば、 A[n]を 1に更新した後、フレーム追加確率を 0. 5とする。  If A [n] is 0, after updating A [n] to 1, the frame addition probability is set to 0.5.
A[n]が 0でなければ、 A[n]を 2倍に更新した後、フレーム追加確率を 2 (— A[n ] )とする。  If A [n] is not 0, A [n] is doubled and the frame addition probability is set to 2 (—A [n]).
上記方法では、送信キューが残っている場合は指数関数的にフレーム追加確率が 減少する。  In the above method, the frame addition probability decreases exponentially when the transmission queue remains.
[0199] 上記拡張により、各 SEセッションの送信キューにおいて、送信元情報を含めてフレー ム追加確率決定方法を調整することにより、各 SEセッションから他の SEセッションに対 するすべての組ごとのパケット数制限 (パケットを破棄する確率の調整)が行えること になる。  [0199] By adjusting the frame addition probability determination method including the transmission source information in the transmission queue of each SE session by the above extension, packets for every pair from each SE session to other SE sessions. The number can be limited (adjustment of the probability of discarding packets).
これにより、 SEセッションごとに送信キューを動的に調整しながら、これまで欠点であ つた意図的に大量の仮想 MACフレームを特定のセッションに対して送り付けるなど の攻撃を行われた場合、仮想 HUBの輻輳制御部 300によって自動的に攻撃を受け たセッションへのパケットが追加される量が制限され、攻撃を受けた SEセッションは他 の SEセッションからのパケットを受信しに《なるという欠点を、攻撃元、すなわち送信 元の SEセッションからのパケットのみを制限できることとなり解決することができる。  As a result, if an attack such as intentionally sending a large number of virtual MAC frames to a specific session while performing dynamic adjustment of the transmission queue for each SE session, a virtual HUB The amount of packets that are automatically added to the attacked session by the congestion control unit 300 is limited, and the attacked SE session receives packets from other SE sessions. Only the packets from the attack source, that is, the source SE session, can be restricted, which can be resolved.
[0200] <プロキシサーバーを経由した通信 > [0200] <Communication via proxy server>
本発明による VPNシステムにおいて、仮想 MACフレームがカプセル化されたストリ ームデータは、 TCP/IPコネクションを介して送受信される。  In the VPN system according to the present invention, stream data in which a virtual MAC frame is encapsulated is transmitted / received via a TCP / IP connection.
そして、従来の IPsecや GREなどのプロトコルを用いた VPNにおいて、カプセル化 されたデータは、 PPTPパケットや L2TPパケットなどとして IPネットワーク上を流すよ うになつていいる。  In VPN using conventional protocols such as IPsec and GRE, the encapsulated data is flowing on the IP network as PPTP packets and L2TP packets.
[0201] しかしながら、 IPsecや GREなどのプロトコルを用いた VPNにおいて、 VPNクライ アントと VPNサーバーとの間で直接 IPパケットを送受信することができない環境(たと えば社内 LANなどで HTTPSプロトコルに対応したプロキシサーバーを経由しなけ ればインターネットに接続できないような環境)においては、 VPNクライアントと VPN サーバーとの間の論理的な接続を確立することができないため、これらの VPNを禾 IJ 用することができない。 [0201] However, in a VPN using a protocol such as IPsec or GRE, an environment in which IP packets cannot be directly sent and received between the VPN client and the VPN server (for example, a proxy that supports the HTTPS protocol on a company LAN, etc.) Must go through the server In such an environment where it is not possible to connect to the Internet, it is not possible to establish a logical connection between the VPN client and the VPN server, so these VPNs cannot be used for IJ.
[0202] 一方、本発明の VPNシステムにおいては、 VPNサーバーである仮想 HUBが TCP /IPサーバープログラムとして動作し、 VPNクライアントである仮想 LANカードが TC また、仮想 LANカードは仮想 HUBに接続する際、 HTTPSプロトコルに対応した プロキシサーバーおよび SOCKSバージョン 4プロトコルに対してしたプロキシサーバ 一に対して、それぞれ HTTPSプロキシサーバーにおける CONNECTメソッドを使 用すること、および SOCKSサーバーにおける接続要求信号を使用することにより ( 詳細は各プロトコル仕様に委ねる)、 HTTPSプロトコルに対応したプロキシサーバー および SOCKSプロトコルに対応したプロキシサーバーを介して、仮想 LANカードは 仮想 HUBが動作しているサーバーコンピュータに VPN接続することができる。  [0202] On the other hand, in the VPN system of the present invention, when the Virtual Hub that is the VPN server operates as a TCP / IP server program, the Virtual LAN card that is the VPN client is TC, and the Virtual LAN card is connected to the Virtual HUB. By using the CONNECT method in the HTTPS proxy server and the connection request signal in the SOCKS server for the proxy server corresponding to the HTTPS protocol and the proxy server corresponding to the SOCKS version 4 protocol ( The details are left to each protocol specification.) Through a proxy server that supports HTTPS protocol and a proxy server that supports SOCKS protocol, the virtual LAN card can connect to a server computer running Virtual HUB via VPN.
[0203] 図 22を用いて、プロキシサーバーを経由した通信について説明する。図 22は、本 発明の VPNシステムの構成例を示す概念図である。 [0203] The communication via the proxy server will be described with reference to FIG. FIG. 22 is a conceptual diagram showing a configuration example of the VPN system of the present invention.
VPNクライアントコンピュータ 10の仮想 LANカード 11は、プロキシサーバー 301を 介して VPNサーバーコンピュータ 30上の仮想 HUB31に接続されている。  The virtual LAN card 11 of the VPN client computer 10 is connected to the virtual HUB 31 on the VPN server computer 30 via the proxy server 301.
すなわち、仮想 LANカード 11とプロキシサーバー 301との間において、 1つの TC P/IPコネクション力 プロキシサーバー 301と仮想 HUB31の間にも、 1つの TCP/ IPコネクションが確立されてレ、る。  That is, one TCP / IP connection is established between the virtual LAN card 11 and the proxy server 301, and one TCP / IP connection is established between the proxy server 301 and the virtual hub 31.
[0204] このため、 VPNクライアントコンピュータ 10の仮想 LANカード 11は、 VPNサーバ 一コンピュータ 30上の仮想 HUB31に TCP/IPコネクションを確立して、カプセル化 されたデータストリームの送受信を行っている訳ではない。  [0204] For this reason, the virtual LAN card 11 of the VPN client computer 10 establishes a TCP / IP connection to the Virtual Hub 31 on the VPN server computer 30 and sends / receives the encapsulated data stream. Absent.
しかしながら、プロキシサーバー 301は、一方の TCPZIPコネクションから受け取つ たデータストリームを、他方の TCP/IPコネクションそのまま送出してくれている。  However, the proxy server 301 sends the data stream received from one TCPZIP connection as it is to the other TCP / IP connection.
[0205] したがって、 VPNクライアントコンピュータ 10の仮想 LANカード 11は、 VPNサーバ 一コンピュータ 30上の仮想 HUB31に、直接 TCP/IPコネクションを確立して、 SE プロトコルにより通信をしているのと同様の通信が行われる。 この図 22の構成例においては、 VPNクライアントコンピュータ 10上で動作している ネットワーク通信を行おうとするアプリケーションプログラム 12と、 VPNクライアントコン ピュータ 20上で動作しているネットワーク通信を行おうとするアプリケーションプロダラ ム 22力 VPNサーバーコンピュータ 30上で動作している仮想 HUB31を介して、 自 由に通信することができるようになってレ、る。 [0205] Therefore, the virtual LAN card 11 of the VPN client computer 10 establishes a TCP / IP connection directly with the Virtual HUB 31 on the VPN server computer 30 and performs communication similar to that performed by the SE protocol. Is done. In the configuration example of FIG. 22, an application program 12 that performs network communication that operates on the VPN client computer 10 and an application prod- ucer that performs network communication that operates on the VPN client computer 20. You can communicate freely through the Virtual Hub 31 running on the VPN server computer 30.
[0206] そして、図 22に示すプロキシサーバーを介した構成の通信において、本発明の VPNシステムを使用する最大の利点を以下に説明する。  [0206] The maximum advantage of using the VPN system of the present invention in the communication configured through the proxy server shown in Fig. 22 will be described below.
通常、社内 LANなどでプロキシサーバーを介さないと、外部の IPネットワーク (ィ ンターネットなど)上のホスト(各サービスを提供するサーバー等)に接続することがで きない環境であり、かつ社内 LAN上のコンピュータと外部の IPネットワーク上のコン ピュータとの間で通信して利用したいアプリケーションプログラム力 S、社内 LANに設 置されているプロキシサーバーに対応していない場合、従来はそのアプリケーション プログラムを改良して社内 LANに設置されているプロキシサーバー(HTTPSサーバ 一や SOCKSサーバーなど)を介した通信ができるように書き換えるカ 社内 LANの 構成を変更してプロキシサーバーを介さなくても、直接外部の IPネットワーク上のホス トと通信できるようにするかなどの対策が必要であった。  Normally, it is an environment that cannot connect to a host (such as a server that provides each service) on an external IP network (such as the Internet) unless a proxy server is used in the company LAN, etc. The application program that you want to use by communicating between the above computer and the computer on the external IP network S, if the proxy server installed in the company LAN is not supported, the application program has been improved Rewrite to enable communication via a proxy server (such as an HTTPS server or a SOCKS server) installed on the corporate LAN. Even if the internal LAN configuration is changed and the proxy server is not used, the external IP It was necessary to take measures such as enabling communication with hosts on the network.
[0207] 上述した状況に対して、本発明の VPNシステムを利用することにより、社内に設置さ れているプロキシサーバーを介した通信に、仮想 LANカード及び仮想 HUBが対応 している場合においては、社内のネットワーク構成を変更することも、利用したいと考 えているアプリケーションプログラムを改良して書き換えたりする必要も一切無ぐ禾 IJ 用したいと考えている任意のアプリケーションプログラムの通信を、 SEプロトコルに従 レ、カプセル化して、仮想 HUBに対して伝送することにより、同一の仮想 HUBに接続 している別のコンピュータ内の同様のアプリケーションプログラムとの間で任意の通信 が行えるようにできるという利点が得られる。  [0207] In the above situation, when the virtual LAN card and the Virtual Hub support communication via a proxy server installed in the company by using the VPN system of the present invention, There is no need to change the internal network configuration or improve and rewrite the application program that you want to use. 通信 Use the SE protocol to communicate any application program that you want to use for IJ. Therefore, by encapsulating and transmitting to the Virtual HUB, there is an advantage that arbitrary communication can be performed with a similar application program in another computer connected to the same Virtual HUB. can get.
[0208] <ブリッジ接続の利点について >  [0208] <Advantages of bridge connection>
一般に、既存の「MACブリッジ」または単に「ブリッジ」と呼ばれるプログラムを使用 することにより、同一のコンピュータ内に存在する 2枚以上の LANカード同士を 1つの セグメントにすること(ブロードキャストドメイン化)ができる。 図 23を用いて、プリッジ接続の構成を有する本発明の VPNシステムの説明を行う。 図 23は、プリッジ接続を有する本発明の VPNシステムの構成例を示す概念図である 仮想 LANカード 11は、すでに述べた様に、オペレーティングシステムから、 1枚の LANカードのように認識される。 Generally, by using an existing program called “MAC bridge” or simply “bridge”, two or more LAN cards existing in the same computer can be made into one segment (broadcast domain) . The VPN system of the present invention having a bridge connection configuration will be described with reference to FIG. FIG. 23 is a conceptual diagram showing a configuration example of the VPN system of the present invention having a bridge connection. As described above, the virtual LAN card 11 is recognized as one LAN card by the operating system.
[0209] したがって、既存のブリッジのプリグラムを用いることにより、物理的な LANカードド ライバ 302と、仮想 LANカード 11との間でブリッジ接続を構成することが可能であり、 仮想 LANカード 11側が接続している IEEE802. 3ネットワーク、すなわち仮想 HUB 31を中心とした VPNと、物理的な LANカードドライバ 302が接続している物理的な スイッチング HUB158等との間が同一のセグメント(ブロードキャストドメイン)として構 成されることになる。 [0209] Therefore, by using an existing bridge program, it is possible to configure a bridge connection between the physical LAN card driver 302 and the virtual LAN card 11, and the virtual LAN card 11 side is connected. The same segment (broadcast domain) is configured between the existing IEEE802.3 network, that is, the VPN centering on Virtual Hub 31 and the physical switching hub 158 to which the physical LAN card driver 302 is connected. Will be.
[0210] これにより、図 23に示す様に、ブリッジ接続において社内 LANに直接接続してい なレ、、 IPネットワークを経由した遠隔地にある他の PC305の仮想 LANカード力 仮 想 HUB31に接続されていれば、 PC305は物理的なスイッチング HUB158等と同じ セグメントに間接的に接続されていることになる。  [0210] As a result, as shown in Figure 23, it is not connected directly to the corporate LAN via a bridge connection, but is connected to the virtual LAN card power virtual hub 31 of another PC 305 at a remote location via the IP network. If so, the PC 305 is indirectly connected to the same segment as the physical switching HUB158.
したがって、例えば PC305と、社内 LAN上の他の PC303 (あるいは 304)との間に おいては、任意の MACフレームの送受信が可能となる。  Therefore, for example, any MAC frame can be transmitted and received between the PC 305 and another PC 303 (or 304) on the in-house LAN.
[0211] この場合、社内 LAN上の他の PC303 (あるいは 304)には、本発明の VPNシステム の VPNソフトウェアをインストールしたり、仮想 LANカードを動作させたりする設定作 業が一切不要である。 [0211] In this case, setting work for installing the VPN software of the VPN system of the present invention or operating the virtual LAN card is not required on the other PC 303 (or 304) on the in-house LAN.
この利点は非常に大きぐ従来のレイヤ 3をカプセル化していた VPNにおいては、 不可能であったレイヤ 2でのカプセル化を実現したため、レイヤ 2でネットワーク同士 をブリッジ接続し、同一セグメント化することができる。  This advantage is achieved by enlarging Layer 2 encapsulation, which was impossible with VPN that encapsulated very large conventional Layer 3 networks. Can do.
[0212] <再接続機能 > [0212] <Reconnect function>
仮想、 LAN力一ドと仮想、 HUBとの間のセッションには、セッション IDと呼ばれる識別 符合が付レ、てレ、る場合がある。  Sessions between virtual and LAN networks and virtual and HUBs may have an identification code called a session ID.
このセッション IDは、仮想 LANカード及び仮想 HUBの双方しか知らなレ、(ハンドシ ェイク時に乱数を用いてどちらかが決定しもう一方に通知する)ことになつている。 仮想 LANカードと仮想 HUBとの間のセッションの通信を司る TCP/IPコネクション が切断された場合においても、ユーザーが設定した(またはプログラムによって固定 された)一定の時間の間、論理的なセッションが継続されている。 This session ID is known only to both the virtual LAN card and the Virtual Hub (one is determined using a random number during handshaking and notified to the other). Even when the TCP / IP connection that controls session communication between the virtual LAN card and the Virtual Hub is disconnected, the logical session remains for a certain period of time set by the user (or fixed by the program). It has been continued.
[0213] そして、仮想 LANカードは仮想 HUBとの接続が切断されたことを検出した段階で 、仮想 HUBに対して再度 TCP/IPコネクションを成立させ、ハンドシヱイク処理の中 で先ほどまで通信をしていたセッション IDを仮想 HUBに対して通信する。 [0213] Then, when the virtual LAN card detects that the connection with the Virtual Hub has been disconnected, it establishes a TCP / IP connection with the Virtual Hub again and communicates as before in the handshake processing. The session ID is communicated to the Virtual Hub.
これにより、仮想 HUBは、保留状態のセッション中力もセッション IDに対応したセッ シヨンの有無を検索し、対応するセッション IDが検出された場合、仮想 LANカードを そのセッションに再接続させることができる。この再接続機能は、本発明の VPNシス テムに搭載されている。  As a result, the Virtual HUB searches for the presence of a session corresponding to the session ID for the pending session strength, and if a corresponding session ID is detected, the Virtual HUB can reconnect to the session. This reconnection function is installed in the VPN system of the present invention.
[0214] また、 TCPZIPコネクションが切断されてから、再接続機能によって再接続が完了 するまでの間は、相互に TCP/IPコネクションが切断されていない場合、送信するこ とができるストリームデータをキューに入れて待機しており、再接続が完了した瞬間に 、相互にキューに待機させておいたストリームデータを、相手方に一気に送信するこ とができるようになつている。  [0214] Also, after the TCPZIP connection is disconnected, until the reconnection is completed by the reconnection function, if the TCP / IP connection is not disconnected, the stream data that can be transmitted is queued. When the reconnection is completed, the stream data kept waiting in the queue can be sent to the other party at once.
[0215] これにより、仮想 LANカードよりも上位の次元で動作しているプロトコルスタックゃァ プリケーシヨンプログラムは、 LANカードと HUBとの間の回線が本来は切断されたに もかかわらず、あた力も切断されていないかのように認識するため、 TCP/IPセッショ ンが切断される品質の悪い IPネットワーク上においても、上位レイヤにおける通信の 断絶を抑えることができる効果がある。  [0215] As a result, the protocol stack application program operating at a higher level than the virtual LAN card does not respond to the fact that the line between the LAN card and the HUB was originally disconnected. Since the power is recognized as if it was not disconnected, there is an effect that the disconnection of communication in the upper layer can be suppressed even on the poor quality IP network where the TCP / IP session is disconnected.
[0216] く複数 TCP/IPコネクションへの対応 >  [0216] Support for multiple TCP / IP connections>
図 8に示した本発明の VPNシステムによる仮想的な MACフレーム交換の方法等で 説明したように、仮想 LANカードと仮想 HUBとの間の通信を示す論理的なセッション は 1本の TCP/IPコネクションによって確立され、 1つのセッションに対して、 1本の TCP/IPコネクションが対応しているということになつていた。  As explained in the virtual MAC frame exchange method using the VPN system of the present invention shown in FIG. 8, the logical session indicating the communication between the virtual LAN card and the virtual HUB is one TCP / IP. It was established by a connection, and one TCP / IP connection was supported for one session.
ところ力 ブロードバンドインターネット接続などにおいて、  By the way, in broadband Internet connection,
1.比較的スループットが高く  1. Relatively high throughput
2.比較的遅延時間の大きな IPネットワークを経由してアプリケーションプログラム同 士が任意のデータの転送を行う 2. Application program via IP network with relatively long delay time Transfer any data
場合、アプリケーションプログラム間(具体的には TCP/IPサーバープログラムと TCP/IPクライアントプログラム間)において、 1本ではなく 2本以上の複数本の  In this case, two or more multiple applications, not one, between application programs (specifically, between a TCP / IP server program and a TCP / IP client program)
TCP/IPコネクションを確立して、伝送しょうとする任意のデータを互いに事前合意し たアルゴリズムによって分割して送信して、受信側にて分割されて送信されたデータ を結合したほうが、 1本の TCP/IPコネクションを使用して転送した場合よりも、高速に It is better to establish a TCP / IP connection, divide and send arbitrary data to be transmitted by an algorithm agreed in advance, and combine the divided and transmitted data at the receiving side. Faster than when using a TCP / IP connection
(短時間で)転送が完了するということが知られている。 It is known that the transfer is completed (in a short time).
[0217] そこで、本発明の VPNシステムによる通信において、 1つの SEセッションに対して、 1 本の TCP/IPコネクションにより、カプセル化されたストリームデータの伝送を行ってい た点を改良し、 1つの SEセッションを流れるストリームデータを、 TCP/IPスタックで伝 送する直前に、何らかのアルゴリズムで適当に均一サイズに分割し、複数の TCP/IP コネクションを確立して伝送することが考えられる。  [0217] Therefore, in communication by the VPN system of the present invention, the point that the encapsulated stream data was transmitted by one TCP / IP connection for one SE session was improved. Immediately before transmission of the stream data flowing through the SE session with the TCP / IP stack, it may be possible to divide the data into a uniform size by some algorithm and establish multiple TCP / IP connections for transmission.
[0218] しかしながら、本発明の VPNシステムの通信において、 TCP/IPコネクション上を流 れるデータは、開始点の判定を行うことができる力 終了点は VPN通信の終了する時 点までであるために不明であり、かつ VPNの特性上、送信側のカプセル化部により、 早い時間にカプセル化されて、ストリームデータ化されたパケットをできるだけ早く相 手先に送り届ける必要がある。  [0218] However, in the communication of the VPN system of the present invention, the data flowing over the TCP / IP connection is capable of determining the start point because the end point is up to the end of the VPN communication. It is unknown, and due to the characteristics of VPN, it is necessary to send packets that have been encapsulated at an early time and converted into stream data as soon as possible by the encapsulation unit on the transmission side.
このため、単に複数の TCP/IPコネクションを用いることにより単純に通信速度を向 上させようとする従来手法は適用することができない。  For this reason, the conventional method of simply increasing the communication speed by simply using multiple TCP / IP connections cannot be applied.
[0219] 図 24を用いて、本発明の VPNシステムにおける 1つの SEセッションに対して複数の TCP/IPコネクションを確立して送受信を行う方法について説明する。図 24は、本発 明の VPNシステムにおいて、 1つの SEセッションに対して複数の TCP/IPコネクション を確立して送受信を行う構成の概念図である。  [0219] With reference to FIG. 24, a method of establishing and transmitting a plurality of TCP / IP connections for one SE session in the VPN system of the present invention will be described. FIG. 24 is a conceptual diagram of a configuration in which a plurality of TCP / IP connections are established and transmitted / received for one SE session in the VPN system of the present invention.
図 24 (b)を用いて、複数の TCP/IPコネクションへの対応の説明を行う。この図 24 (b )におレ、ては、複数の TCP/IPコネクションを仮想 LANカードと仮想 HUBとの間におレヽ て成立させ、この複数の TCP/IPコネクションを上手に利用するため、各 SEセッション 毎にカプセル化部 181— 183と同様の数の TCP/IPコネクションを確立する。  The correspondence to multiple TCP / IP connections is explained using Fig. 24 (b). In Fig. 24 (b), in order to establish a plurality of TCP / IP connections between the virtual LAN card and the Virtual HUB and use these TCP / IP connections well, For each SE session, the same number of TCP / IP connections as the encapsulation units 181 to 183 are established.
図 24 (a)における上述してきた、 1つの SEセッションに対して 1つの TCP/IPコネクシ ヨンを確立する構成においては、カプセル化部 18が複数の仮想 MACフレームを渡さ れた場合、それをカプセル化部 18がカプセル化し、ストリームデータ化したものを、 TCP/IPスタック 13へ出力する。 One TCP / IP connection for one SE session as described above in Figure 24 (a) In the configuration for establishing the network, when the encapsulating unit 18 is passed a plurality of virtual MAC frames, the encapsulating unit 18 encapsulates it and outputs the stream data to the TCP / IP stack 13.
[0220] そして、 TCP/IPスタック 13は、 1本の TCP/IPコネクションに対応させて、 IPパケット に分割して、 IPネットワーク 119を介して送信する。 [0220] Then, the TCP / IP stack 13 divides the packet into IP packets corresponding to one TCP / IP connection, and transmits the packet via the IP network 119.
次に、遠隔地にあるコンピュータの TCP/IPスタック 35は、送信された IPパケットを受 信し、この IPパケットをストリームデータに復元し、カプセルィ匕解除部 48へ出力する。 そして、カプセル化解除部 48は、このストリームデータから仮想 MACフレームを取り 出していた。  Next, the TCP / IP stack 35 of the remote computer receives the transmitted IP packet, restores the IP packet to stream data, and outputs it to the capsule release unit 48. The decapsulation unit 48 extracts the virtual MAC frame from this stream data.
[0221] 一方、図 24 (b)に示す構成においては、仮想 MACフレームが送信される際、仮想 MACフレームがカプセル化部 181— 183各々に入力される前に、コネクション選択 部 310に入力される。  On the other hand, in the configuration shown in FIG. 24 (b), when the virtual MAC frame is transmitted, the virtual MAC frame is input to the connection selection unit 310 before being input to the encapsulation units 181 to 183. The
すなわち、コネクション選択部 310は、カプセルィ匕部の直前の段として設けられてい る。  That is, the connection selection unit 310 is provided as a stage immediately before the capsule unit.
このコネクション選択部 310は、入力される複数の仮想 MACフレームを、予め定め られたアルゴリズムに基づいて、確立されている TCP/IPコネクション数と同数用意さ れたカプセル化部 181— 183各々に振り分ける制御を行う。  The connection selection unit 310 distributes a plurality of input virtual MAC frames to each of the encapsulation units 181 to 183 prepared in the same number as the number of established TCP / IP connections based on a predetermined algorithm. Take control.
[0222] 具体的には、図 24 (b)に示す様に、コネクション選択部 310は、入力される仮想[0222] Specifically, as shown in FIG. 24 (b), the connection selection unit 310 receives the input virtual
MACフレームを、カプセル化部 181、カプセル化部 182、カプセル化部 183の 3つに 分配することになる。 The MAC frame is distributed to the encapsulation unit 181, the encapsulation unit 182, and the encapsulation unit 183.
これらカプセル化部 181 ,カプセル化部 182,カプセル化部 183には、各々 1本の TCP/IPコネクションが対応してレ、る。  Each of the encapsulating unit 181, the encapsulating unit 182, and the encapsulating unit 183 has one TCP / IP connection corresponding thereto.
コネクション選択部 310は、仮想 MACフレームを振り分ける処理として、各仮想 MACフレームをどのカプセル化部に割り当てるかを選択し、その選択結果により、仮 想 MACフレームをそのままの形で出力するのみであり、仮想 MACフレームの内容の 編集等の処理を一切することがなレ、。  As a process for allocating virtual MAC frames, the connection selection unit 310 selects which encapsulation unit each virtual MAC frame is assigned to, and outputs the virtual MAC frame as it is based on the selection result. Do not do any processing such as editing the contents of the virtual MAC frame.
[0223] カプセル化部 181— 183各々は、それぞれ自身が入力された複数の仮想 MACフ レームを、 TCP/IPスタック 13を介して、それぞれに対応する TCP/IPコネクションに出 力する。 [0223] Each of the encapsulation units 181 to 183 outputs a plurality of virtual MAC frames to which the encapsulation unit 181 to 183 is input via the TCP / IP stack 13 to the corresponding TCP / IP connection. To help.
これにより、 TCP/IPスタック 13は、 IPネットワーク 119を介して接続されている受信 者コンピュータの仮想 LANカードに対して、上記仮想 MACフレームの送信を行う。 そして、 TCP/IPスタック 35は、送信したコンピュータによる上記送信処理と正反対 の順序で、 TCP/IPコネクションに対応した複数のカプセル化解除部 481 , 482, 48 3により、カプセルィ匕されたストリームデータのカプセル化を解除して、複数の仮想 MACフレームを取り出し、この仮想 MACフレームをコネクション結合部 490へ出力す る。  As a result, the TCP / IP stack 13 transmits the virtual MAC frame to the virtual LAN card of the receiver computer connected via the IP network 119. Then, the TCP / IP stack 35, in the order opposite to the above transmission processing by the computer that transmitted, the stream data encapsulated by the plurality of decapsulation units 481, 482, 483 corresponding to the TCP / IP connection. Decapsulation is performed, a plurality of virtual MAC frames are extracted, and the virtual MAC frames are output to the connection coupling unit 490.
[0224] コネクション結合部 490は、カプセル化解除部 481 483各々力 受け取った仮想 MACフレームを、受信した時系列順に並べ変えて、次の処理を行うプロセスに出力 する。  [0224] The connection coupling unit 490 rearranges the received virtual MAC frames in the order of the received time series, and outputs the received virtual MAC frames to the process for performing the next processing.
ここで、コネクション選択部 490における具体的なアルゴリズムについては、入れ替 え可能であるが、次の方法によって、仮想 MACフレームを出力するカプセル化部を 選択するのが良いと考えられる。  Here, the specific algorithm in the connection selection unit 490 can be replaced, but it is considered that the encapsulation unit that outputs the virtual MAC frame should be selected by the following method.
[0225] コネクション選択部 490がカプセル化部 181— 183のいずれかに仮想 MACフレー ムを振り分けるアルゴリズムについて説明する。  [0225] An algorithm in which the connection selection unit 490 allocates the virtual MAC frame to any one of the encapsulation units 181 to 183 will be described.
(1)カプセル化部 181— 183各々は、それぞれに対応する TCP/IPコネクションの 品質状態を管理する状態変数 Qを保持していいる。ここで、 Qの初期値は「0」であり 、この Qの値が大きいほど品質が悪いことを意味する。  (1) Each of the encapsulation units 181 to 183 has a state variable Q for managing the quality state of the corresponding TCP / IP connection. Here, the initial value of Q is “0”, and the larger the value of Q, the worse the quality.
[0226] (2)コネクション選択部 310は、新しい仮想 MACフレームが入力されると、すべての カプセルィ匕部(181— 183)の中から、状態変数 Qの値が最も小さいものを選択し、 仮想 MACフレームの送信を、選択したカプセル化部に対して指示する。また、コネク シヨン選択部 310は、上記複数のカプセルィ匕部(181— 183)から状態変数 Qの最も 低いものを選択する際、状態変数 Qの値が同一のものがある場合、これら同一の状 態変数 Qを有するカプセルィヒ部を無作為またはユーザーが設定した規則に従って 選択する。また、コネクション選択部 310は、複数の仮想 MACフレームを同時に前の プロセス力、ら受け取ることがある力 各仮想 MACフレームについてこれらの処理をブ ロッキング無しで瞬時に行うことができる。これはコネクション選択部 310がカプセル化 部にフレームを振り分けて渡す処理は、コンピュータのメモリ内の処理であるためであ る。(通信を伴わないため、ブロッキングすることは無い) [0226] (2) When a new virtual MAC frame is input, the connection selection unit 310 selects the one with the smallest value of the state variable Q from all the capsule units (181 to 183), Instructs the selected encapsulation unit to transmit the MAC frame. In addition, the connection selection unit 310 selects the one with the lowest value of the state variable Q from the plurality of capsule units (181 to 183). A capsule part with state variable Q is selected according to a rule set by the user at random. Further, the connection selection unit 310 can receive a plurality of virtual MAC frames at the same time as the previous process power, and can instantly perform these processes for each virtual MAC frame without blocking. This is encapsulated by the connection selector 310 This is because the process of distributing the frame to the part is a process in the memory of the computer. (Because communication is not involved, there is no blocking)
[0227] (3)カプセル化部 181— 183は、コネクション選択部 310から入力される仮想 MAC フレーム(同時に複数受け取ることもある)を、カプセル化して、ストリームデータとして 先着順に保持する。このとき、カプセルィ匕部 181— 183は、後から生成したストリーム データを、直前に生成されたストリームデータの末尾に付加することにより、ストリーム データの結合処理を行う。  (3) Encapsulation units 181 to 183 encapsulate virtual MAC frames (which may be received at the same time) input from connection selection unit 310, and hold them as stream data on a first-come-first-served basis. At this time, the capsule units 181 to 183 perform stream data combining processing by adding the stream data generated later to the end of the stream data generated immediately before.
[0228] (4)カプセルィ匕部 181— 183は、現在保持しているストリームデータを、先頭から順 に、 TCP/IPコネクションを使用して伝送しょうとする。すなわち、カプセルィ匕部は、 TCP/IPスタック 13から、ネットワーク回線に余裕があり、次のデータを転送できること が通知された場合、 TCP/IPスタック 13に対してストリームデータを渡して送信を指示 する。  [0228] (4) Capsule section 181—183 attempts to transmit the currently held stream data in order from the top using a TCP / IP connection. In other words, when the capsule unit is notified from the TCP / IP stack 13 that the network line has enough space and the next data can be transferred, the capsule data unit passes the stream data to the TCP / IP stack 13 to instruct transmission. .
[0229] (5) TCP/IPスタック 13は、カプセル化部から入力されるストリームデータの送信を、 IP ネットワークに対して試みる。そして、 TCP/IPスタック 13は、送信処理が完了した場 合、送信したストリームデータに対応するカプセル化部に対して、送信処理の完了を 通知する。また、 TCP/IPスタック 13は、ネットワークの速度が遅い場合や品質が悪い 場合、または送信しょうとするストリームデータが大きすぎる場合、「ストリームデータ中 のどこまでの部分の送信が完了し、どこから先のデータが未送信である」ことを示す 送信情報を、このストリームデータに対応するカプセル化部に対して通知する。この 通知はカプセル化部力 TCP/IPスタックに対して送信を指示するたびに通知され、 下記の情報等がわかるようになってレ、る。  (5) The TCP / IP stack 13 attempts to transmit the stream data input from the encapsulation unit to the IP network. When the transmission process is completed, the TCP / IP stack 13 notifies the encapsulation unit corresponding to the transmitted stream data of the completion of the transmission process. In addition, the TCP / IP stack 13 may indicate that if the network speed is slow or the quality is poor, or if the stream data to be transmitted is too large, the transmission of the part of the stream data up to The transmission information indicating that the data has not been transmitted is notified to the encapsulation unit corresponding to the stream data. This notification is sent each time the encapsulation is sent to the TCP / IP stack, and the following information is known.
• 100バイトの送信が指示された力 50バイトまで送った。残りは送っていない。 • 80バイト中 80バイトとも送信が完了した。  • Sending up to 50 bytes was instructed to send 100 bytes. I have not sent the rest. • 80 bytes out of 80 bytes have been sent.
• (回線混雑などが原因で) 1バイトも送信できなかった。  • One byte could not be sent (due to line congestion).
[0230] (6)カプセノレィ匕咅 (181 , 182, 183)は、(5)におレヽて、 TCP/IPスタック 13力らの通 知を受信すると、 TCP/IPスタック 13に指示したデータ転送がすべて完了し、 TCP/IP スタック 13に対して、次のデータ転送をいつでも指示することができる状態であること を検出した際、状態変数 Qを「0」に初期化する。一方、カプセルィ匕部(181, 182, 1 83)は、指示したデータ転送がまだすベて完了していないことを示す送信情報を、 TCP/IPスタック 13から受信した場合、状態変数 Qに nを加算する。ここで、 nは変数で あり、 1に固定しても良いし、また、 TCP/IPスタック 13に渡したにもかかわらず送信が 完了してレ、なレ、全データ量に比例した数値にしても良レ、。 [0230] (6) Capsule (181, 182, 183) receives the notification from TCP / IP Stack 13 in response to (5) and transfers the data to TCP / IP Stack 13. When all of the above are completed and the TCP / IP stack 13 detects that the next data transfer can be instructed at any time, the state variable Q is initialized to “0”. On the other hand, capsule capsule (181, 182, 1 83) adds n to the state variable Q when it receives from the TCP / IP stack 13 transmission information indicating that the instructed data transfer has not yet been completed. Here, n is a variable, and may be fixed to 1. Also, even if it is passed to the TCP / IP stack 13, the transmission is completed and the value is proportional to the total amount of data. It ’s good.
[0231] すなわち、仮想 LANカード 11は、仮想 HUB31との間に確立される 1つの SEセッショ ンに対して、複数の TCP/IPコネクションを設け、この SEセッションに設けた複数の TCP/IPコネクションにおいて、各 TCP/IPコネクションの品質状態を示す状態変数を 検出し、最も良い品質状態の TCP/IPコネクションに MACフレームを出力する。  That is, the virtual LAN card 11 provides a plurality of TCP / IP connections for one SE session established with the virtual hub 31 and a plurality of TCP / IP connections provided for this SE session. In, the status variable indicating the quality status of each TCP / IP connection is detected, and the MAC frame is output to the TCP / IP connection in the best quality status.
上述したアルゴリズムにより、 SEセッションを複数の TCP/IPコネクションにより構成す ること力 Sでき、 SEセッション内を流れるべきカプセル化されたストリームデータは、各 TCP/IPコネクションにできるだけ通信効率の良くなるように均等に割り当てられ伝送 されることになる。結果的に、 SEセッションに対して、 1つの TCP/IPコネクションを対応 させる方式に比較して、 SEセッション内の総スループットが向上する。  With the algorithm described above, an SE session can be configured with multiple TCP / IP connections, and the encapsulated stream data that should flow through the SE session is as efficient as possible for each TCP / IP connection. Will be transmitted evenly. As a result, the total throughput in the SE session is improved compared to the method in which one TCP / IP connection is supported for the SE session.
[0232] 上記コネクション選択部 310における振り分け処理は、カプセル化部の直前に置く 必要がある。  [0232] The distribution process in the connection selection unit 310 needs to be placed immediately before the encapsulation unit.
同様に、コネクション結合部 310において振り分けられた受信データの結合処理は 、受信側におけるカプセルィヒ解除部の直後に置く必要がある。  Similarly, the process of combining received data distributed by the connection combining unit 310 needs to be placed immediately after the capsule release unit on the receiving side.
本発明の VPNシステムのような TCP/IPコネクションを使用して、仮想 MACフレーム をストリーム化し、このストリームデータをカプセル化して、データの伝送を行おうとす る VPN通信において、並歹 1JTCP/IPコネクションを使用することで高速化を得るアイデ ァは、単純に仮想 LAN力一ドと仮想 HUBとの間の元来 1本のみであった TCP/IPコネ クシヨンと、コネクション内のデータを単純に振り分ける処理を行うプログラムとを組み 合わせることから考えられるものではない。  In a VPN communication in which a virtual MAC frame is streamed using a TCP / IP connection like the VPN system of the present invention, and this stream data is encapsulated to transmit data, it is a parallel 1J TCP / IP connection. The idea of speeding up the use of is simply distributing the TCP / IP connection, which was originally only between the virtual LAN network and the Virtual Hub, and the data in the connection. It cannot be thought of in combination with a program that performs processing.
[0233] なぜならば、単純に TCP/IPコネクションにより送信しょうとする複数のデータを、そ れそれ複数コネクションに振り分け、また、後から受信者側において受信したデータ を結合するプログラムがあるとして、それを本発明の VPNシステムのような「TCP over TCP]の VPNに適用した際、 TCPコネクションごとに品質(パケット到着までの時間や スループットなど)が異なる場合、送信元が送信しょうとした複数の仮想 MACフレーム 同士の区切りは、カプセル化されてストリームデータとなった後のストリームを見るだ けでは判断できない。 [0233] This is because there is a program that simply distributes multiple data to be transmitted via TCP / IP connections to multiple connections, and combines the data received later on the receiver side. Is applied to a "TCP over TCP" VPN such as the VPN system of the present invention, and if the quality (time to packet arrival, throughput, etc.) differs for each TCP connection, multiple virtual MAC frame The separation between each other cannot be determined by just looking at the stream after it has been encapsulated into stream data.
[0234] このため、 1つの仮想 MACフレームのカプセル化された部分(つまり 1つのストリーム データが分割された IPパケット)力 実際に複数の TCP/IPコネクションに分割されて 送信されるとレ、うことが起こり得る。  [0234] For this reason, the encapsulated part of one virtual MAC frame (that is, the IP packet into which one stream data is divided) is actually transmitted after being divided into multiple TCP / IP connections. Can happen.
そして、受信側では送信側が分割した複数の TCP/IPコネクションから IPパケットを 受信し、単純にこの IPパケットを結合して元のストリームデータを復元するため、分割 された TCP/IPコネクションのうちの 1本におけるデータの到着が遅れてしまった場合 The receiving side receives IP packets from multiple TCP / IP connections divided by the transmitting side and simply combines the IP packets to restore the original stream data. When data arrival in one line is delayed
、そのデータが到着するまで元のストリームデータを復元することができない。 The original stream data cannot be restored until the data arrives.
[0235] 一方、図 24に示す方法、すなわちカプセルィ匕部の直前にコネクション選択部 310 を設置する方法においては、上述した場合においても、先着順に早く届いたデータ 力、らカプセル化解除することができる(なぜなら各 TCP/IPコネクション内を流れるデ ータは独立しており単独でカプセル化解除することができるためである)。  [0235] On the other hand, in the method shown in FIG. 24, that is, in the method of installing the connection selection unit 310 immediately before the capsule part, even in the case described above, it is possible to release the decapsulation from the data force that has arrived first-come Yes (because the data flowing in each TCP / IP connection is independent and can be unencapsulated alone).
したがって、この図 24に示す方法と比較すると、カプセル化後の 1本の TCP/IPコネ クシヨンを単純に複数コネクションに分割し、受信者が結合する方法では仮想 MACフ レームが物理的に到着しカプセル化解除されるまでの時間が遅くなつてしまう欠点が ある。  Therefore, in comparison with the method shown in FIG. 24, in the method in which one TCP / IP connection after encapsulation is simply divided into multiple connections and the receivers combine, the virtual MAC frame physically arrives. There is a disadvantage that the time until decapsulation is delayed.
[0236] したがって、仮想 LANカード及び仮想 HUB双方において、コネクション選択部 310 をカプセル化部の直前に設置し、各カプセルィヒ部の管理する品質状態変数 Qによつ て、仮想 MACフレームを送信させる TCP/IPコネクションを選択するという方法は、通 常の組み合わせでは実現することができない効果がある。  [0236] Therefore, in both the virtual LAN card and the virtual hub, the connection selection unit 310 is installed immediately before the encapsulation unit, and the TCP that transmits the virtual MAC frame by the quality state variable Q managed by each capsule unit is transmitted. The method of selecting an / IP connection has an effect that cannot be realized with a normal combination.
[0237] また、図 24の方法のもう 1つの効果として、 1つのセッションを複数の TCP/IPコネク シヨンに分割することができる本発明の VPNシステムを使用した場合、既存のすべて の任意の通信アプリケーションプログラムの通信は、その通信アプリケーションが複数 TCP/IPコネクションを使用したデータ転送に対応していなくても、その通信アプリケ ーシヨンプログラムが送信しょうとするデータは SEプロトコルに従いカプセル化され、 複数 TCP/IPコネクションに分割されて送信されることになる。  [0237] In addition, as another effect of the method of FIG. 24, when the VPN system of the present invention that can divide one session into a plurality of TCP / IP connections is used, any existing arbitrary communication is possible. In the communication of an application program, even if the communication application does not support data transfer using multiple TCP / IP connections, the data to be transmitted by the communication application program is encapsulated in accordance with the SE protocol. It will be divided into / IP connections and sent.
このため、本発明の VPNシステムを用いることにより、既存のすべての任意の通信ァ プリケーシヨンプログラムの通信において、並歹 IJTCP/IPコネクション通信における通 信速度向上、通信安定化などの利益を、各アプリケーションプログラムを特に書き換 えること無く自動的に受けることができるようになる。 For this reason, by using the VPN system of the present invention, all existing arbitrary communication keywords are used. In the communication of a prescription program, benefits such as improved communication speed and stable communication in parallel IJTCP / IP connection communication can be automatically received without rewriting each application program.
[0238] <通常の NATの動作 >  [0238] <Normal NAT operation>
本発明の VPNシステムにおいては、仮想 LANカードと NAT (Network Address Translation)とを組み合わせて、リモートアクセスのシステムを構成できる。  In the VPN system of the present invention, a remote access system can be configured by combining a virtual LAN card and NAT (Network Address Translation).
この仮想 LANカードと NATとを用いたシステムを説明する力 その前に従来の物理 的な LANカードを用いた場合との比較のため、始めに、 NATの説明を簡単に行う。 図 25を用いて、 NATの動作の説明を行う。図 25は、 NATの動作を説明するための 、 NATが実装されているコンピュータの構成の概念図である。  The power to explain the system using this virtual LAN card and NAT Before that, for comparison with the case of using a conventional physical LAN card, we will briefly explain NAT. The operation of NAT will be described with reference to FIG. FIG. 25 is a conceptual diagram of the configuration of a computer on which NAT is implemented to explain the operation of NAT.
[0239] 通常の NATの動作において、 NAT (NAPT)と呼ばれる現在一般的に用いられてい るアドレス変換技術に関する簡単な動作説明を行う。 [0239] In a normal NAT operation, a brief description of the operation related to the address translation technology currently used generally called NAT (NAPT) will be given.
NAT技術は一般的な技術であり、その基本的な仕様は RFC2663で規定されてレ、る のでここでは詳細にっレ、ては記述しなレ、。  NAT technology is a general technology, and its basic specifications are defined in RFC 2663, so here are the details.
図 25においては、 NATの内側の IPネットワーク 192.168.0.0/24上にあるコンピュータ A (IPアドレス 192· 168.0.2)上の TCP/IPクライアントプログラム(ポート番号 1234)力 NATの外側の IPネットワーク 192· 168.10.0/24上にあるコンピュータ B (IPアドレス  In Figure 25, TCP / IP client program (port number 1234) on computer A (IP address 192 · 168.0.2) on IP network 192.168.0.0/24 inside NAT NAT IP network outside NAT 192 · Computer B on 168.10.0 / 24 (IP address
192.168.10.1)上の TCP/IPサーバープログラム(ポート番号 80)との間で TCP/IPコネ クシヨンを確立して、データの送受信を行おうとしている状態を示したものである。  This shows a state where a TCP / IP connection is established with the TCP / IP server program (port number 80) on 192.168.10.1) and data is being sent and received.
[0240] NATとなるコンピュータ Fは、 NATの内側として 192· 168.0.1、そして外側として [0240] Computer F that becomes NAT is 192 · 168.0.1 as NAT inside, and as outside
192.168.10.10の 2つの IPアドレスが設定されている。  Two IP addresses 192.168.10.10 are set.
次に、コンピュータ A (IPアドレス 192.168.0.2/TCPポート番号 1234)は、コンピュータ B (IPアドレス 192.168.10.1/TCPポート番号 80)に対して、物理的な HUB320及び NAT (コンピュータ F)を介して、物理的な LANカード 323から TCPパケットを送出する そして、コンピュータ Fにおける NATプログラムは、 LANカード 321を介して上記 TCP パケットを入力し、この TCPパケットの IPアドレスの書き換えを行う。  Next, computer A (IP address 192.168.0.2/TCP port number 1234) communicates with computer B (IP address 192.168.10.1/TCP port number 80) via physical HUB320 and NAT (computer F). Then, the TCP packet is transmitted from the physical LAN card 323. Then, the NAT program in the computer F inputs the TCP packet via the LAN card 321 and rewrites the IP address of the TCP packet.
ここで、 NATプログラムにおけるアドレス書き換え部 322は、入力されるパケットが TCP/IPパケットまたは UDP/IPパケットのいずれかの場合、 TCPヘッダまたは UDPへッ ダと IPヘッダとにおけるポート番号及び IPアドレスの 2組の書き換えを行うが、それ以 外の操作、たとえば TCPパケットの再構成などは行わない。 Here, the address rewriting unit 322 in the NAT program In case of either TCP / IP packet or UDP / IP packet, rewrite two sets of port number and IP address in TCP header or UDP header and IP header, but other operations such as TCP packet No reconfiguration is performed.
[0241] そして、上記 TCP/IPパケットは、アドレス書き換え部 322により、発信元が [0241] Then, the TCP / IP packet is sent from the address rewriting unit 322 by the source.
192.168.10.10、ポート番号 5678に書き換えられ、物理的な HUB324を介して、宛先コ ンピュータ Bに届く。  It is rewritten to 192.168.10.10 and port number 5678 and reaches destination computer B via physical HUB324.
また、逆方向の TCP/IPパケットの流れは、上述した処理と正反対の処理が行われ る。  The reverse TCP / IP packet flow is the opposite of the above process.
図 25における NATの使用方法は、 1台の NATになるコンピュータ Fに 2枚の物理的 な LANカードがインストールされていて、片方が NATの外側(例えば、外部インターネ ット側)、もう片方が NATの内側(例えば、社内 LAN側)となっている。  The use of NAT in Figure 25 shows that two physical LAN cards are installed on computer F, which is one NAT, and one is outside NAT (for example, the external Internet side) and the other is on the other side. It is inside NAT (for example, in-house LAN side).
[0242] く仮想 LANカードと NATを使用したリモートアクセス > [0242] Remote access using virtual LAN card and NAT>
次に、図 26を用いて、本発明の VPNシステムにおける仮想 LANカードと NATを使用 したリモートアクセスについて説明する。図 26は、仮想 LANカードと NATを使用したリ モートアクセスのシステム構成を示す概念図である。  Next, remote access using a virtual LAN card and NAT in the VPN system of the present invention will be described with reference to FIG. FIG. 26 is a conceptual diagram showing a system configuration of remote access using a virtual LAN card and NAT.
図 25においては NATの内側、外側とも物理的な LANカードを用いていた力 図 26 に示すシステムにおいては、 NATの内側を仮想 LANカードにした構成としている。 すでに述べた様に、仮想 LANカードはオペレーティングシステムから見ると 1枚の物 理的な LANカードと論理的には同一であるために、物理的な LANカードと置き換える ことが可能である。  The power of using physical LAN cards inside and outside NAT in Fig. 25 In the system shown in Fig. 26, the inside of NAT is configured as a virtual LAN card. As already mentioned, a virtual LAN card is logically identical to a physical LAN card from the viewpoint of the operating system, so it can be replaced with a physical LAN card.
[0243] 図 26に示す仮想 LANカードと NATとを使用したリモートアクセスの構成は、仮想 [0243] The configuration of remote access using a virtual LAN card and NAT shown in Figure 26 is virtual.
LANカードと NATとを利用することで、本発明の VPNシステムにより構成される VPNを 、リモートアクセスのために利用するものである。 By using a LAN card and NAT, the VPN configured by the VPN system of the present invention is used for remote access.
この図 26において、システムの接続の状態として、インターネット上の仮想 LANカー ドをインストールしたコンピュータ 10力 S、インターネット上に設置されている仮想 HUB3 1に論理的に接続している状態で、同時に社内のリモートアクセス用 NATになるコン ピュータ F内で動作している仮想 LANカード 11が仮想 HUB31に論理的に接続して レ、る(SEセッションが成立している)状態とする。 [0244] 仮想 LANカード 11と仮想 HUB31との間に成立してレ、るカプセル化(VPN化)された TCP/IPコネクションのための通信路は、 LANカード 323が接続されてレ、るネットワーク を経由する手段またはその他の手段などで構成されている力 それらは従来の手段 によって構成されているため、また、すでに述べているため説明を省略する。 In Fig. 26, the system connection status is as follows: a computer with a virtual LAN card installed on the Internet and a virtual hub 3 installed on the Internet that is logically connected at the same time. The virtual LAN card 11 operating in the computer F that will be the NAT for remote access is logically connected to the virtual hub 31 (SE session is established). [0244] The communication path for the encapsulated (VPN) TCP / IP connection established between Virtual LAN Card 11 and Virtual HUB 31 is the network that is connected to LAN Card 323. Forces constituted by means passing through or other means, etc. Since they are constituted by conventional means, and have already been described, description thereof will be omitted.
ここで、図 25と図 26とにぉレ、て、中央のコンピュータにおいては、同様に NATプロ グラムが動作している。  Here, as shown in FIG. 25 and FIG. 26, the NAT program operates in the same manner in the central computer.
異なっている点は、図 25における物理的な LANカード 321が、図 26において仮想 的な LANカード 11に置き換えられてレ、ることである。  The difference is that the physical LAN card 321 in FIG. 25 is replaced with the virtual LAN card 11 in FIG.
NATプログラムから見れば、いずれも同様に LANカードとして認識されているため、 特に処理上の相違点は無レ、。  From the point of view of the NAT program, all are recognized as LAN cards, so there is no particular difference in processing.
[0245] 図 26の構成において、仮想 LANカード 11は仮想 HUB31に接続されており、また、 コンピュータ 10の仮想 LANカードも同様に同じ仮想 HUB31に接続されている。ここ で、コンピュータ 10の仮想 LANカードの IPアドレスは、 192.168.0.2である。 In the configuration of FIG. 26, the virtual LAN card 11 is connected to the virtual HUB 31, and the virtual LAN card of the computer 10 is also connected to the same virtual HUB 31. Here, the IP address of the virtual LAN card of the computer 10 is 192.168.0.2.
また、図 26は、このコンピュータ 10 (IPアドレス 192.168.0.2)上の TCP/IPクライアン トプログラム(ポート番号 1234)力 NATの外側の IPネットワーク 192.168.10.0/24上に あるコンピュータ B (IPアドレス 192· 168· 10.1)上の TCP/IPサーバープログラム(ポート 番号 80)との間で TCP/IPコネクションを確立して通信を行おうとしている状態を示して いる。  In addition, Figure 26 shows the TCP / IP client program (port number 1234) on this computer 10 (IP address 192.168.0.2) and computer B (IP address 192) on the IP network 192.168.10.0/24 outside NAT. · 168 · 10.1) This indicates a state in which a TCP / IP connection is established with the TCP / IP server program (port number 80) to establish communication.
[0246] NATとなるコンピュータ Fは、 NATの内側として 192.168.0.1、外側として  [0246] Computer F that becomes NAT is 192.168.0.1 as inside NAT and outside as NAT
192.168.10.10の 2つの IPアドレスが設定されている。  Two IP addresses 192.168.10.10 are set.
コンピュータ 10の仮想 LANカード(IPアドレス 192.168.0.2/TCPポート番号 1234)か らコンピュータ B (IPアドレス 192.168.10.1/TCPポート番号 80)に対して、 TCPパケット が送出される。  A TCP packet is sent from computer 10's virtual LAN card (IP address 192.168.0.2/TCP port number 1234) to computer B (IP address 192.168.10.1/TCP port number 80).
[0247] この送出された TCPパケットは、コンピュータ Fの NATプログラムにより、 IPアドレス書 き換えが行われる。  [0247] This sent TCP packet is IP address rewritten by the NAT program of computer F.
ここで、 NATプログラムにおけるアドレス書き換え部 322は、入力されるパケットが TCP/IPパケットまたは UDP/IPパケットのいずれかの場合、 TCPヘッダまたは UDPへッ ダと IPヘッダとにおけるポート番号及び IPアドレスの 2組の書き換えを行う。 [0248] ここで、上記アドレス書き換え部 322は、上記 TCP/IPパケットの IPアドレスを、発信 元が 192.168.10.10、ポート番号 5678に書き換える。 Here, when the input packet is either a TCP / IP packet or a UDP / IP packet, the address rewriting unit 322 in the NAT program sets the port number and IP address in the TCP header or UDP header and IP header. Perform two sets of rewriting. [0248] Here, the address rewriting unit 322 rewrites the IP address of the TCP / IP packet with the source as 192.168.10.10 and the port number 5678.
そして、 IPアドレス及びポート番号の書き換えられた TCP/IPパケットは、宛先コンビ ユータ Bに届く。逆方向、すなわちコンピュータ Bからコンピュータ 10への TCP/IPパケ ットの送信においては、上述した処理と正反対の処理が行われる。  The TCP / IP packet with the rewritten IP address and port number arrives at the destination computer B. In the reverse direction, that is, the transmission of the TCP / IP packet from the computer B to the computer 10, the processing opposite to that described above is performed.
UDP/IPパケットの場合もほぼ同等の制御が行われる。詳細については RFC2663を 参照すると良い。  In the case of UDP / IP packets, almost the same control is performed. Refer to RFC2663 for details.
[0249] 上述した方法により、外部からアクセスすることができない社内 LANに、物理的 LAN カードと仮想 LANカードとの両方を、 NATプログラムに接続することで、仮想 LANカー ドをインストールしてレ、るコンピュータ 10は、仮想 LANカード 11が接続されてレ、る外 部の仮想 HUB31にアクセスし、 NATになっているコンピュータ Fの仮想 LANカードの IPアドレスに対する IPゲートウェイ設定を行うだけで、 NATになってレ、るコンピュータ F が属している社内 LANなどのプライベートネットワークに外部からアクセスすることが できる。  [0249] By connecting both the physical LAN card and the virtual LAN card to the NAT program by using the method described above, connect the physical LAN card and the virtual LAN card to the NAT program. The computer 10 that is connected to the virtual LAN card 11 can access the external Virtual Hub 31 and set the IP gateway for the IP address of the virtual LAN card of the computer F that is NAT. The private network such as the corporate LAN to which the computer F belongs can be accessed from the outside.
[0250] この場合、仮想 HUBと各仮想 LANカードとの間を流れる仮想 MACフレームは、各々 のカプセル化部によってカプセル化されており、カプセル化する際に暗号化が行わ れている場合、この仮想 MACフレームをインターネットなどの危険なネットワーク上を 通しても安全である。  [0250] In this case, the virtual MAC frame flowing between the Virtual Hub and each virtual LAN card is encapsulated by each encapsulating unit, and if encryption is performed when encapsulating, this It is safe to pass virtual MAC frames over dangerous networks such as the Internet.
したがって、仮想 LANカードと NATプログラムとを組み合わせることにより、 VPNを使 用した社内 LANなどへの安全なリモートアクセスが可能である。  Therefore, by combining a virtual LAN card and a NAT program, secure remote access to an in-house LAN using VPN is possible.
この方法は、本発明の VPNシステムの VPN技術力 従来のレイヤ 3をカプセル化す るものと異なり、レイヤ 2での MACフレームをカプセル化し、かつ LANカードを仮想 LANカードプログラムによりエミユレーシヨンするという構成であるからこそ可能になつ たものである。  This method is different from the conventional layer 3 encapsulation technology in the VPN system of the present invention, in which the MAC frame in layer 2 is encapsulated and the LAN card is emulated by the virtual LAN card program. This is what makes it possible.
[0251] <ユーザーモード NATプログラム > [0251] <User mode NAT program>
図 26において説明した方法において、特定のリモートアクセス用コンピュータ上で NATを動作させ、リモートアクセス用に使用するためには、以下の(1)及び(2)の 2つ の条件が必要である。 (1)リモートアクセス用コンピュータのオペレーティングシステムに対応した仮想 LAN カードプログラムが実装されており、かつ同オペレーティングシステムに対応した NAT プログラムが実装されてレ、る必要がある。 In the method described in FIG. 26, the following two conditions (1) and (2) are required to operate NAT on a specific remote access computer and use it for remote access. (1) A virtual LAN card program corresponding to the operating system of the remote access computer must be installed, and a NAT program corresponding to the operating system must be installed.
(2)リモートアクセス用コンピュータ上のオペレーティングシステムにおレ、てカーネ ルモード特権が必要である。  (2) The operating system on the remote access computer must have kernel mode privileges.
[0252] 以下に、(1)及び(2)の条件が必要な理由について説明する。  [0252] The reason why the conditions (1) and (2) are necessary will be described below.
まず、(1)において、リモートアクセス用コンピュータの NATプログラム力 「仮想 LANカードと NATを使用したリモートアクセス」の項で説明した用途にて正しく動作す るため、仮想 LANカードがそのリモートアクセス用コンピュータの使用しているオペレ 一ティングシステムに対応したプログラムとして実装されている必要がある。  First, in (1), the NAT program power of the remote access computer works correctly in the applications described in the section “Remote access using a virtual LAN card and NAT”. It must be implemented as a program that corresponds to the operating system used.
また、そのリモートアクセス用コンピュータが使用しているオペレーティングシステム に対応した NATプログラムが実装されている必要がある。  It is also necessary to implement a NAT program that is compatible with the operating system used by the remote access computer.
[0253] し力 ながら、仮想 LANカード、 NATプログラムとも、現時点で提供されていないタ ーゲットシステムは多数ある。 [0253] However, there are a number of target systems that are not currently available for both virtual LAN cards and NAT programs.
たとえば、仮想 LANカードプログラムは Windows 2000 (登録商標)以降に対応して いる力 Windows 98 (登録商標)などには対応していないし、その他の UNIX (登録商 標)系オペレーティングシステムに対応した実装も未公開である。  For example, the virtual LAN card program is compatible with Windows 2000 (registered trademark) or later. It does not support Windows 98 (registered trademark), and other UNIX (registered trademark) operating systems are also supported. Unpublished.
また、 NATプログラムは Windows 2000 (登録商標)、 Server 2003 (登録商標)などの Windows (登録商標)のサーバー系オペレーティングシステムであれば NATとして十 分利用できる実装が標準搭載されている。  In addition, the NAT program comes standard with an implementation that can be used as a NAT if it is a Windows (registered trademark) server-based operating system such as Windows 2000 (registered trademark) or Server 2003 (registered trademark).
[0254] しかしながら、 Windows 98 (登録商標)、 Windows 2000 (登録商標)の通常版、[0254] However, the normal version of Windows 98 (registered trademark), Windows 2000 (registered trademark),
Windows XP (登録商標)などのバージョンでは NATの要件を満たした NATプログラム の実装が提供されていない(サードパーティ製のゲートウェイプログラムに含まれてい る場合もある)。 Versions such as Windows XP (registered trademark) do not provide NAT program implementations that meet the NAT requirements (sometimes included in third-party gateway programs).
その他、 UNIX (登録商標)系オペレーティングシステムの中にも、対応した NATプロ グラムの実装が無レ、ものもある。  Other UNIX (registered trademark) operating systems do not have a corresponding NAT program.
このように、各種オペレーティングシステムに対応した仮想 LANカードや NATプログ ラムの実装が出揃うのに時間が力かる理由は、仮想 LANカード、 NATプログラム共に カーネルモードというコンピュータのシステム上の特権モードで動作するプログラムで あるためである。 In this way, the reason why it takes time to complete the implementation of virtual LAN cards and NAT programs that support various operating systems is the reason for both virtual LAN cards and NAT programs. This is because it is a program that operates in a privileged mode on the computer system called kernel mode.
[0255] カーネルモードの仕様は各オペレーティングシステムごとに大幅に異なるので、 1つ のシステムで記述したカーネルモード用のプログラムは、大幅に手直しをしないと、別 のシステム上で動作しなレ、。  [0255] Because the kernel mode specifications vary greatly from one operating system to another, a kernel mode program written on one system must run on another system without significant rework.
これはカーネルモードにおけるプログラミングインターフェイスの仕様が各システム ごとに統一されていないことが原因である。  This is because the specification of programming interface in kernel mode is not uniform for each system.
上述したカーネルモードに比較して、ユーザーモードにおけるプログラミングインタ 一フェイスの仕様は各システムごとである程度統一されている。  Compared to the kernel mode described above, the programming interface specifications in the user mode are unified to some extent for each system.
したがって、ユーザーモードプログラムは、別のシステムに移植することがカーネル モードプログラムの移植に比較して、非常に容易に行うことができる。  Therefore, porting a user mode program to another system is much easier than porting a kernel mode program.
[0256] 次に、(2)の条件に対する理由について説明する。  [0256] Next, the reason for the condition (2) will be described.
NATプログラム、仮想 LANカードとも、通常のオペレーティングシステムが一般のュ 一ザ一モードプログラムに対して直接アクセスを許可してレ、なレ、。  For both NAT programs and virtual LAN cards, ordinary operating systems allow direct access to general user mode programs.
すなわち、 NATプログラム及び仮想 LANカード(物理的な LANカードも同様)に対し てアクセスを行うため、デバイスドライバと呼ばれる重要な部分へのアクセスが必要と なる。  In other words, access to an important part called a device driver is required to access the NAT program and virtual LAN card (same for physical LAN cards).
したがって、仮想 LANカードや NATプログラムをインストールするためには、必ずそ のシステムのカーネルモードにアクセスし、プログラムを実行したり、設定を変更したり するためのシステム権限が必要になる。  Therefore, in order to install a virtual LAN card or NAT program, you must have system authority to access the kernel mode of the system, execute the program, and change settings.
[0257] 次に、(1)及び(2)における条件における欠点を説明する。 [0257] Next, defects in the conditions in (1) and (2) will be described.
(1)については、リモートアクセス用コンピュータとして利用したいコンピュータのシ ステム(オペレーティングシステム)力 仮想 LANカード、 NATプログラムのいずれか 一方でも実装されてレ、なレ、場合、そのシステムをリモートアクセス用に使用することを 断念する必要がある。  For (1), the system (operating system) power of the computer you want to use as a remote access computer is installed in either the virtual LAN card or NAT program. It is necessary to give up using it.
[0258] (2)については、仮想 LANカード及び NATプログラムの双方ともカーネルモードで 動作することが必要があるので、仮に仮想 LANカードまたは NATプログラムのいずれ か一方に不具合や脆弱性が存在している場合、それらが原因となって、リモートァク セス用コンピュータの動作が停止したり、不正な処理行ったり、場合によっては悪意 のある者によって脆弱性を外部から攻撃されて任意のコードがコンピュータ上で実行 されるなどの、安定性とセキュリティを確保する上において重大な問題となる。 [0258] Regarding (2), since both the virtual LAN card and the NAT program must operate in kernel mode, there is a problem or vulnerability in either the virtual LAN card or the NAT program. If they are The stability and security of the access computer, such as the operation of the access computer being stopped, illegal processing, or in some cases, a malicious person attacking the vulnerability from the outside and executing arbitrary code on the computer. It becomes a serious problem in securing.
したがって、可能であれば、長期間無人で動作させる可能性の高いリモートァクセ ス用コンピュータには、仮想 LANカード、 NATプログラムの双方をカーネルモードで 動作させ続けるといったことを避けたいと考えるシステム管理者がいる。  Therefore, if possible, a system administrator who wants to avoid running both virtual LAN cards and NAT programs in kernel mode on remote access computers that are likely to run unattended for a long time. Yes.
[0259] し力、しながら、従来の技術を組み合わせただけでは、 NATの動作を行うプログラム は必ずカーネルモード内で実装する必要があり、ユーザーモードプログラムとして NATを作成することができなレ、。 [0259] However, if only conventional techniques are combined, a program that performs NAT must be implemented in kernel mode, and NAT cannot be created as a user mode program. .
その理由は、前にも述べたが NATプログラムは現在コンピュータに接続されている LANカードのデバイスドライバに対してアクセスを行う必要がある(TCPまたは UDPパ ケットの中身を書き換えるため)ので、通常ユーザーモードプログラムが許可されてい ないシステム特権を行使する必要があるためである。  The reason for this is that the NAT program needs to access the device driver of the LAN card that is currently connected to the computer (to rewrite the contents of the TCP or UDP packet). This is because the mode program must exercise unauthorized system privileges.
[0260] そのため、本発明の VPNシステムには、ユーザモードで使用されるユーザーモード NATプログラムの機能が含まれてレ、る。 [0260] Therefore, the VPN system of the present invention includes the function of the user mode NAT program used in the user mode.
このユーザーモード NATプログラムは、従来の NATプログラムの動作を大幅に拡張 し、各 TCP/IPパケットに対して、いくつかの処理を組合せて、本発明の VPNシステム の VPN技術に融合可能な構成とされてレ、る。  This user-mode NAT program greatly expands the operation of the conventional NAT program, combines several processes for each TCP / IP packet, and can be integrated with the VPN technology of the VPN system of the present invention. It has been done.
これにより、本発明の VPNシステムには、従来、カーネルモードが必要とされていた NATプログラムを、一定の制約条件がある場合においては、ユーザーモード上で実 現することが可能である。  As a result, in the VPN system of the present invention, the NAT program that conventionally required the kernel mode can be realized in the user mode if there are certain restrictions.
[0261] 以下、本発明のユーザーモード NATプログラムについて詳細に説明する。 [0261] The user mode NAT program of the present invention will be described in detail below.
まず、ユーザーモード NATプログラムはすべてユーザーモードで動作することにな る。  First, all user mode NAT programs will run in user mode.
また、通常のシステムにおいては、大きく分けてカーネルモードとユーザーモードと の 2種類のプログラムが動作している  In a normal system, two types of programs, kernel mode and user mode, are operating.
し力、しながら、本発明において目的としているのは、システムのカーネルモード内で 動作させる必要があるプログラムを使用せずに、ユーザーモード内においてユーザ 一モードに対して許可されている、通常のアプリケーションとしての処理を行うことによ り、 NATプログラム(カーネルモードで動作している)と同等の動作をさせるというもの である。 However, it is an object of the present invention that the user does not need to use a program that needs to run in the kernel mode of the system, and does not use a user in the user mode. By performing processing as a normal application that is permitted for one mode, it is possible to perform the same operation as a NAT program (running in kernel mode).
[0262] 図 27を用いて、本発明におけるユーザモード NATプログラムについて説明する。図  [0262] A user mode NAT program according to the present invention will be described with reference to FIG. Figure
27は、本発明の実施形態におけるユーザ NATプログラムの構成及び動作を説明す るシステム構成を示す概念図である。  FIG. 27 is a conceptual diagram showing a system configuration for explaining the configuration and operation of the user NAT program in the embodiment of the present invention.
この図 27におけるユーザーモード NATプログラム 500は、外部ネットワークとの通信 を行うインターフェースが 2箇所設けられている。  The user mode NAT program 500 in FIG. 27 has two interfaces for communication with an external network.
一つの(1箇所目の)インターフェースとして TCP/IPスタック 530を使用した通信で あり、他方の(2箇所目の)インターフェースとして TCP/IPスタック 570を使用した通信 である。  Communication using TCP / IP stack 530 as one (first) interface, and communication using TCP / IP stack 570 as the other (second) interface.
[0263] 通常、現在使用されているほとんどのオペレーティングシステムにおいては、ユー ザ一モードのプログラムが LANカードのドライバに直接アクセスし、送受信するバケツ トのデータを書き換えたりすることはできない。  [0263] Normally, in most operating systems currently in use, user-mode programs cannot directly access LAN card drivers and rewrite the packet data sent and received.
しかしながら、ほとんどのオペレーティングシステムにおいて、オペレーティングシス テムが提供している TCP/IPスタックを使用した外部ホストとの限定された通信(通常 はソケット通信と呼ぶ)につレ、ては許可されてレ、る。  However, in most operating systems, limited communication with external hosts using the TCP / IP stack provided by the operating system (usually called socket communication) is permitted. The
[0264] ここで、ユーザーモード NATプログラム 500が動作しているコンピュータ、つまりリモ ートアクセス用に使用しているコンピュータ Dは、既存のネットワーク I/F540によって インターネットに接続されている。 [0264] Here, the computer on which the user mode NAT program 500 is operating, that is, the computer D used for remote access, is connected to the Internet via the existing network I / F 540.
このユーザーモード NATプログラム 500は、常時、別の PC上(インターネット上など) に設置されている仮想 HUB550に論理的に接続している(つまり、 SEセッションが確 立されている)。  This user mode NAT program 500 is always logically connected to a Virtual Hub 550 installed on another PC (such as on the Internet) (that is, an SE session is established).
[0265] また、仮想 HUB550に対して、 SEセッションを張ることができるのは、仮想 LANカー ドであるが、今回はユーザーモードのみで処理を行う必要があるため、上記コンビュ ータ Dには仮想 LANカードをインストールさせ動作させることができないことを想定し ている。  [0265] Although it is a virtual LAN card that can establish an SE session for Virtual HUB550, it is necessary to perform processing only in user mode this time. It is assumed that the virtual LAN card cannot be installed and operated.
したがって、仮想 LANカードで使用されてレ、るカプセル化/カプセル化解除部と同 等のアルゴリズムにより、仮想 MACフレームに対してカプセル化/カプセル化解除を 行う機能(例えばプログラムまたはハードウェアにより構成されるカプセルィ匕部 508お よびカプセル化解除部 504)がユーザーモード NAT内に設けられている。 Therefore, it is the same as the encapsulation / decapsulation unit used in the virtual LAN card. Functions for encapsulating / decapsulating virtual MAC frames (for example, the capsule unit 508 and decapsulation unit 504 configured by a program or hardware) are provided in the user mode NAT. ing.
[0266] この図 27においては、仮想 HUB550 (今まで述べていた仮想 HUB31と同様の構成 )力 インターネットなどを経由して、別のコンピュータ上の仮想 LANカード 560力 接 続されているとする。 In FIG. 27, it is assumed that Virtual Hub 550 (the same configuration as Virtual Hub 31 described so far) is connected to Virtual LAN card 560 on another computer via the Internet or the like.
ユーザーモード NAT500が動作してレ、るコンピュータ、つまりリモートアクセス用に 使用しているコンピュータ Dは、既存のネットワーク I/F580により社内 LANに接続され ている(社内 LANを経由してインターネットに接続することが可能なネットワークでは、 既存のネットワーク I/F540と既存のネットワーク I/F580は同一であっても良い)。 すなわち、ユーザモード NAT500, TCP/IPスタック 530,ネットワーク I/F540, TCP/IPスタック 570,ネットワーク I/F580は、コンピュータ Dに実装されている。  User mode NAT500-operated computer, that is, the computer D used for remote access, is connected to the corporate LAN via the existing network I / F580 (connected to the Internet via the corporate LAN. In existing networks, existing network I / F540 and existing network I / F580 may be the same). That is, the user mode NAT 500, TCP / IP stack 530, network I / F 540, TCP / IP stack 570, and network I / F 580 are mounted on the computer D.
ネットワーク I/F540と仮想、 HUB550との間、及びネットワーク I/F580とコンピュータ Eとの間には、インターネットや社内 LANなどのネットワークが存在している。  Between the network I / F 540 and virtual / HUB550, and between the network I / F 580 and computer E, there are networks such as the Internet and corporate LAN.
[0267] ここで、インターネット上にあって仮想 HUB550に接続しているコンピュータ上で動 作している、 TCP/IPクライアントプログラム 560が、既存のネットワーク I/F580が接続 されてレ、るのと同一の社内 LANに接続されたコンピュータ E (別の PC (E) )上で動作 する TCP/IPサーバープログラム 590との間において、 TCP/IPコネクションを確立して 通信する状態を説明する。 [0267] Here, the TCP / IP client program 560 running on a computer connected to the Virtual Hub 550 on the Internet is connected to the existing network I / F580. The following describes the state in which a TCP / IP connection is established and communicated with the TCP / IP server program 590 running on the computer E (another PC (E)) connected to the same corporate LAN.
TCP/IPクライアントプログラム 560とサーバープログラム 690との関係において、本 来 TCP/IPサーバープログラム 590は、社内 LANにあって、インターネットにある  In relation to the TCP / IP client program 560 and the server program 690, the original TCP / IP server program 590 is on the corporate LAN and on the Internet.
TCP/IPクライアントプログラム 560から、アクセスすることはできないはずである。 しかしながら、 TCP/IPクライアントプログラム 560は、ユーザーモード NATプログラム 500が NATの役割を果たすのでアクセスできるようになる。  The TCP / IP client program 560 should not be accessible. However, the TCP / IP client program 560 can be accessed because the user mode NAT program 500 serves as a NAT.
[0268] すなわち、ユーザーモード NATプログラム 500において、仮想、 HUB550に対する SE セッションを維持しているのは、カプセル化部 508及びカプセル化解除部 504である ユーザーモード NATプログラム 500は、予めユーザーが設定した本発明の VPNシス テム内でのみ通用する仮想的な MACアドレスと仮想的な IPアドレスが 1つずつ設定さ れている。 That is, in the user mode NAT program 500, it is the encapsulation unit 508 and the decapsulation unit 504 that maintain the virtual and HUB550 SE sessions. The user mode NAT program 500 is set in advance by the user. VPN system of the present invention One virtual MAC address and one virtual IP address that can only be used in the system are set.
仮想 LANカードを動作させた別の PC上の TCP/IPクライアントプログラム 560は、ュ 一ザ一モード NATプログラム 500に設定された仮想的な IPアドレスをゲートウェイとし て、 TCP/IP通信をしょうとする(つまりデータを送信しょうとする)。  The TCP / IP client program 560 on another PC running the virtual LAN card tries to perform TCP / IP communication using the virtual IP address set in the user mode NAT program 500 as a gateway. (Ie try to send data).
[0269] これにより、 TCP/IPクライアントプログラム 560力 実装されている PCの仮想 LAN力 ードからカプセル化されたストリームデータを送出する。 [0269] As a result, the encapsulated stream data is transmitted from the virtual LAN mode of the PC on which the TCP / IP client program 560 is installed.
そして、仮想 HUB550は、 SEセッションを介して入力される、 TCP/IPクライアントプロ グラム 560が送出した IPパケットのスイッチング処理を行い、ユーザーモード NATプロ グラム 500が動作しているコンピュータ Dに転送する。  Then, the Virtual HUB 550 performs a switching process of the IP packet sent from the TCP / IP client program 560 input via the SE session, and transfers it to the computer D on which the user mode NAT program 500 is operating.
次に、この IPパケットは、コンピュータ Dへ到達し、オペレーティングシステムにより、 既存のネットワーク I/F540及び TCP/IPスタック 530を介して受信される。  This IP packet then arrives at computer D and is received by the operating system via the existing network I / F 540 and TCP / IP stack 530.
[0270] そして、ユーザーモード NATプログラム 500は、 TCP/IPスタック 530が出力する仮 想 MACフレームを受信する。 Then, the user mode NAT program 500 receives the virtual MAC frame output from the TCP / IP stack 530.
また、ユーザーモード NATプログラム 500は、本発明の VPNシステム内において転 送に用いられる仮想 MACアドレスと仮想 IPアドレスとが設定されており、 VPNシステム 内において自身が持ってレ、る仮想 IPアドレスに対する ARP (Address Resolution Protocol)リクエストが発行された場合は、 ARPレスポンスを ARPパケットの仕様に基づ レヽて応答するようになってレ、る。  The user mode NAT program 500 is set with a virtual MAC address and a virtual IP address used for transfer in the VPN system of the present invention. When an ARP (Address Resolution Protocol) request is issued, the ARP response is returned based on the specifications of the ARP packet.
[0271] 仮想 LANカードを動作させた別の PC上の TCP/IPクライアントプログラム 560が送信 した複数の仮想 MACフレームをカプセル化したストリームデータは、仮想 HUB550に よりスイッチング制御され、ユーザーモード NATプログラム 500におけるカプセル化解 除部 504が受信することになる。 [0271] Stream data encapsulating multiple virtual MAC frames sent by TCP / IP client program 560 on another PC running a virtual LAN card is switching-controlled by Virtual HUB550, and user mode NAT program 500 The decapsulation unit 504 in FIG.
カプセルィ匕解除部 504の受信したストリームデータは、カプセル化解除部 504によ り、複数の仮想 MACフレーム 604に展開される。  The stream data received by the decapsulation release unit 504 is expanded into a plurality of virtual MAC frames 604 by the decapsulation unit 504.
次に、 IPヘッダ解析部 503は、入力される仮想 MACフレームを参照して、送られて きたパケット(仮想 MACフレーム)が IPパケットの場合、 IPヘッダの情報を読み取る。 一方、 IPヘッダ解析部 503は、 IPヘッダのプロトコル番号が 6番(TCP)である場合、 そのパケットは TCPパケットであることを検出し、 TCPヘッダ解析部 502へ出力する。 Next, the IP header analysis unit 503 refers to the input virtual MAC frame, and reads the information of the IP header when the transmitted packet (virtual MAC frame) is an IP packet. On the other hand, if the IP header protocol number is 503 (TCP), The packet is detected as a TCP packet and output to the TCP header analysis unit 502.
[0272] そして、 TCPヘッダ解析部 502は、 TCPヘッダを参照して、 TCPヘッダに格納されて レ、る情報を取り出し、 IPヘッダ解析部 503において取り出した情報と合わせて、送信 元 IPアドレス,送信元ポート番号,宛先 IPアドレス,宛先 IPアドレスの 4種類毎の組に よって論理的な TCP/IPコネクションとして識別する。 [0272] Then, the TCP header analysis unit 502 refers to the TCP header, extracts the information stored in the TCP header, and combines the information extracted by the IP header analysis unit 503 with the source IP address, A logical TCP / IP connection is identified by a set of four types: source port number, destination IP address, and destination IP address.
また、ユーザーモード NATプログラム 500内においては、これら 4種類の情報の組 ごとに識別された論理的な TCP/IPコネクションの一覧を保持しており、論理的コネク シヨンごとに、送信データキュー 510及び受信データキュー 509がそれぞれ 1つずつ プログラム内で保持されている。  In the user mode NAT program 500, a list of logical TCP / IP connections identified for each set of these four types of information is maintained. For each logical connection, the transmission data queue 510 and One receive data queue 509 is held in the program.
そして、 TCP/IPヘッダ解析部 502は、受信した TCPパケット 605のペイロード(本文 )を抽出して、データ 606としてデータ結合部 501へ出力する。  Then, the TCP / IP header analysis unit 502 extracts the payload (text) of the received TCP packet 605 and outputs it to the data combining unit 501 as data 606.
[0273] 次に、データ結合部 501は、 TCPヘッダ解析部 502から入力される、分割されてい るデータ 606 (受信した TCPパケット 605のペイロード(本文))を、各 TCPパケットのシ 一ケンス番号を元に並び替える(この並び替えの動作は TCP/IPの RFC仕様で定めら れているものである)。 [0273] Next, the data combining unit 501 receives the divided data 606 (payload (text) of the received TCP packet 605) input from the TCP header analysis unit 502 as the sequence number of each TCP packet. (The sorting behavior is defined in the TCP / IP RFC specification).
そして、データ結合部 501は、論理的な TCP/IPコネクションのストリームを復元した 後、そのストリームを先頭から順に、送信データキュー 510に追加する。  Then, after restoring the logical TCP / IP connection stream, the data combining unit 501 adds the stream to the transmission data queue 510 in order from the top.
[0274] ここで、送信データキュー 510は、一直線上にビット列が並んだバッファであり、末 尾からビット列を追加して、先頭から出力するようなデータ構造 (ファーストイン'ファー ストアウト)のキューである。 [0274] Here, the transmission data queue 510 is a buffer in which bit strings are arranged on a straight line, and is a queue having a data structure (first in first out) in which a bit string is added from the end and output from the head. is there.
そして、ユーザーモード NATプログラム 500は、この送信データキュー 510におレヽ て、 1バイト以上のデータ (ストリーム)が蓄積されている場合、送信データキュー 510 の先頭から、順次、ストリームデータを、 TCP/IPスタック 570を使用して、論理的な TCP/IPコネクションの接続先として指定されている、既存のネットワーク(社内 LAN) 上のコンピュータ E上で待ち受けしている TCP/IPサーバープログラム 590に送信する ように指示する。  Then, when 1 byte or more of data (stream) is accumulated in the transmission data queue 510, the user mode NAT program 500 sequentially transmits the stream data from the head of the transmission data queue 510 to the TCP / Using IP stack 570, send to TCP / IP server program 590 that is waiting on computer E on the existing network (company LAN) that is specified as the destination of the logical TCP / IP connection. To instruct.
[0275] したがって、この時点でユーザーモード NATプログラム 500と、このユーザーモード NATプログラム 500が処理している TCP/IPコネクションの宛先として指定されている 社内 LANなどの上のコンピュータとの間で、 TCP/IPコネクションがまだ確立していな い場合、 TCP/IPコネクションを確立することになる。 [0275] Therefore, at this point, it is specified as the destination of the user mode NAT program 500 and the TCP / IP connection that this user mode NAT program 500 is processing. If a TCP / IP connection has not yet been established with a computer on the company LAN, etc., a TCP / IP connection will be established.
一方、すでに確立している場合において、 2回目以降のデータ送信を行うときには 、すでに確立してレ、る TCP/IPコネクションを使用する。  On the other hand, if the data has already been established and the second and subsequent data transmission is performed, the already established TCP / IP connection is used.
[0276] そして、この上述した一連の処理により、インターネット上にあるコンピュータの  [0276] Then, by the above-described series of processes, the computers on the Internet
TCP/IPクライアントプログラム 560は、リモートアクセス用コンピュータ D上で動作して レ、るユーザーモード NATプログラム 500を介して、社内 LANなどの通常はアクセスす ることができないプライベートネットワーク上の別のコンピュータ E上の TCP/IPサーバ 一プログラム 590が待ち受けている TCPポートに接続することができ、任意のデータ を送信すること力 Sできる。  The TCP / IP client program 560 runs on the remote access computer D. The user mode NAT program 500 is another computer on a private network that cannot be normally accessed, such as a corporate LAN. The above TCP / IP server can connect to the TCP port on which one program 590 is listening, and can send arbitrary data.
[0277] 逆に、コンピュータ E上の TCP/IPサーバープログラム 590力 インターネット上にあ るコンピュータの TCP/IPクライアントプログラム 560に対して、すでに成立している TCP/IPコネクションを使ってストリームデータを送信する処理を以下に説明する。 データ送信する処理は、すでに述べた TCP/IPクライアントプログラム 560から TCP/IP サーバープログラム 590へのデータの送信処理と、すなわちユーザーモード NAT50 0における処理とほとんど逆の処理が行われる。  [0277] Conversely, TCP / IP server program 590 on computer E sends the stream data to the TCP / IP client program 560 of the computer on the Internet using the established TCP / IP connection. The processing to be performed will be described below. In the data transmission process, the data transmission process from the TCP / IP client program 560 to the TCP / IP server program 590 described above, that is, a process almost opposite to the process in the user mode NAT 500 is performed.
[0278] まず、コンピュータ E上の TCP/IPサーバープログラム 590にとつて、直接の TCP/IP コネクションの確立先はユーザーモード NATプログラム 500である。 First, with respect to the TCP / IP server program 590 on the computer E, the user mode NAT program 500 is the destination for establishing a direct TCP / IP connection.
このユーザーモード NATプログラム 500は、既存のネットワーク I/F580及び TCP/IP スタック 570を介して、コンピュータ E上の TCP/IPサーバープログラム 590からストリー ムデータが入力されると、このストリームデータを、受信データキュー 509に追加する そして、ユーザーモード NATプログラム 500は、上記受信データキュー 509に 1バイ ト以上の受信データが含まれている場合、その受信データを、最終的に仮想 LAN力 ードを動作させた別の PC上の TCP/IPクライアントプログラム 560に対して、論理的な TCP/IPコネクションを介して、転送データとして送出する。  When stream data is input from the TCP / IP server program 590 on the computer E via the existing network I / F 580 and TCP / IP stack 570, the user mode NAT program 500 receives this stream data as received data. When the received data queue 509 contains received data of 1 byte or more, the user mode NAT program 500 finally operates the virtual LAN mode. It is sent as transfer data to a TCP / IP client program 560 on another PC via a logical TCP / IP connection.
[0279] ここで、データ分割部 505は、受信データキュー 509の先頭から、ユーザーモード NATプログラム 500により、順次、読み込まれたデータ 600を、図 3における「TCP/IP コネクションによる通信先の特定」において説明したように、 IPパケットとして伝送でき る最大サイズ以下のデータとして分割し、データ 601として TCPヘッダ付加部 506へ 出力する。 [0279] Here, the data division unit 505 starts the user mode from the top of the reception data queue 509. The data 600 sequentially read by the NAT program 500 is divided into data smaller than the maximum size that can be transmitted as IP packets, as described in “Specifying the communication destination by TCP / IP connection” in FIG. Output as 601 to TCP header adder 506.
そして、 TCPヘッダ付加部 506は、送信元ポート番号を、コンピュータ E上の TCP/IPサーバープログラム 590のポート番号とし、宛先ポート番号を仮想 LANカード を動作させた別の PC上の TCP/IPクライアントプログラム 560ポート番号として、入力さ れるデータ 601に付カロし、 TCPパケット 602として IPヘッダ ZMACヘッダ付加部 507 へ出力する。  The TCP header adding unit 506 then sets the source port number as the port number of the TCP / IP server program 590 on the computer E, and the destination port number as a TCP / IP client on another PC that operates the virtual LAN card. Program 560 port number is attached to input data 601 and output as TCP packet 602 to IP header ZMAC header adding unit 507.
[0280] 次に、 IPヘッダ/ MACヘッダ付加部 507は、入力される TCPパケット 602 (実際には 複数)に対して、 IPヘッダと MACヘッダとを付加し、仮想 MACフレーム 603として、力 プセル化部 508へ出力する。  [0280] Next, the IP header / MAC header adding unit 507 adds an IP header and a MAC header to the input TCP packet 602 (actually a plurality of packets), and creates a virtual MAC frame 603 as a power packet. Output to the conversion unit 508.
ここで、 IPヘッダにおける送信元 IPアドレスとして、 TCP/IPサーバープログラム 590 が動作してレ、るコンピュータの IPアドレス、宛先 IPアドレスとして TCP/IPクライアントプ ログラム 560が動作しているコンピュータの IPアドレスが付けられる。  Here, the IP address of the computer running the TCP / IP server program 590 as the source IP address in the IP header, and the IP address of the computer running the TCP / IP client program 560 as the destination IP address Is attached.
[0281] そして、カプセル化部 508は、上記生成された仮想 MACフレーム 603を、カプセル 化して、 TCP/IPスタック 530及びネットワーク I/F540を介して、 IPパケットとして仮想[0281] Then, the encapsulating unit 508 encapsulates the generated virtual MAC frame 603, and virtualizes it as an IP packet via the TCP / IP stack 530 and the network I / F 540.
HUB550へ送出する。 Send to HUB550.
これにより、 TCP/IPクライアントプログラム 560は、仮想 LANカードを介して、インタ 一ネット経由で、仮想 HUB550にてスイッチング処理された上記 IPパケットを受信する  As a result, the TCP / IP client program 560 receives the IP packet switched by the Virtual HUB 550 via the Internet via the virtual LAN card.
[0282] また、 TCP/IPプロトコルの仕様として、送信した TCP/IPパケットが送信先に届いた ことを一定時間以内に確認できなレ、場合は、届いてレ、なレ、可能性のある TCP/IPパケ ットをすベて再送信する必要がある、というものがある。 [0282] Also, as a specification of the TCP / IP protocol, it is possible to confirm that the sent TCP / IP packet has arrived at the destination within a certain time. There is a need to retransmit all TCP / IP packets.
図 27において、再送制御部 520は、一度送信した各 TCPパケットについて、送信し た時刻や送信試行回数などの送信情報を送信テーブルとして内部の記憶部に記憶 しておき、タイムアウトが発生すると、この送信テーブルを参照して、この送信情報に 基づレ、て、届いてレ、なレ、可能性のある TCPパケットの再送を行う。 また、それぞれの送信データキュー 510及び受信データキュー 509ともに、最大サ ィズをユーザーが設定するか、プログラムにより固定している。 In FIG. 27, the retransmission control unit 520 stores transmission information such as the transmission time and the number of transmission trials in the internal storage unit as a transmission table for each TCP packet that has been transmitted once. Based on this transmission information, refer to the transmission table and resend TCP packets that have arrived, received, and possibly. In addition, for each of the transmission data queue 510 and the reception data queue 509, the maximum size is set by the user or fixed by a program.
[0283] そして、 TCPの仕様にぉレ、ては、受信装置が送信装置からデータを受信すると、受 信したことを「確認応答」を送信することによって、送信装置に通知しなければならな レ、。本発明の VPNシステムにおけるユーザーモード NATプログラムもこの仕様に従つ ている。 [0283] Then, if the receiving apparatus receives data from the transmitting apparatus, the receiving apparatus must notify the transmitting apparatus by transmitting an "acknowledgment response". Les. The user mode NAT program in the VPN system of the present invention also follows this specification.
また、通常、確認応答パケットには、『受信ウィンドウサイズ広告』と呼ばれる整数値 が含められている。  Normally, an integer value called “reception window size advertisement” is included in the acknowledgment packet.
[0284] 詳しい内容は RFCを参照すると良いが、『受信ウィンドウサイズ広告』の値は、一般 的な NATの場合や、そもそも NATを使用しない場合、実際に TCP/IPコネクションを確 立して通信をしている両端のノードが、現在の『受信ウィンドウサイズ』と呼ばれる空き バッファのサイズを通知する。  [0284] For details, refer to the RFC, but the value of “Receiving window size advertisement” is the value for general NAT or when NAT is not used at all. The nodes at both ends that are doing the notification of the size of the free buffer called the current “Receiving window size”.
しかしながら、ユーザーモード NATプログラムの場合、 NATの内側のノードに対する TCPパケットの受信ウィンドウサイズ広告値は、送信データキュー 510の空きサイズと 65,536との間の小さいほうを指示している。  However, in the case of the user mode NAT program, the advertisement value of the reception window size of the TCP packet for the node inside the NAT indicates the smaller one between the free size of the transmission data queue 510 and 65,536.
[0285] その他の TCP/IPプロトコルにおいて定められている詳細な要件の大半を、ユーザ 一モード NATプログラムは実装している必要がある。  [0285] The user one-mode NAT program needs to implement most of the detailed requirements defined in other TCP / IP protocols.
そして、ユーザーモード NATプログラムが管理する各論理コネクションにはタイムァ ゥトがあり、このタイムアウト時間はユーザーが任意に設定することができる。  Each logical connection managed by the user mode NAT program has a timeout, and this timeout period can be set by the user arbitrarily.
このタイムアウト時間の間において、少なくとも 1ビットでもデータの送受信が無い SE コネクションは自動的に切断される。  During this timeout period, SE connections that do not send or receive data even with at least one bit are automatically disconnected.
[0286] また、上述したユーザーモード NATプログラムにおいて、 NATとして TCP/IPを通過 させるときのことを説明していた力 UDP/IPを通過させる場合、これらの処理の中から 、データ分割 505,データ結合部 501と確認応答の送信と、再送制御部 520と 3つ の機能が無いだけで、後の処理は TCPの場合とほぼ同等である。  [0286] Also, in the above-described user mode NAT program, the force explained for passing TCP / IP as NAT When passing UDP / IP, among these processes, data division 505, data The subsequent processing is almost the same as in the case of TCP, except that the combining unit 501 and the acknowledgment transmission and the retransmission control unit 520 do not have three functions.
すなわち、上記ユーザ NATプログラムは、リモートアクセス処理等において、外部仮 想ネットワーク内にぉレ、て有効である仮想 IPアドレスを有する中継端末として機能し、 例えば、外部の仮想 HUBと、内部 LAN (ローカルな社内 LAN)に接続された端末との 間でデータ転送を行う場合、この中継端末に設ける仮想 LANカードであり、仮想 HUB 力 入力される IPパケットのカプセル化を解除し、仮想 MACフレームを抽出し、この解 除後の仮想 MACフレームの宛先の IPアドレスを参照し、この仮想 MACフレームのデ ータを、 TCPヘッダのシーケンス番号の順に並べ替え、順に宛先の IPアドレスを有す る端末へ送出し (例えば、仮想 IPアドレスからローカルな IPアドレスへの変換処理)、 一方、該端末から入力されるデータを、所定のデータ単位に分割して、宛先の IPアド レスを付加して仮想 MACフレームを構成し、この MACフレームのカプセル化を行レ、、 仮想 HUBへ送出する(ローカル IPアドレス力 仮想 IPアドレスへの変換処理) NAT機 能部を有する構成となっている。したがって、本発明により外部の仮想 HUBと通信を 行うことが可能な、外部仮想ネットワーク内に存在する端末は、外部の仮想 HUB及び ユーザ NATプログラムにより中継を受けることにより、内部 LANに接続された端末との 間で通信を行うことが可能である。 In other words, the user NAT program functions as a relay terminal having a virtual IP address that is effective in the external virtual network in remote access processing, etc., for example, an external virtual hub and an internal LAN (local With a terminal connected to the This is a virtual LAN card installed in this relay terminal when transferring data between them, and decapsulating the IP packet input by the Virtual Hub, extracting the virtual MAC frame, and extracting the virtual MAC frame after this release. Refers to the destination IP address, sorts the data of this virtual MAC frame in the order of the sequence number of the TCP header, and sends it to the terminal that has the destination IP address in order (for example, from the virtual IP address to the local On the other hand, the data input from the terminal is divided into predetermined data units, the destination IP address is added to form a virtual MAC frame, and the MAC frame is encapsulated. Is sent to the Virtual Hub (local IP address force conversion processing to a virtual IP address). Therefore, a terminal that exists in an external virtual network that can communicate with an external Virtual Hub according to the present invention is a terminal connected to the internal LAN by being relayed by the external Virtual Hub and a user NAT program. It is possible to communicate with
[0287] 上述したように、ユーザーモード NATプログラムを用いることにより、条件として示し た( 1 )及び(2)の問題が解決された。  [0287] As described above, by using the user mode NAT program, the problems (1) and (2) indicated as conditions were solved.
ここで、本発明の VPNシステムにおけるクライアントソフトウェア(例えば仮想 LAN力 ードなど)は、カーネルモードで動作することが前提であり、 NATプログラムもカーネ ルモードで動作することが前提である。  Here, the client software (for example, virtual LAN force) in the VPN system of the present invention is premised on operating in the kernel mode, and the NAT program is premised on operating in the kernel mode.
すでに述べてきた様に、これらの双方の機能をユーザーモードに移行させる場合、 別々に移行の処理を行っても全く意味が無ぐ同時に行う必要がある。  As already mentioned, when shifting both of these functions to the user mode, it is completely meaningless to perform the transition process separately.
[0288] この同時に、すなわち NATプログラムと仮想 LANカードとの機能を一体化して、ユー ザ一モード NATプログラムとしたことの利点は、様々なものがあると考えられる力 代 表的なものを以下に示す。  [0288] At the same time, that is, the advantages of integrating the functions of the NAT program and the virtual LAN card into a user-mode NAT program are as follows: Shown in
(A) NATやブリッジなどのカーネルモードでの処理を行う必要があるソフトウェアの インストールや設定が不要になる。  (A) Software that needs to be processed in kernel mode, such as NAT or bridge, is not required to install or configure.
(B)ユーザーが日常業務にも使用しているコンピュータを、そのコンピュータが接続 している既設 IPネットワークへ仮想ネットワーク経由で接続するためのゲートウェイコ ンピュータとして運用する場合において、システム全体へ影響を与える仮想ネットヮ 一クインターフェイスのインストールや NAT、ブリッジなどの設定が不要になり、より容 易に仮想ネットワークと既設 IPネットワークとの間の接続が可能になる。 (B) When operating a computer that a user is using for daily work as a gateway computer for connecting to an existing IP network to which the computer is connected via a virtual network, the entire system is affected. It eliminates the need to install a virtual network interface, NAT, bridge, etc. Connection between the virtual network and the existing IP network is easily possible.
(C)カーネルモードで動作するモジュール、たとえば NAT、ブリッジソフトウェアや、 仮想ネットワークインターフェイスソフトウェア(仮想 LANカード及び仮想 HUB)などに 脆弱性が存在したとき、それらのソフトウェアがカーネルモードで動作する場合は、シ ステム全体が悪意のある者によって乗っ取られる危険がある。  (C) When vulnerabilities exist in modules that operate in kernel mode, such as NAT, bridge software, and virtual network interface software (virtual LAN cards and virtual hubs), if those software operate in kernel mode, There is a risk that the entire system can be taken over by a malicious party.
し力、しながら、ユーザーモードプロセスを使用した場合、そのプロセスを起動するュ 一ザ一の特権を最小限にしておけば、たとえユーザーモードプロセスのプログラムに 脆弱性があっても、そのユーザーの権限を乗っ取ることができるだけでシステム全体 を危険に晒すことが無い。  However, if a user-mode process is used, if the user's privilege to start the process is minimized, even if the user-mode process program is vulnerable, the user's It can only take over authority and does not endanger the entire system.
[0289] なお、仮想 LANカードと、仮想 HUBと、ユーザモード NATとのそれぞれの機能を 実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この 記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行すること により上述した仮想 LANカード,仮想 HUB及びユーザモード NATにおける通信制 御の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、 OSや周辺機 器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームべ一 ジ提供環境 (あるいは表示環境)を備えた WWWシステムも含むものとする。また、「コ ンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、 R OM、 CD— ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等 の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インタ 一ネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された 場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM) のように、一定時間プログラムを保持しているものも含むものとする。 [0289] A program for realizing the functions of the virtual LAN card, the virtual hub, and the user mode NAT is recorded on a computer-readable recording medium, and the program recorded on the recording medium is recorded on the computer. The communication control processing in the virtual LAN card, virtual hub, and user mode NAT described above may be performed by loading the system and executing it. The “computer system” here includes the OS and hardware such as peripheral devices. “Computer system” includes a WWW system equipped with a home page provision environment (or display environment). The “computer-readable recording medium” refers to a storage device such as a flexible disk, a magneto-optical disk, a portable medium such as ROM, CD-ROM, or a hard disk built in the computer system. Furthermore, “computer-readable recording medium” means a volatile memory (RAM) in a computer system that becomes a server or client when a program is transmitted via a network such as the Internet or a communication line such as a telephone line. As described above, it is assumed that the program is held for a certain period of time.
[0290] また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシス テムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータ システムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インター ネット等のネットワーク(通信網)や電話回線等の通信回線 (通信線)のように情報を 伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一 部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステ ムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差 分ファイル (差分プログラム)であっても良レ、。 [0290] The program may be transmitted from a computer system storing the program in a storage device or the like to another computer system via a transmission medium or by a transmission wave in the transmission medium. Here, the “transmission medium” for transmitting a program refers to a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line. Further, the program may be for realizing a part of the functions described above. In addition, the functions described above can be What can be realized in combination with programs already recorded in the system, so-called differential files (difference programs).

Claims

請求の範囲 The scope of the claims
[1] 送信するデータに対して、送信先の仮想 LANカードの MACアドレスと送信元として 自身の MACアドレスとを付加した仮想 MACフレームを生成し、これらをストリームデー タに変換してカプセル化する仮想 LANカードと、このストリームデータを分割して、仮 想 HUBの IPアドレスを宛先とする IPパケットを生成して、情報通信網に送出する  [1] Generates a virtual MAC frame with the MAC address of the destination virtual LAN card and its own MAC address as the source for the data to be transmitted, converts them into stream data, and encapsulates them The virtual LAN card and this stream data are divided, and an IP packet destined for the virtual hub IP address is generated and sent to the information communication network.
TCP/IPスタックとが実装されたクライアント端末と、  A client terminal with a TCP / IP stack,
スイッチング制御する接続口番号と、接続されてレ、る仮想 LANカードの MACァドレ スとの対応表が具備され、前記 IPパケットを受信すると、ストリームデータを復元して、 送信先及び送信元の MACアドレスを参照して、この送信先 MACアドレスに対応する 接続口に、ストリームデータを IPパケット化して送信する仮想 HUBが実装されたサー バ装置と  Correspondence table of connection port number for switching control and MAC address of connected virtual LAN card is provided. When the IP packet is received, the stream data is restored and the destination and source MACs are restored. With reference to the address, a server device with a Virtual Hub that transmits stream data as IP packets at the connection port corresponding to this destination MAC address
を有することを特徴とする仮想プライベートネットワークシステム。  A virtual private network system characterized by comprising:
[2] 前記仮想 LANカードが仮想 MACフレームを生成する際、少なくとも暗号化または電 子署名もしくは双方の処理を施していることを特徴とする請求項 1記載の仮想プライ ペートネットワークシステム。 2. The virtual private network system according to claim 1, wherein when the virtual LAN card generates a virtual MAC frame, at least encryption and / or electronic signature processing are performed.
[3] 前記仮想 HUBが MACフレームを生成する際、少なくとも暗号化または電子署名もし くは双方の処理を施していることを特徴とする請求項 1記載の仮想プライベートネット ワークシステム。 [3] The virtual private network system according to [1], wherein when the Virtual Hub generates a MAC frame, at least encryption, electronic signature, or both processes are performed.
[4] 前記仮想 LANカード力 仮想 HUBとの間に確立される 1つのセッションに対して、複 数の TCP/IPコネクションを設けることを特徴とする請求項 1から請求項 3のいずれか に記載の仮想プライベートネットワークシステム。  [4] The virtual LAN card power according to any one of claims 1 to 3, wherein a plurality of TCP / IP connections are provided for one session established with the virtual hub. Virtual private network system.
[5] 前記仮想 LANカード力 セッションにおける複数の TCP/IPコネクションにおいて、各 [5] For each of the multiple TCP / IP connections in the virtual LAN card power session,
TCP/IPコネクションの品質状態を示す状態変数を検出し、最も良い品質状態の TCP/IPコネクションに MACフレームを出力することを特徴とする請求項 4に記載の仮 想プライベートネットワークシステム。 5. The virtual private network system according to claim 4, wherein a state variable indicating a quality state of the TCP / IP connection is detected, and a MAC frame is output to the TCP / IP connection having the best quality state.
[6] 前記仮想 HUBが、入力される MACフレームを入力順に直列にシフトさせ、入力の 古い順から出力させる送信キューを有しており、  [6] The Virtual Hub has a transmission queue that shifts input MAC frames in series in the order of input and outputs them from the oldest input order.
仮想 HUBが該送信キューに蓄積された MACフレーム数を検出し、この MACフレー ム数に応じて、入力される MACフレームを所定の割合にて破棄し、送信キューに入 力される MACフレーム量を制御することを特徴とする請求項 1から請求項 3のいずれ かに記載の仮想プライベートネットワークシステム。 The Virtual Hub detects the number of MAC frames accumulated in the transmission queue and 4. The method according to claim 1, wherein the input MAC frames are discarded at a predetermined rate according to the number of frames, and the amount of MAC frames input to the transmission queue is controlled. Virtual private network system.
[7] 前記仮想 HUBが送信元毎の通信量を状態変数として保持し、予め設定した設定量 を超えた送信元からの MACフレームを所定の割合にて破棄することを特徴とする請 求項 6に記載の仮想プライベートネットワークシステム。  [7] The claim, wherein the Virtual Hub holds the traffic amount for each transmission source as a state variable, and discards MAC frames from the transmission source exceeding a preset set amount at a predetermined rate. 6. The virtual private network system described in 6.
[8] 仮想 HUBから入力される前記 IPパケットのカプセル化を解除し、仮想 MACフレーム を抽出し、この解除後の仮想 MACフレームの宛先の IPアドレスを参照し、この仮想 [8] Unencapsulate the IP packet input from the Virtual Hub, extract the virtual MAC frame, refer to the destination IP address of the virtual MAC frame after this release,
MACフレームのデータを、 TCPヘッダのシーケンス番号の順に並べ替え、順に宛先 の IPアドレスを有する端末へ送出し、一方、該端末から入力されるデータを、所定の データ単位に分割して、宛先の IPアドレスを付加して仮想 MACフレームを構成し、こ の MACフレームのカプセル化を行レ、、前記仮想 HUBへ送出する NAT機能部を有す る仮想 LANカードを具備することを特徴とする請求項 1から請求項 7に記載の仮想プ ライべートネットワークシステム。 The MAC frame data is rearranged in the order of the sequence number of the TCP header and sent to the terminal having the destination IP address in order. On the other hand, the data input from the terminal is divided into predetermined data units, A virtual MAC frame having a NAT function unit configured to add a IP address to form a virtual MAC frame, encapsulate the MAC frame, and send it to the virtual hub is provided. The virtual private network system according to any one of claims 1 to 7.
PCT/JP2004/018794 2004-12-16 2004-12-16 Virtual private network system WO2006064561A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2004/018794 WO2006064561A1 (en) 2004-12-16 2004-12-16 Virtual private network system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2004/018794 WO2006064561A1 (en) 2004-12-16 2004-12-16 Virtual private network system

Publications (1)

Publication Number Publication Date
WO2006064561A1 true WO2006064561A1 (en) 2006-06-22

Family

ID=36587626

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2004/018794 WO2006064561A1 (en) 2004-12-16 2004-12-16 Virtual private network system

Country Status (1)

Country Link
WO (1) WO2006064561A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008019630A1 (en) * 2006-08-15 2008-02-21 Huawei Technologies Co., Ltd. A method, network and node device for data retransmission in network with double-layer
JP2012257069A (en) * 2011-06-09 2012-12-27 Saxa Inc Telephone system
WO2016125554A1 (en) * 2015-02-03 2016-08-11 日本電気株式会社 Virtual network system, virtual network control method, virtual network function database, integrated control device, control device, and control method and control program therefor
CN107577543A (en) * 2017-09-18 2018-01-12 郑州云海信息技术有限公司 Data read-write method, device, storage system and computer-readable recording medium
CN113507506A (en) * 2021-06-23 2021-10-15 烽火通信科技股份有限公司 Virtual private network system, method and device for constructing same, and readable storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08298535A (en) * 1995-04-27 1996-11-12 Nec Corp Osi communication system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08298535A (en) * 1995-04-27 1996-11-12 Nec Corp Osi communication system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HAKKO, SOFTBANK PUBLISHING INC.: "SoftEther no Shikumi o Saguru", DOS/V MAGAZINE, 15 February 2004 (2004-02-15), pages 190 - 191, XP003006187 *
NOBORI D.: "SoftEther ni yoru Ethernet no Kasoka to Tunneling Tsushin", DAI 45 KAI INFORMATION PROCESSING SOCIETY OF JAPAN PROGRAMMING SYMPOSIUM, 2004 NEN 1 GATSU HAKKO, 2004, pages 147 - 158, XP003006186 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008019630A1 (en) * 2006-08-15 2008-02-21 Huawei Technologies Co., Ltd. A method, network and node device for data retransmission in network with double-layer
CN101127696B (en) * 2006-08-15 2012-06-27 华为技术有限公司 Data forwarding method for layer 2 network and network and node devices
US8804713B2 (en) 2006-08-15 2014-08-12 Huawei Technologies Co., Ltd. Method and system for forwarding data in layer-2 network
US9100351B2 (en) 2006-08-15 2015-08-04 Huawei Technologies Co., Ltd. Method and system for forwarding data in layer-2 network
JP2012257069A (en) * 2011-06-09 2012-12-27 Saxa Inc Telephone system
WO2016125554A1 (en) * 2015-02-03 2016-08-11 日本電気株式会社 Virtual network system, virtual network control method, virtual network function database, integrated control device, control device, and control method and control program therefor
JPWO2016125554A1 (en) * 2015-02-03 2017-11-09 日本電気株式会社 Virtual network system, virtual network control method, virtual network function database, integrated control device, control device, control method and control program therefor
US11665061B2 (en) 2015-02-03 2023-05-30 Nec Corporation Virtual network system, virtual network control method, virtual network function database, orchestration apparatus, control apparatus, and control method and control program of control apparatus
CN107577543A (en) * 2017-09-18 2018-01-12 郑州云海信息技术有限公司 Data read-write method, device, storage system and computer-readable recording medium
CN113507506A (en) * 2021-06-23 2021-10-15 烽火通信科技股份有限公司 Virtual private network system, method and device for constructing same, and readable storage medium
CN113507506B (en) * 2021-06-23 2022-07-29 烽火通信科技股份有限公司 Virtual private network system, construction method and device thereof, and readable storage medium

Similar Documents

Publication Publication Date Title
US8250643B2 (en) Communication device, communication system, communication method, and program
CN112583647B (en) Method and apparatus for common control protocol for wired and wireless nodes
US9154512B2 (en) Transparently proxying transport protocol connections using an external server
US8938553B2 (en) Cooperative proxy auto-discovery and connection interception through network address translation
CN102238230B (en) Method and system for offloading tunnel packet processing in cloud computing
US8473620B2 (en) Interception of a cloud-based communication connection
JP3343064B2 (en) Pseudo network adapter for capturing, encapsulating and encrypting frames
US6708218B1 (en) IpSec performance enhancement using a hardware-based parallel process
EP1333642B1 (en) Method and system for integrating performance enhancing functions in a virtual private network (VPN)
US7526577B2 (en) Multiple offload of network state objects with support for failover events
EP2362586B1 (en) System and method for data communication between a user terminal and a gateway via a network node
CN108601043B (en) Method and apparatus for controlling wireless access point
US20040243703A1 (en) Cooperative proxy auto-discovery and connection interception
EP1443731A2 (en) Method and system for providing security in performance enhanced network
EP1443713A2 (en) Method and system for utilizing virtual private network (VPN) connections in a performance enhanced network
EP1844402A2 (en) Techniques for migrating a point to point protocol to a protocol for an access network
AU2007320794B2 (en) Selective session interception method
JP2005085284A (en) Multiple offloads of network state objects that support failover events
WO2006064561A1 (en) Virtual private network system
US7969998B2 (en) Method and system for tunneling data using a management protocol
US7761508B2 (en) Access device-based fragmentation and interleaving support for tunneled communication sessions
KR102736167B1 (en) One-way High Speed Transmission System for Large File Data in the Separated Network Environment
JP2002271417A (en) Tunneling device
JP2006279771A (en) Method and program for packet transmission
CN116320074A (en) Access method and device based on TCP protocol and electronic equipment

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 04807153

Country of ref document: EP

Kind code of ref document: A1