Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
TCP (Transmission Controll Protokoll)
Magyarul: Átvitel Vezérlési Protokoll Csete Andrea 641 csoport
2
Azért volt létrehozva, hogy a különböző számítógépes hálózatok egy ismert nyelven kommunikáljanak egymással Egyike a legfontosabb Internet protokolloknak
3
Feladatai a küldő számítógépen a továbbítandó adathalmaz feldarabolása adatcsomagokra, és az adatcsomagok címkézése az adatokat fogadó számítógépen a kapott adatcsomagok összerakása, és így az eredeti adathalmaz előállítása
4
Tulajdonságai a hálózati és az alkalmazási szint között továbbítja az adatokat az IP-vel ellentétben megbízható, kapcsolatorientált és bájtfolyamatú adattovábbítást végez végzi az üzenetek széttördelését, összeállítását, az elveszett részek újraadását, a datagramok helyes sorrendjének visszaállítását
5
A TCP fogadja a tetszőleges hosszúságú üzeneteket a felhasználói folyamattól, és azokat maximum 64 kbyte-os darabokra vágja szét. Ezekhez fejlécet fűz, majd ezeket a darabokat egymástól független datagramokként küldi el. Minden TCP által elküldött byte-nak saját sorszáma van. A sorszámtartomány 32 bit széles.
6
TCP fejléce Forrásport( 16 bit) annak az applikációnak a cίme, amely generálja a szegmentumot rendeltetési port(16bit) annak az applikációnak a cίme, amely kapja a szegmentumot sorszám(32 bit)- az adat pozicíója az eredeti stream- ben Le van foglalva Kontrollok
7
Ráültetett nyugta(32 bit)- elismerése az adat más készülékről való elfogadásának
Fejrész hossz(4 bit)- a fejlécben használt 4 bites szavak száma kontrol: URG-(Urgent Bit) a sürgősségi mutató mező érvényesítése kontrol: ACK-(Acknowledge Bit)a rendeltetési bit használva van- e kontrol: PSH-(Push Bit) Push függvény kontrol: RST-(Reset Bit) újra indítja a kapcsolatot, ha a sorszámok ütköznek kontrol: SYN-(Sequence Number Synchronization ) szinkronizálja a sorszámokat kontrol: FIN- a SYN- nel együtt jóváhagyja a kapcsolat végét - nincs több adat a küldőtől Ablak(16 bit)- az ablak mérete Sürgőségi mutató (16 bit)- érvényes, ha az URG aktív, a sürgősségi adat befejezését jelzi
8
Sorszámok A TCP egy 32 bites sorszámot használ, ami számolja a bájtokat az adat streamben Minden TCP csomag tartalmazza az adat kezdeti és az utolsó kapott bájt sorszámát (amit acknowledgment number- nak nevezünk) Ezzel az információval van implementálva a sliding- window protokoll. A TCP flageket használ a kapcsolatokvezetésére. Egyes flagek egyetlen csomaghoz tartoznak, mint például az URG ( mutatja az érvényes adatot az Urgent Pointer mezőben). A SYN és FIN flageknek szükségük van megbízható szállításra, mert jelzik az adat elejét és végét. Ahhoz hogy megbízható szállítást biztósítson ennek a két flagnek, a sorszámban üres helyeket rak. Minden flag egy bájtot foglal.
9
Sliding window metódus
Egy puffer- t helyez el az applikáció és a hálózat szintje közé A TCP- nek a puffer az operációs rendszer kernelje A hálózatból kapott adatot a pufferbe tárolódik, amit az applikáció ki tud olvasni. Amikor az applikáció kiolvas adatokat, a puffer ürül. Az „ablak”- a puffer hossza, amihez nem tartoznak hozzá az érvényes tárolt adatok Ha a lokális applikáció nem tudja elég gyorsan feldolgozni az adatokat, az ablak mérete 0- ra csökken és a host nem küld több adatot. Ha az applikáció feldolgozta az adatokat, az ablak mérete megnő, a host megint küld adatokat Ha az applikáció tud gyorsan feldolgozni adatokat, az ablak előnybe részesít. Ha az ablak méret nagyobb, mint a csomag mérete, akkor többszörös csomagot lehet küldeni, mert a küldő tudja, hogy a puffer rendelkezésére áll. Amikor az applikáció kiolvassa a pufferből az adatokat, több ablak generálódik.
10
Műveletek Adatáthelyezés ( Basic Data Transfer)
megbízhatóság (Reliability) folyam ellenőrzés ( Flow Control) Multiplexing kapcsolatok ( Connections) elsőbbség és biztonság ( Precedence and Security)
11
1. Adatáthelyezés: Push paranccsal: a TCP szállítja az adatot a fogadónak 2. megbízhatóság : A TCP vissza kell hozza az elrontott, elveszített vagy az internet által rossz helyre szállított adatokat Minden elküldött oktethez hozzárendel egy sorszámot Szükséges egy pozítiv ACK a fogadó TCP- től Ha az ACK- t nem kapják megy egy megadott időn belül, akkor az adatot újraküldi A fogadó a sorszámot a szegmensek sorba rendezésénél és a másolatok kizárásánál használja Minden szállított szegmenshez egy ellenőrző számot (checksum) rendelnek
12
3. folyam ellenőrzés: - Sliding window metódusnak hívják - TCP küld a fogadónak egy „ablakot”, amibe benne van mindegyik ACK, amit küldtek neki Az ablak egy oktetből álló számot mutat, amit a küldő szállíthat további engedély nélkül 4. multiplexing: Azért hogy több processz egyetlen egy hoston tudja használni a TCP- t, a TCP több címet és portot szolgáltat. Ezek a hálózat címeivel és portjaival egy socket- et alkotnak. Egy pár socket azonosít minden kapcsolatot Egy socket- et több kapcsolatnál lehet használni
13
5. kapcsolatok: - A megbízhatóság és a folyam ellenőrzés mechanizmusnak szüksége van arra, hogy a TCP inicializálja és fenntartja egyes státus információt minden adatnak - Ezen információk kombinálása és a socketek, sorszámok, ablak méretek egy kapcsolatot alkotnak - Amikor két process akar egymással kommunikálni, akkor a TCP egy kapcsolatot kell köztük létrehozzon ( mindkét oldalon inicializálja a status információt). Amikor befejezték a beszélgetést, a kapcsolat lezárul. A rossz kapcsolat létrehozása miatt clock- based sorszámokat hoztak létre 6. elsőbbség és biztonság : - A TCP használók javasolhatnak a kapcsolataiknak elsőbbséget és biztonságot
14
Socketek és portok A TCP socketek és portok segítségével többszörös kapcsolatokat rendel egyetlen Internet hosthoz 2 fajta socket van: - aktív és passzív Az aktív socket egy elszigetelt aktív sockethez egy nyitott adatkapcsolattal van összekapcsolva. A kapcsolat bezárásával az aktív socket mindkét végénél megsemmisül. A passzív socket nincs kapcsolva, vár egy bejövő kapcsolatra. A socket nem port, de köztük szoros viszony van. Minden portnak lehet egy passzív socketje (vár bejövő kapcsolatokra) és többszörös aktív socketje, mindegyik megfelel egy nyitott kapcsolatnak a porton
15
Kapcsolat inicializálása
A "three-way handshake" eljárás létesít egy kapcsolatot. Ezt az eljárást egy TCP inicializálja és egy másik TCP válaszol rá. Akkor is működik ha két TCP egyszerre inicializálja az eljárást. Ez az eljárás csökkenti a hamis kapcsolatok számát.
16
three-way handshake CLOSED LISTEN
TCP A TCP B CLOSED LISTEN 2. SYN-SENT --> <SEQ=100><CTL=SYN> >SYN-RECEIVED 3. ESTABLISHED <-- <SEQ=300><ACK=101><CTL=SYN,ACK> <-- SYN RECEIVED 4. ESTABLISHED --> <SEQ=101><ACK=301><CTL=ACK> > ESTABLISHED 5. ESTABLISHED --> <SEQ=101><ACK=301><CTL=ACK><DATA> > ESTABLISHED Basic 3-Way Handshake for Connection Synchronization TCP A TCP B 1. CLOSED CLOSED 2. SYN-SENT > <SEQ=100><CTL=SYN> 3. SYN-RECEIVED <-- <SEQ=300><CTL=SYN> < -- SYN-SENT <SEQ=100><CTL=SYN> --> SYN-RECEIVED 5. SYN-RECEIVED > <SEQ=100><ACK=301><CTL=SYN,ACK> ... 6. ESTABLISHED <-- <SEQ=300><ACK=101><CTL=SYN,ACK> <-- SYN-RECEIVED <SEQ=101><ACK=301><CTL=ACK> --> ESTABLISHED Simultaneous Connection Synchronization
17
A kapcsolat befejezése
3 eset fordulhat elő: A felhasználó kezdeményezi, küld a TCP- nek a CLOSE parancsot A TCP küldi a FIN parancsot Mindkét felhasználó egyszerre zárja be a kapcsolatot
18
Az egyik gép értesίti a másikat, hogy fejezze be a kapcsolatot
Elismeri, megmondja az applikáció folyamatnak hogy befejezi a kapcsolatot és küld egy FINish parancsot a sorszámával Amikor megkapja az értesίtést, a virtuális kört megsemmisítik
19
Simultaneous Close Sequence
TCP A TCP B 1. ESTABLISHED ESTABLISHED 2. (Close) (Close) FIN-WAIT-1 --> <SEQ=100><ACK=300><CTL=FIN,ACK> FIN-WAIT-1 <-- <SEQ=300><ACK=100><CTL=FIN,ACK> < <SEQ=100><ACK=300><CTL=FIN,ACK> > 3. CLOSING --> <SEQ=101><ACK=301><CTL=ACK> CLOSING <-- <SEQ=301><ACK=101><CTL=ACK> <-- ... <SEQ=101><ACK=301><CTL=ACK> --> 4. TIME-WAIT TIME-WAIT (2 MSL) (2 MSL) CLOSED CLOSED Simultaneous Close Sequence
20
TCPdump Egy ingyenes TCP dekódoló software
A UNIX verziója a csomag dekódolónak Van Jacobsen azért írta, hogy elemezze a TCP problémáit TCP használata : A legkönnyebb futtatni „-i” switchel. Ez kirakja az információt minden internet által kapott csomagot az interface-re.
21
A TCPDump lehetséges problémái
Nincs kimenet - ellenőrizd, ha –i opciót használtál vagy sem - ha DNS problémád van, lehet hogy a TCPDump DNS neveket keresett az IP címeknek, próbáld meg az –f vagy –n opciót - ha így sincs eredmény, nézd meg a kernel interfacet, lehet nincsen jól beállítva Kiesett csomagok - a futtatás után TCPDump értesít arról, ha csomagot dobott a kernelbe. Ha ez problémává alakul, a hostod nem tud lépést tartani a hálózati forgalommal és egyidőben dekódolja is. Próbáld meg a –w opciót (egy állományba írja a csomagot), majd az –r opcióval dekódold az állományt Üzenetek, amelyek [|rip] és [|domain]- al végződnek - a [|proto]- val végződő üzenetek azt mutatják, hogy a csomagot nem lehetett teljesen dekódolni, mert túl kicsi volt a capture snapshot size. Növeld meg az –s opcióval.
22
Bibliográfia http://www.freesoft.org/CIE/Topics/83.htm
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.