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

LinuxÄÚºËÈçºÎ½ÓÊÕ²»Í¬ÀàÐÍÒÔ̫֡

1. ǰÑÔ
ÒÔ̫ͷÖгýÁË6×Ö½ÚÄ¿µÄMACµØÖ·¡¢6×Ö½ÚÔ´MACµØÖ·Í⣬»¹ÓÐÁ½×Ö½ÚµÄÒÔ̫֡ÀàÐÍÖµ£¬ÈçIPv4Ϊ0x0800£¬ARPΪ0x0806µÈ£¬Íø¿¨Çý¶¯ÊÕµ½ÒÔ̫֡ºóͨ¹ý½Ó¿Úº¯Êýnetif_receive_skb()(netif_rxʵ¼Ê×îºóÒ²Êǵ÷ÓÃnetif_receive_skb)½»µ½Éϲ㣬¶øÕâ¸ö½Ó¿Úº¯Êý¾ÍÍê³É¶ÔÒÔ̫֡ÀàÐ͵ÄÇø·Ö£¬½»µ½²»Í¬µÄЭÒé´¦Àí³ÌÐò¡£Èç¹ûÏë×Ô¼º±àдijһÒÔÌ«ÀàÐÍÖ¡µÄ´¦Àí³ÌÐò£¬ÐèÒª×Ô¼ºÌí¼ÓÏàÓ¦µÄ
ÒÔÏÂLinuxÄں˴úÂëΪ2.6.17.11¡£
 
2. Êý¾Ý½á¹¹
ÿÖÖЭÒé¶¼Òª¶¨ÒåÒ»¸öpacket_type½á¹¹£¬Òýµ¼½øÈëÏà¹ØµÄЭÒéÊý¾Ý´¦Àíº¯Êý£¬ËùÓнڵã×é³ÉÒ»¸öÁ´±í(HASHÁ´±í)¡£
/* include/linux/netdevice.h */
struct packet_type {
 __be16   type; /* This is really htons(ether_type). */
 struct net_device *dev; /* NULL is wildcarded here      */
 int   (*func) (struct sk_buff *,
      struct net_device *,
      struct packet_type *,
      struct net_device *);
 void   *af_packet_priv;
 struct list_head list;
};
²ÎÊý˵Ã÷£º
type£ºÒÔ̫֡ÀàÐÍ£¬16λ
dev£ºËù¸½×ŵÄÍø¿¨É豸£¬Èç¹ûΪNULLÔòÆ¥ÅäÈ«²¿Íø¿¨
func£ºÐ­ÒéÈë¿Ú½ÓÊÕ´¦Àíº¯Êý
af_packet_priv£ºÐ­Òé˽ÓÐÊý¾Ý
list£ºÁ´±í¿Û
Ò»°ã¸÷ЭÒéµÄpacket_type½á¹¹¶¼ÊǾ²Ì¬´æÔÚ£¬³õʼ»¯Ê±Ö»ÌṩtypeºÍfuncÁ½¸ö²ÎÊý¾Í¿ÉÒÔÁË£¬Ã¿¸öЭÒéÔÚ³õʼ»¯Ê±¶¼Òª½«´Ë½á¹¹¼ÓÈ뵽ϵͳÀàÐÍÁ´±íÖС£
3. ´¦Àíº¯Êý
3.1 Ìí¼Ó½Úµã
/* net/core/dev.c */
/**
 * dev_add_pack - add packet handler
 * @pt: packet type declaration
 *
 * Add a protocol handler to the networking stack. The passed &packet_type
 * is linked into kernel lists and may not be freed until it has been
 * removed from the kernel lists.
 *
 * This call does not sleep therefore it can not
 * guarantee all CPU's that are in middle of receiving packets
 * will see the new packet type (until the next received packet).
 */
void dev_add_pack(struct packet_type *pt)
{
 int hash;
 


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨ËÄ£© L2CAP²ã±à³Ì

£¨L2CAPЭÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPЭÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼­Á¬½Ó¿ØÖƺÍÊÊÅäЭÒé (L2CAP) ΪÉϲãЭÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àЭÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãЭÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......

ʵսLinux Bluetooth±à³Ì (Æß) SDPЭÒé

Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖЭÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀЭÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......

Linux»·¾³µÄAMP°²×° PHP°²×°


3¡¢PHP°²×°
1£©»¹ÊÇÏÂÔØÔ´Âë°ü£¬È磺php-5.1.1.tar.gz£¬ÏÂÔØµØÖ·£ºhttp://www.php.net
2£©½âѹËõ£¬>tar -zxvf php-5.1.1.tar.gz
3£©½øÈëphp-5.1.1£¬>cd php-5.1.1
4£©°²×°ÅäÖã¬>./configure --prefix=/opt/php
--with-apxs2=/opt/apache/bin/apxs --with-mysql=/opt/mysql
--with-mysqli=/opt/mysql/bin/ ......

php¼ÓÈëlinuxϵͳÃüÁî


¼ÙÉèphp°²×°ÔÚ/usr/local/php5/bin/php£¬³õʼÔÚÃüÁîÐÐÖ´ÐÐPHPµÄʱºòÒªÊäÈëÒ»³¤´®µÄ·¾¶£¬eg£º
$>/usr/local/php5/bin/php phpinfo.php
·Ç³£µÄÂé·³£¬ÏÖÔÚÖ»Ð轫php¿½±´ÖÁusr/sbinĿ¼¼´¿ÉÖ±½ÓʹÓÃphpÃüÁeg£º
$>cp /usr/local/php5/bin/php /usr/sbin/
$>php phpinfo.php
......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