常见问题
详述整个过程与状态,挥手时TIME_WAIT状态,原因,长度,大量TIME_WAIT有什么危害。
为什么客户端最后还要等待2MSL(两个最大段生命周期)?
保证链接可以可靠关闭
保证这次连接的重复数据段从网络中消失
如果已经建立了连接,但是客户端突然出现故障(宕机、被拔网线)了怎么办?原本的TCP 连接还存在吗?双方做了哪些动作?<br>
服务端有数据传输:服务端触发“超时重传”机制
服务端没有数据传输,要判断是否开启了 keepalive 机制
TCP keepalive 机制
TCP keepalive 机制探测2h的时间也太长了吧?
为什么连接的时候是三次握手,关闭的时候却是四次握手?
SYN 攻击
什么是 SYN 攻击?
如何检测 SYN 攻击?- 使用系统自带的 netstats 命令
如何防御 SYN 攻击?
缩短超时时间
增加最大半链接数
过滤网关防护
SYN cookies 技术
TCP KeepAlive - 传输层心跳检测
原理
局限
发送一个 probe 包,会给网络带来额外的流量
只能在内核层级监测连接的存活与否,而连接的存活不一定代表服务的可用。
对比
tcp的keepalive主要是一种保活机制,检测对端是否依然存活。
http的keep-alive 主要是为了复用tcp连接,避免每次连接都建立tcp