- 博客(32)
- 资源 (13)
- 收藏
- 关注
转载 PCI驱动框架简单分析
一、PCI 概念介绍 PCI是CPU和外围设备通信的高速传输总线。PCI规范能够实现32位并行数据传输,工作频率为 33MHz 或 66MHz ,最大吞吐率高达266MB/s,PCI的衍生物包括 CardBus、mini-PCI、PCI-Express、cPCI等。 PCI总线体系结构是一种层次式的体系结构。在这种层次体系结构中,PCI桥设备占据着重要的地位,它将父总线
2017-07-30 10:33:25
690
1
转载 DPDK 中断机制 eal_intr_handle_interrupts
转自:http://blog.youkuaiyun.com/xy010902100449/article/details/47283147 DPDK通过在线程中使用epoll模型,监听UIO设备的事件,来模拟操作系统的中断处理。 一、中断初始化 在rte_eal_intr_init()函数中初始化中断。具体如下: 1、首先初始化intr_sources链表。所有UIO设备的中
2017-07-29 16:50:50
1139
转载 DPDK 内存管理(三)(rte_malloc 内存管理)
转自:http://blog.youkuaiyun.com/xy010902100449/article/details/47283043 rte_malloc()为程序运行过程中分配内存,模拟从堆中动态分配内存空间。 1 void * 2 rte_malloc(const char *type, size_t size, unsigned align) 3 { 4 return rt
2017-07-29 16:45:55
851
转载 DPDK 内存管理(二)(rte_mempool 内存管理)
转自:http://blog.youkuaiyun.com/xy010902100449/article/details/47283017 DPDK以两种方式对外提供内存管理方法,一个是rte_mempool,主要用于网卡数据包的收发;一个是rte_malloc,主要为应用程序提供内存使用接口。本文讨论rte_mempool。rte_mempool由函数rte_mempool_create()负责创建,
2017-07-29 16:42:43
759
转载 DPDK 内存管理(一)(内存初始化)
转自:http://blog.youkuaiyun.com/xy010902100449/article/details/47282995 1 前言 DPDK通过使用hugetlbfs,减少CPU TLB表的Miss次数,提高性能。 2 初始化 DPDK的内存初始化工作,主要是将hugetlbfs的配置的大内存页,根据其映射的物理地址是否连续、属于哪个Socket等,有效的组织起来,
2017-07-29 16:34:48
642
转载 DPDK 收发包处理流程(二)(网卡初始化)
转自:http://blog.youkuaiyun.com/xy010902100449/article/details/47282937 三、PCI驱动注册 调用rte_eal_init()--->rte_eal_dev_init()函数,遍历dev_driver_list链表,执行网卡驱动对应的init的回调函数,注册PCI驱动。 /* Once the vdevs are inital
2017-07-29 16:23:31
872
转载 DPDK 收发包处理流程(一)(网卡驱动注册)
转自:http://blog.youkuaiyun.com/xy010902100449/article/details/47282895 本文基于DPDK-1.8.0分析。 网卡驱动模型一般包含三层,即,PCI总线设备、网卡设备以及网卡设备的私有数据结构,即将设备的共性一层层的抽象,PCI总线设备包含网卡设备,网卡设备又包含其私有数据结构。在DPDK中,首先会注册设备驱动,然后查找当前系统有
2017-07-29 15:54:17
922
转载 Linux 网卡驱动学习(六)(应用层、tcp 层、ip 层、设备层和驱动层作用解析)
转自:http://blog.youkuaiyun.com/xy010902100449/article/details/47428187 本文将介绍网络连接建立的过程、收发包流程,以及其中应用层、tcp层、ip层、设备层和驱动层各层发挥的作用。 1、应用层 对于使用socket进行网络连接的服务器端程序,我们会先调用socket函数创建一个套接字: fd = socket
2017-07-23 22:20:18
928
转载 Linux 网卡驱动学习(五)(收发包具体过程)
转自:http://blog.youkuaiyun.com/xy010902100449/article/details/47362787 函数接口 设备初始化函数 网络设备驱动在 Linux 内核中是以内核模块的形式存在的,对应于模块的初始化,需要提供一个初始化函数来初始化网络设备的硬件寄存器、配置 DMA 以及初始化相关内核变量等。设备初始化函数在内核模块被加载时调用,它的函
2017-07-23 21:26:51
1008
转载 Linux 网卡驱动学习(四)(缓存描述符 Buffer Description)
转自:http://blog.youkuaiyun.com/xy010902100449/article/details/47157731 【摘要】上文我们罗列出驱动中重要的数据结构,Linux 内核中对网络设备进行描述的核心结构类型叫做 net_device,net_device 结构定义在 include/linux/netdevice.h 文件中。该结构的字段可以分为以下几类。 1、ne
2017-07-23 21:10:39
969
转载 Linux 网卡驱动学习(三)(net_device 等数据结构)
转自:http://blog.youkuaiyun.com/xy010902100449/article/details/47157113 【摘要】前文对网络驱动例子进行一个简单的梳理总结,本文贴出 net_device 的数据结构以及一些驱动中常用的数据结构。 1、网络设备驱动结构 下图摘自http://blog.chinaunix.net/uid-20672257-id-3147768.html
2017-07-23 21:03:21
3857
转载 Linux 网卡驱动学习(二)(网络驱动接口小结)
转自:http://blog.youkuaiyun.com/xy010902100449/article/details/47132917 【摘要】前文我们分析了一个虚拟硬件的网络驱动例子,从中我们看到了网络设备的一些接口,其实网络设备驱动和块设备驱动的功能比较类似,都是发送和接收数据包(数据请求)。当然它们实际是有很多不同的。 1、引言 首先块设备在/dev目录下有设备节点,而网络设备
2017-07-23 16:51:35
516
转载 Linux 网卡驱动学习(一)(分析一个虚拟硬件的网络驱动例子)
转自:http://blog.youkuaiyun.com/xy010902100449/article/details/47132517 在Linux,网络分为两个层,分别是网络堆栈协议支持层,以及接收和发送网络协议的设备驱动程序层。网络堆栈是硬件中独立出来的部分,主要用来支持TCP/IP等多种协议,网络设备驱动层是连接网络堆栈协议层和网络硬件的中间层。 网络设备驱动程序的主要功能是: (
2017-07-23 16:41:24
697
转载 浅析HTTPS中间人攻击与证书校验
浅析HTTPS中间人攻击与证书校验 0x00 引言 随着安全的普及,https通信应用越发广泛,但是由于对https不熟悉导致开发人员频繁错误的使用https,例如最常见的是未校验https证书从而导致“中间人攻击”,并且由于修复方案也一直是个坑,导致修复这个问题时踩各种坑,故谨以此文简单的介绍相关问题。 本文第一节主要讲述https的握手过程,第二节
2017-06-01 11:32:22
560
转载 TLS协议分析 (九) 现代加密通信协议设计
转自:http://chuansong.me/n/1286704052752 六. TLS协议给我们的启发 — 现代加密通信协议设计 在看了这么多的分析和案例之后,我们已经可以归纳出加密通信协议设计的普遍问题,和常见设计决策, 设计决策点: 四类基础算法 加密/MAC/签名/密钥交换 如何选择? 对称加密目前毫无疑问应该直接用aead,最佳选择就是 aes-12
2017-04-11 09:24:05
3675
转载 TLS协议分析 (八) 实现与开源项目
转自:http://chuansong.me/n/1286703952743 三. TLS协议的代码实现 TLS的主要实现: OpenSSL boringssl(Google) libressl s2n(Amazon) nss(Mozilla) polarssl botan gnutls(gpl)
2017-04-11 09:16:25
2648
转载 TLS协议分析 (七) 安全性分析
转自:http://chuansong.me/n/1281554752937 9. TLS协议的安全分析 安全分析,重中之重,也是大家最关心的。 安全分析的第一步是建立攻击模型,TLS的攻击模式是: 攻击者有充足的计算资源 攻击者无法得到私钥,无法得到客户端和服务器内存里面的密钥等保密信息 攻击者可以抓包,修改包,删除包,重放包,篡改包。
2017-04-11 09:13:28
6274
1
转载 TLS协议分析 (六) handshake协议扩展
转自:http://chuansong.me/n/1281554652943 5.11. handshake — Finished 在 ChangeCipherSpec 消息之后,应该立即发送 Finished 消息,来确认密钥交换和认证过程已经成功了。ChangeCipherSpec 必须在其它握手消息和 Finished 消息之间。 Finished 消息是第一条用刚刚协商
2017-04-11 08:55:45
2805
转载 TLS协议分析 (五) handshake协议 证书与密钥交换
转自:http://chuansong.me/n/1281554552959 5.4. handshake — Server Certificate 当服务器确定了CipherSuite后,根据CipherSuite里面的认证算法,如果需要发送证书给客户端,那么就发送 Server Certificate消息给客户端。Server Certificate总是在ServerHello之后
2017-04-10 15:53:37
6823
1
转载 TLS协议分析 (四) handshake协议概览
转自:http://chuansong.me/n/1268791652843 5. handshake 协议 handshake protocol重要而繁琐。 TLS 1.3对握手做了大修改,下面先讲TLS 1.2,讲完再介绍一下分析TLS 1.3. 5.1.handshake的总体流程 handshake protocol用于产生给record protocol使用
2017-04-10 15:44:59
9628
转载 TLS协议分析 (三) record协议
转自:http://chuansong.me/n/1268791552834 4. record 协议 record协议做应用数据的对称加密传输,占据一个TLS连接的绝大多数流量,因此,先看看record协议 图片来自网络: Record 协议 — 从应用层接受数据,并且做: 分片,逆向是重组 生成序列号,为每个数据块生成唯一编号,防止被重放或被重排
2017-04-10 14:51:51
5152
1
转载 TLS协议分析 (二) 架构总览
转自:http://chuansong.me/n/1268791452834 二. TLS协议的原理 1. 自顶向下,分层抽象 构建软件的常用方式是分层,把问题域抽象为多层,每一层的概念定义为一组原语,上一层利用下一层的组件构造实现,并被上一层使用,层层叠叠即成软件。 例如在编程语言领域中,汇编语言为一层,在汇编上面是C/C++等静态编译语言,C/C++之上是pyt
2017-04-10 14:39:02
2006
1
转载 TLS协议分析 (一) 设计目标及历史
来源:http://chuansong.me/n/1256214352643 原创2016-12-07何龙微信后台团队 最近发现密码学很有意思,刚好还和工作有点关系,就研究了一下,本文是其中一部分笔记和一些思考。 密码学理论艰深,概念繁多,本人知识水平有限,错误难免,如果您发现错误,请务必指出,非常感谢! 本文目标: 学习鉴赏TLS协议的设计,透彻理解
2017-04-10 14:25:04
1303
转载 理解TCP序列号(Sequence Number)和确认号(Acknowledgment Number)
原文见:http://blog.youkuaiyun.com/a19881029/article/details/38091243/ 原文见:http://packetlife.net/blog/2010/jun/7/understanding-tcp-sequence-acknowledgment-numbers/ 如果你正在读这篇文章,很可能你对TCP“非著名”的“三次握手”或者说“
2017-04-05 15:21:28
2405
1
转载 OPENSSL库使用--AES篇
转载自:http://blog.youkuaiyun.com/duanxingheng/article/details/11730617 一、AES算法简介 1、AES算法介绍 密码学中的高级加密标准(Advanced Encryption Standard,AES),又称 Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES
2017-02-19 10:38:17
513
转载 OPENSSL库的使用-DES篇
转自:http://blog.youkuaiyun.com/duanxingheng/article/details/11655037 一、DES算法简介 1、DES算法介绍 DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。 明文按64位进行分组,密钥长64位,密钥事实上是56位参与DES运算(
2017-02-19 10:23:15
1119
转载 SSL/TLS协商过程详解
本文大部分整理自网络,相关文章请见文后参考。 关于证书授权中心CA以及数字证书等概念,请移步 OpenSSL 与 SSL 数字证书概念贴 ,如果你想快速自建CA然后签发数字证书,请移步 基于OpenSSL自建CA和颁发SSL证书 。 SSL/TLS作为一种互联网安全加密技术,原理较为复杂,枯燥而无味,我也是试图理解之后重新整理,尽量做到层次清晰。正文开始。 1. SSL/TLS概
2017-02-16 16:06:35
18614
转载 HTTPS为什么安全?
本文将分两个专题去理解HTTPS。 专题一:HTTPS为什么安全 1、http为什么不安全? http协议属于明文传输协议,交互过程以及数据传输都没有进行加密,通信双方也没有进行任何认证,通信过程非常容易遭遇劫持、监听、篡改,严重情况下,会造成恶意的流量劫持等问题,甚至造成个人隐私泄露(比如银行卡卡号和密码泄露)等严重的安全问题。 可以把http通信比喻成寄送信件一样,A给B寄信,信件在寄
2017-02-16 13:50:45
458
原创 2017新的突破
今天是2017年春节假期的最后一天了,收收心,准备新的一年的工作,生活; 总结一下过去的2016,总体上工作,学习,生活都还不错,但还有很多值得改变,需要突破的地方; 工作上:2016年是从原来工作5年的公司转到现在供职公司的真正意义上的第一完整的一年,由于原来的公司是一家有着几千人的大公司,自己也就扮演着一颗螺丝钉的角色,只关注自己的一亩三分地,做的工作相对单一,说白了就是知识面比较窄,做的
2017-02-05 14:48:16
473
转载 30分钟玩转Shell-第一个Shell脚本
前面已经讲到,变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。 例如,$ 表示当前Shell进程的ID,即pid,看下面的代码: $echo $$ 运行结果29949 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数
2017-02-05 14:44:01
348
转载 c static关键字描述
点击打开链接 google了近三页的关于C语言中static的内容,发现可用的信息很少,要么长篇大论不知所云要么在关键之处几个字略过,对于想挖掘底层原理的初学者来说参考性不是很大。所以,我这篇博文博采众家之长,把互联网上的资料整合归类,并亲手编写程序验证之。 C语言代码是以文件为单位来组织的,在一个源程序的所有源文件中,一个外部变量(注
2016-01-18 10:24:16
332
dpdk输入输出基本架构.rar
2021-05-04
snort源码分析.rar
2019-12-10
telnet-server-0.17-47.el6.x86_64
2015-09-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