2012-06-03 2 views
1

HttpWebRequest를 사용하여 파일을 업로드하면 요청 스트림에 대한 처음 두 번의 쓰기가 거의 즉시 완료됩니다. 나는 어떤 종류의 버퍼링이 일어나서 비활성화되었으므로 내가 무효로 만들었을 것이라고 생각했다.HttpWebRequest 처음 두 개의 쓰기가 거의 즉시 발생합니다. 이유가 무엇입니까?

그러나 아무런 차이가 없다.

마지막으로 10 개의 쓰기 속도를 평균화하여 업로드 속도를 측정하기 때문에 짜증이났습니다. 처음에는 내 응용 프로그램이 매우 빠른 속도를 보이고 다시 50kbps 정도로 떨어졌습니다.

첫 번째 쓰기부터 속도를 측정 할 수 있다면 좋을 것입니다.

아이디어가 있으십니까?

답변

1

TCP 스택은 응용 프로그램의 초기 쓰기 창을 실제로 빠르게 가져옵니다. 백그라운드에서 데이터를 보냅니다 (즉시 수락 한 후).

AllowWriteStreamBuffering은 버퍼되지 않도록 지시합니다. TCP가 무엇을해야하는지 알려주지 않습니다.

0

USR이 맞습니다.

또한 TCP가 작동하는 방식과 관련이있을 수 있음을 유의해야합니다.

천천히 속도를 다시 올리면 네트워크 문제를 해결할 수 있도록 초기 팩을 다시 전송할 수 있었고, 배송 시간을 줄였습니다.

당신이 사용하는 TCP 버전이나 네트워크 상태를 모르더라도 나는 단지 이것을 추측 할 수 있습니다.

관련 문제