美文网首页
关于流量分类和队列调度的思考

关于流量分类和队列调度的思考

作者: XDgbh | 来源:发表于2018-12-05 14:59 被阅读7次

流量收集分类问题

  • 可收集的单条流的特性较少,主要就是从包长度、包到达时间、特殊字段这几个方面扩展。而且为了快速对一条流量进行分类,重点也是使用前若干个数据包的统计特性。
  • 使用一个网关服务器,发送端应用程序要将所有TCP/UDP的目的ip和port都设为这个网关程序,然后所有的流量就都会经过这个网关。问题在于数据包实际的目的地址要如何传过来?放在TCP/UDP包的数据域吗?这样又会造成浪费,每个数据包都携带了32字节实际目的ip地址和16字节实际目的端口。
  • 另一种类似抓包的想法,使用raw socket原始套接字,实现直接从链路层收发数据帧,可收集到更多的流量信息。这种方式就必须要求所有收发数据的流量都会经过此服务器。
    socket(PF_PACKET, type, protocol),其中type字段可取SOCK_RAW或SOCK_DGRAM表示可操作MAC帧头直接从链路层收发数据帧,protocol字段可取ETH_P_IP表示只接收发往目的MAC是本机的IP类型的数据帧。
    ioctl(sockfd, SIOCGIFHWADDR, &eth);此函数可将socket与指定网络接口如eth0绑定,使我们的原始套接字只接收指定接口的数据报文。
  • 网卡从线路上收到信号流,网卡的驱动程序会去检查数据帧开始的前6个字节,即目的主机的MAC地址,如果和自己的网卡地址一致它才会接收这个帧,不符合的一般都是直接无视。然后接收的数据帧会被网络驱动程序分解,IP报文将通过网络协议栈,最后传送到应用程序那里。往上层传递的过程就是一个校验和“剥头”的过程,由协议栈各层去实现。
    以上就是一个大致的抓包过程如果将还带有IP头的IP报文当做存入要调度的队列中的数据节点,就可以获取到每个报文的详细的5元组信息,然后队列调度后还可以正常的将其转发出去。
  • 抓包统计每条流的信息,在达到一定的分类准确率后判为某个类,然后将该流量的所有数据包都存入对应的队列中。再根据队列调度规则来调度各个队列。暂时无法具体分类的流量数据包,先根据当前统计特性大致分到一个队列。

队列调度

  • 首先应该有前面的根据流量特性进行分类,然后才能按规则进行队列调度。

相关文章

  • 关于流量分类和队列调度的思考

    流量收集分类问题 可收集的单条流的特性较少,主要就是从包长度、包到达时间、特殊字段这几个方面扩展。而且为了快速对一...

  • iOS并行开发:从NSOperation和调度队列开始

    iOS并行开发:从NSOperation和调度队列开始 iOS并行开发:从NSOperation和调度队列开始

  • iOS调度队列

    GCD调度队列是执行任务的强大工具。调度队列允许您相对于调度者异步或者同步的执行任意代码块。您能够使用调度队列来执...

  • 操作系统-调度算法

    多核CPU环境下进程的调度算法一般有全局队列调度和局部队列调度两种。( )属于全局队列调度的特征。 A 操作系统为...

  • GCD for Swift

    调度队列(Dispatch Queues) GCD提供了调度队列(Dispatch Queues)来处理被提交的任...

  • (6)分布式系统关键技术:流量与数据调度

    流量调度:不要将流量调度和服务治理混为一谈 (服务治理是流量调度的前提);主要功能;关键技术。 状态数据调度:完整...

  • Z_HPC_作业调度系统

    作业调度系统的发展 作业调度系统的分类 作业调度系统的特性比较 发展: 分类: 特性比较:

  • GCD解析

    死锁(Deadlock) 在串行队列中,当前队列的调度块内(包含嵌套)调用当前队列的同步任务会死锁异步调度块要等自...

  • 2018-06-09

    关于流量池思考(一) 曾经罗胖说过:线上产品没有什么具体分类,本质上我们都是竞争者,都是时间的竞争者。 读了流量池...

  • 调度队列

    作业队列: 进程进入系统,会被加到作业队列,这个队列包含系统所有的进程 就绪队列: 驻留在内存中的、就绪的、等待运...

网友评论

      本文标题:关于流量分类和队列调度的思考

      本文链接:https://www.haomeiwen.com/subject/bpomcqtx.html