ÈÃLinuxϵͳ·ÀÖ¹syn¹¥»÷
ÐéÄâÖ÷»ú·þÎñÉÌÔÚÔËÓª¹ý³ÌÖпÉÄÜ»áÊܵ½ºÚ¿Í¹¥»÷£¬³£¼ûµÄ¹¥»÷·½Ê½ÓÐSYN£¬DDOSµÈ¡£Í¨¹ý¸ü»»IP£¬²éÕÒ±»¹¥»÷µÄÕ¾µã¿ÉÄܱܿª¹¥»÷£¬µ«ÊÇÖжϷþÎñµÄʱ¼ä±È½Ï³¤¡£±È½Ï³¹µ×µÄ½â¾ö·½·¨ÊÇÌíÖÃÓ²¼þ·À»ðǽ¡£²»¹ý£¬Ó²¼þ·À»ðǽ¼Û¸ñ±È½Ï°º¹ó¡£¿ÉÒÔ¿¼ÂÇÀûÓÃLinux ϵͳ±¾ÉíÌṩµÄ·À»ðǽ¹¦ÄÜÀ´·ÀÓù¡£
µÖÓùSYN SYN¹¥»÷ÊÇÀûÓÃTCP/IPÐÒé3´ÎÎÕÊÖµÄÔÀí£¬·¢ËÍ´óÁ¿µÄ½¨Á¢Á¬½ÓµÄÍøÂç°ü£¬µ«²»Êµ¼Ê½¨Á¢Á¬½Ó£¬×îÖÕµ¼Ö±»¹¥»÷·þÎñÆ÷µÄÍøÂç¶ÓÁб»Õ¼Âú£¬ÎÞ·¨±»Õý³£Óû§·ÃÎÊ¡£
LinuxÄÚºËÌṩÁËÈô¸ÉSYNÏà¹ØµÄÅäÖã¬ÓÃÃüÁ sysctl -a | grep syn ¿´µ½£º
net.ipv4.tcp_max_syn_backlog = 1024 net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_synack_retries = 5 net.ipv4.tcp_syn_retries = 5
tcp_max_syn_backlogÊÇSYN¶ÓÁеij¤¶È£¬tcp_syncookiesÊÇÒ»¸ö¿ª¹Ø£¬ÊÇ·ñ´ò¿ªSYN Cookie ¹¦ÄÜ£¬¸Ã¹¦ÄÜ¿ÉÒÔ·ÀÖ¹²¿·ÖSYN¹¥»÷¡£tcp_synack_retriesºÍtcp_syn_retries¶¨ÒåSYN µÄÖØÊÔ´ÎÊý¡£¼Ó´óSYN¶ÓÁг¤¶È¿ÉÒÔÈÝÄɸü¶àµÈ´ýÁ¬½ÓµÄÍøÂçÁ¬½ÓÊý£¬´ò¿ªSYN Cookie¹¦ÄÜ¿ÉÒÔ×èÖ¹²¿·Ö SYN¹¥»÷£¬½µµÍÖØÊÔ´ÎÊýÒ²ÓÐÒ»¶¨Ð§¹û¡£
µ÷ÕûÉÏÊöÉèÖõķ½·¨ÊÇ£º
Ôö¼ÓSYN¶ÓÁг¤¶Èµ½2048£º
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
´ò¿ªSYN COOKIE¹¦ÄÜ£º
sysctl -w net.ipv4.tcp_syncookies=1
½µµÍÖØÊÔ´ÎÊý£º
sysctl -w net.ipv4.tcp_synack_retries=3 sysctl -w net.ipv4.tcp_syn_retries=3
ΪÁËÏµÍ³ÖØÆô¶¯Ê±±£³ÖÉÏÊöÅäÖ㬿ɽ«ÉÏÊöÃüÁî¼ÓÈëµ½/etc/rc.d/rc.localÎļþÖС£
# vi /etc/sysctl.conf
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_rmem = 32768
net.ipv4.tcp_wmem = 32768
·Àֹͬ²½°üºéË®£¨Sync Flood£©
# iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
Ò²ÓÐÈËд×÷
#iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
--limit 1/s ÏÞÖÆsyn²¢·¢ÊýÿÃë1´Î£¬¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÐèÒªÐÞ¸Ä
·ÀÖ¹¸÷ÖÖ¶Ë¿ÚɨÃè
# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
PingºéË®¹¥»÷£¨Ping of Death£©
# iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCE
Ïà¹ØÎĵµ£º
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
1. Òý×Ó
int a;
int size = 8;
Èç¹ûÈÃaΪ(size =8)µÄÕûÊý±¶±íʾ³É¶þ½øÖÆÓ¦ÊÇʲôÑù×ÓÄØ£¿ÄǾÍÊÇÈÃÕâ¸öÊý±íʾ³É¶þ½øÖÆÊ±µÄ×îºóÈýλΪ0.
¶øÒª´ïµ½ÕâһĿ±ê£¬Ö»ÒªÏÂÃæÕâ¸öÊýÓëËü½øÐÐÓëÔËËã¾Í¿ÉÒÔÁË:
11111111 11111111 11111111 11111000
¶øÉÏÃæÕâ¸öÊýʵ¼ÊϾÍÊ ......
Chapter 1: Thread
¢Ù thread functions
1. pthread_self();
2. thread existing
you can get the value of rval_ptr just by pthread_join(pthread_t tht, void ** rval_ptr)
cancel a thread as the thread exits with PTHREAD_CANCELED in pthread_exit, this functio ......
#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/sysmacros.h>
#include <time.h>
#include <unistd.h>
#define TIME_STRING_BUF 50
char * timestring(time_t t,char *buf)
{
struct tm *local; ......
http://andrew913.javaeye.com/blog/431259
Àí½âLinuxµ÷ÓŲÎÊý
ÔÚÎÒÃǽéÉÜLinuxϵͳµÄ¸÷ÖÖµ÷ÓŲÎÊýºÍÐÔÄܼà²â¹¤¾ß֮ǰ£¬ÐèÒªÏÈÌÖÂÛһЩ¹ØÓÚÐÔÄܵ÷ÓŵIJÎÊý¡£ÒòΪLinuxÊÇÒ»¸ö¿ªÔ´²Ù×÷ϵͳ£¬ËùÒÔÓÖ´óÁ¿¿ÉÓõÄÐÔÄܼà²â¹¤¾ß¡£¶ÔÕâЩ¹¤¾ßµÄÑ¡ÔñÈ¡¾öÓÚÄãµÄ¸öÈËϲºÃºÍ¶ÔÊý¾Ýϸ½ÚµÄÒªÇó¡£ËùÓеÄÐÔÄܼà²â¹¤¾ß¶¼Êǰ´ÕÕͬÑùµÄ¹æÔòÀ´ ......