Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Veri Bağı Katmanı Chapter 3

Benzer bir sunumlar


... konulu sunumlar: "Veri Bağı Katmanı Chapter 3"— Sunum transkripti:

1 Veri Bağı Katmanı Chapter 3
Veri Bağı Katmanı Tasarım Meseleleri Hata Sezimi ve Düzeltilmesi Temel Veri Bağı Protokolleri Kayan Pencere Protokolleri Örnek Veri Bağı Protokolleri Gray units can be optionally omitted without causing later gaps Revised: August 2011 CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

2 Veri Bağı Katmanı Bir link üzerinde mesajın gönderilmesi ile ilgilidir
Hataları yönetir ve veri akışını düzenler Katman Tasarım Meseleleri .Çerçeveler » Hizmetler » Çerçeveleme Yöntemleri » Hata Denetimi » Akış Denetimi » Physical Link Network Transport Application CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

3 Çerçeveler Veri Bağı katmanı ağ katmanından paketler kabul eder ve bunları çerçeveler haline getirir. Çerçeveler fiziksel katmandan gönderilir. Alıcıda bu işlemin tersi olur. Actual data path Virtual data path Network Link Physical CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

4 Hizmetler Geribildirimsiz Bağlantısız Hizmet
Çerçeve bir bağlantı kurulmadan, hata telafisi yapılmadan gönderilir. Ethernet buna bir örnektir. Geribildirimli bağlantısız hizmet Gerektiğinde yeniden iletimler olur Ör Geribildirimli bağlantılı hizmet Bağlantı kurulur; nadirdir Bağlantı genelde taşıma katmanında kurulur. CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

5 Çerçeveleme Yöntemleri
Byte sayma » Bayrak baytlar, ve bayt doldurma » Bayrak bitler ve bir doldurma » Fiziksel katman kodlama ihlalleri Use non-data symbol to indicate frame CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

6 Çerçeveleme – Bayt Sayma
Çerçeve başlangıcında çerçevedeki bayt sayısı yazılıdır. Basit, ama hatadan sonra tekrar senkronize olmak zordur Expected case Error case CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

7 Çerçeveleme – Bayt doldurma
Özel FLAG Baytları çerçeveleri sınırlar; FLAG karakteri verinin içinde varsa, o zaman öncesine bir özel bir başka karakter konur. Daha uzun, ama yeniden senkronize olması daha kolay. Frame format Need to escape extra ESCAPE bytes too! Stuffing examples CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

8 Çerçeveleme – Bit doldurma
Doldurma işlemi bit seviyesinde yapılır: Bayrak baytın içinde ardışık altı adet 1 var (burada görünmüyor). Veri içinde beş adet art arda 1 gelirse, peşine 0 eklenir. Alıcıda beş ardışık 1’den sonraki 0 silinir Transmitted bits with stuffing Data bits CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

9 Hata Denetimi Akış Denetimi
Hata denetimi hatalı olarak alınan çerçeveleri tamir eder Hataların algılanabilmesi gerekir Tipik olarak onay gelmeyen çerçeveler tekrar edilir Geri bildirim için zamanlama (timer) tutulur Hata sezimi ve yeniden iletim bu konuda görülecektir. - Hata oranı, Link mesafesi, Yapılan iletişim türü, hataların şekli önemlidir. Akış Denetimi Hızlı bir vericinin yavaş alıcıyı boğmasının önüne geçilir Alıcı kabul edebileceği veri hakkında geri bildirimde bulunur Veri bağı katmanında çok gerek yoktur, alıcı veri hızı vericiye benzerdir. Verici gönderebildiği hızda alabilir Akış denetimi veri bağı ve taşıma katmanının konusudur. We’ll get to this later in the chapter (error detection/correction, and elementary data link protocols) CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

10 Hata Sezimi ve Düzeltilmesi
Hata kodları bilinçli fazlalık ekleyerek hataların sezilebilmesini ve/veya düzeltilebilmesini sağlar. Hata düzelten kodlar: Hamming kodları» İkili evrişimsel (convolutional) kodlar» Reed-Solomon ve LDPC kodları Matematiksel olarak karmaşık, gerçek sistemlerde sıkça kullanılır Hata sezen kodlar: Eşlik (Parity) - » Sağlama bitleri (Checksums) - 1’leri sayısı çift olacak şekilde 1 veya 0 sonuna eklenir.» Çevrimsel artıklık kodları (Cyclic redundancy codes) » Hata oranı düşükse hata düzelten kodlara tercih edilir Ör bitlik bloklar (1bit hata ihtimali daha fazla hata ihtimali yok) Hata düzelten r=10 olmalı. Yani 1000 blokta toplam ekstra bit Eşlik biti olursa bütün hatalar sezilir. 1000*1.001*1001= : adet ekstra bit. Yani daha az. CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

