- 博客(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
574
1
转载 DPDK 中断机制 eal_intr_handle_interrupts
转自:http://blog.youkuaiyun.com/xy010902100449/article/details/47283147DPDK通过在线程中使用epoll模型,监听UIO设备的事件,来模拟操作系统的中断处理。 一、中断初始化在rte_eal_intr_init()函数中初始化中断。具体如下:1、首先初始化intr_sources链表。所有UIO设备的中
2017-07-29 16:50:50
1041
转载 DPDK 内存管理(三)(rte_malloc 内存管理)
转自:http://blog.youkuaiyun.com/xy010902100449/article/details/47283043rte_malloc()为程序运行过程中分配内存,模拟从堆中动态分配内存空间。1 void *2 rte_malloc(const char *type, size_t size, unsigned align)3 {4 return rt
2017-07-29 16:45:55
738
转载 DPDK 内存管理(二)(rte_mempool 内存管理)
转自:http://blog.youkuaiyun.com/xy010902100449/article/details/47283017DPDK以两种方式对外提供内存管理方法,一个是rte_mempool,主要用于网卡数据包的收发;一个是rte_malloc,主要为应用程序提供内存使用接口。本文讨论rte_mempool。rte_mempool由函数rte_mempool_create()负责创建,
2017-07-29 16:42:43
678
转载 DPDK 内存管理(一)(内存初始化)
转自:http://blog.youkuaiyun.com/xy010902100449/article/details/472829951 前言 DPDK通过使用hugetlbfs,减少CPU TLB表的Miss次数,提高性能。2 初始化DPDK的内存初始化工作,主要是将hugetlbfs的配置的大内存页,根据其映射的物理地址是否连续、属于哪个Socket等,有效的组织起来,
2017-07-29 16:34:48
569
转载 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
804
转载 DPDK 收发包处理流程(一)(网卡驱动注册)
转自:http://blog.youkuaiyun.com/xy010902100449/article/details/47282895本文基于DPDK-1.8.0分析。网卡驱动模型一般包含三层,即,PCI总线设备、网卡设备以及网卡设备的私有数据结构,即将设备的共性一层层的抽象,PCI总线设备包含网卡设备,网卡设备又包含其私有数据结构。在DPDK中,首先会注册设备驱动,然后查找当前系统有
2017-07-29 15:54:17
843
转载 Linux 网卡驱动学习(六)(应用层、tcp 层、ip 层、设备层和驱动层作用解析)
转自:http://blog.youkuaiyun.com/xy010902100449/article/details/47428187本文将介绍网络连接建立的过程、收发包流程,以及其中应用层、tcp层、ip层、设备层和驱动层各层发挥的作用。1、应用层对于使用socket进行网络连接的服务器端程序,我们会先调用socket函数创建一个套接字:fd = socket
2017-07-23 22:20:18
833
转载 Linux 网卡驱动学习(五)(收发包具体过程)
转自:http://blog.youkuaiyun.com/xy010902100449/article/details/47362787函数接口设备初始化函数网络设备驱动在 Linux 内核中是以内核模块的形式存在的,对应于模块的初始化,需要提供一个初始化函数来初始化网络设备的硬件寄存器、配置 DMA 以及初始化相关内核变量等。设备初始化函数在内核模块被加载时调用,它的函
2017-07-23 21:26:51
929
转载 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
896
转载 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
3691
转载 Linux 网卡驱动学习(二)(网络驱动接口小结)
转自:http://blog.youkuaiyun.com/xy010902100449/article/details/47132917【摘要】前文我们分析了一个虚拟硬件的网络驱动例子,从中我们看到了网络设备的一些接口,其实网络设备驱动和块设备驱动的功能比较类似,都是发送和接收数据包(数据请求)。当然它们实际是有很多不同的。1、引言首先块设备在/dev目录下有设备节点,而网络设备
2017-07-23 16:51:35
425
转载 Linux 网卡驱动学习(一)(分析一个虚拟硬件的网络驱动例子)
转自:http://blog.youkuaiyun.com/xy010902100449/article/details/47132517在Linux,网络分为两个层,分别是网络堆栈协议支持层,以及接收和发送网络协议的设备驱动程序层。网络堆栈是硬件中独立出来的部分,主要用来支持TCP/IP等多种协议,网络设备驱动层是连接网络堆栈协议层和网络硬件的中间层。网络设备驱动程序的主要功能是:(
2017-07-23 16:41:24
639
转载 浅析HTTPS中间人攻击与证书校验
浅析HTTPS中间人攻击与证书校验0x00 引言随着安全的普及,https通信应用越发广泛,但是由于对https不熟悉导致开发人员频繁错误的使用https,例如最常见的是未校验https证书从而导致“中间人攻击”,并且由于修复方案也一直是个坑,导致修复这个问题时踩各种坑,故谨以此文简单的介绍相关问题。本文第一节主要讲述https的握手过程,第二节
2017-06-01 11:32:22
473
转载 TLS协议分析 (九) 现代加密通信协议设计
转自:http://chuansong.me/n/1286704052752六. TLS协议给我们的启发 — 现代加密通信协议设计在看了这么多的分析和案例之后,我们已经可以归纳出加密通信协议设计的普遍问题,和常见设计决策,设计决策点:四类基础算法 加密/MAC/签名/密钥交换 如何选择?对称加密目前毫无疑问应该直接用aead,最佳选择就是 aes-12
2017-04-11 09:24:05
3502
转载 TLS协议分析 (八) 实现与开源项目
转自:http://chuansong.me/n/1286703952743三. TLS协议的代码实现TLS的主要实现:OpenSSLboringssl(Google)libressls2n(Amazon)nss(Mozilla)polarsslbotangnutls(gpl)
2017-04-11 09:16:25
2516
转载 TLS协议分析 (七) 安全性分析
转自:http://chuansong.me/n/12815547529379. TLS协议的安全分析安全分析,重中之重,也是大家最关心的。安全分析的第一步是建立攻击模型,TLS的攻击模式是:攻击者有充足的计算资源攻击者无法得到私钥,无法得到客户端和服务器内存里面的密钥等保密信息攻击者可以抓包,修改包,删除包,重放包,篡改包。
2017-04-11 09:13:28
5955
1
转载 TLS协议分析 (六) handshake协议扩展
转自:http://chuansong.me/n/12815546529435.11. handshake — Finished在 ChangeCipherSpec 消息之后,应该立即发送 Finished 消息,来确认密钥交换和认证过程已经成功了。ChangeCipherSpec 必须在其它握手消息和 Finished 消息之间。Finished 消息是第一条用刚刚协商
2017-04-11 08:55:45
2526
转载 TLS协议分析 (五) handshake协议 证书与密钥交换
转自:http://chuansong.me/n/12815545529595.4. handshake — Server Certificate当服务器确定了CipherSuite后,根据CipherSuite里面的认证算法,如果需要发送证书给客户端,那么就发送 Server Certificate消息给客户端。Server Certificate总是在ServerHello之后
2017-04-10 15:53:37
6509
1
转载 TLS协议分析 (四) handshake协议概览
转自:http://chuansong.me/n/12687916528435. 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
9414
转载 TLS协议分析 (三) record协议
转自:http://chuansong.me/n/12687915528344. record 协议record协议做应用数据的对称加密传输,占据一个TLS连接的绝大多数流量,因此,先看看record协议图片来自网络:Record 协议 — 从应用层接受数据,并且做:分片,逆向是重组生成序列号,为每个数据块生成唯一编号,防止被重放或被重排
2017-04-10 14:51:51
4923
1
转载 TLS协议分析 (二) 架构总览
转自:http://chuansong.me/n/1268791452834二. TLS协议的原理1. 自顶向下,分层抽象构建软件的常用方式是分层,把问题域抽象为多层,每一层的概念定义为一组原语,上一层利用下一层的组件构造实现,并被上一层使用,层层叠叠即成软件。例如在编程语言领域中,汇编语言为一层,在汇编上面是C/C++等静态编译语言,C/C++之上是pyt
2017-04-10 14:39:02
1911
1
转载 TLS协议分析 (一) 设计目标及历史
来源:http://chuansong.me/n/1256214352643原创2016-12-07何龙微信后台团队最近发现密码学很有意思,刚好还和工作有点关系,就研究了一下,本文是其中一部分笔记和一些思考。密码学理论艰深,概念繁多,本人知识水平有限,错误难免,如果您发现错误,请务必指出,非常感谢!本文目标:学习鉴赏TLS协议的设计,透彻理解
2017-04-10 14:25:04
1241
转载 理解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
2294
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
454
转载 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
1052
转载 SSL/TLS协商过程详解
本文大部分整理自网络,相关文章请见文后参考。关于证书授权中心CA以及数字证书等概念,请移步 OpenSSL 与 SSL 数字证书概念贴 ,如果你想快速自建CA然后签发数字证书,请移步 基于OpenSSL自建CA和颁发SSL证书 。SSL/TLS作为一种互联网安全加密技术,原理较为复杂,枯燥而无味,我也是试图理解之后重新整理,尽量做到层次清晰。正文开始。1. SSL/TLS概
2017-02-16 16:06:35
17765
转载 HTTPS为什么安全?
本文将分两个专题去理解HTTPS。专题一:HTTPS为什么安全1、http为什么不安全?http协议属于明文传输协议,交互过程以及数据传输都没有进行加密,通信双方也没有进行任何认证,通信过程非常容易遭遇劫持、监听、篡改,严重情况下,会造成恶意的流量劫持等问题,甚至造成个人隐私泄露(比如银行卡卡号和密码泄露)等严重的安全问题。可以把http通信比喻成寄送信件一样,A给B寄信,信件在寄
2017-02-16 13:50:45
410
原创 2017新的突破
今天是2017年春节假期的最后一天了,收收心,准备新的一年的工作,生活;总结一下过去的2016,总体上工作,学习,生活都还不错,但还有很多值得改变,需要突破的地方;工作上:2016年是从原来工作5年的公司转到现在供职公司的真正意义上的第一完整的一年,由于原来的公司是一家有着几千人的大公司,自己也就扮演着一颗螺丝钉的角色,只关注自己的一亩三分地,做的工作相对单一,说白了就是知识面比较窄,做的
2017-02-05 14:48:16
436
转载 30分钟玩转Shell-第一个Shell脚本
前面已经讲到,变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。例如,$ 表示当前Shell进程的ID,即pid,看下面的代码:$echo $$运行结果29949特殊变量列表变量含义$0当前脚本的文件名$n传递给脚本或函数的参数。n 是一个数字,表示第几个参数
2017-02-05 14:44:01
297
转载 c static关键字描述
点击打开链接 google了近三页的关于C语言中static的内容,发现可用的信息很少,要么长篇大论不知所云要么在关键之处几个字略过,对于想挖掘底层原理的初学者来说参考性不是很大。所以,我这篇博文博采众家之长,把互联网上的资料整合归类,并亲手编写程序验证之。 C语言代码是以文件为单位来组织的,在一个源程序的所有源文件中,一个外部变量(注
2016-01-18 10:24:16
285
dpdk输入输出基本架构.rar
2021-05-04
snort源码分析.rar
2019-12-10
telnet-server-0.17-47.el6.x86_64
2015-09-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人