计算机网络之传输层
明天就考计算机网络,暂时先简单的写一写 TCP 协议,日后再继续写完这一层吧。
1. 什么是 TCP 协议?
实际的传输信道总是不够理想的,不可避免的会发生一些差错,这就需要我们制定一些规则来使得传输变得可靠,TCP 协议就这样应运而出。
1.1 停止等待协议
这是 TCP 协议中采用的最简单的一种实现可靠传输的协议。如下图,「停止等待」就是发送端发送一个分组后,等待接收端返回的确认消息,收到确认消息后才发送下一个分组。
A 发送第一个分组后,会建立一个「超时计时器」,不管发生了任何事 ( 分组丢失、超时,或者 确认消息丢失、超时),只要 A 端未在规定时间内收到 B 端发送的确认消息,A 端都会重新发送此分组,也称作「自动重传协议」 ARQ 协议。
但是此种方式使得信道利用率非常低,如图:
这里引入信道利用率的计算公式:
A 发送分组的时间 TD,往返时间 RTT ,确认发送时间 TA,忽略 A 和 B 确认分组的时间,信道的利用率 U 可用以下公式计算: U = TD / ( TD + RTT + TA )
那么如何改进这种方式呢?这就牵扯出了「连续 ARQ 协议」,即一次性发送多个分组出去,极大提高信道利用率。如图:
1.2 TCP 的拥塞控制
当对网络中某一资源的的需求大于该资源所能处理数据的能力时,称作「拥塞」。
那么处理拥塞的解决方法有哪些呢?
- 慢开始
- 拥塞避免
- 快重传
- 快恢复