11 Hata Sınırları – Hamming Uzaklığı
n bitlik veri n+k bitlik kod kelimesine çevrilir Hamming uzaklığı bir kodu başka bir kod kelimesine çeviren minimum hata sayısıdır. Ör. eşlik biti: Hamming uzaklığı 2 Ör. 10 bitlik 4 kod kelimesi (n=2, k=8): , , , and Hamming uzaklığı 5 Hata sezme ve düzeltme kapasitesi: 2d+1 – d bit hatayı düzeltebilir (2. örnekte 2 bit hata) d+1 – d bit hatayı sezebilir(1. örnekte 1 bit hata) Bir hata düzeltebilmek için 𝑛+𝑘+1 2 𝑛 ≤ 2 𝑛+𝑘 eşitsizliği sağlanmalıdır. Why can a code with distance d+1 detect up to d errors? Because errors are detected by receiving invalid codewords (like for the example). If there are d+1 or more errors then one valid codeword may be turned into another valid codeword and there is no way to detect that an error has occurred. Why can a code with distance 2d+1 detect up to d errors? Because errors are corrected by mapping a received invalid codeword to the nearest valid codeword, i.e., the one that can be reached with the fewest bit flips. If there are more than d bit flips, then the received codeword may be closer to another valid codeword than the codeword that was sent. For example, sending with 2 flips might give which is closest to , correcting the error. But with 3 flips might be received, which is closest to , which is still an error. CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

12 Hata Düzeltme – Hamming Kodları
Hamming kodları 1 bit hatayı düzeltebilen basit bir koddur: Her kontrol biti bir grup veri bitini kontrol eder Her bir kontrol bitine karşılık gelen eşlik (syndrome) kontrol edilerek (varsa) hatanın pozisyonu bulunur. Kural: Pozisyon n: : n-1 tane atla, n (n tane kontrol et n tane atla), Hata düzeltimi nasıl yapılır? Yeni bir kod kelimesi geldiğinde sayaç sıfırlanır. Ondan sonra k=1,2,4,8… numaralı kontrol bitlerine bakılır. Eşlik yoksa k sayaca eklenir . Çünkü mesela 11= dir. Sayaç hala 0 ise hata yoktur. Sayaç ne ise o bitte hata vardır. Patlama halindeki hataları düzeltmek için yatay değil dikey sütunlar halinde iletim yapılır. K çarpı n lik bir matris oluşur. CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

13 Hata Düzeltme – Evrişimsel Kodlar
Kelime değil bitler üzerinden uygulanır Çıkış biti giriş bitlerinin hepsine bağlıdır Alttaki örnekte bir giriş biti başına iki çıkış biti vardır. Alttaki durum geçiş diyagramına karşılık bir Trellis diyagramı çizilir Kod çözümü Viterbi algoritması ile yapılır Popular NASA binary convolutional code (rate = ½) used in … 1 1 1 CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

14 Hata Sezimi – Eşlik (1) Eşlik biti kod kelimesinde 1’ler çift sayıda olacak şekilde eklenir Çift eşlik Ör:  Alıcıda toplam doğru mu diye kontrol edilir Tek sayıda hatalar sezilebilir Ör: 1 hata, ; detected, sum is wrong Ör: 3 hata, ; detected sum is wrong Ör: 2 hata, ; not detected, sum is right! Error can also be in the parity bit itself Random errors are detected with probability ½ CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

15 Hata Sezimi – Eşlik (2) N eşlik biti serpiştirilerek N adet ardışık hata düzeltilebilir Eşlik bitleri ardışık olmayan bitlerden hesaplanır N bitlik ardışık hata bile düzeltilebilir CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

