TCP/IP. Szállítási protokollok/4. Szállítási réteg (Transport Layer) TCP/IP protokollkészlet. Szállítási réteg (Transport Layer)



Hasonló dokumentumok
Tartalom. Hálózati kapcsolatok felépítése és tesztelése. Rétegek használata az adatok továbbításának leírására. OSI modell. Az OSI modell rétegei

Hálózati réteg, Internet

Az Internet működésének alapjai

Számítógép hálózatok

Internet Control Message Protocol (ICMP) Az Internet hiba- és vezérlı üzenet továbbító protokollja. Készítette: Schubert Tamás (BMF) Tartalom

4. Hivatkozási modellek

Hálózati architektúrák és Protokollok GI 8. Kocsis Gergely

Számítógépes Hálózatok és Internet Eszközök

A TCP/IP modell szállítási rétege

Nagyteljesítményű mikrovezérlők TCP/IP

A TCP/IP modell hálózati rétege (Network Layer) Protokoll-készlet: a csomagok továbbítása. Legjobb szándékú kézbesítés

Számítógép-hálózatok. Gyakorló feladatok a 2. ZH témakörének egyes részeihez

URL-LEL ADOTT OBJEKTUM LETÖLTÉSE (1) URL-LEL ADOTT OBJEKTUM LETÖLTÉSE

Dr. Wührl Tibor Ph.D. MsC 05 Ea. Szállítási protokollok - Bevezetés

III. előadás. Kovács Róbert

Hibafelismerés: CRC. Számítógépes Hálózatok Polinóm aritmetika modulo 2. Számolás Z 2 -ben

Kommunikáció. 3. előadás

Hálózati architektúrák laborgyakorlat

Hálózatok Rétegei. Számítógépes Hálózatok és Internet Eszközök. TCP/IP-Rétegmodell. Az Internet rétegei - TCP/IP-rétegek

Az IP hálózati protokoll

Tűzfalak működése és összehasonlításuk

1. LABORGYAKORLAT 2011 TAVASZI FÉLÉV ÓBUDAI EGYETEM PRÉM DÁNIEL. Hálózati protokollok. Számítógép hálózatok gyakorlata

Kiszolgálók üzemeltetése. Iványi Péter

Számítógép-hálózatok A felsőbb rétegek

Számítógépes Hálózatok 2008

A szállítói réteg (transport layer) szolgáltatásai. Számítógépes Hálózatok Szállítói réteg (transport layer) Multiplexálás a szállítói rétegben

3. előadás. A TCP/IP modell jelentősége

KANDÓ KÁLMÁN VILLAMOSMÉRNÖKI KAR HÍRADÁSTECHNIKA INTÉZET. Szállítási réteg vizsgálata Wireshark analizátorral. Dr. Wührl Tibor Dr.

Kiskapu Kft. Minden jog fenntartva

Hálózati architektúrák és Protokollok GI - 9. Kocsis Gergely

Távközlési informatika II.

fájl-szerver (file server) Az a számítógép a hálózatban, amelyen a távoli felhasználók (kliensek) adatállományait tárolják.

Tartalom. Az adatkapcsolati réteg, Ethernet, ARP. Fogalma és feladatai. Adatkapcsolati réteg. A hálókártya képe

Számítógépes Hálózatok. 5. gyakorlat

Hálózati réteg. Feladata: a csomag eljusson a célig Több útválasztó Ez a legalacsonyabb rétek, mely a két végpont

Szállítási réteg (L4)

Internet Protokoll (IP)

Internet Protokoll 6-os verzió. Varga Tamás

Hálózati alapismeretek

32 bit (4 bájt) Destination Port 8 bájt. Source Port. DATA, ha van

32 bit (4 bájt) Destination Port 8 bájt. Source Port. DATA, ha van

2. fejezet Hálózati szoftver

TCP ÉS UDP. Médiakommunikációs hálózatok (VIHIM161) évi fóliái alapján készült. Dr. Lencse Gábor

* Rendelje a PPP protokollt az TCP/IP rétegmodell megfelelő rétegéhez. Kapcsolati réteg

SzIP kompatibilis sávszélesség mérések

Számítógép hálózatok gyakorlat

Miért tanulunk a számítógép hálózatokról? Számítógép hálózatok. Mennyit tudunk már róluk? Internet: Példa. Internet: Az erıforrás megkeresése

Gyakorló feladatok a 2. ZH témakörének egyes részeihez. Számítógép-hálózatok. Dr. Lencse Gábor

20. Tétel 1.0 Internet felépítése, OSI modell, TCP/IP modell szintjenek bemutatása, protokollok Pozsonyi ; Szemenyei

Kiszolgálók üzemeltetése. Iványi Péter

Address Resolution Protocol (ARP)

A szállítói réteg (transport layer) szolgáltatásai. Számítógépes Hálózatok Szállítói réteg (transport layer) Multiplexálás a szállítói rétegben

24. fejezet A szállítási réteg

applikációs protokollok

Két típusú összeköttetés PVC Permanent Virtual Circuits Szolgáltató hozza létre Operátor manuálisan hozza létre a végpontok között (PVI,PCI)

