Bagikan melalui


Tentang Tabel Perutean Terdistribusi

Tabel Perutean Terdistribusi (DRT) ada sebagai jala simpul yang bekerja sama, di mana setiap simpul adalah instans aplikasi menggunakan DRT API. Simpul yang menerbitkan kunci bertanggung jawab untuk membantu simpul lain menerbitkan dan menyelesaikan kunci. Simpul juga dapat berpartisipasi dalam mode "hanya atasi", yang tidak mengharuskan mereka untuk membantu rekan-rekan. Protokol DRT dijalankan melalui transportasi UDP/IPv6.

Simpul yang menerbitkan build kunci dan mempertahankan tabel perutean lokal simpul lain dalam jala. Tabel perutean ini dioptimalkan sehingga simpul dapat dengan cepat menemukan kunci tertentu dalam jala dengan menemukan kunci langsung di tabel perutean lokal, atau dengan meminta simpul lain menerbitkan kunci secara numerik dekat dengan target. Tindakan ini diulang hingga kunci yang diperlukan ditemukan atau simpul menentukan bahwa tidak ada kunci tersebut.

Kunci DRT adalah bilangan bulat yang tidak ditandatangani 256-bit. Kedekatan antar kunci didefinisikan oleh perbedaan numerik di antaranya. Keyspace DRT dianggap melingkar. Misalnya, nilai kunci pertama yang mungkin, dan nilai kunci terakhir yang mungkin dianggap sebagai tetangga.

Dalam DRT yang aman, simpul diperlukan untuk mengautentikasi kunci yang mereka terbitkan. Mekanisme di mana simpul mengautentikasi kunci harus diatur menggunakan DRT API saat DRT diinisialisasi. Ini dilakukan dengan memilih penyedia keamanan untuk DRT. Penyedia keamanan adalah modul yang dapat menghasilkan token yang digunakan untuk mengautentikasi kunci, dan memverifikasi token yang dihasilkan oleh simpul lain. Ini harus mengimplementasikan antarmuka penyedia keamanan yang didefinisikan dalam dokumentasi ini. DRT Windows 7 dikirim dengan dua penyedia keamanan yang diimplementasikan sepenuhnya yang dapat digunakan untuk membangun aplikasi Windows.

Selama inisialisasi, aplikasi juga harus menyediakan DRT dengan penyedia bootstrap. Penyedia bootstrap adalah modul yang dapat mengambil titik akhir jaringan simpul yang sudah ada dalam jala DRT, dan dipanggil oleh DRT ketika simpul baru dibuat. Seperti modul penyedia keamanan, penyedia bootstrap harus menerapkan antarmuka yang ditentukan dengan baik. DRT Windows 7 dikirim dengan dua penyedia bootstrap yang diimplementasikan sepenuhnya.

DRT menganggap tetangga langsung dari kunci khusus. Lima kunci terdekat secara numerik lebih kecil dan lima kunci terdekat secara numerik lebih besar dari bentuk kunci yang diterbitkan apa yang disebut set daun. DRT melaporkan perubahan pada kumpulan daun kunci melalui DRT API.

Siklus Hidup DRT dan Transisi Status

Aplikasi dapat menginisialisasi instans DRT lokal menggunakan fungsi DrtOpen . Fungsi ini memicu proses bootstrapping, di mana DRT API memanggil penyedia bootstrap untuk mempelajari kunci dan titik akhir jaringan simpul lain yang sudah berpartisipasi dalam DRT. Jika penyedia bootstrap berhasil menemukan setidaknya satu simpul lain, DRT memasuki status DRT_ACTIVE. Dalam status ini, aplikasi dapat mencari kunci yang diterbitkan oleh simpul lain, dan dapat menerbitkan kunci yang dapat diselesaikan. Jika penyedia bootstrap tidak berhasil menemukan simpul lain, DRT memasuki status DRT_ALONE. DRT akan tetap dalam status DRT_ALONE dan akan mencoba bootstrap secara berkala untuk menemukan rekan-rekan dan pindah ke status DRT_ACTIVE.

Simpul dapat beralih ke status ini dari DRT_ACTIVE.

Status Siklus Hidup Kondisi
DRT_ALONE Simpul lokal belum menemukan simpul lain di DRT. Sementara dalam keadaan ini, simpul terus mendengarkan simpul lain dalam DRT.
Jika simpul lain bergabung dengan DRT, simpul lokal akan beralih ke status DRT_ACTIVE. Jika jaringan tidak berfungsi, jaringan akan beralih ke DRT_NO_NETWORK. Jika terjadi kesalahan serius dengan DRT, simpul akan beralih ke status DRT_FAULTED.
DRT_NO_NETWORK Ketika node kehilangan konektivitas jaringan, simpul beralih ke status DRT_NO_NETWORK. Pada titik ini aplikasi dapat menunggu konektivitas jaringan dipulihkan, dan dapat menutup DRT.
DRT_FAULTED Terjadi kesalahan serius dalam simpul lokal. Misalnya, jika komputer lokal kehabisan memori fisik.
Saat node memasuki status ini, aplikasi harus memanggil DRTClose API, memperbaiki masalah, dan menginisialisasi ulang DRT dengan DrtOpen.

Menggunakan API Tabel Perutean Terdistribusi

Referensi API Tabel Perutean Terdistribusi