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
© Copyright 2024 Paperzz