PROCEDURE AT TRANSMISSION/TRANSFER OF DATA FILES

Abstract: The invention relates to a procedure at transmission/transfer of a plurality of data files from a transmitting unit to a receiving unit, to a computer program including program steps for performance of the steps in a procedure, and to one by a computer readable medium including instructions for performance of the steps in the procedure. By the procedure, control commands for request for transmission/transfer of a plurality of data files are received in a transmitting unit. As response to said control commands, said plurality of data files are placed in a buffer for data files which shall be transmitted/transferred and are transmitted/transferred from said transmitting unit to a receiving unit via just one asynchronous transmission channel.

Description: PROCEDURE AT TRANSMISSION/TRANSFER OF DATA FILES Technical field The present invention relates to a procedure at transmission/transfer of a plurality of data files from a transmitting unit to a receiving unit. Technical background At transmission of a data file from a file server to a client the protocol File Transfer Protocol (FTP) often is used. At the transmission a connection is established according to any transmission protocol, at FTP usually the transmission protocol Transfer Control Protocol (TCP) . When a plurality of data files shall be transmitted/transferred, is in the case TCP a connection established for each data file, at which a negotiation takes place about which logic port that shall be used in the file server, respective the client. TCP is created for a situation where a command for transmission of a data file from a file server to a client is entered via a text based interface for each separate data file which shall be transmitted/transferred. In this case the duration of the entering/input is an essential part of the total time of the entering/input, set up, and transmission. Today, however, there exist graphical interface for transmission/transfer of data files, in which interface there are possibilities for marking of a large number of data files for transmission/transfer. The time for entering/input of the commands consequently have been reduced, which results in that the users experience the time of set up of the connection and the transmission/ transfer of the data file as the essential cause of delays. Further is in TCP also used so called "slow start" in order to avoid overload of the network. By "slow start" is meant that transmission speed of the connection in an initial phase is kept low to later increase to a speed which the available bandwidth allows. All in all, the set up of a new connection and the use of "slow start" for each data file which shall be transmitted/ transferred results in a poor utilization of the available bandwidth at transmission/transfer of a plurality of data files. Summary of the invention A general aim of the present invention is to effect a method for transmission/transfer of a plurality of data files which utilizes available bandwidth in an efficient way. This aim is achieved by a procedure according to the enclosed patent claims. The invention is based on the knowledge that the main bottleneck at transmission/transfer of a plurality of data files today is in the management and the communication at the establishing of a transmission channel. This is due to the fact that the bandwidth in the intra networks of today, and also in the Internet of today, has heavily increased, whereby the time it will take to make the transmission/ transfer itself of a data file after a connection has been set up can be strongly reduced if the bandwidth were utilized efficiently. At the same time, the time for the set up of a transmission channel is essentially the same. According to one aspect of the invention is achieved a procedure at transmission/transfer of a plurality of data files from a transmitting unit to a receiving unit where control commands for request for transmission/transfer of a plurality of data files are received. As response to said control commands, the plurality of data files are placed in a buffer for data files which shall be transmitted/ transferred. Further, the plurality of data files in the buffer are transmitted/transferred from the transmitting unit to a receiving unit via just one asynchronous transmission channel. By transmitting the plurality of data files via just one asynchronous channel, consequently only one transmission channel need to be established. This results with advantage in a considerably shorter time for establishing transmission channels at transmission/transfer of a plurality of data files than known procedures where a new transmission channel is established for each data file which shall be transmitted/transferred. Further, the use of "slow start" is limited to one time, which results in a better utilization of the bandwidth than procedures according to known technology where "slow start" is used at the transmission/transfer of each data file. All in all, a procedure according to the invention results in a considerably shorter time from when the transmission/ transfer of a plurality of data files has been requested until the plurality of data files have been transmitted/ transferred than corresponding time for known procedures where a transmission channel is established for each data file. The control commands which are received in the procedure according to the invention are preferably received via just one asynchronous control channel, at which a share of the control commands are received at the same time as any data file of said plurality of data files is transmitted/transferred and a share of said plurality of data files is placed in said buffer at the same time as any data file of said plurality of data files is transmitted/ transferred. In this way also data files which have been requested by means of control commands which have been received after the transmission/transfer has started can be transmitted/transferred in the only transmission channel. An advantage of this is that the transmission/transfer can be made in a shorter time than if a new transmission channel has to be established for transmission of files which have been requested after the transmission has started. In one embodiment of the invention, the plurality of data files are transmitted/transferred after each other over a TCP-connection. To make it possible to distinguish each data file from the others, is in this embodiment also transmitted/transferred a start byte, which indicates the start of a data file, and an end byte, which indicates the end of a data file, for each data file. In another embodiment of the invention, each of said plurality of data files are divided into segments, and these segments are packeted in a data part of data packet each. These data packets are provided with a head each which includes administrative information and the plurality of data files are transmitted/transferred in said data packets. According to this embodiment, the administrative information can be utilized to distinguish a data file from the other data files. In this respect the administrative information preferably includes an identification of the data file to which the data packet relates. This embodiment also makes possible a simple way to transmit/transfer data files in just any sequence. In this respect, control commands for request for transmission/transfer of a prioritized data file are received in the transmitting unit. The prioritized data file is divided into segments and the segments are packeted in a data part of a prioritized data packet each. The prioritized data packets are each provided with a head which includes an identification of the prioritized data file to which the prioritized data packet relates. The prioritized data packets are then transmitted/transferred prior to other data packets. Further there is according to this embodiment, alternative ways to distinguish a data file from other data files by different types of data packets being transmitted/ transferred. With this aim, the administrative information further preferably includes a type designation. The packets which include a segment consequently include a type designation which indicates that the data part of the data packet includes a segment of a data file. In a first alternative way to distinguish data files is, for each of the plurality of data files, a data packet transmitted/ transferred which includes a type designation which indicates that the data part of this data packet includes a size of a data file. The data part of this data packet then includes the size of the data file to which this data packet relates. In a second alternative way is transmitted/transferred the last segment of each of the plurality of data files in a data packet the head of which includes a type designation which indicates that the data part of the data packet includes the last segment of a data file. One advantage of this is that the transmission will be of shorter duration than for known methods where different files are marked off by a new connection being set up. Brief description of the drawings The invention will be described in detail in the following with reference to enclosed drawings, in which Figure 1 shows a system in which the present invention can be applied with advantage, Figure 2 shows a flow chart for a first embodiment of a procedure according to the invention, A = Start B = Receive control commands C = Place files in buffer D = Add indication for start of file and end of file E = Transmit/transfer files F = Stop Figure 3 shows a flow chart for a second embodiment of a procedure according to the invention, A = Start B = Receive control commands C = Divide files into segments D = Place segments in the data part of a data packet E = Place data packets in buffer F = Transmit/transfer data packets G = Stop Figure 4 shows a data packet which is used at the embodiment in Figure 3. Description of preferred embodiments In Figure 1 is shown a system in which the present invention can be applied with advantage. Between a computer 100 and a file server 102 a control channel 104 and a transmission channel 106 can be established. In connection to the file server there is a file system 108 and a buffer 110. The control channel and the transmission channel are established for instance by means of TCP-connections between logic ports (not shown) in the computer 100 and the file server 102. At transmission/transfer of data files from the file server 102 to the computer 100, the data files are taken from the file system 108 and are placed in the buffer 110 before they are transmitted/transferred via the transmission channel 106. In the following a first embodiment of a procedure according to the invention will be described with reference to Figure 2, in which a flow chart for this embodiment is shown. A user of a receiving unit, such as a computer, wants to derive a plurality of data files from a transmitting unit, such as a file server by means of FTP. Consequently a transmission channel is established in form of a TCP-connection from a logic port in the transmitting unit to a logic port in the receiving unit according to procedures which are known to the expert. Further are also established a corresponding TCP-connection for a logic port in the transmitting unit to a logic port in the receiving unit, at which this TCP-connection functions as a control channel for transmission of control commands from the receiving unit to the transmitting unit. According to known procedures, the user then transmits/transfers control commands for request for transmission/transfer of the plurality of data files. Of course can also other control commands be transmitted, such as control commands for navigation and listing of data files etc. The transmitting unit then receives the control commands for request for transmission of the plurality of data files in a step 200. Each data file of the plurality of data files is taken from a file system in connection to the file server and is placed in a buffer for data files which shall be transmitted/transferred in a step 202. For each data file in the buffer a start indication is placed which indicates the beginning of the data file, and an end indication, which indicates the end of the data file, in a step 204. The plurality of data files are then together with said start and end indications transmitted/transferred from the transmitting unit to the receiving unit via the transmission channel. By the files being placed in a buffer they can be transmitted/transferred as just one flow of byte, which in its turn results in that they can be regarded as one data file with regard to the transmission. This means that just one TCP-connection can be used for the transmission/transfer of all the files. Instead of, as according to known procedures, indicating the end of the transmission of a file by the TCP-connection being disconnected, the start and end indications are utilized to distinguish between the data files in the receiving unit. In the following, a second embodiment of a procedure will be described with reference to Figure 3 and Figure 4. In Figure 3 a flow chart for this embodiment is shown, and in Figure 4 a data packet which is used in this embodiment is shown. As for the embodiment which is described with reference to Figure 2, a user of a receiving unit, such as a computer, wants to derive a plurality of data files from a transmitting unit, such as a file server, by means of FTP. A transmission channel and a control channel are established in form of TCP-connections and the user transmits/transfers control commands for request for transmission/transfer of the plurality of data files according to what is described above with reference to Figure 2. According to this embodiment, the transmitting unit then receives the control commands for request for transmission/transfer of the plurality of data files in a step 300. Each data file of the plurality of data files are now divided into segments which are packeted in a data part of a data packet each, 400 (see Figure 4) . The size of the segments can be chosen freely. The data packets consist of a head 402-406 for administrative information and a data part 408 for data. The head 402-406 includes a type byte 402 which indicates which type of data the data part of the data packet includes. The types of data which the data part of a data packet can contain is a name of a data file, a size of a data file, or a segment of a data file, which are indicated by a type byte with the value 1, 2 respective 255. Data packets the data part of which include different types of data consequently have different type byte. The head 402-406 further includes three size byte which include the size of the data part of the data packet expressed in number of byte, and four file identity byte which include an identification of the data file to which the data packet relates. When a segment has been packeted in a data packet this data packet is placed in a buffer in a step 306. For each data file is also created a data packet 400 of above described type, the type byte of which indicate that the data part of the data packet includes a name of a data file, and the data part of which includes the name of the data file to which the data packet relates. Further are created for each data file a data packet 400 of above described type, the type byte of which indicate that the data part of this data packet includes a size of a data file, and the data part of which includes the size of the data file to which this data packet relates. All data packets are then transmitted/transferred in a step 308 via the transmission channel. The data packets can be regarded as a data file with regard to the transmission. This means that just one TCP-connection can be used for the transmission/transfer of all files. Instead of, as according to known procedures, indicating the end of the transmission/transfer of a file by the TCP-connection being disconnected, the administrative information in the data packets are utilized for distinguishing between the data files in the receiving unit. Examples of the data packets which are transmitted/transferred at the transmission/ transfer of the data file "filename.bin" of 5 kB is shown in Table 1 below. Table 1 TYPE SIZE ID DATA 1 11 1 "filename.bin" ] 2 4 1 5000 ] 255 1024 1 1 kB da ta from file name . bin] 255 1024 1 1 kB da ta from file name . bin] 255 1024 1 1 kB data from file name . bin] 255 1024 1 1 kB da ta from file name . bin] 255 1024 1 1 kB da ta from file name . bin] As an alternative to transmitting/transferring a data packet which indicates the size of the data file for each data file, a data packet the type byte of which indicates that it contains the last segment of a data file can be transmitted/transferred for each data file to make it possible for the receiving unit to know when the whole data file has been received. According to the embodiment which has been described above with reference to Figure 3, data packets from different data files can be alternated at the transmission/ transfer. Said file identity byte causes that the receiving unit knows to which data file a data packet relates, and said size byte causes that the receiving unit can find next data packet. For instance can control commands which are received in the file server indicate that the data file which is requested shall be transmitted/ transferred in data packets which are prioritized. This is for instance suitable if transmission/transfer of a big data file has started and the user wants to transmit/ transfer a small data file before the transmission/transfer of the big file has been finished. In Table 2 there is an example of the data packets which are transmitted/ transferred when a small data file "smallfile.bin" of 2 kB is transmitted/transferred prioritized at the same time as the big data file "bigfile.bin" of 10MB is transmitted/ transferred. Table 2 TYPE SIZE ID DATA 1 11 1 "bigfile.bin" ] 2 4 1 10000000 ] 255 2048 1 1 kB da ta from bigfile . bin] 255 2048 1 1 kB da ta from bigfile . bin] 1 12 2 "smallfile.bin" ] 2 4 2 2000 ] 255 1024 2 1 kB data from small_ile.bin] 255 1024 2 1 kB da ta from smallfile . bin] 255 2048 1 1 kB da ta ' from bigfile . bin ] ] 255 2048 1 kB da ta from bigfile . bin ] It is realized that the size which has been selected for the segments will influence the period of time before a prioritized data file can be transmitted/transferred after the control command for transmission/transfer of the prioritized data file has been received in the transmitting unit. It is also realized that the data files which are transmitted/transferred in the data packets need not be a data file in the transmitting unit, but also can be information about the file system in the transmitting unit, such as listing of catalogs etc. In this way a list over a part of the catalogs in the transmitting unit can be transmitted/transferred in prioritized data packets during the transmission/transfer of a data file. Shown embodiments of the present invention can with advantage be realized in an implementation which utilizes File Transfer Protocol (FTP) .