16 Hata Sezimi– Sağlama Toplamı
Sağlama toplamı veriyi N bitlik kelime olarak alır ve toplam veriye N adet sağlama biti ekler (kelimelerin mod 2N toplamı) Ör: IP başlığındaki 16 bitlik sağlama toplamı Özellikler: Hata seziminin iyileştirilmesi N ardışık hatayı düzeltebilir Rastgele hataları 1-2N ,ihtimalle düzeltir Sistematik hatalara dayanıksız ör. eklenen sıfırlar CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

17 Hata Sezimi– CRC Kodları (1)
İletilen çerçeve bir polinom olarak görüldüğünde bu polinomu bir üreteç polinomuna tam olarak bölünecek şekilde tam olarak bitler eklenir Start by adding 0s to frame and try dividing Offset by any remainder to make it evenly divisible CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

18 Hata Sezimi– CRC Kodları (2)
İki yerde hata olduysa E(x)=x^i+x^j , E(x)=x^j(x^i-j + 1), o zaman iki hatayı sezebilmek için (G(x) x’i bölemez, onu biliyoruz) G(x)’in belli bir k değerine kadar x^k+1’i bölememesi lazım. Mesela x^15+x^14+1 polinomu k=32768 değerine kadar bu polinomlari bölemez. Tek sayı kadar yerde hata olursa (ör: x^5+x^2+1) G(x)’i x+1’in bir kati seçebiliriz. İspat: E(x)=(x+1)Q(x) şeklinde faktörize edebildiğimizi varsayalım. E(1)=0 olur. Halbuki, E(x) tek sayıda elemandan oluştuğu için E(1)=1 olmalıdır. O halde böyle bir faktorizasyon mümkün değildir. E(x) x+1 e bölünemez. Daha da önemlisi r kontrol bitli bir kod, bütün r ve daha küçük patlama hatalarını düzeltir (xi(xk-1+…+1)) G(x)’de x0 terimi olursa xi faktörü olmaz. k, r’den küçük olursa Polinom G(x)’e hiçbir zaman bölünemez. IEEE 32,26,23,22,16,12,11,10,8,7,5,4,2,1,0 : 32 ve daha az patlamalı hataları ve bütün tek sayılı hataları düzeltebilir. CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

19 Temel Veri Bağı Protokolleri
Basitten karmaşığa : 3 adet protokol Varsayımlar Fiziksel, Veri bağı ve Ağ katmanı bağımsız ama iletişim kuran işlemlerdir. Aralarında mesajlaşarak haberleşiyorlar Çoğunlukla fiziksel ve veri bağı katmanları bir network çipinde bulunur, ağ katmanı ise ana CPU’dadır. Sadece A kullanıcısından B’ye uzun bir mesaj gönderilmektedir, İlerde B’den de A’ya aynı anda veri gönderimi işlenecek. Veri her zaman gönderilmeye hazırdır. A’nın veri bağı katmanı ağ katmanından veri istediği zaman her zaman bu istek olumlu karşılanır. Güvenli ve bağlantı temelli bir hizmet varsayılır. Bilgisayarlar hiçbir zaman çökmez. Veri bağı için ona ağ katmanından gönderilen her bit, gönderilmesi gereken bir veridir. Veri bağı paketi aldığı, çerçevelere bölüp, her çerçeveye bir başlık(bilgi) ve kuyruk(sağlama toplamı) ekler. Sağlama toplamını yazılım değil donanım tarafından koyulur. CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

20 Bağ Katmanı Ortamı(1) Genellikle Ağ Arayüz Kartı veya İşletim Sistemi Sürücüsü olarak gerçeklenir, Ağ Katmanı (IP) genellikle işletim sistemi yazılımıdır CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

21 Bağ Katmanı Ortamı (2) Bağ katmanı protokolü gerçeklemeleri kütüphane fonksiyonları kullanır (protocol.h) kodunu inceleyin Boolean(true false): doğru yanlış seq_nr (integer): çerçeve numaraları (0,…, MAX_SEQ) packet (char array): en fazla MAX_PKT tane bit içerebilir frame_kind{data, ack, nack}: çerçevede veri olup olmadığını gösterir frame: (kind(frame_kind), seq(seq_nr), ack(seq_nr), info(packet)) Grup Kütüphane Fonksiyonu Açıklama Network layer from_network_layer(&packet) to_network_layer(&packet) enable_network_layer() disable_network_layer() Ağ katmanından bir paket alıp gönder Alınan paketi ağ katmanına gönder (CHKSM ) Let network cause “ready” events Prevent network “ready” events Physical layer from_physical_layer(&frame) to_physical_layer(&frame) Gelen mesajı fiziksel katmandan al Giden çerçeveyi fiziksel katmana gönder Events & timers wait_for_event(&event) start_timer(seq_nr) stop_timer(seq_nr) start_ack_timer() stop_ack_timer() Wait for a packet / frame / timer event Start a countdown timer running Stop a countdown timer from running Start the ACK countdown timer Stop the ACK countdown timer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

