(通信与信息系统专业论文)基于3tnet视频流业务的网络质量监测系统研究.pdf_第1页
(通信与信息系统专业论文)基于3tnet视频流业务的网络质量监测系统研究.pdf_第2页
(通信与信息系统专业论文)基于3tnet视频流业务的网络质量监测系统研究.pdf_第3页
(通信与信息系统专业论文)基于3tnet视频流业务的网络质量监测系统研究.pdf_第4页
(通信与信息系统专业论文)基于3tnet视频流业务的网络质量监测系统研究.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(通信与信息系统专业论文)基于3tnet视频流业务的网络质量监测系统研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 随着网络技术的发展,网络的应用已经渗透到社会生活的方方面面。在网络 视频已被大家所熟悉的同时,网络互动电视这种新型的收看电视方式也正开始全 面进入人们的日常生活。能在欣赏电视节目的同时,看到流畅、清晰的画面,这 是件赏心乐事。对于互动电视来说,高素质的画面质量不仅是要建立在有效的视 频编解码上,而且还需要高速和稳定的网络系统作基础,两者相辅相成,才能给 观众带来完美的视听享受。所以,为了全面衡量承载视频流媒体业务的网络质量, 需要对其作全面和精确的监测。本文的网络质量监测系统是对在3 t n e t 上运行的 诸如p t v 等视频流业务的网络质量进行的实时监测。 本文首先分析了监测系统涉及的l i n u x 系统数据捕获处理、解析、过滤和交 互等相关技术。随后,通过分析比较现有主流l i n u x 界面实现技术,确定选用适 合系统可持续发展要求的q t 图形用户界面应用程序框架来设计和实现本系统界 面。然后,根据分析现有主流数据捕获及检索过滤技术,并结合3 t n e t 视频流特 点,改进系统检索效率,设计了一个可靠性高、稳定性强,适用于3 t n e t 视频流 业务的网络监测系统。系统可分为用户层与内核层两大部分。系统内核层通过对 视频流的高速捕获、解析和检索,从3 t n e t 业务视频流中得到所需监测的某几个 频道视频流的实时网络质量统计数据。这些统计数据通过交互技术上传给位于系 统用户层界面显示。该视频流业务网络监测系统具有以下的特点:l 、稳定性高, 支持多种网络协议及相应异常处理,且不因异常数据导致系统崩溃。2 、效率高, 能对3 t n e t 网络上的高速视频流业务进行高速数据捕获,并根据3 t n e t 网络视频 流特点分析结果改进了过滤检索函数实现方式,加快了系统检索过滤速度,提升 了系统效率,使本系统能向技术人员高效实时地反映所监测视频流当前网络质量 优劣程度。3 、友好的人机交互界面,支持多种系统配置方式,为技术人员提供 美观便捷的操作环境。 关键字:网络质量,数据捕获,l i n u x 操作系统,q t 图形用户界面,k o n q u e r o r 浏览器,数据交互,过滤检索,协议解析机制,h a s h 函数 a b s t r a c t n e t w o r ka p p l i c a t i o n sh a v ep e n e t r a t e di n t oa l la s p e c t so fo u rs o c i a ll i f ew i t ht h e d e v e l o p m e n to fn e t w o r kt e c h n o l o g y i n t e r n e tv i d e oh a sb e e nf a m i l i a rt oe v e r y o n e a t t h es a m et i m e ,n e t w o r ki n t e r a c t i v et va san e ww a yo fw a t c h i n gt vi s b e g i n n i n gt o e n t e rp e o p l e sd a i l yl i v e s i ti sag r e a tp l e a s u r et oe n j o ys m o o t ha n dc l e a ri m a g e sw h e n w a t c h i n gt e l e v i s i o np r o g r a m m e s a sf a ra sn e t w o r ki n t e r a c t i v et vi sc o n c e r n e d , l l i g h q u a l i t yi m a g ei sn o to n l ye s t a b l i s hi na ne f f e c t i v ev i d e oc o d e c s ,b u ta l s oi nn e e d o fa h i 曲- s p e e ds t a b l en e t w o r ks y s t e ma si t sb a s i s t h e s et w of a c t o r sh e l p se a c ho t h e r , w h i c hb r i n g sa u d i e n c eap e r f e c ta u d i o - v i s u a l e n j o y m e n t t h e r e f o r e , n e t w o r k c a r r y i n gv i d e os t r e a m i n gm e d i ab u s i n e s sn e e d sac o m p r e h e n s i v ea n da c c u r a t e m o n i t o r i n g t om e e tt h i sr e q u i r e m e n t ,t h en e t w o r kq u a l i t ym o n i t o r i n gs y s t e mi nt h i s p a p e rm o n i t o r sv i d e os t r e a m i n gb u s i n e s sr u n n i n go n3 t n e ti nr e a lt i m e , s u c ha si p t v l i n u xd a t a c a p t u r ep r o c e s s i n g , a n a l y s i s ,f i l t e r i n ga n di n t e r c h a n g er e l a t e d t e c h n o l o g yi n v o l v e di nt h i sn e t w o r kq u a l i t ym o n i t o ra r ei n t r o d u c e df i r s t s u b s e q u e n t l y , t h r o u g ht h ea n a l y s i sa n dc o m p a r i s o no fm o d e r nl i n u xi n t e r f a c et e c h n o l o g y , 0 1 1 1 n e t w o r kq u a l i t ym o n i t o rc h o o s e sq tt od e s i g ni t ss y s t e mi n t e r f a c e t h e n ,b a s e do nt h e a n a l y s i so fm o d e r np a c k e tc a p t u r ea n dt a b l es e a r c h i n gt e c h n o l o g y , o u rs y s t e m s s e a r c h i n ge f f i c i e n c yi si m p r o v e di nt h ec o m b i n a t i o nw i t h3 t n e tv i d e os t r e a mf e a t u r e s , w h i c hm a k e si tb e c o m eah i g h l yr e l i a b l e , s t a b l e , a n ds t r o n gm o n i t o r i n gs y s t e mf i tf o r 3 t n e tv i d e os t r e a m i n gb u s i n e s s t h i sn e t w o r kq u a l i t ym o n i t o rc a nb ed i v i d e di n t o t w ol a y e r sn a m e d k e r n e l a n d u s e r t h ek e r n e ll a y e rg e t sr e a lt i m en e t w o r kq u a l i t y s t a t i s t i c so fs e v e r a lc h a n n e l s v i d e os t r e a mf r o ma l lt h e3 t n e tv i d e os t r e a m sa f t e r h i g h - s p e e dc a p t u r e ,a n a l y s i sa n df i l t e r t h e s es t a t i s t i c sa r ed e l i v e r e do n t ot h eu s e r l a y e rb yd a t ai n t e r c h a n g et e c h n o l o g y , a n dd i s p l a y e di ns y s t e mi n t e r f a c e t h ev i d e o s t r e a m i n gb u s i n e s sn e t w o r km o n i t o r i n gs y s t e mh a st h ef o l l o w i n gc h a r a c t e r i s t i c s 1 h i 曲s t a b i l i t y , s u p p o r t i n gav a r i e t yo fn e t w o r kp r o t o c o l sa n dh a v i n ge x c e p t i o n h a n d l i n g s ,n o tb r e a kd o w nb e c a u s eo fa b n o r m a ld a t a s ;2 h i 曲e f f i c i e n c y , a b l et o c a p t u r ea n da n a l y z eh i g h - s p e e dv i d e os t r e a mr u n n i n go n3 t n e t ,a n ds h o ws t a t i s t i c s r e l a t e dt ot h ec u r r e n tn e t w o r kq u a l i t yt ot e c h n i c a ls t a f f si nr e a l t i m e ;3 f r i e n d l y m a n 。m a c h i n ei n t e r f a c e ,s u p p o r t i n gs e v e r a lw a y so fc o n f i g u r i n gu s s y s t e m ,a n d p r o v i d et e c h n i c a ls t a f f sw i t hac o n v e n i e n ta n de f f i c i e n to p e r a t i n ge n v i r o n m e n t k e yw o r d s :n e t w o r kq u a l i t y ,p a c k e tc a p t u r e ,l i n u x ,q t ,k o n q u e r o r ,d a t a i n t e r c h a n g e ,f i l t e ra n ds e a r c h ,p r o t o c o la n a l y s i s ,h a s h i l 学位论文独创性声明 本人所呈交的学位论文是我在导师的指导下进行的研究工作及取得的研究 成果。据我所知,除文中已经注明引用的内容外,本论文不包含其他个人已经 发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在 文中作了明确说明并表示谢意。 作者签名: 学位论文使用授权声明 日期: 本人完全了解华东师范大学有关保留、使用学位论文的规定,学校有权保 留学位论文并向国家主管部门或其指定机构送交论文的电子版和纸质版。有权 将学位论文用于非赢利目的的少量复制并允许论文进入学校图书馆被查阅。有 权将学位论文的内容编入有关数据库进行检索。有权将学位论文的标题和摘要 汇编出版。保密的学位论文在解密后适用本规定。 2 导师签名: 日期: ,杉刎 芥晕咏4 名 r 一 摊 堡者q l 储 丑 文沦 : 衔 期 学 日 o r i g i n a l i t yn o t i c e i np r e s e n t i n gt h i st h e s i si np a r t i a lf u l f i l l m e n to ft h er e q u i r e m e n t sf o r t h em a s t e r sd e g r e ea te a s tc h i n an o r m a lu n i v e r s i t y , 1w a r r a n tt h a tt h i s t h e s i si so r i g i n a la n da n yo ft h et e c h n i q u e sp r e s e n t e di nt h et h e s i sh a v e b e e nf i g u r e do u tb ym e a n yo ft h e r e f e r e n c e st ot h e c o p y r i g h t , t r a d e m a r k ,p a t e n t ,s t a t u t o r yr i g h t ,o rp r o p r i e t yf i g h to fo t h e r sh a v eb e e n e x p l i c i t l ya c k n o w l e d g e da n di n c l u d e di nt h er e f e r e n c e ss e c t i o na tt h ee n d o ft h i st h e s i s s i g n a t u r e : 一 c o p y r i g h tn o t i c e 砷驴 ih e r e i na g r e et h a tt h el i b r a r yo fe c n us h a l lm a k ei t sc o p i e sf r e e l y a v a i l a b l ef o ri n s p e c t i o n if u r t h e ra g r e et h a te x t e n s i v ec o p y i n go ft h e t h e s i si sa l l o w a b l eo n l yf o rs c h o l a r l yp u r p o s e s ,i np a r t i c u l a r , s t o r i n gt h e c o n t e n to ft h i st h e s i s ,c o n s i s t e n tw i t h f a i ru s e a sp r e s c r i b e di nt h e c o p y r i g h tl a wo ft h ep e o p l e sr e p u b l i co fc h i n a s i g n a t u r e : d a t e : 1 1 研究背景 第一章绪论 随着信息技术的飞速发展和社会的进步,互连网络已经深入到人们生活的方 方面面,收发邮件、查看新闻、网络游戏和网上购物等服务已为日常生活带来了 许多便捷与无穷欢乐,成为许多人生活中的重要组成部分。当网络视频、网络点 播等在线观看视频的业务已被大家熟悉时,网络互动电视也以迅猛之势开始进入 人们的视野,并正逐步改变传统电视节目收看方式,它不但能满足人们随时点播 电影、电视剧的要求,还能让人们足不出户地在家里电视机旁进行各种理财业务、 享受互动游戏带来的乐趣等。宽带流媒体和互动多媒体业务势必会成为未来宽带 市场的主要推动力。 互动电视已囊括了转播、直播各电视频道节目的组播服务,分类节目、剧集、 电影等的点播服务,以及各种内容增值服务与客户服务。据中国电信用户调查分 析,影响用户购买网络互动电视的主要因素由四方面组成。首先对网络电视与可 供点播的内容要求不仅要涵盖已有的各类电视节目,还希望既能欣赏大量的国内 外优秀电影和经典电视剧集,又能观看最新的影视剧作。其次,用户对图像质量 的清晰度要求亦随着时代的发展而越来越高,达到标清甚至高清为最佳。第三, 承载i p t v 和v o d 业务的网络质量一定好,用户最不希望遇到的就是当观看到情 节至关重要之处,画面却出现马赛克、乱序或是更严重的停滞。最后一个因素则 是购买此项业务的价格需要在用户可以承受的范围内。 由于口t v 业务和v 0 d 业务( 尤其是视频流媒体业务) 具有相当庞大的数据 量,而且画面清晰度越高,数据量相应越大,消耗的网络带宽增大,因而此类业 务对承载它的网络性能要求也随之提高。目前的互联网体系,由于它的一些本质 缺陷,例如,数据包经常存在丢失、延迟现象,网络无法保证固定足够的带宽, 已不能满足口t v 与v o d 业务的发展需要了。i p t v 等视频流媒体业务需要流速 平稳、带宽有保证,适合进行大规模并发和组播的新型网络体系,逐高速网络势 在必行。美国、欧盟、日本等已相继发展了本国的高速网络计划,中国各级政府 部门也高度重视高速网络的发展。高性能宽带信息网,简称“3 t n e t 是我国科 技部国家8 6 3 计划“十五 期间信息领域重大科技专项。3 t n e t 的目标是自主研 制t b p s 网络设备、自动交换传送网络、i p v 4 v 6 双栈路由器等核心结点设备与相 应的网络支撑环境,建立下一代可运营、支持大规模并发流媒体和交互式多媒体 业务的高性能宽带信息示范网,从宽带流媒体和互动多媒体业务开始,发展多种 音视频服务,面向多种增值业务,推进示范区域信息一体化进程。3 t n e t 建成后, 网络传输将进入流媒体时代,网络的信息承载量和传输速度将得到几何级数的提 升,从而实现彩色传真、多媒体视频会议、高清晰数字电视的网上传输。男女老 少都能找到自己喜欢的节目,看自己想看的电影、听自己想听的音乐,甚至可以 将自己珍藏的d v d 影片通过网络与朋友分享,每个人都是自己电视节目的编排 人。3 t n e t 的高性能不仅为视频流媒体业务提供了良好的发展平台,也可以作为 远程教育学习课程和远程医疗就诊的承载平台,这样一来,人们不必再为研修不 同地方的课程而疲于奔波,也不必就医时的长队担心烦恼,可以通过3 t n e t 上的 远程教育、医疗系统与老师、医生面对面的学习和交流。 3 t n e t 的出现为人们提供了方便快捷的流媒体服务,但是由于缺乏有效的业 务级网络监控系统,3 t n e t 面临可靠性问题,在运营中出现过多次故障。从目前 网络的实际情况出发,3 t n e t 必须提高可靠性,改善服务质量。3 t n e t 业务监控 平台是架设于3 t n e t 网络上,用于动态监控网络运行状态,对3 t n e t 网络的视频 质量进行实时监控。作为业务级的网管系统,平台不仅提供网络各个节点设备的 工作状况和流量负荷,而且可以提供在链路上各个媒体流的视频质量。基于业务 的网络管理和监控使得运维技术人员能全面的了解当前网络的实时运行状态,当 3 t n e t 承载的视频流质量出现问题时,监控平台能及时发出告警,使运维技术人 员可以对已发生的错误能做出快速响应。根据业务承载层次,不难推断,网络质 量优劣直接影响视频流媒体的播放质量。而且根据平台实现顺序,监控中“控 的基础是能做到准确的“测 ,要对视频流质量进行分析监控,则应先对承载该 视频流业务的网络质量进行分析监测,得到准确、量化的当前网络质量相关参数。 运维人员可根据这些具体参数,进一步锁定视频流质量不佳的深层原因。 现如今,能够实现网络监测的系统不少,其中不乏已经达到良好监控水平的 系统。它们不仅可以对网络质量相关的各种参数进行监测,还可对服务器、各种 应用服务等进行监测,并生成相应的表单。不过,它们大都皆针对现有互联网网 络体系研发而成,且价格高昂,不适合直接在我国的3 t n e t 高性能信息网中大规 模使用。所以,如何对3 t n e t 承载的视频流业务的网络质量进行实时监测是本文 所需解决的问题。 1 2 本文主要研究工作 本文的主要工作是通过对现阶段l i n u x 内核数据处理流程及相关技术进行 分析,从研究l i n u x 内核的数据捕获、解析、过滤和交互等方面入手,结合3 t n e t 视频流特点分析,选择了高效的数据捕获方式,改进了过滤检索函数,设计并实 现一个效率高、稳定性良好,符合3 t n e t 视频流业务实际要求的网络质量监测系 统。 2 本文后续章节安排如下: 第二章探讨系统设计与实现的相关技术;研究l i n u x 系统内核数据捕获处理 过程,介绍网络数据包解析所涉及的关键缓存结构,协议解析方法,描述了h a s h 函数的构造方法与常见应用,阐述内核空间与用户空间数据交互的主要途径。 第三章介绍系统界面的设计与实现;研究l i n u x 系统常见界面设计相关技 术,介绍了q t 多平台图形用户界面应用程序框架,详细阐述系统界面的设计和 实现,以及浏览器嵌入界面的步骤。 第四章分析系统各环节具体实现方案;介绍了系统设计思想和工作流程,详 细说明了捕获、解析、过滤、交互各环节具体实现。 第五章分析系统测试结果;通过对系统进行各项性能测试,得到测试结果并 进行分析。 第六章结束语;对全文进行总结并对未来的工作前景进行展望。 3 第二章网络质量监测系统相关技术研究 l i n u x 操作系统是一套功能强大的多用户、多任务操作系统,而且它的源代 码完全公开,允许任何人在符合g n ug p l 原则的条件下自由获取和修改源代码。 l i n u x 以内核健壮、节省资源和高质量代码著称,加上其稳定可靠和低成本的优 势,l i n u x 不但逐渐为p c 机用户所接受,而且在服务器领域获得了巨大的成功。 因此,选择在l i n u x 系统上完成本系统的开发任务。 2 1l i n u x 系统数据捕获处理过程 数据捕获是读取网络上传输的数据单元的过程。通常,也将这类“数据单元” 称为“帧”、“i p 包”、“数据包”。为了统一称呼起见,在本文中,称该类数据单元 为数据包( d a t ap a c k e t ) ,或简称为包( p a c k e t ) 。数据包可分为两部分:与所属 层对应的报头部分,和数据部分。报头部信息包括地址、标志、版本以及其它网 络信息。数据部分即该数据包所携带的数据。在处理数据包时,l i n u x 系统遵循 下述的流程:网卡过滤专网络核心处理专软中断- ) p t y p e链表处理数据拷base 贝。 2 1 1 网卡过滤 网卡过滤,针对数据包的目的地址进行。网卡会检查它所接收到的数据包, 根据该包的以太层目的地址判断它是否为发送给本机的数据包,或者这个地址是 不是链路层上的广播地址。若是这两种情况之一,网卡则接收这个数据包,并进 行本机上的下一步操作,若不是,则将它转发。如果想捕获所有网卡接收到的包, 可将网卡模式设置为混杂模式( p r o m i s c u o u sm o d e ) ,则所有经过该网卡的数据包, 无论其目的地址是否为该网卡,一律捕获。 2 1 2网络核心处理 网络核心处理涉及硬中断和软中断两个概念,先对于它们做个简要概述。软 中断和硬中断属于对应关系,硬中断是外部设备对c p u 的中断,软中断通常是 硬中断服务程序对内核的中断。硬中断处理是要屏蔽中断的上下文运行,所以要 求硬中断的处理时间一定要快,它适用于关键性处理操作和紧急情况,而软中断 则不要求屏蔽中断上下文,适用于比较耗时的、不太紧急的情况,由系统自行安 排其运行时机。 4 网络数据包核心处理流程【1 1 ,如图2 - 1 所示,当网卡完成对一个数据包的接 收后,由网卡本身产生一个中断请求。这个硬中断请求通常由网卡驱动来响应, 驱动则关闭中断源并进行以下操作: ( 1 ) 分配一个s k b u f f 的结构( 2 2 1 节将对s k b u f f 结构体作详细分析) ; ( 2 ) 通过d m a 方式,将数据包从网卡缓冲中读出,并写入以上s kb u f f 结 构中; ( 3 ) 调用n e t i f r x n i ( ) 函数,再调用n e t i f _ r x o 做网络接收处理; ( 4 ) 等到n e t i f _ r x ( ) i 函数返回,n e t i f r x n i o i 函数返回后,执行软中断处理函 数d o _ s o f d r q o ,并重新开启中断源准备接收下一个中断请求。 :s o f h l e td a t a , : :j i j j r 蔓 状态,返回 : n e t i f r x o : 一l 湎。 : n e t i f _ r x _ n i o : 关闭中 网卡驱动 t 中黼 网卡 开启中断源 数据包 图2 - 1网络数据包核心处理流程图 f i g u r e2 - 1 n e t w o r kp a c k e t sc o r ep r o c e s s i n gf l o wd i a g r a m n e t i fr x 函数的主要任务是将数据包从网络驱动中接收过来,将其插入队列 等待上层处理。可以将它理解为,从不同的网卡驱动处收集所得的数据包,将它 们排序后提交上层处理。由于这个函数是作为硬中断处理函数执行的,执行期间, 其他中断源必须关闭,所以要求这个函数的处理速度必须快,尽量缩短处理时间, 不宜进行复杂操作。因而耗时的数据包处理操作由软中断调用n e tr xa c t i o n 函数 5 进行。n e t i fr x 函数的操作,概括来说,就是将数据包插入s o f l n e td a t a 队列,随 后检查这个c p u 输入数据队列s o t m e td a t a 队列的状态,并将此状态作为函数的 返回值。n e t i fr x o 将数据包插入s o f t n e td a t a 队列,若队列已满,则该数据包会 被丢弃。n e t i fr x 函数的返回值为n e tr xs u c c e s s 、n e tr xc nl o w 、 n e tr xc nm o d 、n e tr xc nh i g h 和n e tr xd r o p ,反映了 s o f i n e td a t a 队列即时的拥塞程度。拥塞程度高时,n e t i f 函数回溯至无拥塞状 态,避免内核超负载运行干扰其他服务程序,这个功能也可用于防止d o s 攻击。 n e t i fi x 函数返回至n e t i fr xn i o 后,n e t i fr xn i 函数触发软中断。n e t i fr xn i 函 数自身返回,对应中断结束,重新开启中断源。n e t i f n i 函数和n e t i f r x 函数 详细代码请参见n e t c o r e d e v c ( 此路径为l i n u x 内核源代码l z j 目录中的绝对路径, 下文亦同) 。 2 1 3 软中断 c p u 自硬中断处理结束后,进程调度函数即s c h e d u l e ( ) 会检查有没有软中断 发生,若有则运行相应的处理函数。在n e t i fi xn i 函数返回前,它触发了软中断 n e t r xs o f t i r q ,因此,调度函数发现了软中断,并调用此中断相应的处理 函数n e tr xa c t i o n 函数。中断信号n e tr xs o f t i r q 与其处理函数n e t a c t i o n 是通过o p e n函数进行关联起来。softirq n e tr xa c t i o n 函数【3 】的主要功能是将当前c p u 的s o f l n e td a t a 队列中的第一 个数据包( s o f i n e td a t a 内s kb u f f 列表中的数据包) 出列,然后遍历数据包处理 链表p t y p ea l l 和处理数组p t y p eb a s e ( 参见2 1 4 节) 并调用相应的处理函数。 具体过程为,n e t r x a c t i o n 调用p r o c e s s _ b a c k l o g 实际接收数据。先p r o c e s s _ b a c k l o g 从i n p u tp k tq u e u e ( 即上节中提到的s o f l n e td a t a 队列) 中读取数据包,并传递 给n e t i fr e c e i v es k b 函数。n e f i fr e c e i v es k b 函数对于每一个收到的数据包,先匹 配p t y p ea l l 列表,然后再匹配p t y p e _ b a s e 数组。若在p t y p e _ a l l 和p t y p e _ b a s e 中 找到相应的协议类型,则调用此协议相应的处理函数,如i er c v 、p a c k e t 等。 2 1 4 p t y p e a l l 链表和p t y p e _ b a s e 数组 p t y p e _ a l l 列表和p t y p e _ b a s e 数组用来存储处理的数据包类型及其相关处理函 数的数据结构s t r u c tp a c k e t _ t y p e ,如图2 - 2 所示。 p t y p e _ a l l 列表存储e t h l l 类型数据包,而p t y p e _ b a s e 数组存储其余类 型的数据包。由d e v _ a d d _ p a c k 函数( 如图2 - 3 所示) 将数据包按类型区分并登记 到p t y p e _ a l l 或p t y p eb a s e 中。 6 s 缸u c tp a c k e t _ t y p e ( b e l 6 s t r u c tn e td e 访c e i n t s t r u c ts kb 证 t y p e ; 产m si sr e a l l zh t o n s ( e t h e o 唧e ) 呵 掌d e w , 产m 工i sw i l d c a r d e dh e r e呵 ( * f u n c ) ( s l l c ts k _ b u f f 堆, s t r u c tn e t _ _ d e v i c e 辜, s t r u c tp a c k e 乏勿e 孳 s i z u c tn e t d e v i c e : * ( * g s o _ s e g m e m ) ( s t r u c ts k _ b u 茁术s k b , i n tf e a t u r e s ) ; i n t ( * g s o s e n d _ _ c h e c k ) ( s t r u c ts k _ _ b u f f 米s k b ) ; v o i d 掌a f p a c k e t _ _ p r i v ; s b u c tl i s th e a d l i s t ; 图2 - 2p a c k e t _ t y p e 结构体定义图 f i g u r e 2 2 s t r u c tp a c k e tt y p e sd e k m i t i o n v o i dd e v _ a d d _ _ p a c k ( s t r u c tp a c k e t _ t y p e t ) ( i n th a s h ; s p i n _ l o c k _ b h ( p 咖e j o c k ) : i f ( p t 一 t y p e h b n s a 殂p 皿) ) ( n e t d e 巳毗 l i s t _ _ a d d _ r c u ( & p t - l i s t ,p 姊e _ 哟: ) e l s e ( h a s h = n t o h s ( p t 一 t y p e ) 15 ; l i s t a d d _ r c u ( & p t 一 l i s t , p 姊e _ b a s e h a s h ) ; ) s p i n _ u n l o c k _ b h ( & p t y p e1 0 c k ) : ) 图2 - 3d e v _ a d d _ p a c k 函数 f i g u r e 2 3 f u n c t i o nd c v _ a d d _ p a c k 只有p a c k e t t y p e 中的t y p e 项为e t hpa l l 时,d e v _ a d d _ p a c k ( ) 才会将数据 包登记到p t y p c _ a l l 链表中,否则则于数组p t y p e _ b a s e 1 6 中找到相应的位置。两 者区别在于如果以e t hpa l l 类型登记,那么处理函数会受到所有类型的包, 否则只能处理相应登记类型的包。 p t y p e _ a l l 放置e t h l l 类型数据包,以p a c k e t _ r c v 函数作为接收函数。 该类型数据包的处理会跳过网络协议报头处理部分,而直接传送到应用程序的 s o c k e t 处。如熟知的l i n u xs o c k e tf i l t e r i 3 】的p fp a c k e t 类型,即是通过向 p t y p e _ _ a l l 链表中加入e t hpa l l 类型,实现直接从网卡驱动层读取数据包至应 用程序。p t y p e _ b a s e 用来放置其他协议类型,如e t h p i p 作i p 数据包的处理, 对应的接收函数为i p r c v ( ) i 垂i 数。其后,关于更上层的t c p 、u d p 等协议的处理, 7 则从数据报头中分析出协议类型,调用相应的t c p r c v o 、u d p r c v ( ) 函数即可。 2 1 5 数据拷贝 此处的数据拷贝,指的是通过内核层与用户层数据交互方式( 详细阐述,请 参见2 4 节) 将数据包从内核层拷贝到用户层。虽然仅是拷贝s i cb u f f 结构中的 内容,并非数据包所携带的数据( p a c k e td a t a ) 部分,但是它涉及到内核层与用 户层,较耗时。为了提高系统效率,只对符合过滤规则的数据包进行拷贝操作, 这也是为什么数据过滤必须在用户层之前完成的原因之一。 2 2 解析机制 解析,介于捕获与过滤之间的环节,为过滤提供判断依据。网络数据包解析, 以i s o 模型5 1 低层至高层顺序,按各层相应协议依次进行。 2 2 1 缓存结构s kb u f f 在l i n u xk e r n e l 6 1 的网络实现中,使用套接字缓存( s o c k e t b u f f e r ) 结构s i cb u f f 来管理数据包。每当网络数据包到达网卡,网卡会产生中断。在中断处理程序里, d m a ( 直接内容读取) 从网卡缓冲内将数据包读取后,正是将数据包中的帧信 息写入s kb u f f 结构。因此,解析过程所需的数据包信息即可从s kb u f f 中获取。 s i cb u f f 是内核网络子系统中最重要的一种数据结构,它贯穿了整个网络数 据报文收发周期。s kb u f f 结构体,定义于i n c l u d e l i n u x s k b u f f h 文件中,s kb u f f 相关操作的函数实现位于n e t c o r e s k b u f f c ,例如,申请s k _ b u f f 空间的a l l o c _ _ s k b o 函数,释放s kb u f f 空间的k f r e es k b o 函数等。 s t r u c ts k b u f f s t r u c ts k b u f f 牛n e x t ; s t r u c ts k b u f f 枣p r e v ; | | s t r u c tn e t d e v i c e 枣d e v ; s t r u c tn e td e v i c e * i n p u t _ d e v ; u n i o n s t r u c tt c p h d r 幸t h ; s t r u c tu d p h d r 奎u h ; s t r u c ti c m p h d r 木i c m p h ; 8 ) h ; s t r u c ti g m p h d r s t r u c ti p h d r s t r u c ti p v 6 h d r u n s i g n e dc h a r 拳i g m p h ; 宰i p i p h ; 幸i p v 6 h ; * r a w ; u n i o n s t r u c ti p h d r 幸i p h ; s t r u c ti p v 6 h d r 幸i p v 6 h ; s t r u c ta r p h d r 宰a r p h ; u n s i g n e dc h a r幸r a w ; ) n h ; u n i o n u n s i g n e dc h a r幸r a w ; ) m a c ; h u 8 p k t _ t y p e :3 , f c l o n e :2 , i p v s _ p r o p e r t y :1 ; j e l 6 p r o t o c o l ; 1 | u n s i g n e dc h a r* h e a d , * d a t a , 事t a i l , * e n d ; ) ; s kb u f f 结构体定义如上所示,大致可分为:指向链表中前后s kb u f f 的指针, 数据包到达的时间、设备,含有传输层、网络层、链路层头部指针的数据结构, 目标入口、数据长度、链路层头长度、检验码、缓存结构头尾指针等相关属性值。 这些组成部分之中,主要参与本系统应用的是数据包到达设备名,和含有传输层、 网络层、链路层头部指针的h 、n h 、m a c 结构。 9 2 2 2 网络层协议解析 在网络视频流数据包填入s kb u f f 之后,系统可以从s kb u f r 中得到有关数据 包的各种具体信息。根据这些信息,系统对数据包进行网络层协议解析,从而判 断此数据包是否应舍弃,若决定接收,则在此解析过程中得出下一步过滤规则检 索操作所需的输入关键字值。协议解析须明确两项内容:1 、通过协议解析可以 得知哪些内容;2 、实现代码时,这些内容从哪里获取。解析顺序按网络层次由 下之上逐层解析。在对传输层协议解析之前,须先对网络层协议解析。 网际协议( i n t e r n e tp r o t o c 0 1 ) 是用于规范在因特网中计算机间数据传递的一 种方式,属于网络层协议。它包含寻址信息和控制信息,可使数据包在网络中路 由。口协议是t c p i p 协议族中的主要成员,与t c p 协议结合组成整个因特网协 议的核心协议。如今,i p 协议最常用的就是i p v 4 和i p v 6 ( 由于3 t n e t 视频流是 基于i p v 6 协议并非口v 4 协议,所以本文相关网际协议的阐述侧重于i p v 6 协议) 。 对网际协议进行解析,必须先明确此协议的报头结构。 0l23 0123 嘎567b90123 嘎56789012345678901 + 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ - + - + - + 一十一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一十一+ 一+ lv e r s i o n lt r a f f i cc l a s si f l o wl a b e l l + 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ lp a y l o a dl e n g g hi n e x t :h e a d e r ih o pl i m i tl + 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一十一+ 一+ 一+ - + - + 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ il + ii + s o u r c ea d d r e s s+ ll + ii + 一+ 一+ 一+ 一+ - 4 - 4 - - + 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一4 - + 一+ 一+ 一+ 一+ 一4 - + - 4 - 4 - 4 - - + 一+ - 4 - - + - + 一+ 一+ ii + , + li +desti n a t ;i o na d d r e s s+ ii + ii + 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一4 - - + 一+ - + -

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论