struct
sk_buff可能是linux网络代码中最重要的数据结构,它表示接收或发送数据包的包头信息,并包含很多成员变量供网络代码中的各子系统使用。
这个结构被网络的不同层(MAC或者其他二层链路协议,三层的IP,四层的TCP或UDP等)使用,并且其中的成员变量在结构从一层向另一层传递时改变.....
分类:
其他好文 时间:
2014-05-17 13:05:23
阅读次数:
868
使多个物件都有机会处理请求,以避免请求的发送者与接收者之间的耦合关系,将这些物件组合为一个链,并沿着这个链传递该请求,直到有物件处理它为止
角色成员: 抽象处理角色(Handler):定义一个处理请求的接口,如果需要,接口可以定义出一个方法以返回或设置对下家的引用 .
通常可以用抽象类或接口实现.....
分类:
其他好文 时间:
2014-05-16 22:06:31
阅读次数:
468
不同的集群产品都有自己的特点,RAC的特点包括如下几点:
·双机并行。RAC是一种并行模式,并不是传统的主备模式。也就是说,RAC集群的所有成员都可以同时接收客户端的请求。
·高可用性。RAC是Oracle数据库产品高可用性的解决方案,能够保证在集群中只要有一个节点存活,就能正常对外提供服...
分类:
数据库 时间:
2014-05-14 07:13:48
阅读次数:
367
recv函数会将套接字缓冲区中的内容读出,但不清空,与read函数的区别在此。此函数有一个flag标志位,设为MSG_PEEK。
send函数会将缓冲区中的内容写入到套接字,也不清空,与write函数的区别在此。
用这两个函数可以先接收或发送缓冲区中的内容,然后再用readn(此时缓冲区中的内容依然存在)与write函数去继续判断换行符/n,对缓冲区内容实现换行输出。
echocli.c...
分类:
其他好文 时间:
2014-05-13 23:43:35
阅读次数:
494
关于如何避免僵尸进程。其实方法很多。有很多现成的解决方案。这里给出一个简单的方案。以及背后思考的过程。设想一种最简单的http服务器:伪代码:当接收到一个tcp请求的时候.fork
一个子进程去做工作。主进程依旧在监听下面要来的请求。这个模型实际上会导致。因为fork出来的子进程没有回收,并且父进程...
分类:
其他好文 时间:
2014-05-13 17:17:18
阅读次数:
339
接口层包括在本地网上发送和接收分组的硬件与软件。
我们用设备驱动程序来表示与硬件及网络接口通信的软件,网络接口是指在一个特定网络上硬件与设备驱动器之间的接口。
Net/3接口层试图在网络协议和连接到一个系统的网络设备的驱动器间提供一个与硬件无关的编程接口。这个接口层为所有的
设备提供以下支持。
1.一套精心定义的接口函数。
2.一套标准的统计与控制标志。
3.一个与设备无关的存储协议地...
分类:
其他好文 时间:
2014-05-13 16:29:01
阅读次数:
384
已经工作了接近一年的时间,工作之余也只能看看书,了解一下相关的技术细节,在网络设备公司不可避免的要和socket打交道,但通常都是调用公司封装好的接口,没有去考虑这些封装背后的工作,回过头来看真的觉得进步很小,我只能逼自己看看书,看看一些好的代码。
sendmsg和recvmsg这两个接口是高级套接口,这两个接口支持一般数据的发送和接收,还支持多缓冲区的报文发送和接收(readv和sendv...
分类:
其他好文 时间:
2014-05-13 13:56:17
阅读次数:
225
近在做一个项目,其中一个方案涉及到跨库事务一致性问题,是一个简单的场景。这个项目是对老的业务进行性能提升,业务逻辑基本上保持不变。主要是在于新项目采用了分库分表的设计,从而提升了性能。考虑到项目发布之后可能存在风险,采取了新老系统的并行方案。这个系统的业务比较简单:接收来自外部的数据,然后对数据进行核对处理。为了保证新老系统能够并行,在接收数据的时候必须实现双写方案,从而导致了跨库事务的一致性问题。...
分类:
其他好文 时间:
2014-05-13 11:17:17
阅读次数:
267
set / getset方法: 1.作用:
提供一个方法给外界设置成员变量,可以在方法里面对参数进行相应的过滤 2.命名规范: 1.方法名以set开头 2.set后面跟上成员变量名称
3.返回值一定是void 4.一定要接收一...
分类:
其他好文 时间:
2014-05-13 10:58:50
阅读次数:
231
erlang R17带来了新的socket选项{active,N} ,与{active,once}一起为应用层提供流量控制。为什么会多了这个选项,{active,once}不是可以有效抑制大量socket消息吗?我们知道,{active,once}在每次接收到包都要重新设置active选项,才能继续接收erlang的消息通知。实际上,每次设定{active,once}都意味着调用一次epoll_ctl, 如果请求过于频繁,就会有大量的epoll_ctl调用。erlang目前只有一个线程会收割epoll_wa...
分类:
其他好文 时间:
2014-05-13 08:04:58
阅读次数:
365