Permintaan Ultra-Cepat Menggunakan Paket UDP

10

Saya menerapkan sistem di mana satu perangkat di jaringan kueri pada frekuensi yang sangat tinggi (ratusan atau ribuan kueri per detik) melalui pengiriman paket UDP kecil dengan 8 atau lebih byte data. Ini diterima oleh aplikasi lain, mungkin pada perangkat lain, yang melakukan beberapa pemrosesan yang sangat sederhana dan mengirimkan hasil beberapa byte-besar yang dibungkus dengan paket UDP lain.

Saya ingin tahu seperti apa waktu bolak-balik yang mungkin dilakukan dengan perangkat keras biasa, di mana sistem komunikasi mungkin terhubung melalui Ethernet berkabel beberapa meter secara terpisah, dengan mempertimbangkan propagasi dan penundaan transmisi, dll.

Pikiran dan saran lain juga diterima.

John Smith
sumber
2
Anda dapat melihat latensi dalam puluhan atau ratusan mikrodetik ... pasti latensi sub-milidetik ... berdasarkan uraian Anda, sepertinya Anda mempertimbangkan sistem perdagangan finansial ... latensi yang Anda minta sangat bergantung pada spesifik Anda hw , dan Anda jauh lebih baik melakukan tes daripada meminta nasihat gratis
Mike Pennington
Terima kasih banyak atas tanggapanmu. Sebenarnya bukan untuk sistem perdagangan keuangan dalam kasus ini. Saya hanya ingin ide yang kabur tentang apa yang mungkin terjadi sebelum memulai implementasi, lebih sebagai studi kelayakan daripada yang lainnya.
John Smith

Jawaban:

11

Sebuah contoh Juniper MX80 memiliki penundaan masuknya> sekitar 8us, pada saklar cut-through latensi rendah itu bisa <1us (mungkin 0,7us). (Ingat bahwa cut-through switch tidak dapat melakukan cut-through 100% waktu, hanya ketika port egress kebetulan menganggur!)

Serat 1 km adalah sekitar 5 us latensi (sekali lagi, satu arah).

Penundaan serialisasi @ 10G untuk payload berukuran minimum (46B) adalah sekitar 67ns (0,067us), dengan meningkatkan kecepatan tautan, Anda mengurangi penundaan serialisasi.

Header IP adalah 20B, header UDP adalah 8B, data Anda adalah 8B, sehingga Anda hanya memiliki 36B data, yang berarti muatan ethernet Anda akan mencakup 10B sampah yang harus Anda kirim, yaitu jika Anda memiliki sesuatu untuk ditambahkan ke payload Anda, tambahkan itu, ini memiliki 0 biaya latensi.

Saya harap Anda dapat memperkirakan RTT dari ini, dengan mengalikan penundaan perangkat dengan jumlah perangkat dan menambahkan 5us untuk setiap kilometer serat dan kemudian mengalikannya dengan 2.


Saya tidak bisa menahan diri untuk menambahkan pemikiran tentang HFT.

Menurut volume HFT ini dibagi dua antara 2009 dan 2012. Menyarankan bahwa kemenangan mudah hilang. Saya ingin melihat beberapa makalah ilmiah atau hanya data nyata tentang latensi HFT dan pengaruhnya terhadap laba. Saya menduga latensi yang memengaruhi laba perdagangan berada pada tingkat yang berbeda dengan latensi yang sedang kita bicarakan saat ini. Teman saya yang membangun jaringan untuk salah satu pertukaran terbesar tampaknya berpikir itu hanya pelanggan yang melakukan 'lebih rendah == lebih baik' tanpa memahami skala.
Saya benar-benar dapat memahami bagaimana HFT berguna ketika beberapa orang melakukannya, ketika Anda bisa mengamati pasar. Tidak melihat perubahan, pasarB melihat dan memanfaatkannya. Beberapa berbicara tentang menggunakan peraturan untuk menghentikan HFT dengan memajaki setiap perdagangan yang membuatnya mahal untuk semua orang, saya pikir itu tidak akan diperlukan, saya pikir jendela peluang sudah ditutup.

ytti
sumber
Jawaban yang sangat bagus dan sangat informatif, terima kasih. Bahkan beberapa pemikiran pribadi tentang HFT!
John Smith
1
@JohnSmith, jangan lalai untuk mempertimbangkan keterlambatan yang diperkenalkan di dalam titik akhir Anda (seperti penjadwal OS, atau pemrosesan kernel) ... ini dapat berkontribusi signifikan terhadap keterlambatan yang saya sebutkan di komentar sebelumnya.
Mike Pennington
Poin luar biasa tentang menggunakan ukuran paket minimum penuh dengan biaya 0 latensi.
generalnetworkerror
1

Saya pikir pada perangkat keras semi-tuned konvensional Anda harus dapat:

  1. Keluar dari tumpukan jaringan host Anda
  2. Tingkatkan tumpukan jaringan Anda berikutnya
  3. Cadangkan tumpukan jaringan itu dengan paket 'baru' Anda

Dalam ~ 10 us at 10gig. Jika Anda benar-benar mengunci segalanya, angka itu bisa jauh lebih rendah.

Hampir SEMUA latensi yang akan Anda lihat bukan dari perangkat keras / kabel jaringan, tetapi dari sistem host Anda. Saklar potong yang masuk akal, (Arista, Gnodal, New Cisco, dll) akan menjadi sub 1us.

Mulailah dengan memastikan proses yang memakan paket UDP disematkan ke inti yang sama dengan NIC Anda menyela. Dari sana, pastikan bahwa penggabungan pada NIC Anda dinonaktifkan, dan dari sana pastikan Anda mengaktifkan MSI-X dan DCA.

Jika Anda lebih serius ... lihat OpenOnload SolarFlare. Mereka memiliki serangkaian alat untuk menguji / memverifikasi kinerja juga.

radikalus
sumber