Saya mencoba memahami bagaimana tabrakan terjadi di Ethernet, terutama ketika ada ketidakcocokan dupleks atau ketika pada jaringan Ethernet lama dua node mentransmisikan secara bersamaan.
Semua orang menjelaskan tabrakan di tingkat atas (dua frame bertabrakan ketika satu dikirim dan yang lain diterima). Namun, grafik di bawah ini menunjukkan bahwa ada sirkuit yang berbeda untuk Rx dan Tx. Bagaimana tabrakan dapat terjadi karena ada sirkuit khusus untuk mengirim dan menerima bingkai?
EDIT : Mungkin label "Hub MDI-X" menyebabkan beberapa kebingungan mengenai titik pertanyaan saya. Saya tidak bertanya bagaimana fungsionalitas hub dapat menyebabkan tabrakan. Fokus saya adalah pada komunikasi antara dua node dengan antarmuka MDI atau MDI-X (hub dan switch memiliki antarmuka MDI-X). Dalam salah satu dari dua kasus ini, bagaimana tabrakan dapat terjadi antara dua node ketika mereka memiliki ketidakcocokan duplex, sementara dalam ketidakcocokan duplex Rx dan Tx masih memiliki sirkuit khusus mereka?
sumber
Jawaban:
Untuk memahami ini, Anda perlu memahami konteks historis.
Awalnya Ethernet menggunakan kabel koaksial bersama. Hanya satu perangkat yang berhasil mentransmisikan ini sekaligus. Jika dua perangkat ditransmisikan secara bersamaan itu dianggap tabrakan.
Kemudian repeater datang, untuk memperpanjang jarak dan meningkatkan jumlah node. Repeater akan mendeteksi port mana yang sedang mentransmisikan, maka ia akan mengulangi sinyal itu di port lain. Agar pendeteksian collision berfungsi, repeater harus memiliki beberapa fungsi untuk memastikan bahwa semua node mendeteksi sebuah collision. Repeater pertama hanya memiliki dua port, tetapi repeater kemudian dapat memiliki beberapa port dan ini dikenal sebagai hub, terutama bila digunakan bersama dengan kabel twisted-pair. Repeater adalah perangkat yang sangat bodoh, mereka akan membuat kembali sinyal listrik tetapi sedikit lagi.
Kemudian 10BASE-T datang, yang seperti yang Anda perhatikan memiliki saluran data khusus untuk setiap arah. Namun demikian masih perlu masuk ke model yang ada, jadi secara default itu beroperasi dalam mode "setengah dupleks" di mana ia meniru kabel koaksial. Sinyal tidak benar-benar bertabrakan pada kabel tetapi transceiver bertindak seolah-olah mereka lakukan dan repeater akan mengambil langkah yang sama seperti sebelumnya untuk memastikan ini terlihat di seluruh jaringan.
Twisted pair Ethernet juga dapat mendukung mode "full-duplex". Dalam mode ini semua perangkat keras yang berhubungan dengan tabrakan dinonaktifkan dan kedua ujungnya dapat mengirimkan kapan saja. Namun mode ini membawa beberapa kerugian besar.
Masalah-masalah ini berarti bahwa dalam praktiknya sistem 10BASE-T hampir selalu dioperasikan dalam mode setengah dupleks.
Untuk 100BASE-TX situasinya membaik secara dramatis. Saklar Ethernet (jembatan multi-port yang cepat secara teknis) turun harganya sehingga hub repeater yang bodoh bisa dihilangkan. Negosiasi otomatis memungkinkan kartu jaringan untuk membuat koneksi dupleks penuh tanpa konfigurasi manual yang rentan kesalahan. Jika Anda menghubungkan dua NIC 100BASE-TX bersama-sama dengan kabel crossover atau menghubungkan NIC 100BASE-TX ke sakelar dan tidak mengambil langkah-langkah untuk secara manual mengabaikan hal-hal mereka hampir pasti akan menegosiasikan mode dupleks penuh.
1000BASE-T secara teoritis memiliki mode setengah dupleks yang diklaim beberapa NIC mendukung dan ada spesifikasi untuk repeater multiport gigabit, tetapi saya belum pernah melihat bukti bahwa ada orang yang pernah menjual satu. Dalam praktiknya, tautan gigabit hampir pasti akan berjalan dalam mode dupleks-penuh.
Kecepatan lebih cepat meninggalkan mode setengah dupleks sepenuhnya.
sumber
Hub sebenarnya hanya kabel bertenaga yang mengulangi setiap sinyal yang diterimanya pada satu antarmuka ke semua antarmuka lainnya. Jika dua perangkat mentransmisikan pada saat yang sama untuk menerima antarmuka hub, hub mengulangi kedua sinyal pada saat yang sama ke transmisi semua antarmuka hub lainnya, dan kedua sinyal yang diterima akan bertabrakan pada pengiriman antarmuka lainnya, sehingga Anda memiliki tabrakan di mana semua antarmuka lainnya memiliki sinyal sampah karena ini adalah dua sinyal pada saat yang sama. Host yang mengirim secara bersamaan dan mendengar sinyal lain akan menyadari bahwa lebih dari satu mengirim sekaligus, dan mereka akan menentukan bahwa ada tabrakan.
Bayangkan dengan cara ini, penerimaan dari setiap antarmuka hub ditransfer ke transmisi dari setiap antarmuka lainnya. Di dalam hub, pengiriman dan penerimaan terhubung, meskipun terpisah di antarmuka.
Bandingkan itu dengan sakelar, di mana setiap tautan diakhiri pada antarmuka sakelar, dan sakelar tidak memiliki kabel yang disatukan. Alih-alih switch memiliki logika (biasanya tertanam dalam perangkat keras) untuk menentukan ke mana harus mengirim frame yang diterimanya pada satu antarmuka, dan untuk mencegah tabrakan di dalam switch.
Switch adalah jembatan dengan kepadatan tinggi. Jembatan asli seperti PC dengan banyak antarmuka. Anda tidak akan mengharapkan PC dengan banyak antarmuka memiliki benturan jika ia menerima frame secara simultan pada banyak antarmuka.
Edit:
Komentar Anda membuat saya percaya Anda masih tidak mengerti apa yang saya tulis di atas tentang hub.
Cara tabrakan terdeteksi saat menggunakan UTP dan hub adalah oleh perangkat pengirim yang mendengar sinyal lain saat mengirim. Jika perangkat menggunakan UTP dikonfigurasi untuk setengah dupleks, maka ia akan percaya ada tabrakan ketika mendengar sinyal saat mengirim.
Bila Anda memiliki ketidakcocokan dupleks, perangkat yang dikonfigurasikan untuk dupleks penuh akan dengan senang hati mengirim saat menerima dari perangkat yang dikonfigurasikan untuk setengah dupleks. Di sisi lain, perangkat yang dikonfigurasi untuk half duplex akan percaya bahwa ada tabrakan ketika mengirim dan mendengar sinyal dari perangkat yang dikonfigurasi untuk full duplex. Itu akan menyebabkan semua jenis masalah karena perangkat yang dikonfigurasikan untuk half duplex akan berhenti mengirim frame (menyebabkan runtuh), dan itu akan mengirimkan sinyal gangguan yang tidak diharapkan oleh perangkat yang dikonfigurasi untuk full duplex. Perangkat yang dikonfigurasikan untuk dupleks penuh kemudian akan berhenti mengirim bingkainya.
sumber
Pertanyaan yang bagus
Dalam dupleks penuh, ada saluran khusus untuk lalu lintas dari "kiri ke kanan" dan saluran khusus dari lalu lintas dari "kanan ke kiri":
Oleh karena itu, dalam dupleks penuh, tabrakan tidak mungkin - bahkan jika kedua NIC mengirimkan secara bersamaan.
Namun dalam setengah dupleks , lalu lintas di kedua arah dimaksudkan hanya menggunakan kabel, satu arah pada satu waktu. Jadi sementara secara fisik, masih ada saluran khusus, secara logis jika satu NIC menerima sesuatu saat sedang mentransmisikan, itu mencatatnya sebagai tabrakan. Bit / sinyal tidak benar-benar "bertabrakan" pada kabel - penghitung tabrakan bertambah ketika NIC menerima dan mentransmisikan pada saat yang sama.
sumber
Dengan twisted pair dan hub repeater, hub tidak lebih dari penguat digital. Untuk itu ia merasakan pembawa dari sinyal yang masuk pada satu port dan mengalihkan semua port lain ke mode output. Dalam mode keluaran ini, setiap pembawa masuk tambahan adalah tabrakan. Ini memicu sinyal kemacetan untuk menyebarkan tumbukan dan membuat pengirim berhenti mentransmisikan.
Metode berulang ini meniru perilaku varian media Ethernet sebelumnya (10BASE5 & 10BASE2) di mana pengulang hanya digunakan sebagai sambungan segmen fisik atau ekstender garis. Tentu saja Anda benar: twisted pair adalah media dupleks penuh pada tingkat kawat di mana tabrakan hanya terjadi pada lapisan fisik atas dan bukan pada kawat itu sendiri.
Pengulang tidak dapat mengizinkan lebih dari satu pengirim pada saat yang bersamaan. Beberapa transmisi simultan akan bercampur pada port output dan menghasilkan noise yang tidak dapat dipahami. Demikian juga, setiap node dalam mode half-duplex mengasumsikan media bersama, tidak mampu transmisi full-duplex. Setiap pembawa merasakan saat transmisi adalah tabrakan, menyebabkan pengirim mundur. Apakah mediumnya mampu dupleks-penuh (serat, twisted pair) atau tidak (coax) tidak masalah.
Dengan ketidakcocokan dupleks, satu ujung tautan berada dalam mode setengah-dupleks dan yang lainnya dalam mode dupleks-penuh. Sekarang, ketika sisi half-duplex (HDX) mentransmisikan, setiap pembawa pada receivernya menyebabkan tabrakan terdeteksi. Namun, sisi full-duplex (FDX) mungkin dengan senang hati mengirimkan saat menerima dari sisi HDX dan benar-benar tidak menyadari tabrakan yang dibuatnya di sisi yang jauh. Sisi HDX perlu membatalkan transmisi dan mengirimkan sinyal kemacetan. Karena pihak FDX tidak dapat mendeteksi dugaan tabrakan, ia mendeteksi kerangka yang sebagian dan karenanya rusak.
Frekuensi rendah dan bingkai kecil memiliki peluang yang masuk akal untuk melewati ketidakcocokan dupleks ini, sehingga
ping
benar-benar dapat bekerja. Namun, segera setelah transmisi serius mencoba untuk berjalan, frekuensi frame yang lebih tinggi dan ukuran yang lebih besar akan membuat transmisi gagal sangat andal.Dengan sakelar yang tidak dikelola, ketidakcocokan dupleks bisa sangat sulit dideteksi, terutama ketika bahkan host NIC tidak melaporkan mode dupleks mereka dengan benar.
Dengan sakelar yang dikelola, Anda biasanya memiliki penghitung kesalahan port. Meningkatnya tabrakan di satu sisi (HDX) dan meningkatnya keruntuhan dan kesalahan FCS di sisi lain (FDX) adalah indikasi yang sangat kuat untuk ketidakcocokan dupleks.
Pada dasarnya, mengandalkan Negosiasi Otomatis adalah praktik yang sangat baik untuk menghindari ketidakcocokan dupleks. Mengkonfigurasi kecepatan dan mode dupleks secara manual biasanya cenderung membuat ketidakcocokan, terutama saat mengganti peralatan beberapa tahun kemudian. Untungnya seluruh skema half-duplex hilang dengan Gigabit Ethernet dan lebih cepat.
sumber
Misalkan mesin A mulai mengirim data ke mesin B. Ketika paket mulai dikirim, mesin C mulai mengirim data yang berbeda ke mesin B. Hanya ada satu jalur sinyal ke mesin B, sehingga transmisi dari A dan C bertabrakan dan B tidak mungkin terima keduanya.
Fakta bahwa rangkaian yang berbeda digunakan untuk transmisi dari mesin B, ke mesin A, dan ke mesin C tidak membantu. Semua yang terjadi adalah bahwa A dan C mencoba mentransmisikan ke mesin B pada saat yang sama dan hanya ada satu jalur sinyal ke mesin B.
sumber