Well, while transferring any amount of data from one device to another, we start to looking at the time duration. After some period, that time decreases per sec. You want to know why that is?So, the reason behind it is windowing, which is part of the TCP transmission. TCP transmission require establishment of connection for transmission of data.Let's assume a transfer taking place from device A to B of about 4 GB of data. At first, the system display will say that it takes 1 day to complete, then 12 hrs, 6 hrs, 2 hrs, 1 hr, 30 mins and finally, it complete the task in 2 or 3 min. This is all because of windowing.At the beginning, during the the establishment of the connection, A will send only 1 packet to B and wait for acknowledgement. Then, when acknowledgement is received, packet B will ask for more information.Next time, A will send 10 packets and ask for more packets than previously requested from B. Similarly, A will send 100, 1000 packets and again B will ask for more packet than 1000s.If A fails to send more than 1000 packets, then B realizes that it has to buffer the capacity of 1000 packets. So, A sends packets in fixed 1000 numbers. Then, the connection is established, as the rate of transferring of data is uniform.And, time started to fall down while the data was transferring.