美文网首页程序员@产品
网络层配置对互联网产品影响案例分析

网络层配置对互联网产品影响案例分析

作者: 翔宇FishTalk1024 | 来源:发表于2018-07-03 19:47 被阅读6次

            在互联网产品开发的认知中,普遍认为网络层对应用层透明,不管是APP还是H5,不管是android还是iOS,应用开发均无需关注网络层的配置,这其实是有前提的,那就是应用层对网络层的异常已经具备足够兼容性,否则,“常在河边走,哪能不湿鞋”,网络层配置导致的故障,往往更隐蔽,更难排查。以下正是几年前所负责项目中碰到的一个案例:

        【现象】某业务客户端APP在某地区主页面打不开,但可以登录

        【概念】先普及两个TCP/IP七层协议的概念,MSS(Maxitum Segment Size)和MTU(Maximum Transmission Unit),前者是分片,后者是分段,前者是四层TCP层概念,后者是二层链路层概念,但目的都是一样,为了将数据分段传输并能组装,TCP协议在实现的时候,MSS这个值往往用MTU值代替(MSS=MTU-IP数据包包头的大小 - TCP数据段的包头大小)

        【分析】好,清楚以上概念后,我们看下抓包的情况:

            1、APP与后端系统的协商过程

            2、网络传输中的分片情况

            从后台抓包情况看,客户端发过来的DF值为Don't Fragment,即是说,只要不超过1360,就不会分片(下图第一个框)。但实际情况是,大部分的业务请求包均被分片为256byte(下图第二个框,从这里即可定位是离用户最近的上一跳网络设备(路由器或防火墙)传过来的数据有问题)。

          【解决】定位到问题就好办了,查了离用户最近的网络设备,发现是防火墙配置MTU为被强制为256,需改回默认值

          【思考】请想一下,为什么不会影响到登录流程呢?

    相关文章

      网友评论

        本文标题:网络层配置对互联网产品影响案例分析

        本文链接:https://www.haomeiwen.com/subject/ocomyftx.html