You are on page 1of 19

5.11.2020.

Računalne mreže

SVEUČILIŠTE U ZAGREBU

FAKULTET PROMETNIH ZNANOSTI


predmet: Računalne mreže

Nastavnik: Prof. dr. sc. Zvonko Kavran zvonko.kavran@fpz.unizg. hr


Doc. dr. sc. Ivan Grgurević ivan.grgurevic@fpz.unizg.hr

1
Računalne mreže

Sloj veze podataka

1
5.11.2020.

Uvod (sloj veze podataka, data link) (1)

- osigurava komunikacijsku uslugu između dva susjedna čvora


- komunikacijski put sastoji se od niza komunikacijskih linija koji počinje od
Računalne mreže

izvornog računala, prolazi kroz niz rutera i završava se na odredišnom


računalu (prikazano na slici)

Sloj veze podataka

- zahtjevi za pouzdan prijenos podataka (bez grešaka) između dva međusobno


povezana čvora 3
- Osnovna podatkovna jedinica naziva se okvir (frame).

Uvod (sloj veze podataka, data link) (2)

Analogija s prijevozom (transportom)


Računalne mreže

Npr. putovanje iz Splita do Zagreba

osobni automobil (taxi): od grada Splita do zračne luke Split


avion: zračna luka Split do zračna luka Zagreb
autobus: zračna luka Zagreb do autobusni kolodvor Zagreb

Putnik (turist) = datagram


Segment transporta = communication link
Mod transporta = link layer protocol
Putnička agencija = routing algorithm

Sloj veze podataka – odgovornost za prijenos datagrama iz jednog


čvora mreže do susjednog čvora putem linka koji ih povezuje

2
5.11.2020.

Problemi koji se pojavljuju u prijenosu:

- Greške u prijenosu
Računalne mreže

- Konačna brzina prijenosa

- Konačno vrijeme rasprostiranja

Sloj veze podataka koristi usluge fizičkog sloja za slanje i prijem bitova 5
putem komunikacijskog kanala.

Više specifičnih funkcija, koje se ostvaruju kroz:


1. dobro definirano uslužno sučelje ka mrežnom sloju
2. obradu grešaka pri prijenosu
Računalne mreže

3. upravljanje tokom podataka tako da računalo koje prima podatke ne


bude njima preplavljeno

Sloj veze podataka preuzima pakete koje dobiva od mrežnog sloja i


smješta ih u okvire (engl. frames)

Svaki okvir sadrži zaglavlje (engl. header), polje za korisničke podatke


(engl. payload field) u kome je paket i završni blok okvira (engl. frame
trailer)

3
5.11.2020.

Gdje je sloj veze podataka implementiran? (engl. central


processing unit, )
Računalne mreže

Računalo

application
transport
network cpu memory
link

sabirnica
Kontrolerr
link
physical
Fizički
prijenos

Mrežna kartica

Network interface card - NIC

Osnovna usluga je prijenos podataka iz mrežnog sloja na izvorišnom računalu


u mrežni sloj odredišnog računala.
Računalne mreže

Modeli komunikacije između podatkovnih slojeva


(izvor: A. S. Tanenbaum)

datagram datagram

kontroler kontroler

Pošiljatelj Primatelj
datagram 8
Okvir

4
5.11.2020.

Konkretne ponuđene usluge variraju od sustava do sustava:

1. prijenos podataka bez uspostavljanja direktne veze i bez potvrde


Računalne mreže

o njihovom prijemu (nepotvrđeni bespojni - unacknowledged connectionless


service)

2. prijenos podataka bez uspostavljanja direktne veze, s potvrdom o


njihovom prijemu (potvrđeni bespojni - acknowledged connectionless
service)

3. prijenos podataka s uspostavljanjem direktne veze i s potvrdom o


njihovom prijemu (potvrđeni spojni - acknowledged connection-oriented
service)

1. Nepotvrđeni bespojni

- šalju se neovisni okviri bez potvrde odredišnog računala o primitku


Računalne mreže

- ne vrši se obnavljanje okvira ako se neki izgubi


- usluga je prikladna:
- ako je broj grešaka mali, pa je obnavljanje ostavljeno višim nivoima
- kada je važnije da podaci brzo stignu nego točnost podataka

2. Potvrđeni bespojni

- potvrda (engl. acknowledgment) se šalje za svaki okvir posebno, pa pošiljaoc


