tcp的三次握手连接

TCP握手协议 :在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
1、第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; SYN:同步序列编号(Synchronize Sequence Numbers)
2、第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 
3、第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据。

所谓的三次握手(three times handshake;three-way handshaking)即对每次发送的数据量是怎样跟踪进行协商使数据段的发送和接收同步,根据所接收到的数据量而确定的数据确认数及数据发送、接收完毕后何时撤消联系,并建立虚连接。
为了提供可靠的传送,TCP在发送新的数据之前,以特定的顺序将数据包的序号,并需要这些包传送给目标机之后的确认消息。TCP总是用来发送大批量的数据。当应用程序在收到数据后要做出确认时也要用到TCP。

用通俗易懂的话语来解释:
  • A向B打一个招呼,说:你好,我想跟你建立一个tcp的连接,可以吗? B接收到A的招呼,如果愿意建立连接,会说:你好,可以的。 A给B发的连接就建立成功了。
  • B在向A回答的时候,也会同时向A提出建立连接的申请(因为TCP是全双工的,双向的): B会向A说:你好,我也想跟你建立一个TCP的连接,可以吗?
  • A除了之前接收到B给自己的确认,还会接收到B发过来的申请,A收到这个申请后,会向B发出一个确认。 这时,B与A的连接也建立成功了。 这个过程叫做“TCP三次握手”,当双方都确认建立这个连接之后,就开始传递数据了

猜你喜欢

转载自www.cnblogs.com/SsShirley/p/11871608.html