Ruuter

**Marsruuter** ehk **ruuter** on elektrooniline seade, mis ühendab omavahel kaht või enamat arvutivõrku, ning võimaldab nendevahelise andmeside.

## Ruuteri tööpõhimõte
Andmeside kahe arvutivõrgu vahel toimib pakettidena. Iga pakett sisaldab informatsiooni selle kohta, millisest võrgust see tuleb ja millisesse võrku see minema peab. Nende aadresside järgi saab ruuter otsustada, kas paketi saatja ja vastuvõtja on ühes võrgus või on vastuvõtja saatjast erinevas võrgus. Kui alamvõrgust (nt koduarvutist) on soov saavutada ühendus ülemvõrguga (nt internet), siis ruuter otsib oma marsruutimistabelist (ruuterisisene tabel, kus on kirjas ruuteriga ühendatud arvutite ja võrkude aadressid), kas ülemvõrgu aadress on tabelis olemas. Juhul, kui aadressi seal ei ole, siis saadab ruuter paketi modemi aadressile, mis omakorda loob ühenduse soovitud internetiserveriga, ning saadab saadud paketi tagasi ruuterile. Ruuter saadab omakorda paketi tagasi päringu teinud seadmele. Juhul, kui alamvõrgu seade soovib ühendust saada teise alamvõrgu seadmega, siis leiab ruuter soovitud seadme aadressi marsruutimistabelist ja edastab paketi otse õigele seadmele, ilma modemit läbimata.

## NAT-ruuteri funktsioon
NAT-ruuterid loodi selleks, et piiratud IP-aadressiruumi korral oleks internetti võimalik kasutada rohkemates tööjaamades. Kui alamvõrgus on igal arvutil oma IP-aadress, siis internetti ühendades tõlgib ruuter kõik alamvõrgu paketid ümber ja lisab nendele enda kõrgema võrgu aadressi (IP-aadress, mille teenusepakkuja on andnud). Seega on internetis paketti vastuvõtval serveril paketi tagasi saatmiseks alati üks aadress, isegi kui alamvõrgus on mitu seadet, mis korraga päringuid teevad (ruuter määrab ise, millisele alamvõrgu seadmele internetiserverist saadud pakett saata). See hõlbustab internetiserveritel IP-aadresside jälgimist, kuna ilma ruuteriteta oleks vaja jälgida igat alamvõrgus olevat arvutit eraldi. See muudaks aga IP-aadresside arvu nii suureks, et nende erinevate kombinatsioonide arv lõppeks otsa. Seega on NAT-ruuter oma funktsiooni täitmisel hädavajalik.

NAT-ruuteri funktsioonid:
* IP-aadresside marsruutimine
* võrguaadressi translatsioon ehk NAT
* lüüsimine, näiteks sise- ja välisvõrgu vahel
* tulemüür
* sisevõrgu-IP-aadressi päringule vastuse andmine DHCP-ga, st oskab käituda internetiteenuse pakkujana
* kohtvõrguühendused, näiteks kommutaator
* ssal ruuteritel on ka pääsupunkti (*Access Point*) funktsioon. Selliseid ruutereid kutsutakse WiFi-ruuteriteks.

NAT-ruuterid on ka efektiivsed vahendid sisevõrgu turvalisuse tõstmisel.

## Ajalugu
Esimene seade, mis omas tänapäeva ruuteriga sarnast funktsionaalsust, oli IMP (Interface Message Processor), mis ühendas 1960. aastate lõpust kuni 1989. aastani arvutivõrke ja moodustas interneti eelkäija ARPANETi. Ruuteri idee töötati esialgselt välja INWG (International Network Working Group) poolt ning siis kandis see nimetust lüüs (gateway). INWG alustas tegevust 1972. aastal mitteametliku organisatsioonina, mis keskendus erinevate võrkude omavahelisel ühendamisel kerkivatele probleemidele. Sama aasta lõpus sai INWG IFIPi (International Federation for Information Processing) alamkomiteeks.

Lüüsid erinesid varasematest pakette vahetavatest seadmetest kahel viisil. Esiteks ühendasid lüüsid eri tüüpi võrke, näiteks jadaliini ja kohtvõrku. Teiseks olid lüüsid ühenduseta võrguseadmed, mis tähendas, et info liikus pakettidena, millel kõigil oli määratud paketi saaja ja saatja IP-aadress, ning kahe seadme vahel polnud pakettide saatmiseks vaja luua ühendust kogu sideseansi ajaks. 
Lüüside ideed uuris edasi DARPA (Defence Advanced Research Projects Agency) ja 1970. aastatel tulenes sellest tänapäeval kasutatav TCP/IP ehk Interneti mudel.

