其他分享
首页 > 其他分享> > 三次握手、四次挥手

三次握手、四次挥手

作者:互联网

 三次握手

刚开始客户端处于 closed 的状态,服务端处于 listen 状态。然后

服务器收到 ACK 报文之后,也处于 establised 状态,此时,双方以建立起了链接。

 1、ISN是固定的吗?

  三次握手的一个重要功能是客户端和服务端交换ISN(Initial Sequence Number), 以便让对方知道接下来接收数据的时候如何按序列号组装数据。如果ISN是固定的,攻击者很容易猜出后续的确认号,因此 ISN 是动态生成的。

2、什么是半连接队列     

  服务器第一次收到客户端的 SYN 之后,就会处于 SYN_RCVD 状态,此时双方还没有完全建立其连接,服务器会把此种状态下请求连接放在一个队列里,我们把这种队列称之为半连接队列。当然还有一个全连接队列,就是已经完成三次握手,建立起连接的就会放在全连接队列中。如果队列满了就有可能会出现丢包现象。

3、三次握手过程中可以携带数据吗

  第一次、第二次握手不可以携带数据,而第三次握手是可以携带数据的。假如第一次握手可以携带数据的话,如果有人要恶意攻击服务器,那他每次都在第一次握手中的 SYN 报文中放入大量的数据,这会让服务器花费很多时间、内存空间来接收这些报文。而对于第三次的话,此时客户端已经处于 established 状态,对于客户端来说,他已经建立起连接了,并且也已经知道服务器的接收、发送能力是正常的了,所以能携带数据。

标签:挥手,报文,SYN,四次,ISN,服务器,握手,客户端
来源: https://www.cnblogs.com/HuiTaiLang1216/p/15353761.html