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

Linux²Ù×÷ϵͳÄÚºËARPµÄÉè¼ÆÊµÏÖ¸ÅÊö

ARP (Address Resolution Protocol) ÊÇÓÃÀ´°ÑIPµØÖ·×ª»¯³É»úÆ÷µÄÍø¿¨ÎïÀíµØÖ·£¨Ó²¼þµØÖ·£©¡£µ±Ò»Ì¨»úÆ÷ÒªÏòÁíÍâһ̨ÎïÀíÉÏÏàÁ¬µÄ»úÆ÷·¢ËÍIP°üµÄʱºò£¬ËüÒªÏȼì²éÒ»ÏÂ×Ô¼ºµÄARP»º´æ£¬ÊÔͼÕÒµ½¶Ô·½µÄÓ²¼þµØÖ·£¬Èç¹ûÕÒ²»µ½µÄ»°£¬°ÑÒª·¢Ë͵ÄIP°ü·ÅÈëµÈ´ý¶ÓÁÐÖУ¬½Ó×Å·¢³öÒ»¸öARPÇëÇ󡣵ȵ½ÊÕµ½ARPÓ¦´ðµÄʱºò£¬¹¹ÔìºÃÔ­À´ÕýÔڵȴýµÄIP°üµÄethernetÍ·²¿£¨Ä¿µÄÓ²¼þµØÖ·£¬Ô´Ó²¼þµØÖ·£©£¬ÔÙ°ÑÕâ¸öIP°ü·¢ËͳöÈ¥¡£
LinuxµÄARPʵÏÖÏ൱¸´ÔÓ£¬²¿·ÖÔ­ÒòÊÇLinux²»Ö¹ÒªÖ§³Öethernet£¬»¹ÒªÖ§³ÖÆäËüÀàÐ͵ÄÍøÂ磬ÁíÍâÒ»²¿·ÖÔ­ÒòÊÇARPµÄʵÏÖʵ¼ÊÉÏÊǺÍ·ÓÉ´¦Àí£¨routing£©Ïà¹Ø£¬ËùÒÔÀí½âÆðÀ´²»Ì«ÈÝÒס£
Ê×ÏÈÎÒÒª½²Ò»ÏÂARPº¯ÊýµÄµ÷Óùý³Ì£º
(1) µ±ÏµÍ³³õʼ»¯Ê±£¬µ÷ÓÃarp_initÀ´³õʼ»¯ARP»º´æ£¨arp_tbl£©£¬²¢ÇÒ×¢²áARPЭÒéµÄ½ÓÊÕº¯Êý¡£
(2) µ±Íø¿¨Çý¶¯³ÌÐòÊÕµ½Ò»¸öÍøÂç°ü£¨packet£©µÄʱºò£¬»á·ÖÅäÒ»¸ösk_buff(skb)£¬°ÑÊý¾Ý¿½±´½øÕâ¸ö»º³åÇø£¬È»ºóµ÷ÓÃnetif_rx°Ñskb·ÅÈëµÈ´ý¶ÓÁУ¨input_pkt_queue£©ÖУ¬²¢ÇÒ²úÉúÒ»¸öÈíÖжϡ£µ±ÏµÍ³´¦ÀíÕâ¸öÈíÖжϵÄʱºò£¬»áµ÷ÓÃnet_rx_action£¬Ëü¸ù¾ÝÍøÂç°üµÄÀàÐÍ£¬µ÷ÓÃÏàÓ¦µÄ½ÓÊÕº¯ÊýÀ´´¦Àí¡£Èç¹ûÊÇARP°ü£¬Ôòµ÷ÓÃarp_rcv¡£
(3)arp_rcvÅжÏÕâ¸öarpÇëÇóÊDz»ÊÇѯÎʱ¾»ú»òÕß±¾»ú´úÀíµÄÓ²¼þµØÖ·£¬Èç¹ûÊǵϰ£¬µ÷ÓÃarp_send·¢»ØarpÓ¦´ð¡£ÁíÍâarp_rcv»¹¾¡Á¿±£Áô¶Ô·½»úÆ÷µÄmac addres¡£
(4) arp_send·ÖÅäÒ»¸ösk_buff(skb)£¬ÌîºÃarp°üµÄÀàÐÍ£¬Ô´Ó²¼þµØÖ·£¬Ô´IPµØÖ·£¬Ä¿µÄÓ²¼þµØÖ·£¬Ä¿µÄIPµØÖ·£¬È»ºóµ÷ÓÃdev_queue_xmitÕâ¸öarp°ü·¢ËͳöÈ¥¡£
Æä´Î£¬ÃèÊöÒ»ÏÂARPÖ÷ÒªµÄÊý¾Ý½á¹¹£º
(1) neigh_table
neigh_tableÊÇÒ»¸öÓÃÀ´ÃèÊöÎïÀíÉÏ»¥ÏàÁ¬½ÓµÄ»úÆ÷µÄÐÅÏ¢µÄ¹þÏ£±í£¬ARP»º´æarp_tbl ¾ÍÊÇÕâÑùµÄÒ»¸öneigh_table¡£ÏµÍ³ÖÐËùÓеÄneigh_table¶¼Á¬ÔÚÒ»Æð¡£ÏÂÃæÊÇһЩÖ÷ÒªµÄÓò£º+ struct neighbour *hash_buckets[NEIGH_HASHMASK+1]; hash_buckets´æ·Å×ÅËùÓÐÁÚ¾Ó£¨ÎïÀíÉÏÏàÁ¬µÄ»úÆ÷£©µÄÐÅÏ¢£¬¹²ÓÐ32¸öbucket£¬Ã¿Ò»¸öbucket´æ·Å×ÅÒ»ÌõneighborÁ´±í¡£
+ struct pneigh_entry *phash_buckets[PNEIGH_HASHMASK+1];phash_buckets´æ·Å×ÅËùÓÐproxy arpµÄentry£¬Ã¿Ò»¸öentryÓÉÍø¿¨É豸ºÍipµØÖ·×é³É£¬Ö¸Ã÷ÓÉÄĸöÍø¿¨É豸´úÀíÄĸöipµÄmacµØÖ·¡£¹²ÓÐ16¸öbucket.+ int family;
ÍøÂçÀàÐÍ£¬ÎªAF_INET
int entry_size; ´óСΪsizeof(struct neighbour) + 4
int key_len; ¼üµÄ³¤¶È£¬Îª4
+ __u32 (*hash)(const void *pkey, const struct net_device *);
int (*constr


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨Èý£© HCI²ã±à³Ì

1. HCI²ãЭÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI)  ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈЭÒé ......

