我正在建立一个概念的证明,以控制终端端(客户端)的入口流量:
eth0 -> ifb0 -> htb -> filter by ip -> htb rate -> fq_codel+ecn我有两个源ips的具体程序,我想节流。该程序打开了大量tcp连接(下载,从而进入节流),我希望限制它使用(已完成)的总入口带宽,并在连接到同一个ip地址之间进行公平的调度(这个问题)。
最后有一个附加速率的桶和一个fq_codel实例。
我让它起作用了,但我有一些问题:
根据互联网的研究流程id是“哈希的五元组”,问题是,包的哪些元素是五元组的一部分?是否包括源端口和目标端口?
发布于 2016-02-05 08:07:42
Per http://mdh.diva-portal.org/smash/get/diva2:754020/FULLTEXT01.pdf (某人的PhD论文):
流通过散列将一个5元组值与数据包(默认为src/dest端口/ip和协议)连同一个随机数分开。
除了默认的位之外,这是显而易见的。
发布于 2016-01-27 15:36:36
至少在默认情况下,源端口和目标端口都包括在内:
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)https://stackoverflow.com/questions/35010739
复制相似问题