Perbedaan antara net.core.rmem_max dan net.ipv4.tcp_rmem

14

Apa perbedaan antara net.core.rmem_max dan nilai ketiga net.ipv4.tcp_rmem? Yang memiliki prioritas lebih tinggi untuk koneksi tcp?

Untuk dua contoh di bawah ini, apa buffer maksimum untuk koneksi tcp?

Case 1:
sysctl -w net.core.rmem_max=7388608
sysctl -w net.ipv4.tcp_rmem='4096 87380 8388608'

Case 2:
sysctl -w net.core.rmem_max=8388608
sysctl -w net.ipv4.tcp_rmem='4096 87380 7388608'
bydsky
sumber
Prioritas terkait dengan tcp?
Nils 9'15
@Nils Ya, untuk koneksi tcp.
bydsky

Jawaban:

5

Core adalah buffer penerimaan maks keseluruhan, sementara tcp hanya berkaitan dengan protokol itu.

Adapun pertanyaan prioritas: Tampaknya pengaturan tcp akan lebih diutamakan daripada pengaturan max umum, yang agak membingungkan. Pengaturan max tidak berpengaruh pada pengaturan tcp saat ini (hanya diuji pada CentOS 5).

Deskripsi yang lebih tepat adalah: default_max - tapi itu terlalu panjang.

Nils
sumber
1
Penjelasan Anda masuk akal, tetapi ini bertentangan dengan apa yang man tcpdikatakan tentang tcp_rmemnilai maks: the maximum size of the receive buffer used by each TCP socket. This value does not override the global net.core.rmem_max- lihat juga stackoverflow.com/questions/31546835/… . Apakah man tcpsalah?
nh2
@ nh2 Itu bukan pertama kalinya man page salah.
Nils
1
Bagaimana tepatnya Anda mengujinya?
Wildcard
1
@ Kartu Memori Saya mengatur nilai dan membaca nilai lainnya setelah Pengaturan yang pertama
Nils
3
@Nils, hanya membaca nilai-nilai tidak akan memberitahu Anda jika satu menimpa yang lain - Anda harus benar-benar mencoba untuk mendapatkan buffer TCP yang melebihi net.core. [Wmem / rmem] _max buffer untuk menguji overriding tersebut.
Jordan Pilat