zna da li je okvir stigao ili nije
- ako okvir ne stigne u nekom propisanom vremenskom intervalu, šalje se ponovo
- ako se potvrda izgubi, okvir će se prenijeti više puta
- servis koristan za nepouzdane kanale kao npr. bežične sustave

10

10

5
5.11.2020.

3. Potvrđeni spojni
Računalne mreže

- najpouzdaniji servis, uspostavlja se veza prije slanja okvira


- svaki poslani okvir je numeriran i sloj garantira:
- svaki okvir će biti primljen
- svaki okvir će se primiti točno jednom
- svi okviri će stići u pravom redoslijedu

- 3 faze prijenosa:
1. uspostavlja se veza tako da obje strane inicijaliziraju brojače i varijable
potrebne za vođenje računa o tome koji su okviri već stigli, a koji nisu
2. okviri se prenose
3. oslobađa se veza, tj. varijable i ostali resursi koji su bili potrebni za prijenos

11

11

Tvorba okvira (Framing)


Računalne mreže

- problem obilježavanja početka i kraja svakog okvira


- podatkovni sloj razbija niz bitova u diskretne okvire i izračunava zaštitu
(checksum) za svaki okvir
- zaštita se ponovo računa za svaki okvir na odredištu - ako se razlikuje od
polazne, došlo je do pogreške koju podatkovni sloj treba riješiti
- Različite metode za razbijanje toka bitova u okvire:

1. brojanje znakova
2. omeđivanje početnim i završnim znakom s umetanjem (stuffing) znaka
3. omeđivanje početnom i završnom "zastavicom" (flag) s umetanjem bita
4. narušavanje pravila kodiranja fizičkog sloja

12

12

6
5.11.2020.

1. Brojanje znakova

- koristi posebno polje u zaglavlju s podatkom o broju znakova u okviru


- kada sloj prijenosa podataka na odredištu vidi taj broj, zna koliko znakova slijedi, tj.
Računalne mreže

gdje je kraj okvira


- problem ako se uslijed greške u prijenosu promijeni podatak s brojem - ispada se iz
sinkronizacije
- dosta rijetko se koristi

Primjer za tvorbu
okvira brojanjem
znakova
(izvor: A. S. Tanenbaum)

13

13

2. Omeđivanje početnim i završnim znakom s umetanjem (stuffing) znaka

- svaki okvir započinje s ASCII znakovima DLE STX, a završava s DLE ETX (Data Link
Escape, Start of TeXt, End of TeXt)
Računalne mreže

- kod prijenosa binarnih podataka može se dogoditi da se znakovi za DLE STX i DLE
ETX pojave unutar podataka

- zato se koristi tehnika umetanja znaka (character stuffing): ispred svakog DLE niza
dodaje se još jedan DLE koji se na strani primaoca miče (jedini sami DLE su na
početku i kraju okvira) - znak DLE zamjenjuje se dvoznakom DLE DLE

- nedostatak: metoda vezana uz 8-bitne znakove tj. uz ASCII kôd, potrebna je


metoda i za znakove bilo koje veličine

Primjer za omeđivanje
s DLE STX i DLE ETX
(Izvor: Tanenbaum)

14

14

7
5.11.2020.

3. Omeđivanje početnom i završnom "zastavicom" (flag) s umetanjem bita

- tehnika dozvoljava okvire, kao i znakove, s proizvoljnim brojem bitova

- za označavanje krajeva okvira koristi se posebni uzorak bitova, 01111110 - flag byte
Računalne mreže

- kada se u podacima pojavi 5 jedinica, umetne se 0 bit (bit stuffing)

- na primjer:

0101111111111001 - niz podataka prije umetanja (poslao ga je mrežni sloj)

010111110111110001 - - niz podataka s umetnutim 0 bitom


4. Narušavanje pravila kodiranja fizičkog sloja
- kod mreža gdje postoji redundancija pri kodiranju, npr. za kodiranje 1 bita podataka
koriste se 2 fizička bita
- koristi se pogrešni fizički kod:

- ako je 1 bit "high-low" par, a 0 bit "low-high" par, kombinacije "low-low" i


"high-high" se ne koriste za podatke, pa mogu biti granice okvira
5. Kombinacija prethodnih metoda
- Ethernet i IEEE 802.11 mreže za označavanje početka okvira koriste predefinirani
uzorak koji se naziva preambula 15

15

Kontrola (po)grešaka (eng. Error Control)

Kontrola grešaka = uklanjanje grešaka


svaki okvir mora se proslijediti mrežnom sloju na odredištu točno jednom
Računalne mreže

