에 런타임에 수신 버퍼 크기를 지정, 다음 명령을 사용하여, UDP 말 런타임에 UDP 소켓 당 수신 버퍼 크기를 지정하여 시스템의 기본값을 재정의하는 응용 프로그램 (예 : c
)의 경우?하나는 시스템의 기본 네트워크 패킷에 대한 수신 버퍼 크기를 지정할 수 있습니다, UDP는 리눅스에서 리눅스
26
A
답변
28
기본값에서 값을 늘릴 수는 있지만 최대 값을 초과하여 값을 늘릴 수는 없습니다. SO_RCVBUF
옵션 변경 setsockopt
을 사용하여이 휴대용 해결책이
int n = 1024 * 1024;
if (setsockopt(socket, SOL_SOCKET, SO_RCVBUF, &n, sizeof(n)) == -1) {
// deal with failure, or ignore if you can live with the default size
}
참고; 수신 버퍼 크기를 증가시키기위한 POSIX 플랫폼에서 작동해야합니다. Linux는로드를 기준으로 수신 버퍼 크기를 자동으로 조정하는 현재 잠시 동안 autotuning을 가지고 있습니다 (2.6.7 이후 및 reasonable maximum buffer sizes부터 2.6.17까지). 자동 튜닝이있는 커널에서는 setsockopt
을 사용하여 수신 버퍼 크기를 설정하지 않는 것이 좋습니다. 그러면 커널의 자동 튜닝이 비활성화됩니다. 그러나 다른 플랫폼에서는 setsockopt
을 사용하여 버퍼 크기를 조정할 수 있습니다.
관련 문제
- 1. 패킷에 이상한 문자가 있습니다.
- 2. 소켓 수신 버퍼 크기
- 3. 리눅스 시스템의 "복사본"만들기
- 4. UDP는 데이터
- 5. 원시 소켓 수신 버퍼
- 6. 리눅스에서 리눅스 배포판의 이름을 찾으십시오
- 7. 발신 UDP는 파이썬으로 스니퍼합니까?
- 8. Java는 나가는 네트워크 패킷에 수동적으로 데이터를 추가 할 수 있습니까?
- 9. C# 네트워크 프로그래밍 - 수신
- 10. flex arraycollection - arraycollection의 크기를 지정할 수 있습니까?
- 11. C# 소켓 수신 버퍼 크기 비용
- 12. 리눅스 네트워크 응용 프로그램에 대한 대기 시간이 높음
- 13. JVM (또는 IDE)이 사용할 네트워크 인터페이스를 지정할 수 있습니까
- 14. 리눅스에서 리눅스 기반 사용자 인증
- 15. 리눅스 커널 버퍼 메모리가 0입니다
- 16. 리눅스 무선 네트워크 테스트 베드
- 17. 플러시 통신 처리 버퍼 수신?
- 18. 하나는 fedora10 리눅스 용 rpm을 빌드하는 방법을 설명 할 수 있습니다
- 19. 어떻게 소켓 UDP 아래에 버퍼 크기를 설정할 수 있습니까?
- 20. 리눅스 환경에서 실행중인 PHP의 Windows 네트워크 드라이브
- 21. 리눅스에서 윈도우의 해상도와 시스템의 해상도를 프로그래밍 방식으로 얻는 방법은 무엇입니까?
- 22. 리눅스 : 페이지 오류 및 네트워크 파일 시스템
- 23. 리눅스에서 X를 사용하는 시스템의 키보드 후크
- 24. 티켓 시스템의 기본 인터페이스
- 25. 리눅스 프레임 버퍼 용 윈도우 미러 드라이버
- 26. jquery 탭의 형식을 지정할 수 있습니다.
- 27. 리눅스에서 원격 디버깅에 대한 도움말
- 28. 리눅스 커널 - 버퍼 헤드로 넘어 가기
- 29. 리눅스 사용자의 네트워크 서비스에 대한 액세스를 차단하는 경우
- 30. 인증 시스템의 기본 옵션은 무엇입니까?
단지 내가 찾고있는 것 : 작은 값으로 버퍼 크기를 지정하면 정적 일까? 아니면 트래픽 압력을 처리하기 위해 버퍼의 크기를 동적으로 조정할 것인가? –
리눅스 TCP 자동 튜닝에 대한 답변을 조금 더 넓혔습니다. 리눅스에서 자동 튜닝이 활성화되면'setsockopt'를 사용하여 버퍼 크기를 조정하면 안됩니다. 그러나 다른 시스템에서는 여전히 원할 수 있습니다. –
자동 튜닝은 TCP에만 적용되거나 TCP와 UDP 모두에 적용됩니까? – kumar