前情回顾:
经过黑衣人和老周的合作,终于清除了入侵Linux帝国的网页病毒,并修复了漏洞。不曾想激怒了幕后的黑手,一场新的风雨即将来临。
详情参见:一条SQL注入引出的惊天大案
1
风云再起
小Q是Linux帝国网络部负责TCP连接的公务员。
一直以来工作都很轻松,加班也少,但自从小马哥到Linux帝国开设了nginx公司,小Q的工作量一下就大了起来,经常加班,为此小Q背后没少抱怨。
一大早,nginx按时启动,绑定了80端口监听,开始了今天的营生。
没过多久,今天的第一个客户来了。
小Q还是如往常一样,收到这个带有SYN标记的数据包后,创建了一个连接请求块,然后将其放入80端口归属的连接请求队列中,回复了一个带有SYN和ACK标记的数据包后,开启了一个定时器,等待第三次握手的完成。
没等多久,这个客户就发来了回信,三次握手完成。小Q把这个连接请求块转移到了80端口对应的连接就绪队列中,并按下了铃铛。
听到铃声的nginx线程从epoll_wait函数中醒来,调用accept函数,从队列中拿到了这个新来的客户,开始服务。
这就是小Q的日常,他已经干这份工作太久了,轻车熟路。
很快到了深夜,小Q准备打个盹儿,这么晚估计是没有活干了。
没想到刚躺下,就来了一个连接请求,小Q揉揉惺忪的睡眼,准备来处理,然后接着很快来了第二个,第三个,第四个······
奇怪的是,每一个客户只发送了一个SYN就没了音讯,眼看着连接请求队列里的请求块越来越多,最后实在没有空间安放新的请求块,小Q开始意识到情况不妙,拉响了帝国安全警报······
2
全军出击
十分钟前··