实际生产环境中出现SYN flooding的情况好多次了,之前虽然解决了,但一直没好好整理一下。直到上周五又出现该问题,这次利用周末的空闲时间好好查阅资料研究了翻,整理一篇博文。想说的是,养成写博客或者整理文档的习惯真的很重要,因为当你把它写成一篇文章的时候,首先你自己必须要先理解,然后思路必须要清晰,有时候可能需要花上一整天的时间查资料,对自己也是一种提高,才算是对自己和读者的负责。
先介绍下什么是SYN flooding。
SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,塞满TCP等待连接队列,导致资源耗尽(CPU满负荷或内存不足),让正常的业务请求连接不进来,从而间接达到攻击的目的。
说起TCP协议,不得不提三次握手。SYN Flood攻击利用的正是IPv4中TCP协议的三次握手过程进行的攻击。如果一端想向另一端发起TCP连接,它需要首先发送TCP SYN 包到对方,对方收到后发送一个TCP SYN+ACK包回来,发起方再发送TCP ACK包 ...
开始之前关于本教程本教程将深入讲解 Spring 简单而强大的事务管理功能,包括编程式事务和声明式事务。通过对本教程的学习,您将能够理解 Spring 事务管理的本质,并灵活运用之。
先决条件本教程假定您已经掌握了 Java 基础知识,并对 Spring 有一定了解。您还需要具备基本的事务管理的知识,比如:事务的定义,隔离级别的概念,等等。本文将直接使用这些概念而不做详细解释。另外,您最好掌握数据库的基础知识,虽然这不是必须。
系统需求要试验这份教程中的工具和示例,硬件配置需求为:至少带有 512MB 内存(推荐 1GB)的系统。需要安装以下软件:
Sun JDK 5.0 或更新版本或 IBM Developer Kit for the Java 5 platform 版本。
Spring framework 2.5。本教程附带的示例代码已经在 Spring 2.5.6 上测试过。
MySQL 5.0 或更新版本。
Spring 事务属性分析事务管理对于企业应用而言至关重要。它保证了用户的每一次操作都是可靠的,即便出现了异常的访问情况,也不至于破坏后台数据的完整性。就像银行的自助取 ...
shell-tutorial
未读Process Substitution在上一节中,我们已经看到了如何将一个命令的输出链接到下一个命令。但是,如果要将两个或多个命令的输出链接到另一个命令,该怎么办?如果您有一个将文件作为参数但又想处理发送到该文件的内容的命令,该怎么办?
进程替换允许使用文件名引用进程的输入或输出。它有两种形式:输出<(cmd)和输入>(cmd)。
示例:输出假设您有两个要比较其内容的文件。如果没有对行进行排序,则使用diff file1 file2可能会产生误报。因此,如果要比较这些文件,可以创建两个有序的新文件,然后进行比较。它看起来像:
sort file1 > sorted_file1
sort file2 > sorted_file2
diff sorted_file1 sorted_file2
使用流程替换,您可以在一行中完成:
diff <(sort file1) <(sort file2)
输入假设您要将应用程序的日志存储到文件中,同时在控制台上将其打印出来。一个非常方便的命令是tee。
echo "Hello, world!" ...
123456789# tomcat access log configserver: tomcat: accesslog: enabled: true #是否开启日志 directory: /tmp/accesslogs/mobile-site #日志存储目录 pattern: '%t %a %A %m %U%q %s %D %I %B' #日志格式 prefix: access #日志文件前缀 rename-on-rotate: true #是否启用日志轮转
pattern的配置:
%a - Remote IP address,远程ip地址,注意不一定是原始ip地址,中间可能经过nginx等的转发
%A - Local IP address,本地ip
%b - Bytes sent, excluding HTTP headers, or ‘-’ if no bytes were sent
%B - Bytes sent, excluding HTTP headers
%h - Remote h ...
索引概述索引是一种可选创建的数据库对象,建立在表的一列或多列的辅助对象。可以将索引比喻成一本书的目录,通过目录我们能快速的找到我们所需的内容。而数据库索引的主要功能也就是用来提高查询速度以及完整性检查。书的目录将书的名称和页码作为目录,同样的,数据库的索引通常将列值连同ROWID存储在一起,ROWID包含了存储列值的表在磁盘中的物理位置(这里涉及到磁盘的存储方式等内容,学习后记得补上),通过ROWID,Oracle可以以最小的代价快速的检索到相应的内容。如果没有索引,数据库就必须进行全表扫描来查看是否包含数据。但是创建索引也有一定代价,一方面,列值修改的同时也要修改索引以确保索引与列值的相同,另一方面,索引也消耗了磁盘空间以及系统资源。因此创建索引时要保障其合理性。
B树索引通常创建的索引一般都是B-TREE(B树)索引,一般有聚集索引和非聚集索引。
网上有一结构图很形象的表示了B树的原理,参考如下:

