- 博客(83)
- 资源 (1)
- 收藏
- 关注
转载 linux中的libpcap中捕获数据包的时间戳
<br />以后转帖的文章都只贴链接和标题。<br /> <br />标题:linux中的libpcap中捕获数据包的时间戳<br />摘要:<br /> 在pf_packet的man文档中有这样一句话:SIOCGSTAMP 用来接收最新收到的分组的时间戳,它的参数是 timeval 结构。接着查找有关SIOCGSTAMP的信息,在man(7)socket中发现了一句话:SIOCGSTAMP 返回 timeval 类型的结构,其中包括有发送给用户的最后一个包接收时的时间戳。被用来测量精确的 RTT
2010-12-16 18:00:00
2784
原创 网络那些事儿(YI)网际互联
不知不觉中,无论从形式上还是内容上,我都成了一名网管,这是无论如何我都始料不及的。然而,做网管也就要有网管的样子,于是不得不抽出时间来研究基础的网络互联的东西。多年来养成了不动笔墨不读书的习惯,看到的东西记下来,也许对大家有用。 HUB,交换机,路由器 第一次认识HUB是1999年的时候,我还读高中。那是一个腰里别着把钳子就可以自称网络工程师的年代,HUB就是除了网线和水晶头之外最常见的网络设
2009-11-06 23:00:00
918
原创 CCSP 学习笔记
cisco ccsp 学习笔记作者:starshift时间:2008年11月SNRS(security networks with routers and swiches )AAA modelAAA: authentication(认证) authorization(授权) accounting(审计)使用AAA model 不一定需要使用AAA服务器,可以在本地做。但是审
2008-11-30 21:09:00
1563
原创 [转]FOR命令中有一些变量以及他们的用法
FOR命令中有一些变量以及他们的用法先把FOR的变量全部列出来: ~I - 删除任何引号("),扩展 %I %~fI - 将 %I 扩展到一个完全合格的路径名 %~dI - 仅将 %I 扩展到一个驱动器号 %~pI - 仅将 %I 扩展到一个路径 %~nI
2008-11-11 11:40:00
727
原创 GCC的__attribute__扩展功能
GCC的__attribute__扩展功能 摘要:在学习linux内核代码及一些开源软件的源码,经常可以看到有关__attribute__的相关使用。本文结合自己的学习经历,较为详细的介绍了__attribute__相关语法及其使用。----------------------------------------------------------------声明:此文为原创,欢迎转载,转载请
2008-09-11 20:44:00
1281
转载 linux、FreeBSD网桥转发性能对比
linux、FreeBSD网桥转发性能对比 linux 2.6.9(redhat enterprise linux 4 update1) NkZhykk[I 包长 带宽 包速(pps) 字节速率(Mbps) CPU占用 >]dtDB% 64 18.3% 259875 141.37 86%
2008-06-19 17:50:00
2640
原创 Linux 内核NAPI机制分析【转】
Linux内核NAPI机制分析 简介:NAPI 是 Linux 上采用的一种提高网络处理效率的技术,它的核心概念就是不采用中断的方式读取数据,而代之以首先采用中断唤醒数据接收的服务程序,然后 POLL 的方法来轮询数据。随着网络的接收速度的增加,NIC 触发的中断能做到不断减少,目前 NAPI 技术已经在网卡驱动层和网络层得到了广泛的应用,驱动层次上已经有 E1000 系列网卡,RTL813
2008-05-09 17:36:00
581
原创 Intel 1000 网卡进阶使用Linux 版
Intel(R) Network Connection Intel 1000 网卡进阶使用Linux版 来源:Linux 2.6 E1000_main.c Intel 1000 drive Intel 官方网站 整理:starshift Intel 1000 网卡高级功能 InterruptThrottleRate 该参数用来控制网卡每秒钟能够产生的最大中断数目。参数的有效值为:0,1,3,10
2008-05-09 09:32:00
1759
原创 Bayesian Network
忙里偷闲,整理了一个关于beyasian network 基本原理的概念的文档,由于公式过多,需要的朋友可以在http://www.941hk.com/link.php?ref=eerceKEQL2 下载。水平有限,如果有错误,请给我留言,我会在第一时间修改,如果不能下载页可以给我留言。
2008-03-27 09:56:00
695
原创 包线速转发的时钟周期
好像很有道理,先转过来,然后再细细推敲~~ ======================================== 包转发线速的衡量标准 踩踩 0作者:linglong 发表日期:2008-01-25 复制链接 收藏 包转发线速的衡量标准是以单位时间内发送64byte的数据包(最小包)的个数作为计算基准的。对于千兆以太网来说,计算方法如下:1,000,000,000bps/8bi
2008-02-27 16:22:00
1363
原创 程序设计语言编译原理(二)
c词法分析的任务是:从左至右的逐个字符地对源程序进行扫描,产生的一个个单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。 程序语言的单词符号可以分为下列五种:关键字,标志符,常数,运算符,界符。 词法分析的重点是使用状态转化图,一个程序语言的所有单词符号的识别可以使用状态转化图。 正则表达式和有限自动机: 正规式和正规集 对于字母表A,我们所感兴趣的是它的一些特殊的子集,叫做正规集。正规
2008-01-31 20:05:00
969
原创 程序设计语言编译原理
上下文无关文的形式化描述: 一个上下文无关文法是一个四元组,(Vt, Vn,S, P)其中, Vt是一个非空有限集,它的每个元素称为终结符号; Vn是一个非空有限集,它的每一个元素称为非终结符号。其中Vn与Vt的交集是空集。 S是开始符号 p是产生式的集合,产生式的形式是P->a.其中P属于Vn,a属于Vt并Vn。 最左推导和最右推导 所谓最左推导就是对推导的每一步中都对最左非终结符进行替换。
2008-01-29 16:48:00
1434
转载 getopt_long 用法
Linux系统下,需要大量的命令行选项,如果自己手动解析他们的话实在是有违软件复用的思想,不过还好,GNU C library留给我们一个解析命令行的接口(X/Open规范),好好使用它可以使你的程序改观不少。使用getopt_long()需要引入头文件#include 现在我们使用一个例子来说明它的使用。一个应用程序需要如下的短选项和长选项。 短
2008-01-29 10:22:00
1985
1
原创 计算机网络(二)
关于调制解调 调制的方法有很三种,一种是调幅(amplitude modulation)方法。在该方法中,采用两种不同的振幅来代表0和1。另外一种方法是调频(frequency modulation)使用了两个或者不同频率的连续波。在形式最为简单的相位调制中,载波按照统一的时间间隔,系统地平移0或者180度。 每秒钟采样的次数可以按照波特来计算。因此,一条n波特的线路传输n码元/秒。 干线和多
2008-01-20 15:53:00
819
原创 计算机网络(一)
计算机网络的经典,OSI七层结构。自底向上:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。OSI模型有7层,这7层的分层描述如下: (1)每当需要一个不同抽象体的时候,应该创建一层。 (2)每一层都应该执行一个明确定义的功能。 (3)选择每一层的功能时,应该考虑到定义国际化标准协议。 (4)选择层边界的时候,应该使跨层接口的流量尽可能的小。 (5)层数应该足够多,以保证不同的功能不会
2008-01-20 00:16:00
469
原创 操作系统(十三)
外存管理和文件系统 外存是负责长期保存数据的所有存储部件的总称。 外存在存储层次中的分工来看,外存的作用主要有两点:一是用来存储需要永久保存的数据。二是作为盘交换区,用来作为内存的后备 链接:硬链接,软链接和符号链接 有的操作系统允许一个文件用一个目录来表示,但
2008-01-16 16:18:00
443
原创 虚存管理
虚拟存储器由主存储器和联机工作的外部存储器共同组成。在目前的计算机系统中,主存储器通常用动态随机存储器(DRAM)实现,它的存储容量相对比较小,速度比较快,单位容量的价格比较贵。联机工作的外部存储器通常为磁盘存储器,它的存储容量很大,与主存储器相比,速度很低,单位容量的价格很便宜。这两个存储器在硬件和系统软件的共同管理下,对于应用程序员,可以把它们看来是一个单一的存储器,是一个存储容量非常大的
2008-01-16 11:00:00
5924
1
原创 操作系统(十一)
段模式的评价和实际采用情况(1)内存利用率关于空闲空间利用率的情况:1)和可变分区相比,仍存在外部碎片。但是程度大大减少,仍存在内部碎片的程度大了一些,但总的来说空间的利用率比可变分区高。2)于页式相比,同样是不连续,但是不连续程度没有页式的高,显然那没有页式的管理效果好。虽然段模式的内部碎片要不页模式的少,但是确存在外部碎片。段模式下的外部存储碎片的严重程度依赖于平均段长,小一
2008-01-12 16:42:00
669
原创 操作系统(十)
段模式(segmentation)是指满足以下3个特征的内存管理模式(1)将用户程序空间按逻辑划分为几部分,每一部分称为一段(segment),每个段内连续编制,段间则采用不连续编制。这样每个程序的逻辑地址空间是二维编制的。(2)内存的划分与可变分区相同,但分配单位不同。可变分区以整个程序为单位划分和连续存放(即程序内部是连续存放,但是程序之间并不连续存放)。 (3)段模式分实存模式
2008-01-12 02:48:00
553
原创 操作系统(九)
操作系统(九)1,页淘汰页淘汰算法主要有以下几种:(1)最简单的页淘汰算法FIFO:在内存时间最长的页(记最早进入内存的页先被淘汰)该模式的缺点是在内存时间最长的页可能是最有可能被访问到的资源,而该模式下很可能把最长被访问,最近经常被访问的页淘汰出去。这些页又很快被淘汰出去了。(2)最近最少使用页淘汰法:平时每当一页被访问时,就对该页做一个时间标记。当页淘汰进程工作时,首先淘汰当前时间最早的
2008-01-11 10:38:00
605
原创 操作系统(八)
大而稀疏的内存使用对于大而稀疏的内存,在使用时不方便采用连续编址。必须使用不连续编制。通常有3种不连续编址方案:段式、段页式和页式稀疏编制。总的来说,页式稀疏编址优于段式和段页式编制。现在操作系统都采用稀疏页编址。但是此处的不连续是针对进程逻辑空间(即进程虚址空间)的不连续性,不连续存放技术是针对物理空间的不连续。在页式模式下,进程虚址空间的稀疏编制可能提供充裕的多处伸缩余地。用户可以
2008-01-10 14:55:00
656
原创 操作系统(七)
可变分区模式和动态存储技术 内存管理的可变分区模式(varaiable partition),又称变长分区模式,是指将内存用户区划分为若干个区块,每个分区任一时刻只有一个程序,且为连续完整存放。但划分的时机,大小和位置是动态的,即在系统运行从开机到关机这段时间内,各分区的大小,位置等划分情况,是随着个用户程序的来去而变化的。该模式视为类进一步克服和改善固定分区模式在内存空间利用率方面的缺点。 可变
2007-12-31 18:43:00
642
原创 操作系统(六)
内存管理 内存管理是操作系统的一个重要功能,内存接收的读写请求可能来自CPU和DMA。内存不仅接受来在CPU的读写请求,有些情况下还要接受从外设来的DMA请求。但内存看到的仅仅是一个内存地址(还有操作类型及要写的数据等其他参数)形成的地址流并不太重视或知道这些地址是哪里来的。是怎样产生的。 整个内存可以看作是一个大的字节数组,每个字节或字有自己的地址(最小寻址单位即是字节),形成一个内存地址
2007-12-30 00:08:00
660
原创 操作系统(五)
操作系统(五)UNIX进程模型的基本结构和工作过程1,proc 结构数组和user结构对于每个进程,除程序代码(在UNIX中成为正文段)、数据区、栈外、每个进程的进程管理信息都存放在proc结构中,每个进程有一个proc结构和一个user结构。proc结构中存储进程不在运行态时核心也需要的东西(例如进程优先级,核心每次进行调度时可能需要查看许多进程的优先级)。所有的进程信息放在一起形成proc结构
2007-12-28 09:29:00
601
原创 操作系统(四)
栈,程序文件结构与进程空间结构 可执行目标程序平时存放在外存,在执行时调入内存,不运行时不在内存。在外存中存放时,可执行目标程序主要由3个部分组成:1)代码 2)静态初始化数据 3)头:包括连接数据,参数,日期,厂商,等等 进程空间结构: 简单地说,进程映像(image, map)是指该进程在内存的所有代码、数据(静态和动态)、栈以及有关信息的组合和总称。用户可以将进程信息完整地保存到一个文件中,
2007-12-26 10:55:00
610
原创 操作系统(二)
1, 关于指令和寄存器 CPU 包括CISC(复杂指令计算机)和RISC(简单指令计算机) 2,中断机制 CPU 都提供对中断机制的支持,包括基于中断类型的中断向量表,基于中断级别的中断响应和中断屏蔽机制等等。 (1)Intel CPU Intel CPU 的中断向量表共有256个中断向量和中断描述,中断向量表的大小为1KB~2KB,位于物理内存的前1KB/前1MB,但理论上可以位于物理内存
2007-12-24 21:57:00
558
原创 操作系统教程--原理和实例分析
1.2 操作系统是如何工作的 1, 程序的执行需要两个条件, 1)程序已经装入内存 2)程序计数器PC被置为该程序的起始地址,这就意味着系统执行的下一条指令是该程序的指令。 2, 关于自启动程序 自启动程序包括两个部分,一个部分是引导程序,另一个 部分是主体程序。由第一部分引导进入第二部分。而第一部分在硬件上面连续存放,开机时由硬件引导。或者是由ROM中的一个最简单,最原始引导
2007-12-22 21:07:00
1056
原创 程序中的参数传递
参数传递有传名(call by name),传值(call by value),传地址(call by reference), 传结果(call by result)等方式,试述编译程序在处理“传值”“传地址”方式时的要点,并指明处理“传名”与“传地址”,以及“传值”与“传结果”方式之间的主要差别。 -------------------------------------------------
2007-12-06 16:34:00
1020
原创 酷酷的题
1, 下面程序的结果是120,但是如果把第9行的abs(1)改成1的话,则程序的结果是1。试分析为什么会出现不同的结果。 int fact( ) { static int i =5; if(i == 0 ) { return (i ); } else { i= i-1; return((i + abs(1))*fact()); // 第9行 } } int main()
2007-12-06 14:34:00
581
原创 深入理解计算机系统TIPS(四)
关于浮点数的表示: 浮点数包括三个域,符号(sign),有效数(significant),指数(exponent)其描述如下: sign: 一个单独的符号为s直接编码符号s。 significant: n位小数编码有效数M,但是编码也依赖于指数域是否为零。 exponent:编码k位的指数。 规格化描述: 当指数域的位模式不全为零或者全为1时,就属于规格化描述,反之为非规格化描述。
2007-11-18 20:16:00
627
原创 Bloom Filter 小记
The Bloom filter principle: Wherever a list or set is used, and space is at a premium, consider using a Bloom filter if the effect of false positives can be mitigated. 第一次听说Bloom filter的时候是讨论班上谢师姐
2007-11-08 09:50:00
511
原创 雷军谈金山八年上市磨难
一个执着要强的CEO,一家有着19年历史的老牌软件公司,如何挺过长达八年时间的上市磨难 口述:雷军 采访整理:本刊记者林涛 2007年10月9日,清晨6点,香港四季酒店。雷军翻身起床,开始写一封致全体员工的信。本来秘书早已准备好了官方文本,但雷军觉得它表达不了自己此刻的感受,他这样写到,“一路上有你,苦一点也愿意,一起哭过笑过的兄弟们,让我们一起举起庆功的酒杯,一起为我们自己大声欢呼:
2007-10-20 10:31:00
787
原创 libpcap 函数介绍
Libpcap开发集介绍libpcap是一个C语言库,libpcap的英文意思是 Packet Capture library,即数据包捕获函数库,其功能是通过网卡抓取网络以太网中的数据包。这个库为不同的平台提供了一致的c函数编程接口,在安装了 libpcap 的平台上,以 libpcap 为接口写的程序、应用,能够自由地跨平台使用。它支持多种操作系统。libpcap 结构简单,使用方便;
2007-09-13 15:51:00
1194
原创 SYN Flood 工具源码
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include u_int16_t srcport; struct pseudohdr
2007-09-06 08:40:00
1663
原创 基于Snort的入侵检测系统
基于Snort的入侵检测系统 用Snort,Apache,MySQL,PHP及ACID构建高级IDS第一章 入侵检测系统及Snort介绍在当今的企业应用环境中,安全是所有网络面临的大问题。黑客和入侵者已成功的入侵了一些大公司的网络及网站。目前已经存在一些保护网络架构及通信安全的方法,例如防火墙、虚拟专用网(VPN)、数据加密等。入侵检
2007-08-29 17:53:00
7156
1
原创 linux 程序自动启动
在Red Hat Linux中自动运行程序1.开机启动时自动运行程序 Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序。例如:编辑 /etc/rc.d/rc.local 文件,在文件最末
2007-08-27 09:18:00
2093
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人