SlideShare a Scribd company logo
1 of 5
Download to read offline
Protokol TCP
Na razini transportnog sloja, u TCP/IP mrežama, gotovo se isključivo koriste dva protokola:
TCP i UDP. Za većinu mrežnih aplikacija pogodnije je koristiti TSP protokol. Protokol UDP
je jednostavan protokol. -Za razliku od TCP-a, UDP ne osigurava pouzdan prijenos u
pravilnom redoslijedu, niti osigurava kontrolu tijeka i zakrčenja. UDP protokol nudi bespojnu
uslugu, dok TCP uspostavlja vezu između dvije strane koje komuniciraju. S obzirom da TCP
uspostavlja vezu i pamti stanja u kojima se nalaze pojedine veze, on zahtjeva dodatne resurse
i predstavlja preveliki overhead kada se šalju kratke sporadične poruke. Također, zbog
kontrole toka i zakrčenja TCP nije pogodan za aplikacije koje zahtijevaju rad u realnom
vremenu kao što je npr. Internet telefonija. Za sve ostale primjene, na transportnoj razini
koristi se gotovo isključivo TCP protokol.
U ovoj vježbi će se detaljno istražit ponašanje TCP protokola. TCP protokol je obrađen u
poglavljima 3.5 i 3.7 u knjizi.
1. Snimanje TCP komunikacije između računala i udaljenog poslužitelja
Prije nego što počnemo istraživati TCP protokol, upotrijebit ćemo Whireshark za hvatanje
paketa TCP prijenosa datoteke sa vašeg računala na udaljeni poslužitelj. To ćete učiniti tako
da pristupite web stranici koja omogućava da unesete ime datoteke pohranjene na vašem
računalu (koja sadrži ASCII tekst «Alice in Wonderland») i tada ćete prenijeti datoteku na
web poslužitelj rabeći HTTP POST metodu. (Pogledajte poglavlje 2.2.3 u knjizi.) Radije
koristimo POST nego GET metodu jer želimo prenijeti veliku količinu podataka s vašeg na
drugo računalo. Naravno, prije toga pokrenut ćemo Whireshark da bi pohvatali TCP segmente
koje je poslalo i primilo vaše računalo.
Napravite sljedeće:
• Očistite priručnu memoriju vašeg web preglednika.
• U command prompt unesite naredbu ipconfig /flushdns
• Pokrenite snimanje mrežnog prometa u Wiresharku.
• U web pregledniku odite na http://gaia.cs.umass.edu/wireshark-labs/alice.txt i
dohvatite ASCII kopiju «Alice in Wonderland. Datoteku pohranite na lokalno
računalo kao alice.txt.
• Odite na http://gaia.cs.umass.edu/wireshark-labs/TCP-wireshark-file1.html i
uploadajte datoteku alice.txt.
• Zaustavite snimanje u Wiresharku.
2. Prvi pogled na uhvaćene pakete
Prije nego započnemo analizu TCP veze u detalje, pogledajmo uhvaćene pakete.
- Najprije, filtrirajte pakete prikazane u Whireshark prozoru tako da unesete «tcp» u
polje «filter» u Whireshark Prozoru
Sada bi trebali vidjeti niz TCP i HTTP poruka između vašeg računala i gaia.cs.umass.edu.
Trebali bi vidjeti inicijalni «three-way handshake» koji sadrži SYN poruku. Trebali bi vidjeti
POST poruku, te niz «HTTP Continuation» poruka koje su poslane s vašeg računala na
gaia.cs.umass.edu. «HTTP Continuation» poruka je način na koji Whireshark prikazuje
višestruke TCP segmente koji se koriste za prijenos jedne HTTP poruke. Također bi trebali
vidjeti TCP ACK segmente koji su vraćeni vašem računalu od gaia.cs.umass.edu.
- Spremite rezultate ovog pokusa u Whiresharku (File -> Save), tako da ga kasnije kad
odgovarate na pitanja, ne morate izvoditi ponovo.
- Datoteku tcp-Whireshark-trace-1.cap imate unutar TCP teme,a u njoj je snimljena
komunikacija između klijenta i poslužitelja koji na transportnom sloju koristi tcp.
Odgovorite na slijedeća pitanja, tako da u Whiresharku otvorite datoteku
tcp-Whireshark-trace-1.cap.
1. Koja je IP adresa i broj TCP porta koje koristi klijentsko računalo (source) koje je
poslalo datoteku na gaia.cs.umass.edu? Da bi odgovorili na ovo pitanje, najlakši način
je da označite HTTP poruku i istražite detalje TCP paketa korištenih za prijenos te
poruke.
2. koja je IP adresa računala gaia.cs.umass.edu (u slučaju da ste iza proxy poslužitelja,
koja je adresa proxy poslužitelja na koji ste spojeni)? Na koji port se primaju i šalju
TCP segmenti za ovu vezu?
Sada otvorite rezultate koje ste dobili hvatanjem paketa u Whiresharku i odgovorite na
slijedeće pitanje:
3. Koja je IP adresa i broj TCP porta koje koristi vaše računalo da bi poslalo datoteku na
gaia.cs.umass.edu?
Kako se u ovoj vježbi radi o TCP a ne o HTTP protokolu, načinimo promjenu u
Whiresharkovom prozoru «listing of captured packets» tako da Whireshark prikazuje
informacije o TCP segmentima koji sadrže HTTP poruke, a ne o HTTP porukama. Kliknite
Analyze->Enabled Protocols, zatim maknite kvačicu koja stoji u kvadratiću uz HTTP i
kliknite «OK». Sada bi vam Whireshark prozor trebao izgledati slično ovome:
To je ono što tražimo – niz TCP segmenata poslanih između vašeg računala i
gaia.cs.umass.edu. Za daljnje razmatranje TCP protokola koristite vaše rezultate dobivene
Whiresharkom.
3. TCP osnove
Odgovorite na slijedeća pitanja vezana uz TCP segmente:
4. Koji je redni broj (sequence number) TCP SYN segmenta koji se koristi za
uspostavljanje TCP veze između klijentskog računala i gaia.cs.umass.edu? Što je to u
tom segmentu što ga identificira kao SYN segment?
5. Koji je redni broj (sequence number) SYNACK segmenta koji je poslan od
gaia.cs.umass.edu kao odgovor na SYN? Koja je vrijednost «ACKnowledgement»
polja u SYNACK segmentu? Kako je gaia.cs.umass.edu odredilo tu vrijednost? Što je
to u tom segmentu što ga identificira kao SYNACK segment?
6. Koji je redni broj (sequence number) TCP segmenta koji sadrži HTTP POST naredbu?
Napomena: da bi pronašli POST naredbu bit će potrebno pretražiti sadržaj paketa
«packet content field» koji se nalazi na dnu Whireshark prozora, tražeći segment koji
sadrži «POST» unutar DATA polja.
7. Koje strana inicira uspostavu TCP veze klijent ili poslužitelj? Koliko se poruka
razmjenjuje prilikom uspostave TCP veze?
8. Ima li TCP segmenata koji su ponovo preneseni? Što ste provjerili da bi mogli
odgovoriti na ovo pitanje?
9. Koliko podataka primatelj tipično potvrđuje u ACK segmentu? Možete li pronaći
slučajeve kada primatelj potvrđuje svaki drugi primljeni segment (pogledajte tablicu
3.2 na str. 245 u knjizi).
4. TCP kontrola zagušenja u akciji
Istražimo sad količinu podataka poslanih u jedinici vremena od klijenta prema poslužitelju.
Da ne biste računali iz neobrađenih podataka u Whireshark prozoru, koristit ćemo jedan od
Etheralovih grafičkih alata - Time-Sequence-Graph(Stevens) pomoću kojeg ćemo ispisati
podatke.
- označite TCP segment u Whireshark prozoru «listing of captured packets». Nakon
toga kliknite: Statistics->TCP Stream Graph-> Time-Sequence-Graph(Stevens).
Trebali biste vidjeti ispis nalik ovome, koji je kreiran iz datoteke tcp-Whireshark-
trace-1.cap koja se nalazi unutar TCP teme na LMS-u.
Svaka točka predstavlja poslani TCP segment. Točke koje su naslagane jedna iznad druge
predstavljaju niz paketa koje je pošiljatelj poslao jednog za drugim (back-to-back).
Odgovorite na slijedeća pitanja tako da u Whiresharku otvorite datoteku u kojoj se nalaze
podaci koje ste Vi uhvatili u Whiresharku i usporedite ih sa slikom iznad .
10. Koristeći Time-Sequence-Graph(Stevens) pogledajte ispis TCP segmenata koji su
poslani od klijentskog računala prema poslužitelju gaia.cs.umass.edu. Možete li
odrediti gdje počinje i gdje završava TCP «slowstart» faza i gdje izbjegavanje
zagušenja preuzima kontrolu u slučaju podataka koje ste uhvatili? Napomena: u
realnom slučaju (paketi koje ste na početku vježbe uhvatili) nije sve lijepo i
jednostavno kao u poglavlju 3.5.1 u knjizi.
11. Komentirajte u čemu se izmjereni podaci razlikuju od ponašanja TCP protokola koji je
opisan na slici iznad.
5. Računanje Internet zaštitne sume
(Internet Checksum koriste se kod protokola: TCP, UDP, IP, ICMP…)
Internet zaštitna suma računa se tako da se podaci podijele u 16 bitne riječi koje se zbroje
(koristeći aritmetiku jediničnog komplementa). Ako je slučajno došlo do preljeva (overflow)
bitovi se prebacuju na kraj (desno) i zbrajaju sa zbrojem. Jedinični komplement tako
izračunate sume je Internet Checksum.
12. Za podatke zapisane u heksadekadskom obliku sa: 0a1b46ff01210016 izračunajte Internet
Checksum i zapišite u heksadekadskom obliku. (Rješenje: ADAE)
13. Nadodajte izračunati checksum iz prethodnog zadatka originalnom nizu bitova i onda od
svega toga izračunajte Internet checksum. Što ste dobili? (Rješenje: 0000)
14. Za podatke zapisane u heksadekadskom obliku sa: 1a1b46ffa121f016 izračunajte Internet
Checksum i zapišite u heksadekadskom obliku. (Rješenje: 0DAD (pri računanju dolazi do
preljeva))

