TCP是可靠,连接的,面向字节流的传输层协议
首先看下面这个图:
刚开始两端都处于关闭状态
第一次握手:客户端访问服务器,向服务器发送同步序号SYN,假设syn=j,然后进入SYNSENT的状态,等待服务器的确认
第二次握手:服务器收到客户端的请求,返回确认序号ack=j+1,同时也发送一个SYN包,即syn=k,服务器进入SYNRCVD状态
第三次握手:客户端收到服务器发送的SYN和ACK确认,并向服务器发送确认包ACK,然后,客户端和服务器端进入established状态
为什么需要三次握手呢???
为了初始化Sequence Number的值,通信双方互相通知对方的SN值,作为以后数据通信的序号,保证应用层接收到的数据包不会因为网络传输而乱序
第三次握手,是客户端回复服务器端已经收到了他发送的SN的值
如果建立连接后,服务器端出现故障,该怎么办???
内部的保活机制就会生效
会向对方发送保活探测报文,如果未收到响应则继续重发,当尝试次数达到保活探测数仍未收到响应则中断连接。
领取专属 10元无门槛券
私享最新 技术干货