TCP三次握手

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接

位码即tcp标志位,有6种标示:

  1. SYN(synchronous建立联机) :
    表示同步序号,用来建立连接。SYN标志位和ACK标志位搭配使用,当连接请求的时候,SYN=1,ACK=0;连接被响应的时候,SYN=1,ACK=1;这个标志的数据包经常被用来进行端口扫描。扫描者发送一个只有SYN的数据包,如果对方主机响应了一个数据包回来 ,就表明这台主机存在这个端口;但是由于这种扫描方式只是进行TCP三次握手的第一次握手,因此这种扫描的成功表示被扫描的机器不很安全,一台安全的主机将会强制要求一个连接严格的进行TCP的三次握手;

  2. ACK(acknowledgement 确认) :
    此标志表示应答域有效,有两个取值:0和1,为1的时候表示应答域有效,反之为0;

  3. PSH(push传送)

  4. FIN(finish结束) :

    终结的意思, 用来释放一个连接。当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要求释放连接。

  5. RST(reset重置)

  6. URG(urgent紧急)

Sequence number(顺序号码)
Acknowledge number(确认号码)

三次握手的过程:

TCP三次握手
第一次握手:主机A发送联机位码syn=1,随机产生seq number=x 的数据包到主机B;
第二次握手:主机B由SYN=1知道,A要求建立联机,主机B收到请求后要确认联机信息,向A发送确认位码ack number=(主机A的seq number +1),syn=1,ack=1,随机产生seq=y 的包,以上信息返回到主机A;
第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。
完成三次握手,主机A与主机B开始传送数据。