답변1
이 증상은 클라이언트측 수신 처리 병목 현상이 있음을 명확하게 나타냅니다.
추적은 클라이언트 네트워크 스택(LwIP)의 수신 버퍼가 채워지고 있음을 보여줍니다. 특히 수신 버퍼가 완전히 채워지고 " ZeroWindow"는 클라이언트에서 서버로 전송되어 데이터 전송을 중지하도록 요청합니다.
이는 일반적으로 소켓에서 읽는 애플리케이션이 네트워크 스택이 도착하는 패킷을 따라잡을 수 있을 만큼 빠르게 수신 버퍼를 소모하지 않음을 나타냅니다.
클라이언트의 지연된 ACK와 결합된 서버의 빈번한 재전송은 클라이언트의 조건이 네트워크 스택의 하위 수준 수신 패킷 처리에도 부정적인 영향을 미치고 있음을 시사합니다.
클라이언트 호스트가 내장된 장치라고 언급하셨고, 귀하의 앱이 lwip_read()에서 차단된 것 같다고 언급하셨습니다. 대기 시간은 다른 IO 또는 CPU 리소스 또는 예약 병목 현상으로 인해 읽기 스레드가 파일 전송을 따라잡기에 충분한 CPU 시간을 확보하지 못할 수 있음을 나타냅니다. 그러나 지연된 ACK는 더 광범위한 문제가 있을 수 있음을 시사합니다. 내장된 장치에 대해 자세히 알지 못하면 추가로 문제를 해결하기가 어렵습니다.
LwIP에는 구현에 적용될 수 있는 네트워크 호출 서비스와 관련된 특별한 제약 조건도 있습니다.이 LwIP 함정 페이지.
이 정보가 귀하의 문제를 해결하는 데 도움이 되기를 바랍니다.