22

23 Kısıtlamasız Tek yönlü protokol
Optimistik bir protokol (p1) Hatasız kanali alıcı verici kadar hızlı Tek yönde veri transferi var İşlem zamanı sıfır kabul edilir. Sonsuz hafıza vardır. Sıra numarası ve ACK kullanılmamıştır. Tek olay türü frame_arrival’dır. Üç işlem vardır. Network katmanında paketi al, çerçeve oluştur ve gönder. This is essentially what Ethernet does – just blast packets and receive as quickly as possible CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

24

25 Tek Yönlü Gönder-Bekle Protokolü
Bu protokol (p2) hızlı ileticinin yavaş alıcıyı boğmasına engel olur Her seferinde tek paket iletilir - stop-and-wait Burada sonsuz işlemci hızı varsayımını kaldırıyoruz. Akış denetimi var Alıcının işlem yaptığı Δt zamanında hiçbir paket gelmemeli. Alıcı hazır olduğunda dummy çerçeve (ack) gönderir (feedback) Trafik tek yönlüdür ama geri besleme çerçeveleri ters yönde gider. Veri bağı tek bir hatta hizmet verse ve senkronize bir iletişim olsa protokol 1’de paket gönderimine sabit bir gecikme koyularak problem çözülürdü, ama bu pratikte pek mümkün değildir. This is an intermediate protocol in which we’ve dealt with one issue (flow control) but not another (error control). It is instructive, but does not represent any real protocol (as it will deadlock if there are errors). CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

26

27 Gürültülü Kanallar için Gönder-Bekle (1)
Burada kanalın hatasız olduğu varsayımını kaldırıyoruz. Ama bir hata olduğunda alıcının bunu fark edeceğini varsayıyoruz. Bu durumda yine bir zamanlayıcı gerekir ama gereken şeyler bununla kalmaz. Gönderilen geri besleme mesajının da kaybolma ihtimali var. Bu durumda gönderilen paket iki defa alınabilir. Bunun çözümü her çerçeveye bir sıra numarası koymaktır. Peki çerçeve numarası için kaç bit ayrılmalı? Çok ayırırsak bunun ifadesi için çok bit ayırmamız gerekir. Bu protokolde gönderici m. çerçeve için onay almadıkça m+1inci çerçeveyi göndermez. Bu yüzden 1 bit yeter. Bu durumda çerçeve no’ları … olur. Göndericiyi m+2. çerçeveyi göndermek için tetikleyen eden şey m+1 in ACK’inin gelmesi. Next_frame_to_send ve frame_expected hafızada tutulur. Bu protokole ARQ (automatic repeat request) veya PAR (positive acknowledgement with retransmissions) deniyor. ARQ is also called PAR (Positive Acknowledgement with Retransmission) CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

28

29

30 Stop and Wait’in Doğruluğu
Örnek  Olası Problemler ACK kaybolursa aynı paket iki defa gönderilir  Çözüm: Sıra no. Timeout değeri  TACK’den küçük olabilir Çözüm: ACK numarası

31 Stop and Wait’in Verimliliği
Hatasız iletim TACK=dprop+dframe+dproc+dprop+dACK+dproc TACK=2(dprop+dproc)+dframe+dACK Varsayımlar dACK<<dframe dproc=0 Hatalı iletim Paket ve/veya ACK hatalı giderse Timeout süresi T olsun (v-1) defa hatalı iletim olsa DACK+(v-1)xT zaman geçer ve bu sürenin sadece dframe kadarlık kısmı faydalıdır.

32 … Örnekler ATM WAN: 53B çerçeve, R=155.52 Mbps, D=1000km c=3x108 m/sn
LAN: 1000bit, R=10Mbps, 100m<D<10000m Uydu: 50kbps, 500msn gecikme 1000 bit çerçeve Sonuç Çerçeve zamanı küçük ve yayılım zamanı büyükse stop and wait daha verimsiz olur