More Related Content

Similar to 241219695 protokol-tcp

Similar to 241219695 protokol-tcp (7)

Osnove interneta
Osnove internetaOsnove interneta
Osnove interneta
 
Tru64-Mreza
Tru64-MrezaTru64-Mreza
Tru64-Mreza
 
Maturski mreze
Maturski mrezeMaturski mreze
Maturski mreze
 
Sigurnost Bezicnih Mreza (Wep I Wpa Enkripcija) 2009 11 21 (čAkovec)
Sigurnost Bezicnih Mreza (Wep I Wpa Enkripcija)   2009 11 21 (čAkovec)Sigurnost Bezicnih Mreza (Wep I Wpa Enkripcija)   2009 11 21 (čAkovec)
Sigurnost Bezicnih Mreza (Wep I Wpa Enkripcija) 2009 11 21 (čAkovec)
 
Http protokol
Http protokolHttp protokol
Http protokol
 
Real-Time Streaming: Apache Spark Streaming i Apache Storm
Real-Time Streaming: Apache Spark Streaming i Apache StormReal-Time Streaming: Apache Spark Streaming i Apache Storm
Real-Time Streaming: Apache Spark Streaming i Apache Storm
 
JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak
JavaCro'15 - WebRTC in PBZ video chat - Zoran PerakJavaCro'15 - WebRTC in PBZ video chat - Zoran Perak
JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak
 

