首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Linux fq_codel中,什么是单独的流?

在Linux fq_codel中,什么是单独的流?
EN

Stack Overflow用户
提问于 2016-01-26 09:37:21
回答 2查看 751关注 0票数 10

我正在建立一个概念的证明,以控制终端端(客户端)的入口流量:

代码语言:javascript
复制
eth0 -> ifb0 -> htb -> filter by ip -> htb rate -> fq_codel+ecn

我有两个源ips的具体程序,我想节流。该程序打开了大量tcp连接(下载,从而进入节流),我希望限制它使用(已完成)的总入口带宽,并在连接到同一个ip地址之间进行公平的调度(这个问题)。

最后有一个附加速率的桶和一个fq_codel实例。

我让它起作用了,但我有一些问题:

  • codel是否每个协议都有单独的队列(tcp对udp)?
  • 每个源ip是否有单独的队列?
  • codel是否每个tcp连接都有单独的队列?
  • 我必须手动分离/标记流吗?

根据互联网的研究流程id是“哈希的五元组”,问题是,包的哪些元素是五元组的一部分?是否包括源端口和目标端口?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-05 08:07:42

Per http://mdh.diva-portal.org/smash/get/diva2:754020/FULLTEXT01.pdf (某人的PhD论文):

流通过散列将一个5元组值与数据包(默认为src/dest端口/ip和协议)连同一个随机数分开。

除了默认的位之外,这是显而易见的。

票数 0
EN

Stack Overflow用户

发布于 2016-01-27 15:36:36

至少在默认情况下,源端口和目标端口都包括在内:

dissector.c#L655

代码语言:javascript
复制
655 /**
656  * __skb_get_hash: calculate a flow hash
657  * @skb: sk_buff to calculate flow hash from
658  *
659  * This function calculates a flow hash based on src/dst addresses
660  * and src/dst port numbers.  Sets hash in skb to non-zero hash value
661  * on success, zero indicates no valid hash.  Also, sets l4_hash in skb
662  * if hash is a canonical 4-tuple hash over transport ports.
663  */
664 void __skb_get_hash(struct sk_buff *skb)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35010739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档