ROS解决网页断流现象 (转)
“pppoe-client”接口,将“MAX MTU”和“MAX MRU”都设置成“” /ip firewall mangle
add action=change-mss chain=forward comment=\
"\D0\DE\B8\C4Lan to PPPoe MTU=1472" disabled=no in-interface=lan new-mss=\
out-interface=pppoe1 passthrough=yes protocol=tcp tcp-flags=syn
自用MTU
网页断流,就是说内网TCP传输具有时效性,不能保存过久,包一多路由就负担了,太短就是变连接不上了。游戏的TCP包就不存在这样的问题,因为游戏包小,时时通信,即使被刷新失效,马上也会有的。
网页就不一样的了,有时候发现网页打不开,其它都正常这个就叫网页断流
网页断流几个关系的问题:
8.1.tracking问题
使用本站提供的,保证无问题,一个SYN推荐大家调高一点点为好
/ ip firewall connection tracking
set enabled=yes tcp-syn-sent-timeout=2m30s tcp-syn-received-timeout=2m30s \
tcp-established-timeout=10h tcp-fin-wait-timeout=2m30s \
tcp-close-wait-timeout=2m30s tcp-last-ack-timeout=2m30s \
tcp-time-wait-timeout=2m30s tcp-close-timeout=30s udp-timeout=2m30s \
udp-stream-timeout=6m icmp-timeout=2m30s generic-timeout=20m \
tcp-syncookie=yes
8.2.防火墙问题 防火墙把TCP3129-3198给禁用了 删除31XX一系列规则
8.3.Queue Tree 限制线程问题
这里说明下,我们只限制速度,不限制线程数为好
8.4.修改MSS值
最近发现很多关于MSS值的问题。我刚装上ROS的时候也是遇到这样的问题(我用的是pppoe-client+NAT方式),主要表现在打开一部分国内网站(比如淘宝)和大部分国外网站(比如yahoo和Microsoft),打开这些网页的速度慢得出奇,基本上打不开。而其它的就用则没有什么不正常。开始我也想到了是MSS设置的问题,但是按照很多人说的“将MSS值改成1400、1440、1480等等”都不起作用。最后打到一篇文章,说是DSL方式MTU值默认是“1492”(不是MSS值)。这才解决了问题:
打开winbox,在PPP中选择你添加的“pppoe-client”接口,将“MAX MTU”和“MAX MRU”都设置成“1492”,然后在“IP-firewall-mangle”中添加一条改变默认MSS值的规则:general选项里:chain:forword;protocol:6(tcp); Advanced选项里面:tcp
flags:syn; Action选项里面:action:change mss;New tcp mss:1440 。
MTU,相信大家都很了解的。那么MSS就是属于MTU中的一部分。MSS=MTU-40。具体的请到百度搜下吧。
网吧,50M电信,200台机器,路由ROS,限速BURST 10M、MAX 2M、TIME 20秒。问题是打开QQ空间时,要等一下才可以。按照速度来算的话,我这网吧的速度已经更快的了,空间应该是瞬间就打开,才是对的。
那么在网速够快的前提下,打开空间却慢,这时候第一个想到的就是MTU的问题。举个简单的例子:
A机通过B机向C机发送数据,MTU分别为:A-1472、B-1440、C-1400。那么就可以看到了,A-B-C传输入数据时,MTU值不同,这时候就要取最小值,因为,要把大包分为小包,进行重组。问题就是在这了。
我们要找到一个合适的MTU值,即将MSS修改成一个合适的值。这个值,我们可以通过PING来获取:
ping qzone.qq.com -f -l 1500 会返回:Packet needs to be fragmented but DF set.就表明没有通。继续
ping qzone.qq.com -f -l 1496 返回:Packet needs to be fragmented but DF set. 再继续,1500-1496是以每次减4来算的。
我这边一直到1472才通的。如:
C:\>ping qzone.qq.com -f -l 1472
Pinging qzone.qq.com [58.61.166.85] with 1472 bytes of data:
Reply from 58.61.166.85: bytes=1472 time=41ms TTL=54
Reply from 58.61.166.85: bytes=1472 time=41ms TTL=54
Reply from 58.61.166.85: bytes=1472 time=41ms TTL=54
Reply from 58.61.166.85: bytes=1472 time=41ms TTL=54
Ping statistics for 58.61.166.85:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 41ms, Maximum = 41ms, Average = 41ms
这样的话,我这边的MSS值就改为1472。在ROS里添加 IP-FIREWALL-MANGLE
连接追踪为 nat 地址转换提供每条 TCP/UDP 连接的转换状态跟踪,提供了连接超时( timeout)参数, 当在指定的超时时间过后, 相应的条目将会从连接状态列表中删除。 下面是 tracking 的配置,在 RouterOS 6.0 后开始新增 FastPath 功能, Enabled 由原来的双选,变为 auto、 no 和 yes:
属性描述
count-curent (只读: 整数) – 在连接状态列表中记录的当前连接数
count-max (只读: 整数) – 取决于总内存量的连接状态列表,自动计算出最大连接数
enable (yes | no|auto; 默认: auto|yes) –允许或禁止连接追踪, nat 被使用的情况下必须开启;根据硬件平台不同,
x86 不具备 Fastpath,默认是 yes,而 RouterBOARD 具备 Fastpath 功能,默认是 auto。
generic-timeout (时间; 默认: 10m) – 连接列表中追踪既非 TCP 又非 UDP 包的条目的最大时间量将会在看到匹配此
条目最后一个包之后存活
icmp-timeout (时间; 默认: 10s) – 连接追踪条目将在看到 ICMP 请求后存活最的大时间量
tcp-close-timeout (时间; 默认: 10s) – TCP 连接追踪条目在看到连接复位请求( RST)或来自连接释放初始化机连接
终端请求确认通知( ACK)之后存活的最大时间
tcp-close-wait-timeout (时间; 默认: 10s) – 当来自应答器的终端请求( FIN)之后连接追踪条目存活的最大时间
tcp-established-timeout (时间; 默认: 1d) – 当来自连接初始化机的确认通知后连接追踪条目存活的最大时间
tcp-fin-wait-timeout (时间; 默认: 10s) – 当来自连接释放初始化机的连接终端请求( FIN)后存后连接追踪条目存活
的最大时间
tcp-syn-received-timeout (时间; 默认: 1m) – 当匹配连接请求( SYN)之后连接追踪条目存活的最大时间
tcp-syn-sent-timeout (时间; 默认: 1m) – 当来自连接初始化机的连接请求( SYN)后连接追踪条目存活的最大时间
tcp-time-wait-timeout (时间; 默认: 10s) – 当紧随连接请求( SYN)的连接终端请求( FIN)之后或在看到来自连接
释放初始化机的其他终端请求( FIN)之后连接追踪条目存活的最大时间
udp-timeout (时间; 默认: 10s) – 当匹配此条目的最后一个包之后连接追踪条目存活的最大时间
udp-stream-timeout (时间; 默认: 3m) – 在匹配此连接(连接追踪条目是确定的)的最后一个包的响应被看到之后连
接追踪条目存活的最大时间。它用于增加对 H323, VoIP 等连接的超时。
ROS解决网页断流现象 (转)的更多相关文章
- URLRedirector 解决网页上无法访问 google CDN 的问题(fonts、ajax、themes、apis等)
URLRedirector 解决网页上无法访问 google CDN 的问题(fonts.ajax.themes.apis等) 由于某些原因,在访问国外的网站时有时候会特别慢,像 stackoverf ...
- 利用Readability解决网页正文提取问题
分享: 利用Readability解决网页正文提取问题 做数据抓取和分析的各位亲们, 有没有遇到下面的难题呢? - 如何从各式各样的网页中提取正文!? 虽然可以用SS为各种网站写脚本做解析, 但是 ...
- 解决网页中Waiting (TTFB)数据加载过慢的问题
解决网页中Waiting (TTFB)数据加载过慢的问题 最近做了一个网页,在本地测试良好,数据可以得到很快的反馈,但是当部署到云端Linux上时候,就会出现加载缓慢的问题.本地测试,得到数据大概3s ...
- 深入解析Mysql中事务的四大隔离级别及其所解决的读现象
本文详细介绍四种事务隔离级别,并通过举例的方式说明不同的级别能解决什么样的读现象.并且介绍了在关系型数据库中不同的隔离级别的实现原理. 在DBMS中,事务保证了一个操作序列可以全部都执行或者全部都不执 ...
- delphi 7中使用idhttp抓取网页 解决假死现象
在delphi 7中使用idhttp抓取网页,造成窗口无反应的假死状态.通过搜索获得两种方法. 1.写在线程中,但是调用比较麻烦 2.使用delphi 提供的idantifreeze(必须安装indy ...
- delphi 7中使用idhttp抓取网页 解决假死现象(使用TIdAntiFreezeControl控件)
在delphi 7中使用idhttp抓取网页,造成窗口无反应的假死状态.通过搜索获得两种方法. 1.写在线程中,但是调用比较麻烦 2.使用delphi 提供的idantifreeze(必须安装indy ...
- 分享: 利用Readability解决网页正文提取问题
原文:http://www.cnblogs.com/iamzyf/p/3529740.html 做数据抓取和分析的各位亲们, 有没有遇到下面的难题呢? - 如何从各式各样的网页中提取正文!? 虽然可以 ...
- js解决网页无法复制文字的问题
碰到有些网站,站长禁止了右键,或者用其它方法不让复制网页的文字,弄的好烦人啊,虽然这是小把戏,但多多少少造成了一些不方便,前几天发现这个解决不能复制问题的小方法,一行代码即搞定,就是下面这行: jav ...
- Java、C#双语版HttpHelper类(解决网页抓取乱码问题)
在做一些需要抓取网页的项目时,经常性的遇到乱码问题.最省事的做法是去需要抓取的网站看看具体是什么编码,然后采用正确的编码进行解码就OK了,不过总是一个个页面亲自去判断也不是个事儿,尤其是你需要大量抓取 ...
随机推荐
- RUAL1519 Formula 1 【插头DP】
RUAL1519 Formula 1 Background Regardless of the fact, that Vologda could not get rights to hold the ...
- .NET Core/Framework 创建委托以大幅度提高反射调用的性能
都知道反射伤性能,但不得不反射的时候又怎么办呢?当真的被问题逼迫的时候还是能找到解决办法的. 为反射得到的方法创建一个委托,此后调用此委托将能够提高近乎直接调用方法本身的性能.(当然 Emit 也能够 ...
- HTTP 协议小结
本篇博客来自前辈整理资料的学习之作,若有冒犯,敬请谅解!原文博客已删除,转载篇:HTTP协议详解 1,HTTP特点 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于 ...
- 洛谷3354(IOI2005)河流——“承诺”
题目:https://www.luogu.org/problemnew/show/P3354 虽说是几个月前曾经讲过的题,但没有题解而自己(花了两个多小时)A了好高兴!!! 这是一个很好的套路:“承诺 ...
- iOS中Cookie的管理
平常的app开发中只调用Rest Api可能用不到Cookie,但是当要在App中内嵌WebView就有可能要用到.最近用到了这一块的东西,总结一下. Cookie原理 关于cookie的原理简单描述 ...
- 【转载】Leaflet 中文api
L.Map API各种类中的核心部分,用来在页面中创建地图并操纵地图. 使用 example // initialize the map on the "map" div with ...
- 今天使用VS2012遇到一个问题:"链接器工具错误 LNK2026 XXX模块对于 SAFESEH 映像是不安全的"
今天使用VS2012遇到一个问题:"链接器工具错误 LNK2026 XXX模块对于 SAFESEH 映像是不安全的" 解决方法: 1.打开该项目的“属性页”对话框. 2.单击“ ...
- 杂项:Vue.js
ylbtech-杂项:Vue.js Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据 ...
- ngui自适应
增加UIROOT using UnityEngine; namespace Com.Xyz.UI { [ExecuteInEditMode] [RequireComponent(typeof(UIRo ...
- Php处理时间的函数
1,字符串与时间: 例如 $time = strtotime("2007-3-5"); echo date("Y-m-d H:i:s",$time); 2,当前 ...