Veri Bağı Katmanı Chapter 3

Slides:



Advertisements
Benzer bir sunumlar
TCP/IP Mimarisi ve Katmanları
Advertisements

PROTOKOL, AĞ YAPILARI.
OSI Referans Modeli Açık Sistem Bağlantıları (Open Systems Interconnection - OSI ) Bilgisayarlar arası iletişimin başladığı günden itibaren farklı bilgisayar.
BBY 302 Bilgi Teknolojisi ve Yönetimi
AES (Advanced Encryption Standart)
Network Layer Bölüm Ağ Katmanı Computer Networking: A Top Down Approach 4 th edition. Jim Kurose, Keith Ross Addison-Wesley, July 2007.
TCP (Transmission Control Protocol)
 Meltem KORCAY  Ayşe KUBİLAY
Yard. Doç. Dr. Şirin Karadeniz
Veri İletiminde Hata Kontrol Yöntemleri
Numbers of Opcodes Nihal Güngör.
Bölüm 4 – Kontrol İfadeleri:1.kısım
OSI Modeli Farklı bilgisayarların ve standartların gelişmesi ile sorunların ortaya çıkması nedeniyle ISO (International Organization for Standardization),
BİLİŞİM AĞLARI VE VERİ HABERLEŞMESİ
AĞ PROTOKOLÜ.
BTP 108 BİLGİSAYAR AĞ SİSTEMLERİ AĞ KAVRAMI Birden çok bilgisayarın birbirine bağlı olarak kullanılmasıyla oluşturulan çalışma biçimine bilgisayar ağı.
Karar ifadeleri ve Döngüler
SOME-Bus Mimarisi Üzerinde Mesaj Geçişi Protokolünün Başarımını Artırmaya Yönelik Bir Algoritma Çiğdem İNAN, M. Fatih AKAY Çukurova Üniversitesi Bilgisayar.
2- OSI BAŞVURU MODELİ & TCP/IP MODELİ
Open Systems Interconnection
Bölüm 3 – Yapısal Programlama
Kablosuz Kanallarda Kodlama
5. Bölüm Link Katmanı ve LAN’ler
Veri Yapıları ve Algoritmalar
Yönlendirici Mimarisi
( HATA VE AKIŞ KONTROLU – PROTOKOLLER – AĞ YAPILARI )
Bölüm 2 – Kontrol Yapıları
Akış Kontrol Mekanizmaları
Anahtar link-katmanı cihazı: hublardan daha zeki, aktif rol üstlenir
MESAJ GEÇİŞİ(MESSAGE PASSİNG)
HATA DÜZELTME TEKNİKLERİ
Öğr. Gör. Dr. Şirin Karadeniz
Adresindeki HTTP ve DNS appletleri
3. Bölüm Taşıma Katmanı Computer Networking: A Top Down Approach 4th edition. Jim Kurose, Keith Ross Addison-Wesley, July Transport Layer.
Taşıma Katmanı Öğr. Gör. Mustafa SARIÖZ
BLM619 Bilgisayar Ağları ve Uygulamaları
NAT: Network Address Translation (Ağ Adres Dönüşümü)
TCP/IP – DHCP Nedir?.
Tabanbanttan Sayısal İletim
TCP Akış Kontrolü Akış kontrolü
Güvenli veri transferinin esasları
Chapter 5. Ağ Protokolleri
Outline 4.1 Giriş 4.2 Algoritmalar 4.3 Pseudocode 4.4 Kontrol İfadeleri 4.5 if tek-seçimli ifadeler 4.6 if else seçimli ifadeler 4.7 while döngü ifadeleri.
Network Bölümlemek. Network Bölümlemek Adres yönetimi kolaylığı, güvenlik sağlamak ve performans artışı sağlamak için Networkleri küçük parçalara böleriz.
ÇOK KATMANLI MİMARİLER. Katman: Ortak işi yapan kodların bir yerde toplanması Örneğin hemen hemen her projemizde veri tabanı kullanırız, bunun için veritabanı.
Ethernet Anahtarlama.
AĞ TEMELLERİ BÖLÜM 2 – AĞ TÜRLERİ
OSI Modeli u TCP/IP protokolünün farklı katmanlarını incelemeden önce, herkes tarafından kabul edilen referans bir noktaya ihtiyacımız var. International.
Bileşik Mantık Devreleri (Combinational Logic)
Lınk layer ProtoCol (ARP,INARP) YUNUS EMRE BAYAZIT.
B İ L İŞİ M S İ STEMLER İ GÜVENL İĞİ (2016) PROF. DR. ORHAN TORKUL ARŞ. GÖR. M. RAŞIT CESUR.
Ağ Donanımları Ağ Nedir ? Ağ Donanımları Bridge Hub Switch Router
Ağ Temelleri Semineri erbiL KARAMAN. Gündem 1. İnternet 2. TCP / IP 3. Ağ Analizi 4. Ağ Güvenliği.
TCP/IP. Network Katmanı ● Bu katmanda IP'ye göre düzenlenmiş veri paketleri bulunur. ● İletim katmanından gelen veriler burada Internet paketleri haline.
OSI Modeli Hafta3 OSI Model.
Öğretim Görevlisi Alper Talha Karadeniz Ağ Temelleri
Sunucu İşletim Sistemleri-2
OSI Modeli 6. Hafta Dersi.
OSI Modeli Öğr. Gör. Ferdi DOĞAN.
OSI Modeli Hafta3 OSI Model.
Doğu Akdeniz Üniversitesi Bilgisayar Ve Teknoloji Yüksek Okulu
ALİ ÖRTÜL BİLİŞİM NOTLARI
Hata Denetim Kodlaması
Ağ Temelleri 2. Hafta Dersi -Ağ nedir? -İletim Yöntemleri -Ağ Topolojileri
Bilgisayar Mühendisliğine Giriş
OSİ Modeli.
NİŞANTAŞI ÜNİVERSİTESİ
ETHERNET KARTI(AĞ KARTI)
Raptor - Reed-Solomon Göndermede Hata Düzeltim Kodları (FEC)
Sunum transkripti:

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

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

