Abstract
In this paper, we propose an efficient direct and indirect file transfer protocol (C2CFTP) that transfers files between clients in a client-server system. Existing file transfer methods use an indirect transfer method through a server to transfer files between sending and receiving clients or a direct transfer method that connects a direct data channel between clients. However, in the case of indirect transmission, unnecessary file input/output (I/O) is required by the server, and in the case of direct transmission, a problem arises in that the file transmission delay time is increased due to channel management cost. The proposed C2CFTP can omit unnecessary file I/O overhead by relaying the file to the receiving client instead of storing the file at the server for indirect transmission. For direct transmission, instead of connecting a data channel every time a file is transmitted, the channel connection overhead is reduced while minimizing the waste of the number of direct channels between clients by maintaining the first connected channel while the file transfer is required within a predetermined time. File transfer experiments show that the proposed file transfer protocol has a reduced file transfer delay time than the existing methods. In addition, it was confirmed that the direct transfer method is suitable for transferring large files, and the indirect transfer method is suitable for transferring multiple small-sized files in a bundle.
Highlights
The file transfer function is an important service commonly used in various contemporary distributed applications such as online games, online social networks, chat applications, cloud storage services, and Internet of Things(IoTs)
We propose a protocol (C2CFTP) that can efficiently transfer files between clients in a client-server architecture by removing the unnecessary file I/O at the server and reducing the overhead of dedicated channel management so that we can reduce the file transfer delay according to different file-transfer requirements of applications
The proposed C2CFTP is included as a file transfer service of CM, a communication framework, and provides two methods: the direct transmission and the indirect transmission
Summary
The file transfer function is an important service commonly used in various contemporary distributed applications such as online games, online social networks, chat applications, cloud storage services, and Internet of Things(IoTs). This method is similar to the previous two-step file transfer, which was raised as a problem, but the server does not perform file I/O because the file blocks received by the server is transmitted directly to the receiving client rather than stored as a separate file Both the direct and indirect C2CFTPs send and receive control CM events for synchronization of the sending and receiving clients before and after the file transfer task. The main difference from the direct C2CFTP is that when transferring a file block in step (5), it uses the default non-blocking channel with the server, not a dedicated blocking channel That is, both control CM events and file blocks are sent between the two clients via the server. The rest of the steps (3) to (7) are the same as those in the file-push service of the indirect C2CFTP
Published Version (Free)
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have