TCP三次握手

TCP是可靠,连接的,面向字节流的传输层协议

首先看下面这个图:

刚开始两端都处于关闭状态

第一次握手:客户端访问服务器,向服务器发送同步序号SYN,假设syn=j,然后进入SYNSENT的状态,等待服务器的确认

第二次握手:服务器收到客户端的请求,返回确认序号ack=j+1,同时也发送一个SYN包,即syn=k,服务器进入SYNRCVD状态

第三次握手:客户端收到服务器发送的SYN和ACK确认,并向服务器发送确认包ACK,然后,客户端和服务器端进入established状态

为什么需要三次握手呢???

为了初始化Sequence Number的值,通信双方互相通知对方的SN值,作为以后数据通信的序号,保证应用层接收到的数据包不会因为网络传输而乱序

第三次握手,是客户端回复服务器端已经收到了他发送的SN的值

原文地址:https://www.cnblogs.com/javatalk/p/10266963.html