Berbagi teknologi

Prinsip Jaringan Dasar JavaEE 2

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


Kata pengantar

Protokol TCP memiliki karakteristik koneksi, transmisi yang andal, berorientasi aliran byte, dupleks penuh, dll. Transmisi yang andal adalah bagian intinya.


1. Struktur tajuk TCP

Gambar 1
Masukkan deskripsi gambar di sini
Gambar di atas adalah struktur header TCP.
(1) Pelabuhan sumber dan pelabuhan tujuan tidak perlu terlalu banyak diperkenalkan, keduanya merupakan program yang digunakan untuk menunjukkan pihak pengirim dan pihak penerima.
(2) Nomor urut dan nomor urut konfirmasi digunakan untuk mekanisme respons konfirmasi dalam TCP yang diperkenalkan kemudian.
(3) 4 bit pada bagian offset data sebenarnya digunakan untuk menunjukkan panjang header TCP di sini. Karena 4 bit, jumlah maksimum yang diwakili adalah 15, tetapi karena satuannya adalah 4 byte, maka panjang maksimum dari bit tersebut. Header TCP berukuran 60 byte.
(4) Kita semua tahu bahwa panjang maksimum paket data UDP adalah 64kb, yang sangat terbatas, jadi untuk menghindari situasi ini, 6 bit cadangan disediakan di header TCP, yang dapat digunakan jika fungsi TCP diperluas nanti. Diwakili menggunakan bit yang dicadangkan.
(5) Pengidentifikasi bahasa Inggris 6-byte terkait dengan mekanisme TCP yang diperkenalkan kemudian, dan tidak akan diperkenalkan di sini.
(6) Checksum mempunyai fungsi yang sama dengan checksum pada UDP dan juga digunakan untuk memeriksa apakah ada perubahan data selama proses transmisi.
(7) Jendelanya akan dibahas nanti ketika mekanisme diperkenalkan.
(8) Penunjuk darurat akan diperkenalkan kemudian.
(9) Diantara pilihan tersebut terdapat beberapa pilihan opsional/opsional.

2. Sepuluh mekanisme inti TCP

2.1 Tanggapan konfirmasi

Protokol TCP harus memecahkan masalah yang sangat penting - transmisi yang andal. Apa yang disebut transmisi andal tidak berarti pengirim dapat mengirimkan data ke penerima 100%, tetapi pengirim akan berusaha semaksimal mungkin untuk memberi tahu pengirim apakah penerima mengetahuinya.
Gambar 2
Masukkan deskripsi gambar di sini
Seperti yang ditunjukkan pada Gambar 2, setiap kali Anda mengirim pesan ke dewi, dewi akan mengirimkan pesan kembali kepada Anda. Ini juga terjadi di TCP mengembalikan paket data respons. Pada saat ini, data respons Paket ACK pada Gambar 1 akan disetel ke 1.
gambar 3
Masukkan deskripsi gambar di sini
Seperti yang ditunjukkan pada Gambar 3, ketika kita mengirim banyak pesan ke dewi, karena dewi merespons pesan dengan kecepatan yang berbeda, kita akan mudah bingung. Kita akan mengira dewi setuju untuk menjadi pacar saya dewi berkata tersesat. Ini adalah Internet. Masalah siapa yang datang lebih dulu dilayani secara objektif ada di Tiongkok. Tentunya mengirimkan beberapa paket data ke klien, dan klien merespons beberapa paket data respons, kita juga perlu membedakan respons mana yang sesuai dengan paket data yang dikirim. Masalah ini dapat diselesaikan dengan menggunakan nomor urut dan nomor urut konfirmasi pada Gambar 1 .
Masukkan deskripsi gambar di sini
Setiap paket data yang dikirim memiliki nomor urut, tetapi tidak ada nomor urut konfirmasi, atau kolom nomor urut konfirmasi tidak valid. ACK paket data yang meresponsnya adalah 1. Saat ini, kolom nomor urut konfirmasi valid. dan nomor urut paket data yang dikirim serta responnya Nomor urut konfirmasi paket data tersebut sesuai, sehingga dapat dibedakan siapa yang merespons kepada siapa, dan masalah siapa yang datang lebih dulu dilayani di jaringan tersebut di atas dapat diselesaikan. .
Nomor urut paket data TCP sebenarnya diberi nomor berdasarkan byte. Setiap byte akan diberi nomor urut di header TCP adalah nomor byte pertama dalam payload, misalnya nomor dari byte pertama di bagian payload. Nomor byte adalah 1, dan panjang payload adalah 1000 byte, maka nomor urut pengakuan di header paket data respons dari paket data adalah 1001. Hal ini karena nomor urut pengakuan dari paket data tersebut respons paket data yang sesuai dengan paket data diatur ke Jumlah byte terakhir payload bertambah 1. Sebenarnya, ini lebih mudah dipahami. Mengembalikan 1001 berarti payload 1000 byte yang dikirim telah diterima, dan data setelah 1001 diminta, seperti yang ditunjukkan pada Gambar 4.
Gambar 4
Masukkan deskripsi gambar di sini
Untuk paket data selanjutnya yang dikirim, nomor urutnya bertambah, namun yang perlu diperhatikan adalah meskipun bertambah, nomor urutnya tidak dimulai dari 0 atau 1.
Transmisi yang andal dapat dicapai terutama dengan mengandalkan mekanisme “respon konfirmasi”. Ia dapat memberi tahu pengirim melalui pesan respons apakah semuanya berjalan dengan baik dan apakah terjadi kehilangan paket. Apa yang harus dilakukan jika terjadi kehilangan paket (data hilang selama proses transmisi dan tidak dapat mencapai ujung yang berlawanan, peristiwa acak yang objektif)?

