删除或更新信息,请邮件至freekaoyan#163.com(#换成@)

西安电子科技大学计算机科学与技术学院导师教师师资介绍简介-权义宁

本站小编 Free考研考试/2021-06-27


基本信息

权义宁 副教授
硕导或博导:硕士研究生导师
博士学科:密码学
硕士学科:计算机系统结构/网络计算与网络安全 
工作单位:计算机学院/网络工程系

联系方式
通信地址:西安市太白南路2号西安电子科技大学167信箱,710071
电子邮箱:ynquan@xidian.edu.cn,xdqyn@163.com
办公电话:
办公地点:北校区主楼IV区113房间


个人信息
权义宁,1969年2月生于陕西省宝鸡市,西安电子科技大学计算机学院副教授,密码学博士,硕士研究生导师, 西安电子科技大学计算机学院网络工程系主任。
?中国计算机学会(CCF)高级会员
?中国密码学会会员
?ACM会员
?IEEE会员
?1997年7月本科毕业于西安电子科技大学计算机及应用专业
?2010年3月在西安电子科技大学密码学专业获得密码学博士学位
?2012年12月-2013年12月受国家留学基金委资助在美国密歇根州韦恩州立大学做访问****
?电子学报、通信学报、西安电子科技大学学报、西安交通大学学报等期刊的特邀审稿人

主要研究方向是网络计算与网络安全。目前主要从事协议并行加速与虚拟化、社交网络大数据分析、云计算安全和信任模型等方面的研究。
主持完成省自然基金1项;主持完成国家“863计划”子课题1项,主持在研和完成横向科研项目10余项。申请专利3项,已经授权1项。近年来在通信学报、西安电子科技大学学报等国内学术期刊和国际会议上发表文章20余篇,其中SCI/EI检索6篇。

主要讲授的课程有:计算机通信与网络(本科)、网络管理网络管理(本科生,研究生)等。


科研团队
苗启广教授慕建君教授
纪建副教授盛立杰副教授王书振副教授
张彤副教授焦晓鹏副教授
宋建锋 武越 粆倩文谢琨 王琨 王煦


研究生动态
2014级于飏等同学获第二届全国大学生RDMA编程挑战赛”二等奖
2014年11月5日,由国际高性能计算机咨询委员会举办的“2014年度第二届全国大学生RDMA编程挑战赛”结果揭晓,我们团队首次由于飏、卢稼奇、黄玉辉、陈德艺以及来自中南大学大三的本科生马振鑫组成的代表队以总分50分(满分60分),全国排名第三的优异成绩斩获二等奖。
本次比赛的持续时间为两个月,题目由参赛队伍自行选择spark或者tachyon两个大数据领域非常顶级的开源框架进行RDMA协议的移植。最终由六名国际专家根据各个参赛队伍移植工作的完成情况、移植以后的性能提高比以及英文报告的书写情况,对每个参赛队伍进行评判打分。我院代表队经过两个月的细心讨论以及艰苦奋战,完成了tachyon分布式存储框架的移植工作,并且在数据传输性能上获得了很好的提升,最终以50分(满分60分)的成绩位列全国高校第三。
该届比赛总共吸引了全国29支队伍参赛,最终7支队伍分别获得一、二、三等奖。其中中国科学技术大学和西北工业大学双双摘取一等奖,西安电子科技大学与华中科技大学获得二等奖,上海交通大学、南京大学以及国防科技大学分别获得三等奖。




基本信息

权义宁 副教授
硕导或博导:硕士研究生导师
博士学科:密码学
硕士学科:计算机系统结构/网络计算与网络安全 
工作单位:计算机学院/网络工程系

联系方式
通信地址:西安市太白南路2号西安电子科技大学167信箱,710071
电子邮箱:ynquan@xidian.edu.cn,xdqyn@163.com
办公电话:
办公地点:北校区主楼IV区113房间


个人信息
权义宁,1969年2月生于陕西省宝鸡市,西安电子科技大学计算机学院副教授,密码学博士,硕士研究生导师, 西安电子科技大学计算机学院网络工程系主任。
?中国计算机学会(CCF)高级会员
?中国密码学会会员
?ACM会员
?IEEE会员
?1997年7月本科毕业于西安电子科技大学计算机及应用专业
?2010年3月在西安电子科技大学密码学专业获得密码学博士学位
?2012年12月-2013年12月受国家留学基金委资助在美国密歇根州韦恩州立大学做访问****
?电子学报、通信学报、西安电子科技大学学报、西安交通大学学报等期刊的特邀审稿人

主要研究方向是网络计算与网络安全。目前主要从事协议并行加速与虚拟化、社交网络大数据分析、云计算安全和信任模型等方面的研究。
主持完成省自然基金1项;主持完成国家“863计划”子课题1项,主持在研和完成横向科研项目10余项。申请专利3项,已经授权1项。近年来在通信学报、西安电子科技大学学报等国内学术期刊和国际会议上发表文章20余篇,其中SCI/EI检索6篇。

主要讲授的课程有:计算机通信与网络(本科)、网络管理网络管理(本科生,研究生)等。


科研团队
苗启广教授慕建君教授
纪建副教授盛立杰副教授王书振副教授
张彤副教授焦晓鹏副教授
宋建锋 武越 粆倩文谢琨 王琨 王煦


