I'm creating server/client classes for "Stop & Wait" and "Go Back N" (variant of sliding window) protocols, though I'm unsure on whether I should pursue TCP or UDP. From my current understanding I would implement UDP in "Stop & Wait" whilst TCP in "Go Back N"?

Furthermore would I implement aspects of TCP within my "Stop & Wait"? As I understand "Go Back N" is simply an extension of "Stop & Wait", just without the waiting.

Sorry if the answers are obvious, trying to wrap my head around these protocols.

1 Answer 1


TCP is essentially a refined version of Stop and Wait plus Go back N. If you want to build your own, use UDP.

  • Could I ask why you would use UDP, surely if TCP is a refined version you could simply expand it to Stop and Wait / Go Back N? And even more so if they ARE almost mirrors of TCP then why not use TCP?
    – bemzoo
    Mar 8, 2019 at 14:53
  • Maybe I misunderstood your original question. Are you trying to write your own version of Stop and Wait?
    – Ron Trunk
    Mar 8, 2019 at 14:57
  • Yes, creating both server and client (receiver and client) classes for Stop and Wait and then use that to then create Go Back N.
    – bemzoo
    Mar 12, 2019 at 12:08
  • TCP will give you a reliable stream of data, so there's no point to implementing S&W. You won't have any "reason" to stop or go back, because you will never get packet loss.
    – Ron Trunk
    Mar 12, 2019 at 12:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.