Netfilter源码分析--7、内核空间与用户空间的数据交互

七、内核空间与用户空间的数据交互 内核空间与用户空间的数据交互通过getsockopt和setsockopt来完成,这个两个函数用来控制相关socket文件描述符的的选项值,先来看这两个函数的原型: set/getsockopt(2)函数的基本使用格式为: int setsockopt(int sockfd, int proto, int cmd, void *data, int datalen) int getsockopt(int sockfd, int proto, int cmd, void *data, int d...

作者: jazy333 发布时间: 01-05

Netfilter源码分析--6、NAT

六、NAT 6.1、简介 网络地址转换源(NAT)分为(Source NAT,SNAT)和目的NAT(Destination NAT, DNAT)2种不同的类型。SNAT是指修改数据包的源地址(改变连接的源IP)。SNAT会在数据包送出之前的最后一刻做好转工作。地址伪装 (Masquerading)是SNAT的一种特殊形式。DNAT 是指修改数据包的目标地址(改变连接的目的IP)。DNAT 总是在数据包进入以后立即转发,端口转发,负载平衡和透明...

作者: jazy333 发布时间: 01-05

内聚度和耦合度

一、联系 当一个程序段或语句(指令) 引用了其它程序段或语句(指令)中所定义或使用的数据名(即存贮区、地址等)或代码时,他们之间就发生了联系。一个程序被划分为若干模块时,联系既可存在于模块之间,也可存在于一个模块内的程序段或语句之间,即模块内部。联系反映了系统中程序段或语句之间的关系,不同类型的联系构成不同质量的系统。因此,联系是系统设计必须考虑...

作者: sandroli 发布时间: 01-05

SYS和SYSTEM的区别

1.数据库的启动需要以SYSDBA/SYSOPER身份登录。 2.如果在同一主机上使用IPC连接到数据库使用操作系统授权,登录任何一个用户都可以拥有as sysdba和as sysoper。 3.sys和system用户的区别 SYS用户具有DBA权限,并具有SYS模式。只能通过SYSDBA登录数据库,是Oracle数据库中权限最高的帐号。sys用户具有“SYSDBA”和“SYSOPER”权限,登陆em时也只能用这两个身份,不能用normal。而...

作者: xiaoluffy 发布时间: 01-04

nginx配合puppet实现大负载下的负载均衡

当client数量越来越多的情况下,但puppetmaster是无法满足需求的,会导致较高的失败率,类似如time out之类的,这时候就可以做成master群集。步骤如下: 1、相信到了这一步,基本的puppetmaster之类的包肯定都安装完毕了,做成集群还需要一个特殊的包:rubygem-mongrel,安装yum install rubygem-mongrel 2、编辑/etc/sysconfig/puppetmaster,添加下面2行 PUPPETMASTER_POR...

作者: serwei 发布时间: 01-05

c#父子窗体间的自定义事件(static)

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace ppop_client { public partial class MDI : Form { private int childFormNumber = 0; public MDI() { InitializeComponent(); } private void ShowNewForm(object sender, EventArgs e...

作者: cexoyq 发布时间: 01-05

拼图游戏(c语言)

这个拼图游戏是大一时的c语言课程设计: 说明: 游戏说明: 一、游戏难度: l--------------------------简单; m--------------------------一般; h--------------------------困难; 二、游戏玩法 按“↑”、“↓”、“←”、“→”使方块移动; 当结果为下列情况是获胜: 1、 1 2 3 4 5 6 7 8 2、 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3、 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...

作者: himdd 发布时间: 01-04

模拟鼠标事件的处理

板子上的USB接口坏掉了,为了重现有鼠标时的状态,现做一个模拟鼠标: input.h usbmouse.h struct mouse_my g_mt; int mouse_state; #define BUFFER 800 #define SERV_PORT 7838 void *read_uart_mouse(void *para) { int sockfd; //socklen_t len; socklen_t src_len; struct sockaddr_in servaddr, cliaddr; char msg[BUFFER]; sockfd = socket(AF_INET, SOCK_DGRAM, 0); ...

作者: willwwei 发布时间: 01-04

解决: 动态 MMap 没有空间了。请增大 APT::Cache..

装完ubuntu 10.04后就无法更新了,出现如下问题E: 动态 MMap 没有空间了。请增大 APT::Cache-Limit 的大小。当前值:25165824。(man 5 apt.conf)E: 处理 linux-headers-2.6.24-25 (NewVersion1)时出错E: Problem with MergeList /var/lib/apt/lists/debian.ustc.edu.cn_ubuntu_dists_hardy-updates_main_binary-i386_PackagesE: 无法解析或打开软件包列表或状态文件。E: _ca...

作者: lin_13824307069 发布时间: 01-05

实例解读网卡驱动

Tg3 Gbit NIC Driver Analysis 在此仅仅讨论网络设备驱动的一般写法,有关硬件部分的相关代码由于硬件规格不同,予以省略。有什么地方错误,或补充,欢迎大家提出。 1, 驱动模块的加载和卸载 如果网络设备(包括wireless)是PCI规范的,则先是向内核注册该PCI设备(pci_register_driver),然后由pci_driver数据结构中的probe函数指针所指向的侦测函数来初始化该PCI设备,并且...

作者: 空灵静世 发布时间: 01-04