1. Mi is az a TCP/IP?
A TCP/IP nem más, mint egy protokollkészlet,
amelyet arra dolgoztak ki, hogy hálózatba kapcsolt számítógépek
megoszthassák egymás között az erõforrásaikat.
A fejlesztés az ARPAnet köré csoportosult kutatók
munkája. Valószínûleg az ARPAnet a legismertebb
TCP/IP alapú hálózat.
Hedrick azt írja, hogy "1987 júniusáig
legalább 130 különbözõ cég adott ki olyan
terméket, amely a TCP/IP-t támogatta, és többezer hálózat
alkalmazza is a protokollokat". Én nem jártam utána,
hogy ma mekkora lehet ez a szám, de nyilvánvalóan ennél
sokkal több. 1987 óta az Internet jelentõsen meghízott.
Elõször tekintsük át az alapvetõ fogalmakat.
Az itt leírt protokollkészlet legjobb elnevezése "Internet
protokollverem" (vagy Internet protokollkészlet). A
TCP és az IP
ezen protokollok közül kettõ. (Leírásukat
lásd lejjebb.) Mivel a protokollok közül a TCP és az
IP a legismertebb, ezért az egész családra a TCP/IP vagy az
IP/TCP kifejezést használják. Valószínûleg
nincs is értelme ellenkezni. (A sok rövidítésrõl
a következõ oldalakon lelebbentjük a fátylat.)
Az Internet: hálózatok együttese. Hozzátartozik az
Arpanet, az NSFnet, regionális hálózatok (mint a
NYsernet), számos egyetem és kutatóintézet
helyi hálózata, és egy sor katonai hálózat
is. Az "Internet" kifejezés ezen hálózatoknak az összességét
jelenti. Ennek egy része a DDN (Defense Data Network), amely az
USA Védelmi Minisztériumának az irányítása
alatt áll. Ide tartozik néhány kutatói hálózat
(pl. Arpanet), illetve sokkal titkosabb katonai hálózatok is.
(Mivel az Internet protokollok fejlesztéséhez való anyagi
hozzájárulások nagy része DDN szervezetektõl
származik, ezért az Internet és a DDN kifejezések néha
egybemosódni látszanak.) A fenti hálózatok
mindegyike összeköttetésben áll egymással. A
felhasználók bármelyikrõl bármelyikre küldhetnek
üzenetet, kivéve azokat, ahol biztonsági vagy egyéb
okokból megszorították a hozzáférést.
Az Internet protokollokat leíró dokumentumok olyan hivatalos szabványok,
amelyeket az Internetet használók közössége
elfogadott és alkalmaz. Az USA Védelmi Minisztériuma 1987 tájékán
kiadta a TCP/IP
MILSPEC-féle definícióját. A helyzet az,
hogy a TCP/IP hívõk továbbra is az Internet szabványokat
használják. A MILSPEC változat azokkal konzisztens.
Mindegy, hogy minek nevezzük, a TCP/IP egy protokollcsalád. Jónéhány
tagja biztosít sok alkalmazás számára szükséges
alacsony szintû szolgálatokat. Ilyen például az
IP, a TCP és az
UDP. (Ezeket egy kicsit késõbb részletesebben
is megnézzük.) Mások olyan meghatározott feladatokat látnak
el, mint például a számítógépek közötti
állománytovábbítás, az üzenetküldés,
vagy éppen egy adott gépre bejelentkezett felhasználók
lekérdezése. A TCP/IP-t kezdetben fõleg kis- és
nagyszámítógépek (mainframe-ek) körében
alkalmazták. Ezek a gépek saját merevlemezzel rendelkeztek,
és általában teljesen önállóak voltak.
Innen származtathatók a TCP/IP legfontosabb "hagyományos"
szolgáltatásai:
- állománytovábbítás
- Az állománytovábbítási protokoll (File
Transfer Protocol, azaz FTP) segítségével bármely
számítógépen lévõ felhasználó
bármelyik másik gépre küldhet és onnan
beszerezhet állományokat. A biztonságot a felhasználónak
a másik gépen érvényes azonosítója és
a hozzátartozó jelszava jelenti. Gondoskodtak arról is,
hogy a különbözõ karakterkészlettel, sorvégjellel
stb... rendelkezõ számítógépek közötti
állománytovábbítás is zavartalan legyen. Ez
nem teljesen ugyanaz a dolog mint a hálózati állományrendszer
(network file system) vagy a netbios protokoll, amelyekrõl késõbb
lesz szó. Az FTP egy olyan segédprogram, amelyet bármely idõpontban
futtatva, a hálózatba kapcsolt más számítógépeken
lévõ állományok elérhetõvé válnak.
Arra használják, hogy az adatállományt a saját
rendszerre átmásolják.
(Az FTP leírását
lásd az RFC 959-ben).
- távoli bejelentkezés
- A hálózati terminál protokoll (TELNET) a
felhasználók távoli gépekre való bejelentkezését
kezeli. A távoli viszonyt (session) annak a gépnek a megadásával
kell kezdeni, amelyhez csatlakozni szeretnénk. Attól kezdve bármit
is gépelünk be, minden adat a megadott géphez kerül a
viszony befejeztéig. Vegyük észre, hogy a felhasználó
valójában még mindig a saját számítógépével
kommunikál. A telnet program az, amelyik a futása alatt ezt láthatatlanná
teszi a felhasználó elõtt. Minden begépelt karakter
közvetlenül a másik rendszerhez kerül. A távoli géppel
meglévõ kapcsolat nagyjából hasonlít egy
modemes vonalhoz (
dial-up connection). Ez azt jelenti, hogy a távoli rendszer elõször
a bejelentkezést kéri, majd egy jelszót, ugyanúgy,
ahogy ez egy modemes kapcsolat esetén történne. A kijelentkezéskor
a telnet program kilép a vonalból, és ismét a saját
gépünk kommunikál velünk. A telnet program kisszámítógépes
megvalósításai általában egy elterjedt termináltípus
emulációját is tartalmazzák.
(A specifikációt
lásd az
RFC 854 és az RFC 855 dokumentumokban. Az RFC 854 --
860 a TELNET opcióit írja le.)
- számítógépes levelezés (mail)
- Ez a szolgáltatás arra való, hogy a felhasználók
üzeneteket küldjenek egymásnak. Az emberek kezdetben csak egy-két
számítógépet használtak. Ezeken a gépeken
aztán mindenki a saját levelezési állományát
tartotta fenn. Levél, illetve üzenet elküldésekor annyi
történik, hogy az egyszerûen a címzett megfelelõ
állományához fûzõdik. Az olyan környezetben
azonban, ahol mikroszámítógépeket használnak,
ezzel gond van. A legalapvetõbb probléma abból fakad, hogy
a mikroszámítógépek nem a legmegfelelõbbek üzenetek
fogadására. Levél küldésekor a levelezést
végzõ program kommunikációs csatornát akar
megnyitni a címzett géppel. Ha ez a gép történetesen
egy mikroszámítógép, akkor lehetséges, hogy éppen
ki van kapcsolva, vagy esetleg nem az üzeneteket kezelõ alkalmazást
futtatja. Ennek a problémának a megoldására az üzeneteket
kezelését egy állandóan futó kiszolgáló
(mail server) végzi el. A mikrogépeken futó levelezõ
program pedig egy felhasználói interfészt alkot a kiszolgáló
felé.
(Lásd az RFC 821 és 822
dokumentumokat a számítógépes levelezésre
vonatkozólag. Az RFC 937 pedig egy olyan protokollt ír le,
amely a mikroszámítógépeknek a levelezést
kiszolgáló számítógéptõl való
üzenetfogadását specifikálja.)
A TCP/IP protokollok bármely megvalósításának
tartalmaznia kell a fenti szolgáltatások mindegyikét. A
mikroszámítógépes implementációkban a
levelezõ rendszer nem mindig szerepel. Ezek a megszokott, hagyományos
alkalmazások fontos szerepet játszanak a TCP/IP alapú hálózatokban.
A hálózatokról alkotott elképzelés azonban
folyamatosan változik. Manapság már sok helyen többfajta
számítógép is mûködik egyszerre: mikroszámítógépek,
munkaállomások, kisszámítógépek,
illetve nagyteljesítményû számítógépek.
Ezen gépek mindegyikét speciális feladatokra állították
fel. Habár az emberek többsége még mindig csak egy
meghatározott számítógépet használ a
munkája során, ez a gép a kívánt szolgáltatások
eléréséhez egyéb hálózati erõforrásokat
vesz igénybe. Ez a modell hozta létre a "server/client"
(kiszolgáló/kliens) alapú hálózati szolgáltatásokat.
A kiszolgáló nem más mint egy meghatározott hálózati
rendszer, amely a hálózat többi tagja részére
biztosít bizonyos szolgáltatásokat. A kliens pedig az a
rendszer, amely a szolgáltatást igénybe veszi. (Nem szükséges,
hogy a kiszolgáló és a kliens különbözõ
számítógépen legyen. Lehetnek például
egyazon a számítógépen futó különbözõ
programok is.) Az alábbiakban felsoroljuk a mai hálózati
felépítésben jelenlévõ tipikus kiszolgálókat.
Ezek a szolgáltatások a TCP/IP keretén belül is megtalálhatók.
- hálózati állományrendszer (network
file system)
- Ennek a szolgáltatásnak a segítségével a
hálózaton lévõ állományokat az FTP módszerénél
valamivel természetesebben lehet elérni. A hálózati állományrendszer
azt az illúziót kelti, hogy az egyik rendszer lemezei vagy más
egységei közvetlenül más rendszerekhez tartoznak. Nincs
szükség külön hálózati alkalmazásra
ahhoz, hogy az állományokhoz hozzá lehessen férni.
Az adott számítógép egyszerûen úgy
viselkedik, mintha plusz egységeket kapott volna. Ezek a "virtuális"
meghajtók a másik rendszer lemezeit fogják jelenteni. Több
hasznos oldala is van ennek a megközelítésnek. Egyfelõl
nagykapacitású meghajtókat lehet megosztani több számítógép
között. Ennek nyilvánvaló takarékossági elõnyei
vannak. Másfelõl egy csapásra megvalósul a közös
állomány-hozzáférés. Könnyebbé válik
a rendszer karbantartása, archiválása, mivel nem kell a különbözõ
gépeken lévõ másolatok idõszerûsítésével
és tartalékolásával foglalkozni. Sok cég kínál
nagyteljesítményû, meghajtó nélküli számítógépeket.
Ezeknek a gépeknek a mûködése nagy mértékben
a különbözõ állománykiszolgálókhoz
kapcsolt meghajtóktól függ.
(A TCP alapú, PC-re
készült
NetBIOS leírását az RFC 1001 és 1002
adja. A munkaállomások és a kisszámítógépek
körében a Sun Network File System az irányadó.
Ennek a protokoll specifikációit a Sun Microsystems cég
szolgáltatja.)
- távoli nyomtatás
- Itt arról van szó, hogy a más számítógépekhez
csatlakoztatott nyomtatókat sajátként tudjuk elérni.
(A
legszélesebb körben használt protokoll a Berkeley Unix
távoli sornyomtatás protokollja. Sajnos ennek dokumentált
verziója nem létezik. A C nyelvû forráskódot a
Berkeley egyetemtõl könnyen be lehet szerezni, ami a megvalósítást
könnyíti.)
- távoli futtatás
- A szolgáltatás megengedi programok másik gépen
való végvégrehajtását. Ez akkor hasznos, ha a
munka nagy részét kisebb teljesítményû gépen
el lehet végezni, de néhány feladat nagyobb rendszer erõforrásait
igényli. A távoli futtatásnak jónéhány
fajtája létezik. Vannak olyanok, amelyek a parancsokat parancs
szinten hajtják végre. (Az intelligensebb változatok olyan
rendszert keresnek, amely szabad erõforrással rendelkezik). Léteznek
távoli eljáráshívó rendszerek is, amelyek
megengedik, hogy a programok másik gépen futó szubrutinokat
hívjanak meg.
(Ennek a megvalósítására több
protokoll is létezik. A Berkeley Unix-ban két kiszolgáló
is található a távoli futtatásra: az rsh és
az rexec. Ezek man oldalai írják le az általuk használt
protokollokat. A Berkeley 4.3 verzióval terjesztett programcsomag
tartalmaz egy olyan osztott parancsértelmezõt, amely a rendszer
terhelésétõl függõ mértékben
osztja fel a feladatokat különbözõ rendszerek között.
A távoli eljáráshívások módszere az
1980-as évek vége felé a kutatások középpontjában
állt, aminek eredményeképpen sok szervezet rendelkezik a
szolgáltatás implementációjával. A leginkább
elterjedt és kereskedelmileg is támogatott távoli eljáráshívó
protokoll a Xerox cég Courier, illetve a Sun cég
RPC protokollja. A dokumentációk beszerezhetõk
maguktól a cégektõl. A Courier-nek létezik TCP alapú,
publikus megvalósítása is, amelyet a Berkeley 4.3
programcsomag részeként terjesztenek. Az RPC egy Sun megvalósítása
a Usenet hálózaton volt megtalálható,
illetve a Berkeley 4.3 részeként is megjelent.)
- névkiszolgálók (name servers)
- Nagy kiterjedésû rendszerek mûködése során
rengeteg név keletkezik, amit valahogy adminisztrálni kell. Ide
tartoznak a felhasználók és a jelszavaik, az azonosítók
és a számítógépek nevei és hálózati
címei. Ha mindezeket minden számítógépen
naprakészen akarnánk tartani, akkor elvesznénk az információ
dzsungelében. Ennek elkerülése végett az adatbázisokat
nem mindegyik, hanem csak egy pár rendszeren tartják fenn. A többi
rendszer az adatokhoz a hálózaton keresztül fér hozzá.
(Az
Interneten lévõ gépek neveit és Internet címeit
nyomon követõ névkiszolgáló protokollokat az
RFC 822 és 823 dokumentumok írják le. Ez ma
már bármely TCP/IP megvalósításnak része
kell, hogy legyen. Az IEN 116 egy olyan régebbi névszolgáltató
protokollt ír le, amelyet még egy pár terminálkiszolgáló
és egyéb termék használ a számítógépek
keresésére. A Sun cég Yellow Pages rendszere a
felhasználók neveinek, az állomány-megosztó
csoportoknak, illetve a Unix rendszerek által használt más
adatbázisoknak az általános kezelésére szolgál.
A rendszer a kereskedelemben kapható. A protokoll leírása a
Sun cégtõl szerezhetõ be.)
- terminálszerverek
- Rengeteg rendszerben elõfordul, hogy a terminálokat nem
csatlakoztatják közvetlenül a számítógépekhez.
Ehelyett ezek úgynevezett terminálszerverekhez csatlakoznak. A
terminálszerver nem más mint egy kisteljesítményû
számítógép, amely csak a telnet (vagy más,
bejelentkezést végrehajtó protokoll) futtatására
hivatott. Amennyiben a használt terminál ilyen számítógéphez
van kötve, akkor egyszerûen csak be kell gépelni egy számítógép
nevét, és máris létrejön a kapcsolat. Általában
lehetséges egyszerre több számítógép felé
aktív kapcsolat fenntartása is. A terminálszerver végzi
az élõ kapcsolatok közötti váltogatást, és
figyelmezteti a felhasználót, ha egy kapcsolat kimenetén
megjelenik valami.
(A terminálszerverek a már említett
telnet protokollt használják. A valódi terminálszervereknek
tudniuk kell a névszolgálatot, illetve egyéb protokollokat
is.)
- hálózat alapú ablakos rendszerek
- A nagy teljesítményû grafikai programok régebben
olyan számítógépeket igényeltek, amelyekhez közvetlenül
csatlakozott bittérképes grafikus képernyõ. A hálózati
ablakos rendszerek megengedik, hogy az ilyen programok más számítógéphez
csatlakoztatott kijelzõt használjanak. Ezek a rendszerek biztosítják,
hogy a különbözõ feladatokat a legmegfelelõbb
rendszerek végezzék, miközben végig egyetlen grafikus
felületet mutatnak a felhasználó felé.
(A
legelterjedtebb megvalósítás az X. A protokoll leírását
a MIT Athena projektjétõl lehet beszerezni. Sok cég
támogatja a Sun NeWS nevû rendszerét is. Mindkét
rendszer TCP/IP-re épül.)
A fenti protokollok közül jónéhány a Sun, a
Berkeley, illetve más szervezetek munkájának eredménye.
Ez azt jelenti, hogy ezek hivatalosan nem részei az Internet protokollkészletnek;
persze a megvalósításukban TCP/IP-t használnak, mint
bármely más TCP/IP alkalmazás. Mivel a protokoll definíciók
nem képeznek tulajdonjogot, valamint mivel kereskedelmileg támogatott
megvalósítások is hozzáférhetõek, ezért
célszerû ezeket a protokollokat az Internet protokollkészlet
részeként tekinteni. A fenti lista a TCP/IP-n keresztül elérhetõ
szolgáltatásokból csak egy mintafelsorolás, a fõbb
alkalmazások többségét azonban tartalmazza. A többi
széles körben használatos protokoll olyan speciális
információkat biztosít, mint például a
bejelentekezett felhasználók, az aktuális idõ stb...
Amennyiben olyan szolgáltatásra van szükség, amely nem
szerepel a fentiek között, akkor ajánlott az Internet
Protokollok aktuális listájának (RFC 1011) a
megtekintése. Ebben megtalálható minden protokoll. Érdemes
még a fõbb TCP/IP megvalósításokat is végigböngészni,
hogy a különbözõ cégek milyen újabb szolgáltatásokat
adtak hozzá a protokollokhoz.
Vissza a tartalomjegyzékhez
>>