2009ÄêLinux·þÎñÆ÷Èí¼þ·¢Õ¹Å̵ã

Ó²¼þ¼¼ÊõÒ»Ö±ºÍÈí¼þ¼¼ÊõÏàÒÀÏàËæ£¬Ëæ×Å·þÎñÆ÷Ó²¼þºÍоƬ¼¼ÊõµÄ½ø²½£¬Íƶ¯×Å·þÎñÆ÷²Ù×÷ϵͳ¼¼ÊõµÄ±ä¸ï¡£
¡¡¡¡Ð¾Æ¬¼¼ÊõµÄ·¢Õ¹£º´Óx86µ½Áúо
¡¡¡¡2009Ä꣬¸÷´óоƬ³§É̶¼ÍƳöÁ˶à¿îоƬ²úÆ·£ºÈçIntel¹«Ë¾»ùÓÚNehalem¼Ü¹¹·¢²¼µÄ×ÀÃæ¶ËоƬ²úÆ·¿áî£i7£»AMD¹«Ë¾Ò²ÍƳöÁË»ù
ÓÚÐÂFioranoƽ̨µÄ´úºÅΪ“ÒÁ˹̹²¼¶û”µÄ ......

linuxÖ÷Ҫϵͳ·þÎñ½éÉÜ Rui

linuxÖ÷Ҫϵͳ·þÎñ½éÉÜ
--------------------------------------------------------------------------------
apmd£­£­apmdÓÃÀ´¼àÊÓϵͳÓõç״̬£¬²¢½«Ïà¹ØÐÅϢͨ¹ýsyslogdдÈëÈÕÖ¾¡£Ò²¿ÉÒÔÓÃÀ´ÔÚµçÔ´²»×ãʱ¹Ø»ú
arpwatch£­£­ÓÃÀ´Î¬»¤ÒÔÌ«ÍøÎïÀíµØÖ·ºÍipµØÖ·µÄ¶ÔÓ¦¹ØÏµ
atd£­£­ÔËÐÐÓû§ÓÃatÃüÁîµ÷¶ÈµÄÈÎÎñ¡£Ò²ÔÚϵͳ ......

Éî¶È½éÉÜLinuxÄÚºËÊÇÈçºÎ¹¤×÷µÄ


Å£½ò×ÖµäÖжÔ"kernel"Ò»´ÊµÄ¶¨ÒåÊÇ£º"½ÏÈíµÄ¡¢Í¨³£ÊÇÒ»¸ö¼á¹û¿ÉʳÓõIJ¿·Ö¡£"µ±È»»¹ÓеڶþÖÖ¶¨Ò壺"ij¸ö¶«Î÷ºËÐÄ»òÕß×îÖØÒªµÄ²¿·Ö¡£"¶ÔLinuxÀ´Ëµ£¬ËüµÄKernelÎÞÒÉÊôÓÚµÚ¶þÖÖ½âÊÍ¡£ÈÃÎÒÃÇÀ´¿´¿´Õâ¸öÖØÒªµÄ¶«Î÷ÊÇÈçºÎ¹¤×÷µÄ£¬ÏÈ´ÓÒ»µãÀíÂÛ˵Æð¡£
¹ãÒ嵨À´Ëµkernel¾ÍÊÇÒ»¸öÈí¼þ£¬ËüÔÚÓ²¼þºÍÔËÐÐÔÚ¼ÆËã»úÉϵÄÓ¦ÓóÌÐòÖ®¼äÌá¹ ......

Linux tty/pty/pts ¸ÅÄîÇø±ð

tty0£­6ÊÇlinux±¾µØÖÕ¶Ë£¬pts/xÊÇÔ¶³ÌµÇ½ÐèÒªµÄÖÕ¶Ë£¬±ÈÈçijÈËÒªtelnetµ½ÄãµÄ»ú×Ó£¬¾ÍÐèÒªÄãµÄϵͳÓÐpts/x¡£ 
»ù±¾¸ÅÄ
¡¡
¡¡1. tty(ÖÕ¶ËÉ豸µÄͳ³Æ):
¡¡¡¡ttyÒ»´ÊÔ´ÓÚTeletypes£¬»òÕßteletypewriters£¬Ô­À´Ö¸µÄÊǵ紫´ò×Ö»ú£¬ÊÇͨ¹ý´®ÐÐÏßÓôòÓ¡»ú¼üÅÌͨ¹ýÔĶÁºÍ·¢ËÍÐÅÏ¢µÄ¶«Î÷£¬ºóÀ´Õâ¶«Î÷±»¼üÅÌÓëÏÔʾÆ÷È¡´ú ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