\"/
\"/ \"/    

Některé zkušenosti s používáním protokolu SLIP

Petr Ulrich
Ročník V - číslo 2, listopad 1994
Citace: P. Ulrich. Některé zkušenosti s používáním protokolu SLIP. Zpravodaj ÚVT MU. ISSN 1212-0901, 1994, roč. V, č. 2, s. 13-16.
Tematické zařazení: Počítačové sítě obecně, Software obecně - principy, tvorba
 předchozí článek | následující číslo 

O připojování osobních počítačů k síti Internet bylo již ve Zpravodaji napsáno dost. Dozvěděli jsme se, jak přeměnit své milované PC v terminál a tak se ve znakové formě radovat z přístupu do nejrůznějších světových databází, zkontrolovat si svou poštu atd. Možná, že přitom někoho napadlo, že PC (a jiné počítače) dokáží trochu víc, než jen emulovat terminál VT100 a být v jednoduché relaci se serverem. Ano, je tomu tak, být právoplatným členem Internetu není pouze výsadou propavoukovaných unixovských stanic. Jak by se vám líbilo spouštět např. mosaic zároveň s několika telnety a poštovním klientem přímo ze svého PC a v prostředí MS Windows pouze přes modem? Řešení se jmenují SLIP, CSLIP nebo PPP.

Co to znamená?

TCP/IP spojení jsou provozovatelná na různých typech médií, od Ethernetu, token-ringu až třeba po sériovou linku. Sériová linka se používá pro propojení odlehlých sítí LAN do sítě WAN a to je to, co nás právě zajímá. SLIP je zkratka Serial Line Internet Protocol, tedy IP po sériové lince. CSLIP je vlastně vylepšený SLIP o Van Jacobsonovu kompresi TCP/IP hlaviček. PPP je pak novější, na rozdíl od SLIPu již opravdový standard pro propojení dvou počítačů. Zkratka PPP vznikla z názvu Point-to-Point Protocol.

V době vzniku ARPANETu byly počítače velmi nákladné, modemy pomalé a telefonní linky nekvalitní. Tomu, kdo si mohl dovolit počítač, už nesešlo na tom, zda utratí i další astronomické částky za pronajatou linku nebo ne. Postupem doby se však kvalitní počítače propracovaly až na naše desktopy, modemy se zrychlily a telefonní linky... no, jak kde, a tak přišla potřeba kvalitních standardů pro komunikaci po sériové lince.

Nejdříve se objevil minimální protokol SLIP, který pomocí velmi jednoduchého mechanismu rámcování datagramů "zabezpečoval" přenosy pouze po velmi kvalitních linkách. Jeho nevýhodami jsou například nulová přizpůsobivost dynamicky se měnícím charakteristikám spojení, z čehož vyplývá, že obě komunikující strany musí předem vzájemně znát své adresy a mohou přenášet pouze IP datagramy. Samotný SLIP dále nepodporuje opravu a kompresi dat. Princip SLIPu je popsán v RFC 1055 A Nonstandard for Transmission of IP Datagrams Over Serial Lines. Jak již název napovídá, nejedná se o internetovský standard (nicméně se na dlouhou dobu ujal jako standard "de facto").

K CSLIPu již není co dodat, snad jen toto: používejte jej vždy, když můžete.

I přes výše popsané nevýhody je SLIP/CSLIP stále ještě žhavým kandidátem, je-li třeba propojit dva počítače (router a naši stanici) po telefonní lince. V tomto případě totiž většinou již známe IP adresy obou hostů a o opravu a kompresi dat se nám postarají modemy (doufejme).

PPP je relativně nejnovějším a nejucelenějším standardem v sériové IP komunikaci, který svým protokolem kompenzuje nedostatky staršího kolegy. Ale jak je tomu v reálném světě již zvykem, ne vždy se ujme to nejlepší. SLIP/CSLIP jsou podporovány velkým množstvím výrobců a některé terminálové servery například podporují pouze tento protokol na rozdíl od propracovanějšího (složitějšího) PPP.

Jaká je situace u nás?

Terminálový server CISCO umístěný na ÚVT, který všichni používáme k přístupu do brněnské MAN, umí jak SLIP/CSLIP, tak PPP. Díky absolutní nekompatibilitě mezi těmito dvěma protokoly se vsak daná linka může vždy nacházet pouze v režimu jednoho protokolu. Vzhledem k rozšířenosti SLIPu/CSLIPu si tedy na PPP prozatím necháme zajít chuť.

Terminálový server je nakonfigurován jako pasivní CSLIP, což znamená, že po spuštění SLIPu z příkazové řádky

     TERMINAL-SERVER> slip
Entering SLIP mode.
Your IP address is 147.251.25.1. MTU is 1500 bytes

se server dostane do SLIP módu a po přijetí prvního CSLIP datagramu se automaticky přepne do CSLIP režimu. Jiná metoda, jak spustit CSLIP, je zadat

     TERMINAL-SERVER> slip /compress

V současné době je k terminálovému serveru připojeno 5 modemů s brněnskými telefonními čísly (755753, 755755, 755777, 755778 a 41215322) a každému modemu je přiřazena IP adresa (147.251.20.1 až 147.251.25.1).
Pozor! I když terminálový server na příkaz slip odpoví něco v tom smyslu, že vaše IP adresa je např. 147.251.25.1, nenechte se zmást. Jedná se totiž o adresu vaší strany terminálového serveru, skutečná IP adresa vašeho počítače je 147.251.25.2.

V současné době je komprese povolena na všech linkách1.

Dobře, ale co je k tomu třeba?