Ç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

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. 802.11 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

Ç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

Ç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

Ç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

Ç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

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

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. 1000 bitlik bloklar (1bit hata ihtimali 0.001 daha fazla hata ihtimali yok) Hata düzelten r=10 olmalı. Yani 1000 blokta toplam 10000 ekstra bit Eşlik biti olursa bütün hatalar sezilir. 1000*1.001*1001=1002001 : 2001 adet ekstra bit. Yani daha az. CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

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): 0000000000, 0000011111, 1111100000, and 1111111111 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 0101010101 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 0000000000 with 2 flips might give 1100000000 which is closest to 0000000000, correcting the error. But with 3 flips 1110000000 might be received, which is closest to 1111100000, which is still an error. CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

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=1+2+4+8 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

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 802.11 … 1 1 1 0 1 1 1 0 1 … CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Hata Sezimi – Eşlik (1) Eşlik biti kod kelimesinde 1’ler çift sayıda olacak şekilde eklenir Çift eşlik Ör: 1110000  11100001 Alıcıda toplam doğru mu diye kontrol edilir Tek sayıda hatalar sezilebilir Ör: 1 hata, 11100101; detected, sum is wrong Ör: 3 hata, 11011001; detected sum is wrong Ör: 2 hata, 11101101; 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

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

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

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

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

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

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

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

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

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

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ı 0 1 0 1 0 1… 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

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ı

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.

… Ö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

İ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

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

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

Bir bitlik Kayan Pencere Protokolü (p4)

Bir bitlik Kayan Pencere Protokolü

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.

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

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.)

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?)

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.

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

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.

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.

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

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

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

Point to Point Protocol: PPP Byte dolgusu, 01111110 bayrak baytı Adres kısmi: 11111111;dir çünkü adres atamaya gerek yok. Sonraki 00000011 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

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

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

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

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.

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