I am currently doing lab 3 (very behind, I know) and I am comparing the plots for how many messages delivered in 1 hour for my piggybacking protocol vs the stopandwait protocol and my protocol loses (see plot.html).
My nodes are pretty talkative, and messages take a while to get between them. This scenario would be reasonably ideal for piggybacking. Messages take a long time to get between nodes and so sending an ack and a data frame separately would potentially be slower than waiting for the application layer to generate a frame, piggybacking the ack with the data frame and sending a single frame.
However, as you can see from my results the stop and wait protocol beats my implementation only slightly. I was wondering if anyone else had similar results?
I have played with increasing the propagation delay more and the piggybacking protocol does send more messages than the stop and wait protocol under those circumstances, but the difference is not as pronounced as I would have expected.