Seberapa umumkah paket yang dijatuhkan dalam komunikasi di dalam pusat data?

10

Katakanlah saya memiliki 2 mesin di pusat data yang sama tetapi tidak harus di rak yang sama.

Seberapa umum jatuhnya paket ketika dikirim menggunakan UDP di antara kedua mesin ini?

Saya bertanya dengan asumsi bahwa karena hanya ada beberapa sakelar paling banyak di antara mesin-mesin itu maka paket-paket itu tidak akan jatuh sama sekali .

Seberapa umum kedatangan paket yang out-of-order dalam pusat data yang sama? Asumsi saya hanya ada satu rute 99,9% dari waktu sehingga ini tidak bisa terjadi.

Namun, kapan pun aku mendapati diriku berpikir secara absolut aku tahu aku pasti kehilangan sesuatu!

Informasi latar belakang apa yang saya perlukan untuk mendapatkan pemahaman yang lebih baik tentang kapan paket yang akan dijatuhkan, dan seberapa sering mereka akan jatuh, dan tiba di luar urutan untuk mesin di pusat data yang sama?

Pada akhirnya saya mencoba untuk memutuskan antara menggunakan multicast UDP atau PGM ketika berkomunikasi antara berbagai contoh Linode VPS yang terletak di pusat data yang sama. Informasi harus tiba dan tertib. Tentu, UDP tidak terdengar terlalu bagus!

Tetapi, jika seseorang dapat mengharapkan pengiriman yang hampir sempurna atau sempurna di pusat data yang sama, maka itu tidak masalah. Tapi, saya menguji asumsi itu.

Terima kasih.

z8000
sumber

Jawaban:

11

Anda tidak dapat mengandalkan UDP untuk mengirimkan paket secara berurutan karena spesifikasi tidak memberikan jaminan tersebut. Bahkan dengan asumsi situasi yang paling ideal, sepotong kabel ethernet antara dua host, masih ada masalah OS, tumpukan jaringan, driver NIC, dan implementasi libc yang bertentangan dengan tulisan Anda.

Pada setiap langkah dalam rantai itu, penulis kode itu akan memilih TIDAK untuk memprioritaskan memesan paket UDP bahkan jika mereka tiba untuk alasan sederhana bahwa mereka tidak perlu.

Salah satu contoh yang dibuat bisa menjadi struktur data paket yang masuk dibaca, yang mungkin menjadi buffer cincin. Paket yang tiba secara berurutan, akan ditempatkan, dalam urutan ke buffer cincin, tetapi mungkin lebih mudah bagi penulis driver untuk membuangnya ke lapisan atas dari kode jaringan dalam urutan memori , maka secara acak pemesanan mereka.

Mengambil situasi Anda, mesin virtual dijalankan pada infrastruktur bersama yang akan dijalankan untuk volume, bukan kinerja, maka kemungkinan memprediksi urutan paket UDP akan diterima akan rendah.

Singkatnya, jika spec mengatakan Anda tidak bisa mengandalkan pemesanan paket UDP. Anda tidak dapat mengandalkannya, dan Anda tidak dapat mencoba mengubah lingkungan untuk memberikan jaminan yang lebih kuat daripada yang pernah dijanjikan.

Dave Cheney
sumber
Inilah yang saya pikir harus saya pikirkan. Terima kasih telah menyatakannya dengan baik!
z8000
1
Jika Anda ingin multicast yang andal, mungkin untuk streaming, lihat en.wikipedia.org/wiki/Real-time_Transport_Protocol
Dave Cheney
0

Jika ada yang tertarik untuk bereksperimen, cukup gunakan Wireshark. Jika seseorang benar-benar memahami kasus kami tentang konektivitas yang lambat atau paket yang terjatuh, kami hanya merefleksikan port pada sakelar, sambungkan laptop dengan Wireshark dan lihatlah.

Web
sumber
FWIW di Linode, contoh VPS tidak dapat masuk ke mode promiscuous.
z8000
Anda harus dapat menginstal Wireshark secara lokal pada mesin untuk menangkap data yang masuk, atau hanya mencerminkan port pada sakelar dan menangkap data dengan cara itu. Port mirroring akan menjadi lebih rumit jika dilakukan untuk sistem virtual yang mungkin berbagi beberapa port. Tetapi Wireshark dapat memfilter untuk item tertentu seperti IP dan saya pikir nama host.
Web
0

Hampir semua saklar akan menyebabkan pemesanan ulang dua paket kapan saja dan diperhitungkan oleh banyak protokol jaringan seperti PGM.

Satu hal yang perlu dipertimbangkan adalah bahwa sebagian besar pusat data memblokir datagram dan memblokir multicast untuk menyederhanakan dan mengurangi overhead infrastruktur jaringan mereka.

Protokol IP / PGM itu sendiri hanya perlu digunakan jika Anda mengaktifkan PGM Router Assist dan menyadari elemen-elemen jaringan antara server dan klien, jika tidak tetap menggunakan PGM yang dienkapsulasi dalam UDP dan menghemat beban dalam mengelola izin aplikasi.

Jika Anda menggunakan lapisan olahpesan seperti ØMQ Anda dapat menunda pilihan IP / PGM, UDP / PGM, atau jaringan overlay TCP ke penyebaran dan integrasi.

Steve-o
sumber
-2

Saya menulis aplikasi .net multicast sederhana yang dapat mengukur paket yang jatuh di bawah tekanan yang ditentukan.

Anda dapat mengunduhnya di sini: SimpleMulticastAnalyzer .

Nikmati.

Eran Betzalel
sumber