Multiprotocol encapsulation (RFC1483) - IETF Classical IP over ATM (RFC1577) - IETF LAN Emulation (LANE) - ATM Forum Multiprotocol over ATM (MPOA) -

TCP ÉS UDP. Médiakommunikációs hálózatok (VIHIM161) Médiatechnológiák és -kommunikáció szakirány. Dr. Lencse Gábor

Az adott eszköz IP címét viszont az adott hálózat üzemeltetői határozzákmeg.

Transmission Control Protocol (TCP) (a működés alapelvei)

Forgalomirányítás (Routing)

Dr. Wührl Tibor Ph.D. MsC 04 Ea. IP kapcsolás hálózati réteg

Alkalmazás rétegbeli protokollok:

Hálózatok II. A hálózati réteg funkciói, szervezése

Department of Software Engineering

A MAC-cím (Media Access Control) egy hexadecimális számsorozat, amellyel még a gyártás során látják el a hálózati kártyákat. A hálózat többi eszköze

Internet Protokoll (IP) specialitások

Számítógépes munkakörnyezet II. Szoftver

Kommunikációs rendszerek programozása. Voice over IP (VoIP)

UDP idő szerver. UDP protokollal kapcsolatos ismeretek elmélyítése. Egy UPP protokollt használó időszerver megvalósítása

Hálózati architektúrák laborgyakorlat

OSI-ISO modell. Az OSI rétegek feladatai: Adatkapcsolati réteg (data link layer) Hálózati réteg (network layer)

Hálózati ismeretek. Az együttműködés szükségessége:

Rétegezett architektúra HTTP. A hálózatfejlesztés motorját a hálózati alkalmazások képezik. TCP/IP protokoll készlet

Rohonczy János: Hálózatok

Számítógépes Hálózatok GY 6.hét

Számítógépes Hálózatok 2011

Tartalom. Történeti áttekintés. Történeti áttekintés Architektúra DCOM vs CORBA. Szoftvertechnológia

Hálózatkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés / 20

Számítógépes Hálózatok

TRANSMISSION CONTROL PROTOCOL (TCP) bevezetés1

Számítógépes Hálózatok ősz 2006

Organizáció. Számítógépes Hálózatok ősz Tartalom. Vizsga. Web-oldal

Organizáció. Számítógépes Hálózatok Gyakorlati jegy. Vizsga. Web-oldal

Hálózati architektúrák és Protokollok GI 7. Kocsis Gergely

Hálózatok. Alapismeretek. A hálózatok célja, építőelemei, alapfogalmak

Kommunikáció. Folyamatok közötti kommunikáció. Minden elosztott rendszer alapja

Hálózatok. Alapismeretek. OSI hálózati modell

AST_v3\ Hivatkozási modellek

A Wireshark program használata Capture Analyze Capture Analyze Capture Options Interface

Bevezető. Az informatikai biztonság alapjai II.

Hálózati alapismeretek

Tartalom. Az adatkapcsolati réteg, Ethernet, ARP. Fogalma és feladatai. Adatkapcsolati réteg. Ethernet

Számítógépes Hálózatok ősz Szállítói réteg TCP, Tahoe, Reno, AIMD, Fairness, hatékonyság

Hibafelismerés: CRC. Számítógépes Hálózatok Polinóm aritmetika modulo 2. Számolás Z 2 -ben

III. Felzárkóztató mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Hálózati architektúrák és Protokollok Levelező II. Kocsis Gergely

A 35/2016. (VIII. 31.) NFM rendelet szakmai és vizsgakövetelménye alapján.

[SZÁMÍTÓGÉP-HÁLÓZATOK]

Operációs rendszerek és hálózatok GEIAL501M A szállítási réteg

Tájékoztató. Használható segédeszköz: -

Átírás:

Szállítási réteg (Transport Layer) TCP/IP szállítási protokollok Az OSI protokoll készletben a szállítási réteg és az alkalmazási réteg között helyezkedik el a viszony réteg és a megjelenítési réteg. A TCP/IP protokoll készletben a szállítási réteg (UDP vagy TCP) közvetlenül szolgálja ki az alkalmazási réteget. A viszony réteg és a megjelenítési réteg funkciói az alkalmazási protokollba vannak beépítve. Készítette: (BMF) Szállítási protokollok/1 Szállítási protokollok/2 TCP/IP protokollkészlet Szállítási réteg (Transport Layer) 5 7. réteg 4. réteg 1 3. réteg File Transfer Protocol (FTP) Remote Terminal Protocol (TELNET) Simple Mail Transfer Protocol (SMTP) Name Server Protocol (NSP) Simple Network Management Protocol (SNMP) IP TCP ICMP ARP IEEE 802.x /X.25 UDP RARP Ez a protokoll a hierarchia szíve: az alhálózattól független adatszállítást biztosít a két állomás egyegy folyamata között. A szállítási réteg a hálózati réteghez hasonlóan lehet: Összeköttetés mentes Összeköttetés alapú (felépítés, adatszállítás, lebontás) TCP UDP IP ARP RARP ICMP Transmission Control Protocol User Datagram Protocol Internet Protocol Address Resolution Protocol Reverse Address Resolution Protocol Internet Control Message Protocol Szállítási protokollok/3 Szállítási protokollok/4

