第一次:建立连接时,客户端发送syn(syn=j)包到服务器,并进入syn_sent状态,等待服务器确认。 第二次:服务器收到syn包,必须确认客户端的syn(ack=j+1),同时自己也发送一个syn(syn=k)包,即syn+ack包到客户端,此时服务器进入syn_recv状态 第三次:客户端收到服务器的syn+ack包,向服务端发送确认包ack(ack=k+1),此包发送完成,客户端和服务器进入tcp连接成功状态,完成三次握手。
20160809153504099.png
之所有有第三次握手的原因,有可能在客户端发送连接请求时,第一次发送,请求在网络的某个地方block了,这时候发送第二次网络请求,第二次网络请求服务器答复了,而第一个网络请求又来了,而这个请求应该是被弃用了的,所以就出现了这个请求异常。为了避免这个异常就建立了3次握手
第一次:tcp客户端发送一个fin(fin=j),用来关闭客户端到服务器的数据传输 第二次:服务端收到fin,返回一个ack(ack=j+1),确认号为收到的序号+1 第三次:服务器关闭客户端的连接,发送一个fin(fin=m)给客户端 第四次:客户端返回ack(ack=m+1)报文确认,并将序列号设置为收到的序列号+1,完成断开
1、客户端发起https请求,服务端返回给客户端一个公钥(证书) 2、客户端产生对称密钥 3、使用公钥对产生的对称密钥进行加密 4、发送加密后的对称密钥给服务器 5、客户端通过对称密钥加密的密文通信(ssl加密建立)