Apa yang terjadi pada koneksi TCP ketika saya melepaskan kabel ethernet?

42

Untuk koneksi TCP, ketika saya melepas kabel dan menghubungkan kembali setelah 30-40 detik tidak ada masalah packet loss. Tetapi ketika waktu koneksi kembali lebih dari beberapa menit, semua paket hilang. Saya tahu ini bekerja dengan waktu transmisi ulang habis tetapi saya ingin tahu apa yang sebenarnya terjadi ketika kabel jaringan dicabut.

Masukan J
sumber
9
"apa yang sebenarnya terjadi" akan sangat sulit dijawab. Saat ini OS mungkin melakukan hal-hal 'pintar', seperti mendeteksi bahwa kabel dilepas. Menjatuhkan rute ke jaringan itu dari tabel routing. Mengaktifkan rute baru melalui nirkabel, .... Semua ini menghalangi penjelasan universal yang sederhana.
Hennes
5
Apakah Anda melihat dalam paket bit untuk paket Anda yang hilang?
Daniel R Hicks
4
Satu hal yang dapat terjadi dengan pasti adalah bahwa komunikasi Anda saat ini terputus di tengah-tengah
sebelum
Itu tergantung pada OS dan konfigurasinya. Untuk MS Windows coba ke google windows mediasense.
Zaboj Campula

Jawaban:

60

Menurut definisi pada model berlapis sebagai OSI atau TCP / IP setiap lapisan bekerja secara independen dan tidak menyadari lapisan bawah.

Ketika Anda melepas kabel, itu adalah gangguan fisik ( layer 1 ), jadi hampir secara ethernet ( layer 2 ) mendeteksi kehilangan sinyal (jika Anda menggunakan Windows, Anda akan melihat jaringan pop-up menginformasikan yang sangat ditakuti terputus )

IP ( layer 3 ) dan TCP ( layer 4 ) tidak akan melihatnya, sehingga mereka akan mencoba untuk tetap bekerja.

TCP tidak akan memutus koneksi TCP yang dibuat selama periode waktu karena ketika TCP mengirim data, ia mengharapkan ACK sebagai balasan dan jika tidak tiba dalam periode waktu, itu mentransmisikan kembali data.

TCP akan mengirimkan kembali data, meneruskannya ke IP, yang akan meneruskannya ke Ethernet, yang tidak dapat mengirimnya dan hanya membuangnya.

TCP akan menunggu lagi dan mengulangi proses ini sampai terjadi timeout yang membiarkannya menyatakan bahwa koneksi sudah selesai. TCP mengatur ulang nomor urut segmen, membuang informasi yang mencoba mengirim dan membebaskan sumber daya buffer dan memori yang dialokasikan untuk koneksi itu.

Sambungkan kabel sebelum itu terjadi dan semuanya akan terus berjalan. Inilah yang membuat TCP dapat diandalkan dan pada saat yang sama rentan terhadap serangan DDos.

Jika OS memiliki lebih dari satu antarmuka (misalnya, ethernet dan wi-fi), ada kemungkinan bahwa ketika ethernet turun, ia akan mencoba melalui wifi. Itu tergantung bagaimana routing dikonfigurasi, tetapi secara umum " TCP tidak akan menyadarinya ".

Struktur dasar serangan DDoS adalah: ribuan klien membuka koneksi TCP masing-masing setiap beberapa detik ke server dan kemudian meninggalkan koneksi. Setiap koneksi TCP tetap terbuka di server selama waktu yang lama (membuang-buang aset berharga sebagai port TCP, memori yang dialokasikan, bandwidth, dll.) Menyumbat sumber daya server untuk menghadiri pengguna yang sah.

jcbermu
sumber
7
Itulah yang dikatakan model tetapi saya percaya OS nyata mendeteksi beberapa kegagalan dan segera mematikan koneksi. Itu hanya hal yang berguna untuk dilakukan.
usr
8
@ usr Mengapa bermanfaat untuk mematikan setiap koneksi hanya karena seseorang menghidupkan siklus switch Ethernet yang terhubung dengan PC saya?
CVn
9
@ usr Menonaktifkan kartu jaringan melalui antarmuka administratif OS 'adalah operasi yang sama sekali berbeda dibandingkan dengan mencabut kabel secara fisik atau memutuskan hubungan fisik-lapisan. Tolong jangan membingungkan keduanya.
CVn
7
Juga, jika Anda tidak benar-benar mengirim data TCP saat kabel terputus, tidak akan pernah melihat. Itu sebabnya Anda harus terus mengirim pesan keep-live - aplikasi yang hanya pernah mendengarkan tidak akan pernah tahu jika koneksi "mati". Di sisi positifnya, ini juga berarti bahwa jika tidak ada pihak yang mencoba mengirim apa pun saat kabel dicabut, koneksi akan berfungsi dengan baik setelah kabel dicolokkan kembali. TCP digunakan sangat berbeda dari yang dirancangnya :) Ingat percobaan TCP-over-Pigeon-mail :))
Luaan
11
@ usr Ini adalah pilihan implementasi yang sangat buruk untuk tidak mengikuti standar. Koneksi TCP dapat bertahan dari pemadaman jaringan sementara. Ini dirancang untuk melakukannya. Bahkan, dulu Anda bahkan dapat me-reboot komputer Anda dan masih memiliki koneksi TCP tetapi ini tidak selalu praktis. Asumsi Anda bahwa semua orang ingin diputuskan ketika kabel ditarik adalah salah, dan bukan bagaimana sistem dirancang.
Brad