User Datagramm Protocol (UDP) Összeköttetés mentes protokoll. Az egymástól függetlenül feladott üzeneteket továbbítja a két kommunikáló folyamat között. A szintén összeköttetés nélküli, megbízhatatlan IP hálózati protokoll szolgáltatásait veszi igénybe. (A csomagok elveszhetnek, kettızıdhetnek, és a feladás sorrendjétıl eltérı sorrendben is érkezhetnek a különbözı útvonalak miatt) Nem javítja fel a hálózati szolgáltatást. Olyan alkalmazásoknál használják, amelyek kevésbé érzékenyek az adatvesztéssel szemben (pl. kép átvitel), vagy az üzenetek mindössze egy csomagból állnak. Ha bizonyos idın belül nincs válasz, az adatgrammot újra el kell küldeni. Elınye a hatékonysága: kis overhead, kevés adminisztráció. A kommunikáló folyamatok azonosítása (címzése) azonos a TCP protokolléval. Ha megbízható átvitelre van szükség, az alkalmazások a TCPt használják. Összeköttetés alapú protokoll. Az alacsony szintő hálózati szolgáltatást (IP) feljavítja. Az alkalmazásokat egy szabványos primitív halmazzal lehet megírni: Logikai kapcsolatot kell létesíteni két alkalmazás között. A két folyamat duplex (egyidejőleg kétirányú) kommunikációt folytat Le kell bontani a kapcsolatot. A kapcsolat ideje alatt az átvitel megbízható: hibamentes, nincs adatvesztés és adatkettızés, az adatok sorrendhelyesek, ha az összeköttetés lebomlik, újra létesíti a másik szállítási réteggel. A TCP az üzenetet: csomagokra darabolja, a vételi oldalon újra összeállítja, az elveszett adatot újra küldi, az adatokat helyes sorrendbe rakja. Szállítási protokollok/5 Szállítási protokollok/6 Címzés A protokollhierarchia mőködése: TCP IP Ethernet A szállítási folyamatnak az összeköttetés létesítéséhez ki kell jelölnie a távoli folyamatot: Megadjuk a hálózati címet (IP), és a folyamatot (process), amellyel dolgozni szeretnénk (pl. Telnet). A hálózati réteg felépíti az összeköttetést a két gép között. Szegmens Csomag Csomag feje TCP feje TCP adatrésze Csomad adatrésze Keret Keret feje Keret adatrésze TCP beágyazása csomagokba, majd a csomag keretbe foglalása Szállítási protokollok/7 Szállítási protokollok/8

Portok és socketek A portok és socketek a kommunikáló felek folyamatainak azonosításában játszanak szerepet. A hálózaton továbbított adatszegmenseket össze kell kapcsolni a számítógépen futó folyamatokkal. Problémák: Az alkalmazói folyamatokat az operációs rendszerek egyegy folyamatazonosítóval (process ID) azonosítják. Ezek különbözhetnek a folyamat minden indításakor. A folyamatazonosítók nem szabványosak, operációs rendszerenként különbözhetnek. A szerver folyamatok egyszerre több ügyfél folyamattal is tarthatnak kapcsolatot, ezért egyszerő folyamatazonosítók használata nem lenne egyértelmő. A portok és socketek a folyamatok és a hálózaton továbbított adategységek (adatszegmensek) egységes és egyértelmő egymáshoz rendelését segítik és függetleníti az adott operációs rendszer folyamatazonosítójától. Portok A folyamatok egy vagy több 16 bites port azonosítóval azonosítsák magukat TCP/IP protokollkészletben. A port azonosító jelzi, hogy a bejövı üzeneteket melyik folyamatnak kell továbbítani. A portok típusai: Jól ismert portok (wellknown): Standard szolgáltatásokhoz tartoznak: 11023. Pl. Telnet port = 23. A legtöbb szolgáltatás egyetlen portot használ. Az Ftp szerver 2 portot használ: 20 and 21. A jól ismert portokat az Internet Assigned Number Authority (IANA) felügyeli. Többségüket a rendszerfolyamatok vagy privilégizált felhasználók programjai használják. A jól ismert portok használata lehetıvé teszi, hogy az ügyfél programok konfigurálás nélkül is megtalálják a szolgáltatást. Szállítási protokollok/9 Szállítási protokollok/10 Portok Socketek A portok típusai (folytatás): Ideiglenesen használt portok (ephemeral): Az ügyfeleknek nincs szükségük jól ismert portokra. Az ügyfél port azonosítókat az ügyfelek az operációs rendszertıl kapják. Az ügyfél portok 1024 65535 közötti értékek. Az operációs rendszer úgy választja, hogy a <szállítási protokoll, IP cím, port azonosító> hármas egyedi legyen. Az ideiglenesen használt portokat az IANA nem felügyeli, szabadon használható a felhasználói programokban. Az UDP, a TCP és az ISO TP4 a fenti port sémát használja. A socket interfész egy API (application programming interface), amely hozzáférést biztosít a kommunikációs protokollhoz. Elıször a 4.2 BSD UNIXban vezették be, majd továbbfejlesztették a 4.3 és a 4.4 BSDben. Terminológia: Socket: speciális file handle, amely lehetıvé teszi hálózati szolgáltatás kérését az operációs rendszertıl. Socket cím: számhármas: <protokoll, helyi cím, helyi folyamat>. Pl. a TCP/IPben: <tcp, 193.44.234.3, 12345> Beszélgetés (conversation): kommunikációs kapcsolat két folyamat között. Asszociáció: számötös, amely teljesen azonosítja a két kommunikáló folyamatot: <protokoll, helyi cím, helyi folyamat, távoli cím, távoli folyamat>. Pl. a TCP/IPben: <tcp, 193.44.234.3, 1500, 193.44.234.5, 21> Szállítási protokollok/11 Szállítási protokollok/12

