标签:网络 延伸 第四次 时间 三次握手 系统 变化 32位 挥手
因为没有第三次服务器端无法确认客户端是否成功收到自己的初始序列号也就是服务器端无法确认客户端的接收能力是否正常。
指的是第二次握手服务器端接收到客户端SYN标志后处于SYN_RCVD状态,此时双方没有完全建立起连接,服务器将这种状态的请求连接放入到一个队列中,这个队列被称为半连接队列。
为了避免混淆,ISN随着时间变化而变化,每个连接都有不同ISN。ISN可以看成一个32位的计数器,每隔4微秒递增1,这样设计可以防止延迟的分组后面被再次传送,从而产生误解。这样也方便后续交换数据按序列号组装数据,如果ISN是固定的,攻击者将很容易猜到后续的确认号,所以ISN是随机动态的。
第三次握手的时候,是可以携带数据的。但是,第一次、第二次握手不可以携带数据。因为可以放的话会让服务器更容易受到攻击,而且第一二次还未建立连接,第三个已建立了连接才可以携带数据。
SYN 攻击是一种典型的 DoS/DDoS 攻击。SYN攻击就是指在短时间内伪造大量的客户端IP,不断地向服务器发送SYN请求,服务器则需要回复确认包并等待客户端确认,由于IP是伪造的,所以服务器需要不断重发甚至超时,这些伪造的SYN包长时间占据未连接队列,导致正常的SYN包因未连接队列满了而被丢弃,最终引起网络拥塞甚至系统瘫痪。防御方法有:缩短超时时间、增加最大半连接数、过滤网关服务、SYN COOKIEs技术。
当服务器端收到FIN包时并不会立马关闭SOCKET,而是只回复一个ACK确认报文给客户端,只有等服务器端将所有数据报文传输完毕之后才会发送FIN结束标志给客户端。
一个是保证客户端发送ACK确认报文能到达服务器端;另一个则是保证本次连接中产生的报文全部从网络中消失。
因为有时ACK会丢失,这时候需要时间来重新发送ACK报文。
标签:网络 延伸 第四次 时间 三次握手 系统 变化 32位 挥手
原文地址:https://www.cnblogs.com/sai564/p/13022312.html