33 İki Yönlü İletişim İki yönlü veri trafiğini sağlamanın bir yolu kanalı ikiye bölüp iki tane tek yönlü trafikten iki yönlü bir trafik elde etmektir. Bu durumda veriler bir kanalda ACK’ler diğer kanaldan gider, ama diğer kanal boşa gider. Bunun bir çözümü veri ve kontrol paketlerini aynı kanaldan göndermektir. Başlığa bakılarak çerçevenin çeşidi anlaşılabilir. Burada ikinci bir geliştirme yöntemi sudur: gönderilecek onay paketi bir sonraki veri paketinin arkasına eklenerek gönderilebilir. Buna piggybacking (sırtında taşıma) denir. Bu sayede bir kaç bitlik ACK mesajı için yeni çerçeve başlıkları ve kodlamalar yapmaya gerek kalmayacaktır. Burada en önemli problem bir sonraki piggyback yapılacak paketin ne zaman geleceğinin belli olmamasıdır. Bu durumda sabit bir süre beklemek (ack timer) , problemi çözecektir. O süreden önce yeni paket gelirse piggybacking yapılır, yoksa yapılmaz. CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

34 Kayan Pencere Kavramı (1)
Yukarıdaki verimsizliğe çözüm: pipelining denir. O anda gönderip de ACK almadığı veya paketlerin listesi tutulmalı. gönderici penceresi Gönderilen, gönderilebilecek ama daha ACK almamış paketler. Yeni bir paket ağ katmanından geldiğinde bir sonraki numara verilir. Bir ACK geldiğinde alt seviye bir artırılır. Pencere uzunluğu kadar çerçeveyi tutacak hafıza Bu hafıza dolduğu zaman ağ katmanında girişler geçici olarak kapatılır. Kayıp. Aynı şekilde alıcı da almaya izinli olduğu çerçevelerin numaralarını tutar (alınan pencere). Pencerenin en alt numarasına sahip çerçeve geldiği zaman pencere bir artırılır. Alıcı penceresi her zaman ilk baştaki uzunluğunda kalır. Pencere uzunluğunun 1 olması , çerçevelerin sırasıyla kabul edildiğini gösterir. (Başka çerçeve kabul edilmez.) İki pencere aynı ilk ve son numaraya ve aynı uzunluğa sahip olmak zorunda değildir. W_S ve W_R Gönder-bekle protokolünde pencere boyu 1’dir. CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

35 Kayan Pencere Kavramı (2)
Alıcı ve vericideki kayan pencereler Ör. Pencere uzunluğu 1 ve 3 bit sıra numarası var Gönder bekle (W=1) uzun hatklar için verimsizdir En iyi W değer Bant-Gecikme çarpımına bağlıdır (BD) W ≥ 2BD+1 olmasını isteriz .. Sender Receiver At the start First frame is sent First frame is received Sender gets first ack CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

36 Bir bitlik Kayan Pencere Protokolü (p4)

37 Bir bitlik Kayan Pencere Protokolü

38 Bir bitlik Kayan Pencere Protokolü
frame_expected: beklenen çerçeve. while true döngüsünden önce bir kullanıcı başlangıç olarak bir paket gönderir. A’nin timeout suresi çok kısaysa Seri halinde seq=0, ack=1 çerçeveleri gönderilir. İlk paket B’ye ulaşırsa frame_expected=1 yapılır. Bundan sonra gelen her 0 paketleri reddedilir, çünkü 1 numaralı paketler beklenmektedir. Her gelen paketten sonra B, seq=0, ack=0 paketini tekrar gönderir. Sonunda bunlardan birisi A’ya ulaşır.

39 Bir bitlik kayan pencere protokolü (3)
İki senaryo p4’teki bazı detayları gösteriyor: Aynı anda başlamak [sağ] fazladan gönderimler nedeniyle doğru ama yavaş işleyişe neden oluyor (normal [sol] işleyişe göre) Time Normal case Correct, but poor performance Notation is (seq, ack, frame number). Asterisk indicates frame accepted by network layer . CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

