Linux ÍøÂçϵͳѧϰ IPv6 µÄ³õʼ»¯£¨Ïêϸ¶øÈ«Ã棩
ת×Ô£ºhttp://blog.csdn.net/rstevens/archive/2007/04/10/1559289.aspx
1.
ÍøÂç×Óϵͳ
1.1.
ÍøÂç×Óϵͳ¸ÅÊö
Linux
ÄÚºËÖУ¬ÓëÍøÂçÏà¹ØµÄ´úÂëÊÇÒ»¸öÏà¶Ô¶ÀÁ¢µÄ×Óϵͳ£¬³ÆÎªÍøÂç×Óϵͳ¡£
ÍøÂç×ÓϵͳÊÇÒ»¸ö²ã´Î»¯µÄ½á¹¹£¬¿É·ÖΪÒÔϼ¸¸ö²ã´Î£º
1¡¢
Socket
²ã
Linux
ÔÚ·¢Õ¹¹ý³ÌÖУ¬²ÉÓÃ
BSD socket APIs
×÷Ϊ×Ô¼ºµÄÍøÂçÏà¹ØµÄ
API
½Ó¿Ú¡£Í¬Ê±£¬
Linux
µÄÄ¿±êÓÖÒªÄÜÖ§³Ö¸÷ÖÖ²»Í¬µÄÐÒé×壬¶øÇÒÕâЩÐÒé×å¶¼¿ÉÒÔʹÓÃ
BSD socket APIs
×÷ΪӦÓòãµÄ±à³Ì½Ó¿Ú¡£Òò´Ë£¬ÔÚ
socket APIs
ÓëÐÒé×å²ãÖ®¼ä³éÏó³öÒ»¸ö
socket
²ã£¬ÓÃÓÚ½«
user space
µÄ
socket API
µ÷Óã¬×ª¸ø¾ßÌåµÄÐÒé×å×ö´¦Àí¡£
2¡¢
ÐÒé×å²ã£¨
INET
ÐÒé×å¡¢
INET6
ÐÒé×åµÈ£©
Linux
ÍøÂç×Óϵͳ¹¦ÄÜÉÏÏ൱Í걸£¬Ëü²»½öÖ§³Ö
INET
ÐÒé×壨Ҳ¾ÍÊÇͨ³£Ëù˵µÄ
TCP/IP stack
£©£¬¶øÇÒ»¹Ö§³ÖÆäËüºÜ¶àÖÖÐÒé×壬Èç
DECnet, ROSE, NETBEUI
µÈ¡£
INET6
¾ÍÊÇÒ»ÖÖÐÂÔö¼ÓµÄÐÒé×å¡£
¶ÔÓÚ
INET
¡¢
INET6
ÐÒé×åÀ´Ëµ£¬
ÓÖ½øÒ»²½»®·ÖΪ´«Êä²ãºÍÍøÂç²ã¡£
3¡¢
É豸Çý¶¯²ã
É豸Çý¶¯²ãÔòÖ÷Òª½«ÐÒé×å²ãÓëÎïÀíµÄÍøÂçÉ豸¸ôÀ뿪¡£Ëü²»ÔÚ±¾ÎĵÄÌÖÂÛ·¶Î§Ö®ÄÚ¡£
ÏÂͼÊÇ
Linux
ÍøÂçϵͳ²ã´Î½á¹¹Í¼¡£
1.2.
ÍøÂç×ÓϵͳµÄ³õʼ»¯
·
Socket
²ãµÄ³õʼ»¯£º
Init()->do_basic_setup()->sock_init()
Sock_init()
£º¶Ô
sock
ºÍ
skbuff
½á¹¹½øÐÐ
SLAB
ÄÚ´æµÄ³õʼ»¯¹¤×÷
·
¸÷ÖÖÍøÂçÐÒé×åµÄ³õʼ»¯£º
Do_initcalls()
£º
¶ÔÓÚ±àÒëµ½ÄÚºËÖеŦÄÜÄ£¿é£¨¶ø²»ÊÇÒÔÄ£¿éµÄÐÎʽ¶¯Ì¬¼ÓÔØ£©£¬ËüµÄ³õʼ»¯º¯Êý»áÔÚÕâ¸öµØ·½±»µ÷Óõ½¡£
ÄÚºËÓ³ÏóÖÐרÃÅÓÐÒ»¸ö³õʼ»¯¶Î£¬ËùÓбàÒëµ½ÄÚºËÖеŦÄÜÄ£¿éµÄ³õʼ»¯º¯Êý¶¼»á¼ÓÈëµ½Õâ¸ö¶ÎÖУ»¶ø
do_initcalls()
¾ÍÊÇ
Ïà¹ØÎĵµ£º
¹¦ÄÜ˵Ã÷£ºÇãµ¹ÍøÂç´«ÊäÊý¾Ý¡£
Óï¡¡¡¡·¨£ºtcpdump [-adeflnNOpqStvx][-c<Êý¾Ý°üÊýÄ¿>][-dd][-ddd][-F<±í´ïÎļþ>][-i<ÍøÂç½çÃæ>][-r<Êý¾Ý°üÎļþ>][-s<Êý¾Ý°ü´óС>][-tt][-T<Êý¾Ý°üÀàÐÍ>][-vv][-w<Êý¾Ý°üÎļþ>][Êä³öÊý¾ÝÀ¸Î»]
²¹³ä˵Ã÷£ºÖ´ÐÐtcpdumpÖ¸Áî¿ÉÁгö¾¹ýÖ¸¶¨ÍøÂç½çÃæµ ......
ÔÚLinuxϵͳÖУ¬uptime¡¢topµÈÃüÁîÅжÏÒ»¸öϵͳµÄ¸ºÔØ¡£load average·Ö±ð¼Ç¼ÁË1¡¢5¡¢15·ÖÖÓµÄϵͳƽ¾ù¸ºÔØ¡£
load average ¶Ô performance µÄÓ°Ïì?
1. Èç¹ûload average/CPUÊýÁ¿ < 3, performance is good
2. Èç¹ûload average/CPUÊýÁ¿ > 5, performance is very bad
......
linuxÖÐtouchÃüÁî²ÎÊý²»³£Óã¬Ò»°ãÔÚʹÓÃmakeµÄʱºò¿ÉÄÜ»áÓõ½£¬ÓÃÀ´ÐÞ¸ÄÎļþʱ¼ä´Á£¬»òÕßн¨Ò»¸ö²»´æÔÚµÄÎļþ,ÒÔÏÂÊÇlinuxÖÐtouchÃüÁî²ÎÊýµÄʹÓ÷½·¨:
¡¡¡¡touch [-acm][-r ref_file(²ÎÕÕÎļþ)|-t time(ʱ¼äÖµ)] file(ÎļþÃû)
¡¡¡¡example:
¡¡¡¡touch file1.txt ¸üÐÂfile1.txtµÄ´æÈ¡ºÍÐÞ¸Äʱ¼ä
¡¡¡¡touch -c file1.tx ......
Ò»¡¢Ê²Ã´ÊÇ modules£¿
¡¡¡¡modules µÄ×ÖÃæÒâ˼¾ÍÊÇÄ£¿é£¬ÔÚ´ËÖ¸µÄÊÇ kernel modules£»¼òµ¥À´Ëµ£¬ Ò»¸öÄ£¿éÌṩÁËÒ»¸ö¹¦ÄÜ£¬Èç isofs¡¢minix¡¢nfs¡¢lp µÈµÈ¡£´«Í³À´½²£¬Ä£¿é»¯ÓÐÁ½¸ö·½·¨½â¾ö£º Éè¼ÆÕß¿ÉÒ԰Ѹ÷ÏÄÜ·ÖÀëµ½µ¥¶ÀµÄ½Ð×öÏ̵߳Ĵ¦ÀíÖÐÈ¥£¬»òÕßÊǽ«ÄÚºËÒÔ°üº¬/ÅųýһЩ¹¦Äܵķ½Ê½ÖØÐ±àÒë¡£Èç¹û°Ñ¹¦ÄÜ·ÖÀëµ½Ïß³ ......
Ò».ǰÑÔ
¡¡¡¡LinuxµÄÔ´ÂëÀï£¬ÍøÂç½Ó¿ÚµÄʵÏÖ²¿·ÝÊǷdz£ÖµµÃÒ»¶ÁµÄ£¬Í¨¹ý¶ÁÔ´Â룬²»½ö¶ÔÍøÂçÐÒé»áÓиüÉîµÄÁ˽⣬ҲÓÐÖúÓÚÔÚÍøÂç±à³ÌµÄʱºò£¬¶ÔÓ¦Óú¯ÊýÓиü¾«È·µÄÁ˽âºÍ°ÑÎÕ¡£
¡¡¡¡±¾ÎİÑÖØµã·ÅÔÚÍøÂç½Ó¿Ú³ÌÐòµÄ×ÜÌå½á¹¹ÉÏ£¬Ï£ÍûÄÜ×÷Ϊ¶ÁÔ´ÂëʱһЩָµ¼ÐÔµÄÎÄ×Ö¡£
¡¡¡¡±¾ÎÄÒÔLinux2.4.16ÄÚºË×÷Ϊ½²½âµÄ¶ÔÏó£¬ÄÚºËÔ´Âë ......