Framing - Bilgisayar Mühendisliği Bölümü

Veri İletişimi Veri
İletişimi
Data Communications
Suat ÖZDEMİR
Suat
ÖZDEMİR
Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü
11. Data Link Control
Konular
•
•
•
•
•
Giriş
Framing
Akış kontrolü
Hata kontrolü
Protokoller
http://ceng.gazi.edu.tr/~ozdemir
2
Giriş
• Data link layer (veri bağı katmanı) nın iki ana g
görevi vardır
– Data link kontrolü
– Ortam erişim kontrolü
Ortam erişim kontrolü
• Data link kontrolü: iki komşu düğüm arasındaki iletişim için tasarım ve prosedür oluşturur
• Ortam erişim kontrolü: linkin (ortamın) nasıl Ortam erişim kontrolü: linkin (ortamın) nasıl
paylaşılacağı belirlenir (12. Bölüm) http://ceng.gazi.edu.tr/~ozdemir
3
Framing
• Fiziksel katmanda veri bitler halinde kaynaktan hedefe gönderilir.
– Bit seviyesinde senkronizasyon • Data link layer bitleri “frame” lere böler. birbirinden ayrılabilir
• Frameler birbirinden ayrılabilir.
– Posta gönderme örneğinde mektubun zarfa konulması framing olarak düşünülebilir
olarak düşünülebilir
• Framing sayesinde bir kaynaktan hedefe giden ya da farklı kaynaklardan başka hedeflere giden
da farklı kaynaklardan başka hedeflere giden mesajlar ayrıştırılır. http://ceng.gazi.edu.tr/~ozdemir
4
Framing
• Her mesaj tek bir frame olabilir.
– Çok büyük bir frame oluşur
Ç
y
ş
– Hata ve akış kontrolü zor olur
– Oluşacak tek bir bit hatası tüm mesajı etkiler
Oluşacak tek bir bit hatası tüm mesajı etkiler
• Genelde bu her mesaj birden çok frame’e bölünür.
– Oluşacak tek bir bit hatası sadece bir frame
Oluşacak tek bir bit hatası sadece bir frame’ii etkiler
http://ceng.gazi.edu.tr/~ozdemir
5
Framing
• Fixed
i d size framing
i f
i
– Frame ler için ayıraçlar kullanmaya gerek yok. Frame
b
boyutu yeterli. t
t li
– Örnek: ATM • Variable size framing
f
– Bu bölümün ana konusu – Frame in başlangıç ve bitiş noktalarını belirlemek için ayıraçlar kullanılmalıdır
– İki ana yaklaşım vardır. Karakter temelli yaklaşım ve İk
kl
d
k
ll kl
bit temelli yaklaşım.
http://ceng.gazi.edu.tr/~ozdemir
6
Karakter Temelli Framing
Karakter Temelli Framing
• Veri
Veri karakterler olarak taşınır (ASCII 8
karakterler olarak taşınır (ASCII 8‐bit)
bit)
• Header (Başlık) kaynak ve hedef adreslerini içerir, trailer (kuyruk) hata kontrol bilgisini içerir. Hepsinin boyutu 8 bit ve katlarıdır • Frameleri birbirinden ayırmak için frame’in başına ve sonuna 8 bitlik “flag”ler
başına ve sonuna 8 bitlik flag ler eklenir eklenir
– Flaglerin içeriği protokole göre değişir
http://ceng.gazi.edu.tr/~ozdemir
7
Karakter Temelli Framing
Karakter Temelli Framing
• K
Karakter temelli framing sadece metin türü kt t
lli f
i
d
ti tü ü
verinin transfer edildiği dönemde popülerdi
• Flag text içinde kullanılmayan herhangi bir Flag text içinde kullanılmayan herhangi bir
karakter olarak seçilirdi
• Günümüzde diğer veri türleri de gönderilmektedir
Günümüzde diğer veri türleri de gönderilmektedir
• Her karakter verinin içinde bulunabilir
• Alıcı frame’in sonuna gelidiğini düşünebilir
Al f
’i
lidiği i dü ü bili
• Önlemek için byte stuffing (byte doldurma) yaklaşımı karakter temelli framing ile birlikte
yaklaşımı karakter temelli framing ile birlikte kullanılır
http://ceng.gazi.edu.tr/~ozdemir
8
Byte/Karakter Stuffing
Byte/Karakter Stuffing
• Flag
Flag karakteri veri içerisinde geçecekse ondan önce özel bir karakteri veri içerisinde geçecekse ondan önce özel bir
karakter eklenir
• Veri bloğu extra bir byte ile doldurulmuş olur
• Eklenen karakter genelde "escape character (ESC)" olarak adlandırılır
• Alıcı ESC karakteri aldığında, yok sayar ve bir sonraki Alıcı ESC karakteri aldığında yok sayar ve bir sonraki
bytedan okumaya devam eder
• ESC karakteri metin içerisinde geçiyorsa ne olur?
• Bunu önlemek için metin içerisinde geçmesi gereken ESC karakterinden önce bir ESC karakteri daha kullanılır.
• Günümüzde Unicode kodlama sistemleri (16 ya da 32 bit Günümüzde Unicode kodlama sistemleri (16 ya da 32 bit
karakter) yaygınlaşmaktadır
• Bu nedenle bit temelli protokoller daha çok kullanılmaya p
ç
y
başlamıştır
http://ceng.gazi.edu.tr/~ozdemir
9
Karakter Temelli Framing
Karakter Temelli Framing
http://ceng.gazi.edu.tr/~ozdemir
10
Bit Temelli Framing
Bit Temelli Framing
• Bir çok protokolde 8‐bitlik 01111110 flag’i frame’in başlangıcını ve sonunu belirtmek için kullanılır
• Karakter temelli yaklaşımda karşılaşılan problemler görülebilir
• Burada stuffing 1 karakter yerine sadece 1 bit ile yapılabilir • Bu strateji bit stuffing olarak bilinir
j
g
• Veri bloğunda 0'ı takip eden 5 tane 1 varsa (bir sonraki bitin değerine bakılmaksızın) mutlaka extra bir 0 eklenir
• Bu sayede flag 01111110
B
d fl 01111110 in veri içinde oluşmasına izin i
ii i d l
ii
verilmez
• Alıcı extra 0 ları temizler
http://ceng.gazi.edu.tr/~ozdemir
11
Bit Temelli Framing
Bit Temelli Framing
http://ceng.gazi.edu.tr/~ozdemir
12
Akış Kontrolü
Akış Kontrolü
• Ak
Akış kontrolü data link layer’ın en önemli k t lü d t li k l
’
ö
li
görevidir
• Gönderilen veri için acknowledgement alınmadan Gönderilen veri için acknowledgement alınmadan
ne kadar veri gönderilebileceğini koordine eder
• Veri akışı alıcıyı boğmamalıdır Veri akışı alıcıyı boğmamalıdır
• Her alıcının belirli bir veri işleme süresi ve bu veriyi saklamak için sınırlı bir hafızası vardır
veriyi saklamak için sınırlı bir hafızası vardır
• Alıcı bu kaynaklar limite ulaşmadan göndericiyi uyarabilmeli ve veri iletimini yavaşlatmalı ya da
uyarabilmeli ve veri iletimini yavaşlatmalı ya da durdurabilmelidir
http://ceng.gazi.edu.tr/~ozdemir
13
Akış Kontrolü
Akış Kontrolü
• Gelen veri kullanılmadan önce kontrol edilmeli l
i k ll l d
k
l dil li
ve işlenilmelidir
• Bu işlemler genelde veri iletim hızından daha y ş
yavaştır
• Her alıcı buffer denen bir hafız bloğuna sahiptir
• Gelen veri işlenene kadar bufferda tutulur
• Buffer dolmaya başladığında alıcı göndericiyi uyararak iletişimi durdurabilir
http://ceng.gazi.edu.tr/~ozdemir
14
Hata Kontrolü
Hata Kontrolü
• H
Hata kontrolü hem hata bulmayı hem de hata t k t lü h
h t b l
h
d h t
düzeltmeyi içerir
• Alıcının hatalı yada kayıp frameler konusunda Alıcının hatalı yada kayıp frameler konusunda
göndericiyi uyarmasını ve bu framelerin yeniden gönderilmesini sağlar
gönderilmesini sağlar.
• Data link layer da hata kontrolü "hata bulunması ve yeniden gönderilmesi"ni
ve yeniden gönderilmesi
ni içerir içerir
• Hata bulunduğunda hatalı frame yeniden g
gönderilir
• Bu işlem automatic repeat request (ARQ) olarak bilinir
http://ceng.gazi.edu.tr/~ozdemir
15
Protokoller
• Gü
Gürültülü (hataya açık) ve gürültüsüz (hatasız) ü tü ü ( ataya aç ) e gü ü tüsü ( atas )
kanallar için çeşitli protokoller vardır.
• Gürültüsüz (hatasız) kanallar olan protokoller Gü ültü ü (h t ) k ll
l
t k ll
gerçek hayatta kullanılmazlar
http://ceng.gazi.edu.tr/~ozdemir
16
Protokoller
• Kolaylık açısından, derste öğreneceğimiz data l lk
d d
ğ
ği i d
link layer protokolleri tek yönlüdür: Bir gönderici ve birde alıcı düğüm
• Sadece acknowledgment (ACK) ve negative g
(
)
g
acknowledgment (NAK) paketleri diğer yönde g
gönderilebilir (alıcıdan gönderici düğüme)
(
g
ğ
)
• Gerçek hayattaki data link layer protokolleri ise çift yönlüdür ACK ve NAKlar piggybacking
ise çift yönlüdür. ACK ve NAKlar piggybacking denen teknikle gönderilir
http://ceng.gazi.edu.tr/~ozdemir
17
Gürültüsüz kanallar
Gürültüsüz kanallar
• Hiç bir frame in kaybolmadığı, tekrarlanmadığı y
ğ
veya bozulmadığı ideal bir kanal • İki protokol
– Simplest Protocol –
Si l t P t l akış yada hata kontrolü yok
k
d h t k t lü k
– Stop‐and‐Wait Protocol – hata kontrolü yok
http://ceng.gazi.edu.tr/~ozdemir
18
Simplest Protocol
Simplest Protocol
• Akış ve hata kontrolü yoktur
• Alıcı her paketi anında işleyebilir (işlem zamanı Alıcı her paketi anında işleyebilir (işlem zamanı
ihmal edilir)
• Alıcı hiçbir zaman gelen paketlerden boğulmaz
Al hi bi
l
k l d b ğ l
• Alıcı ve gönderici taraflardaki algoritmalar g
g
sürekli çalışır • Şekilde protokol özetlenmiştir
Ş kild
t k l ö tl
i ti
http://ceng.gazi.edu.tr/~ozdemir
19
Simplest Protocol
Simplest Protocol
http://ceng.gazi.edu.tr/~ozdemir
20
Gönderici taraftaki algoritma
Gönderici taraftaki algoritma
http://ceng.gazi.edu.tr/~ozdemir
21
Alıcı taraftaki algoritma
Alıcı taraftaki algoritma
http://ceng.gazi.edu.tr/~ozdemir
22
Simplest Protocol Örnek
Simplest Protocol ‐
• Frame tamamen karşıya ulaştıktan sonra diğer g
(
)
frame hemen gönderilir (no ACK). http://ceng.gazi.edu.tr/~ozdemir
23
Stop and Wait Protocol
Stop‐and‐Wait Protocol
• FFrameler alıcıya işleyebileceğinden daha hızı gelmeye l
l
i l bil ği d d h h
l
başlarsa, kullanılana kadar bir yerde bekletilmeleri/saklanmaları gerekir
• Alıcı genelde bir çok kaynaktan gelen frameleri saklayacak kadar büyük buffer’a sahip değildir
• Bu durumda frameler red edilir Bu durumda frameler red edilir
• Alıcı göndericiyi uyararak veri göndermesini yavaşlatmak / durdurmak zorundadır
• Stop‐And‐Wait protokolünde gönderici bir frame gönderir ve alıcıdan onay (ACK) alana kadar başka frame göndermez
• ACK frameleri alıcı taraftan göndericiye doğru gidebilir
ACK f
l i l t ft
ö d i i d ğ
id bili
– half‐duplex link e ihtiyaç vardır
• Şekilde protokol gösterilmektedir
Şekilde protokol gösterilmektedir
http://ceng.gazi.edu.tr/~ozdemir
24
Stop and Wait Protocol
Stop‐and‐Wait Protocol
http://ceng.gazi.edu.tr/~ozdemir
25
Gönderici taraftaki algoritma
Gönderici taraftaki algoritma
• ACK
ACK alana kadar yeni ağ katmanından paket alana kadar yeni ağ katmanından paket
kabul etmez
http://ceng.gazi.edu.tr/~ozdemir
26
Alıcı taraftaki algoritma
Alıcı taraftaki algoritma
http://ceng.gazi.edu.tr/~ozdemir
27
Stop and Wait Protocol Örnek
Stop‐and‐Wait Protocol ‐
http://ceng.gazi.edu.tr/~ozdemir
28
Gürütülü kanallar
Gürütülü kanallar
• Gürültüsüz kanal gerçek hayatta bulunmaz
• Daha önceki protokolleri kullanabilmek için Daha önceki protokolleri kullanabilmek için
– Hatalar yok sayılabilir
– Hata kontrol mekanizması eklenebilir
H k
l
k i
kl
bili
http://ceng.gazi.edu.tr/~ozdemir
29
Stop‐and‐Wait Automatic Repeat Request
• Stop‐and‐Wait Automatic Repeat Request ( p
(Stop‐and‐Wait ARQ) protokolü Stop‐and‐Wait )p
p
Protokolüne basit bir hata kontrol mekanizması ekler
mekanizması ekler. • Bozulmuş frameleri bulmak için ektra bitler eklememiz gerekir (10. Bölüm)
kl
k (
l )
• Alıcı hatalı frame
Alıcı hatalı frame’ii bulursa hiçbirşey yapmaz. bulursa hiçbirşey yapmaz.
Alıcının sessizliği hata olduğu anlamına gelir
• Kayıp framelerin bulunması daha zordur
K
f
l i b l
d h
d
http://ceng.gazi.edu.tr/~ozdemir
30
Stop‐and‐Wait Automatic Repeat Request
• St
Stop‐and‐Wait Protokolü frame’in doğru, sırasında olmayan d W it P t k lü f
’i d ğ
d l
ya da tekrar gönderilmiş olduğunu anlamaz
• Çözüm frame’lere sıra numarası eklemektir
Ç
• Alıcı sıra numarası doğru olmayan bir frame aldığında kayıp yada tekrarlı frameler olduğunu anlar
• Kayıp ve hatalı frame ler tekrar gönderilmelidir
K
h l f
l
k
ö d il lidi
• Alıcı gönderdiği frame’in bir kopyasını saklar ve bir timer başlatır
• Timer dolduğunda gönderilen frame için ACK alınmamışsa, frame yeniden gönderilir (kopya hala saklanır ve timer yeniden başlatılır).
id b l t l )
• ACK lar da kaybolabileceği ve bozulabileceği için ACK ların da extra bitlere ve sıra numaralarına ihtiyacı vardır
y
• Bozuk veya sırasız gelen ACK lar dikkate alınmaz
http://ceng.gazi.edu.tr/~ozdemir
31
Stop‐and‐Wait Automatic Repeat Request
• SSıra numaralarının alabileceği en yüksek değer l
l bil ği
ük k d ğ
önemlidir
• Frame boyutun olabildiğince küçük olması Frame boyutun olabildiğince küçük olması
gerektiğinden, karışıklığa yol açmayacak en küçük sıra numarası aralığı seçilmelidir
sıra numarası aralığı seçilmelidir • Sıra numaraları kendini tekrarlayabilir
• m bit uzunluğunda bir sıra numarası ayrılırsa 0 bit uzunluğunda bir sıra numarası ayrılırsa 0
dan 2m‐1 e kadar sıra numarası elde edilir
• Ancak bu numaralara yerine modulo
Ancak bu numaralara yerine modulo‐2
2 aritmetiğine göre sadece 0 ve 1 kullanarak sıra p
numaraları takip edilebilir.
http://ceng.gazi.edu.tr/~ozdemir
32
Stop‐and‐Wait Automatic Repeat Request
• SSıra numarası olarak x
l k kullanılmış olsun. Sıradaki numara k ll l
l
S d ki
x+1 olacaktır x+2 ye hiçbir zaman ihtiyaç duyulmayacaktır.
• x sıra numaralı frame gönderildikten sonra 3 durum g
oluşabilir:
1.
2.
3.
Frame sorunsuz şekilde alınır ve ACK gönderilir. Gönderici ACK alır ve x+1 numaralı frame gönderilir
alır ve x+1 numaralı frame gönderilir.
Frame sorunsuz şekilde alınır ve ACK gönderilir. ACK bozulur yada kaybolur. Gönderici frame i x sıra numarası ile tekrar göndermek zorunda kalır
göndermek zorunda kalır. Frame bozuk bir şekilde alınır yada kaybolur ve alınmaz. Gönderici frame i x sıra numarası ile tekrar göndermek zorunda kalır
zorunda kalır. • Sadece x ve x+1 e ihtiyaç vardır. x = 0 and x + 1 =1 olarak kullanılabilir.
http://ceng.gazi.edu.tr/~ozdemir
33
Stop‐and‐Wait Automatic Repeat Request
http://ceng.gazi.edu.tr/~ozdemir
34
http://ceng.gazi.edu.tr/~ozdemir
35
http://ceng.gazi.edu.tr/~ozdemir
36
http://ceng.gazi.edu.tr/~ozdemir
37
Örnek
• Bi
Bir sonraki slaytda
ki l td Stop‐and‐Wait ARQ
St
d W it ARQ protokolüne ait t k lü
it
örnek vardır
Frame 0 gönderilmiş ve onaylanmıştır
• Frame 0 gönderilmiş ve onaylanmıştır.
• Frame 1 kaybolmuş ve tekrar gönderilmiştir
• Yeniden gönderilen Frame
Yeniden gönderilen Frame 1 onaylanmış ve timer
1 onaylanmış ve timer
durdurulmuştur
• Frame 0 gönderilmiş ve onaylanmıştır ancak gönderilen ACK kaybolmuştur.
• Gönderici frame yada ACK dan hangisinin kaybolduğunu anlayamaz ve timer bitince Frame
kaybolduğunu anlayamaz ve timer
bitince Frame 0 0
yeniden gönderilir.
http://ceng.gazi.edu.tr/~ozdemir
38
http://ceng.gazi.edu.tr/~ozdemir
39
Örnek 1
Örnek ‐
• Stop‐and‐Wait
ARQ
sistemde
kanalın
g ş ğ 1 Mbps
p ve 1 bit için
ç round trip
p
bantgenişliği
zamanı 20 ms olsun. Bandwidth‐delay product
nedir? Eğer her frame 1000 bit uzunluğunda
ise, kanalın kullanım verimliliği (utilization
percentage) nedir.
nedir
• Bandwidth‐delay product
http://ceng.gazi.edu.tr/~ozdemir
40
Örnek 1
Örnek ‐
• Si
Sistem 20000 bit gönderebilecek kapasitedir 20000 bi ö d bil k k
i di
ancak frame boyutu 1000 bit olduğundan, h h i bi
herhangi bir anda sadece 1000 bit kanal üzerinde d
d
1000 bit k l ü i d
olabilir. Kanalın verimliliği 1000/20000 yani %5 dir
denilebilir.
denilebilir
• Stop‐and‐Wait ARQ protokolünün yüksek b
bantgenişliği veya uzun delay’e sahip kanallarda i liği
d l ’
hi k ll d
kullanılması kaynakların boşa harcanmasına neden olur.
d
l
• Pipelinening olmamasından kaynaklanır http://ceng.gazi.edu.tr/~ozdemir
41
Örnek 2
Örnek ‐2 • Bir önceki örnekte gönderici ACK beklemeden g
y
15 tane frame gönderebilseydi kanalın verimliliği ne olurdu?
• Bandwidth‐delay product hala 20000 bit
Bandwidth delay product hala 20000 bit’dir
dir. 15 frame yada 15000 kanal üzerinde b l
bulunacağından verimlilik 15000/20000 yada ğ
llk
/
%75 olur. http://ceng.gazi.edu.tr/~ozdemir
42
Go Back N ARQ
Go‐Back‐N ARQ
• İletişimin/kanalın
İletişimin/kanalın verimliliğini artırmak için, ACK beklenmeden verimliliğini artırmak için ACK beklenmeden
birden fazla frame gönderilmelidir (pipelinening). • Go‐Back‐N Automatic Repeat Request protokolü kanal üzerinde p
q
p
birden fazla frame olmasını sağlar.
• Gönderilen frame lerin bir kopyası ACK gelene kadar göndericide tutulur
göndericide tutulur • Frameler sıra numaraları ile gönderilir • Header da sıra numarası için m
eade da s a u a as ç
bit yer ayrıldığında 0
b
t ye ay d ğ da 0 da
dan 2m‐1 ee kadar sıra numarası kullanılır
• Sıra numaraları modulo‐2m aritmatiğine göre verilir
• m=4 ise 0‐15 arası sıra numaraları oluşur l
l
– 0, 1,2,3,4,5,6, 7,8,9, 10, 11, 12, 13, 14, 15,0,1,2,3,4,5,6,7,8,9,10..
http://ceng.gazi.edu.tr/~ozdemir
43
Go Back N ARQ
Go‐Back‐N ARQ
• Slidi
Sliding window (kayan pencere) gönderici ve alıcı i d (k
) ö d i i
l
tarafından kontrol edilen sıra numarası aralığını belirlemek için kullanılan soyut bir kavramdır
belirlemek için kullanılan soyut bir kavramdır
– Send sliding window
– Receive sliding window Receive sliding window
• Send sliding window gönderilmiş ve gönderilebilecek p y
y
olan frame lerin sıra numaralarını kapsayan hayali bir kutudur. • Pencerenin maksimum uzunluğu 2
ğ m – 1 dir.
• Pencere uzunluğunun sabit olduğunu kabul edeceğiz (olmayabilirde)
http://ceng.gazi.edu.tr/~ozdemir
44
Go Back N ARQ
Go‐Back‐N ARQ
• Pencere sıra numaralarını 4
Pencere sıra numaralarını 4’ee böler. böler
– En soldaki bölüm ACK ları alnmış frame lerin sıra numaralarıdır. Bunların kopyaları saklanmaz. – 2. Bölüm gönderilmiş and ACK ları alnımamış frame lerin sıra numaralarıdır. Outstanding/bekleyen frame lerdir. – 3. Bölümde ise gönderilebilecek ancak henüz network l d
d l bl k
kh
k
layer dan alınmamış frame sıra numaralarıdır. – 4. ve son bölüm ise sliding window kayana kadar 4 ve son bölüm ise sliding window kayana kadar
kullanılmayacak olan sıra numaralarıdır. • Bu 4 bölüm, 3 değişkenle belirlenir S
,
ğş
f,, Sn,, ve Ssize
• Pencere ACK alındıktan sonra 1 yada daha çok sıra y
numarası kayabilir
– ACK lar kümülatiftir
http://ceng.gazi.edu.tr/~ozdemir
45
Go Back N ARQ
Go‐Back‐N ARQ
http://ceng.gazi.edu.tr/~ozdemir
46
Go Back N ARQ
Go‐Back‐N ARQ
• Receive window sadece alınması beklenen g
frame’i gösterir
http://ceng.gazi.edu.tr/~ozdemir
47
Go Back N ARQ
Go‐Back‐N ARQ
• SSadece göndericide bir tane timer vardır. İlk bekleyen d
ö d i id bi t
ti
d İlk b kl
frame için tutulur.
Alıcı frame’ii doğru olarak alırsa pozitif ACK gönderir.
doğru olarak alırsa pozitif ACK gönderir
• Alıcı frame
• Eğer frame bozuk ya da sıra dışı ise alıcı sessiz kalır ve daha sonra gelen hiç bir frame’i kabul etmez
g
ç
• Gönderici tarafındaki timer dolar
• Gönderici geri ilk bekleyen frame‘e döner ve bekleyen tüm frameleri yeniden gönderir
• Örneğin frame 6 gönderilmiş olsun, frame 3 için tutulan timer dolarsa frame 3 4 5 ve 6 tekrar gönderilir
timer dolarsa, frame 3,4,5 ve 6 tekrar gönderilir
• Alıcı bir kaç frame için birden kümülatif ACK gönderebilir gönderebilir
http://ceng.gazi.edu.tr/~ozdemir
48
Go Back N ARQ
Go‐Back‐N ARQ
http://ceng.gazi.edu.tr/~ozdemir
49
Örnek Kümülatif ACK Örnek ‐
Kümülatif ACK
http://ceng.gazi.edu.tr/~ozdemir
50
Örnek Kayıp frame
Örnek –
Kayıp frame
http://ceng.gazi.edu.tr/~ozdemir
51
Go Back N ARQ
Go‐Back‐N ARQ • Gönderici pencere boyutu 2m den küçük olmalıdır
• Örneğin
ğ m =2 olduğunda pencere boyutu 3 ğ
p
y
olacaktır. Bütün ACK lar kayıp ise, frame 0’ın timer’ii dolduğunda frame 0,1,2 tekrar gönderilir.
timer
dolduğunda frame 0,1,2 tekrar gönderilir.
• Alıcı frame 3 ü beklediği için, gelen frame ler t k
tekrar olarak değerlendirilir.
l k d ğ l di ili
• Eğer pencere boyutu 4 olursa, alıcı frame 0’ı bekler ve tekrar gönderilen frame 0’ı yeni bir ğ
ş
frame olarak değerledirir ve hata oluşur.
http://ceng.gazi.edu.tr/~ozdemir
52
Go Back N ARQ
Go‐Back‐N ARQ http://ceng.gazi.edu.tr/~ozdemir
53
Gönderici algoritması
Gönderici algoritması http://ceng.gazi.edu.tr/~ozdemir
54
Gönderici algoritması g
http://ceng.gazi.edu.tr/~ozdemir
55
Alıcı algoritması
Alıcı algoritması
http://ceng.gazi.edu.tr/~ozdemir
56
Go‐Back‐N ARQ ve
Stop‐and‐
Stop
and Wait ARQ
Wait ARQ
• Stop‐and‐Wait ARQ protokolü aslında Go‐Back‐
N ARQ protokolünün özel bir durumudur
k lü ü ö l bi d
d
• Sadece 2 sıra numarası olan ve gönderici g
pencere boyutu 1 olan Go‐Back‐N ARQ
http://ceng.gazi.edu.tr/~ozdemir
57
Selective Repeat Automatic Repeat Request
• G
Go‐Back‐N
B k N ARQ alıcı tarafındaki işlemleri ARQ l t f d ki i l l i
hafifleten bir protokoldür
• Alıcı sadece tek bir değişkeni kontrol eder
Alıcı sadece tek bir değişkeni kontrol eder
• Herhangi buffer mekanizması kullanmaz • Gürültülü kanallar için bu protokol verimsizdir Gü ül ülü k ll i i b
k l
i i di
• Bir çok frame’in tekrar gönderilmesi verimli olmaz • Gürültülü kanallarda sadece hatalı yada kayıp frame’in gönderilmesi uygundur • Bu protokol Selective Repeat ARQ olarak bilinir
k l l i
l kbl
• Alıcı tarafındaki işlemler daha karmaşıktır
http://ceng.gazi.edu.tr/~ozdemir
58
Selective Repeat Automatic Repeat Request
• SSelective Repeat ARQ da gönderici ve alıcı l ti R
t ARQ d ö d i i
l
pencereleri kullanır
• Gönderici ve alıcı pencerelerinin boyutu 2
Gönderici ve alıcı pencerelerinin boyutu 2m‐1 dir
• m = 4 olursa sıra numaralar 0 ile 15 arasında olur ancak pencere boyutu 8 dir
ancak pencere boyutu 8 dir
• Pencerenin kısalması kanalın doluluk verimliliğini düşmesi anlamına gelir
düşmesi anlamına gelir • Ancak daha tekrar gönderme yapılması bu açığı kapatır kapatır
• Hatalı ve alınmayan frame ler için NACK gönderilir
http://ceng.gazi.edu.tr/~ozdemir
59
Selective Repeat Automatic Repeat Request
• Gönderici penceresi
http://ceng.gazi.edu.tr/~ozdemir
60
Selective Repeat Automatic Repeat Request
• Alıcı penceresi Go‐Back‐N den çok farklıdır: 2m‐1 uzunluğundadır ğ
• Selective Repeat protokolü alıcının pencere boyutu kadar frame’i saklamasına ve sırasız
boyutu kadar frame’i saklamasına ve sırasız gelen framelerin sıralanarak network layer’a gönderilmesine olanak tanır
http://ceng.gazi.edu.tr/~ozdemir
61
Selective Repeat Automatic Repeat Request
• Alıcı penceresi
http://ceng.gazi.edu.tr/~ozdemir
62
Selective Repeat Automatic Repeat Request
http://ceng.gazi.edu.tr/~ozdemir
63
Selective Repeat Automatic Repeat Request
m1
• P
Pencere boyutu neden 2
b t
d 2m‐1
• m = 2 için pencere boyutu 2m/2=2 olmalıdır. • Eğer pencere boyutu 2 ise ve tüm ACK lar kaybolmuş Eğer pencere boyutu 2 ise ve tüm ACK lar kaybolmuş
ise, frame 0 ın timeri dolduğunda frame 0 tekrar g
gönderilir.
• Alıcı frame 2 yi beklediği için bu frame i dikkate almaz
• Eğer pencere boyutu 3 ise ve tüm ACK lar kaybolmuş ise, frame 0 ın timeri dolduğunda frame 0 tekrar gönderilir.
• Alıcıda frame 0 yi beklediği için bu tekrar gönderilmiş Alıcıda frame 0 yi beklediği için bu tekrar gönderilmiş
olan frame 0 hatalı bir şekilde yeni frame olarak kabul edilir
http://ceng.gazi.edu.tr/~ozdemir
64
Selective Repeat Automatic Repeat Request
• Pencere boyutu http://ceng.gazi.edu.tr/~ozdemir
65
Gönderici algoritması
Gönderici algoritması
http://ceng.gazi.edu.tr/~ozdemir
66
http://ceng.gazi.edu.tr/~ozdemir
67
http://ceng.gazi.edu.tr/~ozdemir
68
Alıcı Algoritması
g
http://ceng.gazi.edu.tr/~ozdemir
69
http://ceng.gazi.edu.tr/~ozdemir
70
Örnek Kayıp Frame
Örnek –
Kayıp Frame
http://ceng.gazi.edu.tr/~ozdemir
71
Selective Repeat Automatic Repeat Request
• Veri transferi
http://ceng.gazi.edu.tr/~ozdemir
72
Piggybacking
• Öğ
Öğrendiğimiz tüm protokollerde iletişim tek diği i tü
t k ll d il ti i t k
yönlüdür. • Sadece kontrol amaçlı ACK ve NAK lar diğer yönde Sadece kontrol amaçlı ACK ve NAK lar diğer yönde
gönderilir
• Gerçek hayatta iletişim iki yönlüdür: A düğümü B Gerçek hayatta iletişim iki yönlüdür: A düğümü B
ye B düğümü de A ya veri gönderebilir.
• Piggybacking iki yönlü iletişimin verimliliğini Piggybacking iki yönlü iletişimin verimliliğini
artıran bir tekniktir
• B düğümü de A ya veri gönderirken ayn anda A ya B düğümü de A ya veri gönderirken ayn anda A ya
göndereceği kayıp ve hatalı framelere ait kontrol g
g
bilgisini de gönderebilir. http://ceng.gazi.edu.tr/~ozdemir
73
Piggybacking
http://ceng.gazi.edu.tr/~ozdemir
74