Socketek Terminológia (folytatás): Fél asszociáció: egyenként azonosítja a kapcsolat végpontjait: <protokoll, helyi cím, helyi folyamat> vagy <protokoll, távoli cím, távoli folyamat> A fél asszociációt socketnek vagy szállítási címnek is nevezik. Ez a kommunikáció megnevezhetı, címezhetı végpontja. Két folyamat TCP socketeken keresztül kommunikál. A socket modell duplex byte csatornákat biztosít a két folyamat számára. Az alkalmazásnak nem kell foglalkoznia a csatorna menedzselésével, ezt elvégzi a TCP. A szerver folyamatok gyakran egyetlen porton keresztül egyidejőleg több kapcsolatot is kiszolgálnak. A port koncepciót az UDP és a TCP hasonlóan használja. User Datagram Protocol (UDP) Az IP protokoll csak két gép közötti adattovábbítást biztosít. Nem teszi lehetıvé az alkalmazások vagy a felhasználók azonosítását. Az UDP szállítási protokoll biztosítja, hogy egy gépen egyidejőleg futó több alkalmazói program egymástól függetlenül küldhessen és fogadhasson csomagokat. A csomag legvégsı célpontját a portokkal lehet azonosítani. A portok elérése általában szinkronizált, ami azt jelenti, hogy ha egy folyamat adatot kér egy portról, a futása felfüggesztıdik, mindaddig, amíg az adat be nem érkezik. Ekkor az operációs rendszer a pufferben tárolt adatot átadja a folyamatnak, majd újra engedélyezi a futását. A protokoll szoftver az adatokat átmenetileg egy, a porthoz rendelt sorban tárolja, amíg a folyamat feldolgozza. A folyamatok közötti kommunikációhoz a folyamatoknak ismerniük kell a cél gép IP címét és a protokoll port számát, és minden üzenetnek tartalmaznia kell a cél és a forrás protokoll port számot. Szállítási protokollok/13 Szállítási protokollok/14 User Datagram Protocol (UDP) Az UDP üzenet formátuma Az UDP csomag fejlécében lévı cél és forrás port szám biztosítja, hogy a csomag a megfelelı folyamathoz kerüljön feldolgozásra, és hogy a válasz üzenet is a megfelelı helyre érkezzen. Az UDP az IP protokollt használja az üzenet továbbítására. Az IP szolgáltatását nem javítja fel, ugyanolyan megbízhatatlan, összeköttetés nélküli protokoll, mint az IP. Az üzeneteket nem nyugtázza. A megbízhatatlanságból eredı problémák megoldása az alkalmazói programok feladata. 0 16 31 UDP SOURCE PORT UDP MESSAGE LENGTH UDP DESTINATION PORT UDP CHECKSUM DATA... UDP adatszegmens formátum Szállítási protokollok/15 Szállítási protokollok/16

Az UDP üzenet beágyazása Az UDP üzenet beágyazása Keret feje Csomag feje UDP feje Csomag adatrésze Keret adatrésze UDP adatrésze UDP beágyazása IP csomagba, majd a csomag keretbe foglalása Az hálózati réteg (IP) a teljes UDP üzenetet egy IP csomagba ágyazza, majd az adatkapcsolati réteg fizikai keretbe ágyazva továbbítja a fizikai hálózaton. A vételi oldalon a beágyazás ellenkezıje zajlik le. A fizikai keretbıl elıkerül az IP csomag, az IP csomagból az UDP üzenet, ebbıl pedig az adat. Az UDP üzenet pontosan megegyezik a küldı állomáson elıállított üzenettel, így az UDP pontosan ugyanazt az adatot továbbítja az alkalmazói programnak, amelyet a küldı állomás adott át az UDP protokollnak. A forrás és a cél IP címeket csak az IP fejrésze tartalmazza, a forrás és a cél port számokat pedig csak az UDP fejrésze hordozza. Szállítási protokollok/17 Szállítási protokollok/18 UDP multiplexálás/demultiplexálás UDP multiplexálás/demultiplexálás A protokoll hierarchiában egyegy réteg objektuma és a következı réteg több objektuma között multiplexálni ill. demultiplexálni kell. Például az UDP szoftver üzeneteket fogad számos alkalmazástól és átadja az IPnek továbbításra, és megfordítva, az IPtıl kapott csomagokat továbbítja a megfelelı alkalmazásnak. Ha az alkalmazás egy bizonyos protokoll porton küld egy üzenetet, a port szám bekerül az UDP üzenet SOURCE PORT mezıjébe. Bejövı üzenet esetén az UDP az IPtıl kapott üzenetet az UDP DESTINATION PORT száma alapján demultiplexálja a megfelelı alkalmazásnak. Port 1 A portot leginkább egy sornak tekinthetjük. Ebben tároljuk a bejövı üzeneteket feldolgozás elıtt. Az UDP megvizsgálja a bejövı üzenetek port számát, hogy az megfelele egy létezı portnak. Ha nem, ICMP port unreachable hibaüzenetet generál, és eldobja az üzenetet, egyébként a megfelelı alkalmazásnak továbbítja. Por 2 Port 3 UDP: demultiplexálás port alapján IP réteg UDP szegmens érkezik IP fölötti réteg demultiplexálása Szállítási protokollok/19 Szállítási protokollok/20