Esimene IP-protokolliga ruuter töötati samuti välja DARPA initsiatiivil aastatel 1975–1976.
Esimesed multiprotokolliga (mitme protokolli toega) ruuterid loodi 1981. aastal MITis (Massachusettsi tehnoloogiainstituut) Noel Chiappa ja Stanfordi ülikoolis William Yeageri poolt.
Kuigi multiprotokolliga ruuterid on praeguseks peaaegu välja surnud (OSI mudeli võrgukihis on hetkel kasutuses peaaegu eranditult IP-protokoll) olid need väga tähtsad arvutivõrkude algusaegadel, mil kasutuses polnud ainult TCP/IP-, vaid ka mitmed muud protokollid.

1970.–1980. aastateni täitsid ruuteri ülesandeid selleks määratud tavaarvutid. Kuigi tavaarvutid saavad ruuteri ülesannetega hakkama, on tänapäeva ruuterid ülimalt spetsialiseeritud oma funktsioonide täitmiseks: on lisatud riistvara ja tarkvara, mis kiirendab pakettide edastamist ja krüpteerimist.

## Ruuterite tüübid
Ruuterid võib jaotada kaheks, juhtmeta ruuterid ja juhtmega ruuterid.
* Juhtmega ruuteri puhul on iga võrgus olev arvuti ühendatud Etherneti kaabliga ruuteri LAN-pessa. Modem on omakorda ühendatud Ethernet kaabliga ruuteri WAN-pessa.
* Juhtmeta ruuteri puhul on samuti modem ühendatud ruuteri WAN-pessa, kuid kohtvõrgus olevad arvutid ei pea enam kasutama kaablit, et internetti ühenduda. Selleks on juhtmeta ruuteril WAP (*wireless access point*) ehk juhtmeta pääsupunkti omadused. Selline seade saadab pakette raadiolainetena, mitte kaabli kaudu. Seega peab olema seadmel, mida soovitakse internetiga ühendada, olemas raadioside funktsionaalsus. Arvutitel on selleks näiteks USB WiFi-pulk. Lisaks on juhtmeta ruuteril ka enamasti olemas juhtmega ruuteri omadused, ehk sinna saab ka ühendada kaableid ja nende kaudu ka arvuteid. Ühes võrgus võib seega olla nii juhtmega kui juhtmeta ühendatud seadmeid.

## Ruuteri ehitus

Ehituselt sarnaneb ruuter väga tavaarvutiga. Neil on olemas protsessor, mälu, pordid perifreeria ühendamiseks ning mõnel ruuterimudelil on isegi ekraan info kuvamiseks. 
Suurim erinevus arvutiga võrreldes on ketaste (diskett, CD-ROM, kõvaketas) puudumine. Ruuteril pole kettaid, kuna ta täidab vaid üht ülesannet, milleks on sissetulevate pakettide töötlemine ja filtreerimine, ning seejärel nende õigesse asukohta edasisaatmine. 
Teine erinevus on ruuteri lisamoodulite lisamise piiratus. Kui tavaarvutisse saab lisada video-, heli- ja graafikakaarte, siis ruuteri lisakaardid on alati võrgufunktsioonide laiendamiseks (uue võrguprotokolli toe lisamine) või nende kiirendamiseks. 
* Ruuteri protsessor
Kui tavaarvuti protsessorid põhinevad alati mingil kindlal protsessori arhitektuuril (nt Intel x86), siis ruuteri protsessorid on väga erinevad ja ette nähtud erinevate funktsioonide täitmiseks (nt Cisco ruuterid kasutavad Motorola, Silicon Graphicsi ja teiste kiibitootjate protsessoreid).
* Ruuteri mälu
Enamik ruutereid kasutab nelja tüüpi mälu, mis kõik on mõeldud erinevate ülesannete täitmiseks.
# DRAM (Dynamic Random Access Memory) ehk dünaamiline muutmälu sarnaneb tavaarvutis oleva mäluga. Ruuter talletab seal sisseehitatud operatsioonisüsteemi, ruuteri seadeid, marsruutimistabelit ja paketi vahemälu.
# NVRAM (Non-volatile Random Access Memory) ehk püsiv muutmälu hoiustab ruuteri konfiguratsioonifaili koopiat. Juhul, kui ruuter kaotab voolu või lülitatakse tahtlikult välja, säilitab NVRAM konfiguratsioonifailist koopia, mille ruuter järgmisel käivitusel taas käivitada saab. See tagab ruuteri seadete püsivuse.
# FLASH-mälu ehk välkmälu on samuti muutumatu nagu NVRAM. Erinevus seisneb aga selles, et välkmälu saab kustutada ja ümber programmeerida vastavalt vajadusele. Välkmälus on ruuteri operatsioonisüsteemi fail, mis tagab ruuteri funktsionaalsuse. Mälu ümberprogrammeeritavus tagab võimaluse vajadusel ruuteri operatsioonisüsteemi uuendada.
# ROM (Read-Only Memory) ehk püsimälu on samuti muutumatu mälu. ROM-mälu on viimane abinõu ruuteri funktsionaalsuse tagamiseks. Juhul, kui NVRAM-, DRAM- ja välkmälus olev informatsioon peaks hävima, siis ROM hoiustab kõige elementaarseimaid algandmeid, millega ruuter suudab ennast käivitada ja uuesti seadistada lasta. Samuti on püsimälus hoiustatud mingi minimaalne osa operatsioonisüsteemist või terve operatsioonisüsteemi koopia.

