Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
STREAM CONTROL 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. KONTROLA TOKA PODATAKA I ZAGUŠENJA............................................10
4.4. SCTP MONITORING (MEHANIZAM HEARTBEAT).......................................11
4.5. PREKID ASOCIJACIJE - BLOKOVI PODATAKA SHUTDOWN I ABORT. .12
5. SVOJSTVO VIŠESUSTAVNOSTI...........................................................................13
6. SCTP REKONFIGURACIJA DINAMIČKE ADRESE.........................................14
7. SCTP S DJELOMIČNOM POUZDANOŠĆU (PR-SCTP)....................................16
8. 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, pri čemu kontrolira
prijenos, kontrolira i ispravlja pogreške pri prijenosu, te 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
3
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 kao
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 kaš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
4
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
odgovarajuć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).
5
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 gubitku 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 identifikator konteksta za svaku poslanu
poruku. Identifikator konteksta koristi se kod SCTP-a kada se pruža povratna informacija
aplikaciji.
6
SCTP KORISNIČKAAPLIKACIJA
SCTP PRIJENOSNAUSLUGA
IP MREŽNA USLUGA
SCTP KORISNIČKAAPLIKACIJA
SCTP PRIJENOSNAUSLUGA
IP MREŽNA USLUGAJEDNA ILI VIŠEIP ADRESA
JEDNA ILI VIŠEIP ADRESA
SCTP ČVOR A SCTP ČVOR BMREŽNI PRIJENOS
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.).
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.
7
Izvorišni port Odredišni port
Oznaka provjere
Cheksum
Tip Zastavice Duljina paketa
Korisnički podaci
SCTPzaglavlje
Blokpodataka 1
32 bita
.
.
.
.
.
.Tip Zastavice Duljina paketa
Korisnički podaciBlok
podataka N
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 sadržavaju različite zastavice i parametre, ovisno o tipu
chunk-a. 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 se kao podrška višesljednosti, dok je Payload protocol identifier uključen
8
radi fleksibilnosti u budućnosti. Podatkovni chunk-ovi koji stižu do 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)
9
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.
10
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
11
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 dok 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
slijedove 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
12
mogu biti grupirani i preneseni u jednom SCTP paketu osiguravajući da paket nije veći od
trenutnog MTU-a 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 javljaju 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.13
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 (vrijednost 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 vrijeme 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.
14
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 adresa poslužitelja jer poslužitelj u paketu odgovora
inicijalizacije (INIT-ACK chunk) š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 koristiti 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.
15
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 istjecanje vremena
heartbeat mehanizma da bi mogao odrediti 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 preko prethodno oglašene adrese. Druga
namjena ASCONF chunk-a 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
16
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 registrira 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.).
17
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šao
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 FORWARD-
TSN-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.
18
8. TRANSMISSION CONTROL - SCTP (TC-SCTP)
Ciljevi koje očekujemo uvođenjem SCTP protokola su smanjenje 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 Control-
SCTP (TC-SCTP), kao protokol transportnog sloja.
TC-SCTP je smješten na transportni sloj između aplikacijskog kontrolnog 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-
19
SCTP podsloju. Ako vremenski ogranič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 podatke 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 čekanju 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 otvara više tokova za diferencijalni 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, podaci kao što su glas i video moraju u stvarnom
vremenu stići na prijemnik unutar perioda maksimalnog vremena kašnjenja reprodukcije.
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].
20
9. USPOREDBA S TCP I UDP PROTOKOLOM
SCTP protokol je dizajniran 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. COOKIE
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
21
omogućava podjelu jedne asocijacije u do 65536 logičkih podkanala po smjeru, tj. tokova
(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 usluga 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 kvara linka. Također koristi tzv.
''provjeru oznake'' i ''cookie state'' mehanizam kako bi zaštitio sebe od denial of service
(DoS) napada, te slijepog ''spoofing'' napada. 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.
22
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 koji nadzire zagušenja
na razini asocijacije, š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 vezom23
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 pruž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 uključ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 svi 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 konfigurirati 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 uoblič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.
24
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.
25