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
>>