Apa yang terjadi ketika 2 komputer mentransmisikan pada saat yang sama ke yang ketiga dalam saklar dupleks penuh?

14

Pertimbangkan skenario berikut:

Saya memiliki 2 PC (PC1 dan PC2) yang ingin mengirimkan pada saat yang sama ke PC3 dalam switch ethernet duplex penuh. Mari kita pertimbangkan bahwa semua port berada dalam VLAN yang sama, jadi apa yang terjadi secara internal di switch? Siapa yang mengirim pertama ke PC3?

Saya telah membaca sebelumnya bahwa CSMA / CD digunakan, tetapi hanya digunakan pada versi Ethernet sebelumnya yang beroperasi dalam setengah dupleks, dan setiap port switch adalah collision domain dan jika 2 mesin berusaha mengirimkan pada saat yang sama, sebuah Algoritma dijalankan untuk memberikan waktu acak ke setiap komputer untuk mengirim dan menyelesaikan masalah tabrakan. Namun, dalam saklar dupleks penuh saya membaca bahwa kemungkinan tabrakan dihilangkan begitu, jika 2 PC mencoba mengirim pada saat yang sama, apa yang terjadi secara internal di sakelar? Apakah saklar mengeksekusi algoritma untuk memilih siapa yang mengirim pertama?

Juan Jose Polanco Arias
sumber

Jawaban:

14

Switch akan sepenuhnya memuat frame data yang masuk, dari dua sistem pengiriman, ke buffernya. Saya tidak yakin bagaimana menentukan frame mana yang akan menjadi yang pertama dalam antrian untuk penerusan berikutnya; tapi mungkin didasarkan pada waktu penerimaan awal dari awal frame. Kemudian sakelar bekerja melalui antrian buffer transmisi, mengirimkan frame satu demi satu ke port / segmen tujuan.

Tidak ada masalah dengan bingkai "saling bertemu." Masalah sebenarnya adalah bisakah port / segmen terakhir menerima frame dengan cukup cepat. (Dan, tentu saja, dapatkah saklar memproses buffer / antriannya dengan cukup cepat.)

Craig Constantine
sumber
9
Ya, ada cut through dan fragmen free switching. Terutama digunakan dalam lingkungan perdagangan kecepatan tinggi. Cut through akan mulai mentransmisikan segera setelah DST MAC diketahui. Bebas fragmen memastikan bahwa frame bukan fragmen tabrakan sehingga perlu menerima 64 byte sebelum mentransmisikan.
Daniel Dib
2
Ya, saya pikir itu akan disebut penerusan cut-through oleh beberapa orang, sebagai lawan dari store-and-forward. Dalam pendekatan cut-through, sebuah saklar dapat mulai meneruskan begitu telah menerima dan mencari MAC tujuan, tetapi pendekatan hybrid ada di mana ia menunggu sedikit lebih lama, misalnya untuk dapat melihat IP untuk memeriksa ACL keluar . (Bidang Ethertype akan memberi tahu apakah alamat IP ada dalam bingkai).
Gerben
1
^^^ Ini. Inilah mengapa NE batu.
Craig Constantine
4
Karena tidak ada yang menyebutkannya, kelemahan untuk memotong adalah kasus aneh dari kesalahan bingkai. Sementara memotong tidak mengurangi latensi sedikit pada frame awal (semakin besar frame semakin banyak dampak ini), itu meneruskan frame terlepas dari apakah frame valid karena ia melakukannya tanpa menerima bingkai penuh dan mampu memverifikasi FCS . Sakelar Store and forward akan menerima frame penuh dan dapat memeriksa FCS sebelum meneruskan, memungkinkannya untuk menjatuhkan frame yang tidak valid.
YPelajari
2
Sebagian besar switch hanya store-and-forward, cut-through kembali beberapa tahun yang lalu, karena mudah dijual ke dunia finansial. store-and-forward pada 10G menyebabkan latensi 1.2us, yaitu 235m. Masuknya dan keluar juga tidak bisa berbeda kecepatan pada cut-through.
ytti
6

Pertanyaan yang sangat menarik yang sayangnya tidak memiliki jawaban yang benar, karena solusi yang tepat bervariasi dari perangkat keras ke perangkat keras.

Namun masalah ini secara eksplisit dibahas dalam Jaringan Komputer - sebuah Sistem Apparoch di halaman 231-232.

Inti dari solusi untuk desain yang disebut 'Sunshine Switch' adalah bahwa Anda memiliki input diagram - batcher - trap - selector == banyan === output dan ada kotak tunda yang menghubungkan pemilih ke batcher. Dan saya kutip:

Ketika lebih dari 1 (ukuran ed banyan) paket ditakdirkan untuk satu output dalam siklus yang sama, mereka disirkulasi ulang melalui kotak penundaan dan dikirim kembali ke sakelar pada siklus berikutnya.

Dan selanjutnya:

Jaringan perangkap mengidentifikasi paket-paket yang akan dapat keluar dari switch melalui beringin (hingga l dari mereka per port output) dan menandai sisanya untuk resirkulasi.

ytti
sumber
3

Akan selalu ada BEBERAPA perbedaan ketika dua komputer mengirim ke yang ketiga, kecuali jika Anda melakukan sesuatu yang khusus pada saklar itu akan ditransmisikan berdasarkan FIFO sehingga frame mana pun yang lebih dulu akan ditransmisikan terlebih dahulu.

David Rothera
sumber
1
Karena PC [23] menggunakan kabelnya sendiri, tidak ada yang mencegah frame untuk tiba tepat pada saat yang sama untuk ketepatan 'momen' (frekuensi) HW sedang berjalan. Saya kira itu tergantung pada perancang ASIC untuk memutuskan apa harus dilakukan dalam kasus itu, tapi saya kira itu akan membaca bingkai port dengan cara round-robin.
ytti
2
Bagus, aku lebih berarti bahwa kesempatan dua frame tiba di persis saat yang sama yang cukup rendah. Seperti yang Anda sebutkan itu mungkin akan turun ke desain ASIC dan saya cukup yakin itu tidak akan didokumentasikan di mana pun kecuali Anda melompati serangkaian lingkaran dengan tim akun Anda.
David Rothera
Dia yang menyela kemenangan pertama, dengan menganggap semua yang lain sama.
generalnetworkerror
0

Beralih maju satu paket pada satu waktu ketika mereka masuk beralih sehingga tidak ada tabrakan. Kemudian PC3 akan memproses paket dari PC1 & PC2 membagi waktu cpu-nya. Windowing dan buffering akan mengontrol aliran komunikasi.

Jon Rob
sumber