索引有键值和逻辑指针构成。更节点 ...
Tomcat
未读前提说明为了确保服务不会被过多的http长连接压垮,我们需要对tomcat设定个最大连接数,超过这个连接数的请求会拒绝,让其负载到其它机器。达到保护自己的同时起到连接数负载均衡的作用。
动手去做一开始根据故障todoList提供的参数MaxKeepAliveRequests,进行验证,我们将tomcat配置server.xml修改为:同时,启动客户端模拟30个长连接。
预期应该只有10个连接能保持住。结果与预期不符,30个连接都连上了,而且正常。这由此怀疑提供的配置参数是否是真正限制最大连接数的含义了。KeepAlive是在HTTP1.1中定义的,用来保持客户机和服务器的长连接,通过减少建立TCP Session的次数来提高性能。常用的配置参数有{KeepAlive, KeepAliveTimeout, MaxKeepAliveRequests}。逐个说来:KeepAlive是决定开启KeepAlive支持;KeepAliveTimeout决定一 个KeepAlive的连接能保持多少时间,Timeout就尽快shutdown链接,若还有数据必须再建立新的连接 了;MaxKeepAliv ...
2020.08.10农历六月二十一
总希望平淡的生活,能有一丝波澜,于是对每一年的生日都会给予厚望,然而往往也都是在无限期待中失望。小时候自从对生日有了概念,每年的生日都会期待有不一样的事情发生,也许是每个小女孩都会编织的梦。按以往经验,生日当天和之前之后的每一天都没什么两样,普普通通,平平常常。
早上睁开眼睛,告诉自己不要有所希冀,来度过这平常的一天。尽管反复劝诫自己还是忍不住去期望。听着客厅老代吃早饭的声音,不禁在心里嘀咕,昨天还说给我做面条,今天就忘了吧,不过是说说罢了。一股无名的烦躁涌上心头,自从怀孕特别是最近身体越来越笨重,特别容易发火。躺在床上睁着眼睛胡思乱想了一会,决定起来,其实也不知道起来那么早干嘛。没有工作的压力,每天也就无所事事了。百无聊赖的走到洗漱间,看见老代在厨房,原来在给我煮面条,早起无名的怒火消了不少。才明白,我要的不是礼物,是老代的关心。煮好面,老代就匆匆去赶公交上班了。
饭后打开手机,老妈早早发来生日问候“丹妮生日快乐,平安”短短的几个字,看湿了眼眶。长大成家后,把更多的精力放在孩子和家庭里,父母的感受往往忽略,但是在他们的眼里,我永远是他们的关注。这几 ...
shell-tutorial
未读Tutorialbash for循环# basic construct
for arg in [list]
do
command(s)...
done
对于每次通过循环,arg都会使用列表中每个连续值的值。然后执行命令。
# loop on array member
NAMES=(Joe Jenny Sara Tony)
for N in ${NAMES[@]} ; do
echo "My name is $N"
done
# loop on command output results
for f in $( ls prog.sh /etc/localtime ) ; do
echo "File is: $f"
done
bash while循环# basic construct
while [ condition ]
do
command(s)...
done
while构造会测试条件,如果为true,则执行命令。只要条件为真,它就会不断循环。
COUNT=4
while [ $COUNT -gt 0 ...
位于西六环的北宫刚开门迎客不久,新冠病毒再次席卷,满城熙攘,段子百出。尽管如此,也没有把小朋友们关在家里,周末驱车北宫,呼吸新鲜空气。因为疫情的关系,门口会看健康宝。安检人员说,最近查的比较严格,昨天有个黄个的给劝回去了。甚至有红格的也有来的,说半天给遣返了。非常时期,还是慎重一些。第一次来北宫,这里古朴的建筑会比较多,但是好多都封了。整个公园山势平缓,大部分都是平坦的坡路,很适合我这样的孕妇。这里的水都是死水,不清澈,有的都干涸很久了,没有溪流,整个公园的灵性就缺失很多。由于带着孩子,还是以孩子的喜好为考量,找了一块平地,铺上垫子,孩子们就去荡秋千,滑滑梯,打水枪战。在家备了充足的粮食,和小伙伴们一起野餐。孩子们也是不亦乐乎。
离预产期还有57天,我彻底陷入了焦虑的怪圈。不知道是不是因为二胎的原因,孕肚异常的大,体重飙升很快,由原来的98斤,到现在127足足重了30斤,走路也开始喘的越来越重,随着胎儿的增大,压迫内脏,晚上睡眠质量超级差,每天过了凌晨才能睡着,清楚记得昨晚最后一次看时间是凌晨1点20,接下来几点睡着就不得而知了,睡眠极浅,分不清是现实还是梦境,醒来后疲惫不堪,感觉呼吸困难。
都说二胎比头胎要辛苦,除了身体上,还有心理上的变化,给母体的冲击都非常大。精力严重不足,悲观易怒,情绪化所有孕期的特征在我身上都发生了。还有8周的才能卸货,感觉日子漫长,但是心有恐慌,生产时的各种,还有熬人的月子。现在回忆起来,都不知道生二胎的冲动是哪来的。
鉴于身体状况,提前申请来年假,来补充产假。但是对于休假的闲暇时间,如何有效规划,还是没有任何头绪,又加重来焦虑指数。老代给出几条建议,去学习一些新的技能。问我,是学些容易的,还是有点难度的。我说,想学点来钱快还多的。大概是异想天开吧。
最近一直在追剧《三十而已》,已年满32岁的我,目前没有追求,没有方向。年轻时的激情,被现实生活打击的所剩无几。目前有了二胎,对于个人的 ...