241219695 protokol-tcp

  • 1. Protokol TCP Na razini transportnog sloja, u TCP/IP mrežama, gotovo se isključivo koriste dva protokola: TCP i UDP. Za većinu mrežnih aplikacija pogodnije je koristiti TSP protokol. Protokol UDP je jednostavan protokol. -Za razliku od TCP-a, UDP ne osigurava pouzdan prijenos u pravilnom redoslijedu, niti osigurava kontrolu tijeka i zakrčenja. UDP protokol nudi bespojnu uslugu, dok TCP uspostavlja vezu između dvije strane koje komuniciraju. S obzirom da TCP uspostavlja vezu i pamti stanja u kojima se nalaze pojedine veze, on zahtjeva dodatne resurse i predstavlja preveliki overhead kada se šalju kratke sporadične poruke. Također, zbog kontrole toka i zakrčenja TCP nije pogodan za aplikacije koje zahtijevaju rad u realnom vremenu kao što je npr. Internet telefonija. Za sve ostale primjene, na transportnoj razini koristi se gotovo isključivo TCP protokol. U ovoj vježbi će se detaljno istražit ponašanje TCP protokola. TCP protokol je obrađen u poglavljima 3.5 i 3.7 u knjizi. 1. Snimanje TCP komunikacije između računala i udaljenog poslužitelja Prije nego što počnemo istraživati TCP protokol, upotrijebit ćemo Whireshark za hvatanje paketa TCP prijenosa datoteke sa vašeg računala na udaljeni poslužitelj. To ćete učiniti tako da pristupite web stranici koja omogućava da unesete ime datoteke pohranjene na vašem računalu (koja sadrži ASCII tekst «Alice in Wonderland») i tada ćete prenijeti datoteku na web poslužitelj rabeći HTTP POST metodu. (Pogledajte poglavlje 2.2.3 u knjizi.) Radije koristimo POST nego GET metodu jer želimo prenijeti veliku količinu podataka s vašeg na drugo računalo. Naravno, prije toga pokrenut ćemo Whireshark da bi pohvatali TCP segmente koje je poslalo i primilo vaše računalo. Napravite sljedeće: • Očistite priručnu memoriju vašeg web preglednika. • U command prompt unesite naredbu ipconfig /flushdns • Pokrenite snimanje mrežnog prometa u Wiresharku. • U web pregledniku odite na http://gaia.cs.umass.edu/wireshark-labs/alice.txt i dohvatite ASCII kopiju «Alice in Wonderland. Datoteku pohranite na lokalno računalo kao alice.txt. • Odite na http://gaia.cs.umass.edu/wireshark-labs/TCP-wireshark-file1.html i uploadajte datoteku alice.txt. • Zaustavite snimanje u Wiresharku.
  • 2. 2. Prvi pogled na uhvaćene pakete Prije nego započnemo analizu TCP veze u detalje, pogledajmo uhvaćene pakete. - Najprije, filtrirajte pakete prikazane u Whireshark prozoru tako da unesete «tcp» u polje «filter» u Whireshark Prozoru Sada bi trebali vidjeti niz TCP i HTTP poruka između vašeg računala i gaia.cs.umass.edu. Trebali bi vidjeti inicijalni «three-way handshake» koji sadrži SYN poruku. Trebali bi vidjeti POST poruku, te niz «HTTP Continuation» poruka koje su poslane s vašeg računala na gaia.cs.umass.edu. «HTTP Continuation» poruka je način na koji Whireshark prikazuje višestruke TCP segmente koji se koriste za prijenos jedne HTTP poruke. Također bi trebali vidjeti TCP ACK segmente koji su vraćeni vašem računalu od gaia.cs.umass.edu. - Spremite rezultate ovog pokusa u Whiresharku (File -> Save), tako da ga kasnije kad odgovarate na pitanja, ne morate izvoditi ponovo. - Datoteku tcp-Whireshark-trace-1.cap imate unutar TCP teme,a u njoj je snimljena komunikacija između klijenta i poslužitelja koji na transportnom sloju koristi tcp. Odgovorite na slijedeća pitanja, tako da u Whiresharku otvorite datoteku tcp-Whireshark-trace-1.cap. 1. Koja je IP adresa i broj TCP porta koje koristi klijentsko računalo (source) koje je poslalo datoteku na gaia.cs.umass.edu? Da bi odgovorili na ovo pitanje, najlakši način je da označite HTTP poruku i istražite detalje TCP paketa korištenih za prijenos te poruke. 2. koja je IP adresa računala gaia.cs.umass.edu (u slučaju da ste iza proxy poslužitelja, koja je adresa proxy poslužitelja na koji ste spojeni)? Na koji port se primaju i šalju TCP segmenti za ovu vezu? Sada otvorite rezultate koje ste dobili hvatanjem paketa u Whiresharku i odgovorite na slijedeće pitanje: 3. Koja je IP adresa i broj TCP porta koje koristi vaše računalo da bi poslalo datoteku na gaia.cs.umass.edu? Kako se u ovoj vježbi radi o TCP a ne o HTTP protokolu, načinimo promjenu u Whiresharkovom prozoru «listing of captured packets» tako da Whireshark prikazuje informacije o TCP segmentima koji sadrže HTTP poruke, a ne o HTTP porukama. Kliknite Analyze->Enabled Protocols, zatim maknite kvačicu koja stoji u kvadratiću uz HTTP i kliknite «OK». Sada bi vam Whireshark prozor trebao izgledati slično ovome:
  • 3. To je ono što tražimo – niz TCP segmenata poslanih između vašeg računala i gaia.cs.umass.edu. Za daljnje razmatranje TCP protokola koristite vaše rezultate dobivene Whiresharkom. 3. TCP osnove Odgovorite na slijedeća pitanja vezana uz TCP segmente: 4. Koji je redni broj (sequence number) TCP SYN segmenta koji se koristi za uspostavljanje TCP veze između klijentskog računala i gaia.cs.umass.edu? Što je to u tom segmentu što ga identificira kao SYN segment? 5. Koji je redni broj (sequence number) SYNACK segmenta koji je poslan od gaia.cs.umass.edu kao odgovor na SYN? Koja je vrijednost «ACKnowledgement» polja u SYNACK segmentu? Kako je gaia.cs.umass.edu odredilo tu vrijednost? Što je to u tom segmentu što ga identificira kao SYNACK segment? 6. Koji je redni broj (sequence number) TCP segmenta koji sadrži HTTP POST naredbu? Napomena: da bi pronašli POST naredbu bit će potrebno pretražiti sadržaj paketa «packet content field» koji se nalazi na dnu Whireshark prozora, tražeći segment koji sadrži «POST» unutar DATA polja. 7. Koje strana inicira uspostavu TCP veze klijent ili poslužitelj? Koliko se poruka razmjenjuje prilikom uspostave TCP veze? 8. Ima li TCP segmenata koji su ponovo preneseni? Što ste provjerili da bi mogli odgovoriti na ovo pitanje? 9. Koliko podataka primatelj tipično potvrđuje u ACK segmentu? Možete li pronaći slučajeve kada primatelj potvrđuje svaki drugi primljeni segment (pogledajte tablicu 3.2 na str. 245 u knjizi).
  • 4. 4. TCP kontrola zagušenja u akciji Istražimo sad količinu podataka poslanih u jedinici vremena od klijenta prema poslužitelju. Da ne biste računali iz neobrađenih podataka u Whireshark prozoru, koristit ćemo jedan od Etheralovih grafičkih alata - Time-Sequence-Graph(Stevens) pomoću kojeg ćemo ispisati podatke. - označite TCP segment u Whireshark prozoru «listing of captured packets». Nakon toga kliknite: Statistics->TCP Stream Graph-> Time-Sequence-Graph(Stevens). Trebali biste vidjeti ispis nalik ovome, koji je kreiran iz datoteke tcp-Whireshark- trace-1.cap koja se nalazi unutar TCP teme na LMS-u. Svaka točka predstavlja poslani TCP segment. Točke koje su naslagane jedna iznad druge predstavljaju niz paketa koje je pošiljatelj poslao jednog za drugim (back-to-back). Odgovorite na slijedeća pitanja tako da u Whiresharku otvorite datoteku u kojoj se nalaze podaci koje ste Vi uhvatili u Whiresharku i usporedite ih sa slikom iznad . 10. Koristeći Time-Sequence-Graph(Stevens) pogledajte ispis TCP segmenata koji su poslani od klijentskog računala prema poslužitelju gaia.cs.umass.edu. Možete li odrediti gdje počinje i gdje završava TCP «slowstart» faza i gdje izbjegavanje zagušenja preuzima kontrolu u slučaju podataka koje ste uhvatili? Napomena: u
  • 5. realnom slučaju (paketi koje ste na početku vježbe uhvatili) nije sve lijepo i jednostavno kao u poglavlju 3.5.1 u knjizi. 11. Komentirajte u čemu se izmjereni podaci razlikuju od ponašanja TCP protokola koji je opisan na slici iznad. 5. Računanje Internet zaštitne sume (Internet Checksum koriste se kod protokola: TCP, UDP, IP, ICMP…) Internet zaštitna suma računa se tako da se podaci podijele u 16 bitne riječi koje se zbroje (koristeći aritmetiku jediničnog komplementa). Ako je slučajno došlo do preljeva (overflow) bitovi se prebacuju na kraj (desno) i zbrajaju sa zbrojem. Jedinični komplement tako izračunate sume je Internet Checksum. 12. Za podatke zapisane u heksadekadskom obliku sa: 0a1b46ff01210016 izračunajte Internet Checksum i zapišite u heksadekadskom obliku. (Rješenje: ADAE) 13. Nadodajte izračunati checksum iz prethodnog zadatka originalnom nizu bitova i onda od svega toga izračunajte Internet checksum. Što ste dobili? (Rješenje: 0000) 14. Za podatke zapisane u heksadekadskom obliku sa: 1a1b46ffa121f016 izračunajte Internet Checksum i zapišite u heksadekadskom obliku. (Rješenje: 0DAD (pri računanju dolazi do preljeva))