Bit error rate (BER): bežični medij p=10-3; bakrena žica p=10-6; svjetlovod p=10-9

Tehnike kontrole pogrešaka s ciljem poboljšanja performansi prema višim slojevima


(aplikacijama)
Tipovi pogrešaka:

Pogreške jednog bita (single) Pogreške više bitova (bursts)

Osnovna ideja: redundancija – dodavanje ekstra informacija (bitova) za


detekciju/korekciju pogrešaka

Korekcija pogrešaka zahtjeva više redundantnih bitova u odnosu na detekciju,


više redundatnih bitova daje bolju kontrolu pogrešaka (PROBLEM 16 više
overheada)

16

8
5.11.2020.

Načini kontrole pogrešaka

BEC (Backward Error Correction)


- dodavanje redundantne informacije koja se detektira na prijemnoj strani
- nedostatak: ponovna retransmisija
Računalne mreže

- prikladno za prijenosne sustave sa manjom vjerojatnošću pogreške

FEC (Forward Error Correction)


- dodavanje redundantne informacije kojom se detektira i ispravlja pogreške
na prijemnoj strani
- prednost: nema potrebe za retransmisijom
- nedostatak: više overheada
- prikladno za prijenosne sustave s većom vjerojatnošću pogreške (bežični
sustavi)

17

17

Kodovi za detekciju pogrešaka (Error-Detecting Codes)

Koriste se kada je jednostavnije ponovo poslati pogrešne podatke umjesto da ih se


Računalne mreže

ispravlja:
• Parity check
• Checksum
• Cyclic redundancy check

Na strani pošiljaoca: k bitova podataka + r bitova za provjeru = okvir dužine n

Primatelj razdvaja dolazeći okvir na k bitova podataka i (n-k) bitova zaštitnog


kôda, izvodi određena računanja nad podacima te uspoređuje dobivenu
vrijednost s pristiglim zaštitnim bitovima

- pogreška je utvrđena ako se te dvije vrijednosti razlikuju

18

18

9
5.11.2020.

Kontrola pariteta

Informacija (7 bita) [0, 1, 0, 1, 1, 0, 0]


Bit pariteta b8= 0 + 1 +0 + 1 +1 + 0 mod 2 = 1
Računalne mreže

Kodna riječ (8 bita) [0, 1, 0, 1, 1, 0, 0, 1]

Vjerojatnost jednostruke pogreške

Vjerojatnost dvostruke pogreške

Vjerojatnost k-struke pogreške

Gdje je pb- vjerojatnost pogreške jednog bita, n-bitna riječ

19

Checksum

- IP/TCP/UDP paketi se dijele u n-bitne sekcije


Računalne mreže

- n-bitne sekcije se zbrajaju metodom jednostrukog komplementa

- suma se komplementira za stvaranje checksuma (kontrolne sume)


(komplement je negativni broj)

- šalju se podaci + checksum

20

10
5.11.2020.

Računalne mreže

Prijemnik

Pošiljatelj

21

Polinomni kôd CRC (Cyclic Redundancy Code) (1)


Računalne mreže

-jedna od metoda koja se često koristi, (Ethernet, 802.11 WiFi, ATM)

- naziv polinomni kôd jer se k-bitni okvir promatra kao da predstavlja


koeficijentnu listu polinoma k-1 stupnja čiji su koeficijenti 0 i 1

Osnovni princip:
za dani k-bitni niz podataka pri slanju se generira n-k -bitni niz tako da se
rezultirajući okvir (frame) sastoji od n bitova i djeljiv je s nekim preddefiniranim
brojem (polinomom) o kojem se dogovaraju primatelj i pošiljatelj
-kod primanja poruka okvir se dijeli s istim tim polinomom i ako nema ostatka,
nema pogreške 22

22

11
5.11.2020.

Polinomni kôd CRC (Cyclic Redundancy Code) (2)

- Polinomna aritmetika se izvodi modulo 2 (+, - kao XOR), npr. 1111+1010=0101

- D(x) - niz bitova koji se šalje (dužina d) T(x) - okvir (n bitova)


Računalne mreže

R(x) = T(x)-D(x) - zaštitni bitovi (dužina n-d)

G(x) - unaprijed definirani polinom djelitelj stupnja n-k (znaju ga pošiljatelj i


primatelj); odabran je tako da je T(x) djeljiv s G(x) bez ostatka

Podatkovni bitovi, D, kao binarni broj

Izbor r+1 bitnog uzorka (generator), G

Cilj: odabrati r CRC bitove, R, takve da


