1 / 20

Development of a Network-Aware Application

Development of a Network-Aware Application. Daniel Peck. Background.

malini
Download Presentation

Development of a Network-Aware Application

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Development of a Network-Aware Application Daniel Peck

  2. Background • A network-aware application attempts to adjust its resource demands in response to network performance variations. In other words, the application adjusts to the networking environment by trading off the volume, quality and the time needed for the data to be transferred. The application will reduce its demands on the network if there is a drop in bandwidth and increase its demands if there are additional resources.

  3. Purpose • The underlying aim of this project is to develop a Network-Aware Application that focuses on an important part of network-awareness. • Compressed Data Transmission • Has the ability to compress data before sending it out with the potential to reduce network transmission time and reduce total elapsed time.

  4. Why is this useful? • Compression can reduce the transmission time by reducing the amount of data to be transferred.

  5. Can the Application benefit from data compression? • Yes, but it depends on the tradeoff between the reduction of network transmission time and the increase of local processing.

  6. Architecture

  7. Application Pseudo Code • // Control loop • repeat { • compressedDataTransmission( data ) • } until (all data is sent out); • compressedDataTransmission ( data ){ • compressionSpeed = getSpeed(); • compressionRatio = getRatio(); • currentBandwidth = getBandwidth(); • if ( compressedTransfer(data, currentBandwidth, • compressionSpeed, compressionRatio ) ){ • compress(data, &compressiondata); • send( compressiondata ); • } else { • send (data ); • } • }

  8. Compression Module • GZip • Gzip is a standard compression utility commonly used on Unix OS platforms. • Does not consider domain specific information and uses a simple, bitwise algorithm to compress files. • Works in stream mode ( time compression starts, not all data has to be available)

  9. Implementation • Client and server to be written in Java 1.4. • Socket, ServerSocket, java nio package.

  10. Network Module • Monitors the network performance and provides necessary information for the application such a available bandwidth. • What is Available Bandwidth? • How do me measure it?

  11. What is Available Bandwidth? • End to end path with n – links: L1,L2, …, Ln • Their capacities are B1,B2, …, Bn • Traffic loads on these links are C1,C2,…,Cn • Bottleneck link: Lb(1<= b <= n ) where Bb = min(B1, B2,…,Bn) • Tight Link: Lt(1<= t <= n ) where Bt - Ct = min(B1 – C1 , B2 – C2 ,…, Bn - Cn )

  12. What is Available Bandwidth? • The unused bandwidth on the tight link, Bt – Ct, is also the available bandwidth on the path. • In other words, the link with the smallest residual bandwidth.

  13. How to Measure Available Bandwidth • IGI • IGI is a tool that uses active probing to measure available bandwidth between two points on the Internet.

  14. Network Module cont..

  15. Network Module cont..

  16. Network Module cont..

  17. Network Module cont..

  18. Compression Decision Module • Makes final decision whether compression is beneficial. • uncompressedTime = bufferSize / bandwidth; • compressionSize = bufferSize / cRatio; • sendTime = compressionSize / bandwidth; • compressionTime = bufferSize / cSpeed; • totalTime = compressionTime + sendTime;

  19. Decompression Module • Use a simple application layer protocol that tells the client whether or not to decompress the chunk or not. • "filename!isCompressed!totalChunk!filelength! chunkNumber!isCompressed!bufferSize!

  20. Conclusion • On schedule. • Working prototype is finished and ready to be tested.

More Related