Téma 18 – Statické a dynamické smerovanie, vetvenie v jazyku C++

Téma 18 – Statické a dynamické smerovanie, vetvenie v jazyku C++

Úvod

Routery zabezpečujú prenos paketov medzi rôznymi sieťami.

Na rozhodovanie o smere prenosu používajú:

👉 smerovanie

Smerovanie môže byť:

  • statické
  • dynamické

Druhá časť témy sa venuje vetveniu programu v jazyku C++, ktoré umožňuje rozhodovanie programu podľa podmienok.


Smerovanie

Smerovanie znamená:

👉 určovanie cesty paketov v počítačovej sieti

Router rozhoduje:

  • kam paket odošle
  • ktorou cestou pôjde

Statické smerovanie

Pri statickom smerovaní:

  • administrátor zadáva cesty ručne
  • router automaticky nevyhľadáva nové cesty

Výhody:

  • jednoduché
  • malé zaťaženie routera
  • bezpečnosť

Nevýhody:

  • náročná správa väčších sietí
  • zmeny treba robiť ručne

Dynamické smerovanie

Pri dynamickom smerovaní:

  • routery používajú smerovacie protokoly
  • automaticky si vymieňajú informácie

Výhody:

  • automatická aktualizácia trás
  • vhodné pre veľké siete

Nevýhody:

  • väčšie zaťaženie siete
  • zložitejšia konfigurácia

Kedy nepotrebujeme smerovací protokol

Smerovací protokol nie je potrebný:

  • pri malých sieťach
  • pri jednoduchých topológiách
  • ak používame statické smerovanie

Priamo pripojené siete

Priamo pripojené siete:

👉 netreba oznamovať

Router ich rozpozná automaticky.

V smerovacej tabuľke sú označené:

C

Význam:

Connected

Statická konfigurácia vzdialenej siete

Vzdialenú sieť môžeme zapísať:

  • pomocou next-hop IP adresy
  • pomocou výstupného rozhrania

Príklad statickej routy

ip route 192.168.2.0 255.255.255.0 10.0.0.2

Označenie statických trás

Statické routy sa v tabuľke označujú:

S

Spätný smer

Musíme konfigurovať:

  • dopredný smer
  • aj spätný smer

Inak odpoveď nebude vedieť:

👉 nájsť cestu späť


Default gateway

Default gateway znamená:

👉 predvolená brána

Používa sa pri odosielaní paketov mimo lokálnej siete.

V smerovacej tabuľke býva označená:

S*

Dynamické smerovacie protokoly

Používajú sa:

  • RIP
  • OSPF
  • EIGRP

Intervaly obnovovania

RIP

Aktualizácia približne každých:

30 sekúnd

OSPF

Aktualizácia podľa zmien v sieti.

Hello pakety:

10 sekúnd

Administrative Distance

Administrative Distance určuje:

👉 dôveryhodnosť smerovania

Najnižšiu hodnotu má:

priamo pripojená sieť

Hodnota:

0

Packet Tracer

V Packet Traceri:

  • konfigurujeme routery
  • nastavujeme IP adresy
  • testujeme komunikáciu

Overenie komunikácie

Používame:

ping

Vetvenie programu

Vetvenie programu znamená:

👉 rozhodovanie programu podľa podmienky

Používa sa:

  • pri rozhodovaní
  • pri výbere možností
  • pri spracovaní vstupov

Príkazy vetvenia v C++

Používajú sa:

  • if
  • if else
  • switch

Príkaz if

Syntax:

if(podmienka)
{
    príkazy;
}

Príkaz if else

Syntax:

if(podmienka)
{
    príkazy;
}
else
{
    príkazy;
}

Príkaz switch

Používa sa pri:

  • viacerých možnostiach

Syntax:

switch(premenná)
{
    case 1:
        príkazy;
        break;
}

Príklad programu

Program zistí, či je číslo kladné alebo záporné.

#include <iostream>
using namespace std;

int main()
{
    int x;

    cout << "Zadaj cislo: ";
    cin >> x;

    if(x >= 0)
    {
        cout << "Kladne cislo";
    }
    else
    {
        cout << "Zaporne cislo";
    }

    return 0;
}

Použitie vetvenia

Vetvenie používame:

  • v aplikáciách
  • v hrách
  • v riadiacich systémoch
  • pri spracovaní údajov

Najčastejšie chyby maturantov

  • chýbajúca spätná routa
  • nesprávna maska siete
  • chyba v syntaxi if
  • zabudnuté break pri switch
  • nesprávne smerovanie paketov

Zhrnutie pre maturitu

  • Statické smerovanie sa konfigurujte ručne.
  • Dynamické smerovanie používa smerovacie protokoly.
  • Priamo pripojené siete sú označené C.
  • Statické routy sú označené S.
  • Vetvenie programu umožňuje rozhodovanie podľa podmienky.
  • V C++ používame if, if else a switch.

Otázky pre študentov

  1. Aký je rozdiel medzi statickým a dynamickým smerovaním?
  2. Čo znamená označenie C v smerovacej tabuľke?
  3. Na čo slúži default gateway?
  4. Čo je vetvenie programu?
  5. Aký je rozdiel medzi if a switch?