Langsung ke konten

Arsip

TCP

9 artikel
Teknologi 23 Sep 2026 4 min read

Probe TCP Keepalive Mendeteksi Peer Mati yang Senyap

Koneksi TCP yang sudah terbentuk dapat tetap senyap dalam waktu lama. Kondisi ini tidak langsung berarti salah satu endpoint gagal: aplikasi mungkin memang sedang tidak memiliki data untuk dipertukarkan. Sifat tersebut berguna untuk sesi berumur panjang, tetapi juga menimbulkan masalah operasional ketika peer menghilang tanpa mengirim FIN atau RST. Mesin dapat kehilangan daya, jalur jaringan dapat terputus, atau state pada perangkat perantara dapat hilang. Endpoint yang masih aktif bisa mempertahankan socket yang tetap terlihat established karena tidak ada paket yang datang untuk membuktikan kondisi sebaliknya. TCP keepalive menyediakan mekanisme opsional untuk menguji koneksi idle seperti ini.

Teknologi 22 Sep 2026 5 min read

TCP TIME_WAIT Memisahkan Koneksi yang Sudah Ditutup dari Segmen Terlambat

Sebuah koneksi TCP dapat selesai bertukar data aplikasi tetapi masih meninggalkan catatan socket. State TIME_WAIT merupakan bagian dari mekanisme penutupan TCP, bukan tanda bahwa proses lupa menutup descriptor. Endpoint yang melakukan active close biasanya masuk ke TIME_WAIT setelah closing handshake. Kernel mempertahankan state secukupnya selama interval terbatas agar segmen terlambat dari koneksi lama tidak tercampur dengan traffic dari koneksi baru yang memakai identitas endpoint yang sama. Perilaku ini paling terlihat pada sistem yang membuat banyak koneksi berumur pendek. Jumlah TIME_WAIT yang besar dapat tampak mencolok pada daftar socket, tetapi state tersebut menjaga ketepatan protokol dan tidak berarti setiap entri masih memiliki proses aplikasi.

Teknologi 22 Sep 2026 5 min read

Autotuning Receive TCP Linux Memperbesar Kapasitas Buffer Sesuai Kebutuhan Flow

Receiver TCP hanya dapat menerima data selama masih tersedia ruang untuk menyimpan byte yang belum dikonsumsi aplikasi. Di Linux, kapasitas itu tidak harus tetap sebesar alokasi kecil saat koneksi baru dimulai. Receive autotuning dapat memperbesar receive buffer socket ketika koneksi berkembang, dengan tetap mengikuti batas sistem dan kondisi flow. Perilaku ini paling terasa pada koneksi dengan traffic berkelanjutan melalui path yang memiliki bandwidth-delay product cukup besar. Usable window yang terlalu kecil dapat membatasi sender walaupun jaringan dan sender masih mampu membawa lebih banyak data. Kapasitas receive tambahan memberi TCP ruang untuk mempertahankan lebih banyak data in flight saat aplikasi menguras socket.

Linux 17 Sep 2026 5 min read

TCP_NODELAY Menonaktifkan Penggabungan Nagle pada Socket

Socket TCP dapat menahan write kecil alih-alih langsung mengirimkannya ketika data sebelumnya belum menerima acknowledgment. Perilaku ini berasal dari penggabungan Nagle: aliran segmen TCP kecil dibatasi dengan membiarkan data yang masih outstanding memengaruhi pengiriman byte yang baru masuk antrean. Di Linux, pengaturan TCP_NODELAY menonaktifkan aturan penggabungan tersebut untuk socket. Write kecil menjadi memenuhi syarat untuk segera dikirim, dengan tetap tunduk pada bagian lain dari stack TCP, congestion control, flow control, keadaan antrean, dan penjadwalan perangkat.

Rekayasa Perangkat Lunak 17 Sep 2026 6 min read

SO_REUSEPORT Memindahkan Distribusi Koneksi TCP ke Kernel

