FIG. 1 illustrates a system 10 for transferring data, e.g., electronic mail messages, over a network 12. The system 10 provides for uploads and downloads of data frames between client devices 14, 16 and a host device 18. The client devices 14, 16 can be personal computers with network interfaces, e.g., modems 15, 17, and the network 12 can include a telephone line. The host device 18 includes a computer 20 and a storage device 22, e.g., one or more hard disks. The host computer 20 writes data uploaded from the client devices 14, 16 to locations in the storage device 22 and reads data for downloads to the client devices 14, 16 from locations in the storage device 22. The host and client devices 18, 14, 16 transfer data using various known protocols.
As used in this document, “uploads” and “downloads” refer to data transfers from the viewpoint of the host device 18. An upload transfers one or more data frames from a client device 14, 16 to the host device 18. A download transfers one or more data frames from the host device 18 to a client device 14, 16.
As used in this document, a frame, e.g., a data frame, is a separately transferred message on the network 12.
FIGS. 2A and 2B show the formats 30, 40 of data frames that can be used by the system 10 of FIG. 1. Each data frame 30, 40 has segment for a token 32, 42 to indicate whether the frame is an upload or a download. Each data frame 30, 40 has a segment 34, 44 to identify the type of the client device 14, 16. The client devices 14, 16 can be either of two types. The first type sends data frames with about 119 bytes of data, and the second type sends data frames with about 1,000 bytes of data. Each data frame 30, 40 also has a segment 36, 46 for the data being transferred. The transferred data 36, 46 can be encoded to remove character string runs to minimize the length of the data.
An upload or download of a file generally involves sending a sequence of data frames 30, 40 in which each member of the sequence contains a sequential portion of the data file being transferred. A transfer session starts with the transfer of the data frame 30, 40 for the first data portion of the file and ends with the transfer of the data frame 30, 40 for the last data portion of the file. The system 10 of FIG. 1 transfers one data file at a time between any particular client device 14, 16 and the host device 18.
FIG. 3 illustrates how the host computer 20 stores uploaded data in the storage device 22. The host computer 20 converts the “TOKEN_UP” token in each uploaded frame to the download token, “TOKEN_DOWN”. Then, the host computer 20 appends the converted frame 40 to a file 51 of the storage device 22 assigned to the particular data transfer session. Each successive data frame of the session gets appended to the same file 51, i.e. data frames on lines 50, 52, 54 of the storage device 22. The host computer 20 uses a new file 55 to store the data frames 56, 57 for the next upload session, e.g, from a new client device 14, 16.
To perform a download, for example, to a different client device 14, 16 for which the uploaded data was intended, the host computer 20 sequentially reads the lines 50, 52, 54 for each converted data frame of the file being downloaded. The computer 20 sends, in the order read, each frame to the client device 14, 16 requesting the download.
The host computer 20 uploads or downloads all data frames for a file during a single data transfer session. The host computer 20 will not start another upload or download for a client device 14, 16 until completing the present data transfer session for that client device 14, 16. Data transfers are constrained to relatively slow speeds, e.g., 28.8 kilobits per second or less, and to relatively small packet sizes so that the transfer does not overflow input buffers of the receiving device.