¡¾×ª¡¿linux socket()µ÷ÓÃÓëarp±¨ÎÄ·¢ËÍ
LinuxÌṩ×î³£ÓõÄÍøÂçͨÐÅÓ¦ÓóÌÐò¿ª·¢½Ó¿Ú--BerkerleyÌ×½Ó×Ö(Socket)£®Ëü¼ÈÊÊÓÃÓÚͬһÖ÷»úÉϽø³Ì¼äͨÐÅ(IPC)£¬ÓÖÊÊÓÃÓÚ²»Í¬Ö÷»úÉϵĽø³Ì¼äͨÐÅ¡£Ì×½Ó×ÖµÄÉèÖÃͨ¹ýsocketµ÷ÓÃÍê³É£º
int socket(int family,int type,int protocol);
ÆäÖÐfamilyָͨÐÅÓò»òÐÒé×壬Linuxϵͳ֧³ÖµÄÍøÂçÐÒé×åÓÐPF_UNIX£¬PF_IPX£¬PF_PACKETµÈ¼¸Ê®ÖÖ£»typeΪÌ×½Ó×ÖÀàÐÍ,ĿǰÓÐSOCK_STREAM¡¢SOCK_DGRAM¡¢SOCK_RAW¡¢SOCK_PACKETµÈ£»protocolÊÇÌ×½Ó×ÖËùÓõÄÌØ¶¨ÐÒéÀàÐͺţ®
LinuxϵͳÌṩµÄ»ùÓÚÊý¾ÝÁ´Â·²ã¿ª·¢Ó¦ÓóÌÐòµÄ½Ó¿Ú¼¯³ÉÔÚÌ×½Ó×ÖÖУ¬ËüÊÇͨ¹ý´´½¨packetÀàÐ͵ÄÌ×½ÓÓʹӦÓóÌÐò¿ÉÖ±½ÓÔÚÊý¾ÝÁ´Â·²ã½ÓÊÕ»ò·¢ËÍδ±»ÏµÍ³´¦ÀíµÄÔʼµÄÊý¾Ý±¨ÎÄ(ÈçARP±¨ÎÄ)£¬Óû§Ò²¿ÉÒÔʹÓÃpacketÀàÐ͵ÄÌ×½ÓÓîÔÚÎïÀí²ãÉ϶¨Òå×Ô¼ºÌØÊâµÄÍøÂçÐÒé¡£Ö»ÓÐ×¢²áºÅΪ0µÄÓû§(³¬¼¶Óû§)½ø³Ì²ÅÄܽ¨Á¢»ò´ò¿ªÓÃÓÚ·ÃÎÊÍøÂçµÍ²ãµÄÌ×½Ó×Ö£®ÔÚLinuxϵͳÖУ¬ÓÃÒÔÏÂÈýÖÖ·½Ê½´´½¨µÄpacketÌ×½Ó×Ö¿ÉÖ±½ÓÓÃÓÚ·ÃÎÊÊý¾ÝÁ´Â·²ã£º
(1)PF_INETÐÒé×åÖÐSOCK_PACKEIÀàÐ͵ÄÌ×½Ó×Ö
(2)PF_PACKETÐÒé×åÖÐSOCK_RAWÀàÐ͵ÄÌ×½Ó×Ö
(3)PF_PACKETÐÒé×åÖÐSOCK_DGRAMÀàÐ͵ÄÌ×½Ó×Ö
Linux 2£®0ÖжÔÊý¾ÝÁ´Â·²ãµÄ²Ù×÷Ö÷ҪʹÓÃSOCK_PACKET¶¨ÒåµÄpacketÌ×½Ó×Ö£®³õʼ»¯¶¨ÒåÈçÏ£º
sockfd=socket(AF_INET,SOCK_PACKET,protocol)£»
ÆäÖУ¬protocolÓÃÓÚ¾ö¶¨Ì×½Ó×ÖËùʹÓõÄÎïÀí²ãÐÒé(ÔÚIEEE802.3Öж¨Òå)£®±ÊÕßÔÚ´ËÑ¡Ôñ³£ÓõÄÎïÀí²ãÐÒéETH_P_IP(InternetÐÒé)£®SOCK_PACKETʹÓÃÒ»ÖֱȽÏÀϵÄsockaddr_pktÊý¾Ý½á¹¹À´ÉèÖÃÍøÂç½Ó¿Ú¡£
ÔÚLinux 2 2ÖÐʹÓÃPF_PACKET´úÌæSOCK_PACKETÀ´¶¨ÒåpacketÌ×½Ó×Ö£®ÕâÖÖÌ×½Ó×ֵijõʼ»¯¶¨ÒåÈçÏ£º
sockfd=socket(PF_PACKET,socket_type,protocol)£»
ÆäÖÐsocket_typeÖ»ÄÜΪSOCK_RAW»òSOCK_DGRAM,protocolΪÎïÀí²ãͨÐÅÐÒé(ͬÉÏ)¡£SOCK_RAWºÍSOCK_DGRAMÀàÐÍÌ×½Ó×ÖʹÓÃÒ»ÖÖÓëÉ豸Î޹صıê×¼ÎïÀí²ãµØÖ·½á¹¹sockaddr_ll£¬µ«¾ßÌå²Ù×÷µÄ±¨Îĸñʽ²»Í¬¡£SOCK_RAWÌ×½Ó×ÖÖ±½ÓÏòÍøÂçÓ²¼þÇý¶¯³ÌÐò·¢ËÍ(»ò´ÓÍøÂçÓ²¼þÇý¶¯³ÌÐò½ÓÊÕ)ûÓÐÈκδ¦ÀíµÄÍêÕûÊý¾Ý±¨ÎÄ(°üÀ¨ÎïÀíÖ¡µÄÖ¡Í·)£¬Õâ¾ÍÒªÇó³ÌÐòÔ±±ØÐëÁ˽â¶ÔÓ¦É豸µÄÎïÀíÖ¡Ö¡Í·½á¹¹£¬²ÅÄÜÕýÈ·µØ×°ÔغͷÖÎö±¨ÎÄ¡£SOCK_DGRAMÌ×½Ó×ÖÊÕµ½µÄÊý¾Ý±¨ÎĵÄÎïÀíÖ¡Ö¡Í·»á±»ÏµÍ³×Ô¶¯È¥µô£¬Í¬Ñù,ÔÚ·¢ËÍʱ£®ÏµÍ³½«»á¸ù¾Ýsockaddr_ll½á¹¹ÖеÄÄ¿µÄµØÖ·ÐÅϢΪÊý¾Ý±¨ÎÄÌò¼ÓÒ»¸ǫ̈ÊʵÄÎïÀíÖ¡Ö¡Í·¡£
ĬÈÏÇé¿öÏ£®´ÓÈκνӿÚÊÕµ½µÄ·ûºÏÖ¸¶¨ÐÒéµÄËùÓÐÊý¾Ý±¨Îͼ»á±»´«Ë͵½packetÌ×
Ïà¹ØÎĵµ£º
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ÏÂÍø¿¨ÃüÃû¹æÂÉ£ºeth0£¬eth1¡£µÚÒ»¿éÒÔÌ«Íø¿¨£¬µÚ¶þ¿é¡£loΪ»·»Ø½Ó¿Ú£¬ËüµÄIPµØÖ·¹Ì¶¨Îª127.0.0.1£¬ÑÚÂë8λ¡£Ëü´ú±íÄãµÄ»úÆ÷±¾Éí¡£
1¡¢ifconfigÊÇ²é¿´Íø¿¨µÄÐÅÏ¢¡£
ifconfig [Interface]
InterfaceÊÇ¿ÉÑ¡ÏÈç¹û²»¼Ó´ËÏÔòÏÔʾϵͳÖÐËùÓÐÍø¿¨µÄÐÅÏ¢¡£Èç¹ûÌí¼Ó´ËÑ¡ÏîÔòÏÔʾËùÖ¸¶¨µÄÍø¿¨ÐÅÏ¢
&nbs ......
linuxÏÂfile descriptoerÏÞÖÆ
ĬÈÏ·ÖÀà 2009-11-21 14:47 ÔĶÁ0 ÆÀÂÛ0
×ֺţº ´ó´ó ÖÐÖРСС
Tuning file descriptor limits on Linux
Linux limits the number of file descriptors that any one process may open; the default limits are 1024 p ......
1¡¢ ¹ØÓÚÍøÂç½Ó¿Ú¼°ÅäÖù¤¾ß˵Ã÷£»
ÍøÂç½Ó¿Ú(interface)ÊÇÍøÂçÓ²¼þÉ豸ÔÚ²Ù×÷ϵͳÖеıíʾ·½·¨£¬±ÈÈçÍø¿¨ÔÚLinux²Ù×÷ϵͳÖÐÓà ethX,ÊÇÓÉ0¿ªÊ¼µÄÕýÕûÊý£¬±ÈÈçeth0¡¢eth1...... ethX¡£¶øÆÕͨèºÍADSLµÄ½Ó¿ÚÊÇ pppX£¬±ÈÈçppp0µÈ£»
ÔÚLinux²Ù×÷ϵͳÖÐÅäÖÃÍøÂç½Ó¿Ú£¬Ò»°ãÊÇͨ¹ýÍøÂçÅäÖù¤¾ßʵÏֵ쬵«×îÖÕÄ¿µÄ»¹ÊÇͨ¹ýÍ ......