研究生动态
2014级于飏等同学获第二届全国大学生RDMA编程挑战赛”二等奖
2014年11月5日,由国际高性能计算机咨询委员会举办的“2014年度第二届全国大学生RDMA编程挑战赛”结果揭晓,我们团队首次由于飏、卢稼奇、黄玉辉、陈德艺以及来自中南大学大三的本科生马振鑫组成的代表队以总分50分(满分60分),全国排名第三的优异成绩斩获二等奖。
本次比赛的持续时间为两个月,题目由参赛队伍自行选择spark或者tachyon两个大数据领域非常顶级的开源框架进行RDMA协议的移植。最终由六名国际专家根据各个参赛队伍移植工作的完成情况、移植以后的性能提高比以及英文报告的书写情况,对每个参赛队伍进行评判打分。我院代表队经过两个月的细心讨论以及艰苦奋战,完成了tachyon分布式存储框架的移植工作,并且在数据传输性能上获得了很好的提升,最终以50分(满分60分)的成绩位列全国高校第三。
该届比赛总共吸引了全国29支队伍参赛,最终7支队伍分别获得一、二、三等奖。其中中国科学技术大学和西北工业大学双双摘取一等奖,西安电子科技大学与华中科技大学获得二等奖,上海交通大学、南京大学以及国防科技大学分别获得三等奖。




科学研究
主持纵向科研项目

序号
项目名称及校内编号
项目来源
起止时间
总经费
1
P2P网络中基于信任的数据分发模型研究,DF
2010陕西省自然科学基金
2011.1-2012.12
3

参加纵向科研项目

序号
项目名称及校内编号
项目来源
起止时间
总经费
1
后量子背包公钥密码的新型设计与差分分析(No. **)
2008国家自然科学基金
2009.1- 2011.12
21万
2
广义自缩序列的设计与安全性分析(No. ),2002
教育部博士点基金
2002.1- 2005.12
23万

主持横向科研项目

序号
项目名称及校内编号
委托方
起止时间
总经费
1
计算机网络攻防分析技术
***研究所
2012.4-2013.3
40万
2
网络管理协议分析技术研究
中国电子科技集团公司第***研究所
2012.6-2012 .9
5万
3
NDIS驱动及协议处理软件开发
中国电子科技集团公司第***研究所
2013.1-2013.3
7.5万
4
认证软件开发
中国电子科技集团公司第***研究所
2010.11-2011.3
10万
5
***应用示范,
***移动通信科技有限公司
2010.2- 2011.6
34.5万
6
陕西电信业务评测系统
陕西通信信息技术有限公司
2008.1- 2008.12
1万
7
嵌入式计算机软件开发
西安华科达信息技术有限公司
2008.8- 2008.11
0.6万
8
公交车辆保养计划编排系统
陕西万泽科技发展有限公司
2008.1- 2007.10
1万

参加横向科研项目

序号
项目名称及校内编号
委托方
起止时间
总经费
1
现代化露天煤矿设备故障诊断技术研究,
北京航天同创科技公司
2008.11-2009.12
52万

科研获奖情况:

序号
项目名称
获奖时间
获奖名称
及等级
证书编号
1
广义自缩序列的生成与安全性分析
2007.6
陕西省高等学校科学技术奖,一等奖
07B10
2
密码新型算法的设计安全性分析与应用
2008.1
陕西省科学技术奖,贰等
07-2-57-R7





