文章目录
- 累积应答
- TCP流量控制——滑动窗口
累积应答
我们前面所说的是我们每发送一个包对端就要回一个ack,那么这样效率太慢了,我们这里就有一个累积应答的机制,就是说我们客户端累积发送多个包,然后服务端再统一进行回复。
TCP流量控制——滑动窗口
那么我们累积应答时具体发送多少数据之后统一回复一个ack是由什么决定的呢,就是由我们之前所说的窗口的大小来决定的。
- 窗口的概念:TCP是每发送一个数据,都要进行一次确认应答。当上一个数据包收到了应答了,再发送下一个。这个模式就有点像我和你面对面聊天,你一句我一句。但这种方式的缺点是效率 比较低的。
- 有了窗口就可以指定窗口大小,窗口大小就是指无需等待确认应答,而可以继续发送数据的最大值。
- 窗口大小是由接收方告诉发送方的,可以在ACK中,接收端与发送端第一次交换窗口大小是在三次握手的第二次和第三次握手。
- 发送方发送的数据大小不能超过接收方的窗口大小,否则接收方就无法正常接收到数据。
当发送数据过程中有一个或多个包丢失,从序号小的位置回复一个ack,让发送端重新发送。
流量控制:
所谓流量控制,主要是接收方传递信息给发送方,使其不要发送数据太快,是一种端到端的控制。主要的方式就是返回的ACK中会包含自己的接收窗口的大小,并且利用大小来控制发送方的数据发送。