I had the same doubt and was getting nowhere close to grasp the concept . After banging my head for a few days i now think i have understood the basic concept. We define utilization as the total time used by the link to send good data divided by the total time link is engaged. In stop and wait we send one frame and do nothing good unless we receive an acknowledgement this presents a low utilization .

Total time link is used is :

**t<sub>transmission</sub> + 2* t<sub>prop</sub>**


total time link is used for sending good data : 

**t<sub>transmission</sub>**

Consider the sliding window now we send one frame and instead of waiting for the acknowledgement we continue transferring frames until the acknowledgement arrives. The total time for the link remains the same however we have increased the good time to:

 **WindowSize * t<sub>transmission</sub>.**

Why isn't the total time : **WSxt<sub>transmission</sub> + 2* t<sub>prop</sub>** ?

We have sent all the additional frames between the  time frame of sending the first frame and receiving the first acknowledgement.
This time frame is equal to :

**t<sub>transmission</sub> + 2* t<sub>prop</sub>** and not **WSxt<sub>transmission</sub> + 2* t<sub>prop</sub>**


We have just increased the fraction of this total time from :

**t<sub>transmission</sub>.**  
 to 

**WindowSize * t<sub>transmission</sub>.**

Here is a [Link][1]consider the figure 7.11 in the same . It beautifully illustrates the concept. I wasn't sure of posting the picture due to copyright issues.
Cheers!


  [1]: http://web.cse.ohio-state.edu/~kannan/cse3461-5461/Cse3461.D.DataLink.09-11-2012-cont.pdf