10. TCP/IP - es.elfak.ni.ac.rses.elfak.ni.ac.rs/rmif/Prenos-podatak-februar-2011/Pre.-pod-...
Transcript of 10. TCP/IP - es.elfak.ni.ac.rses.elfak.ni.ac.rs/rmif/Prenos-podatak-februar-2011/Pre.-pod-...
Prenos podataka – TCP/IP
226
10. TCP/IP
10.1. Uvod
Mrežne tehnologije kakve su Ethernet, Token Ring i FDDI (Fiber Distributed Data Interface) obezbedjuju funkcije do nivoa-veze (data link layer). Drugim rečima, to znači da ove tehnologije obezbedjuju samo pouzdanu vezu izmedju jednog i drugog čvora u istoj mreži, ali ne i funkcije koje se odnose na prenos podataka iz jedne mreže ka drugoj ili jednog mrežnog segmenta ka drugom. Da bi se podaci prenosili kroz mreže potrebno je koristiti adresne šeme (tehnike) koje će biti razumljive (interpretirane) za bridge, gateway i rutere. Medjusobno povezivanje mreža se naziva umrežavanje (internetworking ili internet). Svaki deo internet-a naziva se sub-mreža (subnet).
TCP/IP (Transmission Control Protocol and Internet Protocol) predstavlja par protokola koji omogućava (obezbedjuje) da jedan deo subnet-a komunicira sa drugim. Napomenimo da protokol predstavlja skup pravila za korektnu razmenu podataka izmedju dva uredjaja (računara). U konkretnom slučaju, IP deo odgovara mrežnom-nivou (network-layer) OSI modela dok TCP deo transportnom-nivou (transport-layer). Rad ovih ovih protokola transparentan je fizičkom-nivou i nivou-veze pa se zbog toga par TCP/IP može koristiti za rad Etherneta, FDDI ili Token Ring-a. Na slici 10.1. ilustrovana je ova situacija. Adresa na nivou-veze odgovara fizičkoj adresi čvora kakva je MAC adresa (kod Ethernet ili Token Ring) ili telefonskog broja (kod modemske veze). IP adresa dodeljuje se svakom čvoru internet-a i koristi se da identifikuje lokaciju mreže i bilo kojih subnet-a.
fizički
transportni-nivo
mrežni-nivo
nivo-veza
TCP
IP
Ethernet/Token Ring/
FDDI/ISDN
Slika 10.1 OSI i TCP/IP model
Svetska mreža Internet koristi TCP/IP kao standard za prenos podataka. Svakom čvoru na Internetu dodeljena je jedinstvena mrežna adresa koja se naziva IP adresa. Naglasimo da svaka organizacija može da ima svoje internete, ali ako se ovi interneti spoje na Internet tada je potrebno da se njihove adrese slože sa formatom kod Internet adresiranja.
ISO je usvojio TCP/IP kao bazu za standarde koji se odnose na mrežne i transportne nivoe kod OSI modela. Ovaj standard je poznat kao ISO-IP.
Tipične aplikacije koje koriste TCP/IP komunikacije su remote-login i file-transfer. Standardni programi koji se koriste za fajl-transfer i log-in preko TCP komunikacije su ftp-program za transfer fajlova, telnet-omogućava remote log-in na drugi računar, ping-program odredjuje da li se čvor odaziva na TCP/IP komunikacije, i dr.
Prenos podataka – TCP/IP
227
10.2. TCP/IP gateway i host
TCP/IP hostovi su čvorovi koji preko mreže medjusobno komuniciraju koristeći TCP/IP komunikacije.
TCP/IP gateway čvor povezuje jedan tip mreže sa drugim. On sadrži hardver koje ostvaruje fizičku vezu izmedju različitih mreža, kao i hardver i softver za konverziju okvira iz jednog formata u drugi. Obično on konvertuje Token Ring MAC nivo u ekvivalentni Ethernet MAC nivo, i obratno.
Sa druge strane, koristeći vezu tipa tačka-ka-tački (point-to-point) ruter povezuje dve mreže istog tipa.
Glavna operativna razlika izmedju gateway, rutera i bridge-a je ta da kod Token Ring i Ethernet mreža, bridge koristi 48-bitnu MAC adresu za rutiranje poruka, dok gateway i ruter koriste IP mrežnu adresu. Po analogiji sa javnom telefonskom mrežom, MAC adresa ekvivalentna je slučajno dodeljenom telefonskom broju, dok IP adresa sadrži informaciju o logičkoj lokaciji telefona kao što su zemlja, kôd oblasti, i dr.
Na slici 10.2. prikazan je način na koji gateway usmerava (rutira) informaciju. Gateway čita okvir sa računara povezan na mreži A. Nakon toga čita IP adresu koja je sastavni deo okvira i donosi odluku da li okvir da usmeri na izlazu mreže A prema mreži B. Ako on to odluči tada prilagodi okvir formatu mreži B i predaje ga.
Transportninivo
Mrežninivo
Nivoveze
Fizičkinivo
TCP
IP
Ethernet,Token Ring,
FDDIModem
IP
ConvertorEthernet,
Token Ring,FDDI
Modem
IP
Ethernet,Token Ring,
FDDIModem
TCP
Mreža A Mreža B
Internetgataway
Slika 10.2 Internet gateway nivoi
10.3. Funkcije IP protokola
Glavne funkcije IP protokola su:
1. Rutiranje IP okvira podataka - okviri su tipa (nazivaju se) internet datagram. Program koji se odnosi na IP protokol, a izvršava se na svakom čvoru, zna lokaciju gateway-a u mreži. Gateway mora biti u stanju da locira mrežu kojoj želimo da pristupimo. Podaci nakon toga polaze od čvora ka gateway-u preko interneta.
2. Fragmentacija podataka - na manje jedinice ako je njihov obim veći od 64 kB.
3. Raportiranje grešaka - kada se datagram rutira ili se reasemblira može da se javi greška. Ako se javi greška tada čvor detektuje grešku i obaveštava povratno izvorni čvor. Datagrami se izbacuju iz mreže ako oni putuju kroz mrezu duže u odnosu na specificirano vreme. Kao zaključak, poruka o grešci vraća se izvornom čvoru sa ciljem da ga obavesti da internet rutiranje ne može da nadje put za datagram, ili da odredišni čvor, ili mreža, ne postoji.
Prenos podataka – TCP/IP
228
10.4. Internet datagram
IP protokol predstavlja implementaciju OSI mrežnog nivoa. Informaciji koju prima od transportnog-nivoa IP dodaje zaglavlje, a rezultantni paket podataka naziva se internet datagram. Zaglavlje sadrži informaciju o odredišnoj i izvorišnoj IP adresi, broj verzije IP protokola, i dr. Format internet datagrama prikazan je na slici 10.3.
Data
1
Version Type of service
Total lenght
Identification
ProtocolTime-to-live
Source IP address
109876542 3 14131211 1615
D M Fragment offset
Destination IP address
Options
( )kB64≤
Header
Header lenght
Slika 10.3 Format i sadržaj internet datagrama
Datagram može da sadrži do 64 kB podataka. Kada je obim podataka koji se predaje jednak ili manji od 64 kB tada se on predaje kao jedinstveni datagram. Suprotno, ako je obim podataka veći od 64 kB, tada predajnik deli podatke na fragmente i predaje ih kao više datagrama. Nakon predaje od strane izvorišta, svaki datagram se rutira posebno kroz internet, ali se na prijemnoj strani fragmenti konačno reasembliraju (pakuju u prvobitni redosled).
Polja kod IP datagrama imaju sledeće značenje:
• Version - broj verzije TCP/IP-a pomaže čorovima i gateway-ima da korektno interpretiraju podatke. Kod različitih verzija postoje različiti formati ili pak IP protokol može da interpretira zaglavlje različito.
• Type of service - ovo polje je 8-bitno i oblika je PPPDTRXX, gde PPP definiše prioritet datagrama (od 0 do 7), D postavlja mali iznos kašnjenja za datu uslugu, T definiše visoku propusnost, R postavlja visoku pouzdanost, a XX se tekuće ne koristi.
Prenos podataka – TCP/IP
229
• Header length - definiše obim jediničnog podatka kao umnožak od 4 bajta. Minimalna dužina je 5 bajtova, a maksimalna 65536 bajtova. Neiskorišćeni prostor se popunjava padding bajtovima (bajtovima za popunjenje).
• D i M bitovi - gateway može da rutira datagram i da ga podeli na manje delove. D bit informiše gataway da ne sme da deli podatke pa na taj način ukazuje prijemnom čvoru da mora da primi podatke kao jedinstvenu celinu, ili da ih uopšte ne primi. M bit ukazuje da je poruka fragmentirana i identifikuje fragmente podataka. Polje fragment-offset sadrži broj fragmenta.
• Time-to-live - datagram se može pronositi kroz internet beskonačno dugo. Da bi se zaštitili od ovoga, izvorišni IP čvor postavlja 8-bitnu time-to-live vrednost na maksimalno prelazno (tranzitno) vreme u sekundama. Svaki gateway zatim dekrementira vrednost za definisano vreme. To znači da time-to-live polje definiše maksimalni iznos vremena za koje odredišni IP čvor treba da dobije naredni datagram fragment.
• Protocol - kod prenosa datagrama mogu se koristiti različiti tipovi IP protokola. Osmobitnim protocol poljem u okviru zaglavlja definiše se tip korišćenog protokola.
• Header checksum - ovo polje sadrži 16-bitni bit oblik na osnovu koga se može detektovati greška
• Source and destination IP addresses - izvorišna i odredišna IP adresa smešta se u 32-bitnom polju izvorišne i odredišne IP adrese, respektivno.
• Options - ovo polje sadrži informaciju koja se tiče debagiranja, kontrole greške i informacija o rutiranju.
10.5. ICMP
Poruke, kakve su podaci upravljačkog tipa (control data) informacioni podaci, i podaci o ispravljanju grešaka, prenose se izmedju Internet-hostova pomoću ICMP (Internet Control Message Protocol). Poruke se predaju sa standardnim IP zaglavljem, a mogu biti tipa:
• Odredište nije dostupno (destination unreachable to je poruka tip 3) - šalje se od strane hosta na mreži i ima za cilj da ukaže da je odredište nedostupno. Može da sadrži i informaciju koja nešto bliže definiše-zbog čega odredište nije dostupno.
• Echo request/echo reply (poruka tipa 8 ili 0) - koristi se za proveru veze izmedju dva hosta. Komanda ping (pripada TCP protokolu) koristi ovu poruku, pri čemu ona šalje ICMP echo request poruku ka ciljnom hostu i čeka da odredišni host odgovori sa porukom tipa echo reply.
• Redirection (poruka tipa 5) šalje se od strane rutera ka onom hostu koji je zahtevao servis rutiranja. Na ovaj način pronalazi se najkraći put do željenog hosta.
• Source quench (poruka tipa 4) - koristi se kada host u datom trenutku ne može da primi više IP paketa.
Kao što je prikazano na slici 10.4. ICMP poruka na početku ima tri polja. Type je 8-bitno polje i identifikuje tip poruke saglasno slici 10.5. Code polje je 8-bitno, a Checksum polje je 16-bitno. Informacija nakon ovog polja zavisi od tipa poruke, i može se odnositi na:
• echo request i reply - prenosi se kao 8-bitni identifikator koji sledi zaglavlje poruke, nakon čega sledi 8-bitni redosledni broj, a zatim prvobitno IP zaglavlje.
• destination unreachable, source quench i time-nakon zaglavlja poruke slede 32-bita a nakon toga prvobitno IP zaglavlje.
• timestamp request - 16-bitni identifikator koji sledi zaglavlje poruke, nakon toga sledi 16-bitni redosledni broj, i na kraju 32-bitni početni timestampt.
Prenos podataka – TCP/IP
230
zaglavlje IP paketa
tip kod ček sumadodatna
informacija
ICMP poruka
8 bitova 8 bitova 8 bitova
Slika 10.4 Format ICMP poruke
vrednost tip poruke vrednost tip poruke 0 Echo reply 12 Parameter problem
3 Destination unreachable 13 Timestamp request
4 Source quench 14 Timestamp reply
5 Redirect 17 Address mask request
8 Echo request 18 Address mask reply
11 Time-to-live exceeded
Slika 10.5 Vrednost polja kod različitih tipova poruka
10.6. Implementacija TCP/IP
Na slici 10.6. prikazana je jedna jednostavna implementacija TCP/IP-a. Gateway MERCURY ostvaruje vezu (povezivanje) izmedju token-ring mreže (NETWORK A) i Ethernet mreže (ETHER C). Drugi gateway PLUTO povezuje NETWORK B na ETHER C. TCP/IP protokol je taj koji omogućava da host na NETWORK A komunicira sa VAX 01.
Prenos podataka – TCP/IP
231
MOON
VAX02
MERCURY
MARSJUPITER
PLUTO
DIONE
VENUS OBERONVAX01
NETWORK A
NETWORK B
ETHER C
Slika 10.6 Primer implementacije interneta
10.6.1. Izbor internet adresa Svaki čvor koji koristi TCP/IP način komuniciranja zahteva IP adresu koja se uparuje sa Token
Ring ili Ethernet MAC adresom. MAC adresa obezbedjuje da čvorovi na istom segmentu mogu medjusobno da komuniciraju. Sa ciljem da čvorovi koji pripadaju različitim mrežama mogu da komuniciraju, svakom čvoru je potrebno dodeliti IP adresu.
Čvorovi na TCP/IP mrežu mogu biti host-ovi ili gateway-ovi. Bilo koji čvor koji izvršava aplikacioni softver, ili je terminal, je host. Bilo koji čvor koji rutira TCP/IP pakete izmedju mreža naziva se TCP/IP gateway čvor. Ovaj čvor mora da ima ugradjenu odgovarajuću karticu tipa mrežni kontroler koja se koristi kao fizički interfejs sa drugim mrežama na kojima se povezuje.
10.6.2. Format IP adrese IP adresu (vidi sliku 10.7) čine dva polja: (a) broj mreže - identifikuje mrežu; i (b) broj hosta -
identifikuje pojedini host u okviru mreže.
Prenos podataka – TCP/IP
232
Network B[broj
mreže]
[broj Host-a]
[broj Host-a]
broj mreže broj Host-a
Network A[broj
mreže]
[broj Host-a]
Network C[broj
mreže]
Slika 10.7 IP adresiranje kod mreža
IP adresa je obima 32-bita, a to znači da je moguće adresirati 2969672944232 = hostova. Kao što je prikazano na slici 10.8 postoje tri glavna adresna formata. Svaki od ovih tipova važi za odredjeni tip mreže.
Klasa A obezbedjuje adresiranje do 128 (27) različitih mreža i do 16 777 216 (224) hostova po svakoj mreži.
Klasa B omogućava adresiranje do 16 384 mreža i do 65 536 hostova po mreži.
Klasa C dozvoljava adresiranje do 2 097 152 mreža pri čemu svaka može da ima do 256 hostova.
0
1 0
1 1 0
Class A
Class C
Class B
Network (7 bitova)
Network (21 bitova)
Network (14 bitova)
Node (Čvor) (24 bitova)
Node (Čvor) (8 bitova)
Node (Čvor) (16 bitova)
Slika 10.8 Klase A, B i C kod IP adresiranja
Klasa A je pogodna za aplikaciju kod onih situacija gde postoji mali broj mreža sa velikim brojem hostova po mreži. Klasa C je korisna gde postoji veliki broj mreža sa relativno malim brojem hostova povezanih na svaku mrežu. Klasa B, po svemu izgleda, predstavlja dobar kompromis izmedju krajnjih rešenja koja nude klase A sa jedne, i klase C, sa druge strane.
Prenos podataka – TCP/IP
233
Kada se bira internet adresa mreže, adresa se specificira decimalnim brojevima koji se nalaze u okviru specificiranog opsega. Tako na primer, kod mreže DARPA koristi se sledeći IP adresni format: W.X.Y.Z, gde svakoj od veličina W, X, Y i Z odgovara po jedan bajt IP adrese. Decimalni broj se nalazi u opsegu od 2550 − . Četiri bajta se odnose na adresu mreže plus adresu hosta.
Na slici 1‚0.9. definisani su važeći adresni opsezi za sliku 10.8. Shodno prethodnom, kod klase A moguće je adresirati 127 mreža i 255256256 ∗∗ hostova. Kod klase B moguće je adresirati 25564 ∗ mreža, a kod klase C 25525632 ∗∗ mreža i 255 hostova.
Adrese iznad 223.255.254 su rezervisane, a isti zaključak važi i za adrese čije su grupe nulte.
Tip Deo mreže Deo host-a
A 1 - 126 0.0.1 – 255.255.254
B 128.1 – 191.254 0.1 – 255.254
C 192.0.1 – 223.255.254 1 - 254
Slika 10.9 Opsezi adresa za internet adrese tipa A, B i C
10.6.3. Kreiranje IP adresa i subnet brojeva
Pored selektovanje IP adresa mreža i host brojeva moguće je uvesti još jedan medjubroj koji se naziva subnet broj. Uvodjenje subnet-a obezbedjuje se ostvarivanje hijerarhijske organizacije u okviru mreže (vidi sliku 10.10).
Subnet A[broj
podmreže]
Subnet A[broj
podmreže]
Subnet A[broj
podmreže]Subnet A
[broj podmreže]
[broj Host-a]
Network A[broj
mreže]
Subnet B[broj
podmreže]
Network C[broj
mreže]
broj mreže broj Subnet-a broj Host-a
W.X.Y
W.X.Y
Slika 10.10 IP adresa uvodjenjem subnet-a
Za adresu W. X. Y. Z i kod tipa A, adresa W specificira mrežu, a X subnet. Za tip B Y polje specificira subnet (vidi sliku 10.11.)
Prenos podataka – TCP/IP
234
Subnet A[broj
podmreže]
Subnet A[broj
podmreže]
Subnet A[broj
podmreže]Subnet A
[broj podmreže]
[broj Host-a]
Network A[broj
mreže]
Subnet B[broj
podmreže]
Network C[broj
mreže]
broj mreže(W.X)
broj Subnet-a(Y)
broj Host-a(Z)
W.X.Y
W.X.Y
W.X.Y
W.X
W.X
W.X.Y
W.X.Y
W.X.Y.Z
W.X.Y.Z
Slika 10.11 Internet adresi i subnet-i
Obično, Internet organizacija koristi mrežne adrese tipa B. Prva dva polja adrese specificiraju organizaciju mreže, treće subnet u okviru organizacije, a zadnje specificira host.
10.6.4. Specifikacija subnet maski
Kada se koristi subnet, tada se uvodi i bit maska, ili subnet maska sa ciljem da se razdvoji deo adrese koji se odnosi na mrežu od dela za host.
Subnet maska je 32-bitni broj koji ima sve 1 na bit pozicijama koje specificiraju mrežu i subnet, a 0 na sve bit pozicije koje specificiraju host. Tekstualni fajl nazvan hosts uobičajeno se koristi za postavljanje subnet maske. Inicijalno (default) postavljene subnet maske za IP adrese tipa A, B i C prikazane su na slici 10.12.
Tip adrese Default-a maska
Klasa A 255.0.0.0
Klasa B 255.255.0.0
Klasa C i klasa B sa subnet-om 255.255.255.0
Slika 10.12 Inicijalno dodeljene maske
10.7. Domeni
IP adresa se može specificirati u sledećoj formi WWW.XXX.YYY.ZZZ, gde su XXX.YYY.ZZZ i WWW celobrojne vrednosti iz opsega 0-255. Kod Interneta WWW.XXX.YYY definiše subnet, a ZZZ host. Ovakva imena je teško pamtiti pa je daleko bolji metod koristiti simbolička imena.
Korisnici i aplikacioni programi umesto IP adresa mogu koristiti simbolička imena. Na osnovu direktorijumskih mrežnih servisa koji se implementiraju kod Interneta odredjuje se IP adresa prozvanog odredišnog korisnika ili aplikacionog programa. Ovakav pristup ima tu prednost što se korisnik i aplikacioni programi mogu seliti sa jednog mesta na drugo po Internetu, a da pri tome nemaju fiksne IP adrese.
Uspostavimo sada analogiju sa servisima koje pruža javna telefonska mreža. Telefonski imenik sadrži imena pretplatnika. Ako želimo nekom korisniku da doznamo telefonski broj mi prvo u imeniku
Prenos podataka – TCP/IP
235
nalazimo njegovo ime, a zatim i odgovarajući telefonski broj. Telefonski imenik, prema tome, vrši preslikavanje imena korisnika (simbolička imena) u stvarni telefonski broj (aktuelna adresa). Slična logika se koristi kod Interneta.
Na slici 10.13 prikazane su neke od Internet domen dodele za World Wide Web (WWW) servere. Uočimo sa dodele domena nisu fiksne i da domeni mogu menjati svoje odgovarajuće IP adrese. Povezivanje (preslikavanje) izmedju simboličkog imena i njegove stvarne adrese se može promeniti u bilo kom trenutku.
Web server Imena Internet domena Internet IP adrese NEC www.nec.com 143.101.112.6
Sony www.sony.com 198.83.178.11
Intel www.intel.com 134.134.214.1
IEEE www.ieee.com 140.98.1.1
University of Bath www.bath.ac.uk 136.38.32.1
University of Edinburgh www.ed.ac.uk 129.218.128.43
IEE www.iee.org.uk 193.130.181.10
University of Manchester www.man.ac.uk 130.88.203.16
Slika 10.13 Internet domeni dodeljeni web serverima
10.8. Struktura dodeljivanja imena kod Interneta
Način dodeljivanja imena kod Interneta zasniva se na korišćenju oznake (labela) koje se izdvajaju tačkom. Primer je eece.napier.ac.uk. Kod ovog imena koristi se hijerarhijska struktura kod koje se organizacije grupišu u primarni domen imena. To su com (komercijalne organizacije), edu (edukativne organizacije), gov (vladine organizacije), mil (vojne organizacije), net (centri koji pružaju podršku Internet mreži), org (druge organizacije). Primarni domen može takodje definisati zemlju u kojoj je host lociran, kao što je uk za United Kingdom, fr (France), yu (Yugoslavia), i td. Svi hostovi na Internetu moraju biti registrovani na jedno ime od primarnih domena.
Oznaka nakon primarnog polja opisuje subnet-e u okviru mreže. Na primer, kod adrese eece.napier.ac.uk labela ac se odnosi na akademsku instituciju u okviru uk, napier predstavlja ime institucije, dok eece je subnet u okviru te organizacije. Na slici 10.14 prikazana je jedna takva struktura.
Prenos podataka – TCP/IP
236
edu gov com mil usa uk fr
intel sony nec ac
napier maned bath
eece cs mmse
www
eece.napier.ac.uk
www.eece.napier.ac.uk
Slika 10.14 Dodeljivanje imena domenima
10.8.1. Ime servera domena
Svaka institucija povezana na Internet ima svoji host koji izvršava proces koji se naziva DNS (Domain Name Server). Zadatak je DNS-a da održava bazu podataka nazvanu DIB (Directory Information Base) koja sadrži datotečku (directory) informaciju za tu organizaciju. Nakon dodavanja novog host-a, sistem menadžer (System Manager) dodaje novo ime i odgovarajuću IP adresu. Posle obavljanja ove aktivnosti moguć je pristup Internetu.
Prenos podataka – TCP/IP
237
10.9. Primer realizacije jedne mreže Ilustrativni primer organizacije univerzitetske računarske mreže prikazan je na slici 10.15.
Sprega sa spoljnim Internetom ostvaruje se preko Janet gateway čvora čija je IP adresa 146.176.1.3. Tri subneta, 146.176.160, 146.176.129 i 146.176.151 povezuju gateway sa departmet (fakultetskim) bridge-evima. Adresa Computer Studies bridge-a je 146.176.160.1, dok Electrical Departmet bridge-a je 146.176.151.254. Electrical Department bridge povezan je preko drugih bridge-eva na subnete 146.176.144, 146.176.145, 146.176.147, 146.176.150 i 146.176.151.
Janetgateway146.176.1.3
Electrical Departmentbridge146.176.151.254
ComputerStudiesbridge146.176.160.1
MechanicalDepartmentbridge146.176.129.1
Global Internet
146.176
146.176.151
146.176.160
146.176.129
146.176.144
146.176.145
146.176.147
146.176.150
146.176.151
Slika 10.15 Univerzitetska mreža
Topologija Electrical Department mreže prikazana je na slici 10.16. Glavni bridge na nivou fakulteta povezan je na dve Ethernet mreže sa PC mašinama (subnet-i 146.176.150 i 146.176.151) i na drugi bridge (Bridge 1). Bridge 1 povezan je na subnet 146.176.144. Subnet 146.176.144 povezan je na radne stanice i X-terminale. On je takodje povezan na gateway Moon koji povezuje Token Ring subnet 146.176.145 sa Ethernet subnetom 146.176.146 . Ovaj subnet je zatim povezan na gateway Dione koji je takodje povezan na Token Ring subnet 146.176.147.
Prenos podataka – TCP/IP
238
Bridge 1
ElectricalDepartmentbridge/router
Token-Ring mreže
146.176.146146.176.145
146.176.147
146.176.144
146.176.151
146.176.150
PC Ethernet mreža
+ Demos
+ Uranus
WorkstationEthernetmreža
Venus
Pluto
Dione
SaturnMercury
Earth
Rhea
Ariel
Neptune
PhobosIo
Titan
Mimas Oberon
Moon
Spica
Pollux
Castor
Leda
Intel
Mwave
Rigel (X)
Vega (X)
Triton
Miranda
VAX
HP
pc2 pc3
eepc01 eepc02
Slika 10.16 Mreža Electrical Department
Svakom čvoru u mreži dodeljena je IP adresa. Na slici 10.17 prikazana je dodela adresa koja je usaglasnosti sa slikama 10.15 i 10.16. Ilustracije radi, IP adrese za Mimas je 146.176.145.21 a za Miranda 146.176.144.14. Naglasimo da sva tri gateway čvora Oberon, Moon i Dion imaju po dve IP adrese.
Prenos podataka – TCP/IP
239
Sadržaji Host fajla 146.176.1.3 janet
146.176.144.10 hp
146.176.145.21 mimas
146.176.144.11 mwave
146.176.144.13 vax
146.176.144.14 miranda
146.176.144.20 triton
146.176.146.23 oberon
146.176.145.23 oberon
146.176.145.24 moon
146.176.144.24 moon
146.176.147.25 uranus
146.176.146.30 dione
146.176.147.30 dione
146.176.147.31 saturn
146.176.147.32 mercury
146.176.147.33 earth
146.176.147.34 deimos
146.176.147.35 ariel
146.176.147.36 neptune
146.176.147.37 phobos
146.176.147.39 io
146.176.147.40 titan
146.176.147.41 venus
146.176.147.42 pluto
146.176.147.43 mars
146.176.147.44 rhea
146.176.147.22 jupiter
146.176.144.54 leda
146.176.144.55 castor
146.176.144.56 pollux
146.176.144.57 rigel
146.176.144.58 spica
146.176.151.254 cubridge
146.176.151.99 bridge_1
Prenos podataka – TCP/IP
240
146.176.151.98 pc2
146.176.151.97 pc3
...............................
............................... 146.176.151.71 pc29
146.176.151.70 pc30
146.176.151.99 ees99
146.176.150.61 eepc01
146.176.150.62 eepc02
255.255.255.0 defaultmask
Slika 10.17 Konkretno dodeljene IP adrese
10.10. IP Ver 6
TCP i IP su izuzetno važni protokoli jer obezbedjuju da hostovi komuniciraju medjusobno preko Interneta na jedan pouzdan način. TCP obezbedjuje vezu izmedju dva hosta i podržava rad kod manipulisanja sa greškama. Sagledajmo sada neke detalje koji se odnose na to kako TCP uspostavlja i održava vezu.
Važan koncept TCP/IP komunikacija predstavlja korišćenje port-ova i socket-a. Port identifikuje tip procesa (kakvi su FTP, TELNET i dr), dok socket identifikuje dodelu jedinstvenog broja veze (connection number). Na ovaj način TCP/IP može istovremeno da podržava rad većeg broja veza koje se izvršavaju preko mreže a pripadaju različitim aplikacijama. Višem nivou podataka dodaje se IP zaglavlje (IP Ver 4). Ovo zaglavlje sadrži 32-bitnu IP adresu odredišnog čvora. Na žalost, standardna 32-bitna IP adresa nije dovoljno velika da podrži rad sa povećanim brojem čvorova koji se povezuju na Internet. Zbog toga je razvijen novi standard pod imenom IP Version 6 (IP Ver 6) sa ciljem da podržava rad sa 128-bitnom adresom, ali takodje i da obezbedi dodatna poboljšanja koja se odnose na autentičnost pristupa i šifrovanje podataka. Tri glavna pravca razvoja gde se obavljaju ispitivanja su:
• TUBA (TCP i UDP sa širim adresama)
• CATNIP (opšta arhitektura za Internet)
• SIPP (jednostavan Internet protokol plus)
Verovatno nijedno od predloženih rešenja neće u potpunosti zadovoljiti potrebe novog standarda, ali, po svemu izgleda tako da će rezultantni standard biti zbir (mešavina) sva tri rešenja. Na slici 7.18 prikazan je osnovni format IP Ver 6 zaglavlja.
Prenos podataka – TCP/IP
241
Destination IP address
1 6151413121110198765432
Version Flow labelPriority
Flow label
Payload lenght
Hop limitNext header
Source IP address
Slika 10.18 Format IP Ver 6 zaglavlja
Značenje polja u zaglavlju je sledeće:
• Version number (4-bita) - sadrži broj verzije, kao što je 6 za IP Ver 6. Koristi se da bi se napravila razlika izmedju IP Ver 4 i IP Ver 6.
• Priority (4 bita) - ukazuje na prioritet datograma
• Flow label (24-bita) - još neiskorišćeno polje, ali će biti iskorišćeno da identifikuje različite karakteristike toka podataka.
• Playload length (16-bitova) - definiše obim IP datagrama (sadrži IP zaglavlje koje je pridruženo podacima)
• Next header - ovo polje ukazuje koje zaglavlje sledi IP zaglavlje. Na primer: 0 - definiše IP informaciju; 6- definiše TCP informaciju; 43-definiše informaciju o rutiranju; 58 - definiše ICMP informaciju.
• Hop limit - definiše maksimalan broj skokova koje datagram obavlja pri prolazu kroz mrežu. Svaki ruter dekrementira skok (hop) granicu za 1; kada ona dostigne 0 datagram se izbacuje.
• IP addresses (128 bitova) - definiše IP adresu. Postoje tri glavne grupe IP adresa: unicast, multicast i anycast. Unicast adresa identifikuje pojedini host, multicast adresa omogućava hostovima pojedine grupe da prime isti paket, dok se anycast adresa odnosi na adresiranje odredjenog broja interfejsa kod single multicast adrese.
Prenos podataka – TCP/IP
242
10.11. TCP protokol
Sa tačke gledišta OSI modela, TCP pripada transportnom, a IP mrežnom nivou. To znači da se TCP nalazi iznad IP, tj. IP zaglavlje se uobičajeno dodaje informaciji koja se prima sa višeg nivoa (kao što su transport, sesija, prezentacija i aplikacija). Glavni zadatak TCP-a da obezbedi korektan i pouzdan protokol na transportnom nivou. TCP karakterišu sledeće osobine: pouzdanost u radu, orijentisan je da podržava vezu izmedju čvorova u mreži, ponaša se kao nizovno-orijentisani server koji koristi princip potvrdjivanja poruka. Nasuprot TCP-u, IP protokol ne podržava vezu dva čvora. Uz pomoć TCP-a, veza se inicijalno uspostavlja a zatim održava dok prenos traje.
Informacija koju nosi TCP sadrži (uključuje) poruke o potvrdjivanju kao i skup rednih brojeva. TCP takodje podržava višestruke simultane veze koristeći pri tome odredišne i izvorišne port-brojeve, i upravlja portovima u toku predaje i prijema poruka. Kako i IP, tako i TCP podržava fragmentaciju podataka i reasembliranje, a takodje multiplek-siranje/demultipleksiranje podataka.
Procedura setup (puštanje u rad) i rad TCP-a uključuje sledeće aktivnosti:
1. Kada host želi da uspostavi vezu, TCP predaje odredišnoj mašini poruku tipa request. Ova poruka sadrži jedinstveni broj koja se naziva socket-broj i port-broj. Port-broj ima jedinstvenu vrednost i tipičan je za aplikaciju (na primer TELNET vezu karakteriše broj 23, a FTP veza port-broj 21). Poruka se zatim predaje IP nivou, koji kreira (asemblira) datagrm radi prenosa poruke ka odredištu.
2. Kada odredišni host primi request (zahtev) za vezu, on vraća poruku koja sadrži svoj jedinstveni socket-broj i port-broj. Na ovaj način pomoću socket-broj i port-broj identifikuje se virtuelna veza izmedju dva hosta.
3. Pošto što je veza izmedju dva hosta uspostavljena reguliše se tok prenosa podataka izmedju njih (tok se naziva data stream).
Nakon što je TCP, od višeg nivoa, primio niz podataka, on asemblira (preuredjuje) podatke u formi paketa, koje nazivamo TCP segmenti. Pošto je kreirao segment, TCP dodaje zaglavlje (koje se naziva protocol data unit) na početku tog segmenta. Ovo zaglavlje sadrži informaciju koja se odnosi na checksum, port-broj, odredišni i izvorišni socket-brojevi, socket-broj za obe mašine i radne brojeve segmenata. Nakon toga, TCP nivo predaje pakovane segmente IP nivou. IP nivo, sa svoje strane, enkapsulira ih novim zaglavljem i predaje ih preko mreže kao datagrame.
10.11.1. Portovi i socket-i Kao što smo već pomenuli, svakom hostu TCP pridružuje socket-broj i port-broj. Port-broj
identifikuje željeni servis, dok je socket-broj jedinstveni broj za tu vezu. Na ovaj način, čvor može da ima nekoliko TELNET veza (connections) koje imaju isti port-broj ali će svaka veza imati različit socket-broj. Port-broj može da prima bilo koju vrednost ali postoji dogovor (konvencija) koji se poštuje kod najvećeg broja sistema. Na slici 7.19 definisane su najčešće korišćene vrednosti. Standardne aplikacije uobičajeno koriste port vrednosti od 0-255, dok nespecificirane aplikacije mogu koristiti vrednosti iznad 255.
Prenos podataka – TCP/IP
243
Port Ime procesa
20 FTP-DATA File Transfer Protocol-data
21 FTP File Transfer Protocol-control
23 TELENET Telnet
25 SMTP Simple Mail Transfer Protocol
49 LOGIN Login Protocol
53 DOMAIN Domain Name Server
79 FINGER Finger
161 SNMP SNMP
Slika 10.19 Tipični TCP port-brojevi
10.11.2. Format TCP zaglavlja Predajni TCP nivo komunicira sa prijemnim TCP nivoom koristeći TCP protokol za prenos
podataka. Ovaj protokol definiše parametre kakvi su izvorni port, odredišni port, i dr. Format TCP zaglavlja prikazan je na slici 10.20.
1 6151413121110198765432
Data offset FlagsReserved
Source port
Destination port
Sequence number
Acknowledgment number
Window
Data
UrgPtr
Cheksum
Slika 10.20 Format TCP zaglavlja
Polja zaglavlja sa slike 10.20 imaju sledeće značenje:
Prenos podataka – TCP/IP
244
• Izvorišni i odredišni port-bro -16-bitne vrednosti koje identifikuju lokalni port-broj (izvorni broj i odredišni port-broj ili odredišni port)
• redni broj (sequence number)-identifikuje tekući redni broj segmenta podataka. Ovo obezbedjuje prijemniku da održava trag o primljenim segmentima podataka. Bilo koji izgubljeni segment moguće je lako identifikovati.
• Data - offset-32-bitna vrednost koja identifikuje početak podataka
• Flags-polje flag se definiše kao UAPRSF, gde se U - odnosi na urgentni marker (flag), A - marker potvrde, P - push funkcija, R - reset marker, S- marker za sinhronizaciju sekvence, i F - marker koji označava kraj - prenosa.
• Windows - 16-bitna vrednost, ukazuje na broj blokova podataka koje će prijemni host moći da primi u datom trenutku.
• Checskum -16-bitna chesksum-a za zaglavlje i podatke
• UrgPtr-urgentni pokazivač, koristi se za identifikaciju važnih oblasti podataka (najveći broj sistema ne podržava ovaj tip mogućnosti).
10.12. TCP/IP komande Postoji nekoliko standardnih programa koji se koriste kada se uspostavi veza po TCP/IP protokolu.
Ove aplikacije su:
• FTP (File Transfer Protocol) - vrši prenos fajlova izmedju dva računara
• HTTP (Hypertext Transfer Protocol) - protokol koji se koristi kod WWW (World Wide Web) a može se koristiti kod client-server aplikacija za prenos hipertekstova.
• MIME (Multipurpose Internet Mail Extension) - poboljšane mogućnosti elektronske pošte uz pomoć TCP/IP
• SMTP (Simple Mail Management Protocol) - pruža jednostavne usluge kod elektronske pošte
• TELNET - obezbedjuje remote login koristeći TCP/IP
• PING - odredjuje da li se čvor odaziva na TCP/IP komunikacije
Prenos podataka – TCP/IP
245
10.13. Uspostavljanje veze izmedju dva aplikaciona nivoa kod TCP/IP protokola kada se prenos poruka vrši ATM mrežom
Na slikama 10.21, 10.22 i 10.23 prikazane je postupak ostvarivanja veze izmedju dva korisnika na
nivou aplikacije kada se poruke prenose ATM mrežom, a za komunikaciju se koristi TCP/IP protokol.
Peer-to-peer dijalog - pre nego što se podaci predaju predajne iprijemne
aplikacije moraju se dogovoriti o formatu i kodiranju podataka koji se razmenjuju
Peer-to-peer dijalog - oba TCP entiteta saglasna su da se otvori konekcija
Peer-to-peer dijalog - svaki IP datagram se prosledjuje ka mreži i ruterima ka odredišnom sistemu
Peer-to-peer dijalog - svaka ćelija se prosledjuje kroz ATM mrežu
7. prenos svaka ćelija se predaje preko medijuma kao sekvenca bitova
A I T Data
1. priprema podataka- aplikacioni protokol priprema blok podataka za prenos. Na primer e-mail poruka (SMTP), fajl (FTP), ili blok korisničkih podataka (TELNET)
2. korišćenje zajedničke sintakse - ako je neophodno podaci se konveruju u oblik kakav očekuje odredište. To se pre svega odnosi na korišćenje različitih karakter kodova, šifrovanje, i/ili kommpresija
3. segmentiranje podataka - TCP može da razbije blok podataka na veći broj segmenata zadržavajući trag o njihovom redosledu. Svaki TCP segment ima zaglavlje (T) koje sadrži redosledni broj i polje za proveru grešaka u prenosu
4. dupliciranje segmenata - za svaki TCP segment pravi se kopija, u slučaju gubitaka ili oštećenja segmenata, neophodna je retransmisija. Kada se primi potvrda od strane drugog TCP entiteta, segment se briše
5. fragmentacija segmenata - IP može da podeli TCP segment na veći broj datagram-a kako bi ispunio zahteve koje se postavljaju od strane mreže za prenos. Svaki datagram ima zaglavlje koje sadrži odredišnu adresu, sekvencu za proveru okvira, i druge upravljačke informacije
6. uokviravanje (framing) - svakom IP datagram-u pridružuje se ATM zaglavlje kako bi se formirala ATM ćelija. Zaglavlje sadrži konekcioni identifikator i polje za kontrolu grešaka u prenosu
Slika 10.21
Prenos podataka – TCP/IP
246
Peer-to-peer dijalog ruter predaje ovaj datagram ka drugom ruteru ili
ka odredišnom sistemu
11. formiranje - LLC PDU svakom IP datagramu dodalje se LLC zaglavlje i formira LLC PDU. Zaglavlje sadrži redosledni broj i adresnu informaciju
12. uokviravanje - svakom LLC PDU-u dodaje se MAC zaglavlje i rep da bi se formirao MAC okvir. Zaglavlje sadrži adresnu informaciju, a rep sekvencu za proveru ispravnosti prenosa okvira
13. prenos - svaki okvir se predaje preko medijuma kao sekvenca bitova
A I T DataL I T DataM M
10. Rutiranje paketa IP - ispituje IP zaglavlje i donosi odluku o rutiranju. Odlučuje se koji će izlazni link da se koristi, a zatim predaje datagram nivou veze radi prenosa po tom linku
9. procesiranje ćelije - ATM nivo odstranjuje zaglavlje ćelije i procesira ga. Za detekciju greške koristi se oinformacija o kontroli greške. Konekcioni broj identifikuje izvorište.
8. pristizanje na ulaz rutera - prima se signal koji dolati sa transmisionog medijuma i interpretira se kao ćelija bitova
Slika 10.22
Prenos podataka – TCP/IP
247
20. isporuka podataka - aplikacija obavlja potrebne transformacije uključujući dekompresiju i dešifrovanje, i usmerava podatke ka odgovarajućem fajlu ili drugom odredištu
19. objedinjavanje korisničkih podataka - ako je TCP razbio korisničke podatke na veći broj segmenata, njih treba objediniti, a integralni blok predati aplikaciji
18. procesiranje TCP segmenta -TCP izdvaja zaglavlje. On proverava redosledni broj i daje pozitivnu potvrdu ako postoji uparivanje , a negativnu ako dodje do neslaganja.
Upravljanje tokom podataka se takodje obavlja
16. procesiranje LLC PDU - LLC nivo izdvaja zaglavlje i procesira ga redosledni broj okvira koristi se za upravljanje tokom podataka i upravljanje greškama u prenosu
17. procesiranje IP datagrama - IP izdvaja zaglavlje procesira se redosledni broj sekvence i druga upravljačka informacija
15. procesiranje okvira - MAC nivo izdvaja zaglavlje i rep i procesira ih polje za proveru se koristi za detekciju grešaka
14. pristizanje na odredište - signal koji dolazi se prima od strane transmisionog medijuma i interpretira ka okvir bitova
L I T DataM M
Slika 10.23