ImageVerifierCode 换一换
格式:DOC , 页数:32 ,大小:1.56MB ,
资源ID:4640070      下载积分:12 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4640070.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(基于某click自定义协议详情软件路由器地设计与实现.doc)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于某click自定义协议详情软件路由器地设计与实现.doc

1、实用标准文案 网络协议设计实验 设计文档 基于click自定义协议软件路由器的 设计与实现 二〇一四年十二月 目 录 一、实验概要及实验设计 1 (一)实验概要 1 (二)实验目的 1 (三)实验分析 1 1、协议分析 1 2、协议设计 2 二、实验设计 4 (一)实验流程 4 (二)click路由器总体设计 5 1. 路由器报文分类概要设计 5 2. 路由器报文转发概要设计 6 3. Label标签信息库结构 9 4. 优先级调度概要设计 9 5. 基于优先级的限速功能的概要设计 10 (三

2、click路由器转发流程设计 11 1. PSP路由转发流程详细设计 11 2. Label报文转发详细设计 12 (四)主要组件设计 14 1. Fastpspsource组件 14 2. LableRouteTable 15 3. LableLookup 15 4. RateLimit 16 三、实验演示 17 (一)PSP路由转发测试 17 1. 实验拓扑图 17 2. 实验测试方法 17 3. 配置文件 17 4. 测试结果 18 5. 结果总结 20 (二)基于Label的路由转发测试 21 1. 实验拓扑图 21 2. 配置文件 21 3. 测

3、试结果 21 4. 结果总结 21 (三)优先级队列调度功能测试 21 1. 实验拓扑图 21 2. 实验测试方法 21 3. 配置文件 22 4. 测试结果 23 5. 结果总结 24 (四)标签流按优先级分别进行限速功能测试 24 1. 实验拓扑图 24 2. 配置文件 25 3. 测试结果 26 4. 结果总结 27 四、实验分工 27 精彩文档 一、实验概要及实验设计 (一)实验概要 本实验目的为基于已有的click开源软件实现一个自定义协议的软件路由器完整转发流程,具体包含五个核心任务:报文分类处理;PSP报文分组转发流程(包含PSP头检查、T

4、TL减一、转发表);定长标签交换流程(包含标签头解封装、标签表、标签头封装);标签流8个优先级队列调度;标签流按照优先级分别进行限速。 (二)实验目的 通过实验设计,深入理解软件路由器的基本原理、组成和实现,掌握计算机网络研究所需的基本设计技能,包括系统设计能力、软件编程能力、整体表述能力和新思想的实验验证能力,为开展计算机网络方向的深入研究奠定实际验证基础。 (三)实验分析 1、协议分析 一个完整的路由协议需要完成的功能包含以下内容:制定指导数据报文分组从一个网络到另一个网络的规定和标准;创建路由表,并维护网络拓扑结构;运行路由协议,执行路由选择和分组转发功能。这对我们接下来的协

5、议设计提出了基本的要求,即对于网络中的每一层都需要定义报文的格式,然后对于报文在网络中的发送、接收和转发都有稳定的拓扑结构。 2、协议设计 一个自定义的协议簇(ABC),包括地址编址结构、网络互连与路由转发等多个简单协议,对其进行详细说明如下: (1) 地址编制结构(64位),其中前16位为网络标识,后48为接口标识。实际操作中,接口标识为该接口的MAC地址,与前16位拼接为64位地址。 (2) 链路层协议,规定了以太网的封装格式如下: 其中,IP报文类型定义为0x6000,标签(LABEL)报文类型定义为0x6001。 (3) 2.5层标签交换协议,规定了标签交换头的封

6、装格式,并约定标签交换头后默认为PSP格式的报文。 (4) 网络层协议,定义了网络层报文头格式。 其中TOS为0-15,表示报文的传输优先级;标识符标注报文的序号;载荷长度为不包括报文头的报文内容长度;下一报头类型为1时表示为ABC_ICMP协议,为2时表示为ABC_UDP协议;跳数限制最大为64,并且每经过一个路由器,其值减1,其值为0时报文被丢弃;源地址和目的地址分别记录发送方和目的方地址。 (5) 定义了ABC_UDP(ABC不可靠传输协议)报文头格式。 (6) 基本实验拓扑 如图所示,根据以太网报文头中包含的以太网的目的地址、源地址和报文类型, ABC协议就能实现

7、一个简单的报文收发过程。 (7) 包含转发过程的实验拓扑 一个简单的转发过程包含以下的步骤:从发送方接收报文;更改报文的源地址以及目的地址;通过端口发出报文。示意图如下: 二、实验设计 (一)实验流程 1. 准备工作 a) 下载修改后的Click源代码; b) 安装Fedora虚拟机,配置开发、测试环境; c) 编译源码,运行Demo实验; d) 学习Click基础知识,查看源码,了解组件的设计方法和组件的配置文件。 2. 系统概要设计 充分了解实验任务,进行初步的概要设计,设计包括组件的功能和组织。 3. 编码 4. 实验环境搭建 5. 代码集成和