Pro provozování SLIPu/CSLIPu stačí starý 2400 Bps modem s datakorekcí a datakompresí. Samozřejmě, čím rychlejší modem, tím lépe, ale externí V.42bis, tedy 2400 Bps modem, CSLIP stále ještě zvládá; výsledky testů ukazují průměrnou dobu návratu paketu, zaslaného terminálovému serveru programem ping, cca 10 sekund bez použití komprese dat a 5 sekund při použití hardwarové komprese.

Při CSLIP sezení na 2400 Bps s kompresí se dá celkem přijatelně používat mosaic (ovšem bez zobrazování obrázků), ftp i několik telnet seancí najednou. Záleží pouze na kvalitě linky. Při velmi špatných linkách se musí modemy navzájem často opravovat, což vede ke značnému zpomalení.

Co použít za platformu?

Odpověď je jednoduchá - cokoliv, co podporuje SLIP/CSLIP. Implementace těchto protokolů najdeme téměř všude, samozřejmě od UNIXu přes MACOS a DOS až po MS Windows. My se ve zbytku článku zaměříme pouze na MS Windows, protože každý administrátor UNIXu určitě ví, jak na SLIP, a počítače Macintosh zatím u nás nejsou tak rozšířeny. V MS-DOSu lze SLIP a PPP použít prostřednictvím paketových driverů, např. SLIP.EXE, ETHERSLIP.EXE, ETHERPPP.EXE apod., ve spojení například s Clarkson telnetem.

Winsock a ti druzí

Windows Socket API rozhraní, obecně známé pod názvem WinSock, je výsledkem snahy vývojářů vnést alespoň nějaký řád do TCP/IP pod MS Windows. WinSock API je založeno na Berkeley Sockets, BSD verze 4.3.

Implementací WinSocku existuje široká škála, od shareware až po komerční produkty. Ze shareware vzpomeňme alespoň Trumpet WinSock, což je asi nejzdařilejší implementace tohoto rozhraní. Jen pro zajímavost, WinSock by měl být dodáván standardně s každou verzí MS Windows počínaje WFW, a to jak v 16-bitové, tak i ve 32-bitové verzi; jinak je WinSock k mání pro Windows počínaje verzí 3.0 ve formě DLL a doprovodného programu, který slouží jako uživatelské rozhraní WinSocku.

Z toho, co říká WinSock FAQ, se můžeme dozvědět, že se jedná o specifikaci definující síťové programové rozhraní v MS Windows, založené na BSD socketech. Toto rozhraní zahrnuje jak funkce známé z BSD socketů, tak i některé nové funkce, které přímo využívají zprávově orientovanou architekturu MS Windows.

Jinými slovy, TCP/IP pod Windows = WinSock. K tomu, abychom mohli použít nějakou WinSock aplikaci, musí být spuštěn WinSock. WinSock běží buď nad nějakým packet driverem, nebo na volném komunikačním portu v případě SLIPu/CSLIPu.

Jak to všechno dát dohromady?

Ukažme si, jak nainstalovat sharewarový Trumpet WinSock od Trumpet Software International.

Pokud chceme používat pouze SLIP/CSLIP, je celá instalace velmi jednoduchá. Po spuštění Windows spustíme WinSock pomocí jeho rozhraní tcpman.exe. Při prvním spuštění tohoto programu se zobrazí konfigurační okénko, kde je třeba nejprve "zaškrtnout" položku Internal SLIP a pak dodat veškeré požadované informace. Poté již zbývá jen editovat login skript, přístupný pod položkou menu DaillerEdit Scripts.

Pokud chceme používat PPP nebo ethernetovou kartu s Trumpet WinSockem, je situace nepatrně složitější: ke slovu přicházejí packet drivery.2 Packet driver musí být spuštěn ještě před samotnými Windows spolu s winpkt.com, který je součástí Trumpet WinSock distribuce. Další postup je obdobný jako při konfiguraci SLIPu/CSLIPu až na to, že v nastavení WinSocku "nezaškrtneme" Internal SLIP, ale použijeme informace o svém packet driveru. Protože Trumpet WinSock přímo nepodporuje PPP, musíme použít PPP paket driver EtherPPP.com, který již obsahuje svou vlastní rutinu pro vytáčení modemu.

WinSock aplikace

Knihovna WinSock aplikací neustále roste a v současné době obsahuje implementace téměř všech známých TCP/IP aplikací z UNIXového světa. Některé jsou zdařilejší, jiné méně. Z nejdůležitějších a relativně nejlépe propracovaných shareware a public domain produktů je zkompilována public domain samoinstalační disketa pro MS Windows, která je případným zájemcům k dispozici u autora tohoto článku. Jde o produkty:

Dalšími Winsock aplikacemi jsou WS_FINGER, WS_PING, WSARCHIE, WINWHOIS, HOPCHKW (traceroute) a NSLOOKUP. Tímto seznamem však ani zdaleka není nabídka WinSock aplikací vyčerpána.

Další (ucelenější) informace o WinSock a TCP/IP lze najít na následujících HTML stránkách:

     http://www.zilker.net/users/internaut/update.html
http://www.charm.net/ppp.html
http://www.crynwr.com/crynwr/nelson.html
setting
1 Van Jacobsonova komprese hlaviček nemá nic společného s kompresí dat prováděnou modemy).
... zpět do textu
2 Packet drivery poskytují jednotné programové rozhraní k různým ethernetovým kartám; výborná sbírka packet driverů pochází ze sady Crynwr (dříve Clarkson drivers).
... zpět do textu
Zpět na začátek
ÚVT MU, poslední změna 14.11.2011