#!/bin/bash #脚本文件名:tc2 ##################################################################### #################### #用TC(Traffic Control) 解决 ADSL 宽带速度技术 Ver. e # ##################################################################### #################### #此脚本经过实验通过,更多的信息请参阅 #tc+iptables+HTB+SFQ ## ADSL? ADSL (Asymmetric Digital Subscriber Loop ,非对称数字用户环路) #用最简单的话的讲,就是采用上行和下行不对等带宽的基于 ATM 的技术. #举例,我们最快的其中一条 ADSL 带宽是下行 3200Kbit, 上行只有 320Kbit. 带宽通常用 bit 表示.##1、下行 3200K 意味着什么? #因为 1Byte=8Bit ,一个字节由 8个位(bit) 组成,一般用大写 B表示 Byte, 小写 b表示 Bit. #所以 3200K=3200Kbps=3200K bits/s=400K bytes/s. #2、上行 320K 意味着什么? #320K=320Kbps=320K bits/s=40K bytes/s. #就是说,个人所能独享的最大下载和上传速度,整条线路在没任何损耗,最理想的时候,#下载只有 400K bytes/s, 上传只有最大 40K bytes/s 的上传网速. #这些都是理想值,但现实总是残酷的,,何况内部网有几十台#电脑一起疯狂上网.## 上传速度对下载的影响#(1)TCP/IP 协议规定,每一個封包,都需要有 acknowledge 讯息的回传,也就是说,传输的资料, #需要有一个收到资料的讯息回复,才能决定后面的传输速度,並决定是否重新传输遗失#的资料。上行的带宽一部分就是用來传输這些 acknowledge( 确认)資料模?鄙闲懈涸毓?#大的时候,就会影响 acknowledge 资料的传送速度,并进而影响到下载速度。这对非对称#数字环路也就是 ADSL 这种上行带宽远小于下载带宽的连接来说影响尤为明显。#(2) 试验证明,当上传满载时,下载速度变为原来速度的 40%,(包括 ftp #上传,发邮件smtp), 如果较大,一个人的通讯量已经令整条ads l变得趋向饱和, 那么所有的数据# ftp 上载文件,#或发送大邮件的时候,整个网速变得很慢的原因。## ADSL 速度之道#1. 为解决这些速度问题,我们按照数据流和 adsl 的特点,对经过线路的数据进行了有规则的分流.#把本来在 adsl modem 上的瓶颈转移到我们 linux 路由器上,可以把带宽控制的比adsl modem 上的小一点, #这样我们就可以方便的用 tc技术对经过的数据进行分流和控制. #我们的想象就象马路上的车道一样,有高速道,还有小车道, syn,ack,icmp 等走#高速道,需要大量传输的 ftp-data,smtp 等走大车道,不能让它堵塞整条马路. 各行其道.#2. linux 下的 TC(Traffic Control) ,一定会有明显的效果.#tc 和iptables 结合是最好的简单运用的结合方法. #我们设置过滤器以便用 iptables 对数据包进行分类,因为 iptables 更灵活,而且你还可以为每个规则设# 用mangle 链来 mark 数据包,告诉了内核,数据包会有一个特定的 FWMARK 标记值(hanlde xfw) , #表明它应该送给哪个类(classid x:x), 而prio 是优先值,表明哪些重要数据应该优先通过哪个通道.#首先选择队列,cb q和htb是不错的选择,经过实验,ht b更为好用,所以以下脚本采用 htb 来处理#3. 一般系统默认的是 fifo 的先进先出队列,就是说数据包按照先来先处理的原则,如果有一个大的数#据包在前面,#那么后面的包只能等前面的发完后才能接着发了,这样就算后面即使是一个小小的 ack 包, #也要等待了,这样上传就影响了下载,就算你有很大的下载带宽也无能为力. #HTB(Hierarchical Token Bucket, 分层的令牌桶) #
『shell』tc iptables HTB SFQ (backup)^_^ 来自淘豆网m.daumloan.com转载请标明出处.