40 3.4.2: Go Back n Protokolü Burada paketler pipelining yöntemiyle ardı ardına gönderilir, ACK alınamayan ilk paketten sonraki bütün paketler tekrar gönderilir. Bu paketlerin gönderici hafızasında tutulması Bu durumda pencere genişliği: WS=DACK/dframe olarak belirlenir. WR=1 (Alıcı alamadığı ilk paketten sonrasını dikkate almaz.)

41 Go Back n Pencereler Sıra no. Pencere uzunluğu ilişkisi
Gönderici penceresi: {Silk,Silk+1, …} =<WS Silk: Gönderilen ama henüz cevap gelmeyen en eski çerçeve Çerçeve dolduğu zaman yeni çerçeve gönderilmez Alıcı penceresi {R} Bu pencere dışından gelen çerçeveler kesinlikle kabul edilmez. Bu geldiği zaman bir sonraki beklenmeye başlanır Sıra no. Pencere uzunluğu ilişkisi Az bitle ifade etmek için az sıra no. kullanmalıyız Ama elimizdeki bütün çerçeveler ayrı no’lu olmalı Sıra no sayısı çerçeve uzunluğundan en az bir fazla olmalı (neden?)

42 Protocol 5 Ağ katmanının paketi olduğunda: network_layer_ready event’i
enable_network_layer, disable_network_layer fonksiyonları Pencere uzunluğunun MAX_SEQ+1 değil de MAX_SEQ olmasının sebebi yukarıda açıklanmıştı. Gönderici buffer tutmalıdır. Bu protokol her zaman ACK’leri piggyback yapacak ters yönde trafik olduğu varsayımını yapıyor. Bu protokolde ACK beklenen bir kaç paket olduğu için her paket için ayrı saat tutulmalıdır. Bu da bir linked list kullanılarak gerçekleştirilebilir.

43

44

45

46

47 3.4.2: Selective Repeat Protokol 5: kanal durumu kötüyse çok fazla enerjiyi ve bant genişliğini yeniden iletimlere harcar. Alıcı hasarlı çerçevelerden sonra gelen düzgün çerçeveleri saklamalı. Selective repeat: Göndericinin zamanlayıcısı dolduğunda sadece o tepki alınamayan çerçeve geri gönderilir. ACK’in yanında ayrıca NAK tanımlanır. Sekil (b)’de 3. çerçeve geldiği zaman, 2.’nin gelmediği fark edilir. 2 için NAK gönderilir ve 3 saklanır. 4, 5 geldiği zaman da onlar da depolanır. NAK göndericiye ulaştığı anda 2 tekrar gönderilir. 2 geldiği anda 2,3,4,5 ağ katmanına gönderilir ve 5 için ACK gönderilir. NAK kaybolursa timeout olur ve 2 tekrar gönderilir. Bu durumda alıcının da hafızası olmalıdır. Bant az olduğunda selective repeat, hafıza az olduğu zaman go back n kullanılır. Gönderici çerçevesi İlk hane: Gönderilen ama karşılık alınmayan en eski çerçeve Alıcı çerçevesi İlk hane: Henüz alınmayan en eski paket

48 Protocol 6 Hem gönderici hem alici pencere tutarlar.
Göndericinin penceresi 0’dan MAX_SEQ’e kadar değişir, alicininki hep MAX_SEQ’tir. Pencerenin her bölmesinde bir bit vardır , bu bit 1 ise o çerçeve gelmiştir.(S_l, S_u)(R_l, R_u) Gönderici pencere dışındaki bir çerçeve için gelen ekleri reddeder Yeni çerçeve geldiğinde önce pencere içine denk gelip gelmediği kontrol edilir, sonra da daha önce alınıp alınmadığı kontrol edilir. İkisinin de cevabi evet ise paket yüklenir. Alıcı ise pencere dışında gelen çerçeveleri reddeder Sorun: Diyelim ki ilk 7 paket doğru bir şekilde alindi ama ACK çerçevesi yolda kayboldu. BU arada alici penceresi (b)’deki gibi oluyor. Timeout olduktan sonra gönderici tekrar 0’i gönderiyor, peki bu paket ilk o numaralı paket mi yoksa 8’inci paket mi? pencere uzunluğu sıra numaraları sayısının en fazla yarısı olmasıdır. (MAX_SEQ+1)/2. Ayni zamanda gereken kuyruk uzunluğu ve timer sayısı da pencere uzunluğu kadar olmalıdır, sıra numarası kadar değil.

