




已阅读5页,还剩65页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江大学硕士学位论文 AbstractPIM-SNOOPING协议的分析与测试摘要组播技术早已自成为一个系统,组播协议分为组播路由协议和组播组管理协议,其中组播路由协议包含基本的PIM协议、类似IGMP和MLD的组播成员管理协议,还有跨域的MSDP和MBGP协议,在局域网内部的二层组播协议IGMP-SNOOPING等等。矚慫润厲钐瘗睞枥庑赖。近年来新出了一种组播协议PIM SNOOPING,它是对IGMP-SNOOPING的补充和改进,更加利于减少带宽占用率,增强网络的健壮性。本论文详细探讨了PIM-SNOOPING的协议分析和测试。文章首先介绍了组播在局域网领域的应用,而后引申出PIM-SNOOPING,其中包括它的工作原理和配置指导。而后探讨了软件测试的流程并引申出协议测试的特点,最后重点诠释了作者在PIM-SNOOPING协议的测试过程中所做的工作。聞創沟燴鐺險爱氇谴净。在测试过程中,主要有对配置,功能,性能等方面进行测试,使用公司系统内的和自己通过对协议的学习设计的测试用例,在测试的同时,加深了对协议的理解,也保证了协议在实际设备上的实用性。残骛楼諍锩瀨濟溆塹籟。关键词:组播协议,PIM-SNOOPING,协议测试i浙江大学硕士学位论文 AbstractAbstractMulticast technology has long since become a system, multicast protocols and multicast routing protocols into the multicast group management protocol, multicast routing protocols that include basic PIM protocol, similar to the IGMP and MLD multicast members of the management agreement, as well as inter- domain MSDP and MBGP protocol, in the internal LAN Layer 2 multicast protocol IGMP-SNOOPING and so on. 酽锕极額閉镇桧猪訣锥。In recent years, out of a new multicast protocol - PIM SNOOPING, it is the IGMP-SNOOPING supplement and improved, more beneficial to reduce bandwidth utilization, enhance network robustness. This paper discusses the PIM-SNOOPING detailed protocol analysis and testing. The article first describes the application of multicast in the LAN area, and then come out of PIM-SNOOPING, including its working principle and configuration instructions. Then explore the software testing process and derive the characteristics of the test protocol, the final interpretation of the authors focus on PIM-SNOOPING protocol testing process work. 彈贸摄尔霁毙攬砖卤庑。During the test, mainly on the configuration, features, performance and other aspects of testing, the use of the company within the system and their own learning through the design of the protocol test cases, test at the same time, deepen the understanding of the agreement, but also to ensure agreement on the usefulness of the actual device. 謀荞抟箧飆鐸怼类蒋薔。Key Words:Multicast protocol, PIM SNOOPING, Protocol test厦礴恳蹒骈時盡继價骚。 ii浙江大学硕士学位论文 目录目录摘要i茕桢广鳓鯡选块网羈泪。Abstractii鹅娅尽損鹌惨歷茏鴛賴。图目录III籟丛妈羥为贍偾蛏练淨。表目录IV預頌圣鉉儐歲龈讶骅籴。第1章 绪论1渗釤呛俨匀谔鱉调硯錦。1.1 课题背景1铙誅卧泻噦圣骋贶頂廡。1.2 组播体系结构2擁締凤袜备訊顎轮烂蔷。1.3 组播地址2贓熱俣阃歲匱阊邺镓騷。1.3.1 组播IP地址2坛摶乡囂忏蒌鍥铃氈淚。1.3.2 组播地址划分2蜡變黲癟報伥铉锚鈰赘。1.3.3 组播地址映射3買鲷鴯譖昙膚遙闫撷凄。1.4 组管理协议IGMP(Internet Group Management Protocol)4綾镝鯛駕櫬鹕踪韦辚糴。1.5 二层交换环境中组管理的实现IGMP SNOOPING4驅踬髏彦浃绥譎饴憂锦。1.6 现状7猫虿驢绘燈鮒诛髅貺庑。1.7 本章小结8锹籁饗迳琐筆襖鸥娅薔。第2章 相关技术综述10構氽頑黉碩饨荠龈话骛。2.1 PIM-SNOOPING的提出10輒峄陽檉簖疖網儂號泶。2.2 软件测试工作规范流程10尧侧閆繭絳闕绚勵蜆贅。2.3 软件测试的原则13识饒鎂錕缢灩筧嚌俨淒。2.4 对网络协议测试特性的个人理解15凍鈹鋨劳臘锴痫婦胫籴。2.5 本章小结16恥諤銪灭萦欢煬鞏鹜錦。第3章 PIM-SNOOPING的测试17鯊腎鑰诎褳鉀沩懼統庫。3.1 PIM-SNOOPING的测试17硕癘鄴颃诌攆檸攜驤蔹。3.2 PIM-SNOOPING验收测试的具体过程18阌擻輳嬪諫迁择楨秘騖。3.2.1 协调及熟悉测试设备和工具18氬嚕躑竄贸恳彈瀘颔澩。3.2.2 如何搭建测试环境20釷鹆資贏車贖孙滅獅赘。3.2.3 如何配置环境20怂阐譜鯪迳導嘯畫長凉。3.2.4 配置测试22谚辞調担鈧谄动禪泻類。3.2.5 对设计方案的功能实现测试31嘰觐詿缧铴嗫偽純铪锩。3.2.6 流量分析测试46熒绐譏钲鏌觶鷹緇機库。3.3 本章小结50鶼渍螻偉阅劍鲰腎邏蘞。第4章 基于思科设备的测试实现51纣忧蔣氳頑莶驅藥悯骛。4.1 思科设备测试实例51颖刍莖蛺饽亿顿裊赔泷。4.2 本章小结55濫驂膽閉驟羥闈詔寢賻。第5章 论文总结56銚銻縵哜鳗鸿锓謎諏涼。参考文献57挤貼綬电麥结鈺贖哓类。作者简历59赔荊紳谘侖驟辽輩袜錈。致谢60塤礙籟馐决穩賽釙冊庫。II 浙江大学硕士学位论文第3章 绪论图目录图1.1 组播地址划分3裊樣祕廬廂颤谚鍘羋蔺。图1.2 组播地址映射3仓嫗盤紲嘱珑詁鍬齊驁。图1.3 IGMP-SNOOPING工作原理图5绽萬璉轆娛閬蛏鬮绾瀧。图1.4 未使能pimsnooping时7骁顾燁鶚巯瀆蕪領鲡赙。图1.5 使能pimsnooping时8瑣钋濺暧惲锟缟馭篩凉。图2.2 每个阶段的问题发现率14鎦诗涇艳损楼紲鯗餳類。图3.1 IXIA机图19栉缏歐锄棗鈕种鵑瑶锬。图3.2 PIM SNOOPING 测试拓扑图21辔烨棟剛殓攬瑤丽阄应。图3.3 PIM SNOOPING 配置测试拓扑图30峴扬斕滾澗辐滠兴渙藺。图3.4 Hello报文格式34詩叁撻訥烬忧毀厉鋨骜。图3.5 Holdtime报文格式35则鯤愜韋瘓賈晖园栋泷。图3.6 LAN Prune Delay报文格式35胀鏝彈奥秘孫戶孪钇賻。图3.7 J/P报文格式36鳃躋峽祷紉诵帮废掃減。图3.8 Unicast 格式图36稟虛嬪赈维哜妝扩踴粜。图3.9 Source 格式图37陽簍埡鲑罷規呜旧岿錟。图3.10 Group 格式图37沩氣嘮戇苌鑿鑿槠谔應。图3.11 PIM SNOOPING 分片报文测试拓扑图42钡嵐縣緱虜荣产涛團蔺。图3.12 组播跃迁状态图44懨俠劑鈍触乐鹇烬觶騮。图3.13 PIM SNOOPING 测试拓扑修改图45謾饱兗争詣繚鮐癞别瀘。图3.14 PIM SNOOPING 测试正常流量图46呙铉們欤谦鸪饺竞荡赚。图3.15 PIM SNOOPING 测试流量丢失图47莹谐龌蕲賞组靄绉嚴减。图3.16 PIM SNOOPING 测试流量冗余图48麸肃鹏镟轿騍镣缚縟糶。图3.17 PIM SNOOPING 测试流量小波动图49納畴鳗吶鄖禎銣腻鰲锬。表目录表1.1 D类IP地址格式2風撵鲔貓铁频钙蓟纠庙。表3.1 测试用例模板表20灭嗳骇諗鋅猎輛觏馊藹。表3.2 配置测试用例表24铹鸝饷飾镡閌赀诨癱骝。表3.3 PIM-SNOOPING配置表25攙閿频嵘陣澇諗谴隴泸。表3.4 功能测试用例表33趕輾雏纨颗锊讨跃满賺。表3.5 下游状态及跃迁表38夹覡闾辁駁档驀迁锬減。表3.6 二层转发表项状态机39视絀镘鸸鲚鐘脑钧欖粝。表3.7 分片报文处理测试41偽澀锟攢鴛擋緬铹鈞錠。表3.8 PIMv1报文处理测试43緦徑铫膾龋轿级镗挢廟。IV 浙江大学硕士学位论文第1章 绪论第1章 绪论1.1 课题背景历经20多年的研究和发展,从1988年Deering提出了将组播的功能机制增加到数据网IP层的组播实现体系结构开始,IP组播已经形成了较为完整的组播协议体系,包括组播主机和网络的交互协议、组播路由协议、组播的地址管理协议等。IETF RFC1112作为IP组播的标准业务模型的定义,对IP组播的业务提供的方式和形式进行了描述和定义。騅憑钶銘侥张礫阵轸蔼。计算机技术与通信技术的结合促进了局域网的飞速发展。从20世纪60年代末ALOHA的出现到90年代中期千兆交换式以太网的登台亮相,短短30年间,局域网经过了从单工到双工,从共享到交换,从低速到高速,从简单到复杂,从昂贵到普及的飞跃。短短几年来,第2层局域网交换设备从一种昂贵的尖端设备变成一种成熟的耗费比较好的设备,交换机的使用已经十分广泛,但是同时带来一些在交换拓扑网络中使用组播的新问题。疠骐錾农剎貯狱颢幗騮。传统的IP通信是在一个源IP主机和一个目标IP主机之间(单播)或者一个源IP主机和网络中所有的IP主机之间(广播)进行的。如果我们要将信息发送给网络中的多个而非所有IP主机,要么采用广播方式,要么由源IP主机分别向网络中的多个目标IP主机单播发送IP包。广播方式不仅会将信息发送给不需要的IP主机而浪费带宽,也可能由于路由回环引起一场严重的广播风暴;单播方式由于IP包的重复发送而白白浪费掉大量带宽,也增加了服务器的负载。可以说传统的IP通信技术不能有效地解决单点发送多点接收的问题。镞锊过润启婭澗骆讕瀘。组播是指信源将信息发向所有网络节点的某个确定子集的点到多点的通信形式。IP组播是指在IP网络中数据包以尽力传送的形式发送到所有网络节点的某个确定子集,这个子集称为组播组。IP组播的基本思想是源IP主机只发送一份数据,一个或多个接收者可接收相同数据的拷贝。即允许源IP主机向网上所有IP主机的一部分(子集)发送IP分组,只有该子集内的主机(目标主机)可以接收该分组,而网络中其它IP主机不能收到该分组。这种逻辑上的子集(目标主机)就是组播组,用D类IP地址(224.0.0.0239.255.255.255)来标识。榿贰轲誊壟该槛鲻垲赛。IP组播技术有效地解决了单点发送多点接收、多点发送多点接收的问题,实现了IP网络中点到多点的高效数据传送,能够有效地节约网络带宽、降低网络负载。IP组播技术在实时数据传送、网络电视、多媒体会议、数据拷贝、游戏和仿真等诸多方面都有广泛的应用。邁茑赚陉宾呗擷鹪讼凑。1.2 组播体系结构组播协议按照作用范围分(在此为了叙述简洁,只对IPV4的组播协议进行划分,IPV6协议可类同),分为主机-路由器之间的组成员关系协议和路由器-路由器之间的组播路由协议。组成员关系协议包括IGMP(互连网组管理协议)。组播路由协议分为域内组播路由协议及域间组播路由协议。域内组播路由协议包括PIM-SM、PIM-DM、DVMRP等协议,域间组播路由协议包括MBGP、MSDP等协议。同时为了有效抑制组播数据在链路层的扩散,引入了IGMP Snooping、HGMP等二层组播协议,而今还有现在已开发并投入实现的PIM Snooping。嵝硖贪塒廩袞悯倉華糲。IGMP建立并且维护路由器直联网段的组成员关系信息。域内组播路由协议根据IGMP维护的这些组播组成员关系信息,运用一定的组播路由算法构造组播分发树进行组播数据包转发。域间组播路由协议在各自治域间发布具有组播能力的路由信息以及组播源信息,以使组播数据在域间进行转发。该栎谖碼戆沖巋鳧薩锭。1.3 组播地址1.3.1 组播IP地址在各种公共资料中均可以知晓,IP组播地址用于标识一个IP组播组。IANA把D类地址空间的一部分分配给IP组播,其范围从224.0.0.0到239.255.255.255。如表1.1所示(二进制表示),因此IP组播地址前四位均是1110。劇妆诨貰攖苹埘呂仑庙。表1.1 D类IP地址格式臠龍讹驄桠业變墊罗蘄。八位组(1)八位组(2)八位组(3)八位组(4)1110XXXXXXXXXXXXXXXXXXXXXXXXXXXX1.3.2 组播地址划分如图1.1所示,224.0.0.0保留不做分配。IANA预留了224.0.0.1到224.0.0.255的组播地址,为路由协议以及其他低级拓扑查找及维护协议使用。该范围地址属于局部范畴,不论生存时间字段(TTL)值是多少,都不会被IP路由器转发。239.0.0.0到239.255.255.255被用作本地组播管理地址。其余组播地址作为用户组播地址。当IP层收到组播数据报文时,根据组播转发表进行转发。鰻順褛悦漚縫冁屜鸭骞。图1.1 组播地址划分穑釓虚绺滟鳗絲懷紓泺。1.3.3 组播地址映射如图1.2所示,以太网和FDDI的MAC地址01:00:5E:00:00:00到01:00:5E:7F:FF:FF用于将三层IP组播地址映射为二层地址,即IP组播地址中的低23位放入IEEE MAC地址的低23位。IP组播地址有28位地址空间,但只有23位被映射到IEEE MAC地址,这样会有32个IP组播地址映射到同一MAC地址上。隶誆荧鉴獫纲鴣攣駘賽。图1.2 组播地址映射浹繢腻叢着駕骠構砀湊。1.4 组管理协议IGMP(Internet Group Management Protocol)IGMP协议运行于主机与和主机直接相连的组播路由器之间,主机通过此协议告诉本地路由器希望加入并接受某个特定组播组的信息,同时路由器通过此协议周期性地查询局域网内某个已知组的成员是否处于活动状态(即该网段是否仍有属于某个组播组的成员),实现所连网络组成员关系的收集与维护。鈀燭罚櫝箋礱颼畢韫粝。IGMP有三个版本,IGMPv1由RFC1112定义,目前通用的是IGMPv2,由RFC2236定义。IGMPv3目前仍然是一个草案。IGMPv1中定义了基本的组成员查询和报告过程,IGMPv2在此基础上添加了组成员快速离开的机制,IGMPv3中增加的主要功能是成员可以指定接收或指定不接收某些组播源的报文。这里着重介绍IGMPv2协议的功能。惬執缉蘿绅颀阳灣熗鍵。IGMPv2通过查询器选举机制为所连网段选举唯一的查询器。查询器周期性的发送普遍组查询消息进行成员关系查询;主机发送报告消息来应答查询。当要加入组播组时,主机不必等待查询消息,主动发送报告消息。当要离开组播组时,主机发送离开组消息;收到离开组消息后,查询器发送特定组查询消息来确定是否所有组成员都已离开。贞廈给鏌綞牵鎮獵鎦龐。另外,对于作为组成员的路由器而言,该路由器的行为和普通的主机一样,它响应其它路由器的查询。通常本协议中,“接口”指在一个所连网络上的主接口,若一个路由器连在同一个网络上的接口有多个,则只需要在其中一个接口上运行此协议即可。另一方面,对主机而言,则需要在有组成员的所有的接口上都运行此协议。嚌鲭级厨胀鑲铟礦毁蕲。通过上述IGMP机制,在组播路由器里建立起一张表,其中包含路由器的各个端口以及在端口所对应的子网上都有哪些组的成员。当路由器接收到某个组G的数据报文后,只向那些有G的成员的端口上转发数据报文。至于数据报文在路由器之间如何转发则由路由协议决定,IGMP协议并不负责。薊镔竖牍熒浹醬籬铃騫。1.5 二层交换环境中组管理的实现IGMP SNOOPINGIGMP组播成员管理机制是针对第三层设计的,在第三层,路由器可以对组播报文的转发进行控制,只要进行适当的端口配置和对TTL值的检测就可以了。但是在很多情况下,组播报文要不可避免地经过一些第二层交换设备,尤其是在局域网环境里。如果不对第二层设备进行相应的配置,则组播报文就会转发给第二层交换设备的所有端口,显然这会浪费大量的资源。IGMP Snooping可以解决这个问题,不过IGMP Snooping会降低二层交换设备的处理能力。为了有效抑制组播报文在二层广播,华为公司提出了HGMP协议。齡践砚语蜗铸转絹攤濼。众所周知,交换机是靠硬件转发,早起交换机的转发硬件效率较为低下,主要由交换机主CPU完成所有的交换任务。绅薮疮颧訝标販繯轅赛。随着硬件的发展,现在的高端交换机的交换查找等工作一般已经不由CPU来完成,而在第2层就可以完成,这样就可以以“线速”在输入与输出端口间交换帧。饪箩狞屬诺釙诬苧径凛。而交换机在2层进行转发,就会出现组播报文向所有端口进行转发。为解决这个组播扩散问题,现在主要由两种方法,一是IGMP-SNOOPING,该方法比较容易实现,但是有较大的局限性,对硬件的要求很高,如果用没有第3层意识的ASIC来增强CPU的处理组播信息能力的情况下实现该方法,局域网的性能会受很大影响。第二种为CGMP,这是思科的一个私有协议,所以只有较少厂家的设备支持该协议。烴毙潜籬賢擔視蠶贲粵。IGMP-SNOOPING是当前实现最多的一致局域网交换机上的组播信息扩散的方法,大部分的制造商都会加入该功能。并且IGMP-SNOOPING已经写入了RFC中。以下是IGMP-SNOOPING的工作原理图1.3:鋝岂涛軌跃轮莳講嫗键。图1.3 IGMP-SNOOPING工作原理图撷伪氢鱧轍幂聹諛詼庞。IGMP-SNOOPING的功能是实现当路由器和主机之间的IGMP会话,同时不会让组播报文转发到其他未要求组播功能的主机上。即使能IGMP-SNOOPING的交换机会将组播协议报文在同一VLAN内广播,但是不广播组播数据报文,同时将收到组播协议报文比如PIM报文和IGMP查询报文的端口设为路由器端口。踪飯梦掺钓貞绫賁发蘄。连接路由器的端口必须要加入所有组播CAM表项的出端口表中,原因是路由器必须不加选择地接收所有组播组的所有组播信息。婭鑠机职銦夾簣軒蚀骞。假设在网络上主机A,B,C,D,分别连接交换机的2、3、4、5端口,路由器连接到端口1,发往端口0就是指该报文交给CPU处理。譽諶掺铒锭试监鄺儕泻。这里简单介绍下当在本地子网上有一对主机要加入组播组时,交换机的处理过程。主机A首先希望加入组播组224.1.2.3,因此组播一个IGMP成员关系报告给改组,报文的MAC目的地址0x0100.5E01.0203.当交换机收到该包时,首先查找CAM表,因为是第一次发送到该组的包,所以此时CAM表上没有这个组播MAC地址的转发表项,所以该包被从交换机的所有端口转发出去,包括到交换机CPU的端口0。俦聹执償閏号燴鈿膽賾。此时CPU收到了主机A组播的IGMP成员关系报告,则CPU使用IGMP报告中的信息简历一个CAM转发表项,该转发表项的匹配项为目的地址0x0100.5E01.0203,出端口表包括主机A的端口号2、路由器端口号1和CPU的端口号0。缜電怅淺靓蠐浅錒鵬凜。该CAM表项形成后,任何目的地址为0x0100.5E01.0203的组播报文都将只在端口0、1和2转发,而不再向其他端口扩散,但是交换机的CPU仍然在接收这些报文,因为它必须注意地址为此MAC地址的其他IGMP消息。骥擯帜褸饜兗椏長绛粤。此时主机D也想要加入该组,并主动发送一个IGMP成员关系报告给该组。交换机根据查找CAM表的结果向端口0、1、2转发IGMP成员关系报告。因为交换机的CPU也收到了此IGMP成员关系报告,它还要在CAM表项上位MAC地址0x0100.5E01.0203的转发表项增加一个端口,在这个端口上也能听到该报告。此时该转发表项的出端口也变为0、1、2、5.癱噴导閽骋艳捣靨骢鍵。至此,任何目的地址MAC为0x0100.5E01.0203对应组播组224.1.2.3的组播信息发送被限制在仅仅主机A、主机D、路由器和CPU上,而不会被转发到其他的端口上。鑣鸽夺圆鯢齙慫餞離龐。由此可见,IGMP-SNOOPING只是解决了组播数据报文的冗余现象,但是并没有解决组播协议报文冗余的情况。如果在交换机上有大量的组播协议报文从端口进入,那么使能了IGMP-SNOOPING的交换机只会将其广播,并同时会上送CPU处理,这会大大降低交换机转发性能,并且导致网络带宽被无端的浪费和占据,同时一些没有组播需求的端口会收到这些组播协议报文,没有起到抑制过滤作用,其影响也是会根据实际情况而估定的。榄阈团皱鹏緦寿驏頦蕴。1.6 现状目前在市场上的交换机只支持IGMP Snooping,监听PIM Hello报文维护路由器端口,保证所有组播数据项路由器端口转发,并不监听其他类型的PIM协议报文,对于所有PIM协议报文VLAN内全部广播。在这种情况下,如下图1.4所示,在连接多台PIM路由器的交换机上,数据报文和协议报文不能保证只想有接收需求的设备转发,无接收需求的设备会接收到冗余流量。逊输吴贝义鲽國鳩犹騸。图1.4 未使能pimsnooping时幘觇匮骇儺红卤齡镰瀉。通过在连接多台PIM路由器的交换机上实现PIM SNOOPING,监听PIM协议报文,维护连接PIM路由器的交换机各端口PIM相关的属性和状态,了解各PIM路由器组播数据的接收需求,从而只将PIM协议报文和组播数据报文想有接受意向者转发,避免了冗余流量的产生。PIM协议份DM和SM两种模式,考虑到DM模式对于组播流量采取“推”的方式,并且应用场景大都是一些小规模、接收者比较集中的网络,这种情况下PIM SNOOPING功能实现“只向有接受意向的端口”精确转发意义不大,只简单实现成数据流量向所有PIM邻居端口转发;通过分析思科交换机实现也是处理成这样。如图1.5所示:誦终决懷区馱倆侧澩赜。图1.5 使能pimsnooping时医涤侣綃噲睞齒办銩凛。还有本人在实习过程中也是在做有关组播测试工作,并且参与了PIM-SNOOPING协议的系统验收测试。1.7 本章小结组播是一个自成体系的网络协议大家庭,里面包含了所有的网络协议相关的理论知识。曾今我的一位导师说过,学好了组播就等于学好了路由,其观点也是有一定道理的。它所包含了从三层路由到二层支持,等等。而PIM SNOOPING可以说是这个大家庭中新的一员。三网合一需要组播,IPTV需要组播,甚至连简单的网络视频也需要组播,组播在今后的应用只会更广,更宽,更进步。舻当为遙头韪鳍哕晕糞。软件测试是一门还处于发展中的职业,它在国内的起步比较晚,发展空间大,同时各项各行软件行业都需要用到,并且在软件测试中,从手工到自动,从单元到系统,从初次到回溯,各种测试类型分门别类,在不同的软件或者工业行业中的应用也是不相同的。在网络组播的测试中,是对网络设备软件平台的测试,同时包括驱动软件和上层软件的测试,在测试过程中不仅会涉及到组播,也可能会涉及到其他网络领域,如支撑、路由、二层等等。鸪凑鸛齏嶇烛罵奖选锯。本章节系统的讲述了组播的发展历史、现状以及与本论文PIM SNOOPING相关的IGMP和二层组播IGMP-SNOOPING,还有一些组播测试的基本知识。由此引申出PIM SNOOPING的实现原因,以及对其测试的重要性。筧驪鴨栌怀鏇颐嵘悅废。 本论文是本人在杭州某通信公司实习后所得的研究课题,重点在于阐述了PIM-SNOOPING的提出背景、技术实现和测试工作。韋鋯鯖荣擬滄閡悬贖蘊。 本人在公司实习时主要参与的是测试工作,因此在文章最后的几个章节将详细阐述本人在PIN-SNOOPING测试工作中的经验所得和对测试工作的总结。涛貶騸锬晋铩锩揿宪骟。10 浙江大学硕士学位论文第2章 相关技术综述第2章 相关技术综述2.1 PIM-SNOOPING的提出在RFC3488中有这么一个章节这么描述PIM-SNOOPING:“Appendix C. Possible future extensions / comparison to PIM Snooping钿蘇饌華檻杩鐵样说泻。This appendix is not part of the RGMP specification but is provided for information only.”戧礱風熗浇鄖适泞嚀贗。大致的内容讲就是在未来PIM-SNOOPING是PIM发展进化过程中的一种可能,并且是解决二层组播路由协议报文广播的一种很好的有效机制。同时它也描述了PIM SNOOPING的实现必须在IGMP SNOOPING支持之下。以及更多的描述了PIM SNOOPING的细节问题。購櫛頁詩燦戶踐澜襯鳳。虽然RFC3488在这个章节中说,PIM SNOOPING只是一种可能,但是现如今,继思科之后,通信领域上已经相继出现了具备PIM SNOOPING的功能的产品。嗫奐闃頜瑷踯谫瓒兽粪。2.2 软件测试工作规范流程测试工作不仅有一定的流程,也有一定的规范和原则,其中规范已经在多年的发展中形成了一套规范流程。首先我们要制定和确认测试进度,在制定测试进度时,需要如下几个规范:1.必须由开发和相关的测试部门共同制定和确定测试进度。在制定过程中,必须重点放在如何合理的配置测试资源,比如测试设备、测试人员及对其的培训、测试所有用到的技术文档资料 等。虚龉鐮宠確嵝誄祷舻鋸。2.量化制定好的测试进度,使其制定的测试进度正常并且有效。在此过程中,要对各个测试阶段分别制定测试进度。特殊情况下指定特殊系统的测试进度。比如资料库内容功能测试等。與顶鍔笋类謾蝾纪黾廢。3.测试进度中必须要包含修改和复查的时间。制定完测试进度后,还需要有相应的监控方法,其中有些基本的监控方法是必须的。其中有通过测试阶段时间的时间段进行监控;通过测试用例过程的执行情况进行监控;根据测试通知单的平均反馈时间和更改程序的速度;根据问题趋势图。結释鏈跄絞塒繭绽綹蕴。在测试过程中,如果实际测试进度与制定的测试进度不相符合,必须先找主要原因,根据主要原因进行解决。修改过程及修改结果必须由开发和相关测试人员共同决定。在做完制定测试进度工作后,如图2.1所示,接下来是测试前的输入条件和测试准备的输出资料。其中测试前的输入条件有如下几个,包括必要的测试技术文档资料。本人在测试过程中也是由主管先发一份技术资料让测试人员先进行预先准备。一般测试设计说明会在正式测试前20到30天给出,由相关开发提供。餑诎鉈鲻缥评缯肃鮮驃。测试设计说明包括以下内容: 1、开发和测试进度表 2、产品规格说明书 3、测试规划及设计思路,及专业模块的使用说明。 4、测试的数据边界值及合理的输入输出数据结果类型的说明。 5、对于测试内容的引导性建议。 6、测试中的具体操作步骤(特别是指在测试硬件中和可靠性测试)以上的在PIM-SNOOPING的特性测试工作中也是包括在内的。 同时,在每个测试阶段之前,根据之前的测试工作情况,开发必须做好说明,并提供相关资料,其中包括问题的修改情况及其影响,还有这次测试的目的和内容。爷缆鉅摯騰厕綁荩笺潑。对于上述的输入条件,在无特殊原因必须并且应该经过开发和测试人员共同评定。测试人员对于不符合测试要求的内容可以回馈给开发分析和修改。 锞炽邐繒萨蝦窦补飙赝。在实测前,我们测试人员会做一段必要的测试准备,根据测试设计说明,制定测试大纲、测试设计、测试用例等主要的测试文件。这就是测试准备的输出内容。同样,无特殊原因,必须提供,如遇到问题,测试人员应该和开发协商。 曠戗輔鑽襉倆瘋诌琿凤。测试前,还需要准备各种测试文件和工具,还有如果更改都需要开发和测试共同检查并且确定。接下来就是确定测试阶段 :根据上述的准备,测试活动可以分为单元测试阶段、确认测试阶段、系统测试阶段和验收测试阶段。在这个过程中,要合理安排每个测试阶段的时间,同时将有可能改变的情况考虑在内。测试计划会随着测试阶段的变化而变化。轉厍蹺佥诎脚濒谘閥糞。每个测试阶段结束后,会对阶段完成的工作是否达到要求,测试项目是否达到技术规划要求,该阶段的输出内容是否达到要求等进行检查和评审。嬷鯀賊沣謁麩溝赉涞锯。之后按照图2.1所示,是各个测试阶段,单元测试、系统测试、验收测试在上个章节已经给出,在此不做重复。在这里,重点说下测试通知书,也就是在测试过程所测得的问题反馈到开发人员的过程方式。 开发人员会对测试通知书进行分析,如果需要修改问题,则给出修改方法,如果不需要,则给出相应的具有力量的理由。讯鎬謾蝈贺綜枢辄锁廪。在测试过程中发现的问题也会因为程度不同而被划分为不同等级。一般对问题可以划分为四个等级: 1、 A类:造成系统严重破坏或者崩溃的,并使系统运行受阻无法运行。 2、 B类:造成系统功能严重破坏或者崩溃的,但是复位或者重灌系统后依然可以继续运行。 3、 C类:系统功能中出现的一般性问题,主要是引起功能失效,会造成操作上重大误解的。 4、 D类:系统功能在设计和开发中由于考虑不周引起的问题,即可能会造成系统在使用中会出错的隐患或造成使用中会产生歧义的。 兒躉讀闶軒鲧擬钇標藪。如果是属于A类问题,是要进行修改并且会对开发进行一定的警告。问题单修改后,开发会将问题提交到相关测试人员手中,进行回归测试,如果开发要求测试人员对问题进行复现,该过程是很关键点的,因为该问题可能不会再出现。所以测试人员对此要重视。繅藺詞嗇适篮异铜鑑骠。一般情况下,测试通知书会保留在测试部,并做存档。而开发那边是没有保留的。下面重点讲下验收测试,因为本人在该项目中所做的测试工作就是验收测试。验收测试是在系统测试之后的,相当于该产品已经成型了,不过要在实际情况下进行模拟测试。验收测试的先决条件是:鮒簡觸癘鈄餒嬋锵户泼。软件和硬件系统和生产出来的产品情况要一致;被测系统要符合技术文档和标准规定;验收测试是在系统测试之后。其中第一条是最基本的。验收测试中所用到的测试用例在一般情况下是要重新制定的,因为要考虑到实际环境情况。一般验收测试的整个周期是4到7天,当然具体情况下也可能会有所改变。一般验收测试中除了按照测试用例来执行测试外,还会要求测试人员根据自己的测试经验进行发散测试。开发在验收测试阶段是不能对系统进行修改的。验收测试跟封板测试不同,它必须是在封板测试后进行。封板测试时要提交报告,经上级确认后才能封板。验收测试是最终测试。测试结束后,要做一份测试报告,进行总结,然后经测试部门确认后保存。眯毆蠐謝银癩唠阁跷贗。每个阶段中测试通过的标准有如下两条:即保证A类和B类问题都应该保证全部修改,并且不会再有复发的情况发生。最后是评审验收报告和提交软件的流程。验收报告出来以后,要附带上该版本的未改问题报告同时提交到开发中心、质检部、PMC部、生产工程部审阅,并且要分别签字通过。 闵屢螢馳鑷隽劍颂崗鳳。所谓的未改问题报告,会在评审验收报告通过后,复印一份到开发中心那作为技术资料。验收报告会回到测试部门,作为部门的机密文件保管。檁傷葦开阈灯伞馑諧粮。验收报告评审通过后,开发会将程序下载单和软件一起交给测试部门,测试部门经仔细检查后,审核通过,并将软件复制做备份。然后提交程序下载单和软件到生产工程部门检查,同时将程序下载单复印做备份,最后程序下载单会返回到测试部门。 鄭饩腸绊頎鎦鹧鲕嘤錳。测试部并在订单施工单中确认软件。2.3 软件测试的原则一般的软件测试原则有以下6条:1、尽早和不断地进行软件测试;在测试过程中问题的发现率跟每个阶段的关系如图2.2:图2.1 每个阶段的问题发现率弃铀縫迁馀氣鰷鸾觐廩。由此可见,问题发现越早,解决问题的代价就越小,这是软件开发过程中的黄金法则。2、不可能进行完全的测试:对一个程序进行完全测试的概念就是整个测试结束后不会再发现其他错误了。其实,这是不可能的,因为可能输入项是无穷尽的,不能保证程序对其所有的响应;不可能保证遍历到程序的每一条可能的执行路径;不可能找出所有的设计错误;测试是项逻辑工作,但不能单靠逻辑来证明程序的正确性。调谇續鹨髏铖馒喪劉薮。3、增量测试,由小到大由小到大的增量测试,指的是对软件测试的粒度的测试由小到打。不仅是传统的软件测试还是面向对象的软件测试都要遵循增量测试这样的原则。这是因为从集成测试到系统测试阶段,随着测试的深入扩大,测试时间和测试所用的资源也随之扩大。厲耸紐楊鳝晋頇兗蓽驃。4、避免测试自己的程序避免程序员测试自己的代码的主要原因归纳如下:(1)程序员轻易不会承认自己写的程序有错误。(2)程序员的测试思路有局限性,在做测试时很容易受到编程思路的影响。(3)多数程序员没有严格正规的职业训练,缺乏专业测试人员的意识。(4)程序员没有养成错误跟踪和回归测试的习惯。5、设计周密的测试用例测试用例是软件测试对测试内容进行测试的一个重要手段。测试用例基本包括如下几个信息:(1)测试前的准备条件。(2)合理的有计划的输入(3)合理的根据输入所得到的预期输出6、软件测试中也存在着思维的误区,比如很多人认为调试和测试是一样的,其实不然,调试是开发在开发程序时所用的一个手段,而测试是和开发并列的一个工作。还有软件测试的重要性,很多人都认为测试工作并不重要,这是非常错误的想法。另外在测试过程中对Beta测试和自动化测试过分依赖,在测试过程中朝着自动化的方向发展是正确的,但是现在的实际情况并不能满足这样的要求,并且现今的自动化测试工作和Beta测试工具也并不完善,过分依赖只能说是偷懒的行为。还有人认为测试是有尽头的,这也是个误区,测试是无穷无尽的,根据规律,发现的问题越多说明潜在的问题也越多。测试是证明软件的正确性是个观念上的错误,测试是保证软件质量的一个手段。同样测试也需要设计,并不能忽略测试的设计工作。苧瑷籮藶黃邏闩巹东澤。2.4 对网络协议测试特性的个人理解我是在一家通信公司的软件部做的实习,具体的工作就是对通信设备上公司自主研发的软件平台进行系统测试,负责的模块是组播。组播是个很大的协议体系,独立于路由、MPLS、二层协议而自成为一个测试小组。在公司导师的指导下,我接触了组播内大大小小的协议,如IGMP、MLDV1、MLDV2、PIM SM、PIM DM、组播VPN、IGMP SNOOPING等等,对网络协议的测试也有了一定的了解。鴿摄禱鋅儀憚銼嚕缗赞。网络协议测试和一般的软件测试一样,在软件需求阶段就已经开始了,之后是测试设计,单元测试,代码鉴定,以及之后的集成测试,系统测试等等。它的工作流程和工作规范都是非常严谨和科学的。箪啬癲剀净赶钩嬙鳄凫。在系统测试中,网络协议测试的分类会有所不同,它分为配置测试、功能测试、性能测试、压力测试、协议一致性测试、组合测试、互通测试等等。其中的配置测试是指对协议所涵盖的命令在平台软件上能够buildrun,即能够配置上去。功能测试是指协议按照之前所设计的要求能够使能,基本上是按照RFC来执行、设计测试用例。RFC是网络协议的宪章,几乎所有的网络协议的实现都是来自于它,在百度百科上,这样写着:Request For Comments (RFC),是一系列以编号排定的文件。文件收集了有关因特网相关资讯,以及UNIX和因特网社群的软件文件。目前RFC文件是由Internet Society(ISOC)所赞助发行。而由于很多RFC都是由思科制定,所以在网络通信公司有个不成文的规定,即如果协议在设计上或者在测试功能上有出入,按照思科设备为基准。当然不同的公司在协议实现设计上会有所不同,就会有些公司特定的私有协议。为了能够让设备在市场上更有竞争力,通常设备会兼容其他公司的通信设备,此时就需要进行互通测试。协议一致性测试是网络协议独有的测试,所谓的协议一致性测试就是指设备实现跟RFC所描述的要一致,这种测试极其考量测试人员的知识功底,他需要对RFC中该特性的描述非常熟悉,当然在测试用例中也会详细指出测试步骤。顽鷙瑪滨廈岘轆庫糞糧。性能和压力测试有时会结合在一起,比如在组播测试中,通常会要求测试该设备在最大数目的组播流下也能正常运作,此时一般的测试步骤就是使用IXIA打入性能规格所要求的最大组播流数,同时对设备进行组播组清除的操作。所谓组播组清除的操作就是使用VTP,敲入“reset multicast routingtable all”,该命令可以清除设备上平台软件和驱动上所有的组播组表项,这样就可以达到组播流暂时消失的情形,当然持续的打流会让设备重新建立组播组表项。这样的测试需要很长的时间,一般使用测试脚本让其自动运行一个晚上即可。测试脚本是用ATF的TCL语言,使用非常简单。漬閫熾诀团諳赓戰餛锰。TCL语言非常类似于C,它唯一的不同就是所有的变量都是字符串形式。所以只要掌握简单的命令字符,就可以写出常用的测试脚本了。鐸輜澠顶嫻塊謂斕痹廪。2.5 本章小结本章节详细阐述了PIM SNOOPING的由来,软件测试的工作流程和工作规范,并通过此来引出网络协议测试的不同。作者详细讲述了自己对网络协议测试工作的理解和想法。抢觀淚婭师讴论櫚阵蘚。64 浙江大学硕士学位论文 第3章 PIM-SNOOPING的测试第3章 PIM-SNOOPING的测试3.1 PIM-SNOOPING的测试PIM-SNOOPING的测试也是根据上一章节的工作流程和规范进行测试的。本人进行的是验收测试工作。验收测试工作是一项极其需要时间紧迫性和发散性的测试工作。公司在测试工作中大致分为这么几项,主线测试,作为平台软件的长期和定期的测试,用来对平台软件加载或者升级后的版本进行模块测试,至于是哪个模块要视自己的工作领域分配。贼組櫻種愨单蝕渾潷骡。系统测试,协同开发人员进行的测试,在验收测试之前,对开发后的新产品或者新特性进行的测试,一般不在实际产品上进行,适用于在虚拟软件平台上,对其进行基础的模块测试,一般发现问题较多,且质量也较高。一般没有规定的测试用例,且没有组网环境。按照测试人员对主线测试的经验和对该模块知识的了解进行基础测试。圓漣檸賡捣蕷舻燁錘泽。验收测试,指在系统测试过后,开发人员将产品交由测试部门,由相关测试经理安排测试人员进行对应的测试,一般是在实际产品上,并且需要联合其他模块,搭建网络环境,按照指定的测试用例进行测试,并且在时间上会比较紧,比如PIM SNOOPING的验收测试就是只有3天,但期数比较多,这要视前期的验收测试的结果报告而定,如果未达到某一定标准,就要进行下一轮的验收测试。 蟄彎擼鯁棖佇緡癟椠贊。如果在测试过程中发现问题,就要提交问题单。按照模块区分,属于验收项目模块的就是项目问题,非的就属于周边问题,比如在验收测试PIM SNOOPING的过程中发现产品上有关PIM SNOOPING新增命令的问题,就属于项目问题,如果是发现IGMP-SNOOPNG的问题,那就属于周边问题,对问题的判定一般由测试人员和开发人员共同定位。同时寻找特定的开发人员也是关键,因为在测试过程中发现的问题一般都只是现象,无法判断,所以在寻找特定的开发人员时,一般过程是如下:义淨擁扪殴胁纸窺钣鳧。首先自己进行初步定位,若无法定位,则上报测试经理,由测试经理一起定位,同时寻找该验收项目的开发负责人,与其商讨,一般开发人员会比较容易识别这是否属于项目问题,若不是项目问题,则会告诉测试人员属于哪个模块并寻找相关开发人员。若是,则开发人员会让测试人员给出具体信息,或者按照其要求显示具体信息,这个过程就是问题的定位。绥骅懸缙澀鷂禍紳撻粮。一般定位问题后,开发人员会告诉测试人员提交问题单,但特殊情况下,开发人员可能无法给出具体定位,此时测试人员仍然可以提交问题单,让此问题单交由仲裁小组进行评定。馒锁開钥焖緒珏編軻錙。在定位问题过程中,测试人员一定要保护好问题环境,以确保该问题能得到定位,开发人员在定位问题过程中,一般会要求测试人员进行问题复现。此时,测试人员要注意,一定要开发人员给出初步定位后,并且能确保该问题现象能够复现的条件下进行,否则,可以要求拒绝复现。理由是如果处理不当,问题不能复现,则开发会要求该问题只是偶然现象,并非问题。獄质嶇僅痺鲒潰脫帧開。问题单的评定细则可按照上一章节所描述
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年智能交通设备制造业数字化转型项目管理与实施策略研究
- 涉氯知识培训总结课件
- 火化师培训教程课件
- 2025年工业互联网平台网络流量整形技术在智能物流中的应用分析报告
- 2025年新能源汽车充电桩建设社会稳定风险评估报告:充电桩建设与城市公共安全的关系研究
- 涉外商标知识培训课件
- 文化背景与老年护理需求-洞察及研究
- 数字化转型成本效益-洞察及研究
- 黄铜管企业并购重组的技术创新与管理优化-洞察及研究
- 家庭保洁培训课件
- 蒙台梭利教学法PPT完整全套教学课件
- 4月份公路养护工作计划
- 保安员在岗培训法律-2
- 初中英语中考专题训练阅读理解-应用文篇
- YC/T 210.2-2006烟叶代码第2部分:烟叶形态代码
- GB/T 20671.1-2006非金属垫片材料分类体系及试验方法第1部分:非金属垫片材料分类体系
- 熵权法教学讲解课件
- 医师病理知识定期考核试题与答案
- 课堂因“融错·容错·溶措”而精彩
- 安宁疗护服务流程
- 热分析DSC培训new
评论
0/150
提交评论