目录
1、TCP 的 syn 攻击的过程?追问:怎么防御?
2、TCP 是如何通过滑动窗口协议实现流量控制和拥塞控制的?
3、描述 TCP 和 UDP 的区别?
4、TCP 有哪些定时器?
5、什么是 CDN?CDN 是如何工作的?
1、TCP 的 syn 攻击的过程?追问:怎么防御?
TCP在三次握手时,sever在发送ack包之后,收到client的ack之前的连接叫半连接,此时sever处于RECV状态,当收到client的ack之后,状态变为establish
syn攻击(syn flood)是指攻击者在短时间内,伪造大量不存在的ip,向服务器发送SYN请求建立连接,服务器回
复确认包,等待客户端的回复,由于源地址不存在,服务器需要不断发送直至超时。这些伪造的SYN将长时间占用
半连接队列,正常客户端请求的syn被抛弃,目标系统运行缓慢,严重引起网络堵塞甚至瘫痪
syn flood的类型: 1)DirectAttack:攻击者使用固定的ip地址攻击,这种攻击对攻击者的消耗最小 2)SpoofingAttack:攻击者使用变化的源ip进行攻击,这种方法的消耗较大 3)DistributedAttack:这种攻击主要是使用僵尸网络进行固定源地址的攻击 syn攻击的防御 1)具有synproxy(syn代理)功能的防火墙(缺点:当攻击者流量较大时,网络负载较高) 2)加快淘汰无效syn请求(缺点:不能解决根本问题) 3)SYN Cookie,给每一个请求syn的ip地址分配一个cookie,若短时间内收到某个连续的syn,就认定其为攻击者,再来就丢弃
2、TCP 是如何通过滑动窗口协议实现流量控制和拥塞控制的?
1)流量控制与拥塞控制的区别? 流量控制:控制发送者的发送速度使接收者来得及接收,从而防止丢弃数据包 拥塞控制:拥塞控制是作用于网络中的,它是防止网络中注入太多数据,避免出现网络负载过大的情况
2)流量控制的过程 所谓流量控制,就是不要让发送端发送的太快,让接收端来得及接收 假设没有流量控制,发送端根据自己实际的情况发送数据,如果发送的太快。导致接收端的缓冲区满了,此时发送端如果再发送数据,接收端处理不过来,就会丢弃本该接收的流量,这样会触发TCP的重发机制,导致网络流量的浪费 因此TCP需要提供一种机制:让发送端不要发送的太快,让接收端来得及接收。这就是所谓的流量控制,TCP是通过滑动窗口进行流量控制的。 在TCP协议报文的头部,有一个16位的窗口大小,窗口的大小实际就是接收端剩余缓冲区的大小,这个数字越大,就证明剩余的缓冲区空间越大 流量控制的具体内容:接收者回应的包会添加一个窗口大小,来告诉发送方自己缓冲区的剩余空间大小,发送端通过缓冲区的大小来控制发送速度
3)拥塞控制的过程 为什么要拥塞控制? 网络中路由器有一个数据处理队列,当路由器接收的数据太多而一下子处理不过来时,会导致数据包处理的队列过长。此时,路由器会丢弃新接收到的数据流量。这就会导致TCP认为数据丢失,从而重传数据,而路由器又会继续丢弃这些数据,如此以往,就会导致网络性能的急剧下降,甚至导致网络瘫痪。 拥塞控制的原理 有了TCP的滑动窗口控制,接收端和发送端不再以"段"为单位,而是以"窗口"为单位发送数据,所以发送端可以连续发送大量数据。但是,如果在通信刚开始就发送大量数据包,也有可能导致网络瘫痪。 在拥塞控制中,发送端维持一个叫拥塞窗口(cwnd)状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化 发送窗口取拥塞窗口和接收窗口的最小值,避免发送比接收窗口还大的数据。 拥塞控制使用了两个算法:慢启动算法和拥塞避免算法。
3、描述 TCP 和 UDP 的区别?
1)TCP是面向连接的,UDP是非面向连接的
2)TCP是可靠的,UDP是不可靠的
3)TCP只能一对一传输,UDP可以一对多
4)TCP有流量控制、拥塞控制等保证传输的安全性
5)TCP报文长度是动态变化的,由拥塞程度和接收方决定;UDP的报文长度不变
6)头部长度:TCP20字节;UDP8字节
7)传输速度:TCP慢;UDP快
4、TCP 有哪些定时器?
1)建立连接定时器(connection-establishment timer)
2)重传定时器(retransmission timer)
3)延迟应答定时器(delayed ACK timer)
4)坚持定时器(persist timer)
5)保活定时器(keepalive timer)
6)FIN_WAIT_2定时器(FIN_WAIT_2 timer)
7)TIME_WAIT定时器 (TIME_WAIT timer, 也叫 2MSL timer)
5、什么是 CDN?CDN 是如何工作的?
CDN中文名称是内容分发网络,其基本思路是 在cdn网络中,离用户最近的服务器被称为“边缘服务器”。当人们从通过cdn服务的网站请求内容时,他们会连接到最近的边缘服务器,以确保最佳的在线体验。 一旦用户请求了数据,它就被缓存在cdn服务器上。因此,下一次用户提出请求时,内容从边缘传送到最终用户的速度要比从起点一路传送的速度快得多。如果你使用cdn,这意味着如果有人试图从你的网站或移动应用程序访问内容,那么这个人对内容的请求只需要前往附近的持久性有机污染物并返回,而不是一直到公司的原始服务器并返回。 ?
|