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

Linux ÏÂTCPÁ¬½Ó¹Ø±ÕÇé¿ö·ÖÎö

Ò»¡¢TCPÁ¬½Ó¹Ø±ÕµÄ¼¸ÖÖ·½Ê½£º
1¡¢“Õý³£”¹Ø±Õ£ºµ÷ÓÃclose()¹Ø±Õsocket¡¢Ã»closeµ«½ø³ÌÕý³£½áÊø(µ±È»ÕâÊDz»Ó¦¸ÃµÄ×ö·¨)¡¢½ø³Ìcoreµô¡¢ÔÚshellÃüÁîÐÐÖÐkillµô½ø³Ì£¬¶¼¿É³éÏó³É“Õý³£”¹Ø±Õ¡£ÒòΪ¼´Ê¹coreµô£¬ÄÚºËÒ²»áÂíÉϰïÓ¦ÓóÌÐò»ØÊÕ(close)socketÎļþÃèÊö·û¡£
     “Õý³£”¹Ø±Õ£¬Ä¬ÈÏÇé¿öÏÂ(·ÇĬÈϼ´ÉèÖÃLingerÏÂÃæ»á½éÉÜ)£¬¹Ø±Õ¶Ë¼´¿Í»§¶ËTCP²ã»á·¢FIN°ü£¬¶Ô¶Ë¼´·þÎñÆ÷TCP²ãÊÕµ½ºó£¬»ØACK£¬¿Í»§¶Ë½øÈëFIN_WAIT2״̬¡£´Ëʱ£¬TCPÖÕÖ¹Á¬½ÓµÄ4¸ö·Ö×éÖзþÎñÆ÷Ó¦¸Ã·¢µÄµÚ3¸ö·Ö×éFIN°ü£¬ÆäTCP²ãÊDz»»áÖ÷¶¯·¢µÄ£¬Ö»ÓзþÎñÆ÷¶Ësocket“Õý³£”¹Ø±Õ£¬²Å»á·¢³öÕâ¸öFIN°ü¡£ÖÁ´Ë£¬¿Í»§¶Ë½øÈëTIME_WAIT״̬¡£
2¡¢“·Ç”Õý³£¹Ø±Õ£º¿Í»§¶Ë±ÀÀ£ÁË£¬´Ëʱ¿Ï¶¨·¢²»³öFIN°üÁË(µ±È»À²£¬Äں˶¼Ã»»ú»á°ïÓ¦ÓóÌÐò»ØÊÕ×ÊÔ´ÁË)¡£ÕâÖÖÇé¿ö£¬·þÎñÆ÷¶ËÓÐÈçÏÂÁ½ÖÖÇé¿ö£º
    A¡¢·þÎñÆ÷sendÊý¾Ý£¬ÒòΪ¿Í»§¶ËÒѾ­±ÀÀ££¬·þÎñÆ÷ÊÕ²»µ½ACK×ÔÈ»»á²»Í£µÄÖØ´«¡£Ô´×Ô
        BerkeleyµÄÖØ´«»úÖÆ£¬ÖØ´«8´Î£¬Ïà¶ÔµÚÒ»´Î´«µÄ15·ÖÖÓºóÈÔûÊÕµ½ACK£¬Ôò·µ»Ø
        ETIMEDOUT»òEHOSTUNREAC´íÎó¡£Èç¹û·þÎñÆ÷²»Àí»áÕâ¸ö´íÎó£¬Ôٴε÷ÓÃsend£¬Ôò
        Á¢Âí·µ»ØBroken Pipe´íÎó¡£    
       ×¢£º15·ÖÖÓ³¬Ê±¿ÉÒÔÔÚ /proc/sys/net/ipv4/tcp_retries2 ÖÐÐÞ¸Ä
   B¡¢ ·þÎñÆ÷²»·¢ÈκÎÊý¾ÝÁË£¬ÄÇÖ»Óп¿Ó¦ÓòãÐÄÌø¼ì²â»úÖÆ»òKeepalive£¬À´·¢¾õTCP¶ÏÁ¬ÁË¡£
