Design and Implementation of Transfer Buffer Sharing Technique for Efficient Massive Data Transfer

  • Cho, Dae-Soo (Division of Computer and Information, Dongseo University)
  • Published : 2008.09.30

Abstract

It is required that a server which communicates with various client simultaneously should have an efficient data transfer model. In Windows$^{(R)}$ environment, the server was generally developed based on IOCP model. Developing the IOCP model, the server generally has one data transfer buffer per client. If the server divides a larger data than the transfer buffer into several fragments, there used to be a problem in sending it to a client, because there is a conflict in a data transfer buffer. That is, CPU requests one data-fragment transfer, then it will request the next data-fragment transfer successively before completing the previous request, owing to the property of overlapped IO model. In this paper, we proposed the transfer buffer sharing technique to solve the conflicting problem. The experimental result shows that the performance of data transfer was enhanced by 39% maximally.

Keywords

References

  1. J. Richter and J. D. Clark, Programming Server-Side Application for Windows 2000, Microsoft Press, 2000
  2. Anthony Jone and Jim Ohlund, Network Programming for Microsoft Windows, Microsoft Press, pp.227-271, 1999
  3. Dinesh Ahuja, 'IOCompletion Port Technique and Asynchoronos I/O Operartion,' Available: http://www.codeproject.com/internet/IOCompletionPort.asp, 2005
  4. Amin Gholiha, 'A simple IOCP Server/Client Class,' Available: http://www.codeproject.com/ internet/iocp_server_client.asp, 2006
  5. Anthony Jones and Amol Deshpande, 'Windows Sockets 2.0: Write Scalable Winsock Apps Using Completion Ports,' Available: http://msdn.microsoft. com/msdnmag/issues/1000/winsock/, 2005
  6. Len Holgate, 'A reusable, high performance, socket server class - Part 1-6,' Available: http://www.codeproject.com/internet/JBSocketServer1.asp, 2002
  7. Oz Ben Eliezer, 'Writing scalable server applications using IOCP,' Available: http://www.codeproject.com/internet/iocp.asp, 2001