WO2005039150A1 - 通信装置およびその通信方法ならびにプログラム - Google Patents

通信装置およびその通信方法ならびにプログラム Download PDF

Info

Publication number
WO2005039150A1
WO2005039150A1 PCT/JP2004/015756 JP2004015756W WO2005039150A1 WO 2005039150 A1 WO2005039150 A1 WO 2005039150A1 JP 2004015756 W JP2004015756 W JP 2004015756W WO 2005039150 A1 WO2005039150 A1 WO 2005039150A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
communication
connections
header
information
Prior art date
Application number
PCT/JP2004/015756
Other languages
English (en)
French (fr)
Inventor
Yohei Hasegawa
Tutomu Murase
Original Assignee
Nec 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 Nec Corporation filed Critical Nec Corporation
Priority to US10/576,789 priority Critical patent/US8228919B2/en
Priority to JP2005514882A priority patent/JP4656415B2/ja
Publication of WO2005039150A1 publication Critical patent/WO2005039150A1/ja

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation

Definitions

  • the present invention relates to a communication device, a communication method thereof, and a program, and more particularly to a communication device that realizes communication by distributing data to a plurality of connections, a communication method thereof, and a program.
  • gateways are installed on the LAN (Local Area Network) where the transmitting terminal is located and the LAN where the receiving terminal is located.
  • Control protocol The connection data is distributed to each communication path in bucket units at the gateway near the sending terminal, and at the gateway near the receiving terminal, there is a method that corrects the packet order reversal according to the TCP sequence number.
  • the following methods exist to efficiently use multiple communication lines and improve the line utilization rate.
  • the first method is to add functions to the terminal's TCP and change the communication that used to use a single TCP connection to use multiple TCP connections (multipath TCP, multipath proxy server).
  • communication between the sending terminal and the receiving terminal was performed in one communication flow
  • the communication protocol of the sending terminal divides the communication data of one communication flow, distributes it to multiple communication flows, and the receiving terminal restores this to the original data
  • a new header is added to the packet data of the TCP / IP packet as restoration information to be transmitted, and the data is transmitted in each communication flow, and received from multiple communication flows in the communication protocol of the receiving terminal. Restore one communication flow with reference to the restored data and restore the original data.
  • the first problem is that, in the first method, a new header is added in the packet to divide and restore the data, so that the header becomes large and the communication efficiency decreases.
  • the second problem is that in the first method, a new header is added to the packet to split and restore the data, so the header becomes large, and the segmentation for dividing the data into individual packets changes. Therefore, applications that do not consider changes in segmentation will not be able to communicate normally.
  • the proxy server In particular, if the first method is used for the proxy server and the data received on one connection is distributed over multiple connections and sent, re-segmentation is always required.
  • the third problem is that if there is a device outside the control management range that is not aware of this method in the middle of the network path used by the first method communication device and the segmentation changes, the first method That is, communication cannot be performed.
  • the fourth problem is that in the first method, when data is divided and transmitted in parallel over multiple connections, data is passed to the TCP connection processing process in packet units, so the number of write instructions issued is large. In other words, the processing load increases. Disclosure of the invention
  • an object of the present invention is to provide a communication device and a communication device capable of efficiently realizing communication involving flow division and restoration by preventing a header from becoming large. To provide a communication method and a program.
  • a communication device is a communication device that realizes communication by distributing data over a plurality of connections, and the device restores the data distributed on each connection. For storing information for use in the header.
  • the communication method according to the present invention is a communication method for realizing communication by distributing data to a plurality of connections, and the method includes information for restoring data distributed to each connection in a header. It is characterized by including processing to store.
  • a program according to the present invention is a program for causing a computer to execute a communication method for realizing communication by distributing data to a plurality of connections.
  • the program restores the data distributed to each connection. And a process of storing information for the inside of the header.
  • FIG. 1 is a block diagram showing a configuration of a first embodiment of a communication device according to the present invention.
  • FIG. 2 is a block diagram showing a data flow from the transmitting terminal 2-1 to the receiving terminal 2-2 in the first embodiment.
  • FIG. 3 is a diagram showing a data division method and a divided block in the first embodiment.
  • FIG. 4 is a diagram illustrating an example in which data restoration information is stored in a TCP header in the data division restoration processing unit of the first embodiment.
  • FIG. 5 is a format diagram of the time stamp option of the TCP.
  • FIG. 6 is a flowchart showing an outline of the processing of the transmission terminal 2-1 in the first embodiment.
  • FIG. 7 is a flowchart showing an outline of the processing of the receiving terminal 2-2 in the first embodiment.
  • FIG. 8 is a flowchart showing an outline of the processing of the transmission terminal 2-1 in the second embodiment.
  • FIG. 9 is a flowchart showing an outline of the processing of the receiving terminal 2-2 in the second embodiment.
  • FIG. 10 is a block diagram showing a data flow between the transmitting terminal 21-1, the proxy server 21-3, and the receiving terminal 21-2 in the third embodiment.
  • FIG. 11 is a diagram showing an example in which data restoration information is stored at the beginning of a block in the data division restoration processing unit 1-2 of the fourth embodiment.
  • FIG. 12 is a flowchart showing an outline of the processing of the transmission terminal 2-1 in the fourth embodiment.
  • FIG. 13 is a flowchart showing an outline of the processing in the receiving terminal 2-2 in the fourth embodiment.
  • FIG. 14 is a block diagram showing a data flow between the transmitting terminal and the receiving terminal when the communication rate is high in the fifth embodiment.
  • FIG. 16 is a flowchart showing an outline of the processing of the transmission terminal 2-1 in the fifth embodiment.
  • FIG. 17 is a flowchart showing an outline of the processing of the receiving terminal 2-2 in the fifth embodiment.
  • FIG. 1 is a block diagram showing a configuration of a first embodiment of a communication device according to the present invention.
  • the communication device 1 is configured to include an application processing unit 1-1, a data division restoration processing unit 1-2, and a network processing unit 113.
  • Application processing unit 1-1 processes any application program c
  • It has a function of sending data to the data division / restoration processing unit 112 when transmitting data, and receiving data from the data division / restoration processing unit 112 when receiving data.
  • the network processing unit 13 outputs the data of the TCP connection received from the data division restoration processing unit 1-2 when transmitting data to the network, and receives the data from the network when receiving data. It has a function to send the data of the TCP connection to the data division restoration processing unit 112.
  • FIG. 2 is a block diagram showing a flow of data from the transmitting terminal 2-1 to the receiving terminal 2-2 in the first embodiment
  • FIG. 3 is a diagram showing a data dividing method and a divided block in the first embodiment.
  • FIG. In Fig. 2 when sending data from the transmitting terminal 2-1 to the receiving terminal 2-2, the transmitting terminal 2-1 divides the data to be transmitted into a plurality of blocks as shown in Fig. 3, and The information for restoration is stored in the TCP header and sent to the receiving terminal 2-2 using multiple TCP connections.
  • data 3-1 is divided into four blocks (1) to (4), two TCP connections (1) and (2) are used, and TCP connection (1) uses block (1).
  • TCP connection (2) shows an example of sending blocks (2) and (4).
  • the receiving terminal 2-2 which has received the block from the transmitting terminal 2-1, refers to the restoration information stored in the TCP header, identifies the divided blocks, and arranges the blocks in order, thereby obtaining a plurality of blocks. Restore the original data from the block.
  • receiving terminals 2-2 receive from TCP connections (1) and (2). Blocks (1) to (4) in order and restore the original data.
  • FIG. 4 is a diagram illustrating an example in which the data division restoration processing unit according to the first embodiment stores the restoration information in the TCP header.
  • the transmitting terminal 2-1 divides the data, generates a plurality of blocks, and stores the block number in a part of the TCP time stamp (Timestamp) option.
  • Fig. 5 is a format diagram of the time stamp option of TCP.
  • the TCP time stamp is stored in the option field of the TCP header in the format shown in Fig. 5.
  • the time stamp options of TCP include a kind (K ind), a length (Length), a TS value (TS val), and a TS Echo reply (TS eer). It consists of.
  • the figure shows a case where the type is 8 and the length is 10 bytes.
  • 1 byte is used as the restoring information of the data to store the block number, and the remaining 3 bytes are used for the TS Va1 ue. Of these, store the upper 3 bytes.
  • FIG. 6 is a flowchart showing an outline of the processing of the transmission terminal 2-1 in the first embodiment.
  • the transmission terminal 2-1 starts processing by the application / case processing unit 11-1 performing arbitrary processing and instructing the data division / reconstruction processing unit 1-2 to transmit data. Is done.
  • the data division restoration processing unit 112 divides the data received from the application processing unit 111 into an arbitrary number of blocks. Move to processing 5—2.
  • processing 5-2 the data division restoration processing unit 1-2 divides the divided block into an arbitrary Distribute to TCP connection. Move to step 5—3.
  • the data division / reconstruction processing unit 1-2 instructs the network processing unit 1-3 to transmit a block.
  • the block number being transmitted is stored as information to be restored in the time stamp option field in the data TCP header.
  • different books are not stored in the same packet.
  • the network processing unit 113 sends a block to the network. When all of the blocks have been transmitted and any processing of the application processing unit 111 has been completed, the processing is terminated.
  • FIG. 7 is a flowchart showing an outline of the processing of the receiving terminal 2-2 in the first embodiment.
  • the receiving terminal 2-2 starts the process by receiving the block transmitted by the transmitting terminal 2-1 from the network. .
  • the network processing unit 113 sends the block to the data division restoration processing unit 112, and the data division restoration processing unit 112 stores the block in the time stamp option field in the TCP header. Refers to the block number, sorts it, and restores the original data. Move to processing 6—2.
  • processing 6-2 the data restored by the data division / restoration processing unit 112 is sent to the application processing unit 111, and the application processing unit 111 executes arbitrary processing. All the blocks are passed to the application processing unit 111, and the process ends when any processing of the application processing unit 111 ends.
  • the above is the contents of the processing of the communication terminal in the first embodiment according to the present invention.
  • information for dividing data and restoring the data is included as a part of the application data. Therefore, the size of the application data for storing the data is large.
  • the method of storing the restoration information in the time stamp option In addition, in the TCPZIP (Transm issi on Control 1 Protocol / Internet Protocol) header, the part that contains redundant data and the data length can be compressed or reduced. An embodiment in which restoration information is stored in a location is also possible.
  • TCPZIP Transm issi on Control 1 Protocol / Internet Protocol
  • an IP (Internet Protocol) packet has a fragment option to split one packet, but currently, a path M TU (Maximum Tran sfer Unit) discovery (Path MTU D isc If the (overy) option is commonly used, this fragment field is not used, and embodiments that use this instead of the TCP timestamp option field are possible.
  • a path M TU D Maximum Tran sfer Unit
  • the communication device 1 includes an application processing unit 111, a data division restoration processing unit 1-2, and a network processing unit 113.
  • the application processing unit 1-1 refers to the maximum bucket size set by the data division / reconstruction processing unit 1-2, and communicates by dividing data based on the maximum bucket size. It has a function of processing a program and sending data to the data division / restoration processing unit 112 when transmitting data, and receiving data from the data division / restoration processing unit 112 when receiving data.
  • the data division restoration processing unit 1-2 refers to the maximum packet size set in each of the multiple interfaces of the network processing unit 1-3, and publishes the smallest maximum packet size to the application as a representative value.
  • the data is received from the application processing unit 111, and the data is decomposed into blocks whose size is a multiple of the representative value of the maximum packet size (however, the data is divided into blocks based on a multiple of the maximum packet size).
  • the fraction generated at this time does not need to be a multiple of the representative value of the maximum bucket size), information for restoring this block to the original data is stored in the TCP header, and the representative value of the maximum packet size is used.
  • the best possible Using an arbitrary number of TCP connections set as a large packet size, send the data to the network processing unit 13 and, if receiving data, the data of multiple TCP connections received from the network processing unit 13 It has a function to refer to the restoration information stored inside the TCP header, identify the divided blocks, restore them to the data before division by combining them, and send them to the application processing unit 1-1.
  • the network processing unit 13-3 When transmitting data, the network processing unit 13-3 outputs the data of the TCP connection received from the data division / reconstruction processing unit 1-2 to the network, and when receiving data, the TCP connection input from the network. It has a function to send the connection data to the data division restoration processing unit 1-2.
  • FIG. 2 is a block diagram showing a flow of data transmission from the transmission terminal 2-1 to the reception terminal 2-2 in the second embodiment.
  • the sending terminal 2-1 investigates the maximum packet size that can be used for multiple TCP connections used for communication, and The small maximum packet size is used as a representative value for each TCP connection, and as shown in Fig. 3, the data to be transmitted is decomposed into blocks whose size is based on a multiple of the maximum value of the maximum packet size.
  • the fraction generated when dividing into blocks based on a multiple of the maximum packet size need not be a multiple of the representative value of the maximum bucket size), and information for restoring this is stored in the TCP header, It is sent to the receiving terminal 2-2 using multiple TCP connections in which the representative value of the maximum packet size is set.
  • TCP connection (1) blocks (1) and (3) are used. Is transmitted, and TCP connection (2) shows an example of transmitting blocks (2) and (4).
  • FIG. 4 is a diagram showing an example in which data restoration information is stored inside a TCP header in the data division restoration processing unit 12 of the second embodiment.
  • the transmitting terminal 2-1 divides the data, generates a plurality of blocks, and stores the block number in a part of the TCP time stamp.
  • the TCP time stamp option is stored in the option field of the TCP header in the format shown in FIG.
  • FIG. 8 is a flowchart showing an outline of the processing of the transmission terminal 2-1 in the second embodiment.
  • the transmission terminal 2-1 starts the processing by the application processing unit 1-1 performing an arbitrary process and instructing the data division / reconstruction processing unit 1-2 to transmit data.
  • the data division restoration processing unit 112 checks the maximum bucket size available for each TCP connection, and determines the smallest maximum packet size among the maximum packet sizes as a representative value. When using each TCP connection, this representative value can be used.
  • the data received from the application processing unit 111 is divided into blocks whose size is based on a multiple of the representative value of the maximum packet size (however, the fraction generated when the data is divided into blocks based on a multiple of the maximum packet size is the maximum bucket). It does not have to be a multiple of the representative value of the size), and move to processing 7-2.
  • the data division / restoration processing unit 1-2 distributes the divided block to an arbitrary TCP connection. Move to step 7—3.
  • the data division restoration processing unit 1_2 Instructs to send a heap mouth.
  • the number of the transmitting block is stored as information for restoration in the time stamp option field in the data TCP header. However, if the block number changes, do not store them in the same packet.
  • the network processing unit 1-3 sends the block to the network. When all the blocks have been transmitted and any processing of the application processing unit 1-1 has been completed, the processing ends.
  • FIG. 9 is a flowchart showing an outline of the processing of the receiving terminal 2-2 in the second embodiment.
  • the receiving terminal 2-2 starts processing by receiving the block transmitted by the transmitting terminal 2-1 from the network. '
  • the network processing unit 1-3 sends the block to the data division / restoration processing unit 1-2, and in the data division / restoration processing unit 1-2, the block stored in the time stamp option field in the TCP header Refer to the numbers, sort them, and restore the original data. Move to processing 8-2.
  • processing 8-2 the data restored by the data division / restoration processing unit 1-2 is sent to the application processing unit 1-1, and the application processing unit 1-1 executes arbitrary processing. All the blocks are passed to the application processing unit 1-1, and the process ends when any processing of the application processing unit 111 ends.
  • MSS MoXSegment Size
  • the configuration of the communication device according to the third embodiment of the present invention is the same as that of the second embodiment shown in FIG. Therefore, a description will be given here with reference to FIG. 1 showing the configuration of the second embodiment.
  • a proxy server 21-3 and a receiving terminal 21-2 which are communication devices using the communication method of the second embodiment according to the present invention, and a conventional TCP / IP
  • the communication of the transmission terminal 21-1 that realizes the communication by the communication will be described.
  • the proxy server 21-3 is an example of the communication device 1 in FIG.
  • FIG. 10 is a block diagram showing a data flow between the transmitting terminal 21-1, the proxy server 21_3, and the receiving terminal 21-2 in the third embodiment.
  • a proxy server for realizing communication between the transmitting terminal 211-1 and the receiving terminal 21-2 is operating.
  • the packets (1) to (4) received by the conventional TCP / IP communication are transferred and transmitted to the receiving terminals 21-12.
  • the proxy server 21-3 is the smallest of the maximum packet sizes available for TCP connection (0), TCP connection (1), and TCP connection (2), which are TCP connections related to communication. Set the bucket size as a representative value of the maximum packet size that can be used in this communication. The proxy server 21-3 notifies the transmitting terminal 21_1 and the receiving terminal 21-2 of the representative value of the maximum packet size that can be used in this communication, and opens a TCP connection.
  • the transmitting terminal transmits the packet to the proxy server 21_3 using a packet having a size equal to or smaller than the packet size notified from the proxy server 21-3.
  • the proxy server 21-3 transfers the data received from the sending terminal 21-1 and sends a packet to the receiving terminal 21-2 using the TCP connection (1) and the TCP connection (2). .
  • the transmitting terminal 21-1 transmits packets (1) to (4) to the proxy server 21-3 by one TCP connection (0) according to the conventional technology, and the proxy server 21-1 3 distributes the packet received by the TCP connection (0) to the TCP connection (1) and the TCP connection (2) and transmits the packet to the receiving terminal 21-2.
  • each of the TCP Communication is performed using the smallest of the maximum bucket sizes available for each connection.
  • the restoration information is stored inside the existing TCP header, so the communication data does not increase.
  • a packet received through one TCP connection is used as a proxy server that sends out data using multiple TCP connections as in the third embodiment, the same data as the packet received as a result is used. It can be sent as it is, has high affinity with existing communication, and is likely to be able to perform normal communication.
  • the communication device 1 includes an application processing unit 111, a data division restoration processing unit 112, and a network processing unit 1-3.
  • the application processing unit 1-1 processes an arbitrary application program, sends data to the data division restoration processing unit 112 when transmitting data, and data division restoration processing unit when receiving data. It has a function to receive data from 112.
  • the data division restoration processing unit 112 receives data from the application processing unit 111, divides the data into an arbitrary number of blocks, and restores the blocks to the original data. As information to perform the connection, a sequence number indicating the position of the block in the original data and the size of the block are added to the beginning of the block, each block is assigned to an arbitrary number of TCP connections, and the TCP connection is established.
  • sending data to the network processing unit and receiving data refer to the sequence number stored at the beginning of the block and the size of the block for the data of multiple TCP connections received from the network processing unit Then, it has the function of restoring the data before division by aligning and sending it to the application processing unit 1-1.
  • FIG. 2 is a block diagram showing a flow of data from a transmitting terminal 2-1 to a receiving terminal 2-2 in the fourth embodiment
  • FIG. 11 is a diagram showing blocks into which data is divided in the fourth embodiment. It is.
  • Fig. 2 when data is sent from the transmitting terminal 2-1 to the receiving terminal 2-2, the transmitting terminal 2-1 divides the data to be transmitted into a plurality of blocks as shown in Fig. 3 and restores it. As information, a sequence number indicating the position of the block in the original data and the size of the block are added to the beginning of the block as shown in Fig. 11, and this is used by the receiving terminal using multiple TCP connections. Send to 2—2.
  • TCP connection (1) blocks (1) and (3) are used. Is transmitted, and TCP connection (2) shows an example of transmitting blocks (2) and (4).
  • Receiving terminal 2-2 which receives the block from transmitting terminal 2-1, refers to the sequence number stored at the beginning of the block and the size of the block, identifies the divided blocks, and reorders the blocks. Restore original data from multiple blocks by aligning In FIG. 2, the receiving terminal 2-2 sorts the blocks (1) to (4) received from the TCP connections (1) and (2) in order and restores the original data.
  • FIG. 11 is a diagram illustrating an example in which the data restoration information is stored at the beginning of a block in the data division restoration processing unit 112 of the fourth embodiment.
  • the transmitting terminal 2-1 divides the data as shown in FIG. 3 to generate a plurality of blocks, and then, as shown in FIG. 4, a sequence number indicating a position in the data before the block is divided, and Add the size of the block to the beginning of the book.
  • FIG. 12 is a flowchart showing an outline of the processing of the transmission terminal 2-1 in the fourth embodiment. It is.
  • the transmission terminal 2-1 starts processing when the application processing unit 1-1 performs arbitrary processing and instructs the data division / restoration unit 1-2 to transmit data.
  • the data division restoration processing unit 112 divides the data received from the application processing unit 111 into an arbitrary number of blocks, and uses a data sequence as information for restoring the data. Add the number and block size to the beginning of the block. Processing 1 Move to 0—2.
  • processing 10-2 the data division restoration processing section 1-2 distributes the divided blocks to any TCP connection. Processing 1 Go to 0—3.
  • Instruct 3 to send a block.
  • FIG. 13 is a flowchart showing an outline of the processing of the receiving terminal 2-2 in the fourth embodiment.
  • the receiving terminal 2-2 starts processing by receiving the block transmitted by the transmitting terminal 2-1 from the network.
  • processing 11-1 the network processing unit 1-3 sends the block to the data division / restoration processing unit 112, and in the data division / restoration processing unit 112, the sequence number and the block size stored at the head of the block Refer to and arrange the blocks to restore the original data. Processing 1 Move to 1-2.
  • processing 111 the data restored by the data division / restoration processing unit 112 is sent to the application processing unit 111, and the application processing unit 111 executes arbitrary processing. All the blocks are passed to the application processing unit 111, and the process is terminated when arbitrary processing of the application processing unit 111 is completed.
  • the data is divided into a plurality of blocks, and the length of the divided blocks is stored as information for restoring the data. Even if there is an unexpected proxy server in the communication path and the data segmentation is changed, the data can be restored at the receiving terminal.
  • the communication device 1 includes an application processing unit 1-1, a data division restoration processing unit 1-2, and a network processing unit 1-3.
  • the application processing unit 1-1 processes an arbitrary application program, sends data to the data division / restoration processing unit 112 when transmitting data, and data division / restoration when receiving data. It has a function of receiving data from the processing unit 112.
  • the data division restoration processing unit 112 receives the data from the application processing unit 111, and uses an arbitrary number of TCP connections to transmit data. Investigate the communication rate of each TCP connection. If the communication rate is low, divide the data into smaller blocks; if the communication rate is high, divide the data into larger blocks, and use any number of TCP connections. The block is sent to the network processing unit 13 using the YON, and when data is received, the data of multiple TCP connections received from the network processing unit 1-3 are stored in the TCP header. By referring to the restoration information, the divided blocks are identified, and by combining them, the data before restoration is restored. It has a function to send to 1.
  • the network processing unit 1-3 When transmitting data, the network processing unit 1-3 outputs the data of the TCP connection received from the data division / reconstruction processing unit 1-2 to the network, and when receiving data, the TCP connection input from the network. It has the ability to send Isseki de connection to the data division restoration processing unit 1 one 2.
  • FIG. 2 is a block diagram showing a data flow from a transmitting terminal 2-1 to a receiving terminal 2-2 in the fifth embodiment
  • FIG. 14 is a transmitting terminal in the fifth embodiment when the communication rate is high.
  • FIG. 15 is a block diagram showing the flow of data between a terminal and a receiving terminal. ⁇
  • FIG. 6 is a diagram illustrating a data division method when a communication rate is high and divided blocks.
  • the data is divided into four blocks (1) to (4) as shown in Fig. 3 and two TCP connections (1), (2 ) Using TCP connection 1 to transmit blocks (1) and (3), and TCP connection 2 to transmit blocks (2) and (4).
  • the data is divided into two blocks (1) and (2) as shown in Figure 15 and two TCP connections (1) and (2) are used as shown in Figure 14.
  • the block 13-1 is transmitted in the TCP connection (1), and the block 13-2 is transmitted in the TCP connection (2).
  • the receiving terminal 2-2 which has received the block from the transmitting terminal 2-1, refers to the restoration information stored in the TCP header, identifies the divided blocks, and arranges the blocks in order to obtain a plurality of blocks. Restore the original data from the block.
  • the receiving terminal 2-2 sorts the blocks (1) to (4) received from the TCP connections (1) and (2) in order and restores the original data.
  • the receiving terminal 2-2 sorts the blocks 13-1, 3-1 and 13-2 received from the TCP connections (1), (2) in order, and restores the original data.
  • FIG. 4 is an example in which data restoration information is stored inside a TCP header in the data division restoration processing unit 1-2 of the fifth embodiment.
  • the transmitting terminal 2-1 divides the data and generates a plurality of blocks, and then uses the block number as a TCP time stamp. Store as part of the option.
  • the TCP timestamp option is stored in the option field of the TCP header in the format shown in Fig. 5.
  • TS Va1 ue 1 byte is used as the restoring information of the data and used to store the block number, and TS Va1 ue is stored in the remaining 3 bytes. Of these, stores the upper 3 bytes.
  • FIG. 16 is a flowchart showing an outline of the processing of the transmission terminal 2-1 in the fifth embodiment.
  • the processing is started by the application processing unit performing arbitrary processing and instructing the data division / restoring unit 12 to transmit data.
  • the data division restoration processing section 112 divides the data received from the application processing section 1-1 into an arbitrary number of blocks. However, the communication rate of the TCP connection used at this time is investigated, and if the total is low, the data is divided into small blocks, and if the total is high, the data is divided into larger blocks. Processing 14 Move to 2.
  • the data division restoration processing unit 1-2 distributes the divided blocks to an arbitrary TCP connection. Processing 14 Move to 3.
  • the data division restoration processing unit 1-2 instructs the network processing unit 13 to transmit a block.
  • the transmitting block number is stored as information for restoration in the time stamp option field in the data TCP header. However, if the block number changes, do not store it in the same packet.
  • the network processing unit 1-3 sends the block to the network. After all blocks have been sent and any processing of the application To end.
  • FIG. 17 is a flowchart showing an outline of the processing of the receiving terminal 2-2 in the fifth embodiment.
  • the receiving terminal 2-2 starts processing by receiving the block transmitted by the transmitting terminal 2-1 from the network.
  • the network processing unit 1-3 sends the block to the data division restoration processing unit 1-2, and in the data division restoration processing unit 1-2, it stores it in the time stamp option field in the TCP header. Refers to the block number specified, sorts it, and restores the original data. Processing 1 Move to 5-2.
  • the data restored by the data division / restoration processing section 112 is sent to the application processing section 111, and the application processing section 1-1 executes an arbitrary processing. All the blocks are passed to the application processing unit 111, and the process ends when the arbitrary processing of the abridgement processing unit 1-1 ends.
  • the above is the contents of the processing of the communication terminal in the fifth embodiment according to the present invention.
  • data that is divided into multiple TCP connections is distributed without depending on the communication rate, and when data is transmitted over different TCP connections, the data is passed to the TCP connection.
  • the processing load was large due to the large number of instructions.
  • the size of the block passed to the TCP connection is increased to increase the size passed by one transmission instruction.
  • the data division restoration processing unit 112 investigates the communication rate of the TCP connection to be used, and divides the data into small blocks when the communication rate is low. However, when the communication rate is high, the data is divided into larger blocks, but instead, the size of the block to be divided is fixed, and when the communication rate is low, one write instruction is issued. To pass one block to one TCP connection, and if the communication rate is high, 2 Q
  • the data division / recovery processing unit 112 investigates the communication rate of the TCP connection to be used when transmitting data, but checks the communication rate by referring to the TCP congestion window.
  • An embodiment is also possible that makes a guess and replaces the investigation of the communication rate.
  • the data division / recovery processing unit 112 checks the communication rate of the TCP connection to be used when transmitting data. By assuming that the rate is low and assuming that the communication rate increases as time elapses from the start of communication, an embodiment that can be used instead of investigating the communication rate is also possible.
  • the data division / recovery processing unit 1-2 checks the communication rate of the TCP connection to be used when transmitting data, but depending on the size of the data passed from the application processing unit, If this data is large, it is assumed that the communication rate is high, and if this data is small, it is assumed that the communication rate is low.
  • the communication device 1 of FIG. 1 includes the application processing unit 111, the data division restoration processing unit 102, and the network processing unit 113.
  • the memory 18 and the control unit 19 it is also possible to add the memory 18 and the control unit 19 to the invention as a program invention.
  • the memory 18 stores the programs shown in the flowcharts of FIGS. 6 to 9, FIG. 12, FIG. 13, FIG. 13, FIG. 16 and FIG.
  • the control unit 19 reads out these programs stored in the memory 18, and according to the programs, the application processing unit 11-1, the data division restoration processing unit 102, and the network processing unit 1-3. Control.
  • OS I such as TCP, SCTP (Street Control Transprotocol), UDP (User D atagr am Protocol), DCCP (Datag am Congestion Control Protocol)
  • the present invention can be applied to a communication device using a connection based on a four-layer transport protocol, a communication method therefor, and a program.
  • a new header is used for data division and restoration. Need not be stored in the bucket, and the header does not become large.
  • the available segment size of each flow related to communication is investigated, and the segment size used in each flow is determined based on the result of the investigation. Even when transferring data to another flow, it is not necessary to re-segment the data and normal communication can be performed.
  • the size of a block is stored in information used for dividing and restoring a data flow, and this is referred to at the time of restoring data. Even if re-segmentation is performed, data can be restored and normal communication can be performed.
  • the amount of data to be passed to the connection processing process at a time is adjusted, and one packet is used when the communication rate is small. Data is transferred in units, but when the communication rate increases, multiple packets are transferred together to the connection, so the number of write commands issued to the connection processing process can be reduced, and this processing can be performed. The load can be reduced.

