1 / 22

TCP (Transmission Controll Protokoll)

TCP (Transmission Controll Protokoll). Mag yarul: Átvitel Vezérlési Protokoll Csete Andrea 641 csoport. 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 Eg y ike a legfontosabb Internet protokolloknak. Feladatai.

badu
Download Presentation

TCP (Transmission Controll Protokoll)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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(32bit)- elismerése az adat más készülékről való elfogadásának • Fejrészhossz(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-(AcknowledgeBit)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- aSYN-nel együtt jóváhagyja a kapcsolat végét - nincs több adat a küldőtől • Ablak(16bit)- 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 processzegyetlen 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 • 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 4. ... <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 7. ... <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 • Amikormegkapja az értesίtést, a virtuális kört megsemmisítik

  19. 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 TCPDumplehetsé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 • http://www.freesoft.org/CIE/Course/Section4/ • http://www.ardenstone.com/projects/seniorsem/reports/TCP_Protocol.html

More Related