Upload
elijah-harrington
View
30
Download
0
Embed Size (px)
DESCRIPTION
http://wps.aw.com/aw_kurose_network_4/63/16303/4173750.cw/index.html Adresindeki HTTP ve DNS appletleri HTTP APPLET DNS APPLET. 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 - PowerPoint PPT Presentation
Citation preview
3:TAŞIMA KATMANI 3-1
http://wps.aw.com/aw_kurose_network_4/63/16303/4173750.cw/index.html
Adresindeki HTTP ve DNS appletleri
HTTP APPLET
DNS APPLET
3:TAŞIMA KATMANI 3-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-3
Seçici tekrarlama: gönderici ve alıcı pencereleri
ACK’ lendi
Gönderildi fakat henüz
ACK’ lenmedi
Gönderilecek
Henüz gönderilemez
Sıralama dışı(depolandı) ACK’lenmiştiBekleniyor,
henüz gelmedi
Kabul edilebilir pencere içinde
Kullanılamaz
a) Göndericinin sıra numaraları
b) Alıcının sıra numaraları
3:TAŞIMA KATMANI 3-4
Seçici tekrarlama
3:TAŞIMA KATMANI 3-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 3-6
Seçici Tekrarlama: Java uygulaması
3:TAŞIMA KATMANI 3-7
TCP: RFC: 793, 1122, 1323, 2018, 2581
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
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ı
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
3:TAŞIMA KATMANI 3-8
TCP segment yapısı
kaynak port # hedef port #
32 bits
Uygulama datası (uzunluğu değişken)
sıra numarası
acknowledgement numarasıAlıcı penceresi
Urg data pnterKontrol toplamı
FSRPAUheadlen
notused
seçenekler (uzunluğu değişken)RST, SYN, FIN:Bağlantı kurulumu
(kurma, yıkmakomutları)
Alıcının kabuledeceği bytemiktarı
Veri bytelarıİle belirlenir (segmentlerle değil!)
InternetKontrol toplamı(UDP’deki gibi)
3:TAŞIMA KATMANI 3-9
TCP sıra numaraları ve ACK’ler
Sıra numaraları:• 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 ACKQ: alıcı sırasız gelen
paketleri ne yapar?• TCP bu konuda
herhangi birşey söylemez, uygulayana bağlı
Host A Host B
Seq=42, 8 byte veri
ACK=50
Seq=50, 15 Byte veri
kullanıcıveri
gönderiyor
host ACK’ialır ve sonraki
veriyigönderir
host veriyialdığını ACKler
zaman
3:TAŞIMA KATMANI 3-10
TCP RTT ve Zaman aşımı
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 3-11
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 3-12
Örnek RTT tahmini:RTT: gaia.cs.umass.edu to fantasia.eurecom.fr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
3:TAŞIMA KATMANI 3-13
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 :
TimeoutInterval = EstimatedRTT + 4*DevRTT
DevRTT = (1-)*DevRTT + *|SampleRTT-EstimatedRTT|
(tipik, = 0.25)
Zaman aşımı süresi (TimeoutInterval):
3:TAŞIMA KATMANI 3-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 acklerile 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 3-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
• Zamanlayıcıyı yeniden başlat
3:TAŞIMA KATMANI 3-16
TCP: yeniden gönderme senaryoları
Host A
Seq=100, 20 byte data
ACK=100
zamanErken zamanaşımı
Host B
Seq=92, 8 bytes data
ACK=120
Seq=92, 8 byte data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92, 8 byte data
ACK=100
kayıp
kayıp ACK senaryosu
Host B
X
Seq=92, 8 byte data
ACK=100
zaman
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Zam
an a
şım
ı
3:TAŞIMA KATMANI 3-17
TCP: yeniden gönderme senaryoları
Host A
Seq=92, 8 byte data
ACK=100
kayıp
Toplu ACK senaryosu
Host B
X
Seq=100, 20 byte data
ACK=120
zaman
SendBase= 120
Zam
an a
şım
ı
3:TAŞIMA KATMANI 3-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