pox分析报告.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
pox分析报告

计算机网络也将经历类似计算机操作系统一样的变革。 例如:从左边看出黄色部分是之前计算机的模式,硬件、操作系统和应用由同一厂商开发销售,之后发展成:硬件平台由这么几个厂商生产,例如Intel,IBM等,操作系统有windows,linux等,应用就更多了 现在网络也正处在这样一个发展,变革的趋势下。以前的网络由硬件、操作系统、应用全由生产厂商生产,例如:华为,思科。而现在他们可能也面临着转型,需要网络也在向着:硬件由各个厂商生产,提供统一的接口给 操作系统,人们在操作系统之上开发 适合自身的应用。 计算机网络也将经历类似计算机操作系统一样的变革。 例如:从左边看出黄色部分是之前计算机的模式,硬件、操作系统和应用由同一厂商开发销售,之后发展成:硬件平台由这么几个厂商生产,例如Intel,IBM等,操作系统有windows,linux等,应用就更多了 现在网络也正处在这样一个发展,变革的趋势下。以前的网络由硬件、操作系统、应用全由生产厂商生产,例如:华为,思科。而现在他们可能也面临着转型,需要网络也在向着:硬件由各个厂商生产,提供统一的接口给 操作系统,人们在操作系统之上开发 适合自身的应用。 本页,给出了pox的组成和一个初略的启动过程 Pox组要又内核 和 组件(应用)组成 内核由 1.openflow和of_01组成,从代码上看,是这样的 Openflow主要存储了 用于控制openflow交换机的 驱动程序 Of_01用于 监听交换机的消息 1.函数名 2.处理pox的路径,添加源码pox的文件夹到系统路径,第二行是添加ext文件夹,这个文件夹是用于存储用户自己开发的模块 3.第三部,处理参数 4.第四部分,根据参数启动组件 5.第五:启动of_01,用于监听交换机的事件 6.第六:启动内核 该函数最主要的是最后三部分,后面会尽力分析,还会举两个组件的例子:hub、2层交换机、3层交换机 因为函数太大,copy了主要代码,之前的代码完成的任务:获取组件名,并将组件名存入组件列表中。 1.第一行代码:遍历组件列表,将组件名复制给name变量 2.第二部分代码:处理组件名,得到组件所需参数等 3.第三部:测试组件,如果导入出错,返回false 4.第四部:预处理组件,例如:获得组件的启动函数,代码中的f,就是组件的启动函数指针。还完成一些测试工作:判断启动函数的代码行数是否大于0等 5.第五部:启动组件,f函数中的参数看起来有些奇怪,**参数,这个表示传入的参数是字典,将字典的key和value都传入。 看到这,组件已经启动起来了,回想下,刚刚的图,组件和事件的联系好像还没有建立,所以还需要更深层的看launch()函数的代码 当看到这个地方的时候,我们更希望知道的是:一个事件是如何与组件相交互的 例如:当一个路由器请求的时候,是如何与组件交互的? 1.回顾下刚刚分析的流程,让我们用图例的形式看看 2.先是pox启动函数,调用了boot()函数 3.在boot函数中,先处理了参数,再调用了组件启动函数 4.组件启动函数,先是处理了参数,根据参数得到组件名,根据组件名逐一的启动组件。 1.选择让我们来看看组件启动的代码 2.这里找了一个三层交换机的代码,说明是三层交互机的工作原理 三层交换机工作原理:1.保存通过ARP协议和IP包得到的数据,生成一张表,这张表用于查询 IP地址 映射 MAC地址和端口 2.如果有ARP请求,通过1中生成的表查询它,如果没有则洪范出去 3.从所有的端口发出ARP请求 4.当收到一个IP包的时候,查表得到目标端口,从该端口发出。 3.Launch是启动代码,主要分为两部分: 1)第一部分处理参数 2)第二部分注册了一个什么,参数是,3层交换机这个类 终于看到core字样了,终于进入内核啦 下面让我们第一次看 内核的代码: 看函数的命名,大概能想到这个函数为组件注册了一个什么的东西。 先看第一个函数:这个函数得到了组件的类名,并申明了一个实例,并将组件类名和实例传给了第二个函数 再看第二个函数:先处理参数,再使用组件类名和组件实例注册了一个事件,看起来这时候组件和事件 已经联系起来了,但是再往下看。 最后一个函数:try_waiters()函数用于 把组件挂起,等待调用回调函数 这里的源码就没再继续列出,看说明知道,这个函数通过组件名 申请了一个 事件,并且事件实例开始监听,各个端口是否发生事件。 至此,我

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档