STREAM CONTROL TRANSMISSION TRANSMISSION PROTOCOL (SCTP) SEMINARSKI RAD
2011.
SADRŢAJ 1.
UVOD .......................................... ................................................................ ............................................ ............................................ ...................................... ................ 1
2.
SCTP PROTOKOL ......................................... ............................................................... ............................................ ...................................... ................ 3
3.
SCTP PAKETI ............................................. .................................................................... ............................................. ......................................... ................... 5
4.
PRIJENOS PODATAKA KOD SCTP PROTOKOLA ............................................ ............................................ 8
4.1.
INICIJALIZACIJA SCTP ASOCIJACIJE .......................................... ............................................................. ................... 8
4.2.
DIJAGRAM STANJA ASOCIJACIJE PROTOKOLA SCTP ............................... ............................... 9
4.3.
........................................... 10 KONTROLA TOKA PODATAKA I ZAGUŠENJA ...........................................
4.4.
SCTP MONITORING SCTP MONITORING (MEHANIZAM HEARTBEAT) .......... ................................. ............................ ..... 11
4.5.
PREKID ASOCIJACIJE - BLOKOVI BLOKOVI PODATAKA SHUTDOWN I ABORT . 12
5.
SVOJSTVO VIŠESUSTAVNOSTI VIŠESUSTAVNOSTI .......................................... ................................................................. ................................ ......... 13
6.
SCTP REKONFIGURACIJA DINAMIČKE ADRESE ........................................ ........................................ 14
7.
SCTP S DJELOMIČNOM POUZDANOŠĆU (PR -SCTP) -SCTP).................................. .................................... .. 16
8.
TRANSMISSION TRANSMISSION CONTROL - SCTP (TC-SCTP) ............................................... ............................................... 17
9.
USPOREDBA S TCP I UDP PROTOKOLOM .......................... ................................................ ............................ ...... 19
10.
ZAKLJUČAK ........................................... .................................................................. ............................................. ....................................... ................. 22
LITERATURA ............................................. ................................................................... ............................................ ............................................ ......................... ... 23
1. UVOD Transportni sloj nalazi se u osnovi svake hijerarhije protokola. Zadatak mu je
pružiti pouzdan i efikasan prijenos podataka od izvora do odredišta, neovisno o fizičkoj mreži ili mrežama koje se trenutno koriste. Transportni sloj OSI i TCP/IP referentnih modela predstavlja sloj između sloja aplikacije (tj. aplikacijskog sloja sesije kod OSI modela) i mrežnog sloja, kao što je prikazano na slici 1.1. Općenita uloga ovog sloja, kao i ostalih slojeva je omogućivanje komunikacije sloja iznad i sloja ispod (u ovom slučaju sloja aplikacije sa slojem mreže). Konkretna uloga ovog sloja je prihvaćanje podataka aplikacije predajnika i njihovo dostavljanje aplikaciji prijemnika , prijenos, kontrolira i ispravlja pogr eške pri prijenosu, te
pri čemu kontrolira
osigurava isporuku. Podrška za
transportni sloj je uglavnom realizirana na razini operativnih sustava računala, s tim da sam transportni sloj nije eksplicitno definiran ve ć se realizira kroz podr šku za protokole tog sloja, (Jevremović i Veinović, 2007.).
Slika 1.1: Usporedba OSI i TCP/IP modela s pregledom protokola za pojedine slojeve
Iako referentni modeli OSI i TCP/IP omogu ćuju razvoj različitih transportnih protokola, danas je u upotrebi, ovisno
o korisničkim zahtjevima najčešće Transmision
Control Protocol (TCP) ili User Datagram Protokol (UDP). TCP je konekcijski orijentiran
protokol koji uspostavlja logičku vezu između procesa u mreži. Vrši funkcije osnovnog 1
prijenosa podataka, adresiranje i multipleksiranje, kontrolu toka, kontrolu veze, funkcije
prioriteta i sigurnosti. Omogućuje pouzdani prijenos s kraja na kraj, u obliku kontinuirane struje podataka. UDP je beskonekcijski orijentirana usluga koja prenosi podatke u obliku
datagrama. Za razliku od TCP protokola, ne omogućuje pouzdan prijenos podataka, a o pouzdanosti prijenosa, ako je potrebno, brine se sama aplikacija. U osnovi služi ka o aplikacijsko sučelje prema IP , [1]. SCTP, protokol upravljanja transmisijskim slijedom (Stream Control Transmission Protocol) noviji je transportni protokol. Motivacija za nastajanje SCTP protokola pojavila
se u porastu broja novijih aplikacija za koje je TCP protokol ograničen u mnogim pogledima.
TCP pruža pouzdan prijenos podataka, ali strogim redom, dok mnoge
aplikacije trebaju prijenos bez
održavanja slijeda, a neki će biti zadovoljeni s djelomičnim
poredanim podacima. U oba slučaja head -of-line blokiranje kod TCP protokola uzrokuje nepotrebno k ašnjenje.
Nadalje, prenošenje podataka u obliku struje okteta je često
nepovoljno jer aplikacije moraju dodavati oznake blokova podataka za razgraničavanje poruka te moraju koristiti push mehanizam da bi osigurali prijenos cijele poruke u razumnom vremenu.
Ograničen opseg TCP priključnica komplicira omogućavanje visoke
dostupnosti prijenosa podataka korištenjem višesustavnih računala. TCP je relativno osjetljiv na denial of service (DoS) napade, kao štu su SYN napadi. Prijenos PSTN signalizacije preko IP mreža
je aplikacija za koju su sva ova
ograničenja bila relevantna. I dok je ova aplikacija bila izravna motivacija za razvoj SCTP a, i mnoge druge aplikacije su prihvatile SCTP kao dobar odgovor na njihove zahtjeve, (Stewart i Xie, 2000.). SCTP protokol je pouzdan transportni protokol koji djeluje na vrhu
mreža s prijenosom podataka bez spajanja, kao što je IP. Korisnicima nudi mnoge usluge, koje ćemo pobliže predočiti i objasniti kroz seminarski rad. R
2
2. SCTP PROTOKOL Protokol upravljanja transmisijskim slijedom (SCTP) je noviji IP transmisijski
protokol transportnog sloja razvijen unutar Signaling Transport (SIGTRAN) grupe, članice IETF-a. SIGTRAN grupa definirala je SCTP standard 2000. godine u RFC-u 2960, (Stewart i Xie, 2000.).
Izvorno je služio kao podrška za signaliziranje u ''Voice over IP''
(VoIP) aplikacijama. Od tada je poopćen i donosi određena poboljšanja u odnosu na TCP, uključujući sigurnost i robusnost. SCTP je pouzdan protokol usmjeren na poruke, s mogućnostima višesustavnosti i višesljednosti. Kao što je prikazano na slici 2 .1, protokol omogućuje krajnjim čvorovima komunikaciju preko više adresa, zbog često postojanja višestrukih mrežnih sučelja, [4].
Slika 2.1: SCTP arhitektura
Danas se SCTP može koristiti kao transportni protokol za aplikacije koje zahtijevaju praćenje i detekciju gubitka sesije, tj. SCTP asocijacije, što prikazuje Slika 2 .2. Pojam asocijacija uzet je iz RFC-a 2960, (Stewart i Xie, 2000.)., a
označava ostvarenu SCTP
komunikaciju između dviju ravnopravnih stanica. SCTP mehanizmi detekcije gubitka sesije
aktivno prate spojenost sesije za takve tipove aplikacija. Njegova izvedba uključuje
odgovara juću kontrolu izbjegavanja zagušenja od usmjeravanja prometa svim čvorištima u
mreži i napada maskiranjem (jedan sustav ilegalno koristi identitet drugog sustava). Glavne razlike u odnosu
na protokol TCP su višesustavnost ( multihoming ) i višesljednost
(multistreaming ). 3
SCTP KORISNIČKA
SCTP
KORISNIČKA
APLIKACIJA
APLIKACIJA
SCTP PRIJENOSNA
SCTP PRIJENOSNA
USLUGA
USLUGA
IP MREŢNA USLUGA
SCTP ČVOR A
JEDNA ILI VIŠE
JEDNA ILI VIŠE
IP ADRESA
IP ADRESA
IP MREŢNA USLUGA
MREŢNI PRIJENOS
SCTP ČVOR B
2.2: Načelo SCTP asocijacije
SCTP koristi višesustavnost za uklanjanje kvarova. Jedna od istorazinskih adresa označena je kao zadana odredišna adresa. Ova zadana adresa zajedno s zadanim izvorišnim adresama čini SCTP primarni put. Pri gubi tku paketa na primarnom putu, koristi se alternativna odredišna adresa. Rezultati proučavanja radnih svojstava višesustavnosti pokazali su da je smanjeno inicijalno kašnjenje paketa ukoliko dođe do gubitka paketa. Slika 2.1
pokazuje da je veza između dvije krajnje točke skup jednosmjernih tokova.
Višesljednost ima mogućnost otklanjanja ''Head of Line'' (HOL) efekta TCP -a, zbog kojega su paketi u redu čekanja, čekajući prepoznavanje svih segmenata. Kod okruženja u kojemu djeluje višesljednost, paketi iz različitih tokova prometuju nezavisno. SCTP koristi selektivno potvrđivanje (SACK) za označivanje transmisijskog rednog broja (TSN) svakog primljenog bloka podataka, poznatih kao chunk .
Za sigurnost SCTP omogućuje
četverostrano usklađivanje (4-way handshake) tijekom inicijalizacije nove asocijacije. COOKIE mehanizam koristi se tijekom postavljanja puta za utvrđivanje krajnjih točaka. COOKIE identificira moguću krađu adresa. Dok postoji veza, Heartbeat poruke se periodično izmjenjuju radi određivanja dostupnosti ponuđenih IP adresa. Aplikacijsko programsko sučelje (API) omogućuje SCTP -ovu aplikaciju za kontroliranje brojeva tokova i adresa radi oglašavanja tijekom inicijalizacije. Aplikacije mogu također točno odrediti vijek trajanja paketa, uređivanje i identi fikator konteksta za svaku poslanu poruku. Identifikator konteksta koristi se kod SCTP- a
kada se pruža povratna informacija
aplikaciji.
4
3. SCTP PAKETI U SCTP protokolu, prijenos podataka između dva računala odvija se tijekom asocijacije, kao što je prikazano na slici 2.2. Svi podaci se prenose enkapsulirani u SCTP pakete. Prilikom korištenja protokola SCTP s protokolom IP, SCTP paket formira skup korisničkih podataka u IP paketu (tj. stvara mu zaglavlje).
SCTP paket sadrži zajedničko 12-oktetno
zaglavlje i niz blokova podataka poznatih kao chunk. Broj blokova podataka u SCTP paketu ovisi o vrijednosti maksimalne transmisijske jedinice (MTU), koja se saznaje otkrivanjem MTU staze, (Mogul i Deering, 1990.).
32 bita Izvorišni port
Odredišni port
SCTP zaglavlje
Oznaka provjere Cheksum Tip
Duljina paketa
Zastavice
Blok podataka 1
Korisnički podaci
Tip
Zastavice
.
.
.
.
.
.
Duljina paketa
Blok podataka N
Korisnički podaci
3.1: GraĎa SCTP paketa
Građa SCTP paketa prikazana je na slici 3.1. Prema njoj je vidljivo da zaglavlje SCTP paketa tvore:
Izvorišni i odredišni port , radi omogućivanja multipleksiranja različitih SCTP asocijacija na istoj adresi – princip isti kao kod TCP-a, odnosno UDP- a.
Izvorišni i
odredišni port zauzimaju po 16 bita.
Oznaka provjere (engl. Verification Tag ) – slučajno
generiran 32 bitni broj koji služi
primatelju kao provjera da paket pripada trenutnoj asocijaciji, a ne prijašnjoj. Osim od
zastarjelih, štiti i od unošenja lažnih poruka u SCTP asocijaciju. 5
Kontrolna sekvenca (engl. Checksum) – 32
bita koji se koriste za detekciju grešaka
( Adler-32 algoritam), za razliku od slabije 16 bitne kontrolne sekvence kod TCP-a ili UDP-a. Chunk blokovi podataka mogu biti
ili kontrolni, kao što je chunk selektivnog potvrđivanja
(SACK), ili podatkovni. Izgled chunk -a prikazan je na slici 3.2. Svaki chunk sadrži
naziv
tipa, chunk zastavice, duljinu i veličinu chunk -a.
Slika 3.2: Blok podataka ( chunk )
Trenutno postoji 13 tipova SCTP blokova podataka različitih duljina koje protokol definira. Kontrolni chunk -ovi chunk -a.
sadržavaju različite zastavice i parametre, ovisno o tipu
Radi ostvarivanja učinkovitosti prijenosa, SCTP dopušta objedinjavanje
višestrukih podataka i kontrolnih chunk -ova u jedan paket.
Slika 3.3: Izgled podatkovnog chunk -a
Podatkovni chunk je
spremnik korisničkih podataka koji se prenose u SCTP -u. Njegov je
izgled prikazan na slici 3.3. Podatkovni chunk -ovi
sadržavaju zastavice za kontrolu
podrazine rastavljanja i sastavljanja, pored sljedećih parametara: transmisijskog rednog broja (Transmission sequence number , TSN), identifikator toka (Stream ID), rednog broja toka (Stream sequence number , SSN) i identifikatora korisnih protokola ( Payload protocol identifier ). Stream ID i SSN koriste identifier uključen
se kao podrška višesljednosti, dok je Payload protocol
radi fleksibilnosti u budućnosti. Podatkovni chunk -ovi koji stižu do 6
SCTP prijemnika potvrđuju se prijenosnim SCTP paketom sa SACK kontrolnim chunk om, čiji je oblik prikazan na slici 3.4. Tijekom inicijalizacije asocijacije SCTP krajnje točke izmjenjuju veličine njihovih prijemnih okvira (pokazatelj dostupnog prostora u ulaznom međuspremniku) i početni TSN podatkovnih chunk -ova koji će biti izmjenjeni tijekom asocijacije, [9].
Slika 3.4: Kontrolni chunk (SACK)
7
4. PRIJENOS PODATAKA KOD SCTP PROTOKOLA 4.1. INICIJALIZACIJA SCTP ASOCIJACIJE Prije početka SCTP prijenosa podataka između dviju ravnopravnih stanica, mora se izvršiti proces SCTP inicijalizacije. Koristi se cookie mehanizam (Karn i sur., 1999.) u cilju osiguravanja sigurnosti komunikacije. Ovakav mehanizam koristi 4-way handshake,
što je
prikazano slikom 4.1.1.
Slika 4.1.1: Mehanizam Cookie (4-way handshake )
Proces inicijalizacije određen je na sljedeći način (pretpostavlja se da stanica A pokušava ostvariti asocijaciju sa stanicom B, te da stanica B prihvaća novu asocijaciju): 1.
Stanica A šalje blok podataka INIT prema stanici B.
2.
Stanica B morala bi istog trena odgovoriti s blokom podataka INIT ACK. Odredišna adresa INIT ACK-a
mora biti postavljena na izvorišnu adresu bloka podataka INIT.
Također, stanica B u bloku podataka INIT ACK šalje i parametar State Cookie koji označava da je u pripravnosti za dodatnu provjeru autentičnosti asocijacije. 3. Nakon toga, stanica A odgovara da je primila parametar State Cookie u bloku
podataka INIT ACK. Odgovor se šalje blokom podataka COOKIE ECHO. U ovaj blok podataka tekođer se mogu upakirati i korisnički podaci. 4.
Nakon što je primila COOKIE ECHO, stanica B odgovara s COOKIE ACK i inicijalizacija asocijacije smatra se uspješnom. 8
Nakon uspostavljanja asocijacije, SCTP putovi su otvoreni za prijenos podataka na obje strane bez obzira na smjer prijenosa.
4.2. DIJAGRAM STANJA ASOCIJACIJE PROTOKOLA SCTP
Slika 4.2.1: Dijagram stanja asocijacije protokola SCTP
9
Faze: (1) Ako je parametar State Cookie u primljenom bloku podataka COOKIE ECHO
nevažeći
(to jest, nije uspio proći provjeru integriteta), prijemnik mora tiho odbaciti paket. Ili, ako je parametar State Cookie istekao, prijemnik mora nazad poslati ERROR chunk . U
oba slučaja prijemnik ostaje u stanju CLOSED. (2) Ako vrijeme u T1- init
brojaču istječe, krajnja točka mora ponovno poslati blok
podataka INIT i ponovno pokrenuti T1- init
brojač bez mijenjanja stanja. Postupak se
ponavlja dok vrijeme ne dođe do 'Max.Init.Retransmits'. Tada krajnja točka mora prekinuti inicijalizaciju procesa i prijaviti pogrešku SCTP korisniku. (3) Ako vrijeme u T1- cookie
brojaču istječe, krajnja točka mora ponovno poslati blok
podataka COOKIE ECHO i ponovno pokrenuti T1- cookie brojač bez mijenjanja stanja. Postupak se ponavlja d ok
vrijeme ne dođe do 'Max.Init.Retransmits'. Tada krajnja
točka mora prekinuti inicijalizaciju procesa i prijaviti pogrešku SCTP korisniku. (4) U SHUTDOWN-SENT
stanju krajnja točka mora potvrditi svaki primljeni DATA
chunk bez kašnjenja. (5) U SHUTDOWN-RECIEVED
stanju krajnja točka ne mora prihvatiti od SCTP
korisnika nijedan novi zahtjev za slanje. (6) U SHUTDOWN-RECIEVED
stanju krajnja točka mora poslati ili ponovno poslati
podatke i napustiti ovo stanje kada su svi podaci u u redu čekanja poslani. (7) U SHUTDOWN-ACK-SENT
stanju, krajnja točka ne mora prihvatiti od SCTP
korisnika nijedan novi zahtjev za slanje. Stanje CLOSED koristi se za ukazivanje na to da asocijacija nije uspostavljena, to jest, ne postoji.
4.3. KONTROLA TOKA PODATAKA I ZAGUŠENJA Kao što je već prije rečeno, implementacija SCTP -a prema RFC-u 2960 mora posjedovati mehanizme za kontrolu toka podataka i zagušenja. SCTP raspoznaje različite sli jedove
poruka tijekom SCTP asocijacije. Ovo omogućuje način isporuke gdje je bitan
samo redoslijed poruka po slijedu. Tijekom asocijacije protokol osigurava pouzdan
prijenos podataka koristeći kontrolnu sekvencu, numeriranje paketa i mehanizam selektivne retransmisije. Blokovi podataka koji pripadaju jednom ili više sljedova podataka 10
mogu biti grupirani i preneseni u jednom SCTP paketu osiguravajući da paket nije veći trenutnog MTU- a
od
staze kojom se paket prenosi. Detekcija gubitka i duplikata korisničkog
bloka podataka osigurana je s numeriranjem svih korisničkih blokova podataka kod pošiljatelja sa tzv. transportnim brojem sekvence. Potvrde koje se šalju od strane primatelja prema pošiljatelju su bazirane po tim brojevima sekvenci.
Slika 4.3.1: Prijenos podataka putem SCTP asocijacije
Retransmisije su kontrolirane brojačem. Trajanje brojača postavlja se na osnovu konstantnog mjerenja vremena kružnog kašnjenja (RTD). Ako istekne brojač retransmisije, svi nepotvrđeni korisnički blokovi podataka šalju se ponovno i brojač se pokreće postavljajući se na dvostruku inicijalnu vrijednost. Kada primatelj detektira jednu ili više praznina u sekvenci podatkovnog bloka podataka, svaki primljeni SCTP paket se potvrđuje sa slanjem selektivne potvrde (SACK) koja potvrđuje sve praznine u sekvenci. Kada pošiljatelj primi četiri SACK potvrde koje za isti korisnički blok podataka javl jaju da nedostaje, taj se korisnički blok podataka istovremeno šalje (tzv. brza retransmisija). 4.4. SCTP
MONITORING (MEHANIZAM
HEARTBEAT)
Protokol osigurava nadgledanje svih transmisijskih putova za vrijeme SCTP asocijacije. Za
to je zadužen blok podataka HEARTBEAT koji se šalje na sve putove koji se ne koriste za prijenos korisničkih blokova podataka tijekom asocijacije. Svaki blok podataka HEARTBEAT mora biti potvrđen sa blokom podataka HEARTBEAT -ACK. 11
Slika 4.4.1: Primjer višesustavne asocijacije
Primjer višesustavne asocijacije vidi se na slici 4.4.1 . Dakle, crvenom bojom označen je primarni put kojim se vrši prijenos podataka između stanica A i B. Aktivnost ostalih putova ispituje se HEARTBEAT blokom podataka. Putovi su aktivni ako su SCTP paketi
koji se njima šalju potvrđeni, u suprotnom, ako za
više SCTP paketa ne stigne potvrda na izvorište, putovi su neaktivni. Također, ako u određenom vremenu broj nepotvrđenih HEARTBEAT blokova i broj pokušaja retransmisije prijeđe unaprijed određen broj (vri jednost koja je podesiva), asocijacija se prekida.
Korisnik je tijekom SCTP asocijacije obaviješten o svakoj promjeni transmisijskog puta, ili na njegov zahtjev ili pri promjeni stanja puta (aktivan, neaktivan).
4.5. PREKID ASOCIJACIJE - BLOKOVI PODATAKA SHUTDOWN I ABORT Protokol SCTP pruža dva načina prekida komunikacije: 1.
Graceful (veže se uz blok podataka SHUTDOWN) – na zahtjev korisnika. Bilo koja
strana za vrijeme komunikacije može inicirati ovakav prekid asocijacije. Kada podaci koji su u repu čekanja za vr ijeme iniciranja prekida SCTP asocijacije, stignu na odredište, asocijacija završava. 2.
Ungraceful (veže se uz blok podataka ABORT) – ili na zahtjev korisnika (primitivni
ABORT) ili kao rezultat detekcije greške unutar SCTP asocijacije. SCTP ne podržava poluotvoreno stanje što je slušaj kod TCP -a, gdje jedna strana može nastaviti slanje podataka dok je druga strana zatvorena.
12
5. SVOJSTVO VIŠESUSTAVNOSTI Stanica se naziva višesustavna (engl. multihoming ) ako posjeduje više adresa mrežnog sloja. U slučaju IP mreža, to znači da stanica ima više IP adresa. S takvim karakteristikama nije nužno da stanica posjeduje više sučelja fizičkog linka zbog toga što se više IP adresa može postaviti na jedno sučelje fizičkog linka. Transportni protokol podržava višesustavnost ako krajnjim stanicama možemo pridružiti više od jedne adrese transportnog sloja, tj. IP adresa s pridruženim brojem porta. SCTP protokol podržava rad s terminalima koji mogu ostvariti komunikaciju u mreži s više različitih IP adresa na svojim sučeljima. Ako neka stanica ima više IP adresa, prilikom inicijalizacije SCTP asocijacije s poslužiteljem, ona šalje podatke o svim svojim IP adresama u bloku podataka inicijalizacije (INIT chunk ). Klijentu je za inicijalizaciju asocijacije potrebna samo jedna IP adr esa inicijalizacije (INIT-ACK chunk )
poslužitelja jer poslužitelj u paketu odgovora
šalje podatke o svim svojim IP adresama. Protokol
podržava i IPv4 i IPv6 adrese (čak i kombinaciju). Takva SCTP asocijacija za transmisijski put između stanica može koristi ti bilo koje IP adrese ravnopravnih stanica. Prilikom uspostave asocijacije između stanica, jedna od IP adresa koju poslužitelj šalje terminalu u bloku podataka INIT- ACK postavlja se kao primarni put. Uobičajeno je da se podaci šalju primarnim putem, a retransmisija se može izvoditi i ostalim putovima.
13
6. SCTP REKONFIGURACIJA DINAMIČKE ADRESE
Tijekom SCTP pripreme povezivanja, svaka krajnja točka dostavlja popis dostupnih IP adresa s kojih mogu mogu biti dohvaćene. Ako je čvor pokretan, vjerojatno će vršiti prekapčanja i njegove IP adrese će se morati ažurirati. Postoje dvije mogućnosti kako održati povezanost nakon promjene adrese: prva zahtijeva od IP sloja sakrivanje promjena korištenjem protokola pokretljivosti sloja 3 kao mobilnog IP protokola. Druga mogućnost je ta da transportni sloj dojavi udaljenom čvoru da je IP adresa promijenjena, što se naziva prekapčanje sloja 4. Pokazano je da transportni protokol koji uzima u obzir prekapčanja omogućuje bolji radni učinak od kada obuhvaća samo krajnje točke i ne oslanja se na elemente drugih mreža kao što je posrednik mobilnog čvora mreže (Home Agent, HA). SCTP krajnja točka može oglašavati promjene o svojoj lokalnog adresi sve dok je asocijacija uspostavljena. Na taj način udaljeni čvor ne mora čekati istjecan je vremena heartbeat mehanizma da bi mogao odre diti
je li adresa nevažeća. Korištenjem protokola
pokretljivosti koji je upoznat sa zagušenjima, tj. SCTP protokola s rekonfiguracijom dinamičke adrese, obavljanje transporta je osigurano tijekom prekapčanja. Rekonfiguracija dinamičke adrese definira novi tip chunk-a, nazvan promjena konfiguracije adrese (Address Configuration Change, ASCONF). Blok podataka ASCONF (engl. Address Configuration Change) nudi sljedeće mogućnosti tijekom asocijacije:
Dodavanje novih IP adresa (blok podataka ADDIP),
Brisanje starih IP adresa (blok podataka DELETEIP), te
Mijenjanje IP adresa
Dakle, ovaj chunk koristi
krajnja točka za pokazivanje njezine dostupnosti preko nove IP
adrese, ili za ukazivanje na to da nije dostupna pre ko namjena ASCONF chunk-a
prethodno oglašene adrese. Druga
je za definiranje koju lokalnu IP adresu treba čvorište razine
koristiti kao primarno odredište. U višesustavnim scenarijima se tijekom vremena može mijenjati kvaliteta bežične veze. Informirajući čvorište razine da koristi najbolje povezivanje, cijela izvedba se ostvaruje sa smanjenim brojem gubitaka paketa i retransmisija. Promjenom primarnog puta prije 14
gubitka veze također se smanjuje gubitak paketa, a da bi se to ostvarilo, koriste se MIH okidači
za
pokretanje
slanja
ASCONF
chunk -a.
Tipična
realizacija
koristi
MIH_Link_Going_Down slučaj za promjenu primarnog puta prije nego se dogodi prekapčanje. Kod MIH_Link_Going_Down slučaja, uklanja se IP adresa sučelja, a nakon završetka prekapčanja se regi strira nova IP adresa, [4]. ASCONF blok podataka dodan je u kasnijim fazama razvoja protokola SCTP, te s
značajkom višesustavnosti protokolu daje mogućnost pokretljivosti u bežičnim lokalnim mrežama. Nakon toga protokol u nekim Internet predlošcima dobiva naziv SCTP u bežičnoj okolini (mobile SCTP , mSCTP), (Koh i sur., 2005.).
15
7. SCTP S DJELOMIČNOM POUZDANOŠĆU (PR -SCTP) SCTP je protokol pouzdanog prijenosa. Ako je blok podataka poslan, vrši se retransmisija sve dok nije uspješno primljen i potvrđen od strane čvorišta razine. Parametar vijeka trajanja paketa koji donosi program važeći je za poruke koje SCTP još nije pokuša o isporučiti. PR -SCTP osigurava sposobnost djelomične pouzdanosti SCTP -u, dopuštajući mu preskakanje transmisije određenih blokova podataka. Novi chunk imenovan kao FORWARD-TSN definiran je za označivanje novog transmisijskog rednog broja (TSN), a koristi se tako da prijemnik nastavlja kao da su paketi s TSN-om manjim od FORWARDTSN-a
već primljeni. PR -SCTP mora biti podržan od obje krajnje točke, a mogućnst je
ponuđena tijekom inicijalizacije sesije, [4]. Okvirno, PR- SCTP
omogućuje različitim mehanizmima generiranje FORWARD -TSN
chunk -ova. Osnovni mehanizam uveden s PR-SCTP-om mijenja definiciju parametra vijeka trajanja paketa. Nova definicija primjenjuje parametar vijeka trajanja i kod poruka
na čekanju, i kod još nepotvrđenih poslanih chunk -ova. Ako vijek trajanja istječe, a chunk još nije potvrđen, predajnik šalje FORWARD-TSN koji daje informaciju prijemniku da taj chunk treba preskočiti.
16
8. TRANSMISSION CONTROL - SCTP (TC-SCTP) Ciljevi koje očekujemo uvođenjem SCTP protokola su s manjenje nepotrebnog prijenosa i prilagodba mreže. No, ne očekuje se za sve prijenose podataka zadovoljenje ograničenosti kašnjenja. Podaci koji se prenose, ali nisu uspjeli zadovoljiti sa svojim ograničenjima kašnjenja, mogu se odbaciti bez utjecaja od prijemne strane. Iako pojava takvih nepotrebnih transmisija ne može pogoršati stanje u mreži, u takvim slučajevima ne možemo očekivati da se dogodi bilo kakvo aktivno poboljšanje u stanju u mreži. Stoga, da bi se spriječile nepotrebne transmisije i poboljšalo stanje u mreži, potrebna je tehnika u kojoj pošiljatelj izostavlja podatke s kratkim marginalnim vremenom, za prijenos unaprijed, te šalje odmah sljedeće podatke. Prema tome, uvodi se Transmission ControlSCTP (TC-SCTP), kao protokol transportnog sloja. TC-SCTP
je smješten na transportni sloj između aplikacijskog ko ntrolnog podsloja i sloja
mreže, a sastoji se od prijenosnog kontrolnog podsloja (Transmission Control Sub-Layer, TCSL), te od PR-SCTP podsloja. Slika 8.1 prikazuje poziciju i arhitekturu TC-SCTP-a.
Slika 8.1: Pozicija i arhitektura TC-SCTP-a
TCSL ima ulogu presretanja video podataka koji dolaze s gornjeg sloja prema PR-SCTP podsloju i pohranjuje podatke u međuspremnike prema njihovom
određenom tipu. TCSL
podsloj provjerava ima dovoljno vremena za dolazak svakog okvira koji je pohranjen u
međuspremniku na stranu prijemnika ili ne, te određuje je li svaki okvir dostavljen PR 17
SCTP podsloju. Ako vremenski ogra ničavatelj
odluči da poruka ne može doći do
prijemnika u vremenu reprodukcije, poruka će tada biti uklonjena za TSCL -ovog pošiljatelja. Na ovaj se način sprječava nepotreban prijenos. Isto tako, TC -SCTP pruža diferencijalne usluge prijenosa za video podatk e
u stvarnom vremenu. Tako možemo
navesti za primjer MPEG video prijenos koji se sastoji od glasovnih podataka, slikovnih podataka (I, P i B okvira)
te kontrole podataka. Da bi se pružio diferencijalni prijenos
usluge podataka koji dolaze iz video servera gornjeg sloja, prijenosni kontrolni podsloj TC-SCTP-a
ima četiri međuspremnika: za glas, I -okvir, P-okvir, B-okvir, te kontrolu
poruka. Klasifikator prima MPEG okvire od TCSL-a izravno iz aplikacijskog sloja, njih odvaja te ih stavlja u odvojene pretince prema vrstama okvira. Klasifikator
također
označava okvire s njihovim vremenom dolaska, što je potrebno pri izračunavanju vremena reprodukcije svakog okvira. Vremenski ograničavatelj provjerava ono preostalo vrijeme reprodukcije za svaku poruku na čekanj u iz međuspremnika. Zatim pošiljatelj odabire PR SCTP tok prema preostalom vremenu reprodukcije. TC-SCTP
usvaja postojeći PR-SCTP
koji podržava različite tipove pouzdanosti i poboljšava ga za slabe točke multimedijskih usluga. PR-SCTP podsloj TC-SCTP-a o tvara više tokova za diferencija lni ponovni prijenos
kada se uspostavi sesija te utvrđuje maksimalan broj retransmisija različito za svaki tok. TC-SCTP pokazuje
višu propusnost nego PR -SCTP i standardni SCTP nakon zagušenja,
odnosno opterećenja mreže. Budući
da standardni SCTP jamči ''punu pouzdanost'' da se retransmisije ponavljaju sve
dok se svi podaci ispravno ne prenesu, p odaci
kao što su glas i video moraju u stvarnom
vremenu stići na prijemnik unutar perioda maksimalnog vremena kašnjenja reprodukc ije. TC-SCTP može poboljšati kvalitetu
usluga video prijenosa na način da kod povećanja
količine podataka okviri dolaze unutar ograničenog kašnjenja, [9].
18
9. USPOREDBA S TCP I UDP PROTOKOLOM SCTP protokol je d izajniran
da se uspješno riješe nedostaci i ograničenja koja se
mogu uočiti kod TCP protokola . S obzirom na korisnički prijenos podataka, SCTP kombinira svojstva UDP-a i TCP-a i dodaje nove, bolje
značajke .
Što se tiče uspostave uspostava veze i sigurnosti, oba protokola, i SCTP i TCP, koriste skup poruka za uspostavljanje veze koji se međusobno razlikuju. Na slici 9.1 vidimo da TCP koristi princip trostrukog (3-way)
, dok SCTP koristi princip četvorostrukog ( 4-way)
usklađivanja (handshake) tijekom incijalizacije nove asocijacije. SCTP protokol koristi COOKIE mehanizam tijekom postavljanja puta za utvrđivanje krajnjih točaka. COO KIE identificira moguću krađu adresa i na taj način štiti od mogućih napada. TCP protokol nema takvu zaštitu i relativno je osjetljiv na napade odbijanja usluge, kao što su SYN napadi.
Slika 9.1: Usporedba prekida veze kod TCP, odnosno STCP protokola
SCTP i UDP protokoli su protokoli okrenuti prema prijenosu u okvirima poruka, dok je TCP orijentiran byte stream prijenosu, u obliku struje podataka, i to okteta. Na slici 9.2 prikazana je usporedba prijenosa podataka kod UDP i SCTP protokola i prijenosa podataka kod TCP protokola. Za razliku od UDP-a, SCTP ima posebnost po tome što
otkriva gubitak paketa, duplicirane
pakete ili pogreške bita, te vrši retransmisiju ili odbacuje odgovarajuće pakete. SCTP omogućava podjelu jedne asocijacije u do 65536 logičk ih podkanala po smjeru, tj. tokova 19
( streams). Svaka korisnička poruka se prenosi u
jednom od tokova, kao odabrana od strane
SCTP korisnika.
Slika 9.2: Oblik prijenosa podataka kod UDP i SCTP protokola u odnosu na TCP protokol
Dakle, SCTP
ima mogućnost korištenja kontrole toka i kontrole zagušenja algoritama
sličnih onima kod TCP -a. Za razliku od TCP-a, SCTP čuva granice poruka. Brojilo bajtova ili ograničavajući okvir nisu potrebni u aplikacijskom sloju za prijemnik kako bi razložili tok pojedinačnih poruka. SCTP je sam po sebi generički transportni protokol za IP mreže, s naglaskom na okruženja
s visokom pouzdanošću i sigurnosnim uvjetima. SCTP je prikladan više za aplikacije koje zahtijevaju dodatne uvjete i pouzdanost zbog novijih uslu ga
kao što su višesustavnost ,
višesljednost, očuvanje granica poruke, smanjeno head-of-line blokiranje te poboljšanje sigurnosnih značajki . Dok TCP vezu ostvaruje kanalom između dvije krajnje točke, SCTP uvodi koncept asocijacije koja se postoji između dva računala, ali može surađivati s višestrukim sučeljima svakog računala. To donosi prednost za višesustavna računala koja imaju više od jednog mrežnog sučelja, a stoga i više od jedne IP adrese s koje mogu biti upućena. Razlika između TCP povezivanja i SCTP asocijacije prikazana je na slici 9.3. SCTP omogućava preusmjeravanje mehanizama u slučaju ''provjeru oznake'' i ''cookie state'' mehanizam kako (DoS) napada, te slijepog '' spoofing '' napada.
kvara linka . T akođer koristi tzv.
bi zaštitio sebe od denial of service
Kao što smo rekli, poruke sa aplikacijskog
sloja dodijeljuju se različitim tokovima i to isključivo prema zahtjevima SCTP korisnika. Budući da je potrebno izvršiti naredbu isporuke unutar svakog toka, ako je potrebno, SCTP je u stanju tada smanjiti nepotrebno head-of-line blokiranje između različitih tokova.
20
Slika 9.3: Usporedba TCP povezivanja i SCTP asocijacije
Zahvaljujući višesljednosti, ovaj protokol je opremljen sa internim mehanizmima za prijenosnu podršku nekoliko objekata istovremeno. Na primjer, HTTP protokol korištenjem SCTP-a kao prijenosnog sloja može učitavati web stranice sa više objekata, kao što su slika, glas, tekst, video itd., otvaranjem samo jedne SCTP asocijacije, umjesto nekoliko TCP veza. Suvremeni SCTP koristi TCP kao mehanizam koj i na razini asocijacije,
nadzire zagušenja
što znači da se tokovi koji nose različite objekte tretiraju jednako s
obzirom na ista stanja zagušenja informacija, [6].
Na slici 9.4 prikazan je učinak višeslijednosti kod SCTP -a, u odnosu na TCP-ovu jednokanalnu vezu. Kada dođe do gubitka paketa, kod TCP -a dolazi do blokiranja cijele veze, dok se kod SCTP- a blokira samo jedan slijed blokova podataka, u kojemu je došlo do gubitka paketa, dok preostali slijedovi nastavljaju normalno slati podatke.
Slika 9.4: Učinak višesljednosti kod SCTP asocijacije u usporedbi s TCP vezom 21
10. ZAKLJUČAK SCTP, protokol upravljanja transmisijskim slijedom, pouzdani je protokol koji djeluje na istoj
razini kao i UDP i TCP protokol, koji omogućuju funkcije transportnog
sloja mnogim internetskim aplikacijama. SCTP p ruža
mnoge usluge svojim korisnicima:
potvrđeni prijenos korisničkih podataka bez pogrešaka i dupliciranja, fragmentaciju podataka radi
prilagođavanja veličini MTU otkrivenog puta, isporuku korisničkih poruka
određenim redom kroz više slijedova, mogućnost spajanja višestrukih korisničkih poruka u jedan SCTP paket,
mrežnu razinu tolerancije kvarova kroz višesustavnost. Struktura
SCTP-a uk ljučuje
i odgovarajuće izbjegavanje zagušenja, te otpornost na flooding
(poplavno usmjeravanje) i prikrivene napade.
SCTP komunicira putem uspostavljanja povezanosti između krajnjih točaka, asocijacije. Za svaku asocijaciju, on
podržava više neovisno logičkih tokova. Osim toga,
SCTP tok je pogodan za redovito ili neposredno isporučivanje poruka u gornji sloj protokola. SCTP podržava višesustavnost, što znači da u SCTP asocijacijama svaka krajnja
točka može biti povezana s više sučelja. Zanimljivo je da sv i tokovi unutar iste asocijacije dijele zajednički set parametara, tako da je moguće postići poboljšanu propusnost, kao i u paralelnim TCP vezama, bez nadogradnje u provedbi. U odnosu na UDP i TCP, SCTP je relativno noviji protokol, ali njegova uporaba se
sve više širi, pa i u aplikacijama koje su prije koristile neki od dva navedena starija protokola. Razlog tome je što je donio mnoge prednosti u odnosu na njih, a također postoje mnogi načini na koji aplikacije mogu kontrolirati i ko nfigurirati SCTP protokol. Dizajniran je da bude fleksibilan, ali i dalje osigurava prihvatljive zadane postavke za aplikacije koje
se ne žele udubljivati u detalje kontrole transporta. Za aplikacije koje trebaju više kontrole, SCTP omogućava široki izbor postavki priključnih računala i opcija rukovanja. Generalno, SCTP se može koristiti bilo gdje se koristi TCP, i daje aplikacijama veću fleksibilnost. SCTP se može također koristiti u slučajevima gdje se uzima u obzir samo UDP, uzimajući u obzir potpuno uob ličenu realizaciju SCTP -a, uključujući djelomičnu nepouzdanost (PR -
SCTP). U svakom slučaju, zahvaljujući svojim dobrim osobinama i prednostima u odnosu na druge protokole, SCTP će zadržati i nastaviti širiti svoju primjenu na širokom opsegu različitih aplikacija. 22
LITERATURA [1]
Stewart, R., Xie, Q. i suradnici, Stream Control Transmission Protocol. RFC 2960, 2000.
[2]
Transportni sloj, slajdovi s predavanja, ETF Osijek, 2009.
[3]
Veinović, M., Jevremović, A., Uvod u računarske mreže, Beograd, 2007.
[4]
www.sciencedirect.com, Media independent handover transport using cross-layer optimized stream control transmission protocol.
[5]
Mogul, J., Deering, S., Path MTU Discovery. RFC 1191, 1990.
[6]
Karn, P., Simpson, W., Photuris: Session-Key Management Protocol, RFC 2522, 1999.
[7]
www.sciencedirect.com, Troughput models for SCTP with parallel subflows.
[8]
RFC 793. Transmission Control Protocol, 1981.
[9]
www.sciencedirect.com, LS-SCTP: a bandwich aggregation technique for stream control transmission protocol.
[10]
www.sciencedirect.com, Performance evaluation of subflow capable SCTP.
[11]
http://www.sctp.de, Biblioteka SCTPLIB.
[12]
Koh, S. J., Xie, Q., Park, S. D.,Mobile SCTP (mSCTP) for IP Handover Support. Internet draft , 2005.
23