Abstract

 複数のコネクションにデータを分散させて通信を実現する通信装置(1)において、データ分割復元処理部(1−2)はデータを送信する場合にはアプリケーション処理部(1−1)からデータを受け取り、データを任意の数のブロックに分割し、このブロックを元のデータに復元するための情報をTCPヘッダ内部に格納し、任意の数のTCPコネクションを利用してネットワーク処理部(1−3)へと送り、データを受信する場合にはネットワーク処理部(1−3)から受け取った複数のTCPコネクションのデータについて、TCPヘッダ内部に格納された復元情報を参照し、分割されたブロックを識別し、これをあわせることにより分割前のデータに復元し、アプリケーション処理部(1−1)に送る。

Description

明細書 通信装置およびその通信方法ならびにプログラム 技術分野
本発明は、 通信装置およびその通信方法ならびにプログラムに関し、 特に複数 のコネクションにデータを分散させて通信を実現する通信装置およびその通信方 法ならびにプログラムに関する。 背景技術
従来、 送信端末と受信端末間の通信で用いられる 1つの通信フローのデータを 複数のフローに分岐させて、 最後に復元する通信方法がある。 例えば、 送信端末 が置かれた LAN (L o c a l Ar e a Ne two r k) と、 受信端末が置 かれた LANに、 それぞれゲートウェイを設置し、 送信端末から送出された TC P (T r an sm i s s i on C on t r o l P r o t o c o l ) コネク ションのデータを送信端末近傍のゲートウェイにおいてバケツト単位でそれぞれ の通信経路に振り分け、 受信端末近傍のゲートウェイでは、 TCPのシーケンス 番号にしたがってパケットの順序逆転を補正する方法がある (特開 2000 - 2 61478号公報参照)。
ただし、 この方法では、 端末の TdPは、 1つの通信経路で使用されることを 前提としている動作を実現しているため、 通信経路の性能を十分に発揮できない 問題がある。
複数の通信回線を効率的に利用し、 回線利用率を向上させる方法としては、 以 下の方法が存在する。
第 1の方法は、 端末の TCPに機能を追加し、 従来一本の TCPコネクション を用いていた通信を複数の TCPコネクションを利用するように変更する方法で ある (マルチパス TCP、 マルチパスプロキシサーバ く Mu 1 t i p a t h P r o x y S e r v e r〉、 特開 2003— 1 1 0604号公報参照)。
この方法では送信端末と受信端末間の通信で 1つの通信フローで行われていた データの通信を複数の通信フローに分割して並列的に送る方法がある。 送信端末 から受信端末へとデ一タを送信する場合、 送信端末の通信プロトコルは 1つの通 信フローの通信データを分割し、 複数の通信フローに振り分け、 受信端末がこれ を元のデータに復元するための復元情報として新たなヘッダを T C P / I Pのパ ケットのパケットデータ内に付加して、 それぞれの通信フローにてデ一夕を送信 し、 受信端末の通信プロトコルでは複数の通信フローから受信したデータの復元 情報を参照して 1つの通信フローを復元し、 元のデータを復元する。
第一の問題は、 第一方式では、 データの分割および復元のため、 パケット内に 新たなヘッダを付け加えるため、 へッダが大きくなつてしまい通信効率が低下す ることである。
第二の問題は、 第一方式では、 データの分割および復元のため、 パケット内に 新たなヘッダを付け加えることによりヘッダが大きくなつてしまい、 データをパ ケットごとに分割するためのセグメント化が変化するため、 セグメント化が変化 することを考慮しないアプリケ一ションでは、 正常な通信ができなくなってしま うことである。
特に、 プロキシサーバに第一方式を用い、 一つのコネクションで受信したデー 夕を複数のコネクションに分散させて送信した場合では、 必ず再セグメント化が 必要となる。
第三の問題は、 第一方式の通信装置が利用するネットワーク経路の途中に、 本 方式を意識しない制御管理範囲外の装置が存在し、セグメント化が変化した場合、 第一方式では、 正常な通信が行えなくなつてしまうことである。
第四の問題は、 第一方式では、 データ分割をし、 複数のコネクションにて並列 に送信する際に、 1パケット単位で T C Pコネクション処理プロセスへとデータ を渡すため、 書き込み命令の発行回数が多くなつてしまい、 処理負荷が大きくな る点である。 発明の開示
そこで本発明の目的は、 ヘッダが大きくなるのを防止することにより、 フロー の分割および復元を伴う通信を効率よく実現することが可能な通信装置およびそ の通信方法ならびにプログラムを提供することにある。
前記課題を解決するために本発明による通信装置は、 複数のコネクションにデ 一夕を分散させて通信を実現する通信装置であって、 その装置はそれぞれのコネ クシヨンに分散させたデータを復元するための情報をヘッダ内部に格納する機能 を有することを特徴とする。
また、 本発明による通信方法は、 複数のコネクションにデータを分散させて通 信を実現する通信方法であって、 その方法はそれぞれのコネクションに分散させ たデータを復元するための情報をヘッダ内部に格納する処理を含むことを特徴と する。
さらに、 本発明によるプログラムは、 複数のコネクションにデータを分散させ て通信を実現する通信方法をコンピュータに実行させるためのプログラムであつ て、 そのプログラムはそれぞれのコネクションに分散させたデータを復元するた めの情報をヘッダ内部に格納する処理を含むことを特徴とする。
本発明によれば、 それぞれのコネクションに分散させたデータを復元するため の情報をヘッダ内部に格納するため、 ヘッダが大きくなることがない。 図面の簡単な説明
図 1は、 本発明による通信装置の第 1実施例の構成を示すブロック図である。 図 2は、 第 1実施例で送信端末 2— 1から受信端末 2— 2へのデータの流れを 示したブロック図である。
図 3は、 第 1実施例におけるデータの分割方法と、 分割されたブロックを示す 図である。
図 4は、 第 1実施例のデ一夕分割復元処理部において T C Pヘッダ内部にデー 夕の復元情報を格納する例を示す図である。
図 5は、 T C Pのタイムスタンプオプションの形式図である。
図 6は、 第 1実施例における送信端末 2— 1の処理の概要を示すフローチヤ一 トである。
図 7は、 第 1実施例における受信端末 2— 2の処理の概要を示すフローチヤ一 トである。 図 8は、 第 2実施例における送信端末 2— 1の処理の概要を示すフローチヤ一 トである。
図 9は、 第 2実施例における受信端末 2— 2の処理の概要を示すフロ一チヤ一 トである。
図 1 0は、 第 3実施例における送信端末 2 1— 1と、 プロキシサーバ 2 1— 3 と、 受信端末 2 1— 2との間のデータの流れを示すブロック図である。
図 1 1は、 第 4実施例のデータ分割復元処理部 1— 2においてブロックの先頭 にデータの復元情報を格納する例を示す図である。
図 1 2は、 第 4実施例における送信端末 2— 1の処理の概要を示すフローチヤ 一卜である。
図 1 3は、 第 4実施例における受信端末 2— 2における処理の概要を示すフロ 一チャートである。
図 1 4は、 第 5実施例における通信レートが大きい場合の送信端末と受信端末 との間のデータの流れを示すブロック図である。
図 1 5は、第 5実施例における通信レートが大きい場合のデータの分割方法と、 分割されたプロックとを示す図である。
図 1 6は、 第 5実施例における送信端末 2— 1の処理の概要を示すフローチヤ 一卜である。
図 1 7は、 第 5実施例における受信端末 2— 2の処理の概要を示すフローチヤ 一卜である。 発明を実施するための最良の形態
以下、 本発明の実施の形態について添付図面を参照しながら説明する。 (第 1実施例)
図 1は本発明による通信装置の第 1実施例の構成を示すプロック図である。 第 1実施例において、 通信装置 1は、 アプリケーション処理部 1— 1と、 デ一夕分 割復元処理部 1— 2と、 ネットワーク処理部 1一 3とを含んで構成される。
アプリケーション処理部 1一 1は、 任意のアプリケ一ションプログラムを処理 c
し、 データを送信する場合にはデ一夕分割復元処理部 1一 2にデータを送り、 デ 一夕を受信する場合にはデータ分割復元処理部 1一 2からデータを受け取る機能 を有する。
データ分割復元処理部 1一 2は、 データを送信する場合にはアプリケーション 処理部 1 _ 1からデータを受け取り、 データを任意の数のブロックに分割し、 こ のブロックを元のデータに復元するための情報を T C Pヘッダ内部に格納し、 任 意の数の TCPコネクションを利用してネットワーク処理部 1一 3へと送り、 デ 一夕を受信する場合にはネットワーク処理部 1一 3から受け取った複数の TCP コネクションのデータについて、 T C Pヘッダ内部に格納された復元情報を参照 し、 分割されたブロックを識別し、 これをあわせることにより分割前のデータに 復元し、 アプリケーション処理部 1一 1に送る機能を有する。
ネットワーク処理部 1一 3は、 デーダを送信する場合にはデータ分割復元処理 部 1— 2から受け取った TCPコネクションのデ一夕をネットワークへと出力し、 データを受信する場合にはネットワークから入力された TCPコネクションのデ 一夕をデータ分割復元処理部 1一 2へと送る機能を有する。
図 2は、 第 1実施例で送信端末 2— 1から受信端末 2— 2へのデータの流れを 示したブロック図、 図 3は第 1実施例におけるデータの分割方法と、 分割された ブロックを示す図である。 図 2では、 送信端末 2— 1から受信端末 2— 2へとデ —夕を送る場合、 送信端末 2— 1は図 3に示すように送信するデータを複数のブ ロックへ分割し、 これを復元するための情報を TCPヘッダ内部に格納し、 複数 の TCPコネクションを利用して受信端末 2— 2へ送る。
図 2では、 データ 3— 1を 4つのブロック (1) 〜 (4) に分割し、 2つの T CPコネクション (1)、 (2) を利用し、 TCPコネクション (1) ではブロッ ク (1)、 (3) を送信し、 TCPコネクション (2) ではブロック (2)、 (4) を送信する例を示している。
送信端末 2— 1からのブロックを受け取った受信端末 2— 2は、 TCPヘッダ 内部に格納された復元情報を参照し、 分割されたブロックを識別し、 ブロックを 順番に整列することにより、 複数のブロックからもとのデータを復元する。
図 2では、 受信端末 2— 2は、 TCPコネクション (1)、 (2) から受け取つ たブロック (1) 〜 (4) を順番に整列し、 元のデータを復元する。 図 4は、 第 1実施例のデータ分割復元処理部において TC Pヘッダ内部にデ一 夕の復元情報を格納する例を示す図である。送信端末 2— 1は、データを分割し、 複数のブロックを生成したのち、このブロック番号を TCPのタイムスタンプ(T ime s t amp ) オプションの一部に格納する。
図 5は TCPのタイムスタンプォプションの形式図である。 TCPのタイムス タンプォプションは図 5に示す形式にて TC Pヘッダのォプションフィールドに 格納される。 同図を参照すると、 TCPのタイムスタンプオプションは種類 (K i n d) と、 長さ (L e ng t h) と、 TS Va l u e (TS v a l ) と、 TS E c h o Re p l y (T S e e r) とを含んで構成される。 同図は種 類が 8、 長さが 10バイトの場合を示している。
本実施例では、 この TS V a 1 u eの 4バイトの情報のうち、 1バイトをデ 一夕の復元情報として、 ブロック番号を格納するために用い、 残りの 3バイトに TS V a 1 u eのうち、 上位 3バイトを格納する。
ただし、 この TS V a 1 u eの 4バイトの情報のうち、 2バイトをデータの 復元情報として、ブロック番号を格納するために用い、残りの 2バイ卜に TS V a 1 u eのうち、 下位 2バイトを格納する、 というように TS V a 1 u eにお けるデータの復元情報のために利用する領域を変更した実施例も可能である。 次に、 図 6および図 7を参照して第 1実施例における送信端末 2— 1、 受信端 末 2 _ 2における処理について説明する。 なお、 以下の説明において、 送信端末 2― 1および受信端末 2— 2は図 1の通信装置 1の一例を示している。
図 6は第 1実施例における送信端末 2― 1の処理の概要を示すフローチャート である。 同図を参照すると、 送信端末 2— 1はアプリ.ケーシヨン処理部 1一 1が 任意の処理を実施し、 データ分割復元処理部 1― 2にデータの送信を指示するこ とにより、 処理が開始される。
処理 5— 1では、 データ分割復元処理部 1一 2は、 アプリケーション処理部 1 一 1から受け取ったデータを任意の数のプロックに分割する。 処理 5— 2へ移動 する。
処理 5— 2では、 データ分割復元処理部 1— 2は、 分割したブロックを任意の T C Pコネクションに振り分ける。 処理 5— 3へ移動する。
処理 5— 3では、 デ一タ分割復元処理部 1—2は、 ネットワーク処理部 1— 3 へブロックの送信を指示する。 このとき、 データ T C Pヘッダ内のタイムスタン プオプションフィールドに復元するための情報として、 送信しているブロック番 号を格納する。 ただし、 異なるブ ΰックは同じパケット内には格納しない。 ネッ トワーク処理部 1一 3はネットワークへプロックを送出する。 ブロックをすベて 送信し、 アプリケーション処理部 1一 1の任意の処理が終了したら、 処理を終了 する。
図 7は第 1実施例における受信端末 2— 2の処理の概要を示すフローチャート である。 受信端末 2— 2は、 ネットワークから送信端末 2— 1が送信したプロッ クを受信することによって処理を開始する。 .
処理 6— 1では、 ネットワーク処理部 1一 3がデータ分割復元処理部 1一 2に ブロックをわたし、 デ一夕分割復元処理部 1一 2では、 T C Pヘッダ内のタイム スタンプオプションフィールドに格納されているブロック番号を参照し、 これを 整列し、 元のデータに復元する。 処理 6— 2へ移動する。
処理 6— 2では、 データ分割復元処理部 1一 2が復元したデータをアプリケ一 ション処理部 1一 1にわたし、 アプリケーション処理部 1一 1では任意の処理を 実行する。 すべてのブロックがアプリケーション処理部 1一 1に渡され、 アプリ ケーション処理部 1一 1の任意の処理が終了したら処理を終了する。
以上が、 本発明による第一の実施例における通信端末の処理の内容である。 従来の技術においては、 データを分割し、 これを復元するための情報をアプリ ケ一ションデータの一部としていたため、 これを格納するためアプリケーション データが大きくなつてしまっていた。
一方、 上記で述べたように第 1実施例では、 広く用いられている T C Pのタイ ムスタンプオプションフィールドに、 データを復元するための情報を含めること によってアプリケーションデ一夕が大きくなることがなく、 復元情報を格納する ためのオーバヘッドがない。 かつ、 同時にタイムスタンプオプションも利用する ことができる。
また、 第 1実施例では、 タイムスタンプオプションに復元情報を格納する方法 を示したが、 この他、 TCPZI P (T r an sm i s s i on Con t r o 1 P r o t o c o l / I n t e r n e t P r o t o c o l) ヘッダのうち、 冗長なデータを含んでいる箇所や、 データ長の圧縮あるいは縮退可能な箇所に復 元情報を格納する実施例も可能である。
例えば、 I P ( I n t e r n e t P r o t o c o l) パケットには 1つの パケットを分割するためのフラグメントオプションがあるが、 現在では、 パス M TU (Max i mum T r an s f e r Un i t) ディスカバリー (P a t h MTU D i s c ov e r y) オプションが一般的に利用された場合に はこのフラグメントフィールドは利用されておらず、 これを TC Pタイムスタン プォプシヨンフィールドの代わりに用いる実施例も可能である。
(第 2実施例)
本発明の第 2実施例による通信装置の構成は図 1に示した第 1実施例と同様で あるため、 ここでは第 1実施例の構成を示す図 1を用いて説明する。
第 2実施例において、 通信装置 1は、 アプリケーション処理部 1一 1と、 デー 夕分割復元処理部 1— 2と、 ネットワーク処理部 1一 3とを含んで構成される。 アプリケ一ション処理部 1— 1は、 データ分割復元処理部 1— 2により設定さ れた最大バケツトサイズを参照し、 最大バケツトサイズに基づきデータを区切つ て通信することがある任意のアプリケーションプログラムを処理し、 データを送 信する場合にはデータ分割復元処理部 1一 2にデータを送り、 データを受信する 場合にはデー夕分割復元処理部 1一 2からデータを受け取る機能を有する。
データ分割復元処理部 1— 2は、 ネットワーク処理部 1― 3の複数のィン夕フ エースに設定された最大パケットサイズをそれぞれ参照し、 最も小さい最大パケ ットサイズを代表値としてアプリケーションへと公開し、 データを送信する場合 にはアプリケーション処理部 1一 1からデー夕を受け取り、 データを最大パケッ トサイズの代表値の倍数に基づくサイズのブロックに分解し (ただし最大バケツ トサイズの倍数に基づくブロックに分割した際に生じた端数は最大バケツトサイ ズの代表値の倍数でなくてもよい)、このブロックを元のデータに復元するための 情報を TCPヘッダ内部に格納し、 最大パケットサイズの代表値を利用可能な最 大パケットサイズとして設定された任意の数の TCPコネクションを利用してネ ットワーク処理部 1一 3へと送り、 データを受信する場合にはネットワーク処理 部 1一 3から受け取った複数の TCPコネクションのデータについて、 TCPへ ッダ内部に格納された復元情報を参照し、 分割されたプロックを識別し、 これを あわせることにより分割前のデータに復元し、 アプリケーション処理部 1— 1に 送る機能を有する。
ネットワーク処理部 1一 3は、 データを送信する場合にはデータ分割復元処理 部 1— 2から受け取った TCPコネクションのデータをネットワークへと出力し、 データを受信する場合にはネットワークから入力された TCPコネクションのデ 一夕をデータ分割復元処理部 1— 2へと送る機能を有する。
また、 それぞれの最大パケットサイズを調査する場合に、 TCPのオプション として提供されているパス M T Uディスカバリーオプションを利用し、 通信開始 後に最大パケットサイズの代表値を再調整する実施例も可能である。
図 2は、 第 2実施例で、 送信端末 2— 1から受信端末 2— 2へのデ一夕の流れ を示したブロック図である。
図 2では、 送信端末 2— 1から受信端末 2— 2へとデータを送る場合、 送信端 末 2— 1は通信に利用する複数の TCPコネクションで利用可能な最大パケット サイズをそれぞれ調査し、 最も小さい最大パケットサイズを代表値として、 それ ぞれの T C Pコネクションで利用するようにし、 図 3に示すように送信するデー 夕を最大パケットサイズの代表値の倍数に基づくサイズのブロックに分解し (た だし最大パケットサイズの倍数に基づくブロックに分割した際に生じた端数は最 大バケツトサイズの代表値の倍数でなくてもよい)、これを復元するための情報を TCPヘッダ内部に格納し、 最大パケットサイズの代表値が設定された複数の T CPコネクションを利用して受信端末 2— 2へ送る。
図 2では、 データを 4つのブロック (1) 〜 (4) に分割し、 2つの TCPコ ネクシヨン (1)、 (2) を利用し、 TCPコネクション (1) ではブロック (1)、 (3) を送信し、 TCPコネクション (2) ではブロック (2)、 (4) を送信す る例を示している。
送信端末 2— 1からのブロックを受け取つた受信端末 2— 2は、 T C Pヘッダ 内部に格納された復元情報を参照し、 分割されたブロックを識別し、 ブロックを 順番に整列することにより、 複数のブロックから元のデータを復元する。 図 2で は、 受信端末 2— 2は、 T C Pコネクション (1 )、 ( 2 ) から受け取ったブロッ ク (1 ) 〜 (4 ) を順番に整列し、 元のデータを復元する。
図 4は、 第 2実施例のデ一夕分割復元処理部 1一 2において T C Pヘッダ内部 にデータの復元情報を格納する例を示す図である。 送信端末 2— 1は、 データを 分割し、 複数のブロックを生成したのち、 このブロック番号を T C Pのタイムス タンプォプションの一部に格納する。 T C Pのタイムスタンプオプションは図 5 に示す形式にて T C Pヘッダのオプションフィールドに格納される。
第 2実施例では、 この T S V a 1 u eの 4バイトの情報のうち、 1ノ イトを データの復元情報として、 ブロック番号を格納するために用い、 残りの 3バイト に T S V a 1 u eのうち、 上位 3バイトを格納する。
次に、 図 8および図 9を参照して第 2実施例における送信端末 2— 1および受 信端末 2— 2の処理について説明する。
図 8は第 2実施例における送信端末 2— 1の処理の概要を示すフローチヤ一ト である。送信端末 2— 1はアプリケーション処理部 1— 1が任意の処理を実施し、 デー夕分割復元処理部 1— 2にデータの送信を指示することにより、 処理を開始 する。
処理 7— 1では、 データ分割復元処理部 1一 2は、 それぞれの T C Pコネクシ ョンで利用可能な最大バケツトサイズを調査し、 それぞれの最大パケットサイズ のうちの最も小さな最大パケットサイズを代表値として設定しそれぞれの T C P コネクションを利用する場合はこの代表値を利用できるようにする。 アプリケー ション処理部 1一 1から受け取ったデータを最大パケットサイズの代表値の倍数 に基づくサイズのブロックに分割し (ただし最大パケットサイズの倍数に基づく ブロックに分割した際に生じた端数は最大バケツトサイズの代表値の倍数でなく てもよい)、 処理 7— 2へ移動する。
処理 7— 2では、 データ分割復元処理部 1—2は、 分割したブロックを任意の T C Pコネクションに振り分ける。 処理 7— 3へ移動する。
処理 7— 3では、 データ分割復元処理部 1 _ 2は、 ネットワーク処理部 1一 3 ヘプ口ックの送信を指示する。
このとき、 データ TC Pヘッダ内のタイムスタンプオプションフィールドに復 元のための情報として、 送信しているブロック番号を格納する。 ただし、 ブロッ ク番号が変わる場合は、 同じパケットには格納しない。
ネットワーク処理部 1— 3はネットワークへブロックを送出する。 ブロックを すべて送信し、 アプリケーション処理部 1— 1の任意の処理が終了したら、 処理 を終了する。
図 9は、 第 2実施例における受信端末 2— 2の処理の概要を示すフローチヤ一 トである。
受信端末 2— 2は、 ネットワークから送信端末 2— 1が送信したブロックを受 信することによつて処理を開始する。 '
処理 8— 1では、 ネットワーク処理部 1― 3がデータ分割復元処理部 1一 2に ブロックをわたし、 データ分割復元処理部 1一 2では、 TCPヘッダ内のタイム スタンプオプションフィールドに格納されているブロック番号を参照し、 これを 整列し、 元のデータに復元する。 処理 8— 2へ移動する。
処理 8— 2では、 データ分割復元処理部 1一 2が復元したデータをアプリケー ション処理部 1— 1にわたし、 アプリケーション処理部 1 _ 1では任意の処理を 実行する。 すべてのブロックがアプリケーション処理部 1— 1に渡され、 アプリ ケ一ション処理部 1一 1の任意の処理が終了したら処理を終了する。
以上が、 本発明による第 2実施例における通信端末の処理の内容である。 従来の技術においては、 各 TCPコネクションの最大バケツトサイズを意識せ ずにブロック化を行っていたため、 それぞれの TCPコネクションでは、 バケツ トがフラグメントされてしまう可能性があり、 通信効率が低下していた。
本発明による通信装置では、 それぞれの TCPコネクションで利用可能な MS S (Ma X S e gme n t S i z e) を調査し、 この調査結果に基づいてブ ロック化を行うため、 効率のよい通信が実現される。
(第 3実施例)
本発明の第 3実施例による通信装置の構成は図 1に示した第 2の実施例と同様 であるため、 ここでは第 2の実施例の構成を示す図 1を用いて説明する。
第 3実施例では、 図 10に示すように、 本発明による第 2の実施例の通信方法 を用いた通信装置である、 プロキシサーバ 21— 3と受信端末 2 1— 2、 従来の TCP/ I Pによる通信を実現する送信端末 21— 1の通信を説明する。 なお、 以下の説明において、 プロキシサーバ 21— 3は図 1の通信装置 1の一例を示し ている。
図 10は第 3実施例における送信端末 21— 1と、プロキシサーバ 21 _ 3と、 受信端末 21 - 2との間のデータの流れを示すブロック図である。
プロキシサーバ 21一 3でのアプリケーション処理部 1— 1では、 送信端末 2 1一 1と受信端末 21—2の通信を実現するためのプロキシサーバが動作してお り、 送信端末 2 1— 1から従来の TCP/ I Pによる通信によって受信したパケ ット (1) 〜 (4) を転送し、 受信端末 21一 2へと送信する。
プロキシサーバ 21— 3は、 通信に関係する TCPコネクションである TCP コネクション (0)、 TC Pコネクション (1)、 TC Pコネクション (2) でそ れぞれ利用可能な最大パケットサイズのうち最も小さな最大バケツトサイズを、 本通信で利用可能な最大パケットサイズの代表値として設定する。 プロキシサー バ 21— 3は送信端末 2 1 _ 1、 受信端末 2 1— 2に本通信で利用可能な最大パ ケットサイズの代表値を通知し TCPコネクションを開設する。
送信端末はプロキシサーバ 2 1— 3から通知されたパケットサイズ以下の大き さのパケットを用いてパケットをプロキシサーバ 21 _ 3に送信する。 プロキシ サーバ 2 1— 3は、 送信端末 2 1— 1から受け取ったデータを転送し、 TCPコ ネクシヨン (1)、 TCPコネクション (2) を利用して、 受信端末 21—2へと パケットを送出する。
図 10では、 送信端末 2 1— 1は、 従来の技術による 1本の TCPコネクショ ン (0) によりプロキシサーバ 21— 3にパケット (1) 〜 (4) を送信し、 プ ロキシサーバ 2 1— 3は、 TCP コネクション (0) により受信した該パケッ トを、 TCPコネクション (1)、 TCPコネクション (2) に振り分け受信端末 21— 2へと送信する。
以上のように、 本発明による通信方法では、 通信に関係するそれぞれの TCP コネクションでそれぞれ利用可能な最大バケツトサイズのうち、 最小のものを用 いて通信を行う。 また、 デ一夕を複数のコネクションに分散させて送出させる場 合に既存の T C Pヘッダ内部に復元情報を格納するため、 通信データが増えるこ とがない。 これにより、 第 3実施例のように 1本の T C Pコネクションで受信し たパケットを複数の T C Pコネクションを用いて送出するプロキシサーバとして 利用した場合においては、 結果的に受信したパケットと同じ全くデータを持つパ ケッ卜のままで送信することができ、 既存通信との親和性が高く、 正常な通信が 行える可能性も高い。 (第 4実施例)
本発明の第 4実施例による通信装置の構成は図 1に示した第 1の実施例と同様 であるため、 ここでは第 1実施例の構成を示す図 1を用いて説明する。
第 4実施例において、 本通信装置 1は、 アプリケーション処理部 1一 1と、 デ —夕分割復元処理部 1一 2と、ネットワーク処理部 1— 3とを含んで構成される。 アプリケーション処理部 1— 1は、 任意のアプリケーションプログラムを処理 し、 データを送信する場合にはデータ分割復元処理部 1一 2にデータを送り、 デ —夕を受信する場合にはデータ分割復元処理部 1一 2からデ一夕を受け取る機能 を有する。
データ分割復元処理部 1一 2は、 デ一夕を送信する場合にはアプリケーション 処理部 1一 1からデータを受け取り、 データを任意の数のブロックに分割し、 こ のブロックを元のデータに復元するための情報として、 元のデータにおけるプロ ックの位置を示すシーケンス番号と、 ブロックの大きさをブロックの先頭に追加 し、 それぞれのブロックを任意の数の T C Pコネクションに割り当て、 T C Pコ ネクシヨンを利用してネットワーク処理部へと送り、 データを受信する場合には ネットワーク処理部から受け取った複数の T C Pコネクションのデ一夕について、 ブロックの先頭に格納されたシーケンス番号と、 ブロックの大きさを参照し、 整 列することによりより分割前のデー夕に復元し、 アプリケーション処理部 1— 1 に送る機能を有する。 ネットワーク処理部 1一 3は、 データを送信する場合にはデータ分割復元処理 部 1— 2から受け取った TCPコネクションのデータをネットヮ一クへと出力し、 データを受信する場合にはネットワークから入力された TCPコネクションのデ 一夕をデータ分割復元処理部 1一 2へと送る機能を有する。
図 2は、 第 4実施例で、 送信端末 2— 1から受信端末 2— 2へのデータの流れ を示したブロック図、 図 1 1は第 4実施例におけるデータが分割されたブロック を示す図である。
図 2では、 送信端末 2— 1から受信端末 2— 2へとデータを送る場合、 送信端 末 2— 1は図 3に示すように送信するデータを複数のブロックへ分割し、 これを 復元するための情報として、 元のデータにおけるブロックの位置を示すシーケン ス番号と、 ブロックのサイズを図 1 1に示すようにブロックの先頭に追加し、 こ れを複数の TCPコネクションを利用して受信端末 2— 2へ送る。
図 2では、 データを 4つのブロック (1) 〜 (4) に分割し、 2つの TCPコ ネクシヨン (1)、 (2) を利用し、 TCPコネクション (1) ではブロック (1)、 (3) を送信し、 TCPコネクション (2) では、 ブロック (2)、 (4) を送信 する例を示している。
送信端末 2— 1からのブロックを受け取った受信端末 2— 2は、 ブロックの先 頭に格納されたシーケンス番号と、 ブロックのサイズを参照し、 分割されたプロ ックを識別し、 ブロックを順番に整列することにより、 複数のブロックから元の データを復元する。図 2では、受信端末 2— 2は、 TCPコネクション(1)、 (2) から受け取ったブロック (1) 〜 (4) を順番に整列し、 元のデータを復元する。 図 1 1は、 第 4実施例のデ一夕分割復元処理部 1一 2においてブロックの先頭 にデータの復元情報を格納する例を示す図である。
送信端末 2— 1は、 図 3に示すようにデータを分割し、 複数のブロックを生成 したのち、 図 4に示すように、 ブロックの分割前のデータにおける位置を示すシ 一ケンス番号と、 各プロックのサイズをブ口ックの先頭に追加する。
次に図 1 2および図 13を参照して第 4実施例における送信端末 2— 1および 受信端末 2— 2における処理について説明する。
図 12は、 第 4実施例における送信端末 2— 1の処理の概要を示すフローチヤ ートである。 送信端末 2— 1は、 アプリケーション処理部 1— 1が任意の処理を 実施し、 データ分割復元部 1—2にデータの送信を指示することにより、 処理が 開始される。
処理 1 0— 1では、 データ分割復元処理部 1一 2は、 アプリケーション処理部 1一 1から受け取ったデータを任意の数のブロックに分割し、 これを復元するた めの情報として、 データのシーケンス番号と、 ブロックの大きさをブロックの先 頭に追加する。 処理 1 0— 2へ移動する。
処理 1 0— 2では、 データ分割復元処理部 1— 2は、 分割したプロックを任意 の T C Pコネクションに振り分ける。 処理 1 0— 3へ移動する。
処理 1 0 _ 3では、 データ分割復元処理部 1一 2は、 ネットワーク処理部 1—
3へブロックの送信を指示する。 ブロックをすベて送信し、 アプリケーション処 理部 1一 1の任意の処理が終了したら、 処理を終了する。
図 1 3は、 第 4実施例における受信端末 2— 2の処理の概要を示すフローチヤ —トである。 受信端末 2— 2は、 ネットワークから送信端末 2— 1が送信したブ ロックを受信することによつて処理を開始する。
処理 1 1— 1では、 ネットワーク処理部 1― 3がデータ分割復元処理部 1一 2 にブロックをわたし、 データ分割復元処理部 1一 2では、 ブロックの先頭に格納 されているシーケンス番号とブロックサイズを参照し、 ブロックを整列し、 元の デ一夕に復元する。 処理 1 1—2へ移動する。
処理 1 1一 2では、 デ一タ分割復元処理部 1一 2が復元したデータをアプリケ ーシヨン処理部 1一 1にわたし、 アプリケーション処理部 1一 1では任意の処理 を実行する。 すべてのブロックがアプリケーション処理部 1一 1に渡され、 アブ リケーシヨン処理部 1一 1の任意の処理が終了したら処理を終了する。
以上が、 本発明による第 4実施例における通信端末の処理の内容である。
従来の技術においては、 通信経路中に想定していないプロキシサーバなどがあ り、 データのセグメントが変更される場合があると、 受信端末でデータを復元す ることが不可能であった。
一方、 上記で述べたように第 4実施例では、 データを複数のブロック分割し、 これを復元するための情報に分割されたプロックの長さを格納することにより、 . 通信経路中に想定していないプロキシサーバなどがあり、 データのセグメント化 が変更される場合においても、 受信端末でデータを復元することが可能である。
(第 5実施例)
本発明の第 5実施例による通信装置の構成は図 1に示した第 1実施例と同様で あるため、 ここでは第 1の実施例の構成を示す図 1を用いて説明する。
第 5実施例において、 本通信装置 1は、 アプリケーション処理部 1— 1と、 デ —夕分割復元処理部 1— 2と、ネットワーク処理部 1— 3とを含んで構成される。 アプリケーション処理部 1— 1は、 任意のアプリケーションプログラムを処理 し、 データを送信する場合にはデ一夕分割復元処理部 1一 2にデータを送り、 デ 一夕を受信する場合にはデータ分割復元処理部 1一 2からデータを受け取る機能 を有する。
データ分割復元処理部 1一 2は、 デ一夕を送信する場合にはアプリケ一ション 処理部 1一 1からデ一夕を受け取り、 データを送信するために任意の数の T C P コネクションを利用し、 それぞれの T C Pコネクションの通信レートを調査し、 通信レートが低い場合は、 小さなブロックにデータを分割し、 通信レートが高い 場合は、 より大きなブロックをへとデータを分割し、 任意の数の T C Pコネクシ ヨンを利用して、 ブロックをネットワーク処理部 1一 3へと送り、 データを受信 する場合にはネットワーク処理部 1— 3から受け取った複数の T C Pコネクショ ンのデータについて、 T C Pヘッダ内部に格納された復元情報を参照し、 分割さ れたブロックを識別し、 これをあわせることにより分割前のデータに復元し、 ァ プリケーション処理部 1— 1に送る機能を有する。
ネットワーク処理部 1— 3は、 データを送信する場合にはデータ分割復元処理 部 1— 2から受け取った T C Pコネクションのデータをネットワークへと出力し、 データを受信する場合にはネットワークから入力された T C Pコネクションのデ 一夕をデータ分割復元処理部 1一 2へと送る機能を有する。 図 2は、 第 5実施例で、 送信端末 2— 1から受信端末 2— 2へのデータの流れ を示したブロック図、 図 1 4は第 5実施例における通信レートが大きい場合の送 信端末と受信端末との間のデータの流れを示すブロック図、 図 1 5は第 5実施例 η
における通信レートが大きい場合のデータの分割方法と、 分割されたブロックと を示す図である。
図 2では、 送信端末 2— 1から受信端末 2— 2へとデ一夕を送る場合、 送信端 末 2— 1は利用するそれぞれの TCPコネクションの通信レートを調査し、 図 3 に示すように、 送信するデータを複数のブロックへ分割する。
ただし、 それぞれの TCPコネクションの通信レートを調査し、 この通信レー トの調査結果の合計が低い場合は、 分割するブロックのサイズを小さくし、 この 通信レートの合計が高い場合は、分割するブロックのサイズを大きくする。次に、 分割したブロックをあわせもとのデータを復元するための情報を T C Pヘッダ内 部に格納し、 複数の TCPコネクションを利用して受信端末 2— 2へ送る。
例えば、 通信レートが低い場合では、 図 3に示すように、 データを 4つのプロ ック (1) 〜 (4) に分割し、 図 2に示すように 2つの TCPコネクション (1)、 (2) を利用し、 TCPコネクション 1ではブロック (1)、 (3) を送信し、 T CPコネクション 2では、 ブロック (2)、 (4) を送信し、 通信レートが高い場 合では、 分割するブロックの数を多くし、 図 1 5に示すように、 データを 2つの ブロック (1)、 (2) に分割し、 図 14に示すように 2つの TCPコネクション (1)、 (2) を利用し、 TCPコネクション (1) ではブロック 13— 1を送信 し、 TCPコネクション (2) では、 ブロック 1 3— 2を送信する。
送信端末 2— 1からのブロックを受け取つた受信端末 2— 2は、 T C Pヘッダ 内部に格納された復元情報を参照し、 分割されたブロックを識別し、 ブロックを 順番に整列することにより、 複数のブロックから元のデータを復元する。 図 2で は、 受信端末 2— 2は、 TCPコネクション (1)、 (2) から受け取ったブロッ ク (1) 〜 (4) を順番に整列し、 元のデータを復元する。
同様に図 14では、 受信端末 2— 2は、 TCPコネクション (1)、 (2) から 受け取ったブロック 1 3— 1および 13— 2を順番に整列し、 元のデータを復元 する。
図 4は、 第 5実施例のデータ分割復元処理部 1— 2において T C Pヘッダ内部 にデータの復元情報を格納する例である。 送信端末 2— 1は、 デ一夕を分割し、 複数のブロックを生成したのち、 このブロック番号を TC Pのタイムスタンプォ プションの一部に格納する。 TCPのタイムスタンプォプションは図 5に示す形 式にて TC Pヘッダのォプションフィールドに格納される。
第 5実施例では、 この TS V a 1 u eの 4バイトの情報のうち、 1バイトを デ一夕の復元情報として、 ブロック番号を格納するために用い、 残りの 3バイト に TS V a 1 u eのうち、 上位 3バイトを格納する。
ただし、 この TS V a 1 u eの 4倍との情報のうち、 2バイトをデ一夕の復 元情報として、 ブロック番号を格納するために用い、 残りの 2バイトに TS V a 1 u eのうち、 下位 2バイトを格納する、 というように TS Va l u eに おけるデータの復元情報のために利用する領域を変更した実施例も可能である。 次に図 16、 図 17を参照して第 5実施例における送信端末 2— 1、 受信端末
2- 2における処理について説明する。
図 16は、 第 5実施例における送信端末 2— 1の処理の概要を示すフローチヤ ートである。送信端末 2— 1は、 アプリケ一ション処理部が任意の処理を実施し、 データ分割復元部 1一 2にデータの送信を指示することにより、 処理が開始され る。
処理 14一 1では、 データ分割復元処理部 1一 2は、 アプリケーション処理部 1— 1から受け取ったデータを任意の数のブロックに分割する。 ただし、 このと き利用する TC Pコネクションの通信レー卜を調査し、 その合計が低い場合は、 小さなブロックへとデータを分割し、 その合計が高い場合はより大きなプロック へとデータを分割する。 処理 14一 2へ移動する。
処理 14— 2では、 データ分割復元処理部 1— 2は、 分割したブロックを任意 の TCP コネクションに振り分ける。 処理 14一 3へ移動する。
処理 14一 3では、 デ一夕分割復元処理部 1— 2は、 ネットワーク処理部 1一 3へブロックの送信を指示する。 このとき、 データ TCPヘッダ内のタイムス夕 ンプオプションフィールドに復元のための情報として、 送信しているブロック番 号を格納する。 ただし、 ブロック番号が変わる場合は、 同じパケット内には格納 しない。
ネットワーク処理部 1— 3はネットワークへブロックを送出する。 ブロックを すべて送信し、 アプリケーション処理部 1一 1の任意の処理が終了したら、 処理 を終了する。
図 1 7は、 第 5実施例における受信端末 2— 2の処理の概要を示すフローチヤ —トである。 受信端末 2— 2は、 ネットワークから送信端末 2— 1が送信したブ ロックを受信することによつて処理を開始する。
処理 1 5— 1では、 ネットワーク処理部 1— 3がデータ分割復元処理部 1— 2 にブロックをわたし、 デ一タ分割復元処理部 1— 2では、 T C Pヘッダ内のタイ ムスタンプォプションフィールドに格納されているブロック番号を参照し、 これ を整列し、 元のデータに復元する。 処理 1 5— 2へ移動する。
処理 1 5— 2では、 データ分割復元処理部 1一 2が復元したデータをアプリケ ーシヨン処理部 1一 1にわたし、 アプリケーション処理部 1— 1では任意の処理 を実行する。 すべてのブロックがアプリケーション処理部 1一 1に渡され、 アブ リケ一シヨン処理部 1 _ 1の任意の処理が終了したら処理を終了する。
以上が、 本発明による第 5実施例における通信端末の処理の内容である。 従来の技術においては、 通信レートに依存せず、 複数の T C Pコネクションに 分割したデータを振り分けており、 異なる T C Pコネクションでデ一タを送信す る際には、 T C Pコネクションへとデータを渡すための指示が多くなることによ る処理負荷が大きかった。
一方、 上記で述べたように第 5実施例では、 通信レー卜が大きくなつた場合に は、 T C Pコネクションに渡すブロックのサイズを大きくすることにより、 一度 の送信指示により渡されるサイズを大きくし、 送信指示の回数を減らし、 逆に、 通信レートが小さい場合には T C Pコネクションに渡すブロックのサイズを小さ くすることにより、 複数の通信回線を並列的に利用して通信を実現でき、 通信回 線の利用効率を上げることができる。
また、 第 5実施例では、 データ分割復元処理部 1一 2は、 データを送信する際 に、 利用する T C Pコネクションの通信レートを調査し、 通信レートが低い場合 にはデータを小さなブロックへと分割し、 通信レートが高い場合は、 データをよ り大きなブロックへと分割するとしたが、 これに代えて、 分割するブロックのサ ィズは一定とし、 通信レートが低い場合には、 一度の書き込み指示で 1つの T C Pコネクションに 1のブロックを渡すようにし、 通信レートが高い場合には、 ネ 2 Q
ットワーク処理部へと一度の書き込み指示で 1つの T C Pコネクションに複数の ブロックを連続して渡すようにする実施例も可能である。
また、 第 5実施例では、 データ分割復元処理部 1一 2は、 データを送信する際 に、 利用する T C Pコネクションの通信レートを調査するが、 T C Pの輻輳ウイ ンドウを参照することにより通信レートを推測し、 通信レートの調査の代わりと する実施例も可能である。
また、 第 5実施例では、 データ分割復元処理部 1一 2は、 データを送信する際 に、 利用する T C Pコネクションの通信レートを調査するが、 通信を開始してま もなくの間は、 通信レートが低いと仮定し、 通信開始から時間が経過するごとに 通信レートが上がると仮定することにより、 通信レートの調査の代わりとする実 施例も可能である。
また、 第 5実施例では、 データ分割復元処理部 1 _ 2は、 データを送信する際 に、 利用する T C Pコネクションの通信レートを調査するが、 アプリケーション 処理部から渡されたデータの大きさによって、 このデータが大きい場合は通信レ ートが高いものと仮定し、 このデータが小さい場合には通信レートが低いと仮定 することにより通信レートの調査の代わりとする実施例も可能である。
(第 6実施例)
前述の図 1の通信装置 1はアプリケーション処理部 1一 1と、 データ分割復元 処理部 1 0 2と、 ネットワーク処理部 1一 3とを含むと説明した。 しかし、 これ らにメモリ 1 8と、 制御部 1 9とを加えプログラムの発明として権利化すること も可能である。
メモリ 1 8には前述の図 6〜図 9、 図 1 2、 図 1 3、 図 1 6および図 1 7にフ ローチャートで示すプログラムが格納されている。 制御部 1 9はメモリ 1 8に格 納されたこれらのプログラムを読み出し、 そのプログラムにしたがってアプリケ ーシヨン処理部 1一 1と、 データ分割復元処理部 1 0 2と、 ネットワーク処理部 1 - 3とを制御する。
なお、 第 1〜第 6実施例では、 T C Pコネクションを利用した通信装置および その通信方法ならびにプログラムについて説明したが、 これに限定するものでは なく、 TCP、 SCTP (S t r e am C on t r o l T r an s p o r t P r o t o c o l )、UDP(Us e r D a t a g r am P r o t o c o l)、 DCCP (D a t a g r am Co n g e s t i o n C on t r o l P r o t o c o l) などの OS I (Op e n Sy s t em I n t e r c o nn e c t i on) 4層のトランスポートプロトコルによるコネクションを利用した通 信置およびその通信方法ならびにプログラムに本発明を適用することも可能であ る。 以上説明した本発明によれば、 フロー分割および復元のために用いる情報を端 末がデータを送出する際に作成したヘッダの内部に格納するため、 データ分割お よび復元を行うために新たなヘッダをバケツト内に格納する必要がなく、 ヘッダ が大きくなることがない。
また、 本発明によれば、 通信開始時に通信に関係するそれぞれのフローで利用 可能なセグメントサイズを調査し、 その調査結果に基づきそれぞれのフローで利 用するセグメントサイズを決定するため、 あるフローから別のフローへデ一夕を 乗せ換える場合でも、 デ一夕を再セグメント化する必要が無くなり正常な通信が 行える。
また、 本発明によれば、 データフローの分割および復元を行うために用いる情 報に、 ブロックの大きさを格納し、データ復元の際にこれを参照することにより、 通信経路にてデ一夕の再セグメント化が行われた場合でも、 データの復元を行う ことができ、 正常な通信が行える。
さらに、 本発明によれば、 データ分割をし、 複数のコネクションにて並列に送 信する際に、 コネクション処理プロセスへと一度に渡すデータの量を調整し、 通 信レー卜が小さいときには 1パケット単位でデータを渡すが、 通信レートが高く なった場合には複数のパケット分をまとめてコネクションに渡すため、 コネクシ ョン処理プロセスへの書き込み命令の発行回数を少なくすることができ、 この処 理負荷を減らすことができる。