2.2 Batas waktu transmisi ulang

Timeout retransmission digunakan untuk mengatasi permasalahan packet loss pada jaringan.
Pada dasarnya ada dua situasi di sini:
(1) Paket data yang dikirimkan hilang
Masukkan deskripsi gambar di sini
Pada saat ini, B tidak akan mengirimkan paket respon jika tidak menerima paket data A. Ketika kejadian yang ditunggu A melebihi ambang batas tertentu, maka akan ditentukan bahwa telah terjadi masalah kehilangan paket dan mengirimkan kembali paket data tersebut.
(2) Paket data respons hilang
Masukkan deskripsi gambar di sini
Ketika A tidak menerima paket data respon, ia tetap mengirimkan ulang paket data, tetapi saat ini B telah menerima paket data. Dengan transmisi ulang paket data tersebut, ia akan menerima dua paket data yang identik , terutama untuk masalah seperti transfer, dimana akan terjadi transfer berulang kali.
Untuk masalah di atas, penerima TCP akan menghapus duplikat data yang diterima sesuai dengan nomor urutnya. Lapisan TCP tidak peduli dengan masalah duplikasi. Kuncinya adalah lapisan aplikasi tidak dapat membaca data duplikat, tidak peduli berapa kali ditransmisikan ulang, harus dipastikan bahwa hanya satu salinan data yang dibaca oleh lapisan aplikasi.
Di kernel sistem operasi penerima, terdapat struktur data - buffer penerima. Struktur data ini mirip dengan antrian pemblokiran prioritas. Ketika B menerima paket data dan melewati lapisan ke lapisan transport, akan ada a memblokir antrian untuk memasukkan data. Masukkan, dan antrian akan menentukan apakah data tersebut ada berdasarkan nomor urut paket data. Jika ada (adanya berarti paket data yang sama telah diterima dan telah dibaca satu kali oleh pihak tersebut lapisan aplikasi), itu akan langsung dibuang. Poin lain dari buffer penerimaan adalah dapat menyelesaikan masalah siapa yang datang lebih dulu dilayani di jaringan. Data yang dikirim akan diurutkan berdasarkan nomor urutnya, dan kemudian dikonsumsi oleh program lapisan aplikasi secara berurutan.
Masukkan deskripsi gambar di sini
Seperti yang ditunjukkan pada gambar di atas, data yang masuk ke buffer penerima akan diurutkan berdasarkan nomor urutnya. Hal ini tidak hanya menyelesaikan masalah pengiriman terakhir, kedatangan pertama, tetapi juga menyelesaikan masalah penerimaan paket data duplikat kali ini jika paket data yang dikirimkan ulang diterima dengan nomor urut 500 maka akan langsung dibuang, karena nomor urut buffer penerima minimal 1000, artinya 500 sudah terbaca oleh program aplikasi.
Kehilangan paket sendiri merupakan peristiwa yang probabilitasnya kecil. Ketika jumlah paket yang hilang meningkat, jaringan akan menjadi masalah besar. Ketika jumlah transmisi ulang meningkat, interval waktu antara transmisi ulang menjadi lebih lama, karena semakin banyak transmisi ulang menunjukkan adanya masalah dengan jaringan, dan seringnya transmisi ulang akan menghabiskan sumber daya. Ketika jumlah transmisi ulang mencapai ambang batas, pesan reset akan dikirim dengan bit flag RST disetel ke 1 untuk menghapus status perantara dari kedua ujung. Jika pesan reset tidak ditanggapi, koneksi di kedua ujung akan dihapus.
Transmisi ulang batas waktu merupakan pelengkap respons pengakuan.