Decimális 0 7 9 11 13 15 17 19 37 42 43 53 67 68 69 UDP wellknown portok (részlet) Kulcsszó UNIX kulcsszó Leírás Reserved ECHO echo Echo DISCARD discard Discard USERS sysstat Active Users DAYTIME daytime Daytime netstat Who is up or NETSTAT QUOTE qotd Qoute of the day CHARGEN chargen Character generator TIME time Time NAMESERVER name Host Name Server NICNAME whois Who Is DOMAIN nameserver Domain Name Server BOOTPS bootps Bootstrap Protocol Server BOOTPC bootpc Bootstrap Protocol Client TFTP tftp Trivial File Transfer Szállítási protokollok/21 UDP wellknown portok (részlet) Decimális Kulcsszó UNIX kulcsszó Leírás 111 SUNRPC sunrpc Sun Microsystem RPC 123 NTP ntp Network Time Protocol 161 snmp SNMP net monitor 162 snmptrap SNMP traps 512 biff UNIX comstat 513 who UNIX rwho daemon 514 syslog system log 525 timed Time daemon Szállítási protokollok/22 Megbízható adatfolyam átviteli protokoll. A szállítási réteg protokollja. Azon alkalmazások számára, amelyek nagy adatmennyiségeket forgalmaznak a hálózaton, nem megfelelı az IP és az UDP által biztosított megbízhatatlan szállítási szolgáltatás. Nem praktikus minden egyes alkalmazásba különkülön beépíteni a hibavizsgálatot és annak korrekcióját. Ezért szükség van egy megbízható adatfolyam átviteli protokollra. A megbízható adatfolyam szolgáltatás jellemzıi: 1. Adatfolyam orientált (Stream oriented) 2. Virtuális áramköri kapcsolat (Virtual Circuit Connection) 3. Pufferelt átvitel (Buffered Transfer) 4. Strukturálatlan adatfolyam (Unstructured Stream) 5. Egyszerre kétirányú kapcsolat (Full Duplex Connection) Szállítási protokollok/23 Szállítási protokollok/24

A megbízható adatfolyam szolgáltatás jellemzıi: A megbízható adatfolyam szolgáltatás jellemzıi: 1. Adatfolyam orientált (Stream oriented) Az alkalmazás által továbbítani kívánt adatokat bitek ill. byteok sorozatának fogjuk fel. Az adatfolyam szolgáltatás pontosan ugyanazt a byte sorozatot adja át a cél gép alkalmazásának, amelyet a küldı gép adott átvitelre az átviteli szolgáltatásnak. 2. Virtuális áramköri kapcsolat (Virtual Circuit Connection) Telefon kapcsolathoz hasonlítható. Az alkalmazások az operációs rendszerhez fordulnak, kérik az átviteli szolgáltatást. Az operációs rendszerek kérésére a protokoll szoftverek kommunikálnak egymással, megbeszélik, hogy mindkét fél késze a kapcsolat létrehozására, majd megállapodnak a részletekben. Ezután, a protokoll értesíti az alkalmazásokat, hogy a kapcsolat létrejött, kezdhetik az átvitelt. Szállítási protokollok/25 Szállítási protokollok/26 A megbízható adatfolyam szolgáltatás jellemzıi: A megbízható adatfolyam szolgáltatás jellemzıi: 2. Virtuális áramköri kapcsolat (Virtual Circuit Connection) Az átvitel alatt a két gép protokoll programja állandóan kommunikál, és biztosítja, hogy az átvitt adatok hibátlanok legyenek. Csak a helyrehozhatatlan hibákat jelentik az alkalmazásoknak. Azért nevezzük a kapcsolatot virtuális áramköröknek, mert az alkalmazások úgy látják, mintha egy dedikált hardver kapcsolat lenne. A megbízhatóságot az adatfolyam átviteli protokoll biztosítja. 3. Pufferelt átvitel (Buffered Transfer) Az alkalmazások tetszıleges mennyiségő adatot adhatnak át átvitelre a szállítási szolgáltatásnak, a protokoll szoftver pufferben győjti, majd a hatékonyságot szem elıtt tartva kisebbnagyobb csomagokban továbbítja. Szükség lehet, hogy akár egyegy byteot is átvigyünk, (pl. egy billentyőleütést). Az erre szolgáló ún. push mechanizmus kényszeríti a protokollt, hogy a puffer megtelte elıtt vigye át az adatot. A vételi oldalon a protokoll szoftver késleltetés nélkül átadja az adatot az alkalmazásnak. Szállítási protokollok/27 Szállítási protokollok/28