8、测试 首先各个组件需要通过单元测试,最后集成起来进行系统测试。 6. 编写实验报告文档 (二)click路由器总体设计 1. 路由器报文分类概要设计 报文主要分为四种类型:ARP Query报文、ARP Response报文、PSP报文、Label报文。从输入组件中获取数据包,发送到数据包分类器。概要图如下图所示: 其中,根据以太网头部类型信息进行分类,如下所示: ARP Query PSP Label ARP Response 类型码 0x0806 0x6000 0x6001 0x0806 2. 路由器报文转发概要设计 路由器报文转发的概要设计图如下

9、所示,其中包含两条主线:一是基于PSP协议的路由转发,二是基于Label标签的路由转发。 两条主线的公用组件的作用如下表所示: 组件/流程名称 组件/流程作用 FromDevice 从指定端口获取数据包,转发给下一个组件 Classifier 数据包类型分类器,根据以太网头部类型信息把数据分为四类:ARP Query 、ARP Response 、PSP 报文、Label 报文 TTL - 1 将报文的TTL 进行减一操作,当TTL为时,不再转发报文 ARP Query 查询目的IP对应的Mac地址 Modify Ether Header 修改以太网头部 ToDev

10、ice 将数据包发送到指定端口 对于PSP报文的路由转发,其中的两个组件功能如下: 组件/流程名称 组件/流程作用 Get Dest Address 获取PSP报文的目的地址 Lookup Router Table 查询路由表,得到要转发的端口 对于Label报文的路由转发,其中的两个组件的功能如下: 组件/流程名称 组件/流程作用 Lookup LIB 根据标签号,查询标签信息库,得到新的标签号和转发端口。 Modify Label for next jump 修改标签头部信息中的标签号为查表得到新标签号 (1) 对于PSP报文路由转发,首先根据PSP头部

11、中的目的地址查询路由表,得到转发端口;然后进行TTL-1、修改Ether头部中的目的Mac,然后从查询到的转发端口进行发送。 (2) 对于急于标签的路由转发,首先根据Label头部的标签号查询标签信息库,得到新的标签号和转发端口,并修改Label头部的标签号为新的标签号。然后进行TTL-1,修改Ether头部中的目的Mac,然后从查询到的转发端口进行发送。 3. Label标签信息库结构 标签信息库维护基于标签交换的路由转发信息。当一个带有标签的报文进入路由器的时候,首先根据标签头部的Label ID查找标签信息库,得到下一跳的Label ID和转发端口。其结构信息如下: 4

12、 优先级调度概要设计 对于标签交换,当输入组件获取数据包,经数据分类器分类后,确定为Label报文,转发给优先级分类器。优先级分类器根据Label头部中的QOS字段进行优先级判定,分别加入不同优先级的队列中。优先级调度组件根据优先级调度算法进行调度,从不同优先级的队列中获取数据包,发送到待发送数据队列。其中,调度算法是为了保证低优先级的报文不至于饿死,采用时间片轮转的方式,即给高优先的队列分配更多的时间。 5. 基于优先级的限速功能的概要设计 (三)click路由器转发流程设计 1. PSP路由转发流程详细设计 组件/流程 功能描述 FastPSPSou

13、rce组件 按照一定的速度产生PSP报文,模拟发送端 FromDevice组件 从指定的端口获取数据包,转发到下一个组件 Classifier组件 数据包分类器,根据以太网头部的类型信息进行分类,PSP报文的类型信息为0x6000 Get Dest Address 该步骤从PSP报文头部获取目的地址,用来查询路由表,获取转发端口 Lookup Router table 根据目的地址,查找路由表,获取转发端口 TTL-1 将报文TTL进行减一操作 ARP Query ARP查询,获取下一跳的目的Mac地址 Modify Ethernet Header 根据查询到的下

14、一跳目的Mac地址,修改报文以太网头部目的Mac字段 Add to Queue 添加到待发送数据包的队列中 ToDevice组件 从Queue中获取数据包,从指定网口发送出去 2. Label报文转发详细设计 发送者生成PSP报文,经过AddLabelHeader组件添加标签头,发送到路由器;Click 路由器从网口接受数据,进过分类器后,确定为基于标签交换的报文。然后查询标签信息库,并修改下一条标签号,经过TTL-1,目的MAC地址修改,转发到相应端口。接受者从网口获取数据包,丢掉LabelHeader。 组件/流程 功能介绍 AddLabelHeader 在普通PS

