Serialisasi dan serialisasi kali dalam 40G / 10G dan 100G / 25G Ethernet

15

Baru-baru ini saya terlibat dalam diskusi tentang persyaratan latensi terendah untuk jaringan Leaf / Spine (atau CLOS) untuk menjadi tuan rumah platform OpenStack.

Arsitek sistem berjuang untuk RTT serendah mungkin untuk transaksi mereka (blok penyimpanan dan skenario RDMA masa depan), dan klaimnya adalah 100G / 25G menawarkan penundaan serialisasi yang sangat berkurang dibandingkan dengan 40G / 10G. Semua orang yang terlibat sadar bahwa ada lebih banyak faktor di ujung ke ujung permainan (yang dapat melukai atau membantu RTT) daripada sekadar NIC dan mengalihkan penundaan serialisasi port. Namun, topik tentang penundaan serialisasi terus bermunculan, karena mereka adalah satu hal yang sulit dioptimalkan tanpa melompati kesenjangan teknologi yang mungkin sangat mahal.

Sedikit terlalu disederhanakan (meninggalkan skema pengkodean), waktu serialisasi dapat dihitung sebagai laju bit / bit , yang memungkinkan kita mulai ~ 1,2μs untuk 10G (juga lihat wiki.geant.org ).

For a 1518 byte frame with 12'144bits,
at 10G (assuming 10*10^9 bits/s), this will give us ~1.2μs
at 25G (assuming 25*10^9 bits/s), this would be reduced to ~0.48μs 
at 40G (assuming 40*10^9 bits/s), one might expect to see ~0.3μs
at 100G (assuming 100*10^9 bits/s), one might expect to see ~0.12μs

Sekarang untuk bagian yang menarik. Pada lapisan fisik, 40G umumnya dilakukan sebagai 4 lajur 10G dan 100G dilakukan sebagai 4 lajur 25G. Bergantung pada varian QSFP + atau QSFP28, ini kadang-kadang dilakukan dengan 4 pasang untaian serat, kadang-kadang dibagi oleh lambdas pada pasangan serat tunggal, di mana modul QSFP melakukan beberapa xWDM sendiri. Saya tahu bahwa ada spesifikasi untuk jalur 1x 40G atau atau 2x 50G atau bahkan 1x 100G, tapi mari kita kesampingkan itu untuk sementara waktu.

Untuk memperkirakan keterlambatan serialisasi dalam konteks multi-lajur 40G atau 100G, kita perlu tahu bagaimana NIC 100G dan 40G dan mengganti port sebenarnya "mendistribusikan bit ke (set) kawat", "bisa dikatakan demikian. Apa yang sedang dilakukan di sini?

Apakah ini sedikit seperti Etherchannel / LAG? NIC / switchports mengirim frame dari satu "aliran" (baca: hasil hashing yang sama dari algoritma hashing apa pun yang digunakan di mana lingkup frame) di satu saluran yang diberikan? Dalam hal ini, kami mengharapkan penundaan serialisasi masing-masing seperti 10G dan 25G. Tetapi pada dasarnya, itu akan membuat tautan 40G hanya LAG 4x10G, mengurangi throughput aliran tunggal menjadi 1x10G.

Apakah itu seperti round-robin yang sedikit bijak? Setiap bit didistribusikan secara round-robin melalui 4 (sub) saluran? Itu mungkin sebenarnya menghasilkan penundaan serialisasi yang lebih rendah karena paralelisasi, tetapi menimbulkan beberapa pertanyaan tentang pengiriman dalam urutan.

Apakah itu seperti bingkai-bijaksana round-robin? Seluruh frame ethernet (atau potongan bit yang sesuai lainnya) dikirim melalui 4 saluran, didistribusikan dengan mode round robin?

Apakah ini sepenuhnya lain, seperti ...

Terima kasih atas komentar dan petunjuk Anda.

Marc 'netztier' Luethi
sumber

Jawaban:

14

Bagian yang melakukan pembagian ke beberapa jalur disebut Physical Coding Sublayer dalam standar IEEE 802.3ba. Presentasi oleh Gary Nicholl ini memberikan gambaran yang bagus tentang itu.

Penjelasan singkatnya adalah bahwa data dibagi ke beberapa jalur dalam blok masing-masing 64 bit ( disandikan pada kawat sebagai 66 bit untuk pemulihan jam). Oleh karena itu segera setelah ukuran paket melebihi N * 64 bit (= 32 byte untuk 4 jalur), ia dapat sepenuhnya memanfaatkan semua jalur. Akan ada beberapa keterlambatan dalam pengkodean, tetapi itu mungkin spesifik implementasi.

