TCP/IP Protokoll
A TCP/IP betűszó az angol Transmission Control Protocol/Internet Protocol (átviteli vezérlő protokoll/internet protokoll) rövidítése, mely az internetet felépítő protokollstruktúrát takarja. Nevét két legfontosabb protokolljáról kapta, a TCP-ről és az IP-ről. A „TCP/IP protokoll” név tehát alapvetően hibás, közérthetőség szempontjából szerencsésebb lenne a „TCP/IP protokollstruktúra/protokollhierarchia” név, azonban az előbbi névhasználat terjedt el, mely laikusok számára zavaró lehet.
Történetének kezdete az ARPANET idejére (1969) tehető, 1974-ben Vinton G. Cerf és Robert E. Kahn dolgozta ki az ARPANET új protokollstruktúráját, mely az NCP-t (Network Control Protocol) hivatott kiváltani. Kezdeti kiforratlan verziói után 1979-ben dokumentálták a 4-es verziót, mely 1983-ra teljesen leváltotta az NCP-t. Az ARPANETből azóta kifejlődött Internet azóta is ezt a protokollstruktúrát használja.
A TCP/IP felépítése a rétegződési elven alapul, minden egyes réteg egy jól definiált feladatot végez el, és a rétegek egymás között szolgálatelérési pontokon keresztül kommunikálnak. Minden réteg csak a vele szomszédos réteggel képes kommunikálni, mivel ezek egymásra épülnek. Alapvetően négy réteg alkotta, melyet ötre bővítettek.
Alkalmazási réteg
Az alkalmazási réteg a felhasználó által indított program és a szállítási réteg között teremt kapcsolatot. Ha egy program hálózaton keresztül adatot szeretne küldeni, az alkalmazási réteg továbbküldi azt a szállítási rétegnek.
Szállítási réteg
Az alkalmazási rétegtől kapott adat elejére egy úgynevezett fejlécet (angolul: header) csatol, mely jelzi, hogy melyik szállítási rétegbeli protokollal (leggyakrabban TCP vagy UDP) küldik az adatot.
Hálózati (Internet) réteg
A szállítási rétegtől kapott header-adat pároshoz hozzáteszi a saját fejlécét, amely arról tartalmaz információt hogy az adatot melyik végpont kapja majd meg.
Adatkapcsolati réteg
Az adatkapcsolati réteg szintén hozzárakja a kapott adathoz a saját fejlécét, és az adatot keretekre bontja. Ha a kapott adat túl nagy ahhoz, hogy egy keretbe kerüljön, feldarabolja és az utolsó keret végére egy úgynevezett tail-t kapcsol, hogy a fogadó oldalon vissza lehessen állítani az eredeti adatot.
Fizikai réteg
A fizikai réteg továbbítja az adatkapcsolati rétegtől kapott kereteket a hálózaton.
A fogadó oldalon ugyanez a folyamat játszódik le visszafelé, míg az adat a fogadó gép alkalmazásához nem ér.
Eredetileg a fizikai és az adatkapcsolati réteg egy réteg volt, neve „Hoszt és hálózat közötti réteg”.
A 224.0.0.0 - 255.255.255.255 IP-címtartomány későbbi alkalmazások számára van fönntartva, de valószínűleg nem lesz jelentősége, mert hamarosan életbelép az IP6.
Annak érdekében, hogy elkerüljük a TCP/IP hálózatok és az internet közötti konfliktusokat, minden címosztály számára van néhány cím, amik nem lesznek az internet felé route-olva. Ezeket kizárólag lokális hálózatok számára ötlötték ki és mindig alkalmazni kell őkat, amikor IP-címre van szükség, de nincs tényleges internetcsatlakozás. Ezek a címek a következők :
Az IP-cím formája
A hálózaton minden számítógépnek egy (host) vagy több (gateway) egyértelműen meghatározott IP-címe van. Itt azokról a címekről van szó, amik az IP-datagrammokban vannak megadva. Az IP-datagrammok bemutatásánál kiderült, hogy ezek a címek 32 bites számok. Ezeket a számokat rendszerint 4 oktett formájában ábrázolják.
Tehát a 954C0C04 hexadecimális címet 4 oktettre (byte-ra) osztják fel, amiket pont választ el. Így keletkezik a 95.4C.0C.04 hexadecimális, vagy az ismertebb 149.76.12.4 decimális forma.
Az IP-címeket központilag adják ki, ami azt jelenti, hogy nem lehet tetszőleges kombinációkat alkalmazni. Egy lokális hálózatban elvileg lehet tetszőleges címeket használni, mihelyt létrejön egy internetkapcsolat, akkor viszont a központilag kiadott címeket kell használni. Ehhez a Föld minden országa fenntart egy NIC-et (Network Information Center), ami a címadásban illetékes.
Hálózati- és host-címek
Az IP-címek oktettekre való felosztásának hátterében még egy másik lényeges dolog áll. Az internet nagyobb részt nem a hálózatra kötött szóló számítógépekból, hanem az interneten egymással kommunikálni képes számítógéphálózatokból áll. Az IP-cím mindig fel van osztva egy hálózati- és egy host-címre. Ez a sajátosság fontos szerepet tölt be a routing-ban, mert mindig abból lehet kiindulni, hogy az azonos hálózati című IP-címek lokális hálózatban vannak.
Aszerint, hogy az IP-címnek mely része számít hálózati és mely része hostcímnek, különböző felső határai vannak a hálózatok, ill. a hálozatonkénti host-ok lehetséges számának. Mivel az interneten minden címnek egyedinek kell lenni, ezért mára az IP- címkiadás szűk keresztmetszetté vált. Már dolgoznak egy új standardon (IP6), ami 64 bites címeket fog alkalmazni.
Címosztályok definiálásával oldják meg azt a kérdést, hogy az IP-cím melyik része hálózati cím. Öt címosztály létezik, ezek közül azonban csak három releváns, a többi kettő kutatási és kísérleti célokra van fönntartva. A címosztályok :
Cím- |
Hálózati cím |
Hostcím |
Hálózatok |
Hostok max száma |
Kezdőcím |
Végcím |
A |
1 |
3 |
126 |
16777214 |
1.0.0.0 |
126.0.0.0 |
B |
2 |
2 |
16382 |
65534 |
128.0.0.0 |
191.255.0.0 |
C |
3 |
1 |
2097150 |
254 |
192.0.0.0 |
223.255.255.0 |
Címosztály |
IP-cím |
A |
10.0.0.0 |
B |
172.16.0.0 - 172.31.0.0 |
C |
192.168.0.0 - 192.168.255.0 |
Speciális címek
Azoknak az IP-címeknek, melyekben a hostcím 0 vagy 255, speciális jelentésük van. Minden, ami nullára végződik magát a mindenkori hálózatot jelenti; minden, ami 255-re végződik a hálózatra csatlakoztatott host-okat jelenti. Így a 149.76.255.255 cím nem egy meghatározott címet jelent a hálózaton, hanem az összes számítógépet, ami ezen a hálózaton lóg (Broadcast Adresse).
Van két foglalt hálózati cím, amiknek speciális jelentésük van : a 0.0.0.0 és a 127.0.0.0 Az első az ú.n. default route (alapértelmezetten beállított route), a másik az ú.n. loopback.
A 127.0.0.0 hálózat mindig a lokális hálózatot jelenti a hálózaton belül, teljesen mindegy, hogy a lokális hálózatnak mi a valódi címe. Szokás szerint a mindenkori host-nak loopback interfaceként rendelkezésére áll még a 127.0.0.1 cím. Minden csomag, amit erre a címre küld ki a host, azonnal úgy érkezik meg, mintha egy hálózatról jönne. Így lehet például hálózati software-t fejleszteni egy olyan számítógépen, ami nincs hálózatra kapcsolva.
A 0.0.0.0 címnek a routing számára van jelentése. A default route-ra lesz kiküldve minden adatcsomag, amit nem a lokális hálózatban lévő címre küldünk. Ez az előre beállított route a következő gateway-re mutat, ami már tudni fogja, hogy hova kell küldeni az adatcsomagot. Ha a gateway nem ismer route-ot, ami elvezet a megfelelő célhoz, úgy van egy alapértelmezett route-ja, ahova elküldi az adatcsomagot ...
Alhálózatok és a netmask
A hostcím egy része belsőleg alhálózati címként is értelmezhető. Az első példánál maradva a 12.4 számú host a 149.76 B-osztályú hálózatban úgy is interpretálható, mint a 149.76 hálózat 12 számú alhálózatában a 4 számú host. A netmask határozza meg azt, hogy a 32 bites cím mely bitjeit kell hálózati- és mely bitjeit kell hostcímként értelmezni.
A netmask az IP-címhez hasonlóan egy 32 bites szám, ami négy oktettre van felosztva. Ennek a maszknak minden egyes 1-re állított bitje az IP-címbeli azonos pozíciójú bitet a hálózati cím részeként definiálja. Egy példa a jobb érthetőség kedvéért :
A 149.76.0.0 B-osztályú IP-címet normálisan olyan IP-címként interpretáljuk, aminek első két byte-ja hálózatcímnek, utolsó két byte-ja host-címnek számít. A netmask egyszerűen kiszámolható :
Hálózatcím Hostcím
149.76.0.0 --> 10010101.01001100.00000000.00000000
Netmask 11111111.11111111.00000000.00000000
--> 255.255.0.0
Amennyiben ezt a hálózatot több alhálózatra akarjuk felosztani, úgy például a 3. byte-ot alhálózatcímként, a 4. byte-ot host-címként értelmezhetjük. Netmask-nak a következő adódna :
Hálózatcím Hostcím
149.76.0.0 --> 10010101.01001100.00000000.00000000
Netmask 11111111.11111111.11111111.00000000
--> 255.255.255.0
Nehezebb lesz a helyzetünk, amikor egy C-osztályú hálózatot akarunk további alhálózatokra bontani. Ez esetben minden címet ki kell számolnunk a felbontástól függően. Ennek megfelelően a netmask már nem csak 255-ökből, hanem más számokból is állna. Még egy példa :
A 192.168.200.0 C-osztályú hálózatunkat két alhálózatra kell bontani. Két hálózat címzéséhez elegendő a host-cím egy bitje az alhálózat megadásánál :
alhálózatbit
|
hálózatcím V
192.168.200.0 --> 11000000.10101000.11001000.00000000
Netmask 11111111.11111111.11111111.10000000
--> 255.255.255.128
A megszokott 255.255.255.0 helyett most 255.255.255.128 a netmask. Innen tudja az IP, hogy ez a cím nem egy normál C-osztályú hálózat címe. Az egyes számítógépek címeinek megadásánál persze most figyelnünk kell arra, hogy az alkalmazott számok a mindenkori hálózatba essenek :
alhálózat 0
host-cím 1 -> 00000001
2 -> 00000010
3 -> 00000011
alhálózat 1
host-cím 129 -> 10000001
130 -> 10000010