传输协议是客观存在的, 即使你的传输不使用任何已经公开的协议, 你也是在使用一种未公开的协议. 传输协议必须保证基础的要求:
- 错误控制
- 流量控制
数据常常可以划分为帧(或者报文, 分段等), 假设报文的在传输中不会出现损坏, 报文要么丢失, 要求完整地到达目的. ARQ(Automatic Repeat reQuest )是一种错误控制机制, 但是也常常具有流量控制的功能.
ARQ 有如下几种: Stop-and-wait ARQ(停止等待 ARQ), Go-Back-N ARQ(回退 N 帧 ARQ) and Selective Repeat ARQ(选择重传 ARQ).
Stop-and-wait ARQ 是其它两种的基础. 其隐含了"一个传输例程的 Stop-and-wait ARQ"这样的意思. Go-Back-N ARQ 是"多个传输例程的 Stop-and-wait ARQ", 并且为了管理这些例程, 额外添加了其它的协议.