¶þ¡¢SO_LINGERÌ×½Ó¿ÚÑ¡Ïî
           A¡¢l_onoffÉèÖÃΪ0£¬ÕâÒ²ÊÇĬÈÏÇé¿ö£¬º¯Êýclose()ÊÇÁ¢¼´·µ»ØµÄ£¬È»ºóTCPÁ¬½ÓË«·½ÊÇͨ¹ý
                FIN¡¢ACK4·Ö×éÀ´ÖÕÖ¹TCPÁ¬½ÓµÄ¡£µ±È»,·¢ËÍ»º³åÇø»¹ÓÐÊý¾ÝµÄ»°£¬ÏµÍ³½«ÊÔ׎«ÕâЩÊý¾Ý
                ·¢Ë͵½¶Ô·½¡£
           B¡¢l_onoff·Ç0£¬l_lingerÉèÖÃ0£¬º¯Êýclose()Á¢¼´·µ»Ø£¬²¢·¢ËÍRSTÖÕÖ¹Á¬½Ó£¬·¢ËÍ»º³åÇøµÄÊý¾Ý¶ªÆú¡£
   &


Ïà¹ØÎĵµ£º

[ת]Linux²Ù×÷ϵͳÎļþϵͳ»ù´¡ÖªÊ¶Ïê½â

 Ò» ¡¢LinuxÎļþ½á¹¹
¡¡¡¡Îļþ½á¹¹ÊÇÎļþ´æ·ÅÔÚ´ÅÅ̵ȴæÖüÉ豸ÉϵÄ×éÖ¯·½·¨¡£Ö÷ÒªÌåÏÖÔÚ¶ÔÎļþºÍĿ¼µÄ×éÖ¯ÉÏ¡£
¡¡¡¡Ä¿Â¼ÌṩÁ˹ÜÀíÎļþµÄÒ»¸ö·½±ã¶øÓÐЧµÄ;¾¶¡£
¡¡¡¡LinuxʹÓñê×¼µÄĿ¼½á¹¹£¬ÔÚ°²×°µÄʱºò£¬°²×°³ÌÐò¾ÍÒѾ­ÎªÓû§´´½¨ÁËÎļþϵͳºÍÍêÕû¶ø¹Ì¶¨µÄĿ¼×é³ÉÐÎʽ£¬²¢Ö¸¶¨ÁËÿ¸öĿ¼µÄ×÷ÓÃºÍÆäÖеÄÎļþ ......

ÈçºÎÔÚLinuxÖÐÌí¼ÓеÄϵͳµ÷ÓÃ

 ÏµÍ³µ÷ÓÃÊÇÓ¦ÓóÌÐòºÍ²Ù×÷ϵͳÄÚºËÖ®¼äµÄ¹¦Äܽӿڡ£ÆäÖ÷ҪĿµÄÊÇʹµÃÓû§
¿ÉÒÔʹÓòÙ×÷ϵͳÌṩµÄÓйØÉ豸¹ÜÀí¡¢ÊäÈë/ÊäÈëϵͳ¡¢ÎļþϵͳºÍ½ø³Ì¿ØÖÆ¡¢
ͨÐÅÒÔ¼°´æ´¢¹ÜÀíµÈ·½ÃæµÄ¹¦ÄÜ£¬¶ø²»±ØÁ˽âϵͳ³ÌÐòµÄÄÚ²¿½á¹¹ºÍÓйØÓ²¼þϸ
½Ú£¬´Ó¶øÆðµ½¼õÇáÓû§¸ºµ£ºÍ±£»¤ÏµÍ³ÒÔ¼°Ìá¸ß×ÊÔ´ÀûÓÃÂʵÄ×÷Óá£
¡¡¡¡Linux²Ù×÷ϵͳ ......

Linux Kernel Threads in Device Drivers

 Purpose
This examples shows how to create and stop a kernel thread.
The driver is implemented as a loadable module. In the init_module() routine five kernel threads are created. This kernel threads sleep one second, wake up, print a message and fall asleep again. On unload of the module (cle ......

LinuxϵĶδíÎó²úÉúµÄÔ­Òò¼°µ÷ÊÔ·½·¨

LinuxϵĶδíÎó²úÉúµÄÔ­Òò¼°µ÷ÊÔ·½·¨
ĬÈÏ·ÖÀà   2008-08-26 13:37   ÔĶÁ28   ÆÀÂÛ0  
×ֺţº ´ó´ó  ÖÐÖР СС
¼ò¶øÑÔÖ®,²úÉú¶Î´íÎó¾ÍÊÇ·ÃÎÊÁË´íÎóµÄÄÚ´æ¶Î£¬Ò»°ãÊÇÄãûÓÐȨÏÞ£¬»òÕ߸ù±¾¾Í²»´æÔÚ¶ÔÓ¦µÄÎïÀíÄÚ´æ,ÓÈÆä³£¼ûµÄÊÇ·ÃÎÊ0µØÖ·.
Ò»°ãÀ´Ëµ,¶Î´íÎó¾ÍÊÇÖ¸· ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