TCP(Transmission Control Protocol)是传输控制协议,其作用于传输层,是一种提供了面向连接通信服务的协议
看TCP的英文全称就知道,其主要作用就是传输 、控制,传输的是数据,控制的是在传输过程中丢包后的重发 、分包乱序后的有序重组 、控制数据传输的速率防止网络拥塞等
这也是我们口中一直说的TCP是一种可靠的传输协议的原因。本文就将对TCP的作用过程以及一些机制进行讲解
TCP的通信机制
- 一、TCP连接管理
- 二、分段数据发送
- 三、重发控制
- 四、滑动窗口控制
- 五、滑动窗口的重发控制
- 六、流控制
- 七、拥塞控制
- 八、结束语
一、TCP连接管理
TCP是面向连接进行通信服务的协议,所谓连接,其实就是在两台需要数据交互的主机之间建立一条虚拟的线路,所有的数据交互都是通过这条线路进行的,而TCP就负责这整个线路的创建、销毁、维护管理等工作
在建立连接之前,需要做一些准备,为了确保通信两端是否可以进行正常通信,发送端会通过TCP的首部发送一个SYN包作为建立连接的请求并等待接收端确认应答。如果接收端确认应答并返回一个ACK包,则表示接收端同意与发送端进行通信,然后发送端再次发送一个ACK包给接收端,表示已收到你的同意通信的消息了,此后两端就可以正常通信了;若接收端没有返回给发送端一个确认应答的ACK包,则表示不同意与发送端进行通信,那么两端自然无法进行后续的通信了
两端若在通信完成以后肯定需要断开通信,同样也需要两端互发包来确认是否要断开通信。比如,发送端先发送一个FIN包给接收端,告知想要断开连接,然后接收端可以返回给发送端一个ACK包表示同意你断开连接的请求,紧接着接收端也向发送端发送了一个FIN包,表示其也想断开连接的意愿,发送端在接收到该包后随即返回给接收端一个ACK包表示我也同意你断开连接,这样,两端就断开连接了
总结一下,一次完整的TCP连接的建立与断开至少需要来回发送7个包,其中建立连接需要发3个包,断开连接需要发4个包
我们来看一下完整的通信过程简图
</