¡¾×ªÌûLINUX¡¿netfilterÖеÄconntrackÄÚºËÔĶÁ±Ê¼Ç(4)
2008-07-07 22:09
3£¬init_conntrack£º
init_conntrackÓÃÓÚ´´½¨Ò»¸öеÄip_conntrack£¬²¢¶ÔÆä½øÐгõʼ»¯¡£
/*1,ÿһ¸öÁ¬½Ó°üº¬Á½¸ötuple£¬originalºÍreply£¬ip_ct_invert_tuple ¸ù¾Ý´«ÈëµÄoriginal tuple»ñÈ¡Æäreply tuple£¬Æä×îÖÕ½«µ÷ÓÃËùÊôÐÒéµÄinvert_tuple Íê³É´¦Àí*/
if (!ip_ct_invert_tuple(&repl_tuple, tuple, protocol)) {
DEBUGP("Can't invert tuple.\n");
return NULL;
}
/*2,´ÓcacheÖÐΪconntrack·ÖÅäÄڴ棬²¢½øÐÐͨÓõijõʼ»¯£¬Èç³õʼ»¯tuplehash¡¢timeoutºÍct_general£»Èç¹ûµ±Ç°Á¬½ÓÊýÒÑ´ïÉÏÏÞ£¬Ôòµ÷ÓÃearly_dropÊÍ·ÅtupleËùÔÚhashÁ´ÉϵÄδӦ´ðÏî*/
conntrack = ip_conntrack_alloc(tuple, &repl_tuple);
/*3,µ÷ÓÃËùÊôÐÒéµÄnewº¯Êý£¬¸ù¾Ý±¨ÎÄÊý¾Ý£¬³õʼ»¯conntrack£¬ºÍÐÒéÏà¹ØµÄ˽Óд¦Àí£¬½«·Åµ½¶Ô¾ßÌåÐÒétcp·ÖÎöʱÌÖÂÛ*/
if (!protocol->new(conntrack, skb)) {
ip_conntrack_free(conntrack);
return NULL;
}
/*4,expectºÍhelper¾ùºÍ¶¯Ì¬ÐÒéÏà¹Ø£¬½«ÔÚ·ÖÎöftpÐÒéʱ×öÖØµã½éÉÜ*/
exp = find_expectation(tuple);
if (exp) {
…
} else {
conntrack->helper = __ip_conntrack_helper_find(&repl_tuple);
CONNTRACK_STAT_INC(new);
}
…
write_unlock_bh(&ip_conntrack_lock);
if (exp) {
…
}
/*5,½«original tuple·Åµ½unconfirmedÁ´ÉÏ£¿£¿*/ list_add(&conntrack->tuplehash[IP_CT_DIR_ORIGINAL].list, &unconfirmed);
4£¬tuplehash_to_ctrack:
tuplehash_to_ctrackÕâ¸öº¯ÊýÖ÷ÒªÓÃÀ´½«È«¾ÖÁ¬½Ó±íÖлñÈ¡µÄhashtupleת»»³ÉÏàÓ¦µÄip_conntrack½á¹¹¡£ËüʹÓÃÁËcontainer_ofÕâ¸öºêÀ´Íê³É´¦ÀíµÄ¡£container_ofͨ¹ý½á¹¹ÖÐij¸ö³ÉÔ±µÄÖ¸Õ룬À´»ñÈ¡½á¹¹µÄÖ¸Õë¡£ËüµÄʵÏַdz£ÓÐȤ£º
/*1,½«½á¹¹ÌåÇ¿ÖÆÔÚ0µØÖ·Õ¹¿ª£¬´Ó¶ø»ñÈ¡ÆämemberµÄÆ«ÒÆÁ¿*/
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
/*2,¸ù¾ÝmemberµÄÖ¸Õëptr£¬¼õÈ¥ÆäÏà¶ÔÆ«ÒÆÁ¿£¬¼´»ñµÃÁËÆäËÞÖ÷½á¹¹conntrackµÄÖ¸Õë*/
#define container_of(p
Ïà¹ØÎĵµ£º
ÊÇÒªÓм¸¸ö½×¶ÎµÄ¡£ ¿ªÊ¼¿´ulk,
ulk×îºÃµÄµØ·½¾ÍÊÇËûËù³«µ¼µÄѧϰ·½·¨ÌرðºÃ¡£µ±ÄãÏëѧϰij·½ÃæÊ±£¬ÏÈ¿´Í·Îļþ£¬ÔÚû°Ñÿ¸öÊý¾Ý½á¹¹ÖеÄÿ¸öÊý¾ÝÔªËØÅªÇå³þ֮ǰ²»Òª¿´ÊµÏÖ´úÂë¡£
¶ÁÍêÍ·Îļþ£¬Òâζ×ÅÆäÖеÄ×éÖ¯¹ØÏµ¸ú±ðµÄµØ·½µÄÁªÏµ¾ÍÇå³þÁË£¬ÕâʱºòÄãÈ¥¿´ÊµÏֵĴúÂëÄã»á·¢ÏÖËûÒѾ×öµÄÕýÊÇÄãËùÏëµÄ¡£
¸ú×Åulk°ÑÕâЩ»ù±¾µ ......
#find ... -exec rm {} \;
#find ... | xargs rm -rf
Á½Õß¶¼¿ÉÒÔ°ÑfindÃüÁî²éÕÒµ½µÄ½á¹ûɾ³ý£¬ÆäÇø±ð¼òµ¥µÄ˵ÊÇǰÕßÊǰÑfind·¢ÏֵĽá¹ûÒ»´ÎÐÔ´«¸øexecÑ¡ÏÕâÑùµ±ÎļþÊýÁ¿½Ï¶àµÄʱºò£¬¾Í¿ÉÄÜ»á³öÏÖ“²ÎÊýÌ«¶à”Ö®ÀàµÄ´íÎó£¬Ïà±È½Ï¶øÑÔ£¬ºóÕ߾ͿÉÒÔ±ÜÃâÕâ¸ö´íÎó£¬ÒòΪxargsÃüÁî»á·ÖÅú´ÎµÄ´¦Àí½á¹û¡£ÕâÑù¿´À´£ ......
http://blog.csdn.net/dinitial/archive/2009/02/22/3923559.aspx
Gdb+gdbserver+insight»·¾³µÄ´î½¨
1. ÏÂÔØgdbÔ´´úÂë http://ftp.gnu.org/gnu/gdb/
2. ÅäÖð²×°gdb+gdbser
$ tar jxvf gdb-6.6.tar.bz2
$ cd x/gdb
$ ./configure --target=arm-linux --prefix ......
1
¡¢×ܽᱳ¾°
ÔÚ
linux
ϵͳÏ£¬Èç¹ûÄãÏÂÔØ²¢°²×°ÁËÓ¦ÓóÌÐò£¬ºÜÓпÉÄÜÔÚ¼üÈëËüµÄÃû³ÆÊ±³öÏÖ
“command not found”
µÄÌáʾÄÚÈÝ¡£Èç¹ûÿ´Î¶¼µ½°²×°Ä¿±êÎļþ¼ÐÄÚ£¬ÕÒµ½¿ÉÖ´ÐÐÎļþÀ´½øÐвÙ×÷¾ÍÌ«·±ËöÁË¡£ÕâÉæ¼°µ½»·¾³±äÁ¿
PATH
µÄÉèÖÃÎÊÌ⣬¶ø
PATH
µÄÉèÖÃÒ²ÊÇÔÚ
linux
϶¨ÖÆ»·¾³±äÁ¿µÄÒ»¸ö×é³É²¿·Ö¡£ ......
2008-07-07 22:06
PREROUTING£ºip_conntrack_defrag à ip_conntrack_in
1£¬ip_conntrack_defrag:
ͨ³£µ±IP±¨Îı»ËÍÖÁL4²ã´¦Àíʱ£¬Èç¹û¸Ã±¨ÎÄÊÇ·ÖÆ¬±¨ÎÄ£¬ÄÇô±¨ÎľͻáÏȱ»±£´æÆðÀ´£¬Ö±µ½ËùÓÐ·ÖÆ¬µ½´ïºóÖØ×é³ÉÒ»¸öÍêÕû±¨Îĺó£¬ÔÙ±»·Ö·¢µ½L4²ã¡£µ±Ã»ÓÐÆô¶¯conntrackʱ£¬netfilter¸÷HOOKµã¶Ô±¨ÎIJÙ×÷ʱ£¬²¢²»¼ì²é¸Ã± ......