Linux TCP 스택이 내 애플리케이션에 데이터를 전달하지 않습니다.

Linux TCP 스택이 내 애플리케이션에 데이터를 전달하지 않습니다.

컬을 사용하여 HTTP 요청을 보내고 있는데 컬 애플리케이션이 응답을 받지 못합니다. tcpdump를 사용하여 디버깅을 시도한 결과 원격 서버가 데이터(HTTP 302 발견)로 응답하고 있지만 내 컬 애플리케이션이 Linux tcp 스택에서 해당 데이터를 가져오지 못하는 것을 발견했습니다.

내 컬 요청은 다음과 같습니다curl -v --max-redirs 10 http://8.8.8.8:85 -L

About to connect() to 8.8.8.8 port 85 (#0)
 Trying 8.8.8.8... connected
 Connected to 8.8.8.8 (8.8.8.8) port 85 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.16.2.3 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: 8.8.8.8:85
> Accept: */*
>

여기에 정지되어 서버로부터 데이터를 기다리고 있습니다.

추적 파일을 복사했습니다.폴리카보네이트 파일

패킷에 문제가 있거나 데이터가 삭제되는 이유를 이해하기 위해 TCP 스택을 디버깅하는 방법이 있으면 알려 주시기 바랍니다. Wireshark wrt 체크섬 및 기타 매개변수에서는 괜찮아 보이지만.

답변1

추적을 주의 깊게 비교하여 문제를 발견했습니다. 중간에 잘못된 프록시 서버가 있어 데이터 길이와 승인 번호가 잘못 일치합니다.

감사해요

관련 정보