学术论文
发表的学术论文有(按年度排列):
一种新的数据融合航迹关联算法. 权义宁,姜振,黄晓冬. 西安电子科技大学学报, 2012, vol.39(1),p67-74. Quan Yi-ning, Logical Mistakes in NTRU Compensation Algorithm and Improvement of Encryption Verification Algorithm. Journal of Communication and Computer,Vol.5,No.6,p35-41.Jnue 2008. 权义宁,胡予濮,李新社. P2P网络中基于模糊推理的信任综合评判. 通信学报,Vol.30 No.8,2009.8. EI检索号: 096. 基于L-模糊集信任机制的网格计算任务调度方法.孙鹏岗,权义宁.西安电子科技大学学报(自然科学版),Vol. 35,No.1,p539-542, February 2008,EI检索号: . Quan Yi-ning,Hu Yu-pu. Logical Mistakes in NTRU Compensation Algorithm and Improvement of Encryption Verification Algorithm.2007 International Conference on Computational Intelligence and Security (CIS'07). EI检索号: 922. 基于L-模糊集的网格信任模型的研究.权义宁,第五届中国信息和通信安全学术会议论文集. 改进的操作系统安全访问控制模型.权义宁,西安电子科技大学学报(自然科学版),2006 Vol.33 No.4 P.539-542,EI检索号: 权义宁,胡予濮. 基于多级安全策略的网格强制访问控制模型.2005中国计算机大会,2005.10 赵恒,权义宁,胡予濮. 一种新的P2P数据共享解密授权方案.西安电子科技大学学报(自然科学版),2005 Vol.32 No.5 P.781-785,EI检索号: 权宁强,权义宁等.一种基于M序列的小波域数字水印.计算机仿真,2004.8 权义宁.一种基于XML的MIS报表生成方案.计算机应用研究,2003年增刊 权义宁,王宝树. WWW访问数据库的技术.西安电子科技大学学报,2001.No.2(ISTP检索)
教材:
(1)计算机操作系统,西安电子科技大学出版社,2004.6 出版;
(2)计算机网络学习辅导及习题详解,西安电子科技大学出版社,2005.8出版;
(3)网络工程师教程,清华大学出版社,2004.7出版;
(4)计算机专业毕业设计宝典,西安电子科技大学出版社,2008.3出版。




最新获奖
2014级于飏等同学获第二届全国大学生RDMA编程挑战赛”二等奖
2014年11月5日,由国际高性能计算机咨询委员会举办的“2014年度第二届全国大学生RDMA编程挑战赛”结果揭晓,我们团队首次由于飏、卢稼奇、黄玉辉、陈德艺以及来自中南大学大三的本科生马振鑫组成的代表队以总分50分(满分60分),全国排名第三的优异成绩斩获二等奖。
本次比赛的持续时间为两个月,题目由参赛队伍自行选择spark或者tachyon两个大数据领域非常顶级的开源框架进行RDMA协议的移植。最终由六名国际专家根据各个参赛队伍移植工作的完成情况、移植以后的性能提高比以及英文报告的书写情况,对每个参赛队伍进行评判打分。我院代表队经过两个月的细心讨论以及艰苦奋战,完成了tachyon分布式存储框架的移植工作,并且在数据传输性能上获得了很好的提升,最终以50分(满分60分)的成绩位列全国高校第三。
该届比赛总共吸引了全国29支队伍参赛,最终7支队伍分别获得一、二、三等奖。其中中国科学技术大学和西北工业大学双双摘取一等奖,西安电子科技大学与华中科技大学获得二等奖,上海交通大学、南京大学以及国防科技大学分别获得三等奖。

荣誉获奖

序号
项目名称
获奖时间
获奖名称
及等级
证书编号
1
广义自缩序列的生成与安全性分析
2007.6
陕西省高等学校科学技术奖,一等奖
07B10
2
密码新型算法的设计安全性分析与应用
2008.1
陕西省科学技术奖,贰等
07-2-57-R7





教师
苗启广戚玉涛 纪建 宋建锋 谢琨 武越 粆倩文
慕建君 焦晓鹏 王书振 盛立杰 张彤

博士生


硕士生
序号年级类型学生名单
1 2017级  
2 2017级  
3 2016级双证专硕王 惺,张文肖,侯凯亮(强军),马诗洋,
陆梦娟,王琛超,张 琪,鲁都督
4 2016级工学硕士陶琳湖,张睿
5 2015级双证专硕徐昕,郭玲云,王超,
赵凯迪,陆超
6 2015级工学硕士梅涛,
董泽、于尚尚
7 2014级工学硕士卢稼奇,邹亮,于飏
8 2013级工学硕士邓凯,赵佩佩
9 2013级双证专硕封志德,涂楚成,范毅刚,张浩
10 2012级工学硕士王静,马翔宇,李焦贤,刘飞腾
11 2012级双证专硕侯瑞红,刘晓静,李晓清,吴承
12 2011级工学硕士黄元,线超博,丁晓煌,付鹏,彭熹垚
13 2011级双证专硕高翔洁,李婷,王建荣
14 2010级工学硕士吴超,覃煜,张晓辉,肖丁,彭荣华,赵伟,高聪
15 2010级双证专硕阮杰辉,孙世杰,宋卓,王卿
16 2009级工学硕士王传磊,吴祥业,郑德祥,韦立明,周峙,史柯
17 2009级双证软件工硕张文祎,陈建佳
18 2009级双证专硕梁秦楠,董阳,
19 2008级工学硕士靳虓,姜振,董晓巍,郭引娣,韩炼,冀云刚
20 2008级双证软件工硕吕睿,董宾,肖雷
21 2007级工学硕士王玉贵,王晓东,王菲,颜高飞,胡健
22 2007级双证软件工硕艾荣荣,徐敏
23 2006级工学硕士黄炳洪,刘红刚,吴善鹏,张昕,胡明明
24 2006级双证软件工硕李侠,张榕
25 2005级工学硕士张珂,李飞,史鹏,翟红杰,孙鹏岗,李艳东,吴凌翔,刘辉
26 2005级双证软件工硕向荣,武蓉蓉,李晓峰,李为
27 2004级工学硕士朱海,刘璐
28 2004级双证软件工硕肖铁,孙祺,钱丽平,唐建文,吕涛,阮国红,郑杰





社交网络大数据分析平台-业务流程图

一、数据获取
本模块的作用是对相应的数据源进行获取工作,其中分为两个部分:
1.多数据源爬虫
针对存在各种格式不一的线上社交网站,从社交的角度将对应的爬虫的分为三个部分:基于信息的网站,主要代表是微博、Twitter;基于熟人社交的网站,主要代表是人人、Facebook;基于兴趣的网站,主要代表是豆瓣和Flickr等共享网站。这里对网站的划分也就意味着我们数据获取的目的也存在划分。
2.定制爬虫
针对平台的特定需求,我们提出定制爬虫的数据获取方式。具体分为:根据主题抓取,依据某一个事件主题对相应的数据进行抓取;特定用户抓取,对指定用户的相关信息进行抓取;实时抓取,根据前端需要的信息进行实时的更新抓取。
二、数据处理
本模块的主要作用是对抓取得到的数据进行清洗、分析、存储三个步骤,是在数据挖掘之前必要的预处理步骤。
1.数据清洗
主要目的是为了对前一个模块中获取到的不规整源数据进行过滤,对不完整的信息进行清除以及给出相应不完整信息的情况。
2.数据存储
对清洗后相应的数据进行离线存储备份。
3.数据分析
该子模块是数据处理模块的核心,是为数据挖掘准备好数据格式的必要步骤。
3.1. Ego网络的重构
ego network,它的节点是由唯一的一个中心节点(ego),以及这个节点的邻居(alters)组成的,它的边只包括了ego和alter之间,以及alter与alter之间的边。本功能是对离线数据以及在线数据中的网络结构进行重复原。
3.2. 传播级联的提取
传播级联是指信息在用户中一跳接一跳的传播构成的级联关系。通过在对清洗后的数据中找到相应的传播关系,进一步对级联建立起合适的数据结构进行提取。
3.3. 信息特征化
将所有的对应信息分为个人信息、结构信息、微博信息三大块,将其中的全部信息特征向量化,为下一步挖掘打下基础。
3.4. 文本分词
针对源数据中微博内容进行分词操作,通过将完整的单条微博进行停用词去除等文本操作,将整条划分为单个词向量。
三、数据挖掘
本模块是基于数据处理的基础上,进行相应的数据挖掘算法。主要分为两大块:
1. 基础算法模块
该模块的主要实现主要的基础功能算法模块包括:
1.1. 圈子发现算法
对ego网络中的网络结构进行圈子划分整理,运行对应的圈子划分算法。
1.2. Rank排序
针对数据中网络关注的结构关系,对节点重要性进行排序,其中主要的基本算法是PageRank算法。
1.3. 观点提取
对实时与离线数据中的微博所表达的观点进行提取,主要利用文本挖掘算法,围绕热点事件的微博进行观点与情感的提取。
2. 传播算法模块
本模块目的在展示我们的算法成果,特别是在传播算法方面。主要包括微博转发的行为预测、影响力传播的模型、观点与情感传播分析等。
四、可视化
本模块用来展示整个平台的成果,是与用户交互的主要界面。根据平台整体的规划,可分为以下几个方面:
1. 网络结构可视化
对数据挖掘中得到的网络结构与圈子进行可视化,结合传播过程对单条微博在圈子中的转发情况进行可视化;
2. 信息传播可视化
对单条微博、某个事件的相关微博在整体网络中的传播进行可视化。同时,对传播的路径中每个用户给出对应的影响力值、情感状态、rank位置等与传播算法相关的结果。
3. 文本聚合可视化
对单个用户、某个事件的相关文本信息进行可视化,主要包括词频统计信息、情感文本变化信息和兴趣变化信息。

社交网络大数据平台-技术架构
整个平台运行在linux(Ubuntu 14.04)集群之上。爬虫抓取系统交由Docker云平台进行托管,每次需要使用相应的爬虫对数据进行获取时,都会通过Docker启动一个包含指定爬虫的容器,容器的生命周期为从爬虫启动到抓取数据结束。对于抓取到的数据使用txt格式进行保存,并上传到HDFS分布式文件系统中。所有的微博数据都通过HDFS保存和管理,对于较小的测试集可以格式化后保存在MongoDB当中方便使用。针对数据集的主要操作都是通过Spark来完成的,需要对数据进行查询时使用Spark SQL完成,需要对网络进行图计算时使用Spark Graphx完成,需要使用机器学习算法时使用Spark MLib完成,针对一些Spark MLib中尚未实现的算法可以通过相对成熟的Mahout来完成。最后,使用Javasc[ant]ript实现的D3和Java实现的processing对分析,挖掘的结果进行可视化。

架构分析
1. 基础设施:整个平台以主从方式(1 Master+8 Slaves)运行在linux(Ubuntu 14.04)集群之上,其中Master配置为4 cores(Intel Xeon 2.67GHz),8GB内存;Slave配置为2 cores(Intel Xeon 2.67GHz),6GB内存。
2.Docker云平台:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。在这里,我们使用Docker对不同的爬虫进行托管,当系统需要对相关数据进行获取时,就会通过Docker启动一个包含对应爬虫的容器,容器伴随整个爬虫的生命周期,抓取结束后相关资源由Docker回收。由于数据源可能对数据获取进行限制,因此我们会在Docker中针对数据源的限制制定相应的规则以保证爬虫的启动保持对资源的负载均衡。
3.数据存储:对于爬虫获取到的数据,我们根据不同的任务保存在不同命名规范下的txt文件当中,这里使用HDFS(Hadoop分布式文件系统)作为主要的数据存储仓库。通过调整HDFS的相关参数(如块大小,副本数)可以使HDFS在性能和容错上达到最优。对于某些实验可能需要较小的数据集,我们可以从HDFS中抽取部分数据格式化后存入MongoDB当中,这样更方便测试和使用。
4.数据分析和挖掘:对于数据的分析和挖掘,我们主要使用Spark来完成,因为Spark能够提供比Hadoop MapReduce更加快速的数据处理能力和更加兼容的工具。针对一些统计性较强的数据分析工作,可以使用Spark SQL模块来完成;涉及到网络结构的计算,可以使用Spark Graphx;当需要应用机器学习算法时,可以使用Spark MLib来完成。对于正在发展的MLib,一些机器学习算法可能不够完善,对于这种情况,我们可以选择使用Apache Mahout在Hadoop平台上来完成相应的算法。
5.数据可视化:对于数据分析和挖掘的结果,我们通过B/S的形式在网页中使用D3和processing进行展示。为了尽可能的表现出结果的特点和细节,我们对于不同结构和类型的结果使用不同的表,图和布局来实现。


新增栏目1




协议栈并行加速综述
协议栈并行加速技术综述
西安电子科技大学计算机学院 权义宁
2015.01.03

1. 传统内核协议栈存在的问题
随着网络带宽快速提高到10G甚至是100Gbps,传统的协议栈结构已经不能适应超高速网络对数据转发和处理的要求,传统协议栈存在的问题如下:
传统网络协议栈一般是作为操作系统内核的一部分来设计与实现的,这样内核协议栈运行在高特权级,能保证其安全性。典型的内核协议栈包括Linux内核协议栈、FreeBSD内核协议栈等,二者均是TCP/IP协议栈实现的优秀典范。内核协议栈通过Socket API向上层应用程序提供服务,应用程序通过Socket API调用内核系统调用由用户态切换到内核态,并享用协议处理服务,系统调用执行完毕之后,由内核态切换回用户态。
在网络流量较小以及多核处理器技术尚未发达的时期,内核协议栈能够有效应对网络服务需求,并且运行良好。然而,随着网络技术的不断发展,人们对网络服务提出了更高的需求,应对大规模的网络流量以及高速网络带宽的情形下,内核协议栈由于其自身固有的弊端,以及其整体设计框架不适应多核处理器架构难于利用多核硬件进行并行处理等,使得操作系统内核协议栈已经成为影响网络传输性能的主要瓶颈。美国霍普金斯大学的Alexander Szalay教授在他的测试报告中指出,采用10G bps的网络,把150TB的大数据从霍普金斯大学传输到橡树岭国家实验室(Oak Ridge National LaboratoryORNL)差不多需要10天时间,如图1所示。

为什么会出现这么严重情况?我们以传统协议栈接收数据包的基本流程为例,对其主要性能开销进行分析。
操作系统内核协议栈,数据包处理的基本过程如图2所示。
(1)网卡捕获到网络上的数据包后,将数据包从网卡的硬件缓存拷贝到内核态内存,并通过硬件中断通知内核,该过程主要由网卡驱动程序完成。
(2)内核收到数据包后,交由协议栈各层处理程序对数据包进行解析、校验等操作,提取出需要递交给上层用户态应用程序的数据。
(3)用户态应用程序需要处理网络数据时,通过系统调用陷入内核态,将数据拷贝到用户态缓冲区,之后通过切换特权级退出内核态。

图2 内核协议栈数据包传递过程
从中可以得出,传统内核协议栈的包处理过程的主要性能开销为系统调用、内存拷贝、协议处理以及中断操作这几方面。
第一、系统调用作为应用程序享用操作系统内核提供服务的接口,以函数的形式供上层应用程序调用。网络应用程序正是通过socket系统调用,来获取内核协议栈的服务。通过软中断的方式,网络应用程序可以执行系统调用获取相应的功能。然而系统调用执行于内核空间,应用程序调用系统调用必定会进行特权级切换,会带来额外的上下文切换开销,系统调用前要对应用程序上下文进行保护,系统调用执行完之后,要恢复之前的进程上下文。频繁的上下文切换占用了大量的CPU资源,在万兆以上级别的网络带宽情况下,这种开销更加明显,会严重影响系统性能。
第二、内存拷贝开销。应用程序与硬件网卡之间的数据包传递通路,包括两次内存拷贝过程:从网卡到内核空间DMA缓冲区的复制;再从内核空间DMA缓冲区复制到用户空间。在网络数据发送与接收的整个流程中,涉及了多次内存数据复制,每次拷贝过程都需要CPU的参与,消耗了大量的系统资源。
第三、中断处理开销。网络协议处理中引入硬件中断是由于考虑到网络数据包的突发性以及其传输时延的不确定性等,网卡在接收到数据包后通过硬件中断方式通知内核进行处理,这种异步通信方式能够更加有效,特别是在网络流量较小的时候,硬件中断相比于轮询等方式能极大地降低CPU的占用率,提高CPU的整体利用率。然而,当网络带宽增大、网络数据量急速增加时,会频繁地产生硬件中断,由于硬件中断的高优先级,CPU会陷入无限的硬件中断处理中无法进行协议处理等其他操作,导致系统一直处于收包然后丢包的恶性循环中,CPU持续做无用功,资源大量浪费。关于CPU主频和网卡速率的发展关系如图3所示。

图3 CPU主频和网卡速率的发展关系
从图中可以看出,CPU的主频从2005年以后由于发热问题无法解决,一直停留在大约4.3GHz左右,但是网卡的带宽却是高歌猛进,已经达到了10Gbps左右,这说明在单核CPU框架下的传统协议栈已根本不能满足当前网络的高速发展需要,必须并行加速。

2. 国内外现状
在网络协议栈开发早期,就通过引入数据包并行的方案来提高协议栈的性能,但是其难点在1989年被提出[1]。因为无状态连接数据包之间的独立性比较高,数据包之间没有明显的逻辑关系,其使用数据包并行方案可以有效利用并行方法提升性能。但是对于有状态的协议栈,由于数据包之间的耦合度比较高,使用数据包并行方法来处理数据包比较困难。
在国外,Bjorkman在其发表的文章中详细分析了锁对并行协议栈的影响[2]。文章采用共享内存来保存状态,采用加锁的办法来保证数据的一致性。最终得出结论,加锁耗费的时间是影响并行协议栈性能的一个重要因子。对于无状态的协议栈,例如UDP/IP,加锁耗费的时间比较少,对并行化协议栈性能没多大影响。但对于有状态的协议,例如TCP/IP,由于其具有复杂的连接状态,每个线程会频繁访问这些状态,导致加锁的时间比较多,非常影响并行协议栈的性能。
麻省大学的Nahum, Yates等四位****在x-kernel的基础上研究了UDP和TCP的性能[3]。当采用2个处理器时,UDP的性能呈线性增长,提升大约1.8倍。对于TCP,使用2个处理器,并采用数据包并行方案,其性能几乎没有提升,原因在于加锁耗费过多的资源。当使用4个处理器时,并采用数据包并行方案,其性能可提升1.8倍。当采用连接级的并行方案时,采用2个处理单元,TCP性能也可提升1.8倍。总的来说,采用连接级的并行方案可同时提升TCP、UDP的性能,原因在于连接级并行方案中,各个连接的状态比较独立,可大大减少锁数据的过程。采用数据包并行方案,UDP性能提升很大,TCP几乎没有提升,原因在于数据包并行方案中TCP状态加锁非常耗时。
上述这些研究,主要集中在通过数据包并行来提升单连接性能,还有其它一些研究集中在通过多个连接并行来提高性能。例如GridFTP[4],其采用多个连接同时收发数据来提升吞吐量,其中每一个连接都运行在独立的处理器上。数据在传给协议栈之前会被分割成好多块,然后传递给指定的处理器上并发送。在接收方,GridFTP对数据包进行重组。BitTorrent协议中客户端也是通过从同一组中的多个peer获取数据,然后进行重组[5]。最终其吞吐量等于每个连接吞吐量之和,有显著提升。但是连接级并行方案存在一些问题,第一,由于多个连接并行访问,这些连接之间会同时竞争网络资源,所以必须提出一种策略来保证公平性。第二,由于数据在发送前后需要进行分片重组,各个连接在访问共享的数据时,必须对数据进行加锁,比较耗费时间。第三,上层应用必须维护各个连接的状态以及采用合理的调度算法来保证连接的并行,最终应用程序的负担会大大增大,稳定性下降。
在国内,北京邮电大学网络技术研究院在用户态上实现基于代理的并行化TCP/IP协议栈[6]。该协议栈只是对代理功能进行裁剪和优化。服务器主要进行数据包的转发,所以在TCP层去除了拥塞控制、流量控制等复杂的处理流程。转发功能使用无锁的Session Table来减少加锁保护,避免了竞争带来的性能下降。并且使用了TCP Splicing机制转发不同连接上的数据包,来避免Socket API带来的冗余TCP协议处理流程,且减少了内存消耗。
清华大学网络技术研究所夏高等人实现了用于高速网络入侵检测系统的并行TCP/IP协议栈[7]。TCP连接表查找函数采用universal Hash函数,并利用SSE指令集中的并行指令来提高计算速度;采用Bloom过滤器减少TCP连接表中的无效连接,提高查找效率;协议栈采用动态库的形式进行实现,通过多次加载动态库可以将单线程程序转换为多线程程序,提高吞吐率。
3. 现有的协议栈加速技术
随着网络技术的不断发展,协议栈加速研究也从没有停止过。尤其高速网络的到来,网络需求也随着表现为高带宽、低延迟、低的主机开销、高吞吐量等特点。但传统协议栈存在上述一些问题,不能满足现有需求,下面详细介绍了有关协议栈加速技术的研究成果。
3.1 零拷贝技术
零拷贝技术可以减少数据复制和共享总线操作的次数,避免了通信数据在存储器之间不必要的中间复制过程,有效地提高通信效率,是设计高速接口通道、实现高速服务器和路由器的关键技术之一[8]。数据复制受制于传统的操作系统或通信协议,限制了通信性能,传统协议栈收发数据包时,都要进行多次复制才能到达链路上或用户空间[9]。采用零拷贝技术,可减少数据复制次数,简化协议处理的层次,在应用和网络间提供更快的数据通路。最终,可以有效地降低通信延迟,增加网络吞吐率。
零拷贝技术在实现的时候,主要使用了内存映射[10]和DMA技术[11]。通常情况下,操作系统是直接可以访问用户态空间的数据;但操作系统内核为了保证其安全性和稳定性,用户态程序是无法直接访问内核空间的数据。一般应用程序需要通过系统调用接口来获取用户态空间的数据。调用相应的系统调用接口,操作系统会临时赋予当前线程最高权限,这是就可以直接访问内核数据,当用户线程的系统调用执行完毕后,会撤销对应的权限。在Linux系统中,其提供了另外一种机制来实现用户程序和内核的内存共享,即内存映射技术。
内存映射有两种方法,第一种方法是将用户空间的内存地址空间映射到内核中,这种方法需要用户程序提前申请一大块地址空间,然后通过内核模块映射到内核态,提供给设备DMA使用。但是这种方式存在一个问题,由于用户态地址是一个虚拟地址,而DMA使用的地址是一个真实物理地址,两者之间存在地址转换问题。当DMA操作内存的时候,必须提供一个映射表供驱动程序将数据填充到用户态所申请的地址空间上。这种方式的好处也显而易见,用户态申请地址的大小不受物理地址的限制,只与虚拟地址空间有关系,所以能申请到一块很大的内存地址空间。
第二种方法是将内核内存地址空间映射到用户态中,这种方式需要内核启动的时候预留一块连续的物理内存空间,供DMA设备使用。然后将这块内存空间通过内核加载模块程序映射到用户程序中。这样就DMA就不需要内存映射表,直接可将数据放入对应的内存地址上。其不足之处则是申请的共享内存大小受限于实际物理内存空间的大小。
LyraNet是基于零拷贝技术实现的一个是网络协议栈,其将用户空间的内存地址映射到内核态中[12]。sk_buff结构如图2.4所示,其描述了数据包大于1460字节时的情况,Linux是将用户数据复制到sk_buff的payload中;而LyraNet是将sk_buff结构体的数据指针直接指向用户空间。最终,LyraNet收发时间只使用了Linux协议栈所需时间的77.64%,性能有所提升。

图2.4 Linux和LyraNet的sk_buff结构
3.2 协议栈硬件加速技术
协议栈硬件加速主要采用了TOE(TCP/IP Offload Engine)技术,即将协议栈的工作卸载到硬件中执行[13]。这种技术利用的硬件执行速度块的优点,将主机CPU解放出来,可以有效减少数据复制、中断操作、协议处理所带来的主机开销,解决了服务器处理瓶颈问题。TOE技术分为部分卸载和完全卸载。
部分卸载是将协议栈的部分工作卸载到硬件中执行。部分卸载不会影响操作系统内核管理机制,其只是完成了协议栈中的某一部分功能,但核心流程还需要主机CPU进行处理,例如TCP建立连接、关闭连接等、状态机的维护等。最常见的部分卸载TOE技术是TCP/IP Checksum Offload,将TCP、IP数据包的校验工作放在物理网卡上进行。接收端可以利用TOE技术将数据包的重组工作交给网卡,让网卡提前将将数据包进行重组,然后再交给协议栈,这样可以减少协议栈中的重组开销,实验表明,在1Gbps网络环境中,可以节省2-7%的CPU开销;在10Gpbs环境中,可以节省20%的CPU开销[14]
完全卸载将协议栈的所有工作都交给硬件执行,其在实现的时候涉内核对用户线程的管理机制,需要解决TOE网卡对用户地址空间的访问和CPU对用户地址访问的冲突,以及虚拟地址和物理地址的转换问题。而且在实现的时候,需要在网卡驱动和用户层实现一个接口层,以供应用程序调用。完全卸载的性能肯定优于部分卸载方式。但实现难度较大,它涉及内核的线程管理、存储管理等机制的改动,风险较高。
Infiniband技术[15]、RoCE技术[16]以及iWARP技术[17]都采用了TOE技术,都是物理网卡上实现了相应的协议栈。iWARP技术如图2.5所示,将传统的TCP/IP协议栈的所有实现都移到了网卡上,具有以下3个特点[18]:
(1)协议栈加速,通过网卡的处理单元完成了协议栈的所有功能;
(2)避免了数据多次拷贝,其采用了RDMA技术,可直接将数据递交给应用程序线程;
(3)绕过操作系统,减少了系统调用所带来的开销。

图2.5 iWARP技术框架图
虽然TOE技术对协议栈性能有很大帮助,但也存在一些弱点。第一,硬件特殊,需要特定的可编程物理网卡才能实现此技术;第二,价格贵,一般带有TOE的网卡都要比普通网卡贵10倍以上,短时间不能被普通用户接受;第三,扩展性差,由于TOE技术实现的协议栈完全绕过了操作系统内核协议栈,所以扩展性不如软件解决方案,他不支持复杂的防火墙规则、QoS过滤器等;第四,多样性差,TOE实现时候只能采用一种协议栈,常见的是TCP/IP,限制了用户使用。
有关Infiniband、iWARP和RoCE的基本概念可以参看附件中的PPT文档。
3.3 用户态协议栈加速技术
由于传统协议栈处理是在内核中进行,多次拷贝以及多次系统调用严重影响协议栈的性能。与TOE方法不同,许多研究开始尝试将协议栈处理提升到用户空间进行。在用户态实现协议栈有以下几点优势[19]
(1)系统调用次数减少
在传统BSD协议栈中,用户采用系统调用的方式进行相关协议栈的相关操作,系统调用采用软件中断的方式进入内核,每一次调用都伴随着一次用户态与内核态之间的上下文切换,这样频繁切换会带来比较大的开销。在用户态中实现协议栈,可以从根本上解决这一问题,因为协议栈位于用户线程内,不需要进行过多的系统调用。
(2)数据包复制次数减少
在传统内核协议栈中,数据包要从链路上到达用户态需要多次的复制,即数据包从网卡复制到内核空间内,然后数据包经过一系列的协议处理流程,最终数据包将从内核态的缓冲区复制到用户态中的缓冲区。在用户态实现协议栈,可以采用零拷贝技术、可直接将数据包从网卡上拿到用户态中,减少了一次复制次数,在高速网络环境中可以显著降低CPU的开销。
(3)扩展性比较强,易于定制
传统BSD协议栈在设计的时候,主要以稳定性高、通用性强的特点进行设计。但是在特定的需求和环境下,对传统协议栈进行定制,则难度非常大,因为传统协议栈在内核中实现,各个模块之间的耦合度比较高,而且定制的时候,调试、编译工作非常不便。在用户态中实现协议栈,可以很方便的根据用户自己的需求进行扩展和定制,调试编译工作也方便了很多。
Glenford Mapp等人实现了用户空间传输协议A1[20],不同于TCP协议的字节流传输,A1主要基于块传输,采用选择性重传的数据包传输策略,进行显式的往返时间RTT的测量,其流控是采用端到端的方法,并且支持组播。实验表明,相对于传统TCP的实现,Al的吞吐量有明显的提升。
OpenOnload是Solarflare公司开发的一个在Linux操作系统下开源的、高效的用户态协议栈,其结构如图2.6所示,他在用户态中实现了IP、TCP、UDP等协议,并采用标准的Socket API接口供用户使用,用户可以在不改变现有程序的基础上使用OpenOnload。而且在实现用户态协议栈的时候,采用了专用的网卡及网卡驱动程序,使得是数据包可以很快的到达用户态。OpenOnload具有低延迟、高吞吐量、高速率、低CPU使用率等特点,是一款优秀的用户态协议栈[21]

图2.6 用户态协议栈OpenOnload

4. 一个特例
在2012年6月的USENIX年度技术会议上,意大利比萨大学(Universit`a di Pisa)的Luigi Rizzo教授提出了一种叫做netmap[23]的新高速分组传输方案。针对10Gb/s的高速网卡,在不改动普通的硬件和应用程序的情况下,只需改动少量的FreeBSD代码,在单核900MHz频率下,该方案就能够实现每秒14.88Mpps(packet per second,每个分组64字节)的数据传输速度,也就是7.6Gb/s,其传输速度是普通传输方案的20倍[7]Rizzo教授的主要贡献是减少或者取消分组在操作系统内部处理的开销,基本思路是:取消每个分组动态分配内存的开销、系统调用开销和内存拷贝大的开销,通过预分配资源、大批处理和零拷贝思想减少了开销,提高了分组在系统内存的周转效率,从而减少延迟,提高了传输速度。这是一个惊人的结果,说明在端系统中数据传输的效率非常低下。具体可以参考附件中Luigi Rizzo教授的文章。

5. 小结
综上所述,可以看出协议栈并发存在的主要问题是处理TCP的连接状态问题,目前的方法都存在缺陷,都一定程度上会降低并发的效率。第二个问题是在核心态并发还是用户态并发,前者相对复杂,设计到操作系统的内核的修改,只能针对开源系统,而后者相对容易。从未来发展的趋势上看,摈弃掉TCP协议和使用TOE技术是主要发展方向,但这需要一个长期的过程。


参考文献
[1] Giarrizzo D, Kaiserswerth M, Wicki T, et al. High-speed parallel protocol implementation.Proceedings of the 1st International Workshop on High-Speed Networks. 1989: 165-180.
[2] Bjorkman M, Gunningberg P. Locking effects in multiprocessor implementations of protocols. Conference proceedings on Communications architectures, protocols and applications. 1993, 13(17): 74-83.
[3] E. M. Nahum, D. J. Yates, J. F. Kurose, and D. Towsley. Performance issues in parallelized network protocols. In Proceedings of the First Symposium on Operating Systems Design and Implementation, November 1994.
[4] Allcock W, Bester J, Bresnahan J, et al. GridFTP: Protocol extensions to FTP for the Grid[J]. Global Grid ForumGFD-RP, 2003, 20.
[5] Cohen B. The BitTorrent protocol specification[J]. 2008.
[6] 张惠慧. 用户态并行化 TCP/IP 协议栈设计与实现[J]. 2010. http://www.paper.edu.cn/index.php/default/releasepaper/content/201011.17
[7] 夏高, 刘斌. 用于高速网络入侵检测系统的并行 TCP/IP 协议栈[J]. 清华大学学报: 自然科学版, 2011, 51(7): 942-948.
[8] 张宇雷, 黄皓. 基于网络处理器的零拷贝技术[J]. 计算机应用研究, 2007, 24(1): 288-290.
[9] 可向民, 龚正虎, 夏建东. 零拷贝技术及其实现的研究[J]. 计算机工程与科学, 2000, 22(5): 17-24.
[10] Jacob B.Mudge T Software-managed address translation,1997.
[11] 刘锋.Linux环境下基于Intel千兆网卡的高速数据包捕获平台的研究[D].厦门大学硕士学位论文.2008:47-50.
[12] Li Y C, Chiang M L. LyraNET: A zero-copy TCP/IP protocol stack for em[ant]bedded operating systems[C],em[ant]bedded and Real-Time Computing Systems and Applications, 2005. Proceedings. 11th IEEE International Conference on. IEEE, 2005: 123-128.
[13] Yeh E, Chao H, Mannem V, et al. Introduction to TCP/IP offload engine (TOE)[J]. 10 Gigabit Ethernet Alliance (10GEA), 2002.
[14] Makineni S, Iyer R, Sarangam P, et al. Receive side coalescing for accelerating TCP/IP processing[M],High Performance Computing-HiPC 2006. Springer Berlin Heidelberg, 2006: 289-300.
[15] InfiniBand Trade Association. InfiniBand Architecture Specification: Release 1.0[M]. InfiniBand Trade Association, 2000.
[16] RDMA over Converged Ethernet.
[17] http://en.wikipedia.org/wiki/RDMA_over_Converged_Ethernet
[18] Rashti M J, Grant R E, Afsahi A, et al. iWARP redefined: Scalable connectionless communication over high-speed Ethernet[C],High Performance Computing (HiPC), 2010 International Conference on. IEEE, 2010: 1-10.
[19] Optimizing HPC clusters with 10 Gigabit Ethernet iWARP technology.
[20] http://www.intelethernet-dell.com/optimizing-hpc-clusters-with-10-gigabit-ethernet-iwarp-technology/
[21] Thekkath C A, Nguyen T D, Moy E, et al. Implementing network protocols at user level[J]. IEEE/ACM Transactions on Networking (TON), 1993, 1(5): 554-565.
[22] OpenOnload. http://www.openonload.org/
[23] Luigi Rizzo. netmap: a novel fr[ant]amework for fast packet I/O, Proceedings of the 2012 USENIX Annual Technical Conference, June 2012.
https://www.usenix.org/conference/atc12/
[24]














新增栏目1




课程教学
1. 《网络管理与优化》(研究生)
2. 《计算机通信与网络》:

教材: 数据通信与网络(4th Editon), 作者: Behrouz Forouzan,机械工业出版社

讲义:
第一部分 概述
第1章 绪论
第2章 网络模型
第二部分 物理层和介质
第3章 物理层
第4章 数字传输
第5章 模拟传输
第6章 带宽利用
第7章 传输介质
第8章 交换
第9章 使用电话网和有线电视网进行数据传输
第三部分 数据链路层
第10章 检错与纠错
第11章 数据链路控制
第12章 多路访问
第13章 有线局域网:以太网
第14章 无线局域网
第15章 连接局域网、主干网和虚拟局域网
第16章 无线WAN:移动电话和卫星网络
第17章 广域网SONET/SDH
第18章 虚电路网络:帧中继和ATM
第四部分 网络层
第19章 逻辑寻址
第20章 IP协议
第21章 地址映射、差错报告和多播
第22章 传递、转发和路由选择
第五部分 传输层
第23章 UDP、TCP和SCTP
第24章 拥塞控制和服务质量
第六部分 传输层
第25章 域名系统
第26章 远程登录、电子邮件和文件传输
第27章 万维网与超文本传输协议






相关话题/西安电子科技大学 计算机科学与技术学院