Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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µÈЭÒé ......

linuxѹËõ(½âѹËõ)ÃüÁîÏê½â

linuxѹËõ(½âѹËõ)ÃüÁîÏê½â
http://blog.csdn.net/hbcui1984/archive/2007/04/25/1583796.aspx
Ò».tarÃüÁî
         tar¿ÉÒÔΪÎļþºÍĿ¼´´½¨µµ°¸¡£ÀûÓÃtar£¬Óû§¿ÉÒÔÎªÄ³Ò»ÌØ¶¨Îļþ´´½¨µµ°¸£¨±¸·ÝÎļþ£©£¬Ò²¿ÉÒÔÔÚµµ°¸ÖиıäÎļþ£¬»òÕßÏòµµ°¸ÖмÓÈëеÄÎļþ¡£tar ×î³õ±»ÓÃÀ´ÔÚ ......

linuxϵͳµ¥Íø¿¨°ó¶¨Ë«IPµÄ·½·¨

 linuxϵͳµ¥Íø¿¨°ó¶¨Ë«IPµÄ·½·¨
http://blog.csdn.net/hbcui1984/archive/2009/05/25/4214282.aspx
1. ½øÈëĿ¼£º
cd /etc/sysconfig/network-scripts/
2. ʹÓÃviÃüÁî±à¼­ifcfg-eth0£¬ÈçÏ£º
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.0.255
......

Linuxϵͳ¸÷°æ±¾±¾µØrootÃÜÂëÆÆ½â·½·¨ÕûÀí


¡¡¡¡Õâ¶Îʱ¼äÀÏÅöµ½ÓÐÈËÎʼ°¸÷¸öLinux°æ±¾µÄ±¾µØrootÃÜÂëÆÆ½â·½·¨£¬ÎÒÕâÀï×Ô¼ºÒÔ¼°ÔÚÍøÂçÉÏËѼ¯ÁËЩ×ÊÁÏ£¬Ï£Íû¶Ô¿´µ½ÁËÕâÎÄÕ¶øÓÖÇ¡ºÃÓõõ½µÄ¼¼ÊõÈËÔ±Óеã°ïÖú£º
(Ò»)RedHat/CentOS/Fedora ϵͳÃÜÂëÆÆ½â
¡¡¡¡1.ÔÚgrubÑ¡Ïî²Ëµ¥°´E½øÈë±à¼­Ä£Ê½
¡¡¡¡2.±à¼­kernel ÄÇÐÐ×îºó¼ÓÉϿոñS (»òÕ߿ոñSingle)
¡¡¡¡3.°´B£¬Æô¶¯µ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