요청 당 대량의 데이터 (~ 1-2 기가)를 전송해야하는 서버가 있습니다. 보낼 각 호출에 대해 권장되는 데이터 양은 얼마입니까? 그게 그렇게 중요한 건가?C에서 보내기위한 권장 청크 크기는 무엇입니까?
2
A
답변
1
TCP/IP 스택은 PATH MTU보다 큰 패킷을 전송하지 않으므로 처리량에 도움이되지 않는 방식으로 보다 작은 패킷을 MTU보다 작게 만들어야합니다. 경로 PTU가 실제로 주어진 연결에 대해 무엇인지를 dsicovering 할 수있는 방법이 없습니다. 따라서 경로 MTU에 대한 모든 고려 사항을 남겨 두십시오.
send()
은 가능한 한 크게 만들 수 있습니다.
0
패킷 크기는 프로토콜의 최대 전송 단위 (MTU)로 제한됩니다. MTU보다 큰 패킷을 보내면 패킷 단편화가 발생합니다.
당신은 어떤 수학 할 수있는: http://www.speedguide.net/articles/mtu-what-difference-does-it-make--111 더 참고 : http://en.wikipedia.org/wiki/Maximum_transmission_unit
그러나를 궁극적으로 나의 제안이다 당신이 충분 목표로하고 당신이 원시 소켓 프로그래밍을하지 않는 운영 체제 네트워크 계층, 그 일을 할 경우 또는 몇 가지 펑키 옵션을 전달하면, OS가 네트워크 버퍼를 가지고 최선을 다할 것입니다.
이 마지막 옵션을 고려하면 socket.send()는 사용자 프로세스 메모리에서 커널의 개인 메모리로 메모리를 전송하는 것 외에는 아무것도 없다. 일반적으로 4KB 인 가상 메모리 페이지 크기 인 http://en.wikipedia.org/wiki/Page_(computer_memory을 초과하지 않아야합니다.
관련 문제
- 1. android 응용 프로그램의 권장 크기는 무엇입니까?
- 2. SqlBulkCopy의 권장 배치 크기는 얼마입니까?
- 3. DSL을 통해 데이터를 전송하기위한 최적의 청크 크기는 무엇입니까
- 4. Transfer-Encoding에서 HTTP 응답의 최대 청크 크기는 얼마입니까?
- 5. 파일을 복사해야하는 크기는 얼마입니까?
- 6. 미디어 쿼리와 함께 사용해야하는 장치/권장 크기는 어느 것입니까?
- 7. CLR에있는 참조의 크기는 무엇입니까
- 8. UNIX에서 페이지 크기는 무엇입니까?
- 9. MongoDB 해시의 크기는 무엇입니까?
- 10. UIModalPresentationFullScreen의 화면 크기는 무엇입니까
- 11. 크기는
- 12. asp.net에서 이메일을 보내기위한 타이머
- 13. . 트랙백을 보내기위한 닷넷 라이브러리
- 14. 청크 크기 문제
- 15. 음소와 청크
- 16. 권장
- 17. CoreLocation 권장 사항은 무엇입니까?
- 18. 권장 서버 사양은 무엇입니까?
- 19. 청크 윈도우에서 읽기 푸른 하늘 Blob
- 20. File.ReadAllLines의 최대 파일 크기는
- 21. Memcached 청크 제한
- 22. 안드로이드에서 SQLite 데이터베이스의 크기는 무엇입니까
- 23. 해시 테이블의 최대 크기는 무엇입니까?
- 24. FileSystemWatcher InternalBufferSize에 적합한 크기는 무엇입니까?
- 25. iPhone 앱에 적합한 크기는 무엇입니까?
- 26. logrotate에서 사용하는 기본 크기는 무엇입니까?
- 27. CSS의 배경 크기는 무엇입니까? 표지 :
- 28. 기본 Google지도 API지도 크기는 무엇입니까?
- 29. Postgres의 최적 트랜잭션 크기는 무엇입니까?
- 30. ipad의 대략적인 빌드 크기는 무엇입니까?
대답은 파일 시스템 블록 크기와 클라이언트와 서버 간의 PMTU와 같은 여러 요소에 따라 달라집니다. PMTU에서 패킷 헤더를 뺀 다음 해당 값보다 작거나 같은 파일 시스템 블록 크기의 최대 배수를 사용하십시오. – cdhowie
실험을하고 더 잘 작동하는 크기를 선택하십시오. – alinsoar
아마도 네트워크 내 조각화를 피하기 위해 MTU 크기와 같거나 그보다 작은 80 %의 크기로 이동하려고합니다. LAN을 통해서만 갈 건가요? 아니면 인터넷을 통해 가고 있습니까? – jedwards