TCP Atur Ulang dan Batas Waktu jeda Load Balancer

Anda dapat menggunakan Load Balancer Standar untuk membuat perilaku aplikasi yang lebih mudah diprediksi untuk skenario Anda dengan mengaktifkan Atur ulang TCP ke Idle untuk aturan tertentu. Perilaku default Load Balancer adalah menghilangkan aliran secara diam-diam saat batas waktu aliran tercapai. Mengaktifkan reset TCP menyebabkan Load Balancer mengirim Reset TCP dua arah (paket RST TCP) pada batas waktu diam untuk memberi tahu titik akhir aplikasi Anda bahwa waktu koneksi habis dan tidak lagi dapat digunakan. Endpoint dapat segera membuat koneksi baru jika diperlukan.

Diagram shows default TCP reset behavior of network nodes.

Reset TCP

Anda mengubah perilaku default ini dan mengaktifkan pengiriman Atur ulang TCP pada batas waktu jeda pada aturan NAT yang masuk, aturan penyeimbangan muatan, dan aturan keluar. Saat diaktifkan per aturan, Load Balancer mengirimkan Reset TCP dua arah (paket RST TCP) ke titik akhir klien dan server pada saat batas waktu diam untuk semua alur yang cocok.

Titik akhir yang menerima paket RST TCP dengan segera menutup soket yang sesuai. Ini memberikan pemberitahuan langsung ke rilis koneksi titik akhir dan komunikasi di masa mendatang pada koneksi TCP yang sama akan gagal. Aplikasi dapat menghapus menyeluruh koneksi ketika soket menutup dan membangun kembali koneksi sesuai kebutuhan tanpa menunggu koneksi TCP pada akhirnya kehabisan waktu.

Untuk banyak skenario, reset TCP dapat mengurangi kebutuhan untuk mengirim keepalives TCP (atau lapisan aplikasi) untuk me-refresh batas waktu menganggur alur.

Jika durasi diam Anda melebihi batas konfigurasi atau aplikasi Anda menunjukkan perilaku yang tidak diinginkan dengan Pengaturan Ulang TCP diaktifkan, Anda masih perlu menggunakan keepalives TCP, atau keepalive lapisan aplikasi, untuk memantau keaktifan koneksi TCP. Selain itu, keepalives juga tetap berguna ketika koneksi proksi di suatu tempat di jalur, terutama keepalives lapisan aplikasi.

Dengan memeriksa seluruh skenario ujung ke ujung dengan hati-hati, Anda dapat menentukan keuntungan dari mengaktifkan Reset TCP dan menyesuaikan batas waktu idle. Kemudian Anda memutuskan apakah lebih banyak langkah dapat diperlukan untuk memastikan perilaku aplikasi yang diinginkan.

Batas waktu diam TCP yang dapat dikonfigurasi

Azure Load Balancer memiliki rentang waktu habis 4 menit hingga 100 menit untuk aturan Load Balancer, Aturan Keluar, dan aturan NAT Masuk. Defaultnya adalah 4 menit. Jika periode tidak aktif lebih lama dari nilai waktu habis, tidak ada jaminan bahwa sesi TCP atau HTTP dipertahankan antara klien dan layanan cloud Anda.

Ketika koneksi ditutup, aplikasi klien Anda dapat menerima pesan kesalahan berikut: "Koneksi yang mendasar ditutup: Koneksi yang diharapkan tetap hidup ditutup oleh server."

Praktik umum adalah menggunakan TCP tetap-hidup. Praktik ini membuat koneksi tetap aktif untuk jangka waktu yang lebih lama. Untuk informasi selengkapnya, lihat contoh .NET berikut. Dengan tetap-hidup diaktifkan, paket dikirim selama periode tidak aktif di koneksi. Paket tetap-hidup memastikan nilai batas waktu jeda tidak tercapai dan koneksi dipertahankan untuk jangka waktu yang lama.

Pengaturan hanya berfungsi untuk koneksi masuk. Untuk menghindari kehilangan koneksi, konfigurasikan TCP tetap-hidup dengan interval yang kurang dari pengaturan batas waktu jeda atau tingkatkan nilai batas waktu jeda. Untuk mendukung skenario ini, dukungan untuk batas waktu diam yang dapat dikonfigurasi tersedia.

TCP tetap-hidup bekerja untuk skenario di mana masa pakai baterai tidak menjadi masalah. Tidak disarankan untuk aplikasi seluler. Menggunakan TCP tetap-hidup dalam aplikasi seluler dapat menguras baterai perangkat lebih cepat.

Urutan prioritas

Penting untuk mempertimbangkan bagaimana nilai batas waktu diam yang ditetapkan untuk IP yang berbeda berpotensi berinteraksi.

Masuk

  • Jika ada aturan load balancer (masuk) dengan nilai batas waktu diam yang ditetapkan secara berbeda dari batas waktu diam IP frontend yang direferensikannya, batas waktu diam IP frontend load balancer lebih diutamakan.
  • Jika ada aturan NAT masuk dengan nilai batas waktu diam yang ditetapkan secara berbeda dari batas waktu menganggur IP frontend yang direferensikannya, batas waktu diam IP frontend load balancer lebih diutamakan.

Keluar

  • Jika ada aturan keluar dengan nilai batas waktu diam yang berbeda dari 4 menit (yang merupakan batas waktu diam keluar IP publik dikunci), batas waktu diam aturan keluar lebih diutamakan.
  • Karena gateway NAT akan selalu diutamakan daripada aturan keluar load balancer (dan melalui alamat IP publik yang ditetapkan langsung ke VM), nilai batas waktu diam yang ditetapkan ke gateway NAT akan digunakan. (Sepanjang baris yang sama, batas waktu diam keluar IP publik terkunci selama 4 menit dari IP apa pun yang ditetapkan ke NAT GW tidak dipertimbangkan.)

Pembatasan

  • Reset TCP hanya dikirim selama sambungan TCP dalam status BERJALAN.
  • Batas waktu idle TCP tidak memengaruhi aturan penyeimbangan beban pada protokol UDP.
  • Reset TCP tidak didukung untuk port ILB HA saat alat virtual jaringan berada di jalurnya. Solusinya adalah menggunakan aturan keluar dengan pengaturan ulang TCP dari NVA.

Langkah berikutnya