Claims

請求の範囲
1. 複数のコネクションにデータを分散させて通信を実現する通信装置であつ て、
複数のコネクションに分散させたデータを復元するための情報を、 前記データ のヘッダ内に格納する機能を有することを特徴とする通信装置。
2. 前記ヘッダは、 コネクションヘッダであることを特徴とする請求項 1に記 載の通信装置。
3. 通信に関係するコネクションで許容されるパケットサイズの最大値を調査 し、 前記パケットサイズの最大値のうち最も小さいサイズを、 許容されるパケッ トサイズの最大値として統一する機能を有することを特徴とする請求項 1に記載 の通信装置。
4. 通信に関係するコネクションで許容されるパケットサイズの最大値を調査 し、 前記パケットサイズの最大値のうち最も小さいサイズ以下のパケットサイズ で通信する機能を有することを特徴とする請求項 1に記載の通信装置。
5. 前記デ一夕を復元するための情報として、 デ一夕長を格納することを特徴 とする請求項 1から請求項 4のいずれかに記載の通信装置。
6. TCPや SCTP、 UDP、 DCCPなどの OS I 4層相当のトランスポ ートプロトコルによるコネクションを利用し、 複数のコネクションにデータを分 散させて通信を実現する通信装置であって、
複数のコネクションに分散させたデータを復元するための情報を、 TCP、 S CTP、 UDP、 DCCPを含むレイヤ 4相当以下のヘッダ内に格納する機能を 有することを特徴とする通信装置。
7. 複数のコネクションに分散させたデータを復元するための情報を、 トラン スポートプロトコルのヘッダ内に格納することを特徴とする請求項 6に記載の通
8. 複数のコネクションに分散させたデータを復元するための情報を、 トラン スポートプロトコルのヘッダ内のオプションフィールドに格納することを特徴と する請求項 6に記載の通信装置。
9. 複数のコネクションに分散させたデータを復元するための情報を、 トラン スポートプロトコルのヘッダ内のォプションフィールドのタイムスタンプフィー ルドの一部に格納することを特徴とする請求項 6に記載の通信装置。
10. 複数のコネクションに分散させたデータを復元するための情報を、 I P へッダ内に格納することを特徴とする請求項 1に記載の通信装置。
1 1. 複数のコネクションに分散させたデータを復元するための情報を、 I P ヘッダ内のフラグメントフィールドに格納することを特徴とする請求項 1に記載 の通信装置。
12. 複数のコネクションで利用可能な MTUをパス MTUディスカバリーォ プシヨンにより調査し、 それぞれのコネクションの MTUを前記調査により得ら れた最も小さい MTUに統一する機能を有することを特徴とする請求項 6に記載
13. 送信側が、 前記分散させたデータを復元するための情報に、 分散された データ長を格納し、 受信側が前記データ長を参照することにより、 デ一夕を復元 することを特徴とする請求項 6に記載の通信装置。
14. 通信レートに応じて、 それぞれのコネクションに一度に渡すデ一夕サイ ズを変更することを特徴とする請求項 1から請求項 1 3のいずれかに記載の通信
1 5 . データを復元するための情報を参照することにより、 データを復元する ことを特徴とする請求項 1から請求項 1 4のいずれかに記載の通信装置。
1 6 . T C Pの通信レートが低い場合には、 それぞれのコネクションに一度に 渡すデータ量を小さくし、 T C Pの通信レートが高くなつた場合には、 それぞれ のコネクションに一度に渡すデータ量を大きくする機能を有することを特徴とす る請求項 1から請求項 1 3のいずれかに記載の通信装置。
1 7 . 複数のコネクションにデータを分散させて通信を実現する通信方法であ つて、
複数のコネクションに分散させたデータを復元するための情報を、 デ一夕のへ ッダ内に格納する処理を含むことを特徴とする通信方法。
1 8 . 前記ヘッダはコネクションヘッダであることを特徴とする請求項 1 7に 記載の通信方法。
1 9 . 通信に関係するコネクションで許容されるパケットサイズの最大値を調 査し、 前記パケットサイズの最大値のうち最も小さいサイズを、 許容されるパケ ットサイズの最大値として統一する処理を含むことを特徴とする請求項 1 7に記 載の通信方法。
2 0 . 通信に関係するコネクションで許容されるパケットサイズの最大値を調 査し、 前記パケッ卜サイズの最大値のうち最も小さいサイズ以下のバケツトサイ ズで通信する処理を含むことを特徴とする請求項 1 7に記載の通信方法。
2 1 . デ一夕を復元するための情報として、 データ長を格納することを特徴と する請求項 17から請求項 20のいずれかに記載の通信方法。
22. TCPや SCTP、 UDP、 D C C Pなどの〇 S I 4層相当のトランス ポートプロトコルによるコネクションを利用し、 複数のコネクションにデ一夕を 分散させて通信を実現する通信方法であって、
複数のコネクションに分散させたデータを復元するための情報を、 TCP、 S CTP、 UDP、 DCCPなどレイヤ 4相当以下のヘッダ内に格納する処理を含 むことを特徴とする通信方法。
23. 複数のコネクションに分散させたデータを復元するための情報を、 トラ ンスポ一トプロトコルのへッダ内に格納することを特徴とする請求項 22に記載 の通信方法。
24. 複数のコネクションに分散させたデータを復元するための情報を、 トラ ンスポートプロトコルのヘッダ内のォプションフィールドに格納することを特徴 とする請求項 22に記載の通信方法。
25. 複数のコネクションに分散させたデータを復元するための情報を、 トラ ンスポートプロトコルのヘッダ内のォプションフィールドのタイムスタンプフィ 一ルドの一部に格納することを特徴とする請求項 22に記載の通信方法。
26. 複数のコネクションに分散させたデータを復元するための情報を、 I P ヘッダ内に格納することを特徴とする請求項 1 7に記載の通信方法。
27. それぞれのコネクションに分散させたデータを復元するための情報を I Pヘッダ内部のフラグメントフィールドに格納することを特徴とする請求項 1 7 に記載の通信方法。
28. それぞれのコネクションで利用可能な MTUをパス MTUディスカパリ 一オプションにより調査し、 それぞれのコネクションの M T Uを前記調査により 得られた最も小さい M T Uに統一する処理を含むことを特徴とする請求項 2 2に 記載の通信方法。
2 9 . 送信側で、 分散させたデータを復元するための情報に、 分散されたデー タ長を格納し、 受信側が前記分散されたデータをを参照することにより、 データ を復元することを特徴とする請求項 2 2に記載の通信方法。
3 0 . 通信レートに応じて、 それぞれのコネクションに一度に渡すデータサイ ズを変更する処理を含むことを特徴とする請求項 1 7から 2 9のいずれかに記載 の通信方法。
3 1 . データを復元するための情報を参照することによりデータを復元する処 理を含むことを特徴とする請求項 1 7から 3 0のいずれかに記載の通信方法。
3 2 . T C Pの通信レートが低い場合には、 それぞれのコネクションに一度に 渡すデータ量を小さくし、 T C Pの通信レートが高くなつた場合には、 それぞれ のコネクションに一度に渡すデータ量を大きくする処理を含むことを特徴とする 請求項 1 7から請求項 2 9のいずれかに記載の通信方法。
3 3 . 複数のコネクションにデ一夕を分散させる通信をコンピュータに実行さ せるためのプログラムであって、
複数のコネクションに分散させたデータを復元するための情報を、 前記デ一タ のヘッダ内に格納する機能を前記コンピュータに実行させることを特徴とするプ ログラム。
3 4 . 前記ヘッダはコネクションヘッダであることを特徴とする請求項 3 3に 記載のプログラム。
35. 通信に関係するコネクションで許容されるバケツトサイズの最大値を調 査し、 前記パケットサイズの最大値のうち最も小さいサイズを、 許容されるパケ ットサイズの最大値として統一する機能を実行させることを特徴とする請求項 3 3に記載のプログラム。
36. 通信に関係するコネクションで許容されるパケットサイズの最大値を調 査し、 前記バケツトサイズの最大値のうち最も小さいサイズ以下のバケツトサイ ズで通信する機能を実行させることを特徴とする請求項 33に記載のプログラム。
37. データを復元するための情報として、 データ長を格納する機能を実行さ せることを特徴とする請求項 33から請求項 36のいずれかに記載のプログラム。
38. TCPや SCTP、 UDP、 D C C Pなどの O S I 4層相当のトランス ポートプロトコルによるコネクションを利用し、 複数のコネクションにデータを 分散させる通信をコンピュータに実行させるためのプログラムであって、
複数のコネクションに分散させたデータを復元するための情報を、 TCP、 S CTP、 UDP、 DCCPなどレイヤ 4相当以下のヘッダ内に格納する機能を前 記コンピュータに実行させることを特徴とするプログラム。
39. 複数のコネクションに分散させたデータを復元するための情報を、 トラ ンスポートプロトコルのヘッダ内に格納する機能を実行させることを特徴とする 請求項 38に記載のプログラム。
40. 複数のコネクションに分散させたデータを復元するための情報を、 トラ ンスポートプロトコルのヘッダ内のォプションフィールドに格納する機能を実行 させることを特徴とする請求項 38に記載のプログラム。
41. 複数のコネクションに分散させたデ一夕を復元するための情報を、 トラ ンスポートプロトコルのヘッダ内のォプションフィ ールドの一部に格納する機能を実行させることを特徴とする請求項 38に記載の プログラム。
42. 複数のコネクションに分散させたデータを復元するための情報を、 I P ヘッダ内部に格納する機能を実行させることを特徴とする請求項 33に記載のプ ログラム。
43. 複数のコネクションに分散させたデータを復元するための情報を、 I P へッダ内部のフラグメントフィールドに格納する機能を実行させることを特徴と する請求項 33に記載のプログラム。
44. 複数のコネクションで利用可能な MTUをパス MTUディスカバリーォ プシヨンにより調査し、 ぞれぞれのコネクションの MTUを前記調査により得ら れた最も小さい MTUに統一する機能を実行させることを特徴とする請求項 38 に記載のプログラム。
45. 送信側で、 分散させたデータを復元するための情報に、 分散されたデー タ長を格納し、 受信側で、 前記分散されたデ一夕長を参照してデータを復元する 機能を実行させることを特徴とする請求項 38に記載のプログラム。
46. 通信レートに応じて、 それぞれのコネクションに一度に渡すデータサイ ズを変更する機能を実行させることを特徴とする請求項 33から請求項 45のい ずれかに記載のプログラム。
47. データを復元するための情報を参照してデータを復元する機能を実行さ せることを特徴とする請求項 33から請求項 46のいずれかに記載のプログラム。
48. TCPの通信レートが低い場合には、 それぞれのコネクションに一度に 渡すデータ量を小さくし、 TCPの通信レートが高くなつた場合には、 それぞれ のコネクションに一度に渡すデータ量を大きくする機能を実行させることを特徴 とする請求項 3 3から請求項 4 5のいずれかに記載のプログラム。
PCT/JP2004/015756 2003-10-22 2004-10-18 通信装置およびその通信方法ならびにプログラム WO2005039150A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/576,789 US8228919B2 (en) 2003-10-22 2004-10-18 Communication device, and communication method and program thereof
JP2005514882A JP4656415B2 (ja) 2003-10-22 2004-10-18 通信装置およびその通信方法ならびにプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003-361339 2003-10-22
JP2003361339 2003-10-22