A megbízható adatfolyam szolgáltatás jellemzıi: A megbízható adatfolyam szolgáltatás jellemzıi: 4. Strukturálatlan adatfolyam (Unstructured Stream) A szolgáltatás által kézbesített adat nem strukturált. A szállítási szolgáltatás semmit sem tud az átviendı adat tartalmáról, azok struktúrájáról. Az alkalmazásoknak kell megegyezniük az adatok szerkezetében és megérteniük az adatfolyamot. 5. Egyszerre kétirányú kapcsolat (Full Duplex Connection) A TCP kapcsolat egyidejő adatfolyam átvitelt biztosít mindkét irányba (full duplex). Az alkalmazások lezárhatják az egyik irányú adatfolyamot, ha kívánják (half duplex). A full duplex kapcsolat azért is elınyös, mert az ellenkezı irányban haladó adatfolyam vezérlı információt is továbbíthat. Ez a piggybacking csökkenti a hálózati forgalmat. Szállítási protokollok/29 Szállítási protokollok/30 A megbízhatóság biztosítása Hogyan tud a protokoll szoftver megbízható szállítási szolgáltatást nyújtani megbízhatatlan csomagátviteli szolgáltatással (IP)? A megoldás: pozitív nyugtázás ismételt átvitellel (positive acknowledgement with retransmission) Küldı oldal 1. Üzenet elküldése ACK 1. vétele 2. Üzenet elküldése ACK 2. vétele Üzenet Vételi oldal 1. Üzenet vétele ACK 1. elküldése 2. Üzenet vétele ACK 2. elküldése Pozitív nyugtázás újraküldéssel A vételi oldalon lévı protokoll szoftver nyugtát (acknowledgement=ack) küld a feladónak, ha adat érkezik. A küldı minden átküldött üzenetet nyilvántart, és vár a nyugtára. Szállítási protokollok/31 Szállítási protokollok/32

Küldı oldal Üzenet Vételi oldal A megbízhatóság biztosítása 1. üzenet elküldése, idızítés indul ACK 1.nek meg kellene érkezni Idızítés lejár Csomag elvész 1. üzenetnek meg kellene érkezni ACK 1.et el kellene küldeni Ha az átviteli rendszernek nagy a késleltetése, az üzenetek kettızıdhetnek (adat és a nyugtája egyaránt). A protokoll szoftver minden üzenetet egy sorszámmal lát el, és a vevınek emlékeznie kell, hogy mely sorszámú üzenetek érkeztek meg. A nyugtában a protokoll szoftver visszaküldi a sorszámot a küldınek, így az a nyugtákat és az elküldött üzeneteket egymáshoz tudja rendelni. 1. üzenet újraküldése, idızítés indul ACK 1. vétele, idızítés törlése 1. üzenet vétele ACK 1. elküldése Újraküldés, ha a csomag elvész Szállítási protokollok/33 Szállítási protokollok/34 Csúszó ablakok (Sliding Windows) Nem lenne hatékony a protokoll mőködése, ha minden átküldött üzenet után megvárná a nyugtát, mielıtt a következı üzenetet küldené. Ekkor egyszerre csak egy irányba haladnának az üzenetek. A csúszó ablakos technikával több üzenetet küldhetı, mielıtt a korábban elküldött üzenetek nyugtája megérkezne. A protokoll szoftver az átküldendı üzenetek sorozatára egy kis mérető ablakot fektet, és az ablak összes üzenetét elküldi. Kezdı ablak 1 2 3 4 5 6 7 8 9 10... Ablak csúszik 1 2 3 4 5 6 7 8 9 10... Csúszó ablakos protokoll 8 csomaggal Ha az ablak bal szélsı üzenetére pozitív nyugat érkezik, az ablak eggyel jobbra csúszik. Az ablakban lehetnek elküldetlen üzenetek, és elküldött, de nem nyugtázott üzenetek. Szállítási protokollok/35 Szállítási protokollok/36

