Distance Vector Implementation
-
Before installing project make sure the following prerequisites have been met.
-
Directory structure of this project
-
Install and running the project
We’ll download the code from its repository on GitHub.
-
How node representation and how to send information
-
Answer for questions in specification
-
See men behind the project and their contribution
What things you need to install the software and how to install them
Installed :
GNU Make
(https://www.gnu.org/software/make/)g++
(https://gcc.gnu.org/)
.
├── Makefile
├── README.md
├── data
└── src
This project is intended to run on Linux/Mac workspace.
git clone https://github.com/adrianhp97/DistanceVector.git
cd DistanceVector
make
./DistanceVector
Node disimulasikan dengan array of struct TableRow, struct TableRow terdiri dari integer distance dan nexthop. Setiap TableRow memiliki array untuk merepresentasikan routing table. Indeks array adalah nomor simpul. Proses pengiriman pesan:
- Menerima input skenario pengiriman pesan dari user
- Jika node pengirim memiliki distance = 1 dengan penerima, maka lanjutkan, jika tidak = 1, maka abaikan
- Melakukan looping pada array TableRow di array, jika distance tidak sama dengan -1, 1, dan 0, maka lanjutkan proses.
- Jika distance TableRow dari indeks pengirim memiliki nilai lebih kecil dari distance-1 indeks penerima, maka nilai distance indeks pengirim diisi ke distance indeks penerima. Nexthop pada TableRow penerima diisi dengan pengirim.
- Jika distance TableRow pengirim memiliki nilai sama dengan distance-1 TableRow penerima dan indeks pengirim lebih kecil dari nexthop di tabel penerima, maka nexthop di tabel penerima diisi dengan indeks pengirim.
- Pada distance vector, setiap router mengirimkan informasi dari list router yang diketahui dan jaraknya kepada router tentangganya. Setiap router hanya mengetahui informasi dari router bertetangga dengannya. Pada link state, setiap router memberikan informasi dan interfacenya kepada network yang terhubung. Baik router yang bertetangga, maupun router yang terdapat di network. Setiap router mengetahui semua topologi network sampai ke setiap routernya dan keterhubungannya. Pada network kecil dimana jumlah router lebih kecil dari 100, maka routing protocol lebih bagus untuk digunakan. Sedangkan untuk network dengan skala besar, maka link state routing protocol lebih bagus untuk digunakan.
- Pada saat ini yang lebih banyak digunakan adalah link-state di mana implementasinya adalah OSPF. Lebih populer dari EIGRP/distance vector karena EIGRP merupakan solusi dari Cisco sehingga tidak tersedia luas kepada semua vendor. Sedangkan OSPF adalah routing protocol open standard yang di support oleh kebanyakan vendor yang ada saat ini.
- Winarto [13515061] - yowinarto Struct TableRow, check node validity, check send info condition, pengiriman informasi
- Ray Andrew [13515073] - rayandrews Input node dari user, check edge validity, check send info condition, pengiriman informasi
- Adrian Hartarto Pramudita [13515091] - nathanchrs Save input ke node, check scenario validity, check send info condition, pengiriman informasi