Publications (1)

Publication Number Publication Date
WO2005039150A1 true WO2005039150A1 (ja) 2005-04-28

Family

ID=34463488

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2004/015756 WO2005039150A1 (ja) 2003-10-22 2004-10-18 通信装置およびその通信方法ならびにプログラム

Country Status (3)

Country Link
US (1) US8228919B2 (ja)
JP (1) JP4656415B2 (ja)
WO (1) WO2005039150A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006295819A (ja) * 2005-04-14 2006-10-26 Sony Corp データ送信装置、データ送信方法及びデータ送信プログラム
JP2008205868A (ja) * 2007-02-21 2008-09-04 Nec Corp Ipフラグメントパケット処理装置及びそれに用いるipフラグメントパケット処理方法並びにプログラム
JP2016512904A (ja) * 2013-03-15 2016-05-09 ファースト プリンシプルズ インコーポレイテッド リアルタイムリモートデスクトップ
EP2069950A4 (en) * 2006-09-13 2017-06-21 Asankya Networks, Inc. Systems and methods of improving performance of transport protocols in a multi-path environment
JP2019520745A (ja) * 2016-05-31 2019-07-18 アンカーフリー, インク.Anchorfree Inc. 同時接続の総スループットを改善するためのシステム及び方法
JP2020123858A (ja) * 2019-01-30 2020-08-13 株式会社リコー 通信装置、通信プログラム、及び通信方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7636309B2 (en) * 2005-06-28 2009-12-22 Alcatel-Lucent Usa Inc. Multi-path routing using intra-flow splitting
US20070043874A1 (en) * 2005-08-17 2007-02-22 Virendra Nath File transfer method and system
US7911956B2 (en) * 2007-07-27 2011-03-22 Silicon Image, Inc. Packet level prioritization in interconnection networks
KR101466573B1 (ko) 2008-01-22 2014-12-10 삼성전자주식회사 통신 단말 장치 및 통신 단말 장치에 탑재된 복수개의네트워크 인터페이스를 이용하여 통신을 수행하는 방법
US8400923B2 (en) * 2010-10-15 2013-03-19 Telefonaktiebolaget L M Ericsson (Publ) Multipath transmission control protocol proxy
EP3534587B1 (en) * 2018-02-28 2020-02-12 Deutsche Telekom AG Techniques for packet data conversion

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6427343A (en) * 1987-07-23 1989-01-30 Fujitsu Ltd Transmission data split processing system
JP2000156706A (ja) * 1998-11-19 2000-06-06 Nippon Telegr & Teleph Corp <Ntt> データ送受信方法並びにデータ送信プログラムを記憶した媒体及びデータ受信プログラムを記憶した媒体
JP2002185488A (ja) * 2000-12-14 2002-06-28 Nippon Telegr & Teleph Corp <Ntt> 通信効率増幅装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304578B1 (en) * 1998-05-01 2001-10-16 Lucent Technologies Inc. Packet routing and queuing at the headend of shared data channel
JP4568846B2 (ja) 1999-03-04 2010-10-27 独立行政法人情報通信研究機構 ゲートウェイ装置、送信方法、受信方法および情報記録媒体
US6532476B1 (en) * 1999-11-13 2003-03-11 Precision Solutions, Inc. Software based methodology for the storage and retrieval of diverse information
US6965646B1 (en) * 2000-06-28 2005-11-15 Cisco Technology, Inc. MPEG file format optimization for streaming
US6912645B2 (en) * 2001-07-19 2005-06-28 Lucent Technologies Inc. Method and apparatus for archival data storage
JP3785343B2 (ja) * 2001-10-02 2006-06-14 日本電信電話株式会社 クライアントサーバシステム及びクライアントサーバシステムにおけるデータ通信方法
JP2003152544A (ja) * 2001-11-12 2003-05-23 Sony Corp データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
JP2003242097A (ja) * 2002-02-15 2003-08-29 Hitachi Ltd クロスコール機能を備えるディスク制御装置
JP2003264596A (ja) * 2002-03-07 2003-09-19 Mitsubishi Electric Corp 通信デバイス、携帯端末、通信方法を実現するためのプログラム
US7487264B2 (en) * 2002-06-11 2009-02-03 Pandya Ashish A High performance IP processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6427343A (en) * 1987-07-23 1989-01-30 Fujitsu Ltd Transmission data split processing system
JP2000156706A (ja) * 1998-11-19 2000-06-06 Nippon Telegr & Teleph Corp <Ntt> データ送受信方法並びにデータ送信プログラムを記憶した媒体及びデータ受信プログラムを記憶した媒体
JP2002185488A (ja) * 2000-12-14 2002-06-28 Nippon Telegr & Teleph Corp <Ntt> 通信効率増幅装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006295819A (ja) * 2005-04-14 2006-10-26 Sony Corp データ送信装置、データ送信方法及びデータ送信プログラム
EP2069950A4 (en) * 2006-09-13 2017-06-21 Asankya Networks, Inc. Systems and methods of improving performance of transport protocols in a multi-path environment
JP2008205868A (ja) * 2007-02-21 2008-09-04 Nec Corp Ipフラグメントパケット処理装置及びそれに用いるipフラグメントパケット処理方法並びにプログラム
JP2016512904A (ja) * 2013-03-15 2016-05-09 ファースト プリンシプルズ インコーポレイテッド リアルタイムリモートデスクトップ
JP2019520745A (ja) * 2016-05-31 2019-07-18 アンカーフリー, インク.Anchorfree Inc. 同時接続の総スループットを改善するためのシステム及び方法
JP2020123858A (ja) * 2019-01-30 2020-08-13 株式会社リコー 通信装置、通信プログラム、及び通信方法
JP7151516B2 (ja) 2019-01-30 2022-10-12 株式会社リコー 通信装置、通信プログラム、及び通信方法

