一、TCP协议概念。
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的传输层协议。它主要用于在计算机网络中,通过建立可靠的通信连接来进行数据传输。
TCP协议的特点如下:
- 可靠性:TCP使用确认、重传和超时等机制,确保数据可靠地传输到目标主机,并且按照正确的顺序组装。
- 面向连接:数据传输之前需要在发送端和接收端建立连接,传输完成后再释放连接。
- 全双工通信:TCP允许同时进行双向的数据传输,即发送方和接收方可以同时发送和接收数据。
- 流量控制:TCP通过滑动窗口机制进行流量控制,控制发送速率,以适应接收方的处理能力。
- 拥塞控制:TCP通过拥塞窗口机制和慢启动算法来进行拥塞控制,防止网络拥塞。
- 高效性:TCP使用各种优化算法,如快速重传、快速恢复等,提高数据传输的效率。
- 适用性广泛:TCP被广泛应用于互联网和局域网等各种计算机网络中,支持各种应用程序的可靠数据传输。
二、TCP工作流程。
通过NDS获取IP地址之后,就会把HTTP的传输工作交给TCP协议完成。
三、TCP报文格式。
四、三次握手和四次挥手。
- 为什么需要四次挥手?
把ACK和FIN分开发送的原因是因为当主动方在数据传送结束后发出连接释放的通知,由于被动方可能还有必要的数据要处理,所以会先返回 ACK 确认收到报文。当被动方也没有数据再发送的时候,则发出FIN通知,对方确认后才完全关闭TCP连接。 - 为什么TIME_WAIT等待时间是2MSL?
MSL是报文的最大生存时间,超过这个时间,报文就将丢弃。
确保对方能够收到最后一个ack报文,如果服务端没有收到最后的ACK报文,就会触发超时重传FIN报文,从客户端发送ACK报文到接到到服务端重传的FIN报文,一去一来,最多就需要2MSL。