Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
Adresindeki HTTP ve DNS appletleri
Adresindeki HTTP ve DNS appletleri HTTP APPLET DNS APPLET 3:TAŞIMA KATMANI
2
Seçici Tekrarlama (SR)
Alıcı doğru olarak alınan paketleri tek tek ACK’ler Alıcıda paketleri depolar Gönderici sadece ACK alamadığı paketleri gönderir Her ACK’lenmeyen paket için gönderici zamanlayıcısı var Gönderici penceresi N ardışıl sıra numarası Burada da gönderilen paket sayısını sınırlar 3:TAŞIMA KATMANI
3
Seçici tekrarlama: gönderici ve alıcı pencereleri
ACK’ lendi Gönderilecek Gönderildi fakat henüz ACK’ lenmedi Henüz gönderilemez a) Göndericinin sıra numaraları Sıralama dışı(depolandı) ACK’lenmişti Kabul edilebilir pencere içinde Bekleniyor, henüz gelmedi Kullanılamaz b) Alıcının sıra numaraları 3:TAŞIMA KATMANI
4
Seçici tekrarlama 3:TAŞIMA KATMANI
5
Seçici tekrarlama çıkmazı
Örnek: Sıra no: 0, 1, 2, 3 Pencere büyüklüğü=3 Alıcı için her iki senaryoda aynı Yanlış olarak aynı veriyi yeni olarak gönderir (a) Q: sıra numarası ve pencere büyüklüğü arasındaki ilişki ne olmalı? K>2W 3:TAŞIMA KATMANI
6
Seçici Tekrarlama: Java uygulaması
3:TAŞIMA KATMANI
7
TCP: RFC: 793, 1122, 1323, 2018, 2581 Noktadan-noktaya:
Bir gönderici ve bir alıcı güvenilir, sıralı akış: Boru hattı: TCP sıkışıklık ve akış kontrolü pencere büyüklüğünü belirler Gönderici ve alıcı buffer’ları full dupleks (çift yönlü) veri: Aynı bağlantı üzerinden çift yönlü veri akışı MSS: maximum segment size (maksimum segment büyüklüğü) bağlantılı: handshaking (el sıkışma) Akış kontrolü: Gönderici alıcının kapasitesini aşmaz 3:TAŞIMA KATMANI
8
TCP segment yapısı kaynak port # hedef port # Uygulama datası
32 bits Uygulama datası (uzunluğu değişken) sıra numarası acknowledgement numarası Alıcı penceresi Urg data pnter Kontrol toplamı F S R P A U head len not used seçenekler (uzunluğu değişken) Veri byteları İle belirlenir (segmentlerle değil!) Alıcının kabul edeceği byte miktarı RST, SYN, FIN: Bağlantı kurulumu (kurma, yıkma komutları) Internet Kontrol toplamı (UDP’deki gibi) 3:TAŞIMA KATMANI
9
TCP sıra numaraları ve ACK’ler
Segment datasındaki ilk byte’ın veri akışındaki byte numarası ACK’ler: Diğer taraftan beklenen bir sonraki byte’ın sıra numarası toplu ACK Q: alıcı sırasız gelen paketleri ne yapar? TCP bu konuda herhangi birşey söylemez, uygulayana bağlı Host A Host B kullanıcı veri gönderiyor Seq=42, 8 byte veri host veriyi aldığını ACKler ACK=50 host ACK’i alır ve sonraki veriyi gönderir Seq=50, 15 Byte veri zaman 3:TAŞIMA KATMANI
10
TCP RTT ve Zaman aşımı Q: RTT’yi nasıl tahmin edebiliriz?
Q: TCP zaman aşımı değeri nasıl ayarlanmalı? RTT’den büyük olmalı Fakat RTT değişken Çok kısa: erken zaman aşımı Gereksiz yeniden iletim Çok uzun: segment kaybına yavaş reaksiyon Q: RTT’yi nasıl tahmin edebiliriz? SampleRTT: segment gönderildikten ACK alınana kadar ölçülen süre Yeniden gönderimleri gözardı et SampleRTT çok değişken, biz tahmini RTT’nin daha yumuşak değişimler göstermesini isteriz Birçok ölçümün ortalamasını al 3:TAŞIMA KATMANI
11
EstimatedRTT = (1- )*EstimatedRTT + *SampleRTT
TCP RTT ve Zaman aşımı EstimatedRTT = (1- )*EstimatedRTT + *SampleRTT Eksponansiyel ağırlıklı kayan ortalama (Exponential Weighted Moving Average-EMA) Önceki örneklerin etkisi üstsel bir hızla azalır tipik değer: = 0.125 3:TAŞIMA KATMANI
12
Örnek RTT tahmini: 3:TAŞIMA KATMANI
13
TimeoutInterval = EstimatedRTT + 4*DevRTT
TCP RTT ve Zaman aşımı Zaman aşımı süresini belirleme EstimtedRTT ye bir güvenlik marjini eklemeliyiz EstimatedRTT’deki değişim çoksa -> daha büyük gğvenlik marjini Önce SampleRTT’nin EstimatedRTT’den ne kadar değişim (deviasyon) gösterdiğini belirle : DevRTT = (1-)*DevRTT + *|SampleRTT-EstimatedRTT| (tipik, = 0.25) Zaman aşımı süresi (TimeoutInterval): TimeoutInterval = EstimatedRTT + 4*DevRTT 3:TAŞIMA KATMANI
14
TCP güvenilir veri transferi
TCP IP’nin güvenilir olmayan servisi üzerine bir rdt oluşturur Boru hattı segmentleri Toplu ackler TCP tek bir yeniden gönderme zamanlayıcısı kullanır Yeniden göndermeler: Zaman aşımları tekrarlanan ackler ile tetiklenir Başlangıçta basitleştirilmiş bir TCP göndericisi ele alalım: tekrarlı ackleri gözardı edelim Akış ve sıkışıklık kontrolünü yine gözardı edelim 3:TAŞIMA KATMANI
15
TCP gönderici olayları:
Uygulamadan data alındı: Sıra numarasıyla segmenti oluştur Sıra numarası segment datasındaki ilk byte’ın veri akışındaki byte numarasıdır. Zamanlayıcıyı çalıştır Zamanaşımı süresi: TimeOutInterval Zaman aşımı: Zaman aşımına sebep olan segmenti yeniden gönder Zamanlayıcıyı yeniden başlat Ack alındı: Eğer daha önceden ACKlenmemiş segmentleri Acklerse Acklenmiş paketleri güncelle 3:TAŞIMA KATMANI
16
TCP: yeniden gönderme senaryoları
Host A Host B Host A Host B Seq=92, 8 byte data Seq=92 timeout Seq=92, 8 byte data Seq=100, 20 byte data ACK=100 Zaman aşımı X ACK=100 ACK=120 kayıp Seq=92, 8 byte data Sendbase = 100 Seq=92, 8 bytes data SendBase = 120 Seq=92 timeout ACK=120 ACK=100 SendBase = 100 SendBase = 120 Erken zamanaşımı zaman zaman kayıp ACK senaryosu 3:TAŞIMA KATMANI
17
TCP: yeniden gönderme senaryoları
Host A Host B Seq=92, 8 byte data ACK=100 Seq=100, 20 byte data X Zaman aşımı kayıp SendBase = 120 ACK=120 zaman Toplu ACK senaryosu 3:TAŞIMA KATMANI
18
Hızlı Yeniden Gönderim
Zaman aşımı süresi genelde uzun: Kayıp segmenti yeniden gönderimde uzun gecikme olur Kayıp segmentleri tekraralanan ACKler vasıtasıyla tespit et. Gönderici genelde peşpeşe birçok segment gönderir Eğer segment kaybolursa büyük bir ihtimalle birçok tekrarlı ACK meydana gelir. Eğer gönderici aynı data için 3 ACK alırsa ACKlenen datadan sonraki segmentin kaybolduğunu varsayar: Hızlı yeniden gönderim: segmenti zaman aşımını beklemeden yeniden gönder 3:TAŞIMA KATMANI
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.