2.3 Manajemen koneksi

2.3.1 Membangun koneksi: jabat tangan tiga arah

Gambar 5
Masukkan deskripsi gambar di sini
Membangun koneksi berarti kedua pihak yang berkomunikasi menyimpan informasi dari ujung yang lain. Penyelesaian spesifik memerlukan tiga interaksi jaringan, seperti yang ditunjukkan pada Gambar 5.
Jabat tangan tiga arah yang pertama kali harus diprakarsai oleh klien. Siapa pun yang memulai jabat tangan tiga arah adalah klien. Proses spesifiknya ditunjukkan pada Gambar 5. Pertama, klien mengirimkan paket SYN, yaitu flag SYN di header disetel ke 1. Kemudian server mengembalikan paket respons. Flag ACK dan SYN dari paket respons adalah keduanya disetel ke 1, karena ACK dan SYN Paket data dengan bit flag dikirim oleh kernel sistem operasi secara bersamaan, sehingga dapat dikirim bersamaan untuk meningkatkan kinerja. Akhirnya, klien mengirimkan paket respons ke server, dan jabat tangan tiga arah selesai. Paket data yang dikirimkan selama proses ini tidak berisi data bisnis.
Arti dari jabat tangan tiga arah:
(1) Melempar batu untuk menanyakan arah
Konfirmasikan apakah tautan komunikasi lancar
(2) Negosiasikan beberapa parameter penting
Misalnya nomor urut paket data yang dikirimkan
(3) Konfirmasikan kemampuan penerimaan dan pengiriman kedua belah pihak
Mengapa tiga jabat tangan? Apakah empat jabat tangan atau dua jabat tangan oke?
Meskipun jabat tangan empat arah tidak akan mempengaruhi fungsi normal, hal ini akan mengurangi kinerja. Jabat tangan dua arah tidak dapat sepenuhnya mengkonfirmasi kemampuan penerimaan dan pengiriman server.
Selain itu, ada dua keadaan penting yang terlibat di sini. Yang pertama adalah keadaan mendengarkan, yang berarti bahwa server telah mengikat port saat ini dan sedang menunggu klien untuk mengirim paket SYN mudah dimengerti dan berarti jabat tangan tiga arah selesai.

2.3.2 Putus: lambaikan tangan empat kali.

Berbeda dengan jabat tangan tiga arah yang hanya dapat dimulai oleh klien terlebih dahulu, baik server maupun klien dapat memulai jabat tangan empat arah.
Gambar 6
Masukkan deskripsi gambar di sini
Proses spesifik melambaikan empat kali ditunjukkan pada Gambar 6. Ketika metode socket.close() dipanggil dalam kode klien atau ketika proses berakhir, pesan akhir FIN akan dikirim ke server Pesan ACK kembali, tetapi harus menunggu sampai kode server Hanya setelah memanggil kode seperti socket.close() pesan akhir FIN dapat dikirim ke klien. Setelah itu, klien mengirimkan pesan ACK ke server, dan prosesnya diselesaikan dengan melambai sebanyak empat kali.
ACK dan FIN yang tengah disini tidak bisa digabungkan, karena ACK dikirimkan oleh kernel sistem, sehingga akan langsung terkirim ketika server menerima pesan FIN, namun pesan FIN harus menunggu hingga kode sisi server mengeksekusi soket. Itu dapat dikirim setelah close(), dan ada perbedaan waktu antara keduanya. Namun ada cara untuk menggabungkan keduanya. Dalam keadaan khusus, pengiriman ACK bisa tertunda, sehingga bisa dikirim bersamaan dengan FIN.
Selain itu, ada dua keadaan yang terlibat dalam empat proses gelombang. Yang pertama adalah keadaan close_wait. Keadaan ini adalah keadaan penerima setelah menerima pesan FIN pengirim. Negara lain adalah waktu_tunggu yang perlu ditunggu oleh pihak setelah menerima FIN yang dikirim oleh penerima dan kemudian mengirimkan ACK kepada penerima. Sambungan tidak dapat langsung diputus karena untuk mencegah agar ACK terakhir yang dikirimkan pengirim kepada penerima tidak hilang dan penerima mengirimkan ulang FIN. Untuk memastikan pengirim masih dapat menerima FIN ini, waktu dalam keadaan ini biasanya 2MSI (MSI: waktu maksimum untuk transmisi data di kedua ujung), yang biasanya 2 menit.
Jika ditemukan close_wait dalam jumlah besar di penerima, berarti metode close() telah dilupakan. Jika ditemukan sejumlah besar time_wait di server, berarti server telah memicu pemutusan TCP aktif dalam jumlah besar. operasi.

