Manakah batas waktu koneksi TCP default di Windows? Ada kunci registri untuk mengkonfigurasinya atau disetel secara dinamis?
28
Pada Windows nilai dinamis untuk didirikan conections, meskipun default untuk koneksi awal adalah 72 detik. Pengaturan Registry didefinisikan dalam artikel ini:
http://technet.microsoft.com/en-us/library/cc739819(WS.10).aspx
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services: \ Tcpip \ Parameter
TcpInitialRTT : Menentukan pengaturan batas waktu awal untuk koneksi baru. Jumlah ini dalam detik digandakan setiap kali transmisi ulang sebelum penghitungan waktu koneksi habis. Default ke 3.
TcpMaxConnectRetransmissions : Menentukan jumlah pengiriman ulang sebelum waktu koneksi habis. Default ke 5.
TcpMaxDataRetransmissions
ke 16 (standarnya seharusnya 5), tetapi Putty saya masih menjatuhkan koneksi sangat cepat pada pemadaman singkat, sedangkan ssh pada OS X dan jaringan yang sama membuat mereka baik-baik saja. superuser.com/questions/529511/...Biasanya "connect timeout" mengacu pada batas waktu untuk membuat koneksi awal ke host. Dalam banyak sistem (termasuk Windows 7), nilai ini dikonfigurasikan menggunakan pengaturan terpisah dari batas waktu untuk komunikasi yang sedang berlangsung setelah koneksi dibuat. Jawaban ini membahas skenario "koneksi awal" untuk Windows 7, yang berbeda dari XP.
Untuk Windows 7, diperlukan dua hotfix untuk mendukung penyesuaian pengaturan batas waktu koneksi. Pengaturan baru dapat dikonfigurasi dengan perintah 'netsh'.
Perbaikan terbaru # 2786464: Perbaikan terbaru memungkinkan konfigurasi jumlah transmisi ulang SYN maksimum TCP pada Windows 7 atau Windows Server 2008 R2
Perbaikan terbaru # 2472264: Anda tidak dapat menyesuaikan beberapa konfigurasi TCP dengan menggunakan perintah netsh di Windows Server 2008 R2
Dari artikel perbaikan terbaru 2786464:
Perbaikan terbaru pertama menambahkan pengaturan 'MaxSynRetransmissions' yang memungkinkan mengubah pengaturan coba lagi dari nilai default 2. Yang kedua menambahkan pengaturan 'InitialRto' yang memungkinkan mengubah nilai RTO awal dari default 3000 ms (ya, milidetik), tetapi hanya untuk sesuatu yang lebih pendek dari 3000 ms; itu tidak bisa ditingkatkan. Tergantung pada situasi Anda, Anda mungkin hanya memerlukan perbaikan terbaru 'MaxSynRetransmissions'.
Instal kedua perbaikan terbaru, reboot, lalu buka jendela perintah sebagai Administrator. Boot ulang lebih lanjut tidak diperlukan untuk pemanggilan perintah netsh berikutnya.
Catatan: Windows telnet digunakan untuk referensi untuk batas waktu koneksi yang sebenarnya. Itu perlu diinstal secara terpisah, tetapi mudah dilakukan.
Tautan / pujian tambahan:
sumber
TcpInitialRTT dan TcpMaxConnectRetransmisi mungkin tidak ada di Vista dan Windows 2008. Dokumen Microsoft ini tidak menyertakannya. http://download.microsoft.com/download/c/2/6/c26893a6-46c7-4b5c-b287-830216597340/TCPIP_Reg.doc
Dan ini mengatakan setidaknya TcpInitialRTT hilang, meskipun saya tidak tahu seberapa andal itu. http://pul.se/Blog-Post-TCP-IP-Stack-hardening-in-Operating-Systems-mulai-dengan-Windows-Vista_SharePoint-kHPTTCP0WJ5,7zq00hH0wINE
sumber
Jika saya memahami pertanyaan Anda dengan benar, Anda merujuk ke:
TcpTimedWaitDelay
Kunci ini menentukan waktu yang harus dilewati sebelum TCP / IP dapat melepaskan koneksi tertutup dan menggunakan kembali sumber dayanya. Interval antara penutupan dan pelepasan ini dikenal sebagai status TIME_WAIT atau dua kali status segmen maksimum (2MSL). Selama waktu ini, membuka kembali koneksi ke klien dan biaya server lebih sedikit daripada membangun koneksi baru. Dengan mengurangi nilai entri ini, TCP / IP dapat melepaskan koneksi tertutup lebih cepat dan menyediakan lebih banyak sumber daya untuk koneksi baru. Sesuaikan parameter ini jika aplikasi yang sedang berjalan memerlukan rilis cepat, pembuatan koneksi baru, atau penyesuaian karena throughput rendah yang disebabkan oleh beberapa koneksi dalam keadaan TIME_WAIT.
Kunci yang tepat adalah: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Tcpip \ Parameters \ TcpTimedWaitDelay
Anda mungkin tidak menyetelnya jika Anda menggunakan Win2008 atau lebih baru, tetapi standarnya adalah 240 desimal (240 detik atau 4 menit artinya). Anda dapat menambahkan kunci ke registri dengan nilai yang berbeda dan itu akan berlaku setelah reboot (diuji pada Windows Server 2008R2 di lingkungan produksi). Ini adalah nilai yang sangat tinggi mengingat kualitas jaringan modern.
Saya memiliki aplikasi yang secara harfiah kurang dari sebulan yang lalu berjalan di server yang kehabisan jumlah maksimum koneksi Windows dapat mendukung dan membunuh setiap layanan jaringan di server itu secara teratur. 16.000+ koneksi di netstat -a ketika Anda bahkan berhasil RDP ke server. Kami menetapkan nilainya menjadi 30 desimal (30 detik) dan voila, masalah ini terpecahkan - kurang dari 10.000 koneksi secara bersamaan (karena aplikasi ini dengan cepat membuka dan menutupnya) dan tidak ada masalah throughput.
sumber