문제 1. 설명 :
그는 때때로 나쁜, 때로는 좋은 사진 개발 프로젝트를 받았다. 의심 전송 모드 네트워크 삼각 측량 문제, 또는 Nginx의 구성 문제.
2, 환경 토폴로지 :
HTTP 및 Porttable 네트워크 그래픽 : Nginx의 메시지 정보에 잡힌 3,
조작 된 패킷 PNG
바이두 검색 번역 소프트웨어 번역의 의미 : "잘못된 패킷 PNG를"
4, 미묘한 문제에 반영
셋톱 박스 클라이언트 요청 JPEG 이미지는 서버 후 JPEG는 클라이언트, 전체 화면 이미지 로딩에 사진을 보내 Nginx에를 통해 이미지를 PNG로 요청, 응답을받습니다. PNG 이미지 전송이 완료되면, Nginx와의 TCP는 TCP 플래그를 보냅니다 직접 패킷 포맷 오류보고 RST : 핀 ACK 끝 TCP 연결, 클라이언트 직접 SYN합니다. 다시, 패킷을 폐기 사진 데이터를 얻기 위해, Nginx와 가진 새로운 TCP 연결을 설정합니다. . . . . . . TV 화면 이미지 로딩 실패의 원인이됩니다.
5, 문제 분석 :
PNG 이미지 인코딩 및 디코딩 과정 다음 차트
6, PNG 국제 표준
자세한 기사 : https://www.w3.org/TR/PNG/
PNG 서명
데이터 스트림의 PNG 첫 8 바이트는 항상 (십진수)이 포함됩니다 :
137 80 78 71 13 10 26 10
상기 청크 바이트 4 바이트 CRC (순환 중복 코드)에 따라 계산하고, 블록 형 전계 청크 데이터 필드를 포함하지만 않는 길이 필드를 포함한다. CRC는 데이터 손상 여부를 확인하는 데 사용할 수 있습니다. 블록뿐만 아니라 데이터를 포함하지 않더라도 위해 CRC는 항상 존재합니다.
PNG签名不匹配,CRC不匹配或意外的流结束,都表示数据流已损坏,可能被视为致命错误。
7、那么造成机顶盒发送RST错误原因,就是PNG收到所有PNG数据流后,进行CRC校验时,并未收到IEND结束块,请求图片格式收到的格式不匹配,致使应用程序发送异常错误信息RST。
8、解决方法:将服务器的图片格式改成请求图片格式就行,比如:请求PNG就就响应PNG图片,请求JPEG就响应JEPG图片等等