Csúszó ablakok (Sliding Windows) Küldı oldal 1. üzenet elküldése 2. üzenet elküldése 3. üzenet elküldése 1. ACK vétele 2. ACK vétele Üzenet Vételi oldal 1. üzenet megérkezése 1. ACK elküldése 2. üzenet megérkezése 2. ACK elküldése 3. üzenet megérkezése 3. ACK elküldése Az ablak méretének helyes megválasztása nagyban befolyásolja a protokoll hatékonyságát. A csúszó ablakos protokoll minden üzenetre külön idızítıt mőködtet. A protokoll szoftver a vételi oldalon hasonló ablakkal rendelkezik, amelyben összeállítja a bejövı adatokat, és tárolja, hogy melyeket nyugtázta. A full duplex kommunikáció miatt valójában mindkét oldalon kétkét ablak van a független kétirányú kommunikációra. 3. ACK vétele A TCPben alkalmazott csúszó ablak technikával a flow control (végállomások közötti adatfolyam vezérlés) is megoldható. 3 csomag elküldése csúszó ablakos protokoll használatával Szállítási protokollok/37 Szállítási protokollok/38 Csúszó ablakok (Sliding Windows) Az állomások az ablak méretét tudják változtatni. A fogadott nyugták tartalmaznak az ablakra vonatkozó információt (window advertisment), amely lényegében a másik fél szabad puffer méretét tartalmazza. A küldı fél ennek alapján változtatja a saját ablakának méretét. Ha a fogadó pufferei kezdenek megtelni, kisebb ablakot jelölı közleményt küld a feladónak. Portok, kapcsolatok és végpontok A TCP lehetıvé teszi, hogy több alkalmazás egyidejőleg kommunikáljon, és az üzenetet a megfelelı alkalmazáshoz továbbítja. Az UDPhez hasonlóan a TCP is a protokoll port számokat használja, az üzenet végsı címzettjének azonosításához. A TCP port azonban önmagában nem azonosítja a cél objektumot. A TCP a kapcsolat (connection) fogalmát használja fel az azonosításhoz. Két végpont azonosítja a kapcsolatot. Pl.: (192.190.173.37, 25) és (192.190.173.55, 1071) Egy másik kapcsolat ugyanazon a gépen: (192.190.173.37, 25) és (192.190.173.55, 1156) Elegendı, ha a kapcsolatot azonosító 4 szám közül 1 különbözik! Szállítási protokollok/39 Szállítási protokollok/40

Passzív és aktív megnyitás A TCP, ellentétben az UDPvel kapcsolat orientált, tehát mindkét végpontnak egyet kell értenie a részvételben. Az alkalmazás az egyik végponton végrehajt egy ún. passzív megnyitást, jelezve, hogy hajlandó bejövı kapcsolatot fogadni. Ekkor egy TCP port szám lesz hozzárendelve ehhez a végponthoz. Az alkalmazás a másik végponton pedig kéri az operációs rendszert, hogy végezzen aktív megnyitást a kapcsolat létrehozására. A két TCP szoftver felépíti a kapcsolatot, majd kezdıdhet az alkalmazások adatcseréje. A TCP szegmens formátuma Minden TCP forgalom: kapcsolat felépítése, adatok átvitele, nyugta küldése, ablak méret hirdetmény, kapcsolat lezárása, az alábbi szerkezető szegmensben lesz továbbítva: Szállítási protokollok/41 Szállítási protokollok/42 0 4 10 16 24 31 SOURCE PORT Feladó TCP port száma SOURCE PORT DESTINATION PORT DESTINATION PORT Cél TCP port száma SEQUENCE NUMBER ACKNOWLEDGEMENT NUMBER HLEN RESERVED CODE BITS WINDOW CHECKSUM URGENT POINTR OPTIONS PADDING DATA... TCP szegmensformátum SEQUENCE NUMBER ACKNOWLEDGEMENT NUMBER HLEN CODE BITS WINDOW A küldött adatok pozíciója a byte folyamban Annak bytenak a sorszáma az adatfolyamban, amelyet a feladó legközelebb meg akar kapni. Ez az ellenkezı irányú folyamra vonatkozik! A szegmens hossza 32 bites egységekben Az üzenet tartalmára utal Mekkora puffer áll rendelkezésére, mennyi adatot képes fogadni Szállítási protokollok/43 Szállítási protokollok/44

TCP wellknown portok (részlet) A CODE mezı jelentése Decimális Kulcsszó UNIX kulcsszó Leírás 0 Reserved Bit (balról jobbra) URG ACK PSH RST SYN FIN Jelentés Urgent Pointer mezı használva van Acknowledgement mezı használva van A szegmens push mőveletet kér A kapcsolat bontása A sorszámok szinkronizálása (kapcsolat felépítése) A küldı az adatfolyam végére ért 1 5 7 9 11 13 15 17 19 20 21 23 TCPMUX RJE ECHO DISCARD USERS DAYTIME QUOTE CHARGEN FTPDATA FTP TELNET echo discard systat daytime netstat qotd chargen ftpdata ftp telnet TCP multiplexor Remote Job Entry Echo Discard Active Users Daytime Network status program Quote of the Day Character Generator File Transfer Protocol (data) File Transfer Protocol Terminal Connection Szállítási protokollok/45 Szállítási protokollok/46 TCP wellknown portok (részlet) TCP wellknown portok (részlet) Decimális Kulcsszó UNIX kulcsszó Leírás Decimális Kulcsszó UNIX kulcsszó Leírás 25 37 42 43 53 77 79 93 95 101 102 SMTP TIME NAMESERVER NICNAME DOMAIN FINGER DCP SUPDUP HOSTNAME ISOTSAP smtp time name whois nameserver rje finger supdup hostnames isotsap Simple Mail Transport Protocol Time Host Name Server Who Is Domain Name Server Any private RJE service Finger Device Control Protocol SUPDUP Protocol NIC Host Name Server ISOTSAP 103 104 111 113 117 119 129 139 160223 X400 X400SND SUNRPC AUTH UUCPPATH NNTP PWDGEN NETBIOSSSN Reserved x400 x400snd sunrpc auth uucppath nntp X.400 Mail Service X.400 Mail Sending SUN Remote Procedure Call Authentication Service UUCP Path Service USENET News Transfer Protocol Password Generator Protocol NETBIOS Session Service Szállítási protokollok/47 Szállítási protokollok/48