49 Protocol 6 Protokol 5’te her ACK bir mesaja ekleniyordu, ama trafik hızı yavaşsa böyle bir şey her zaman mümkün olmaz. Protokol 6’da bu sorun start_ack_timer ve ack_timeout_event ile çözülür. Gelmesi gereken bir çerçeve geldiğinde zamanlayıcı baslar. ACK timer’i çerçeve timer’inin suresinden kısa olmalıdır. Protokol 6 , 5’e göre hatalarla daha iyi uğraşır. Hata olduğundan şüphelenildiği zaman NAK gönderilir. Zarar görmüş bir çerçeve gelmiş olabilir veya beklenenlerden farklı bir çerçeve gelmiş olabilir. Alicinin daha önce bir çerçeve için NAK gönderip göndermediğini bilmesi lazım. Zamanlayıcı uzunluğu kısa olursa çok retransmission olur, uzun olursa da çok bos durulur.(frame_timer> ack_timer) Hangi çerçevenin geciktiğini bilmek de zordur.

50 Go Back N’in Verimliliği
Hatasız durum Hatalı Durum: Hata ihtimali p olsun Seri halinde doğru iletimler Ardından timeout

51 Selective Repeat (1) Receiver accepts frames anywhere in receive window Cumulative ack indicates highest in-order frame NAK (negative ack) causes sender retransmission of a missing frame before a timeout resends window CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

52 SONET Veri Bağı Katmanı
Packet over SONET, IP paketlerini SONET fiber optik bağlantılarından göndermek için kullanılır Çerççeveleme için PPP (Point-to-Point Protocol) kullanılır Protocol stacks PPP frames may be split over SONET payloads CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

53 Point to Point Protocol: PPP
Byte dolgusu, bayrak baytı Adres kısmi: ;dir çünkü adres atamaya gerek yok. Sonraki kısmı numarasız bağlantı için, yani hata kontrolü yapılmaz. Kablosuzda numaralı kullanılabilir. LCP başlangıçta müzakere yapar ve bunların gereksiz yere gönderilmesini önler. Protokol kısmı: Hangi protokolün kullanılacağı belirtilir. 2 bayt olabilir ama LCP pazarlık yaparak bunu bir bayta indirebilir 0la başlayanlar ağ katmanı protokolleridir. Checksum

54 PPP (2) Bağlantı başlatma ve bitirme State machine for link control
CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

55 ADSL (1) Genişbant Internet için yerel hatlarda yaygon şekilde kullanılır ADSL müşteri modeminden DSLAM’e (ISP) kadar çalışır IP paketleri PPP ve AAAL5/ATM üzerinden gönderilir CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

56 ADSL (2) PPP verisi AAL5 çerçeveleri halinde ATM hücreleri üzerinden gönderilir: Atm kısa sabit uzunluklu (53 Bayt) hücreler gönderem bir link katmanıdır; her hücrenin bir sanal devre belirteci vardır AAL5 paketleri ATM üzerinden göndermek için bir formattır PPP çerçevesi AAL5 çerçevesine dönüştürülür (PPPoA) Re ATM: ATM was a major technology in the 1990s that was hyped to win in the convergence of the Internet and telecommunications, but IP won instead. The short, fixed-size cells give flexibility (can mix voice and data without having the voice wait for a whole data packet). ATM is now used in niches such as ADSL and WAN links. AAL5 frame is divided into 48 byte pieces, each of which goes into one ATM cell with 5 header bytes CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

57

58 0-5 numaralı çerçeveler A’dan B’ye Go Back n protokolü ile gönderilsin
0-5 numaralı çerçeveler A’dan B’ye Go Back n protokolü ile gönderilsin. Pencere boyu W=3, çerçeve süresi 1 birim, A’dan B’ye ve B’den A’ya yayılım süresi 2şer birim, zamanlayıcı süresi 6 birim olsun. 1 ve 3 numaralı çerçevenin kendisinin (ilk gönderilişlerinde) ve 2 numaralı çerçeve için gönderilen ilk ACK’in kaybolduğu durumda 0-5 numaralı çerçevelerin gönderilmesini aşağıdaki şemada oklarla gösteriniz.

59 End Chapter 3 CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011


"Veri Bağı Katmanı Chapter 3" indir ppt

Benzer bir sunumlar


Google Reklamları