Also Published As

Publication number Publication date
JPWO2005039150A1 (ja) 2007-02-08
US8228919B2 (en) 2012-07-24
JP4656415B2 (ja) 2011-03-23
US20070071004A1 (en) 2007-03-29

Similar Documents

Publication Publication Date Title
KR100334788B1 (ko) 표준프로토콜을이용하여노드를무선통신망에접속하는방법및장치
US7827295B2 (en) Protocol stack
US8903935B2 (en) Remote direct memory access over datagrams
US6208651B1 (en) Method and system for masking the overhead of protocol layering
US7124198B2 (en) Apparatus and method for scaling TCP off load buffer requirements by segment size
US8649395B2 (en) Protocol stack using shared memory
US8489706B2 (en) Safe output protocol for files to multiple destinations with integrity check
US7027450B2 (en) Frame batching and compression for IP transmission
US6321269B1 (en) Optimized performance for transaction-oriented communications using stream-based network protocols
EP1523148A1 (en) Header compression/decompression device and header compression/decompression method
US7191240B1 (en) Generic network protocol layer with supporting data structure
EP1175064A2 (en) Method and system for improving network performance using a performance enhancing proxy
US7649909B1 (en) Adaptive tunnel transport protocol
US20030115350A1 (en) System and method for efficient handling of network data
KR20040041175A (ko) 패킷 처리용 시스템 및 방법
US6760304B2 (en) Apparatus and method for receive transport protocol termination
WO2005039150A1 (ja) 通信装置およびその通信方法ならびにプログラム
US20050038899A1 (en) Method, system and article for client application control of network transmission loss tolerance
US20060026303A1 (en) Fast pattern processor including a function interface system
JP2008113327A (ja) ネットワークインターフェース装置
US8811429B2 (en) Batching and compression for IP transmission
De Silva et al. Tailoring protocols for dynamic network conditions and user requirements
CN116760504A (zh) 会话同步方法、装置、服务节点、终端及可读存储介质
Lars-Åke et al. Requirements on the tcp/ip protocol stack for real-time communication in wireless environments
Farber et al. RFC0914: Thinwire protocol for connecting personal computers to the Internet

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 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 IT 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
WWE Wipo information: entry into national phase

Ref document number: 2005514882

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2007071004

Country of ref document: US

Ref document number: 10576789

Country of ref document: US

122 Ep: pct application non-entry in european phase
WWP Wipo information: published in national office

Ref document number: 10576789

Country of ref document: US