Címzés A szállítási folyamatnak az összeköttetés létesítéséhez ki kell jelölnie a távoli folyamatot: Megadjuk a hálózati címet (IP), és a folyamatot (process), amellyel dolgozni szeretnénk (pl. Telnet). A hálózati réteg felépíti az összeköttetést a két gép között. A folyamat azonosításának két megoldása van: 1. Kezdeti összeköttetés protokoll használata 2. Név szolgáltató használata (name server) 1. Kezdeti összeköttetés protokoll Minden gép, amely valamilyen szolgáltatást kínál, egy speciális folyamatszolgáltatóval vagy bejelentkezıvel rendelkezik, amelyen keresztül az összes szolgáltatás elérhetı. A folyamatszolgáltató egy ismert szállítási végponton várakozik. A kapcsolatot keresı gépnek ezt a végpontot kell megadnia. Létrejön a kapcsolat a folyamatszolgáltatóval. A hívó kijelöli a futtatni kívánt programot. A folyamatszolgáltató kijelöl egy azonosító számot (végpontot), létrehoz egy új folyamatot, amelyik az adott végponton (port) várakozik a kapcsolódásra. A folyamatszolgáltató megküldi a hívónak az azonosítási számot, hogy ezen jelentkezzen. Ezután a hívó lebontja az összeköttetést a folyamatszolgáltatóval, majd újat létesít, most már a kiválasztott folyamattal. Szállítási protokollok/49 Szállítási protokollok/50 2. Név szolgáltató használata (name server) A név szolgáltató megadja, hogy egy adott nevő szolgáltatás milyen porton érhetı el. A hívó tehát elıször a name serverhez fordul, majd a port szám birtokában már a felépítheti a kapcsolatot a szolgáltató gép megfelelı portjával. A protokoll hierarchia mőködése: TCP IP Ethernet Az üzenet eljuttatásán kívül a TCPnek tudnia kell, hogy az melyik összeköttetéshez tartozik. A TCP/IP az üzenetet több szinten is ún. fejrésszel (header) látja el. (Pl. levél > boríték > titkárnı > újabb boríték > postázó > újabb boríték). Adatfolyam, amelyet el kell küldeni: A TCP feldarabolja kezelhetı darabokra: (az állomások megbeszélik a méretet). A TCP fejrészt tesz mindegyik elé (min. 20 byte): Forrás és cél portszám. A port # különbözteti meg ugyanazon két gép közötti független kapcsolatokat. Mindkét oldalnak ismernie kell a másik oldal port #át is. Sorszám (sequence #). A sorszám alapján lehet helyes sorrendbe rakni a vételi oldalon a csomagokat. Szállítási protokollok/51 Szállítási protokollok/52

A protokoll hierarchia mőködése: TCP IP Ethernet Ellenırzı összeg (CRC). A hibás csomagot a vevı eldobja. Nyugta (acknowledgment). Ha ez a mezı ki van töltve, akkor ez nyugtázza, hogy hányadik volt az utolsó megérkezett byte. TCP csomag: T... T T T (T = TCP fejrész) A protokoll hierarchia mőködése: TCP IP Ethernet Internet Protocol (IP) A T. alakú üzeneteket a TCP az IPnek adja át az IP címmel együtt. Az IP nem foglalkozik sem a TCP fejrésszel, sem az adattal. Az IP a továbbításhoz hozzáadja a saját fejrészét: Az IP fej részei: forrás és cél IP cím protokoll azonosító száma (TCP, UDP, stb.). Ez írja le, hogy a vétel helyén a csomagot melyik protokollnak kell továbbítani IP fejrész CRCje IT IT IT IT (I = IP fejrész) A fej többi része: Fragmet offset további tördelés esetére Time to Live. Minden rendszer, amelyen a csomag keresztülhalad 1 gyel csökkenti ezt a számot, és ha 0ra csökken, eldobja. Szállítási protokollok/53 Szállítási protokollok/54 Ethernet A protokoll hierarchia mőködése: TCP IP Ethernet Ethernet fej: Cél címe Feladó címe Típus kód TCP/IP, DECNET XEROX, stb. Adat CRC Az Ethernet cím és az IP cím között semmilyen összefüggés nincs! Minden gép rendelkezik egy táblázattal a két cím megfeleltetéséhez (lásd az ARP protokollt). Ethernet A protokoll hierarchia mőködése: TCP IP Ethernet Az Ethernet interfész a vételi oldalon eltávolítja a fejrészt és a CRCt. Megnézi a típuskódot, felismeri az IPt, ezért az IP protokollnak továbbítja. Az IP protokoll eltávolítja az IP fejrészt. A protokoll mezı TCPt jelez, ezért a TCP protokollnak továbbítja. A TCP megnézi a sorszámot és más mezıket, hogy helyreállítsa az üzenetet. EIT C EIT C EIT C EIT C EIT C Szállítási protokollok/55 Szállítási protokollok/56