TCP如何进行三次握手
2017-06-14 本文已影响23人
来自火星的程序猿
三次握手流程图
名词解释
- SYN(synchronous,同步的),TCP连接的第一个包,是TCP/IP建立连接时使用的握手信号,非常小的一种数据包。
SYN=1,表示要求建立连接
- ACK(acknowledgement,确认),确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符,表示发来的数据已确认接收无误。
- seq(sequence number,序列号),随机产生的包含数字的(seq number=1234567)数据包到服务器。
步骤详解
- TCP协议中,A使用一个SYN包,请求连接,并产生随机序列号x,一起发送到B中。
- B接收到A发送过来的数据,确认A想建立连接。B也使用一个SYN包来请求连接,同时用ACK(值为:1步骤传过来的随机数x+1)作为收到第一次发过来的连接请求的凭证,生成随机数y。将这些数据发送回A。
- A收到ACK的值为传过去的随机数+1,确定是接收方无误。使用ACK(值为:2步骤传过来的随机数y+1)发送给B,告诉已经可以开始传输数据了。
tcp标志位,一共有6种标示:
SYN(synchronous建立联机)
ACK(acknowledgement确认)
PSH(push传送)
FIN(finish结束)
RST(reset重置)
URG(urgent紧急)
Sequence number(顺序号码)
Acknowledge number(确认号码)