LinuxÍøÂçÉ豸Çý¶¯Ñ§Ï°±Ê¼Ç( )
LinuxÍøÂçÉ豸Çý¶¯³ÌÐòÌåϵ½á¹¹
´ÓÉϵ½Ï£ºÍøÂçÐÒé½Ó¿Ú²ã-->ÍøÂçÉ豸½á¹¹²ã-->É豸Çý¶¯ÊµÏÖ²ã-->ÍøÂçÉ豸Óëý½é²ã
¼ÇÒä·½·¨£º
·ÖÈý²ã£¬1¡¢×îÉÏÃæÀí½âΪÎÒÃÇÓõÄÍøÂç´«Êä·½·¨£¬¾ÍÊÇÍøÂçÐÒ飬2¡¢×îÏÂÃæ¾ÍÊÇÎïÀíÓ²¼þ£¬¼´ÍøÂçÉ豸²ã£¬3¡¢ÖмäÊÇÒ»²ã£¬É豸Çý¶¯£¬È»ºó²ð³É2²¿·Ö£¬Éϲ¿·ÖÊǽṹ£¨²ã£©£¬Ï²¿·ÖÊǽṹÖк¯ÊýµÄʵÏÖ£¨²ã£©¡£
¹¦ÄÜÃèÊö£º
ÍøÂçÐÒé½Ó¿Ú²ã
dev_queue_xmit() ·¢ËÍÊý¾Ý£¬ netif_rx() ½ÓÊÕÊý¾Ý¡£
ÍøÂçÉ豸½á¹¹²ã
ÓÐÒ»¸ö½á¹¹net_device
É豸Çý¶¯ÊµÏÖ²ã
net_deviceÀïµÄº¯ÊýʵÏÖ£¬ ͨ¹ýhard_start_xmit()Æô¶¯·¢ËͲÙ×÷£¬Í¨¹ýÖжϴ¥·¢½ÓÊÕ²Ù×÷¡£
ÍøÂçÉ豸Óëý½é²ã
ÄÄÀï¹ÜµÄÁËÄÇô¶à£¬²»ÀíËüÓ²¼þÔõôʵÏֵġ£
ÍøÂçÐÒé½Ó¿Ú²ã
ÓÐÒ»¸öNBµÄ½á¹¹Ìå:sk_buff£¬½Ð×ö£ºÌ×½Ó×Ö»º³åÇø£¬¸÷²ãÖ®¼äÊý¾Ý´«Êä¶¼¿¿Ëû¡£
dev_queue_xmit()¡¢netif_rx()µÄ²ÎÊý¶¼ÊÇÖ»ÊÇsk_buff¡£
º¯ÊýÔÐÍ£º
dev_queue_xmit(struct sk_buff *sb ); //sbʵ¼ÊÊÇ skb£¬ÉÙдһ¸ökÖú¼Ç
netif_rx(struct sk_buff sk_buff *sb); //ͬÉÏ
sk_buff ÄÚÈÝÏê½â
1 ÐÒéÍ· £¬ÓкöàºÃ¶àÐÒéҪʹÓã¬ËùÒÔÐÒéÍ·ÊDZØÒªµÎ£¬µ±È»²»ÄÜͬʱʹÓÃTCP/IP UDP»òÕ߯äËûʲôÐÒ飬ËùÒÔ°ÑÍ·½á¹¹¶¨Òå³ÉÁªºÏÌå¡£
2 Êý¾Ý»º³åÇø£ºÒª¸ã¸öµØ·½·ÅÊý¾Ý£¬Òª¹¦ÄÜÇ¿´ó±ØÐëÄÜÕÒµ½¸÷ÐèÒªµÄλÖñÈÈ磺ͷ¡¢Î²… ËùÒÔÔÚsk_buffÖж¨ÒåÁË4¸öÖ¸Õ룺head¡¢ data¡¢tail¡¢end¡£Ö¸ÏòÊý¾Ý»º³åÇø¡£
head£º»º³åÇøÆðʼµØÖ·£¬sk_buff Ò»µ©´´½¨£¬headÊý¾Ý¾Í¹Ì¶¨ÁË¡£
data£ºµ±Ç°²ãµÄÓÐЧÊý¾ÝÆðʼµØÖ·
tail£º ÓÐЧÊý¾ÝµÄ½áβµØÖ·£¬ºÍdata¶ÔÓ¦
end£º»º³åÇøµÄ½áβµØÖ·£¬sk_buff Ò»µ©´´½¨£¬endÊý¾Ý¾Í¹Ì¶¨ÁË¡£
3 ³¤¶ÈÐÅÏ¢
len:Êý¾Ý°üÓÐЧÊý¾Ý³¤¶È£¬°üÀ¨ÐÒéÍ·ºÍ¸ºÔØ£¨Payload£¿£©
data_len:¼Ç¼·ÖƬµÄÊý¾Ý³¤¶È,Êý¾Ý°üµÄÓÐЧÊý¾ÝÊǷֳɼ¸Æ¬´æÔÚ²»Í¬µÄÄÚ´æ¿Õ¼äÖУ¬Ã¿Æ¬¿Õ¼ä×î´óÊÇÒ»Ò³¡£
truesize£º»º³åÇøµÄÕûÌ峤¶È£¬¼´£ºsizeof(struct sk_buff)+£¨´«Èëalloc_sdb()»òdev_alloc_skb()º¯ÊýµÄ³¤¶È£©--˵ʵ»°²»Àí½â´«È뺯ÊýµÄ³¤¶ÈÊÇʲô.
NBµÄ½á¹¹Ìå:sk_buffµÄ²Ù×÷
¸÷²ãÖ®¼ä¾Í¿¿Ëû£¬µ±È»ÐèÒª¶ÔËû½øÐвÙ×÷¡£
Ø ·ÖÅ䣺
struct sk_buff *alloc_skb(unsigned int len,int priority);
Ïà¹ØÎĵµ£º
×ÜÀÀ
ÓÃiptables -ADC À´Ö¸¶¨Á´µÄ¹æ
Ôò
£¬-AÌí¼Ó -Dɾ³ý -C ÐÞ¸Ä
iptables - [RI] chain rule num rule-specification[option]
ÓÃiptables - RI ͨ¹ý¹æÔòµÄ˳ÐòÖ¸¶¨
iptables -D chain rule num[option]
ɾ³ýÖ¸¶¨¹æÔò
iptables -[LFZ] [chain][option]
ÓÃiptables -LFZ Á´Ãû [Ñ¡Ïî]
iptables -[NX] chain
ÓÃ -NX ......
Í·Îļþ£º
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <netdb.h>
#include <arpa/inet.h>
#include < ......
Ò». yumÊÇʲô
yum = Yellow dog Updater, Modified
Ö÷Òª¹¦ÄÜÊǸü·½±ãµÄÌí¼Ó/ɾ³ý/¸üÐÂRPM°ü.
ËüÄÜ×Ô¶¯½â¾ö°üµÄÒÐÀµÐÔÎÊÌâ.
ËüÄܱãÓÚ¹ÜÀí´óÁ¿ÏµÍ³µÄ¸üÐÂÎÊÌâ
×¢:ΪʲôҪʹÓÃyum¶ø²»ÓÃapt,×î¼òµ¥µÄÔÒò,Fedora×Ô´ø
¶þ. ......
ÓÉÓÚfind¾ßÓÐÇ¿´óµÄ¹¦ÄÜ£¬ËùÒÔËüµÄÑ¡ÏîÒ²ºÜ¶à£¬ÆäÖд󲿷ÖÑ¡Ïî¶¼ÖµµÃÎÒÃÇ»¨Ê±¼äÀ´Á˽âһϡ£¼´Ê¹ÏµÍ³Öк¬ÓÐÍøÂçÎļþϵͳ(
NFS)£¬findÃüÁîÔÚ¸ÃÎļþϵͳÖÐͬÑùÓÐЧ£¬Ö»Äã¾ßÓÐÏàÓ¦µÄȨÏÞ¡£ÔÚÔËÐÐÒ»¸ö·Ç³£ÏûºÄ×ÊÔ´µÄ ...
ÓÉÓÚfind¾ßÓÐÇ¿´óµÄ¹¦ÄÜ£¬ËùÒÔËüµÄÑ¡ÏîÒ²ºÜ¶à£¬ÆäÖд󲿷ÖÑ¡Ïî¶¼ÖµµÃÎÒÃÇ»¨Ê±¼äÀ´Á˽âһϡ£¼´Ê¹ÏµÍ³ÖÐ ......
¹¦ÄÜ£º
¼ÓÔØÖ¸¶¨µÄÎļþϵͳ¡£
Óï·¨£º
mount [-afFhnrvVw] [-L] [-o] [-t] [É豸Ãû] [¼ÓÔØµã]
Ó÷¨ËµÃ÷£º
mount¿É½«Ö¸¶¨É豸ÖÐÖ¸¶¨µÄÎļþϵͳ¼ÓÔØµ½LinuxĿ¼Ï£¨Ò²¾ÍÊÇ×°ÔØµã£©¡£¿É½«¾³£Ê¹ÓõÄÉ豸дÈë
Îļþ/etc/fastab,ÒÔʹϵͳÔÚÿ´ÎÆô¶¯Ê±×Ô¶¯¼ÓÔØ¡£mount¼ÓÔØÉ豸µÄÐÅÏ¢¼Ç¼ÔÚ/etc/mtabÎļþÖС£Ê¹ÓÃumountÃüÁîÐ ......