在POX中操作数据包

标签(空格分隔): 博客 SDN


想在SDN控制器中做点事情,必须要能够解析上来的packet,在POX中利用pox.lib.packet中的组件很方便,重点是熟悉各个协议的字段。POX文档 POX Wiki 相对比较完善,值得好好看看。

各个协议类继承了packet_base, 里面的find 方法很实用,在解析packet的时候, find(‘protocol’)就会解析得到对应协议的包。

解析到传输层后的payload类型是str,我们可以探测里面的内容,但是长度不一定是整个packet(可以修改)。

下面是我解析UDP包的过程,得到里面的内容之后,就可以对应设计自己的策略。

def spy_udp_packet(self, packet):ip = packet.find('ipv4')if ip is None:returnlog.debug('protocol={},srcip={},dstip={}'.format(ip.protocol, ip.srcip, ip.dstip))# we only care about UDP packetudp_packet = ip.find('udp')if udp_packet is None:return log.debug('srcport={},dstport={}'.format(udp_packet.srcport, udp_packet.dstport))udp_payload = udp_packet.payload # The payload include a '\n' , and its type is <type 'str'>log.debug('udp playload(len={}): {},type={}'.format(len(udp_payload), str(udp_payload), type(udp_payload)))

在POX中操作数据包相关推荐

  1. pox 中 openflow.webservice 组建的学习与使用

    Openflow的一个简单JSON-RPC-ish web service交互式接口,由of_service信息服务派生而来,依赖于webcore组件.可以使用HTTP POST方式发送JSON进行访 ...

  2. java中包的_Java中的包

    包:定义包用package关键字. 1:对类文件进行分类管理. 2:给类文件提供多层名称空间. 如果生成的包不在当前目录下,需要最好执行classpath,将包所在父目录定义到classpath变量中 ...

  3. R语言计算F1评估指标实战:F1 score、使用R中caret包中的confusionMatrix()函数为给定的logistic回归模型计算F1得分(和其他指标)

    R语言计算F1评估指标实战:F1 score.使用R中caret包中的confusionMatrix()函数为给定的logistic回归模型计算F1得分(和其他指标) 目录

  4. Linux 中RPM包的安装

    Linux 中RPM包的安装 在linux的使用过程中,会用到各种各样的服务,所以就会安装许多软件包. 所以就总结了下边的两种安装方式: 1. 二进制安装 软件包的安装及相关命令: rpm -ivh ...

  5. clisp语言中的包

    1. 包简介 clisp中的包就像一个名字空间一样,可在包中定义变量.函数等 包的另一个作用分离不同功能的模块代码组织. 包具有导入导出的概念,有特定关键字实现这个功能. make-package 包 ...

  6. [跟我学UML] UML包图中的包引入和包合并

    缩略语     UIS     UML Infrastructure Specification   UML基础结构规范     UML    Unifed Modeling Language     ...

  7. [跟我学UML] UML包图中的包和命名空间

    本文基于UML规范,介绍了包图中的包和命名空间.此外,通过举例来帮助读者加深理解. ...请打开附件阅读全文. 转载于:https://blog.51cto.com/yunli/186628

  8. 在ASP.NET 2.0中操作数据教程系列

    在ASP.NET 2.0中操作数据教程系列 Scott Mitchell最近完成了为 www.asp.net 网站撰写的<在ASP.NET 2.0中操作数据 (Working with Data ...

  9. 解决 .net core 中 nuget 包版本冲突问题

    解决 .net core 中 nuget 包版本冲突问题 参考文章: (1)解决 .net core 中 nuget 包版本冲突问题 (2)https://www.cnblogs.com/dudu/p ...

最新文章

  1. R语言二项分布函数Binomial Distribution(dbinom, pbinom, qbinom rbinom)实战
  2. 鸿蒙系统方舟运行时,方舟编译器立功!第三方App已经落地,距离鸿蒙系统还会远吗?...
  3. Android-Spinner下拉列表Demo
  4. python小白-day6 ConfigParser模块
  5. new 实例化对象是啥意思_前端经典面试题解密:JS的new关键字都干了什么?
  6. AI让边缘更智能 边缘让AI无处不在
  7. JEECG 3.7 新装亮相,移动APP发布
  8. TensorFlow (RNN)深度学习 双向LSTM(BiLSTM)+CRF 实现 sequence labeling 序列标注问题 源码下载...
  9. JavaScript进制之间的转换
  10. 没有任何匹配: mod_auth_mysql 阿里云_文案丨网易云让人感触良多的文案
  11. JavaScript 深入理解作用域
  12. lammps教程:minimize命令使用详解
  13. wxpython如何分开界面和运行代码_wxpython笔记:wxpython的界面布局方式(一)
  14. KNN分类USPS, USI sonar及USI iris
  15. 简单分析2022智能家居现状的优缺点
  16. 多元统计分析 多元线性回归 python代码实现 简单线性回归
  17. epub格式的电子书
  18. 一位宝石爱好者的零起点建站攻略
  19. xamarin其实也是一个鸡肋
  20. Linux mint 双硬盘,记一次装机——笔记本UEFI双硬盘(SSD+机械)双系统(Win10+Linux Mint)...

热门文章

  1. cvCopy和 cvCloneImage
  2. python 花式索引
  3. 毕业设计 stm32厨房环境检测系统 - 物联网 嵌入式 单片机
  4. Python 判断今天是今年的第几天?
  5. 新网域名管理后台介绍
  6. 用ftp上传服务器文件大小,ftp上传服务器文件大小
  7. 神经机器翻译中的关键技术
  8. 程序员鼓励师,六年前昙花一现的职业,现在居然还存在?
  9. 实录|三星Gear VR核心技术介绍
  10. MATLAB mux demux