2.4 Jendela geser

TCP perlu memastikan transmisi yang andal, namun pada saat yang sama juga ingin menyelesaikan transmisi data seefisien mungkin. Jendela geser adalah mekanisme untuk meningkatkan efisiensi. Ini sebenarnya adalah cara untuk menebusnya, karena untuk memastikan keandalan, TCP mengorbankan banyak kinerja. Tidak peduli bagaimana Anda menggeser jendela, kecepatan transmisi data tidak bisa lebih cepat dari UDP.
Gambar 7
Masukkan deskripsi gambar di sini
Seperti terlihat pada Gambar 7, ini adalah proses pengiriman data, namun proses pengiriman paket data dan penerimaan paket data respon masih tergolong lambat.
Angka 8
Masukkan deskripsi gambar di sini
Seperti yang ditunjukkan pada Gambar 8, ini terjadi setelah mekanisme jendela geser diperkenalkan. Alih-alih mengirim satu paket data tetapi beberapa paket data sekaligus, waktu tunggu dari paket data respons yang dikembalikan akan tumpang tindih. Tanpa menunggu ACK, jumlah data yang dikirim secara batch adalah ukuran window.
Gambar 9
Masukkan deskripsi gambar di sini
Proses menggeser jendela ditunjukkan pada Gambar 9. Asumsikan ukuran jendela adalah 4 grup. Ketika satu grup menerima ACK, data baru akan dikirim untuk melengkapinya, yang setara dengan proses geser. Jika pengirim menerima ACK 3001 berarti data 1001 hingga 3001 telah diterima, sehingga jendela dapat berpindah dua spasi ke kanan.
Apa yang harus dilakukan jika paket hilang di jendela geser? Ada dua situasi:
(1) Paket data yang dikirim hilang
Masukkan deskripsi gambar di sini
Jika grup datagram tertentu yang dikirim hilang, meskipun Anda mengirimkan banyak grup data ke penerima secara batch, nomor urut konfirmasi dari ACK yang diterima tetap milik grup yang hilang tersebut hingga pengirim mengirimkan ulang datagram tersebut. Misalnya, datagram 1001~2000 pada gambar di atas hilang. Sekalipun beberapa kumpulan data dikirimkan kemudian, ACK 1001 akan dikembalikan hingga pengirim mengirim ulang dan penerima menerimanya, lalu merespons dengan ACK 7001. .
(2) Respon ACK hilang
Masukkan deskripsi gambar di sini
Jika ACK responnya hilang, maka anda tidak perlu khawatir, karena anda tinggal menunggu sampai ACK kelompok data lain dikembalikan, misalnya ACK 1001 pada gambar diatas hilang tidak masalah.Pengirim ACK tahun 2001 berikutnya sudah menerimanya.Data sebelumnya sudah diterima, begitu pula jika ACK data berikutnya hilang.
Pemrosesan paket yang hilang di atas masih sangat efisien. Jika paket data hilang, cukup isi celahnya dan kirim ulang datanya. Jika ACK hilang, abaikan saja. Operasi seperti ini disebut transmisi ulang cepat.
Transmisi ulang batas waktu dan transmisi ulang cepat adalah strategi berbeda yang diterapkan di lingkungan yang berbeda. Jika TCP Anda mengirimkan sedikit dan jarang data, transmisi ulang batas waktu akan dipicu. Jika TCP Anda perlu mengirimkan data dalam jumlah besar dalam waktu singkat, jendela geser akan dipicu dipicu. Transmisi ulang cepat, transmisi ulang cepat setara dengan varian transmisi ulang batas waktu di bawah jendela geser.

2.5 Kontrol aliran

