一.TCP通信特点:1.点对点的连接。
2.保证数据准确性,内容,时许无误。
二.TCP三次握手:
流程:1.握手前服务器必须处于listen状态。
2.第一次握手包由客户端发往服务器,此包为请求包,发完后客户端处于SYN_SEND状态。
3.服务器收到客户端第一个握手包后,发送给第二个握手包,此包即为确定包也是请求包,发送完成后服务器处于SYN_RCVD状态。
4.客户端收到服务器会包后,确定数据正常后发送第三个握手包,此包为确认包,发送完成后客户端处于ESTABLISTHED状态。
5.服务器收到最后一个确认包后确认无误后状态变更为ESTABLISHED。
-
三.握手为什么需要三次?为什么不是两次或四次?
1.握手的目的在于客户端与服务器都能确认双方的收发数据包正常。
2.服务器第一个握手包收到后便能确定客户端的发送功能与服务器的接受功能正常。
3.客户端收到第二个握手包后,已经能确认出双方收发都没有问题,但此时服务器并不知道自己发送是否正常,客户端能否正常收到数据包。
4.服务器收到第三个握手包时才能确认自己的发送功能与客户端接收功能正常。
5.三个数据包才能确认双方都能正常发送与接收数据,两个不够,而四个会冗余,降低性能。