Suppose this scenario:
The sender and the receiver share a 1 Mbps bandwith media.
If the sender needs to send a file of 2 Mbit, in an ideal world it will take 2 seconds using the full bandwith.
But in the real world we have two problems:
The 2 Mbit file must be divided in chunks that can be managed by the sending and receiving buffers of the system and because it gives you a more detailed control of errors.
The media has a propagation delay from end to end.
Let's make each chunk of 25000 bits long, giving us a total of 800 chunks.
Let's suppose the media has a propagation delay of 10 milliseconds.
Start-Stop protocol:
Protocols using a start-stop technique send each chunk and stops until an acknowledge returns, in that case and supossing zero errors, to send each chunk of 2500 bits takes 20 milliseconds and give us a bandwith use of 125 Kbps. In that fashion it will take 16 seconds to transmit the file.
Sliding Window protocol:
A sliding window technique allows to send chunks one after another and receive acknowledgments in an asynchronous way.
Ssupposing a window of 10 then the sender put 10 chunks on the media. It takes 100 milliseconds and before sending the next one, the acknowledge for the first chunk must have arrived. If everything is right and there are zero errors, it will be 110 milliseconds for 25000 bits giving us a use of 227 Kbps ( more efficient that the first case). It will take 8,8 seconds to send the file.
A bigger chunk (5000 bits) can give us 455 Kbps and a transfer time of 4,4 seconds.
All this supossing zero errors.
The bandwith is a limit but the data transfer is a result of the protocol used, the propagation delay and the errors in the media.