Seperti disebutkan sebelumnya tentang jendela geser, ukuran jendela bervariasi. Anda dapat mengontrol kecepatan pengiriman pengirim dengan mengubah ukuran jendela, semakin banyak data yang dikirim per satuan waktu dan semakin tinggi efisiensinya. Semakin kecil jendelanya, semakin banyak data yang dikirim per satuan waktu. Semakin sedikit data yang ada, semakin kurang efisien. Biasanya, tentu saja, kami berharap efisiensinya setinggi mungkin, tetapi prasyarat untuk efisiensi tinggi adalah memastikan keandalan. Jika pengirim mengirim terlalu cepat dan penerima tidak dapat menanganinya, maka kehilangan paket dapat terjadi adalah Penerima memberi tahu pengirim bahwa kecepatan pengiriman terlalu cepat. Ini adalah "kontrol aliran".
Masukkan deskripsi gambar di sini
Seperti yang ditunjukkan pada gambar di atas, seperti disebutkan sebelumnya, terdapat buffer penerimaan struktur data di kernel, dan penerima akan mengembalikan ukuran ruang kosong di buffer penerimaan sebagai ukuran jendela. Header TCP sebelumnya memiliki bidang ukuran jendela 16-bit yang menggunakan ACK untuk menyimpan dan mengembalikan informasi ini. Bidang ukuran jendela hanya akan berlaku di ACK.
Masukkan deskripsi gambar di sini
Seperti yang ditunjukkan pada gambar di atas, ACK akan mengembalikan ukuran jendela untuk mencapai tujuan kontrol aliran. Ketika ukuran jendela kembali ke 0, pengirim akan secara berkala mengirimkan pesan probe yang tidak berisi data bisnis untuk memicu ACK mengetahui datanya. status buffer. Apakah ada ruang kosong.

2.6 Pengendalian Kemacetan

Kontrol kemacetan sangat mirip dengan kontrol aliran, kedua mekanisme tersebut dipasangkan dengan jendela geser.
Masukkan deskripsi gambar di sini
Seperti yang ditunjukkan pada gambar di atas, tautan dalam jaringan sangat kompleks, dan node mana pun pada tautan tersebut dapat membatasi kecepatan pengirim. Ide pengendalian kemacetan adalah memperlakukannya secara keseluruhan tidak peduli seberapa rumit struktur perantara Anda, dan kemudian menemukan ukuran jendela yang paling tepat melalui eksperimen.
Masukkan deskripsi gambar di sini
Gambar di atas adalah proses pengendalian kemacetan, coba dulu dengan ukuran jendela yang relatif kecil (mulai lambat), karena Anda tidak mengetahui situasi kemacetan jaringan. Setelah itu, ukuran jendela akan bertambah secara eksponensial, dan ketika mencapai ambang batas tertentu, itu akan mulai tumbuh secara linier, dan kemudian Ketika jendela bertambah hingga batas tertentu, terjadi kehilangan paket. Pada saat ini, jendela segera diperkecil.
(1) Langsung menyusut ke bawah, kembali ke awal slow start, lalu ulangi proses sebelumnya (sudah ditinggalkan)
(2) Menyusut setengahnya lalu tumbuh secara linier (metode sebenarnya yang digunakan)
Pengendalian kemacetan adalah dengan menggunakan eksperimen untuk menemukan ukuran jendela yang sesuai. Jika ada banyak paket yang hilang, kurangi ukuran jendela. Jika tidak ada paket yang hilang, perbesar ukuran jendela.

2.7 Respons tertunda

Respons tertunda, seperti namanya, berarti menunggu beberapa saat sebelum mengembalikan ACK. Hal ini sebenarnya juga melibatkan masalah ukuran jendela, karena respons ACK yang tertunda akan memberi penerima lebih banyak waktu untuk menggunakan data di buffer penerima, sehingga meningkatkannya. ukuran buffer gratis, ukuran jendela yang dikembalikan oleh ACK meningkat, dan pengirim dapat mengirim lebih banyak data secara batch.
Ada dua metode respons tertunda:
(1) Tentukan penundaan menurut waktu tertentu
(2) Menurut jumlah data yang diterima
Kedua strategi di atas digunakan secara kombinasi.

2.8 Tanggapan dukungan