15、P数据包上添加标签头信息,让路由器可以基于标签进行交换 Lookup LIB 查询标签信息库,获取下一跳Label ID和输出端口 Modify Label for next jump 修改标签头 Label ID字段,让下一跳路由可以转发 Remove Label Header 移除Label Header,得到PSP报文 (四)主要组件设计 1. Fastpspsource组件 组件名字 Fastpspsource 功能描述 按照一定的速度生成PSP报文 端口类型 PORTS_0_1 0个输入端口,一个输出端口 处理方式 PULL方式 参数描述 F

16、ASTPSPSOURCE(RATE, LIMIT, LENGTH, SRCETH, SRCIP, SPORT, DSTETH, DSTIP, DPORT) RATE:发送速度; LIMIT:生成最大报文数量; LENGTH:报文的长度 SRCETH:源Mac地址 SRCIP:源IP地址 SPORT:源端口号 DSTETH:目的Mac地址 DSTIP:目的IP地址 DPORT:目的端口号 2. LableRouteTable 主要功能:定义标签信息结构,维护标签信息库,可以向里面添加、查询、删除标签信息。 3. LableLookup 组件名字 LableLo

17、okup 功能描述 (1) 静态配置标签信息库 (2) 实现基于标签的查找转发 端口类型 一个输入端口,多个输出端口 处理方式 PUSH方式 当一个带有标签的报文发送到LabelLookup组件,首先获取Label标签头部的标签号,查找标签信息库,以获取“Out Label”和“Out Port”,然后修改标签头部的标签号为“Out Label”,并从“Out Port”端口发送出去。流程图如下: 4. RateLimit 组件名字 RateLimit 功能描述 限制一个报文流的速度,即每秒发送多少报文 端口类型 PORTS_1_1 1个输入端口,1个输出端口

18、 处理方式 PULL 参数描述 RateLimit (RATE) RATE:报文流的最大速率,即最多每秒发送多少个报文 三、实验演示 (一)PSP路由转发测试 1. 实验拓扑图 2. 实验测试方法 实验拓扑图如下所示:Client 从Eth1网口发送数据到Router1 Eth1,Router1转发到Router2,Router2收到数据后再次转发给Client 的Eth2,Client收到数据后打印消息内容。 3. 配置文件 i. Client 发送报文配置文件 FastPSPSource(2,2000,128,00:0C:29:0E:9F:0D,0x010

19、0000A,2345, 00:0C:29:61:C0:3E , 0x0200000A,2346) -> PSPPrint() -> ToDevice(eth1); ii. Client 接受报文配置文件 FromDevice(eth2) -> PSPPrint() -> Discard; iii. Router1 转发报文配置文件 psp :: Print("Forward PSP Pkt") -> rt :: PSPLookup( 10.0.0.1.0.0.0.0 0, 10.0.0.2.0.0.0.0 0) ;

20、 c0 :: Classifier(12/0600, -); out0 :: Queue(200) -> todevice0 :: ToDevice(eth1); FromDevice(eth1) -> c0; c0[0]->psp; c0[1]->Discard; rt[0]-> PSPMacap(00:0C:29:F4:DD:E6) -> Print(rt2) -> out0; iv. Router2 转发报文配置文件 psp :: Print("Forward PSP Pkt") -> rt :: PSPLookup( 10

21、0.0.1.0.0.0.0 1, 10.0.0.2.0.0.0.0 1) ; c0 :: Classifier(12/0600, -); out0 :: Queue(200) -> todevice0 :: ToDevice(eth2); FromDevice(eth1) -> c0; c0[0]->psp; c0[1]->Discard; rt[0]->Discard; rt[1]-> PSPMacap(00:0C:29:0E:9F:17) -> Print(rt2) -> out0; 4. 测试结果

22、 v. 客户端发送报文 vi. Router1 建立路由表以及转发 vii. Router2 建立路由表以及转发 viii. Client 接受到数据包并打印 5. 结果总结 实验采用通过模拟两台路由器之间的路由转发来测试,从实验结果来看,Client 从Eth1网口发送出去的数据包,进过Router1和Router2的路由转发后,能成功到达目的端。该实验结果说明,基于PSP报文的路由转发功能完整实现。 (二)基于Label的路由转发测试 1. 实验拓扑图 2. 配置文件 3. 测试结果 4. 结果总结 (三)优先级队列调度功能测试 1. 实验拓扑图

23、 2. 实验测试方法 Client发送优先级不同的数据包到Router1。Router1在接收到数据包后,根据数据包优先级不同,放置到相应的优先级队列中。由于采用包限流调度算法,越高的优先级队列能在一秒内通过更多的数据包,越低的优先级队列通过的数据包个数越少。因此,低优先级的数据包会被缓存在队列中,高优先级的数据包能尽快地从队列中被读出,使得从优先级队列中读出数据包的顺序和Client发送数据包的顺序会有差异。通过对比读出数据包和发送数据包的顺序,我们就可以验证优先级队列调度的功能是否正常、合理。 Client发送数据包顺序如下:依次分别发送5个优先级为n的数据包,其中n从8变化到1,并

