一、TCP(传输控制协议)主要功能
1、面向连接
TCP连接需要经过3次握手过程才能建立,确保双方准备好进行数据交换。
2、可靠性
通过序号和确认机制,TCP确保数据包不会丢失、重复或乱序。
3、顺序性
即使数据包在传输过程中顺序改变,接收端也能按照发送端的顺序重组数据。
4、流量控制
通过滑动窗口机制,TCP能够根据接收端的处理能力调整发送速率,防止数据溢出。
5、拥塞控制
TCP通过一系列算法(如慢启动、拥塞避免、快速恢复和快速重传)来适应网络拥塞,优化数据传输效率
二、TCP工作原理(步骤)
1、三次握手
建立连接前,双方通过3次握手确认彼此的连接意愿和初始化序列号。
2、数据传输
在连接建立后,数据以字节流的形式通过网络传输,每个字节都有唯一的序列号。
3、确认应答
接收方对收到的数据包发送确认应答,告知发送方已成功接收。
4、重传机制
如果发送方在一定时间内未收到确认,他会重传未确认的数据包。
5、四次挥手
连接结束时,双方通过四次挥手断开来连接,确保双方都不再发送数据。
三、3次挥手(步骤)
在TCP连接建立前,需要进行三次握手来确保双方都准备好进行通信。
1、第一次握手
客户端发送一个带有SYN(同步)标志的数据包给服务端,并等待确认。
2、第二次握手
服务端收到客户端的SYN包后,回复一个SYN+ACK(同步+确认)包给客户端,表示自己已经准备好了。
3、第三次握手
客户端收到服务端发送的SYN+ACK包后,回复一个ACK(确认)包给服务端,表示自己也准备好了。
四、4次挥手(步骤)
TCP连接一旦建立,就可以双向通信。当通信结束时,需要进行四次挥手来正式关闭连接。
1、第一次挥手
客户端发送一个FIN(结束)包给服务端,告诉服务端自己要关闭连接了。
2、第二次挥手
服务端接收到客户端的FIN(结束)包后,发送一个ACK(确认)包给客户端,表示收到了FIN(结束)包。
3、第三次挥手
服务端发送一个FIN(结束)包给客户端,告诉客户端服务端也想关闭连接。
4、第四次挥手
客户端收到服务端的FIN(结束)包后,发送一个ACK(确认)包给服务端,表示收到了FIN(结束)包,自此连接断开。