防火墙Mangle-修改MSS-从零开始学RouterOS系列08

本章用途:

处理端到端的网络问题,如常见的网页打不开,QQ能上。

网页显示不全,如图片不显示等。

分支互联中的访问问题。

主要理解区域间路由和服务器和客户端的传输过程。

一、应用操作

1.首先说一下如何修改MSS:

进入IP>Firewall>Mangle,点击+号新建一个规则,如下:

然后在高级选项里面:


动作选项


PPPOE的MTU是1480



2.结果对比:

未修改前,SYN请求多少MSS,相应的回包也就是多少的载荷payload

SYN请求

这就是回复的载荷数据大小。



修改1420后,如下三图:

SYN请求:

对应回传的:




二、概念理解:

MTU,Maximum Transmission Unit最大传输单元,工作数据链路层,属于OSI第二层。

IP,Internet Protocol Address互联网协议地址,工作在网络传输层,属于OSI第三层。

TCP,Transmission Control Protocol 传输控制协议,工作在传输层,属于OSI第四层。

UDP,User Datagram Protocol用户数据报协议,工作在传输层,属于OSI第四层。

MSS,Maximum Segment Size,最大报文段长度,是TCP协议一个子项,也是工作在OSI第四层。

MSS=MTU-40      --- 40包含了20字节的IP头和20字节的TCP头

三、TCP中MSS原理通俗理解:

服务器有一个货柜,空箱40T,载重1460T,连带货物刚好也是1500T。,要发给我们!

网络就好比有许多的传送转发站(路由器),连接不同的传送带,有1500T的,有1400T的。

1400T传送带上面的货柜空箱还是40T,但是载重只有1360T。

当服务器的货从1500T的传送带转发到1400T的传送带时候,货柜就要拆分重新装柜,1460T的货物就要分为两个柜,一个装1360T,一个装100T,这明显增加了转发站的工作量,进出都要拆包和重新打包,然后在到我们手上的时候,我们的本地的路由器要把这两个柜重新装成1460T的一个柜发给我们。我们就能看到页面了,原理很完美!

但是这个时候就会导致转发站十分繁忙,因为一次的事情要做两次,所以忙中出错导致没封装完整的事情。

另外经过不同的转发站时候,有些转发站会限制你的PIR速率(Peak Information Rate,峰值信息速率),达到PIR速率直接丢包,这样导致了我们本地路由器收到的货不对板,等待了许久也收到不到剩下的包,所以无法在我们的本地的转发站上面将这些货柜按照相应的顺序装好返给我们,只能丢弃。所以我们就半天都打不开网站页面,最后除了一些小货柜能收到(文字)。

问题来了,TCP不是会重传吗?

是的,TCP会重传,但是服务器端发出的数据给我们就开始等我们说收到了(ACK),但是我们收不到包,没发回复ACK,服务器等了一会,基于使命必达原因给我们重传,我没还是没有收到包,没发回复ACK,第一次等1秒,第二次等2秒,第三次等4秒,一般默认重传15次。如此类推,直到重传超时RTO,切断连接。

RTO在Linux最小为200毫秒,最大120秒,可以在内核中设置该项值。

Router OS也可以在防火墙里面设置连接追踪的时间



四、修改MSS的好处

修改了MSS的大小,就是主动向服务器协商发送给我们路由器的每个包有效载荷是多少,这样可以让数据包在传输路径中可以一次性传送回来给我们,降低我们因为被分片所导致丢包问题,如果丢包的话,也好区分丢分了哪些包。简单来说就是在外部转发路径中尽量减少拆分和封装的流程,只在我们路由器上面重组。


五、为什么只建议修改MSS,不修改MTU

很好的问题,别因为我们在OSI四层中,不是只有TCP协议,还有UDP!

MSS是依赖TCP的,修改了MTU可以降低MSS,同时也会降低我们UDP的传输效率。我们还有许多也是基于UDP协议的,如QQ,IP电话,和视频会议等。

所以我们建议修改MSS而不是MTU,除非你的路由不支持MSS修改。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 10,477评论 0 8
  • # 图解TCP/IP 标签(空格分隔): 2018招聘 --- ##第1章 网络基础知识 ### ### 1.1 ...
    Kai_a3da阅读 5,327评论 0 2
  • 文章首发于个人blog欢迎指正补充,可联系lionsom_lin@qq.com原文地址:《网络是怎样连接的》阅读整...
    lionsom_lin阅读 14,814评论 6 31
  • 1.TCP报头格式 UDP报头格式 TCP报头格式 UDP报头格式 具体的各部分解释看 TCP报文格式详解 - ...
    杰伦哎呦哎呦阅读 7,309评论 0 5
  • title: 网络基础学习总结(1) tags: 网络 categories:笔记 date: 2017-06-1...
    行径行阅读 7,399评论 0 3