24、循环往复。即发送5个优先级为8的数据包,再发送5个优先级为7的数据包······,并循环往复。其中我们设定数据包QoS位的范围为1-8。其中1代表最高优先级,8代表最低优先级。 3. 配置文件 1) Router1接收端部分配置文件如下所示: c :: Classifier(14/41, 14/42, 14/43, 14/44, 14/45, 14/46, 14/47, 14/48, -); ps :: PrioSched; queue1 :: Queue(100); queue2 :: Queue(100); queue3 :: Queue(100); queue4 :: Q

25、ueue(100); queue5 :: Queue(100); queue6 :: Queue(100); queue7 :: Queue(100); queue8 :: Queue(100); queue9 :: Queue(100); FromDevice(eth1) -> c; c[0]-> queue1 -> Shaper(6) -> ps; c[1]-> queue2 -> Shaper(6) -> [1]ps; c[2]-> queue3 -> Shaper(3) -> [2]ps; c[3]-> queue4 -> Shaper(3) -> [3]p

26、s; c[4]-> queue5 -> Shaper(2) -> [4]ps; c[5]-> queue6 -> Shaper(2) -> [5]ps; c[6]-> queue7 -> Shaper(1) -> [6]ps; c[7]-> queue8 -> Shaper(1) -> [7]ps; c[8]-> queue9 -> Shaper(10) -> [8]ps; ps -> Discard; 根据数据包QoS的不同,定义一个输出端口数为9的分类器。优先级调度组件PrioSched采用时间片调度方式。同时,定义了9个大小为100的队列,最后一个队列处理其他的数据包。

27、4. 测试结果 1) Client数据包发送顺序如下图所示: 2) Router1从优先级队列中读出数据包的顺序如下图所示: 对比以上数据包顺序,可以发现,产生数据包的优先级是从大变化到小,而通过优先级队列的调度,从队列中读出的数据包的优先级从小变化到大。由于对每秒读出各队列的数据包数量进行了限制,因此不会有产生低优先级被饿死的现象。 5. 结果总结 (四)标签流按优先级分别进行限速功能测试 1. 实验拓扑图 1) 实验测试方法 针对不同的优先级,设置RateLimit组件不同的参数以达到限速的目的,报文由发送方产生并在一秒钟之内发送200个报文给接收方,接收方接收

28、时进行基于优先级的限速,并将结果进行打印。 2. 配置文件 a) 报文发送端 FastPSPSource(200,200, 128, 00:0c:29:34:3e:ad, 0x800a000a, 2345,00:0C:29:eb:05:0f,0x810a000a,2346) -> ToDevice(eth1); b) 报文接收端 :: Classifier(13/0041, 13/0042, 13/0043, 13/0044, 13/0045, 13/0046, 13/0047, 13/0048, -); queue1 :: Queue(100); queue2 :: Que

29、ue(100); queue3 :: Queue(100); queue4 :: Queue(100); queue5 :: Queue(100); queue6 :: Queue(100); queue7 :: Queue(100); queue8 :: Queue(100); queue9 :: Queue(100); ps :: PrioSched; FromDevice(eth1) -> c; c[0]-> queue1 ->Print("enter 0")->RateLimit(5)-> ps; c[1]-> queue2 ->Print("enter

30、1")-> RateLimit(4) -> [1]ps; c[2]-> queue3 -> RateLimit(3) ->Print("enter 2")-> [2]ps; c[3]-> queue4 -> RateLimit(2) ->Print("enter 3")-> [3]ps; c[4]-> queue5 -> RateLimit(1) ->Print("enter 4")-> [4]ps; c[5]-> queue6 -> RateLimit(1) ->Print("enter 5")-> [5]ps; c[6]-> queue7 -> RateLimit(1) ->Pr

31、int("enter 6")-> [6]ps; c[7]-> queue8 -> RateLimit(1) ->Print("enter 7")-> [7]ps; c[8]-> queue9 -> RateLimit(0) ->Print("enter 8")-> [8]ps; ps -> Discard; 3. 测试结果 a) 将所有优先级速率设为1(即一秒钟接收一个报文)的情况时,结果如下: 这样的限速结果等同于一个纯优先级队列。 b) 将最高优先级(0)速率设为5,然后低优先级递减的情况下,结果如图所示: 由于发送与接收是同时进行的,所以结果看起来比较散乱,但是还是可以发现存在着明显的优先级关系以及最多存在最高优先级连续的5个报文,这说明限速过程是有效的 。 4. 结果总结 四、实验分工 时间 主要内容 参与人 负责人

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服