Dengan SO_REUSEPORT, beberapa socket TCP Linux dapat listen pada alamat lokal dan port yang sama secara bersamaan. Koneksi masuk ditetapkan ke salah satu anggota reuseport group sebelum aplikasi memanggil accept(). Aplikasi tidak lagi membutuhkan satu listening socket bersama sebagai satu-satunya titik handoff antara network stack dan banyak worker. Perubahan ini lebih dari sekadar kelayakan bind(). Distribusi koneksi dipindahkan ke kernel dan setiap listener memiliki identitas socket serta jalur accept sendiri. Arsitektur yang dihasilkan memiliki sifat queueing, lifecycle, dan routing yang berbeda dari desain ketika banyak worker berebut satu listening socket.

Rekayasa Perangkat Lunak 17 Sep 2026 4 min read

SO_REUSEPORT Membentuk Grup Socket dengan Seleksi oleh Kernel

Beberapa socket Linux dapat melakukan bind ke alamat lokal yang sama ketika setiap socket mengaktifkan SO_REUSEPORT sebelum bind(). Traffic masuk kemudian ditetapkan ke salah satu anggota reuseport group, bukan dikirim ke setiap socket. Alamat bersama tersebut menjadi batas seleksi oleh kernel, bukan endpoint broadcast. Perilaku ini mendukung receive loop atau accept loop yang berdiri sendiri tanpa memaksa seluruh pekerjaan melewati satu listening descriptor. Konsekuensinya juga jelas: keanggotaan grup dan kebijakan seleksi menentukan socket yang menerima packet atau connection.

Linux 17 Sep 2026 6 min read

SO_REUSEPORT Membagi Trafik ke Beberapa Grup Socket

SO_REUSEPORT mengubah satu endpoint lokal dari binding satu socket menjadi sebuah grup socket. Di Linux, beberapa socket TCP atau UDP dapat melakukan bind ke alamat lokal yang sama ketika semua socket yang ikut mengaktifkan opsi ini sebelum bind() dan kredensial binding memenuhi aturan reuse dari kernel. Perilaku ini berbeda dari sekadar melonggarkan pemeriksaan konflik alamat. Trafik yang masuk juga harus diarahkan ke salah satu anggota grup. Batas pemilihan ini memengaruhi arsitektur listener, isolasi antrean, restart proses, penempatan flow UDP, dan desain apa pun yang menganggap satu port selalu identik dengan satu socket.

Teknologi 16 Sep 2026 5 min read

TCP TIME-WAIT Mempertahankan State Koneksi yang Sudah Ditutup

Endpoint TCP dapat menyelesaikan operasi close dari aplikasi sementara protocol masih mempertahankan state untuk koneksi tersebut. Setelah active close menyelesaikan pertukaran FIN, endpoint biasanya masuk ke TIME-WAIT alih-alih langsung membuang connection record. State yang dipertahankan ini memiliki dua fungsi. Pertama, endpoint tetap dapat mengakui retransmitted final FIN. Kedua, ia memisahkan koneksi yang sudah ditutup dari incarnation berikutnya yang mungkin memakai local dan remote address serta port yang sama. Karena itu TIME-WAIT bukan established connection yang sedang idle. Ia adalah protocol boundary di antara connection incarnation.

Teknologi 15 Sep 2026 6 min read

TCP Delayed ACK Mengurangi Traffic Acknowledgment

TCP Delayed ACK Mengurangi Traffic Acknowledgment Acknowledgment TCP memberikan feedback penting, tetapi mengirim ACK terpisah untuk setiap segmen data yang masuk tidak selalu diperlukan. Receiver dapat menunda acknowledgment sebentar sehingga satu ACK mencakup lebih dari satu segmen. Perilaku ini dikenal sebagai delayed acknowledgment, atau delayed ACK. Mekanisme ini mengurangi pemrosesan paket dan traffic reverse-path selama transfer data yang stabil. Mekanisme ini juga memperkenalkan tradeoff timing: jika segmen lain tidak tiba cukup cepat, receiver pada akhirnya harus mengirim ACK yang tertunda secara mandiri.