S Palm Piloty na internet snadno a rychle (7)

Dnes si uvedeme, jak vytvořit na počítači Palm Pilot přípojné místo, které můžeme využít pro síťovou komunikaci - port.

3. Porty

Nyní již umíme najít IP adresu počítače, ke kterému se chceme připojit; nevíme však zatím, jak toto připojení uskutečnit. Nevíme ani, jak vyhledat službu (třeba FTP nebo WWW server), se kterou chceme komunikovat. Abychom se dostali dál, je nejprve potřeba přiblížit, co jsou to porty. Na prvním obrázku máme v síti internet zobrazeny dva počítače. Palm Pilot, jehož IP adresu nám přidělil poskytovatel služeb internetu, a hledaný počítač, jehož IP adresu jsme zjistili:

Port si můžeme představit jako konektor, který může být přítomen na počítači připojeném v síti internet. Tento imaginární konektor slouží k obousměrnému přenosu dat. Na jednom počítači může být těchto konektorů (portů) nejvýše 65535 - každý má své 16bitové číslo (číslo portu). Zasíláme-li druhému počítači data, musíme je vždy směrovat na nějaký port. Podobně pokud nějaká data čteme, opět je můžeme číst jen z některého z portů.

Porty s čísly od 1 do 1024 mají zvláštní význam. Dohodou bylo pevně stanoveno, k čemu (k jakým službám) budou sloužit porty s čísly 1 až 1024. Například port s číslem 79 slouží ke zjišťování informací o uživatelích počítače (služba finger). Seznam některých čísel portů, společně se službami, které je využívají je v následující tabulce:

 Číslo 
 portu 
 Jméno 
 služby 
Popis
7 echo Data, která na tento port pošlete se vám hned vrátí zpátky.
21 ftp Přenos souborů (file transfer protocol).
25 smtp Odesílání pošty v síti internet.
80 http Stránky WWW.
110 pop3 Vyzvedávání pošty v síti internet.

Seznam čísel portů, společně se jmény služeb si můžete prohlédnout v souboru c:\windows\services (bez přípony) nebo - na počítačích c UNIXem - v souboru /etc/services. Porty mohou sloužit k obousměrné komunikaci. Zašleme-li například na port 79 hledaného počítače uživatelské jméno, tak pokud je příslušná služba (finger) spuštěná, můžeme z portu 79 přečíst odpověď: informace o příslušném uživateli.

Na každém počítači nemusí být nutně přítomno všech 65565 konektorů (v případě portů mluvíme o tom, že porty nemusí být otevřeny). Úkolem naší dnešní kapitoly bude, naučit se zjistit, zda je ten který port na hledaném počítači otevřen a v kapitole následující si ukážeme, jak z portu vzdáleného počítače číst data.

Porty a Palm Pilot

Veškerá komunikace v síti internet se může dít jen mezi dvěma porty. Dříve než začneme komunikovat se vzdáleným počítačem, musíme vytvořit port na počítači Palm Pilot. Číslo nově vytvářeného portu nás zatím nezajímá a operační systém jej určí sám v okamžiku, kdy port poprvé použijete. Na počítači Palm Pilot mohou takto vzniknout nejvýše 4 porty.

Teprve po vytvoření portu se můžeme propojit se vzdáleným počítačem - zasíláme data z portu Palm Pilota na port nalezeného počítače a obráceně.

V šesté kapitole se naučíme, jak vytvořit na počítači Palm Pilot port, který bude mít námi zvolené číslo a jak na tomto portu naslouchat. Ostatní počítače se budou moci připojit k Palm Pilotovi a prohlížet si informace o databázích, které se na něm nalézají, jako stránku www.

Protokoly

Ve většině publikací o programování síťových služeb je úvodní kapitola věnovaná protokolům, které jsou používány pro komunikaci mezi počítači. Z hlediska programování počítačů Palm Pilot a kompatibilních nás zajímají pouze protokoly dva - TCP a UDP. Oba dva protokoly slouží k výměně informací mezi počítači a každý z nich má své uplatnění:

Protokol TCP slouží k obousměrnému spolehlivému spojení dvou počítačů v síti internet. Tento protokol je nejznámější a používá jej většina aplikací v síti internet. Před použitím protokolu TCP musíme navázat spojení s druhým počítačem; nedojde-li k přerušení komunikace, tak jsou data která pošlete druhému počítači spolehlivě a bez chyb doručena všechna a ve správném pořadí.

Protokol TCP:

Vytvoř lokální port
Propoj jej s příslušným portem vzdáleného počítače pomocí protokolu TCP
  Pošli data...
  Čti data...
Zruš spojení

Oproti protokolu TCP, který zajišťoval obousměrné a spolehlivé posílání dat mezi dvěma počítači je protokol UDP jednosměrný a nespolehlivý. Protokol UDP nevyžaduje navázání spojení: odeslání bloku dat druhému počítači (o tomto bloku dat mluvíme jako o datagramu) proběhne okamžitě. Nevýhodou je, že nelze zajistit spolehlivé doručení dat vzdálenému počítači - může se stát, že během datagramu (bloku dat) sítí internet dojde ke ztrátě dat.

Každý z protokolů má své použití. Protokol TCP se používá pro komunikaci s poštovním serverem, vyzvedávání webových stránek a ostatním činnostem, při kterých vyžadujeme spolehlivost přenosu. V našem článku se mu budeme věnovat výrazně více, protože jej pravděpodobně budete používat častěji. Přesto jsou oblasti použití, ve kterých oceníte rychlost protokolu UDP vyváženou možností ztráty dat: například posílání zvuku nebo videa sítí internet je pomocí tohoto protokolu jednodušší.


Příště si popíšeme, co jsou sokety (sockets) a uvedeme si funkce, sloužící k jejich vytváření.