Malformed Packet PNG排查分析
Posted slyy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Malformed Packet PNG排查分析相关的知识,希望对你有一定的参考价值。
1、问题描述:
接到开发工程说,图片时而好,时而坏。怀疑是网络三角传输模式问题,或者是nginx配置问题。
2、环境拓扑图:
3、这是Nginx处抓报文信息:HTTP和Porttable Network Graphics
Malformed Packet PNG
百度搜索翻译软件翻译的意思:“格式错误的数据包PNG”
4、抓包反映出来的问题
机顶盒端请求jpeg图片,服务端收到jpeg请求后,响应png图片,经由Nginx将图片发送到客户端,完成屏幕图片加载。当PNG图片传输完成后,Nginx的TCP发送TCP的Flag:Fin ack结束TCP连接,客户端直接SYN:RST,直接报数据包格式错误。然后丢弃数据包,再次与Nginx建立新TCP连接,获取图片数据。。。。。。。导致电视屏幕图片加载失败。
5、问题分析:
PNG图片编码和解码过程:下图
6、PNG国际标准
PNG签名
PNG数据流的前八个字节始终包含以下(十进制)值:
137 80 78 71 13 10 26 10
根据组块中前面的字节计算的四字节CRC(循环冗余码),包括组块类型字段和组块数据字段,但不包括长度字段。CRC可用于检查数据是否损坏。CRC始终存在,即使对于不包含数据的块也是如此。
PNG签名不匹配,CRC不匹配或意外的流结束,都表示数据流已损坏,可能被视为致命错误。
7、那么造成机顶盒发送RST错误原因,就是PNG收到所有PNG数据流后,进行CRC校验时,并未收到IEND结束块,请求图片格式收到的格式不匹配,致使应用程序发送异常错误信息RST。
8、解决方法:将服务器的图片格式改成请求图片格式就行,比如:请求PNG就就响应PNG图片,请求JPEG就响应JEPG图片等等
以上是关于Malformed Packet PNG排查分析的主要内容,如果未能解决你的问题,请参考以下文章
ERROR: 9-patch image C:... esdrawableappwidget.9.png malformed. Frame pixels must be either soli(示例代
Cisco Packet Tracer 6.0 配置终端服务器