Claims: PATENT CLAIMS 1. Procedure at transmission/transfer of data files from a transmitting unit to a receiving unit, including the steps to, in a transmitting unit, receive control commands for request for transmission/transfer of a plurality of data files, to, as response to said control commands, place said plurality of data files in a buffer for data files which shall be transmitted/transferred, and to transmit/transfer said plurality of data files in said buffer from said transmitting unit to a receiving unit via just one asynchronous transmission channel. 2. Procedure as claimed in patent claim 1, at which said control commands are received via just one asynchronous control channel. 3. Procedure as claimed in patent claim 2, at which a share of said control commands is received via said control channel at the same time as any data file of said plurality of data files is transmitted/transferred and at which a share of said plurality of data files is placed in said buffer at the same time as any data file of said plurality of data files is transmitted/transferred. 4. Procedure as claimed in any of the patent claims 1- 3, at which said transmission channel is a TCP-connection. 5. Procedure as claimed in any of the patent claims 2- 4, at which said control channel is a TCP-connection. 6. Procedure as claimed in patent claim 4, at which said plurality of data files are transmitted/transferred after each other together with a start indication, which indicates the start of a data file, and an end indication, which indicates the end of a data file, for each data file. 7. Procedure as claimed in any of the patent claims 1- 5, further including the steps to divide each of said plurality of data files into segments, to packet said segments in a data part of a data packet each, and to provide said data packets with a head each, which includes administrative information, at which said plurality of data files are transmitted/transferred in said data packets. 8. Procedure as claimed in patent claim 7, at which said administrative information includes an identification of the data file to which the data packet relates . 9. Procedure as claimed in patent claim 8, further including the steps to, in said transmitting unit, receive control commands for request for transmission/transfer of a prioritized data file, to divide said prioritized data file into segments, to packet said segments in a data part of a prioritized data packet each, to provide each of said prioritized data packets with a head which includes an identification of the prioritized data file to which the prioritized data packet relates, and to transmit/transfer said prioritized data packets prior to other data packets. 10. Procedure as claimed in patent claim 8 or 9, at which said administrative information further includes the size of the data part of the data packet and a type designation which indicates that the data part of the data packet includes a segment of a data file. 11. Procedure as claimed in patent claim 10, further including the step to, for each of said plurality of data files, transmit/transfer a data packet which includes a head and a data part, at which said head includes a type designation which indicates that the data part of the data packet includes a name of a data file, the size of the data part of the data packet, and an identification of the data file to which the data packet relates, and at which said data part includes the name of the data file to which the data packet relates. 12. Procedure as claimed in any of the patent claims 10-11, further including the step to, for each of said plurality of data files, transmit/transfer a data packet which includes a head and a data part, at which said head includes a type designation which indicates that the data part of this data packet includes a size of a data file, the size of the data part of the data packet, and an identification of the data file to which this data packet relates, and at which said data part includes the size of the data file to which this data packet relates. 13. Procedure as claimed in any of the patent claims 10-13, a which the last segment of each of the plurality of data files are transmitted/transferred in a data packet the head of which includes a type designation which indicates that the data part of the data packet includes the last segment of a data file. 14. Computer program including program steps for performance of the steps in a procedure according to any of the patent claims 1-12. 15. A/one by a computer readable medium including instructions for performance of the steps in a procedure according to any of the patent claims 1-12. 16. Data packet at transmission/transfer of data files, including a head for administrative information, and a data part for data, at which said head includes a number of type byte which indicate which type of data which the data part of the data packet includes, a number of size byte which include the size of the data part of the data packet, and a number of file identity byte which include an identification of a data file. 17. Data packet as claimed in patent claim 16, at which said type byte include a type which indicates that the data part of the data packet includes a segment of a data file, and at which said data part includes a segment of the data file which said file identity byte identifies. 18. Data packet as claimed in patent claim 16, at which said type byte include a type which indicates that the data part of the data packet includes a name of a data file, and at which said data part includes the name of the data file which said file identity byte identifies. 19. Data packet as claimed in patent claim 16, at which said type byte include a type which indicates that the data part of the data packet includes a size of a data file, and at which said data part includes the size of the data file which said file identity byte identifies. 20. Data packet as claimed in patent claim 16, at which said type byte include a type which indicates that the data part of the data packet includes a last segment of a data file, and at which said data part includes the last segment of the data file which said file identity byte identifies .

Inventors: BERGSTEN ANDERS, BORG NIKLAS, JOHANSSON JOACHIM, BERGSTEN, ANDERS, BORG, NIKLAS, JOHANSSON, JOACHIM
Applicants: BERGSTEN ANDERS, BORG NIKLAS, JOHANSSON JOACHIM, TELIA AB, BERGSTEN, ANDERS, BORG, NIKLAS, JOHANSSON, JOACHIM, TELIA AB (PUBL)
Application year: 2001
Main classification: G06F13
IPC codes: H04L29