Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

¡¾×ªÌû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


Ïà¹ØÎĵµ£º

linux¾ÈԮģʽ

ÐÞ¸Ä/etc/fstab, /etc/rc.d/rc.sysinitµÈϵͳÆô¶¯ÎļþʱÎó²Ù×÷¾Í»áÔì³ÉlinuxÎÞ·¨½øÈ룬ÓÐrescueÅÌ¿ÉÒÔÈÝÒ×ÐÞ¸´£¬Õâ¸ö·½·¨ÊʺÏÓÚûÓÐrescueÅÌʱÐÞ¸´ÏµÍ³¡£
grub²Ëµ¥ÖÐÑ¡Ôñlinux,°´e,e,½øÈë±à¼­Ä£Ê½£¬kernel (hd0,0)/vmlinuz root=/dev/hda2.....ÕâÒ»ÐÐ×îºó¼ÓÉÏinit=/bin/bash,Ð޸ĺúó°´enter,bÒýµ¼Ð޸ĺóµÄÒýµ¼ÐÅÏ¢ÀàËÆÈçÏ ......

°²×°uÅÌlinuxϵͳ~~

¿É°²×°ÔÚUÅÌÉϵIJÙ×÷ϵͳ Puppy Linux 4.1 Beta
Ò»¡¢ UÅ̰²×°Puppy Linux·½·¨
1¡¢ÏÂÔØ°²×°FlashBoot¡£¿ÉÒÔÔÚgoogleÉÏËÑÒ»ÏÂÏÂÔØ
ÔËÐÐFlashBoot£¬°´ÏÂͼºìÉ«¿òÑ¡Ôñ£¬µã¡¾ÏÂÒ»²½¡¿
Ñ¡ÔñÄãÏÂÔØµÄiso¾µÏñ£¬¡¾ÏÂÒ»²½¡¿
Ñ¡ÔñÄãµÄUÅÌÅÌ·û£¬²»ÒªÑ¡´íÁË¡£µã¡¾ÏÂÒ»²½¡¿
ÕâÒ»²½Òª×¢Ò⣬ĬÈÏÑ¡ÔñµÄÊDz»¸ñÅÌ¡£ ......

linux find exec rm

#find ... -exec rm {} \;
#find ... | xargs rm -rf
Á½Õß¶¼¿ÉÒÔ°ÑfindÃüÁî²éÕÒµ½µÄ½á¹ûɾ³ý£¬ÆäÇø±ð¼òµ¥µÄ˵ÊÇǰÕßÊǰÑfind·¢ÏֵĽá¹ûÒ»´ÎÐÔ´«¸øexecÑ¡ÏÕâÑùµ±ÎļþÊýÁ¿½Ï¶àµÄʱºò£¬¾Í¿ÉÄÜ»á³öÏÖ“²ÎÊýÌ«¶à”Ö®ÀàµÄ´íÎó£¬Ïà±È½Ï¶øÑÔ£¬ºóÕ߾ͿÉÒÔ±ÜÃâÕâ¸ö´íÎó£¬ÒòΪxargsÃüÁî»á·ÖÅú´ÎµÄ´¦Àí½á¹û¡£ÕâÑù¿´À´£ ......

½¨Á¢ARM+LinuxÓ¦ÓóÌÐòµ÷ÊÔ»·¾³

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 ......

¡¾×ªÌûLINUX¡¿netfilterÖеÄconntrackÄÚºËÔĶÁ±Ê¼Ç(1)

2008-07-07 22:04×´ ̬¼ì²â(stateful inspection)ÊÇÓÉCheckPoint¹«Ë¾×îÏÈÌá³öµÄ£¬¿ÉËãÊÇ·À»ðǽ¼¼ÊõµÄÒ»ÏîÍ»ÆÆÐÔ±ä¸ï£¬°Ñ°ü¹ýÂ˵ĿìËÙÐԺʹúÀíµÄ°²È«ÐԺܺõؽáºÏÔÚÒ»Æð£¬ ĿǰÒѾ­ÊÇ·À»ðǽ×îÁ÷Ðеļì²â·½Ê½¡£×´Ì¬¼ì²âµÄ¸ù±¾Ë¼ÏëÊǶÔËùÓÐÍøÂçÊý¾Ý½¨Á¢“Á¬½Ó”µÄ¸ÅÄ´Ë“Á¬½Ó”ÊÇÃæÏò“Á¬½Ó&rdquo ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