Openwrt 中的Qos方式及原理概述

本文深入探讨了OpenWrt操作系统中的服务质量(QoS)设置,旨在优化家庭或小型办公室的网络流量。内容包括QoS的基本原理、在OpenWrt中配置QoS的步骤以及不同QoS策略如何影响网络性能。通过实施QoS,读者可以更好地管理带宽,确保关键应用如在线会议和游戏的流畅体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                                               ____
User1==============\                                       ___(    )__
         Line_A     \                                    _(           )_
User2===============[ROUTER]·············[ISP]≡≡≡≡≡≡≡≡≡≡(_  Internet  __)
         Line_B     /          Line_X           Line_Z   (_        __)
User3==============/                                       (______)
         Line_C

Line_A, Line_B and Line_C are Gigabit Ethernet
Line_X  phone line using ADSL2+ protocol
Line_Z 10 Gigabit fiber 

We implement QoS at the [ROUTER] WAN interface.

-->-->--[egress queue]-->-->--[interface output]-->-->--Internet
           \    /
            \  /
            QDisc  

1. Drop packets exceeding available bandwidth.
2. Reorder packets currently in the buffer. 

-->-->--[ingress queue]-->--[bridge check]-->-->--intranet
            \    /
             \  /
             QDisc  

1. Drop packets that exceed configured bandwidth ("policing") 
   With TCP => no line congestion
2. No reordering

http://wiki.openwrt.org/doc/howto/packet.scheduler/packet.scheduler.theory

一、我们都知道,网络传输是以包为单位的,发送方在包里添加传输,属性,路由等信息,接收方从包里分理处这些信息,但是对于 一个只有一个wan口但是有很多Lan口的路由器来说,相当于多个车道汇聚成一条车道,可能会造成拥挤,我们把这个路口(路由 设备wan口称作是瓶颈)。

二、Openwrt中维护者两条队列,一个是出队列,缓冲着上行流量的数据包;另一个是入队列,缓冲着下行流量的数据包。对于每一条 队列,Linux内核可以实现管理调度,对于它的配置可以通过tc程序指令实现。

三、为了控制带宽,对于不同的流量,我们有不同的方式。在网络接口中,可以对包实现丢弃, 转发, 排队, 延时和重新排序的操作。
1、对于上行流量,一来我们可以通过丢包来控制发送的速度,或者解决网络阻塞问题。二来我们可以通过重新排序缓冲中的包, 这样可以决定下一个发送的是什么包,以实现给不同的包赋予不同的优先级,使得紧急的事情不会因为带宽拥挤而被低优先 级的数据影响。
2、对于下行流量,我们没有那么多的办法控制带宽,唯一可以做得就是丢包,对于TCP包,由于是面向连接的协议包,丢弃ACK 包可以使得发送方明白发生了网络拥堵从而降低发送速度,但是对于UDP包,什么都不会发生。
小包优先+web优先+2千多条游戏服务器IP优先+游戏爆发+连接数限制 番茄概念QOS脚本 主要概念: 1.小包优先定义: 上传数据包中长度小于128Byte并且状态为ESTABLISHED的数据包 下载数据包中长度小于256Byte并且状态为ESTABLISHED的数据包 这个ESTABLISHED是什么东东呢? 解释:TCP数据包有INVALID,ESTABLISHED,NEW,RELATED,UNTRACKED等状态。 具体解释:http://man.chinaunix.net/network/iptables-tutorial-cn-1.1.19.html#USERLANDSTATES 这个ESTABLISHED指连接已经完全建立的数据包了,而NEW指新建一个连接所使用的第一个数据包。 这样,就排除了那些状态为NEW的小包。 好处:有些人总是热衷于“修改XP最大连接数”来提高BT下载速率。其实这个所谓的“最大连接数”是指“最大并发连接数”, 也就是XP每秒能够发送状态为NEW的数据包,默认值是10。有些垃圾的BT软件将其修改为1000,这样庞大的连接数将会导致 瞬间上传速率非常大,如果将其优先级设置太高,将会导致网络延迟的震荡(一会高一会低)。 PS:“修改XP最大连接数”是无法提高BT下载的速率的,最多可以提高达到最大速率的时间。比如说不修改30秒达到最大速率,修改 后可能10秒就达到最大速率。但是会带来操作系统不稳定,路由器压力增大,蠕虫攻击,网络延迟震荡等不良后果。 微软在IT业混了几十年,从来就不提倡所谓的“修改最大连接数”。 2.正常的web浏览相对于下载BT数据包具有较高的优先级。 3.游戏爆发的定义: 当某个内网IP的速率小于50KB/S的时候,那么该IP的数据包进入“游戏爆发队列”。时间为10秒。 “游戏爆发队列”的优先级仅仅低于“游戏队列” 对于那些只玩游戏不下载的IP有帮助。 4.连接数限制。PS:tcp连接数在ROS各版本均可用,UDP连接数则需在5.X以上支持! 每IP限制TCP连接数100,UDP连接数150,并且对DNS,WEB,QQ等端口例外 不过在此我并未加入在脚本里,大家可以自行添加。 ex: TCP限线程 /ip firewall filter add chain=forward protocol=tcp tcp-flags=syn connection-limit=100,32 action=drop 创奇高手 QQ:550453843 Q群:500人总群 ROS总基地 群号:7217877(拥挤) 新群 创奇网络社区ROS总基地 群号:143322592(推荐) 新群 创奇网络社区ROS总基地 群号:139532314 (推荐) 创奇网络社区|ROS总基地 专注于ROS软路由技术!专注于互联网IT前沿技术!http://bbs.chanki.net 提倡互助分享精神!打造一个集IT资讯,网吧技术,网络技术,资源共享,硬件数码等的一体化交流社区!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值