next up previous contents
Next: A Berkeley socketok Up: A TCP/IP protokollcsalád Previous: A hálózati szint

A transzport szint

A TCP/IP protokollcsalád két transzport-szintu protokollja a TCP (Transmission Control Protocol) és az UDP (User Datagram Protocol). A TCP öszeköttetés-alapú, míg az UDP nem az.

Az UDP protokoll

Az UDP által nyújtott szolgáltatások lényegében megegyeznek az IP által biztosított szolgáltatásokkal. Egy lényeges bovítés az IP-hez képest az, hogy az UDP több kommunikációs portot (TSAP-ot, Transport Service Access Point-ot) biztosít, ahonnan ill. ahova csomagokat lehet küldeni, és ha egy program UDP-n keresztül akar kommunikálni másokkal, akkor az UDP csomagok elküldésekor meg kell adni a cél-host IP-címe mellett annak az ottani UDP-portnak a sorszámát, ahova a csomagot küldeni akarja (az UDP fejléc tartalmazza annak a helyi UDP-portnak a sorszámát is, ahonnan a csomagot küldték, így a célállomás azt kiolvasva tudja, hogy honnan küldték a csomagot, és ez alapján tudhatja, hogy hova küldjön egy esetleges választ). Ezzel -- mármint az UDP portokkal -- lehetoség van egy hoston egyszerre több UDP-kapcsolat létrehozására is, és nincsenek olyan megkötések, hogy egy folyamat egyszerre csak egy darab UDP kapcsolatot létesíthet (mert az UDP-portok azonosítói és a folyamatok azonosítói egymástól teljesen függetlenek).

Az UDP fejrész a következo mezokbol áll:

     |------------------------------------------------------|
     |         Forras-port         |         Cel-port       |
     |------------------------------------------------------|
     |     Csomaghossz             |    Ellenorzo-osszeg    |
     |------------------------------------------------------|
     |                                                      |
     |                    Felhasznaloi adatok               |
     |                                                      |
     .                       ...                            .
     |                                                      |
     |------------------------------------------------------|

Az ellenorzo összeg számítása a következoképpen történik: 2-byteos szavanként kell összeadni az UDP fejrészt, az IP pszeudo-fejrészt, és az elküldendo adatokat, majd az összeg 1-es komplemensét kell képezni. Az említett IP pszeudo-fejrész itt a forrás ill. cél-hoszt IP címébol, valamint a forrás/cél UDP-port sorszámból áll.

A TCP protokoll

A TCP a protokollcsaládnak talán a leggyakrabban használt kommunikációs transzportprotokollja. (FONTOS: A TCP egy protokoll, és nem a kommunikációt megvalósító program!) Ha TCP protokollal küldünk egy byte-folyamot (tetszoleges adatokat), akkor a TCP azt maximum 64 byteos darabokra bontja, és ezeket a darabokat egyenként átadja az IP-nek (természetesen a TCP fejléccel ellátva), hogy küldje el a rendeltetési helyére. Az IP nem garantálja azt, hogy a csomagok a célállomásnál meg is érkeznek, ezért a TCP feladata az, hogy adott esetben (pl. egy bizonyos ido lejártával) az egyes csomagokat újra elküldje, mivel lehet, hogy az elozo példány elveszett valahol. A célállomáson a megérkezett csomagok sorrendje nem biztos, hogy az elküldés sorrendjével megegyezik, ezért a TCP feladata ennek a rendezése is (ha szükséges). A TCP természetesen a csomagduplázás ellen is védelmet nyújt.

A TCP protokoll a megbízhatóságot az ún. PAR (Positive Acknowledgement with Retransmission) technikával biztosítja. Ez azt jelenti, hogy a célállomás TCP-t megvalósító szoftvere nyugtázza a csomag kézbesítését, miután a hálózati szinttol (az IP-tol) megkapta.

Egy hoston egyszerre több TCP kapcsolat is élhet, és itt is, mint az UDP-nél az egyes kapcsolatok külön-külön TCP-porton (TSAP-on) vannak. A TCP-kapcsolatok full-duplexek, vagyis kétirányúak, és az elküldött adatokat a TCP strukturálatlan byte- folyamnak tekinti. A TCP-vel ezen kívül lehetoség van sürgos adatok továbbítására is. A protokoll eloírja, hogy ha sürgos adatot küldtünk, akkor az adat fogadóját a cél-hoston errol értesíteni kell, és meg kell adni a lehetoséget a sürgos adat soron kívüli feldolgozására is. Az értesítés módja (mivel oprendszer-függo) nincs a protokoll által specifikálva.

A TCP fejrész a következo mezokbol áll:

     |------------------------------------------------------|
     |         Forras-port         |         Cel-port       |
     |------------------------------------------------------|
     |                       Byte-sorszam                   |
     |------------------------------------------------------|
     |                          Nyugta                      |
     |------------------------------------------------------|
     | TCP fejreszhossz|  |URG|ACK|EOM|RST|SYN|FIN|  Ablak  |
     |------------------------------------------------------|
     | Ellenorzo osszeg           | Surgos adatok offsetje  |
     |------------------------------------------------------|
     |                                                      |
     |                                                      |
     .              Felhasznaloi adatok                     .
     .                                                      .
     |                                                      |
     |------------------------------------------------------|

(A rajzon a TCP fejrész vízszintes mérete 32 bit.)

A TCP portok 0-tól 1023-ig ún. foglalt portok. Ezeknek a kiosztási jogát a DARPA fenntartja magának. Például a távoli bejelentkezés (TELNET) protokoll szervere mindig a 23-as TCP porton vár arra, hogy valaki rákapcsolódjon és bejelentkezzen rajta az adott hostra. Az általában jellemzo, hogy a fontosabb, szélesebb körben használt protokollok egy "mindenki által ismert" ( well-known) sorszámú port-on várnak kapcsolatokra.

A TCP fejrész bitjei a következok:

Az ellenorzo összeg számítása a következoképpen megy: 2-byteos szavanként kell összeadni a TCP fejrészt, az IP pszeudo-fejrészt, és az elküldendo adatokat, majd az összeg 1-es komplemensét kell képezni. A byte sorszám megmondja, hogy az egész átküldendo adatfolyamból most épp hányadik byteot küldjük át (a TCP üzenet elso bytejának az adatfolyamon belüli sorszáma). A nyugta mezo megmondja, hogy a kommunikációs partner az elküldendo adatfolyamunknak hányadik byteját várja (és ez nem lehet és nem is lesz monoton csökkeno!). A TCP ellenorzo összegnél említett IP pszeudo-fejrész a forrás ill. cél-hoszt IP címébol, valamint egyéb protokoll-információkból és az aktuális TCP üzenet hosszából áll. (A byte sorszám kezdoértéke nem minden kapcsolat esetén nulla - a kezdeti értéket a kapcsolat létrehozásakor a két partner egyezteti.)



next up previous contents
Next: A Berkeley socketok Up: A TCP/IP protokollcsalád Previous: A hálózati szint



Csizmazia Balazs
Tue Apr 2 00:06:27 MET DST 1996