I asked a Professor at the local university for an answer to your query. His main topic is networking with an emphasis on performance, so I figured he'd be the right person to ask. He also references
his book. The rest of the post is his text via email. Here you go....
>- I don't understand if those protocols (Stop-and-wait ARQ, Go-Back-N
>ARQ and Selective Repeat ARQ), are just from the data link layer or can
>be used in other layers, for example, tanenbaum explains them in this
>layer...
These are just protocol functions, they can be used at other
layers, too; typically they are used at the link and transport
layers.
>- These protocols can only be used by conection-oriented protocols...
>am i right??
It's more precise to say that they are typically used
by connection-oriented protocols. I think you're generally
right, but I'd just hesitate to say "can only" because
someone might be able to construct a weird counter example.
>- What kind of ARQ uses TCP, because tanenbaum says it uses Selective
>repeat, but i think that TCP doesn't use NACKs, so it can't be
>Selective Repeat... in other places i found that it uses Go-Back-N...
>but i think it can't use go back N because the client size window is
>bigger than 1... (go back N uses in client side a windows of 1 mss)...
>i'm very confused... can someone explain it to me?
TCP uses a strange mixture. TCP Tahoe, the first version of
TCP, which only relied on Timeouts as an indication of loss,
used only ACKs and was a strict Go-Back-N protocol. A bit
later, "fast retransmit / fast recovery" was added. This is
a feature where TCP decides that, upon receiving 4 ACKs requesting
the same packet (one "normal" ACK plus 3 duplicates, so people
talk about "3 DupACKS"), a missing packet should be selectively
retransmitted. So, with this feature, it becomes an "essentially
Go-Back-N but occasionally Selective-Repeat" protocol, where
the NACKs used for SR are not explicit.
Hey, did I mention that this is all explained in my book? :-)
Amazon.com: Network Congestion Control: Managing Internet Traffic (Wiley Series on Communications Networking & Distributed Systems): Michael Welzl: Books
>- Ethernet and Token Ring uses ARQ??? I think they don't use because
>they are not conection oriented protocols... They just use medium acces
>protocols...
In LANs, a link layer typically consists of two sub-layers:
Logical Link Control (LLC), which is where you would find ARQ,
and Medium Access Control (MAC), which is what you say here.
Both Ethernet and Token Ring are Link Layer standards and
as such encompass both. Ethernet has a simple ARQ with only
1 frame being retransmitted. About Token Ring, I honestly don't know.
>- An application layer protocol like http, does it use ARQ??? Is it
>necessary to use ARQ?? because for example HTTP uses TCP and TCP
>guarantees that the information on one side is the same that on the
>other one... so i don't think it's necessary to implement an ARQ over a
>protocol that uses TCP... is that right???
You're completely right, and that's why app layer protocols
normally don't do that kind of thing. You could put it in
the app layer if you want something else than what TCP does,
by using UDP.
Good luck for your test!