计网笔记(四)

计网笔记(四)


提示:以下是本篇文章正文内容,下面案例可供参考

一、如果已经建立了连接,但是客户端突然出现故障了怎么办?

在服务器端,有一个定时器,客户端每次向服务器发送消息时会重置该定时器。若超过2小时未收到客户端消息,服务器会每隔75s向客户端发送探测报文,若接连发送10个都未收到客户端的响应,则认为客户端出现故障,关闭连接。

二、什么是SYN洪泛攻击?

  • SYN洪泛攻击就是利用TCP协议的特性(三次握手)。
  • 攻击者发送TCP的 SYN,SYN是TCP三次握手中第一个数据包,而当服务器返回ACK后,该攻击者就不对其进行再确认,那这个TCP连接就处于挂起状态,也就是半连接状态,服务器收不到再确认的话,还会重复发送ACK给攻击者。
  • 这样更加会浪费服务器资源。攻击者就对服务器发送大量的这种TCP连接,由于每一个连接都无法完成三次握手,所以就在服务器上,这些TCP连接会因为挂起状态而消耗CPU和内存,最后服务器可能死机。

三、序号(ISN)为什么要随机?

增加安全性,为了避免被第三方猜测到,从而被第三方伪造的RST报文Reset。

四、三次握手的第一次可以携带数据吗?为何?

不可以,三次握手还没有完成。而且这样会放大SYN FLOOD(SYN洪泛)攻击。
如果攻击者伪造了成千上万的握手报文,携带了1K+ 字节的数据,而接收方会开辟大量的缓存来容纳这些巨大数据,内存会很容易耗尽,从而拒绝服务。

五、TCP如何实现可靠传输

  1. 校验:伪首部是为了增加TCP校验和的检错能力:通过伪首部的目的IP地址来检查TCP报文是否收错了、通过伪首部的传输层协议号来检查传输层协议是否选对了。需要注意的是,伪首部实际上是不存在的,只是用来验证TCP报文是否出错。
  2. 序号:之前我们提到TCP是面向字节流的,比如第一个字节就是序号1,第二个字节就是序号2。 而在TCP报文格式介绍的时候,有一个序号字段,这个指的是一个报文段第一个字节的序号。报文段就是你每个数据包。有了序号,就能保证数据是有序的传入应用层。
  3. 确认:发送方在收到接收方的确认包之后,才继续发送剩下的数据。
  4. 重传:TCP的发送方在规定的时间内没有收到确认就要重传已发送的报文段(超时重传)。重传时间是动态改变的,依据的是RTTS(加权平均往返时间)。

六、OSI七层模型各层的功能

计网笔记(四)