<D,R> djeljivi sa G (modulo 2)
23
Primatelj poznaje G, dijeli <D,R> sa G.
Ukoliko rezultat nije 0: detekcija greške!

23

Postoji li mogućnost pojave potpunog zastoja?

Primatelj šalje pošiljatelju posebni okvir sa pozitivnom ili negativnom potvrdom o


primljenom okviru - ako je potvrda negativna, treba ponoviti slanje
Računalne mreže

Problem potpunog gubitka okvira (ili potvrde)


Ako se izgubi potvrda, dolazi do blokiranja (deadlock) na strani pošiljaoca koji bi
zauvijek čekao potvrdu
Rješenje: uvodi se sat (timer) kod pošiljatelja
- pošiljatelj šalje okvir i ujedno pokreće timer
- interval sata (vremensko ograničenje) - veće od vremena potrebnog da okvir
stigne na odredište, tamo se obradi i potvrda stigne natrag pošiljaocu
- ako vrijeme istekne, a potvrda još nije stigla, pošiljatelje se upozorava na
problem (šalje ponovo okvir)

Problem dupliciranja okvira (okvir je stigao, ali ne i potvrda, pa je poslan ponovo)


rješava se rednim brojevima koji se dodjeljuju izlaznim okvirima - tako primatelj
razlikuje original od kopija
Cilj je dostaviti okvir mrežnom sloju bez poduplavanja
24

24

12
5.11.2020.

Kontrola toka (eng. Flow Control)

- pošiljatelj želi slati okvire brže nego što ih primatelj može prihvatiti što može
dovesti do gubitka nekih okvira (čak i u slučaju da nema pogreški)
Računalne mreže

- rješenje je uvesti mehanizme kojima se pošiljaoc usporava

- protokoli sadrže dobro definirana pravila o tome kada pošiljatelj smije poslati
sljedeći okvir

- npr. pošalje n okvira, a zatim čeka dok primatelj ne potvrdi da može nastaviti sa
slanjem

Tehnikama kontrole toka osigurava se da pošiljatelj ne zaguši primatelja s podacima

Primatelj obrađuje podatke prije nego što ih proslijedi mrežnom sloju


- pohranjuje ih u spremnik (buffer) određene maksimalne veličine

Procedure kojima se ograničava količina podataka za slanje dok se čeka


potvrda

25

25

Kontrola toka i pogrešaka


Računalne mreže

Višestruki okviri
Slanje jednog okvira u vremenu, 1. Okvir primljen sa pogreškom –nema potvrde
neučinkovito ACK, zahtjev za ponovno slanje što prije
2. Nema pogrešaka, obrada okvira kod
primatelja je spora, zahtjev- ne šalji više okvira

26

13
5.11.2020.

Podvostručavanje/uvišestručavanje - numeriranje
Računalne mreže

Kako će prijemnik
znati da nije novi
paket?

Prijemnik je već prije primio okvir


2, šalje ACK i odbacuje duplikat

27

Kontrola pogrešaka

Dvije vrste pogreški: izgubljeni okviri i oštećeni okviri


Mehanizmi kontrola pogreški zasnivaju se na:
Računalne mreže

- utvrđivanju pogreški
- pozitivnoj potvrdi - primatelj vraća pozitivnu potvrdu
(acknowledgment, ACK) o tome da je okvir stigao bez pogreške
- ponovnom slanju nakon isteka određenog vremena (timeout) -
pošiljatelj ponovno šalje okvir ako je isteklo unaprijed dogovoreno
određeno vrijeme
- negativnoj potvrdi i ponovnom slanju - primatelj vraća negativnu
potvrdu za okvire koji su stigli oštećeni; pošiljatelj ponavlja slanje tih
okvira

Detekcija pogrešaka + zahtjev za retransmisijom

(Automatic Retransmission Request ARQ)

- metode kojima se ograničava broj nepotvrđenih okvira na obje strane

28

28

14
5.11.2020.

Računalne mreže

Osnovni protokoli sloja


veze/prijenosa podataka

29

29

Osnovne grupe protokola:

- protokoli s čekanjem (stop-and-wait ARQ)


- protokoli s prozorom (sliding window protocols)
Računalne mreže

- protokol s vraćanjem (go-back-N ARQ),


- protokol sa selektivnim ponavljanjem (selective-repeat ARQ)

Model prijenosa okvira bez pogrešaka i s pogreškama


30

30

15
5.11.2020.

Protokoli s čekanjem (“stani-i-čekaj” – stop


and-wait)