## Marsruutimistabel

Marsruutimistabel sisaldab informatsiooni, mille alusel ruuter teeb otsuse järgmiste andmepakettide edastamise kohta. Tabel koosneb kirjetest ehk marsruutidest, iga kirje sisaldab vastuvõtja võrgu aadressi, järgmise sõlme aadressi, millele peab edastama pakette ja marsruudi kaalu – meetrikat. Salvestuste meetrikad tabelis aitavad välja arvutada lühimaid marsruute erinevatele saatjatele. Sõltuvalt ruuteri mudelist ja kasutatavatest marsruutimisprotokollidest võib tabel sisaldada mingit lisainformatsiooni. Näiteks:

```
192.168.64.0/16 [110/49] via 192.168.1.2, 00:34:34, FastEthernet0/0.1

kus 192.168.64.0/16 – sihtvõrk,
    110/- administratiivne vahemaa 
    /49 – marsruuti meetrika,
    192.168.1.2 – järgmise marsruuteri aadress, millele peab edastama
            pakette 192.168.64.0/16 võrgu jaoks,
    00:34:34 – aeg, mille jooksul oli teada see marsruut,
    FastEthernet0/0.1 – marsruutimise liides, mille kaudu võib 
                  jõuda  «naabrini» 192.168.1.2.
```

Marsruutimistabelit võib koostada kahel viisil:
* **staatiline marsruutimine** – andmeid sisestatakse tabelisse ja muudetakse käsitsi. Selline viis nõuab administraatori sekkumist iga kord, kui toimuvad muutused võrgu topoloogias. Teisest küljest on see kõige stabiilsem variant, mis nõuab ruuteri riistvaralt miinimumi tabeli hooldamiseks.
* **dünaamiline marsruutimine** – kõiki kirjeid uuendatakse automaatselt ühe või rohkema marsruutimisprotokolli abil (RIP, OSPF, IGRP, EIGRP, IS-IS, BGP jne). Vaatamata sellele koostab marsruuter tabeli, kus on optimaalsed teed sihtvõrkudeni. Tabelit koostatakse mõnede kriteeriumite alusel: vahesõlmede arv, kanalite andmeedastuse võimsused, andmeteedastuste kinnihoidmised jne. Optimaalsete teede ehk marsruutide arvutamise kriteeriumid sõltuvad kõige sagedamini marsruutimisprotokollidest ja samuti ruuteri konfiguratsioonist. Selline tabeli koostamise viis laseb automaatselt hoida marsruutimistabelit aktuaalses olekus ja arvutada välja optimaalseid marsruute jooksva võrgu topoloogia alusel. Kuid dünaamiline marsruutimine pingutab riistvara ja võrgu ebastabiilsus võib viia olukorrani, kus ruuterid ei jõua salvestada oma tabeleid, mis omakorda viib andmete kaotamiseni.

Tihti rakendatakse tabelite koostamisel graafiteooriat.

## Vaata ka
* Kohtvõrgu jaotur
* Kohtvõrgu kommutaator
* Modem
* OSI mudel

## Viited

## Välislingid

* ARPANET IMP, Interface Message Processor
* IMP1: The first node of the ARPANET, The History of the Internet @ucla.edu
* Router Overview, devhardware.com