Respons piggyback sebenarnya sudah muncul sebelumnya, sebagai mekanisme yang digunakan untuk meningkatkan efisiensi transmisi. Ini adalah kasus dimana ACK dan SYN dikembalikan menggunakan paket data yang sama dalam jabat tangan tiga arah. Ada juga situasi yang mirip dengan Four Waves. Karena ACK dan FIN dikirim pada waktu yang berbeda, respon piggyback tidak dapat dilakukan. Namun, dengan respon yang tertunda, ACK tidak perlu dikirim ke pengirim secepat itu dapat digabungkan dengan dua FIN. Transmisi sekunder digabungkan menjadi satu transmisi dengan membonceng balasan.

2.9 Berorientasi pada aliran byte

Berorientasi aliran byte adalah mekanisme TCP. Salah satu masalah yang perlu diperhatikan di sini adalah masalah packet sticking. Masalah ini disebabkan oleh ketidakmampuan untuk membedakan batas antara paket data lapisan aplikasi yang berbeda aliran byte, server dapat Membaca beberapa byte juga dapat membaca satu byte, yang dapat dengan mudah menyebabkan masalah ini.
Ada dua solusi untuk masalah kantong lengket di atas:
(1) Gunakan pemisah
Simbol apa pun dapat digunakan selama tidak ada dalam paket permintaan
(2) Sepakati panjang paket data
Namun, dalam banyak kasus, pemrogram Java tidak menggunakan TCP secara langsung, melainkan menggunakan protokol yang sudah jadi seperti http, atau mengimplementasikan komunikasi jaringan berdasarkan alat seperti protobuffer atau dubbo. Hilang.

2.10 Situasi tidak normal

(1) Di kedua ujung komunikasi, proses di salah satu ujung terhenti.
Sistem operasi menyelesaikan empat gelombang dan gelombang PCB.
(2) Host tertentu dimatikan (proses normal)
Kemungkinan pertama adalah sistem operasi telah menyelesaikan empat gelombang. Kemungkinan kedua adalah penerima tidak memiliki respon ACK setelah mengirimkan FIN. Ia mengirimkan ulang berkali-kali dan kemudian secara sepihak menghapus koneksi yang mati, karena semuanya dimatikan. Informasi (memori) yang tersimpan secara alami hilang.
(3) Catu daya dari host tertentu dimatikan.
Ketika host yang dimatikan adalah server, paket data yang dikirim oleh klien akan ditransmisikan ulang tanpa ACK. Jika tidak ada hasil yang diperoleh setelah beberapa kali transmisi ulang, koneksi akan dihapus.
Ketika host yang dimatikan adalah klien, dan server sudah lama tidak menerima paket data, maka secara berkala akan mengirimkan paket detak jantung tanpa payload, hanya untuk memicu ACK ACK, jika tidak maka tidak akan menerimanya jika tidak ada respons yang diterima dari klien setelah dikirim beberapa kali berturut-turut tetapi tidak ada respons, dapat dianggap klien sedang down dan informasi koneksi dihapus.
Selain itu, meskipun TCP mengimplementasikan paket detak jantung, siklusnya sering kali memerlukan waktu beberapa menit untuk mengetahui bahwa klien sedang down melalui paket detak jantung ini. Dalam pengembangan sebenarnya, paket detak jantung pada lapisan aplikasi akan diimplementasikan, dengan frekuensi lebih tinggi dan periode lebih pendek (paket detak jantung tingkat kedua/milidetik). . Setelah tertentu Jika perangkat hang, Anda dapat dengan cepat menemukan masalahnya.
(4) Kabel jaringan terputus
Pada dasarnya, ini adalah kasus ketiga. Jika pengirim tidak menerima ACK, ia akan kehabisan waktu dan mengirim ulang, kemudian mengirim RST, dan kemudian menghapus koneksi secara sepihak. Jika penerima tidak menerima paket data, ia akan mengirimkan paket detak jantung . Jika tidak menerima ACK, ia hanya akan mengirimkan paket Hapus informasi.

2.11 Tambahan

Ada dua bit flag dalam struktur header TCP yang tidak disebutkan, yaitu PSH dan URG. PSH mendesak pihak lain untuk mengembalikan respon secepatnya. URG dikaitkan dengan bidang penunjuk darurat dari header paket TCP dan digunakan bersama untuk mengontrol transmisi data out-of-band TCP.
Transmisi data out-of-band artinya selain data bisnis, terdapat beberapa paket data khusus yang digunakan untuk mengontrol mekanisme kerja TCP itu sendiri.