18
3:TAŞIMA KATMANI 3-1 http://wps.aw.com/aw_kurose_network_4/63/16303/41737 50.cw/index.html Adresindeki HTTP ve DNS appletleri HTTP APPLET DNS APPLET

wps.aw/aw_kurose_network_4/63/16303/4173750.cw/index.html

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

Page 1: wps.aw/aw_kurose_network_4/63/16303/4173750.cw/index.html

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

Page 2: wps.aw/aw_kurose_network_4/63/16303/4173750.cw/index.html

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

Page 3: wps.aw/aw_kurose_network_4/63/16303/4173750.cw/index.html

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ı

Page 4: wps.aw/aw_kurose_network_4/63/16303/4173750.cw/index.html

3:TAŞIMA KATMANI 3-4

Seçici tekrarlama

Page 5: wps.aw/aw_kurose_network_4/63/16303/4173750.cw/index.html

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

Page 6: wps.aw/aw_kurose_network_4/63/16303/4173750.cw/index.html

3:TAŞIMA KATMANI 3-6

Seçici Tekrarlama: Java uygulaması

Page 7: wps.aw/aw_kurose_network_4/63/16303/4173750.cw/index.html

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

Page 8: wps.aw/aw_kurose_network_4/63/16303/4173750.cw/index.html

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)

Page 9: wps.aw/aw_kurose_network_4/63/16303/4173750.cw/index.html

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

Page 10: wps.aw/aw_kurose_network_4/63/16303/4173750.cw/index.html

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

Page 11: wps.aw/aw_kurose_network_4/63/16303/4173750.cw/index.html

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

Page 12: wps.aw/aw_kurose_network_4/63/16303/4173750.cw/index.html

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

Page 13: wps.aw/aw_kurose_network_4/63/16303/4173750.cw/index.html

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

Page 14: wps.aw/aw_kurose_network_4/63/16303/4173750.cw/index.html

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

Page 15: wps.aw/aw_kurose_network_4/63/16303/4173750.cw/index.html

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

Page 16: wps.aw/aw_kurose_network_4/63/16303/4173750.cw/index.html

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

ı

Page 17: wps.aw/aw_kurose_network_4/63/16303/4173750.cw/index.html

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

ı

Page 18: wps.aw/aw_kurose_network_4/63/16303/4173750.cw/index.html

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