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
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
1.svn:
~$ vi ~/.subversion/servers
[global]
http-proxy-host = xxx.xxx.xxx.xxx
http-proxy-port = xxxx
2.git
~$ wget http://www.meadowy.org/~gotoh/ssh/connect.c
~$ gcc -o connect connect.c
~$ sudo cp connect /usr/local/bin
~$ sudo vi /usr/local/bin/http-proxy-gw
#!/bin/sh
/usr/local/bin/con ......
Ò»¸öÈ˲ªÒ»´Î²»ÄÑ£¬ÄѵÄÊDzªÒ»±²×Ó……
×î½ü·ÖÐĵÄʺܶ࣬²ªµÃÔ½À´Ô½ÉÙÁË£¡
´ò¿ªmmuÊÇÒ»¼þÉñÊ¥µÄ¹¤×÷£¬ÐèÒª×Ðϸ¡¢ÔÙ×Ðϸ……
´Ó__v7_setupº¯Êý·µ»ØÀ´£¬½øÈëµ½__enable_mmu¹ý³Ì£¬×öÆð·ÉǰµÄ×îºóÈ·ÈÏ£º
__enable_mmu:
#ifdef CONFIG_ALIGNMENT_TRAP
orr r0, r0, #CR_A
#else
bic r0, r0, ......
Å£½ò×ÖµäÖжÔ"kernel"Ò»´ÊµÄ¶¨ÒåÊÇ£º"½ÏÈíµÄ¡¢Í¨³£ÊÇÒ»¸ö¼á¹û¿ÉʳÓõIJ¿·Ö¡£"µ±È»»¹ÓеڶþÖÖ¶¨Ò壺"ij¸ö¶«Î÷ºËÐÄ»òÕß×îÖØÒªµÄ²¿·Ö¡£"¶ÔLinuxÀ´Ëµ£¬ËüµÄKernelÎÞÒÉÊôÓÚµÚ¶þÖÖ½âÊÍ¡£ÈÃÎÒÃÇÀ´¿´¿´Õâ¸öÖØÒªµÄ¶«Î÷ÊÇÈçºÎ¹¤×÷µÄ£¬ÏÈ´ÓÒ»µãÀíÂÛ˵Æð¡£
¹ãÒ嵨À´Ëµkernel¾ÍÊÇÒ»¸öÈí¼þ£¬ËüÔÚÓ²¼þºÍÔËÐÐÔÚ¼ÆËã»úÉϵÄÓ¦ÓóÌÐòÖ®¼äÌá¹ ......
±¾ÊÀ¼ÍµÚÒ»¸öÊ®Ä꣬¼´½«¹ýÈ¥¡£»Ø¹ËÒÔÍù£¬²ÅÄÜ¿´ÇåÏÖÔÚ£¬ÎÒÓм¸¾ä»°ÒªËµ¡£
¼ÇµÃ£¬ÔÚÊ®Äê֮ǰ£¬ÈËÃÇÖ»ÄÜÍæÍæÃÀ¹úºìñµÄ Linux ×ÀÃæ£¨ÌرðÊÇ 6.2 °æ±¾£©£¬ÕûÌì sudo £¨¼´ Super User do £©£¬ÈÎÆ¾¼¤Çé·ºÀÄ¡£µ½ÁË 2001 Äê 1 Ô£¬ Linux 2.4 Õýʽ·¢²¼£¬Ê×´ÎÖ§³Ö USB ºÍÀ¶ÑÀ¼¼Êõ£¬ÒÔ¼° ext ......