Diagram ini dari presentasi yang ditautkan di atas: Fungsi Sublayer Coding Fisik

jpa
sumber
1
"Akan ada beberapa penundaan dalam pengkodean" , uh oh. Sekarang Anda membuka kaleng cacing lain! Berapa penundaannya? Apakah ini mempengaruhi keterlambatan paket secara keseluruhan? Dll ...
pipa
1
Ah, terima kasih untuk itu. Cara saya memahaminya, "Kata-kata" ini adalah "potongan bit yang sesuai ukurannya", seperti yang saya taruh di postingan asli saya. Apakah itu mendekati?
Marc 'netztier' Luethi
1
@ Marc'netztier'Luethi Persis.
jpa
@pipe Ya. Untungnya "Semua orang yang terlibat sadar bahwa ada lebih banyak faktor" :)
jpa
2
@pipe dengan baik, saya pikir kita akan mengesampingkan itu. Setiap tantangan yang muncul dari sekarang, saya akan menjawab dengan "selama Anda mengirim data yang cukup sekaligus (32bytes) untuk memungkinkan NIC / Port untuk round-robin di empat jalur, Anda akan mendapatkan penundaan serialisasi paralelisasi yang lebih pendek / paralel kalian mengejar banyak ". Tentu saja setengah frame Ethernet yang dipanggang dengan header IP dan tidak ada payload yang sudah melewati batas itu. Karena itu: Nevermind.
Marc 'netztier' Luethi
16

Anda terlalu banyak berpikir.

Jumlah jalur yang digunakan tidak terlalu penting. Apakah Anda mengangkut 50 Gbit / detik lebih dari 1, 2, atau 5 jalur, penundaan serialisasi adalah 20 ps / bit. Jadi, Anda akan mendapatkan 5 bit setiap 100 ps, ​​terlepas dari jalur yang digunakan. Pemisahan data menjadi jalur dan penggabungan kembali terjadi di sublayer PCS dan tidak terlihat bahkan di atas lapisan fisik. Terlepas dari situasi Anda, tidak masalah apakah PHY 100G membuat serial 10 bit secara berurutan pada satu jalur (masing-masing 10 ps, ​​total 100 ps) atau secara paralel di atas 10 jalur (masing-masing 100 ps, ​​total 100 ps) - kecuali jika Anda sedang membangun PHY itu.

Secara alami, 100 Gbit / s memiliki setengah keterlambatan 50 Gbit / s dan seterusnya, sehingga semakin cepat Anda membuat serial (di atas lapisan fisik), semakin cepat frame ditransmisikan.

Jika Anda tertarik dengan serialisasi internal pada antarmuka, Anda harus melihat varian MII yang digunakan untuk kelas kecepatan. Namun, serialisasi ini terjadi sambil jalan atau bersamaan dengan serialisasi MDI yang sebenarnya - memang membutuhkan waktu beberapa menit, tetapi itu tergantung pada perangkat keras yang sebenarnya dan mungkin tidak mungkin untuk diprediksi (sesuatu sepanjang 2-5 ps akan menjadi tebakan saya untuk 100 Gbit / s). Saya sebenarnya tidak khawatir tentang ini karena ada banyak faktor yang lebih besar yang terlibat. 10 ps adalah urutan latensi transmisi yang akan Anda dapatkan dari kabel tambahan 2 milimeter (!).

Menggunakan empat jalur masing-masing 10 Gbit / detik untuk 40 Gbit / detik TIDAK sama dengan menggabungkan empat tautan 10 Gbit / detik. Tautan 40 Gbit / s - terlepas dari jumlah lajur - dapat mengangkut aliran 40 Gbit / s tunggal yang tidak dapat dihubungkan dengan LAGged 10 Gbit / s. Juga, penundaan serialisasi 40G hanya 1/4 dari 10G.

Zac67
sumber
3
Terima kasih atas komentar Anda. Jadi Anda mengatakan bahwa pada 10/25/40 / 100G, aturan dasar jumlah bit-per-frame / bit = penundaan serialisasi tetap valid, tidak peduli berapa banyak jalur yang menggunakan lapisan fisik (berikan atau ambil beberapa perbedaan kecil)?
Marc 'netztier' Luethi
6
Iya. Multi-lane Ethernet sangat berbeda dengan tautan gabungan dalam hal ini.
Zac67