1.建立通信的前提
(网络畅通的情况下)建立通信之前,必须确保发送的请求数据有效。
例如,类似于在电话通信中,比如随意拨一个号码,并不是所有号码都能成功接通。必须在建立通信之前,确保拨打的号码必须有效!
2.三次握手协议作用
目的是,在服务器端(Server)与客户端(Client)之间,通过验证请求数据,进行相互确认消息,从而建立两端的连接。
3.TCP(Transmission Control Protocol)首部格式
主要的参数:
a.序号(sequence):TCP 连接中传送的数据流中的每一个字节都编上一个序号. ----seq
b.确认(acknowledgement):收到对方的报文段的数据的序号。如果确认号为Ack=SYN+1,则认为数据有效。 ---Ack
c.发送连接请求(synchronous):发送一个连接请求。 ---SYN
d.终止连接请求(finish):数据已发送完毕,并释放连接。 ---FIN
4.三次握手协议
(1)第一次握手:(客户端)
客户端将标志位SYN置为1,---发送请求
主机产生一个随机码(seq=C),并将该数据包发送给服务器,
客户端进入SYN_SENT状态(请求连接),
等待服务器确认。
(2)第二次握手:(服务器)
服务器收到SYN包,必须确认客户的SYN(ack=C+1),
同时自己也发送一个SYN+ACK包,(SYN、ACK均置为1,seq=S) ---请求数据有效
此时服务器进入SYN_RECV状态(接收请求)。
(3)第三次握手:(客户端+服务器)
客户端收到确认后,检查ack是否为C+1,ACK是否为1,如果正确则将标志位ACK置为1,ACK=SYN+1,ack=S+1,将该数据包发送给服务器,
服务器检查ack是否为S+1,ACK是否为1,如果正确则连接建立成功,
客户端与服务器进入ESTABLISHED状态(请求建立),
完成三次握手,随后客户端与服务器之间可以开始传输数据了。