-Manje učinkoviti
-protokoli kod kojih pošiljatelj šalje 1 okvir i
zatim čeka na potvrdu prije nego što
Računalne mreže

nastavlja slati

Primjer za protokol s čekanjem 31


(stop-and-wait) /Stallings/

31

Kašnjenje (ponovimo)
Odaslan paket (delay)

A
Računalne mreže

B
Red čekanja paketa (delay)

slobodni (available) buffer: dolazni paketi


se odbacuju (loss) ukoliko nema mjesta

Analogija sa cestovnim prometom

npr. npr.
100km 100 km
Dolazeća
Naplata Naplata
vozila

32

16
5.11.2020.

Protokoli s prozorom (eng. Sliding window protocols)

Poboljšana efikasnost za slučaj “lošijeg” odnosa brzine prijenosa i udaljenosti


računala:
- Velike brzine prijenosa (LAN, MAN)
Računalne mreže

- Velike udaljenosti

Osnovni mehanizam:
Poslati određen broj okvira bez čekanja potvrde
Potvrda (zadnjeg) okvira znači potvrdu svih prethodnih

Prozor – skup rednih brojeva nepotvrđenih okvira podataka

Numeriranje sa n-bitnim poljem unutar zaglavlja okvira


Problem: Ograničenje rednih brojeva : 0 do (2n-1) (aritmetika mod 2n)
Predajni prozor – skup uzastopnih rednih brojeva okvira podataka koje predajnik
smije poslati
SL: najniži redni broj poslanog nepotvrđenog okvira
SU: redni broj prvog još neposlanog okvira
SU-SL: otvor predajnog prozora

Prijemni prozor: skup uzastopnih rednih brojeva okvira koje prijemnik smije primiti
RU, RL – granice prozora
RU – RL: otvor prijemnog prozora ≤ 2n – 1 33

33

Karakteristike protokola s prozorom

- promatraju se dvije stanice A i B povezane dvosmjernom vezom


Računalne mreže

- primatelj B rezervira spremnik za W okvira - dozvoljeno je da pošiljatelj A pošalje


W okvira bez čekanja

- okviri moraju biti numerirani kako bi se moglo pratiti koji su potvrđeni

- B potvrđuje okvir šaljući potvrdu koja ujedno sadrži i redni broj sljedećeg okvira
koji očekuje => to je potvrda da je B spreman primiti sljedećih W okvira (prvi
među njima ima navedeni redni broj)
- npr. B je primio okvire 2,3,4
- poslao je potvrdu s brojem 5 tek nakon što je 4. okvir stigao
- potvrda potvrđuje da su stigli svi okviri 2-4

- Pošiljatelj A u bilo kojem trenutku održava listu rednih brojeva okvira dozvoljenih
za slanje - ti okviri čine prozor za slanje (sending window)

- Primatelj B održava listu rednih brojeva pripremljenih za primanje - oni čine


prozor za primanje (receiving window) 34

34

17
5.11.2020.

Protokol s vraćanjem (eng. go back n - “vrati se natrag za n”)


Računalne mreže

Go-Back-N nije pogodan za tzv.‘noisy links’ –u slučaju izgubljenog/oštećenog


okvira potrebno je ponovno poslati cijeli prozor okvira

-dodatna retransmisija zauzima pojasnu širinu i usporava prijenos

35

35

Protokol sa selektivnim ponavljanjem (eng. selective repeat)


Računalne mreže

U odnosu na Go-Back-N dodatne dvije značajke:

(1) Prijemni prozor > 1 okvira, tako da izvan reda, ali bez pogreške okviri
mogu biti prihvaćeni
(2) Mehanizam retransmisije je modificiran – samo individualni okviri se
ponovno prenose
Selective Repeat ARQ se koristi u TCP!!!

36

36

18
5.11.2020.

O čemu ovise performanse protokola – efikasnost prijenosa podataka

Faktori koji utiču na efikasnost:

Dužina okvira: fiksna ili varijabilna


Računalne mreže

Potvrda: uključena u okvir podataka u suprotnom smjeru ili ne

Vrsta protokola

Statistička svojstva pogrešaka prilikom prijenosa

Piggybacking
U dvosmjernim sustavima oba
sudionika šalju podatke
i potvrde – implementirana
kontrola toka

piggybacking method:
ACKs se dodaju u zaglavlje
okvira podataka
-Ušteda pojasne širine
(overhead podatkovnog i
ACK okvira (adresa, CRC…)
može biti kombinirano u
jedan okvir)

37

19

You might also like