120
Taşıma Katmanı Transport Layer 3-1 Taşıma Katmanı (Transport Layer) Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross Addison-Wesley, July 2004. A note on the use of these ppt slides: We’re making these slides freely available to all (faculty, students, readers). They’re in PowerPoint form so you can add, modify, and delete slides (including this one) and slide content to suit your needs. They obviously represent a lot of work on our part. In return for use, we only ask the following: If you use these slides (e.g., in a class) in substantially unaltered form, that you mention their source (after all, we’d like people to use our book!) If you post any slides in substantially unaltered form on a www site, that you note that they are adapted from (or perhaps identical to) our slides, and note our copyright of this material. Thanks and enjoy! JFK/KWR All material copyright 1996-2004 J.F Kurose and K.W. Ross, All Rights Reserved

Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Embed Size (px)

Citation preview

Page 1: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-1

Taşıma Katmanı(Transport Layer)

Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition. Jim Kurose, Keith RossAddison-Wesley, July 2004.

A note on the use of these ppt slides:We’re making these slides freely available to all (faculty, students, readers). They’re in PowerPoint form so you can add, modify, and delete slides (including this one) and slide content to suit your needs. They obviously represent a lot of work on our part. In return for use, we only ask the following:

If you use these slides (e.g., in a class) in substantially unaltered form, that you mention their source (after all, we’d like people to use our book!)

If you post any slides in substantially unaltered form on a www site, that you note that they are adapted from (or perhaps identical to) our slides, and note our copyright of this material.

Thanks and enjoy! JFK/KWR

All material copyright 1996-2004J.F Kurose and K.W. Ross, All Rights Reserved

Page 2: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-2

Taşıma KatmanıHedefler:

Taşıma katmanı servislerinin prensiplerini anlamak:

Çoklama/çoklamanın çözülmesi (multiplexing/demultiplexing)Güvenilir veri iletimi (reliable data transfer)Akış kontrolü (flow control)Tıkanıklık kontrolü (congestion control)

Internet deki taşıma katmanı protokollerini öğrenmek:

UDP: bağlantısız taşıma (connectionless transport)TCP: bağlantı yönelimli taşıma (connection-oriented transport)TCP tıkanıklık kontrolü (congestion control)

Page 3: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-3

Taşıma Katmanı

3.1 Taşıma katmanı servisleri 3.2 Çoklama (multiplexing) veçoklamanın çözülmesi (demultiplexing)3.3 Bağlantısız taşıma: UDP3.4 Güvenilir veri iletiminin prensipleri

3.5 Bağlantı yönelimli taşıma: TCP

segment yapısıgüvenilir veri iletimiakış kontrolübağlantı yönetimi

3.6 Tıkanıklık kontrolü prensipleri 3.7 TCP tıkanıklık kontrolü

Page 4: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-4

Taşıma Servisleri ve ProtokolleriFarklı ana sistemlerde çalışan uygulama süreçleri arasındamantıksal bir bağlantı sunarTaşıma katmanı protokolleri ağ yönlendiricilerinde değil uç sistemler de uygulanır

gönderici tarafı: gönderici uygulama süreci tarafından aldığı mesajlarısegmentlere çevirir, ve ağ katmanına geçirir. alıcı tarafı: segmentleri mesaj haline birleştirir ve uygulama katmanına geçirir.

Uygulamalar için birden fazla taşıma katmanı protokolü mevcuttur

Internet: TCP ve UDP

uygulamataşıma

ağVeri bağlantısı

fiziksel

uygulamataşıma

ağVeri bağlantısı

fiziksel

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

Page 5: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-5

Taşıma ve ağ katmanları

ağ katmanı: ana sistemler arasında mantıksal bağlantı sunartransport layer: farklı ana sistemler üzerinde çalışan süreçler arasında mantıksal bağlantı sunar

Ağ katmanı üzerinde yer alır ve onun sunduğu servislere dayanır

Ev halkı benzeştirmesi:Birbirine mektup

gönderen bir evdeki 12 çocuk ile diğerindeki 12 çocuksüreçler = çocuklarUygulama mesajları = zarf içindeki mektuplarAna sistemler = evlerTaşıma katmanı protokolü = Ann ve BillAğ katmanı protokolü = posta servisi

Page 6: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-6

Internet’de taşıma katmanı protokolleri

güvenilir, sıralı teslim (TCP)Tıkanıklık kontrolü (congestion control )Akış kontrolü (flow control)Bağlantı kurulumu (connection setup)

güvenilmez, sırasız teslim: UDP

IP’nin en iyi çabayla teslim servisi üzerinde bir eklenti yoktur

uygun olmayan servisler:gecikme garantisiBant genişliği garantisi

uygulamataşıma

ağkVeri bağlantısı

fiziksel

uygulamataşıma

ağVeri bağlantısı

fiziksel

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

Page 7: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-7

Taşıma Katmanı

3.1 Taşıma katmanı servisleri3.2 Çoklama (multiplexing) veçoklamanın çözülmesi (demultiplexing)3.3 Bağlantısız taşıma: UDP3.4 Güvenilir veri iletiminin prensipleri

3.5 Bağlantı yönelimli taşıma: TCP

segment yapısıgüvenilir veri iletimiakış kontrolübağlantı yönetimi

3.6 Tıkanıklık kontrolü prensipleri 3.7 TCP tıkanıklık kontrolü

Page 8: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-8

Çoklama / çoklamanın çözülmesi(Multiplexing/demultiplexing)

uygulama

taşıma

veri bağlantısı

fiziksel

P1 uygulama

taşıma

veri bağlantısı

fiziksel

uygulama

taşıma

veri bağlantısı

fiziksel

P2P3 P4P1

ana sistem 1 ana sistem 2 ana sistem 3

= süreç= soket

Alınan segmentlerin doğru soketlere teslimi

Alıcı ana sistemde çoklamanın çözülmesi Pek çok paketten verinin

alınması, verinin başlık ile zarflanması (daha sonra çoklamanın çözülmesinde kullanılmak için

Gönderici ana sistemde çoklama:

Page 9: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-9

Çoklamanın çözülmesi (demultiplexing) nasıl çalışır?

ana sistem IP datagramını alırHer datagramın bir kaynak bir de hedef IP adresi vardırHer datagram 1 taşıma katmanı segmenti taşırHer segmentin kaynak ve hedef port numarası vardır (hatırla: bazı çok bilinen uygulamaların port numaraları)

Ana sistem IP adresi ve port numarasını kullanarak segmenti uygun sokete yönlendirir.

kaynak port # hedef port #

32 bit

Uygulama verileri(mesaj)

diğer başlık alanları

TCP/UDP segment biçimi

Page 10: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-10

Bağlantısız çoklamanın çözülmesi

Port numaraları ile soket oluşturulur:

DatagramSocket mySocket1 = new DatagramSocket(99111);

DatagramSocket mySocket2 = new DatagramSocket(99222);

UDP soketleri iki değişken tarafından tanımlanır:

(hedef IP adresi, hedef port numarası)

Ana sistem UDP segmentini alınca:

Segmentdeki hedef port numarasını kontrol ederUDP segmentini ilgili port numarasına yönlendirir.

Farklı kaynak IP adresi ve/veya kaynak port numarası olan IP datagramları aynı sokete yönlendirilir

Page 11: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-11

Bağlantısız çoklamanın çözülmesi

DatagramSocket serverSocket = new DatagramSocket(6428);

istemciIP:B

P2

istemciIP: A

P1P1P3

sunucuIP: C

SP: 6428DP: 9157

SP: 9157DP: 6428

SP: 6428DP: 5775

SP: 5775DP: 6428

SP “geri dönüş adresi”ni tanımlar

Page 12: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-12

Bağlantı-yönelimli çoklamanın çözülmesi

TCP soketler dört-değişken tarafından tanımlanır:

kaynak IP adresikaynak port numarasıhedef IP adresihedef port numarasi

Alıcı ana sistem segmenti uygun sokete yönlendirmek için dört değeri de kullanır

Sunucu ana sistem pek çok eş zamanlı TCP soketini destekleyebilir:

Her bir soket kendi dörtlü değişkeni ile tanımlanır

Web sunucularının her bağlanan istemci için farklı soketleri vardır

Sürekli olmayan HTTP’deher istek için farklı bir soket vardır

Page 13: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-13

Bağlantı-yönelimli çoklamanın çözülmesi

istemciIP:B

P1

istemciIP: A

P1P2P4

sunucuIP: C

SP: 9157DP: 80

SP: 9157DP: 80

P5 P6 P3

D-IP:CS-IP: AD-IP:C

S-IP: B

SP: 5775DP: 80

D-IP:CS-IP: B

Page 14: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-14

Uygulama Katmanı

3.1 Taşıma katmanı servisleri3.2 Çoklama (multiplexing) veçoklamanın çözülmesi (demultiplexing)3.3 Bağlantısız taşıma: UDP3.4 Güvenilir veri iletiminin prensipleri

3.5 Bağlantı yönelimli taşıma: TCP

segment yapısıgüvenilir veri iletimiakış kontrolübağlantı yönetimi

3.6 Tıkanıklık kontrolü prensipleri 3.7 TCP tıkanıklık kontrolü

Page 15: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-15

UDP: User Datagram Protocol [RFC 768]

Bir taşıma protokolünün yapabileceği en az şeyi yapar“en iyi çaba” teslim servisi , UDP segmentleri:

kaybolabilirUygulamaya sırasız bir şekilde ulaşabilir

bağlantısız:UDP gönderici ve alıcısı arasında bağlantı kurulumu yokturHer UDP segmenti diğerlerinden bağımsız olarak yürütülür

Peki neden UDP var?Bağlantı kurulumu yok(gecikmeye yol açabilir)basit: gönderici ve alıcı taraflarında bağlantı durum yokturKüçük paket başlığı yüküTıkanıklık kontrolü yoktur: UDP istenildiği kadar hızlı gönderebilir

Page 16: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-16

UDP:Genellikle multimedia uygulamalarda kullanılır

Kayıpların tolere edilebildiğiHızın önemli olduğu

Diğer UDP kullanımlarıDNSSNMP

UDP üzerinden güvenilir iletim: güvenilirlik uygulama katmanında eklenebilir

Uygulamaya dayalı hata düzeltimi!

kaynak port # hedef port #

32 bits

Uygulama verileri(application data)

(mesaj)

UDP segment yapısı

Uzunluk(length)

Kontrol toplamı(checksum)

Uzunluk, UDP segmentinin

başlığı da kapsayan

bit miktarı

Page 17: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-17

UDP kontrol toplamı (checksum)

Gönderici:Segment içeriklerini 16 bitlik sözcükler olarak ele alırKontrol toplamı (checksum): segment içeriğini 1 tümleyicilerinin toplamı olarak toplarGönderici UDP kontrol toplamı alanına kontrol toplamı değeri ekler

Alıcı:Alınan segmentin kontrol toplamını hesaplarHesaplanan kontrol toplamının kontrol toplamı alanındaki değere eşitliğini kontrol eder:

HAYIR – hata tespit edilmiştirEVET – hata tespit edilmemiştir. Fakat yine de hatalar olabilir? Daha sonra bahsedeceğiz ….

Amaç: iletilen segmentteki “hataları” (örn., değişenbitler) tespit etme

Page 18: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-18

Internet Kontrol Toplamı (Checksum) Örneği

Örnek: iki 16-bit integerı toplayalım

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

Başa sarma

toplamKontrol toplamı

Page 19: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-19

Taşıma Katmanı

3.1 Taşıma katmanı servisleri3.2 Çoklama (multiplexing) veçoklamanın çözülmesi (demultiplexing)3.3 Bağlantısız taşıma: UDP3.4 Güvenilir veri iletiminin prensipleri

3.5 Bağlantı yönelimli taşıma: TCP

segment yapısıgüvenilir veri iletimiakış kontrolübağlantı yönetimi

3.6 Tıkanıklık kontrolü prensipleri 3.7 TCP tıkanıklık kontrolü

Page 20: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-20

Güvenilir Veri İletiminin PrensipleriSadece taşıma katmanında değil, uygulama ve bağlantı katmanlarında da meydana gelirEn önemli ağ konularının ilk-10 listesinin başında gelen bir konudur!

Güvenilmeyen kanalın özellikleri güvenilir veri iletiminin (rdt)karmaşıklığını belirler

sunulan servis

Taşıma katmanı

uygulama katmanı

gönderici süreç

alıcı süreç

güvenilir kanal

Güvenilir olmayan kanal

servis uygulaması

Page 21: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-21

Güvenilir veri iletimi: başlangıç

gönderentaraf

alıcıtaraf

rdt_send(): yukarıdan çağrılır, (e.g., uygulama tarafından). Teslim edilecek verileri

alıcı taraftaki yukarı katmana aktarır

udt_send():rdt protokolünün gönderici ve alıcı taraflarının ikisi de bu çağrı ile

paketleri güvenilir olmayan kanalda diğer tarafa gönderirler

rdt_rcv(): alıcı tarafta bir paket, kanalın alıcı tarafına geldiğinde çağrılır

deliver_data(): rdt protokolü, üst katmana veri teslim etmek istediğinde kullanır

Page 22: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-22

Güvenilir veri iletimi: başlangıç

Güvenilir veri iletim protokolünü (rdt) adım adım oluşturacağızTek yönlü veri iletimi varsayalım

Fakat kontrol bilgisi her iki yönde de akar!Gönderici ve alıcıyı tanımlamak için sonlu durum makinası (use finite state machines (FSM)) kullanalım

durum1

durum2

geçişe neden olan olayolay meydana geldiğinde alınan eylem

durum: bu “durumda” iken diğer durum

sonraki olay ile belirlenir

olayeylem

Page 23: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-23

Rdt1.0: güvenilir bir kanal üzerinde güvenilir veri iletimi

Alttaki kanal son derece güvenilirbit hataları yokpaketler kaybolmuyor

Alıcı ve göndereci için ayrı FSM’ler:gönderici veriyi alttaki kanala gönderiralıcı veriyi alttaki kanaldan okur

Yukarıdan gelecek bir

çağrıyı bekle

packet = make_pkt(data)udt_send(packet)

rdt_send(data)extract (packet,data)deliver_data(data)

Aşağıdan gelecek

bir çağrıyı bekle

rdt_rcv(packet)

gönderici alıcı

Page 24: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-24

Rdt2.0: bit hatalarına sahip bir kanalAlttaki kanal paketlerdeki bitleri değiştirebilir

bit hatalarını tespit etmek için kontrol toplamıSoru : hataları nasıl düzelteceğiz?

pozitif alındı (acknowledgements (ACKs)): alıcı açık olarak göndericiye paketin alındığını bildirirnegatif alındı (negative acknowledgements (NAKs)): alıcı göndericiye pakette hatalar olduğunu söylerGönderici NAK üzerine paketine yeniden gönderir

rdt2.0 daki yeni mekanizma (rdt1.0’in üstünde):Hata tespitiAlıcı geribildirimi: gönderici alıcı arasındaki kontrol mesajları (ACK,NAK)Tekrar iletim

Page 25: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-25

rdt2.0: FSM belirtimi

Yukarıdan bir çağrı

bekle

snkpkt = make_pkt(data, checksum)udt_send(sndpkt)

extract(rcvpkt,data)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) && isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) &&isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) && corrupt(rcvpkt)

ACK veya

NAK için bekle

Aşağıdan bir çağrı

beklegönderici

alıcırdt_send(data)

Λ

Page 26: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-26

rdt2.0: hatasız işlem

Wait for call from above

snkpkt = make_pkt(data, checksum)udt_send(sndpkt)

extract(rcvpkt,data)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) && isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) &&isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) && corrupt(rcvpkt)

Wait for ACK or

NAK

Wait for call from

below

rdt_send(data)

Λ

Page 27: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-27

rdt2.0: hatalı senaryo

Wait for call from above

snkpkt = make_pkt(data, checksum)udt_send(sndpkt)

extract(rcvpkt,data)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) && isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) &&isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) && corrupt(rcvpkt)

Wait for ACK or

NAK

Wait for call from

below

rdt_send(data)

Λ

Page 28: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-28

rdt2.0 önemli bir eksiği var!Eğer ACK ya da NAK

bozulursa ne olacak?Gönderici alıcıda ne olduğunu bilmiyor!

Yeniden gönderirse : pek çok kopya paket ortaya çıkar

Kopyaların üstesinden gelmek: Gönderici her pakete dizi numarası (sequence number)eklerGönderici eğer ACK/NAK bozulduysa paketi yeniden gönderir. Alıcı kopya paketleri atar (yukarı göndermez)

Gönderici bir paket gönderirsonra alıcının cevabınıBekler.

Dur ve beklestop and wait

Page 29: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-29

rdt2.1: göndericinin bozuk ACK/NAK’lerin üstesinden gelmesi

Yukarıdan çağrı 0 için

bekle

sndpkt = make_pkt(0, data, checksum)udt_send(sndpkt)

rdt_send(data)

ACK veya NAK 0 için

bekle udt_send(sndpkt)

rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1, data, checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt)

Yukarından çağrı 1 için

bekle

ACK veya NAK 1 için

bekle

ΛΛ

Page 30: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-30

rdt2.1: alıcının bozuk ACK/NAK’lerin üstesinden gelmesi

Aşağıdan 0 için bekle

sndpkt = make_pkt(NAK, chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) && not corrupt(rcvpkt) &&has_seq0(rcvpkt)

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt)

extract(rcvpkt,data)deliver_data(data)sndpkt = make_pkt(ACK, chksum)udt_send(sndpkt)

Aşağıdan 1 için bekle

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq0(rcvpkt)

extract(rcvpkt,data)deliver_data(data)sndpkt = make_pkt(ACK, chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) && (corrupt(rcvpkt)

sndpkt = make_pkt(ACK, chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) && not corrupt(rcvpkt) &&has_seq1(rcvpkt)

rdt_rcv(rcvpkt) && (corrupt(rcvpkt)

sndpkt = make_pkt(ACK, chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK, chksum)udt_send(sndpkt)

Page 31: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-31

rdt2.1: özet

Gönderici:Paketlere dizi numarası eklendi(0,1) iki dizi numarası yeterli mi? Neden?Alınan ACK/NAK’in bozuk olup olmadığı kontrol edilmelidirFSM’ler daha öncekinin iki katı duruma sahiptir

Durum paketin 0 ya da 1 dizi numarasına sahip olup olmadığını bilmelidir

Alıcı:Alınan paketin kopya olup olmadığını kontrol etmelidir

Durum beklenen paket dizi numarasının 0 ya da 1 olmasını belirler

not: alıcı göndericideki alınana son ACK yada NAK’ın OK olup olmadığını bilemez

Page 32: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-32

rdt2.2: NAK kullanmayan protokol

Sadece ACK kullanarak rdt2.1’deki aynı fonksiyonlara sahiptirNAK yerine, alıcı sadece son doğru alınan paket için ACK gönderir

Alıcı ACK’lenen paket için dizi numarasını açıkça belirtmelidirGöndericide kopya ACK ler NAK ile aynı eyleme sebep olur: paketi yeniden göndermek

Page 33: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-33

rdt2.2: gönderici alıcı parçaları

Yulkarıdan 0 için bekle

sndpkt = make_pkt(0, data, checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) ||

isACK(rcvpkt,1) )

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,0)

ACk 0 için bekle

gönderici FSMparçası

aşağıdan 0 için bekle

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt)

extract(rcvpkt,data)deliver_data(data)sndpkt = make_pkt(ACK1, chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) && (corrupt(rcvpkt) ||

has_seq1(rcvpkt))

udt_send(sndpkt)alıcı FSMparçası

Λ

Page 34: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-34

rdt3.0: bit hatalı ve kayıplı kanal için

Yeni varsayım: alttaki kanal paketleri kaybedebilir (veri aya da ACK’leri)

Kontrol toplamı (checksum), dizi sayısı (seq. #), ACKler, yeniden gönderimler faydalı ancak yeterli değiller

Yaklaşım: gönderici “makul” bir süre kadar ACk için beklemelidir. Bu sürede ACk gelmezse yeniden gönderirEğer paket (veya ACK) sadece geciktiyse (kaybolmadıysa):

Yeniden gönderilen kopya olacaktır, ancak dizi numarası kullanımı bunu üstesinden gelecektirAlıcı ACK’lenen paketin dizi numarasını belirtmelidir

Geri sayım zamanlayıcısı (countdown timer) gerektirir

Page 35: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-35

rdt3.0 gönderici

sndpkt = make_pkt(0, data, checksum)udt_send(sndpkt)start_timer

rdt_send(data)

ACk0 için

bekle

rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) ||isACK(rcvpkt,1) )

Aşağıdan çağrı 1 için

bekle

sndpkt = make_pkt(1, data, checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,0)

rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) ||isACK(rcvpkt,0) )

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Yukarıdan çağrı 0 için

bekle

ACK 1 için

bekle

Λrdt_rcv(rcvpkt)

ΛΛ

Λ

Page 36: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-36

rdt3.0 protokolünün işleyişi

kayıpsız işlem

kayıp paket

Page 37: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-37

rdt3.0 in action

kayıp ACK Erken zaman aşımı

Page 38: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-38

rdt3.0 protokolünün performansı

rdt3.0 çalışır fakat performansı pek de iyi değildirörnek: 1 Gbps hatta, 15 ms uçtan uca yayılma gecikmesi ile, 1KByte’lik paket gönderirken:

d ilet = 8kb/pkt10**9 b/sec = 8 microsn

U gönderici: fayda – göndericinin göndermekle meşgul olduğu sürenin kesriher 30.008 msn’de 8KB’lik paket -> 1 Gbps’lik hatta 267Kbps etkili akışFiziksel kaynakların kullanımını ağ protokolü kısıtlar!

U sender =

.008 30.008

= 0.00027 L / R RTT + L / R

=

L (packet length in bits)R (transmission rate, bps) =

gönderici

Page 39: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-39

rdt3.0: dur ve bekle işleyişi

Paketin ilk bitinin iletimi, t = 0

gönderici alıcı

RTT

Paketin son bitinin iletimi, t = L / R

Paketin ilk biti ulaşırPaketin son biti ulaşır, ACKgönderilir

ACK gelir, sonraki paketi gönderir, t = RTT + L / R

U gönde =

.008

30.008 = 0.00027 L / R

RTT + L / R =

gönderici

Page 40: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-40

İç içe geçme (pipeline) hattı: artan fayda

sender receiver

RTT Paketin ilk biti ulaşırPaketin son biti ulaşır, ACK gönderilir

ACK arrives, send next packet, t = RTT + L / R

2 inci paketin son biti ulaşır, ACK gönd.3 üncü paketin son biti ulaşır,ACK gönd.

U sender =

.024 30.008

= 0.0008 3 * L / R RTT + L / R

=

Fayda 3 katı artar!

Paketin ilk bitinin iletimi, t = 0

Paketin son bitinin iletimi, t = L / R

gönderici

Page 41: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-41

İç içe geçme (pipeline) protokolüBoru hattı: gönderici alındı geri bildirimi yapılacak

pek çok paketi ardı ardına gönderirDizi numara aralığı arttırılmaldırGönderici ve alıcı taraflarında tampona alma gerekir

İç içe geçme (pipeline) protokollerinde iki temel yaklaşım:

Geri Git N (go-Back-N),Seçici Tekrarlama (selective repeat)

Page 42: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-42

Geri Git N (Go-Back-N: GBN)Gönderici:

Paket başlığında k-bitlik dizi numarası Henüz alındı bilgisi alınmamış paketler için N boyutunda “pencere” (window) boyutu

ACK(n): dizi numarası n olan dahil tüm paketleri ACKler –“kümülatif ACK” (cumulative ACK)Gönderimdeki her paket için zamanlayıcıZaman aşımı (n): penceredeki paket n ve dizi numarası daha yüksek olan paketleri yeniden iletir

Pencere boyutu

N

Halihazırda ACK mesajı

alınmışGönderilmiş

ama ACK mesajı

alınmamış

Kullanılabilir henüz

gönderilmemiş

kullanılamaz

Page 43: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Geri Git N (Go-Back-N: GBN)

Taşıma Katmanı Transport Layer

3-43

Protokol çalıştıkça “N Penceresi” yavaş yavaş sağa doğru kayacaktır. Bu yüzden N’e Pencere Boyutu (Window size), GBN protokolüne de “sliding window” adı verilmektedir.Neden bir pencere tanımlamak zorundayız? Kullanıcının limitsiz bir window size (pencere boyutu) kullanarak veri aktarımına izin veremez miyiz?

Page 44: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-44

GBN göndericisinin genişletilmiş tanımı

Wait start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])…udt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum < base+N) {sndpkt[nextseqnum] = make_pkt(nextseqnum,data,chksum)udt_send(sndpkt[nextseqnum])if (base == nextseqnum)

start_timernextseqnum++}

elserefuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum)

stop_timerelsestart_timer

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) && corrupt(rcvpkt)

Λ

Page 45: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

GBN göndericisi

Taşıma Katmanı Transport Layer

3-45

Gönderici tarafında GBN’in cevap vermesi gereken durumlar:

Üst katmandan uyandırılma: Eğer window boşsa, paketi hazırla ve gönder. Eğer Window dolmuşsa uygulamayı uyar.ACK alımı: Sequence number’ı N olan ACK alındığında, o Sequence number’a kadar olan tüm paketlerin sorunsuz ulaştığı anlaşılacaktır.(kümülatif alındı (ACK))Zaman aşımı durumu: doğrulanmamış olan son paket için bir kronometre çalıştırılabilir. Her ACK alımında eğer ACK’sı bekleyen paket varsa kronometre baştan başlatılabilir.

Page 46: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-46

GBN alıcısının genişletilmiş tanımı

sadece ACK’li: doğru olarak alınan en büyük sıralı dizin numarasına sahip paket için her zaman ACK gönderir

Kopya ACK’ler oluşabilirExpectedseqnum ı bilmelidir

Sıralama dışı paket: atılır (tampona alınmaz) -> alıcıda tampona alma yoktur!En büyük sıralı dizi numarası olan paket yeniden ACK’lenir

Bekle

udt_send(sndpkt)default

rdt_rcv(rcvpkt)&& notcurrupt(rcvpkt)&& hasseqnum(rcvpkt,expectedseqnum)

extract(rcvpkt,data)deliver_data(data)sndpkt = make_pkt(expectedseqnum,ACK,chksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnum,ACK,chksum)

Λ

Page 47: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

GBN alıcısı

Taşıma Katmanı Transport Layer

3-47

Alıcı tarafında GBN:N sequence number’ı olan doğru ve sıralı bir paket alınmışsa (yani bir üst katmana en son gönderilmiş olan paket n-1 ise) alıcı N sequence number’lı paket için bir ACK oluşturur ve bunu gönderir, paketi de uygulama katmanına iletir.Tüm diğer durumlarda paket’i atar ve son düzgün alınmış ve sıralı olan paket için bir ACK oluşturur ve gönderir. Paketler tek tek uygulama katmanına iletildiğine göre K sequence number’lı paketin alınıp uygulama katmanına iletilmesi K’ya kadar olan tüm paketlerin düzgün ver sıralı alındığını anlamına gelir. Dolayısıla kümülatif doğrulama (cumulative acknowledgements) GBN’nin doğasında bulunmaktadır.

Page 48: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-48

GBN inişleyişi

Page 49: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Seçici Tekrarlama (Selective Repeat –SR)

Taşıma Katmanı Transport Layer

3-49

Her ne kadar GBN başarılı bir mekanizma olsa da sıkıntı çekebileceği durumlar mevcuttur. Özellikle eğer Pencere genişliği ve bant genişliği gecikmesi (bandwidth-delay) büyükse, birçok paket pipeline’da bulunabilir. Burada oluşacak tek bir paket hatası birçok paketin tekrar gönderilmesine sebebiyet verecektir.Hatta oluşabilecek hataların olasılığı arttıkça gereksiz yere gönderilen paket sayısı da önemli derecede artacaktır.Selective Repeat protokolleri sadece hatalı olan paketlerin gönderilmesi prensibine dayanır. Burada her bir doğru alınan paketin ACK edilmesi gerekecektir. Tekrar N boyunda bir penceremiz olacak, pipeline’da bulunan doğrulanmamış paket sayısını sınırlamak için. GBN’den farklı olarak gönderen penceredeki belli paketlerin ACK’sını almış olacaktır.

Page 50: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-50

Seçici Tekrarlama (Selective Repeat –SR)

Alıcı doğru olarak alınan herbir paket için ayrı ayrı alındı mesajı (ack) gönderir

Gerekirse paketleri bir üst katmana sıralı iletebilmek için tamponda tutar

Gönderici sadece alındı mesajı (ack) gelmeyen paketleri yeniden gönderir

Her alındı mesajı alınmamış paket için gönderici zamanlayıcısı

Gönderici penceresi (sender window)N ardışık dizin #’sıYine gönderilmiş ancak alındı bilgisi alınmamış (unACKed) paketlerin dizin #sını sınırlar

Page 51: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-51

Seçici Tekrarlama: gönderici, alıcıpencereleri

dizi numaralarına göndericinin bakışı

dizi numaralarına alıcının bakışı

Halihazırda ACK mesajı alınmış

Gönderilmiş ama henüz ACK mesajı alınmamış

Kullanılabilir ama henüz gönderilmemiş

kullanılamaz

Sıradışı (tampona alınmış) ama halihazırda ACK mesajı gönderilmiş

Beklenen ama henüz alınmamış

Kabul edilebilir (pencere içerisinde)

kullanılamaz

Kullanılabilir değil

Page 52: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-52

Seçici Tekrarlama

yukarıdan alınan veriler :Eğer penceredeki bir sonraki dizi #sı müsaitse, paketi gönderir

zaman aşımı(n):pkt n’i tekrar gönder, zamanlayıcı yeniden başlatır

ACK(n) in [sendbase,sendbase+N]:pkt n’i alındı olarak işaretlereğer n en küçük alındı bilgisi gelmemiş pkt ise, pencere boyutunu bir sonraki alındı bilgisi gelmemiş dizi # sına ilerletir

gönderici[rcvbase, rcvbase+N-1] deki pkt n

n için alındı mesajı ACK(n)gönderirSıralı değilse: tampona alırSıralı ise: iletir (aynı zamanda tapona alınmış sıralı pakt leri de ileteir), pencere boyutunu bir sonraki alındı bilgisi gelmemiş pakt in dizi # sına ilerletir

[rcvbase-N,rcvbase-1] deki pkt nACK(n) alındı mesajı üretir

diğer türlü:yok say

alıcı

Page 53: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-53

Seçici Tekrarlama İşlemi

Page 54: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-54

Seçici Tekrarlama:eşleme

Örnek: Dizi # ları: 0, 1, 2, 3Pencere boyutu=3

Alıcı iki senaryodaki farkı anlamaz!(a) daki gibi kopya veriyi yeni gibi hatalı olarak geçirir

Q: dizin # ile pencere boyutu arasındaki ilişki nedir?

Page 55: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Transport Layer 3-55

Güvenilir Veri İletimi Mekanizmaları ve Kullanımları

Kontrol toplamı: bit hatalarını tespit etmek için kullanılırZamanlayıcı: kanal içerisinde kaybolan paketlerin yeniden iletilmesini sağlamak için kullanılırDizi numarası: kayıp paketlerin tespitini ve kopya paketlerin belirlenmesini sağlarAlındı: bir paketin ya da paket setinin doğru olarak alındığı bilgisinin göndericiye bildirilmesi için kullanılırNegatif alındı: göndericiye bir paketin doğru alınmadığını söylemek için kullanılırPencere, boru hattı: Belli bir aralık içerisinde bulunan paketlerin gönderilmesini sağlar

Page 56: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

SORU

3 büyüklüğünde bir gönderici penceresine sahip bir GBN protokolü düşünün . t anında alıcının beklediği, sıradaki paketin k dizi numarasına sahip olduğunu varsayın. Ortamın mesajları yeniden sıralamadığını da varsayın. Aşağıdaki soruları cevaplayın:A) t anında göndericinin penceresindeki olası dizi numarası seti hangi aralıklar arasında başlıyor olabilir?B) t anında halihazırda göndericiye geri yayılan tüm olası mesajlardaki ACK alanının değeri hangi aralıklar arasında olabilir?

Page 57: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-57Taşıma Katmanı Transport Layer

3-57

Taşıma Katmanı

3.1 Taşıma katmanı servisleri3.2 Çoklama (multiplexing) veçoklamanın çözülmesi (demultiplexing)3.3 Bağlantısız taşıma: UDP3.4 Güvenilir veri iletiminin prensipleri

3.5 Bağlantı yönelimli taşıma: TCP

segment yapısıgüvenilir veri iletimiakış kontrolübağlantı yönetimi

3.6 Tıkanıklık kontrolü prensipleri 3.7 TCP tıkanıklık kontrolü

Page 58: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-58Taşıma Katmanı Transport Layer

3-58

TCP: Genel Bakış RFCs: 793, 1122, 1323, 2018, 2581Tam dubleks veri:

Aynı bağlantıda iki yönlü veri akışıMSS: maksimum segment boyutu

Bağlantı-yönelimli:El sıkışma (kontrol mesajlarının değişimi)veri değişiminden önce alıcı ve göndericinin durum bilgileri

Akış kontrolü:Gönderici alıcıyı zorlamaz

Noktadan noktaya:Bir gönderici, bir alıcı

güvenilir, sıralı baytakışı:

“mesaj sınırları” yokturBoru hattı:

TCP tıkanıklık ve akış kontrolü pencere boyutunu ayarlar

gönderme & almatamponları

soket

TCPgönderim tamponu

TCPalım tamponu

soket

segment

uygulamaverileri yazar

uygulamaverileri okur

Page 59: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-59Taşıma Katmanı Transport Layer

3-59

TCP segment yapısı

kaynak port # hedef port #

32 bit

veriler(çeşitli uzunlukta)

Dizin numarasıAlındı (ACK) numarası

Alıcı penceresiAcil veri işaretçisiInternet kontrol

toplamı

FSRPAUBaşlık uzun.

Kullanılmaz

seçenekler (çeşitli uzunlukta)

URG: acil veri(genellikle kullanılmaz)

ACK: ACK #geçerli

PSH: verileri hemen üst katmana aktar

(genellikle kullanılmaz)RST, SYN, FIN:

Bağlantı kurulumunda(kurma, kaldırma

komutları)

Alıcınınkabul etmeyiisteyeceği bayt sayısı

Veri baytları ile sayılır(segmentler ile değil!)

InternetKontrol toplamı(UDP’deki gibi)

Page 60: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-60Taşıma Katmanı Transport Layer

3-60

TCP dizin # sı ve ACK ler

Dizin #’ları:Segment verisindeki ilk baytın bayt akışnumarası

ACKler:Diğer tarafdan beklenen bir sonraki baytın dizin # sıtoplu ACK

Soru: alıcı sırasız segmentlerin üstesinden nasıl gelir?

A: TCP belirtimi bir şey söylemez –uygulayıcıya bağlıdır

Ana sistem A Ana sistem B

kullanıcı‘C’

yazar

Ana sistem yansıtılan ‘C’ için ACKgönderir

Ana sistem‘C’ alımı için

ACK gönderir ‘C’ harfini

geri yansıtır

timeBasit telnet senaryosu

Page 61: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-61

TCP dizin # sı ve ACK ler

Taşıma Katmanı Transport Layer

3-61

Farzedelim ki A’daki bir process B’deki bir process’e bir grup veri göndermek istemekte. A’daki TCP bu veri yığınındaki her bir byte’ı birbirinden farklı olacak şekilde numaralandıracaktır. Veri akışının 500,000byte’lık bir dosyadan oluştuğunu, MSS’in 1,000 byte olduğunu ve veri akışındaki ilk byte’ın 0 olarak numaralandırıldığını farzedelim.TCP 500 tane segment oluşturacak. Birinci segment’in Sequence Number’ı 0, ikinci segment’in sequence number’ı 1000, üçüncü segment’in sequence number’ı 2000 vs. olacaktır. Her bir sequence sayısı TCP header’ındaki Sequence Number alanına eklenir.

Page 62: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-62

TCP dizin # sı ve ACK ler

Taşıma Katmanı Transport Layer

3-62

Her ne kadar burada verilen örnekte ilk byte’ın Sequence number’ını 0’dan başlatmış olsak ta, gerçek kullanımında TCP ilk byte’a rastgele(random) bir sayı atamakta ve bunu alıcıya da iletmektedir.Bu şekilde bir random number’ın seçilmesindeki en temel sebep, daha önceden kurulmuş ama şimdi tamamlanmı,ş bu iki host arasındaki eski bir bağlantıdan kalma ve aynı Sequence Number’ı taşıyan bir segment olmasıdır. Bu şekilde rastgele bir sayı seçilerek bu ihtimal azaltılmaya çalışılmaktadır.

Page 63: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-63

TCP dizin # sı ve ACK ler

Taşıma Katmanı Transport Layer

3-63

ACK Number alanı biraz daha karışık. TCP full-duplex olduğundan A, B’ye veri gönderirken aynı anda B’den veri alabilmektedir. B’den gelen her bir segment’in, B’den A’ya akan veri ile ilintili olarak bir Sequence Number’ı bulunmaktadır. A’nın Acknowledgement alanına koyduğu sayı, A’nın B’den beklediği bir sonraki byte’ın sequence number’ıdır.Farzedelim ki A B’den 0’dan 535’e kadar olan tüm byte’ları aldı ve B’ye bir segment göndermek üzere. Başka bir deyişle A şu aşamada B’den 536. byte’ı ve devamını beklemekte. Bu durumda A göndereceği segment’in Acknowledgement number alanına 536 yazıp B’ye gönderir.

Page 64: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-64

TCP dizin # sı ve ACK ler

Taşıma Katmanı Transport Layer

3-64

Başka bir durumda da A B’den 0’dan 535’e ve 900’den 1000’e kadar olan byte’ları aldığını, fakat herhangi bir sebepten dolayı 536’dan 899’a kadar olan byte’ları almadığını farzedelim. Bu yüzden A’nın bir sonraki göndereceği segment’te Acknowledgement alanına 536 yazacaktır. TCP, ilk kayıp byte’a kadar olan kısmı doğruladığı için TCP’nin kümülatif doğrulama yaptığı söylenir.Fakat burada başka önemli bir nokta ortaya çıkmakta: A, üçüncü segment’i yani 900’den 1000’e kadar olan byte’ları ikinci segment’ten önce aldı, yani üçüncü segment sıralama dışı ulaştı. Peki sırası bozulmuş segment’ler aldığı alıcı taraf ne yapmalı? Burada bir temel kural olmamasına rağmen iki temel yaklaşım kullanılmaktadır:

Sıralamayı bozan byte’ları anında atmakSıralamayı bozan byte’ları önbellekte tutup eksik byte’ları beklemek

Page 65: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-65

Örnek: TELNET

Taşıma Katmanı Transport Layer

3-65

Farzedelim ki A, B ile bir telnet bağlantısı kurmakta. A bu durumda istemci (client), B’de sunucu (server) olmaktadır. İstemci tarafından istemcideki uygulamada her yazılan karakter sunucuya gönderilecek, sunucu da ekrana yazdırmak için aynı karakteri istemciye gönderecektir. Bu karakter kullanıcının Telnet arayüzünde gözükecek ama aslında aynı karakter iki host arasında gidip gelmiş olacak TCP vasıtasıyla (traverse twice the network).Kullanıcının sadece ‘c’ harfini bastığını farzedelim ve gönderilen ve alınan TCP segmentlerine kısaca bir bakalım.

Page 66: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-66

Örnek: TELNET

Taşıma Katmanı Transport Layer

3-66

Page 67: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-67

Örnek: TELNET

Taşıma Katmanı Transport Layer

3-67

İstemci ve sunucu için başlangıç sequence number’larının 42 ve 79 olduğunu farzedelim. İstemciden ilk gönderilen segment’in sequence number’ı 42, sunucudan ilk gönderilen segment’in sequence number’ı 79 olacaktır.Her hangi bir veri gönderilmeden önce ama bağlantı kurulduktan sonra istemci sunucudan 79 sequence number’lı segment’i, sunucu da 42 sequence number’lı segment’i beklemektedir.Örnekte de gösterildiği üzere 3 segment gönderilmektedir. İlk segment istemciden sunucuya gönderilmiş, içinde tek byte’lık C bulunmakta ve sequence number’ı 42. Sunucudan da herhangi bir veri almadığı için de acknowledgement number kısmında 79 bulunmakta.

Page 68: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-68

Örnek: TELNET

Taşıma Katmanı Transport Layer

3-68

İkinci segment sunucudan istemciye gönderilmekte ve çift amaca hizmet etmekte:

İlk önce almış olduğu veriyi doğrulamakta: Acknowledgement kısmına 43 koyarak, sunucu istemciye 42. byte’a kadar herşeyi aldığını ve şimdi 43’ü beklediğini ifade etmekte. İkinci amacı bu segment’in ‘C’ harfini ekrana yazdırmak, dolayısıyla C harfini tekrar göndermekte.

Bu ikinci segment’in sequence number’ı 79, sunucunun göndereceği byte’lara verdiği ilk değerdir.Dikkat ederseniz istemciden sunucuya giden verinin Acknowledgement’i sunucudan istemciye giden veriyi taşıyan segment’in içinde bulunmaktadır. Buna piggybacking (sırtta taşıma) adı verilmektedir.

Page 69: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-69

Örnek: TELNET

Taşıma Katmanı Transport Layer

3-69

Üçüncü segment istemciden sunucuya gönderilmektedir: Tek amacı sunucudan almış olduğu veriyi doğrulamaktır. Bu segment’in taşıdığı veri alanı boş olacak, ve acknowledgement alanında taşıdığı değer 80 olacaktır. Bunun sebebi 80’e kadar olan tüm verileri almış olması ve şimdi 80 ve sonrasını beklemesidir.İşin ilginç tarafı herhangi bir veri taşımamasına rağmen bir sequence number’ının bulunmasıdır. Bunun sebebi, bu şekilde tanımlanmış bir zorunlu alanın bulunması ve dolayısıyla TCP’nin bu alanı bir sonraki sequence number’la doldurmasıdır.

Page 70: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-70

Taşıma Katmanı

3.1 Taşıma katmanı servisleri 3.2 Çoklama (multiplexing) veçoklamanın çözülmesi (demultiplexing)3.3 Bağlantısız taşıma: UDP3.4 Güvenilir veri iletiminin prensipleri

3.5 Bağlantı yönelimli taşıma: TCP

segment yapısıgüvenilir veri iletimiakış kontrolübağlantı yönetimi

3.6 Tıkanıklık kontrolü prensipleri 3.7 TCP tıkanıklık kontrolü

Page 71: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-71

TCP Gidiş Dönüş Süresi ve Zaman aşımı

Q: TCP zaman aşımı (timeout) değeri nasıl belirlenir?RTT’den daha uzun

RTT ler farklı farklıdırÇok kısa: prematüre zaman aşımı (prematuretimeout)

Gereksiz yeniden iletimler

Çok uzun : segment kaybına yavaş reaksiyon verme

Q: RTT nasıl tahmin edilebilir?SampleRTT: Segmentin iletiminden ACK alındısına kadar geçen süre

Yeniden iletimleri yok say SampleRTT farklı farklı olabilir, want estimated RTT “smoother”

Sadece şu andaki SampleRTT yerine yakın zamandaki birkaç ölçümün ortalaması alınır

Page 72: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-72

TCP Gidiş Dönüş Süresi ve Zaman aşımıEstimatedRTT = (1- α)*EstimatedRTT + α*SampleRTT

Üssel ağırlıklı hareket eden ortalama (Exponential weighted moving average – EWMA)Ağırlıklı ortalama, en son örneklere eski bir örnekten daha çok ağırlık katarTipik değer: α = 0.125

Page 73: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-73

Ö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

iseco

nds)

SampleRTT Estimated RTT

Page 74: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-74

Gidiş Dönüş Süresi ve Zaman aşımıZaman aşımını (timeout) ayarlamak

EstimtedRTT artı “güvenlik marjı” (“safety margin”)EstimatedRTT’de geniş değişiklikler varsa -> daha geniş güvenlik marjı (safety margin)

SampleRTT’nin EstimatedRTT’den ne kadar değişiklik gösterdiğinin ilk tahmini aşağıdaki şekilde hesaplanır :

Zaman aşımı (TimeoutInterval) = EstimatedRTT + 4*DevRTT

DevRTT = (1-β)*DevRTT + β*|SampleRTT-EstimatedRTT|

(typically, β = 0.25)

Zaman aşımı (timeout) aralığı

olarak ayarlanır

Page 75: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-75

Taşıma Katmanı

3.1 Taşıma katmanı servisleri3.2 Çoklama (multiplexing) veçoklamanın çözülmesi (demultiplexing)3.3 Bağlantısız taşıma: UDP3.4 Güvenilir veri iletiminin prensipleri

3.5 Bağlantı yönelimli taşıma: TCP

segment yapısıgüvenilir veri iletimiakış kontrolübağlantı yönetimi

3.6 Tıkanıklık kontrolü prensipleri 3.7 TCP tıkanıklık kontrolü

Page 76: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-76

Güvenilir Veri İletimi

TCP IP’nin güvenilmeyen servisi üzerinde rdt (güvenilir veri iletim) servisi oluştururPipelined segmentsKümülatif acksTCP bir tek yeniden iletim zamanlaması kullanır

Yeniden iletimler:Zaman aşımı (timeout)Kopya alındı (duplicate acks)

gerçekleşmesinde uygulanır

Öncelikle basit bir TCP göndericisi düşünelim:

Kopya alındıları (acks) yok sayalımAkış kontrolü (flow control) ve tıkanıklık kontrolünü (congestion control) yok sayalım,

Page 77: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-77

TCP göndericisi olayları:Uygulamadan alınan veri:

dizi # (seq #) ile segment oluşturulurdizi # (seq #)segmentteki ilk veri baytının bayt-akis(byte-stream)numarasıdır Eğer çalışmıyorsa zamanlayıcıyı başlatır (zamanlayıcıyı en eski alındı mesajı alınmamış segment olarak düşün)expiration interval: TimeOutInterval

Zaman aşımı (timeout):Zaman aşımına yol açan segmenti yeniden iletZamanlayıcıyı yeniden başlat

ACK (alındı bilgisi) alımı:Eğer daha önce alındısı alınmamış (unacked) segment için alındı (ack)alıyorsa

Ack lenenleri güncellerHala ack lenmemiş segment varsa zamanlayıcı yeniden başlatılır.

Page 78: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-78

TCP göndericisi

(basit)

NextSeqNum = InitialSeqNumSendBase = InitialSeqNum

loop (forever) {switch(event)

event: Yukarıdaki uygulamadan alınan verilerDizi numarası NextSeqNum olan TCp segmenti oluşturIf (zamanlayıcı çalışmıyorsa)

zamanlayıcıyı başlatsegmenti IP’ye iletNextSeqNum = NextSeqNum + length(data)

event: zaman aşımıhenüz alındı bilgisi alınmamış en düşük

dizi numarasına sahip segmentiyeniden ilet

start timer

event: ACK değeri y olan bir ACK alındığındaif (y > SendBase) {

SendBase = yif (henüz alındı bilgisi alınmamış segmentler varsa)

zamanlayıcıyı başlat}

} /* end of loop forever */

Comment:• SendBase-1: en son kümülatif olarak alındı bilgisi gelmişolan baytÖrnek:• SendBase-1 = 71;y= 73, ise alıcı 73 vesonrasını beklemektedir;

y > SendBase, ise yeni veri ACK’lenmiştir

Page 79: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-79

TCP: yeniden iletim senaryolarıHost A

timepremature timeout

Host B

Seq=

92 t

imeo

ut

Host A

loss

tim

eout

lost ACK scenario

Host B

X

timeSe

q=92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Page 80: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-80

TCP yeniden iletim senaryolarıHost A

loss

tim

eout

Cumulative ACK scenario

Host B

X

time

SendBase= 120

Page 81: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-81

TCP ACK üretimleri [RFC 1122, RFC 2581]

Olaylar

Beklenen dizi #’na sahip sıralı segmentin varışı. Beklenen dizi #’na sahip tüm veri ACK’lenmiştir

Beklenen dizi #’na sahip sıralı segmentin varışı. ACK iletimi için bekleyen bir önceki segment varsa

Beklenenden daha büyük dizi #’lısıradışı bir segmentin varışı. Boşluk tespit edilmiştir.

Alınan verilerdeki boşluğu kısmenveya tamamen dolduran segmentin varışı

TCP Alıcısı

Geciktirilmiş ACK. Diğer sıralı segment için 500msn bekler. Bir sonraki segmentgelmezse, ACK gönderir.

Toplu ACK ile sıralı iki segmentiçin alındı gönderilir

Bir sonraki beklenen byte’ın dizi #belirterek kopya ACK gönderir.

Segmentin boşluğun küçük kenarından başladığını sunarak hemen ACK gönderir.

Page 82: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-82

Hızlı Yeniden İletim (Fast Retransmit)

Zaman aşımı periyodu göreceli olarak uzun olabilir:

Kayıp paketi yeniden göndermek için uzun bekleme

Kayıp segmentleri kopya ACK’ler ile tespit etme.

Gönderici sıklıkla pek çok segmenti arka arkaya gönderirEğer segment kayıp ise, pek çok kopya ACK olacaktır.

Eğer gönderici aynı data için 3 ACK alırsa, ACK’lenen segmentden sonra gelen segmentin kaybolduğunu varsayar:

Hızlı yeniden iletim(fast retransmit): segmenti zamanlayıcının süresi dolmadan yeniden gönderir.

Page 83: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-83

event: ACK received, with ACK field value of y if (y > SendBase) {

SendBase = yif (there are currently not-yet-acknowledged segments)

start timer }

else { increment count of dup ACKs received for yif (count of dup ACKs received for y = 3) {

resend segment with sequence number y}

Hızlı yeniden iletim algoritması:

Daha önce ACK’lenmiş bir segment için kopya ACK

Hızlı yeniden iletim(fast retransmit)

Page 84: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-84

Zaman aşımı aralığını çiftlemek:

Bir zaman aşımı sonrasında zaman aşımı aralığının uzunluğu:

Bir zaman aşımı meydana geldiğinde TCP, alındı mesajı gönderilmemiş olan en küçük dizi numarasına sahip segmenti yeniden iletir. Ancak bir sonraki zaman aşımı aralığını son EstimatedRTT ve DevRTT değerlerinden türetmek yerine, bir önceki değeri iki ile çarpar.

• Örn. İlk kez zaman aşımı meydana geldiğinde değer 0,75 ise bir sonrakinde unu 1,5 olarak ayarlar.

Bu bize bir anlamda tıkanıklık kontrolü de sağlamış olur

Page 85: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-85

TCP GBN mi SR midir?

GBN:Alındı mesajları topludurSıradış segmentler için ACK gönderilmez

SR:Doğru ancak sıradışı paketleri tampona alırSeçici alındı, seçici yeniden iletim yapar

GBN ve SR nin melezidir diyebiliriz!

Page 86: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-86

Taşıma Katmanı

3.1 Taşıma katmanı servisleri 3.2 Çoklama (multiplexing) veçoklamanın çözülmesi (demultiplexing)3.3 Bağlantısız taşıma: UDP3.4 Güvenilir veri iletiminin prensipleri

3.5 Bağlantı yönelimli taşıma: TCP

segment yapısıgüvenilir veri iletimiakış kontrolübağlantı yönetimi

3.6 Tıkanıklık kontrolü prensipleri 3.7 TCP tıkanıklık kontrolü

Page 87: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-87

TCP Akış Kontrolü

TCP bağlantısının alcı tarafında alıcı tamponu (receive buffer) vardır

Hız eşleştirme servisi: göndericinin gönderdiği hızı, alıcının okuduğu hızla eşleştirir.Uygulama süreci

verileri bu tampondan okumada yavaş olabilir

Göndericinin alıcının tamponunu çok fazla ve

çok hızlı göndererek taşırmasını engeller

Akış kontrolü

Page 88: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-88

TCP akış kontrolü: nasıl çalışır?

(TCP alıcısının, sıralama dışı segmentleri attığını varsayarak başlayalım )kullanılabilir boş tampon

= RcvWindow= RcvBuffer-[LastByteRcvd -

LastByteRead]

Alıcı ne kadar boş alan olduğunu segmentteki RcvWindow değeri ile bildirir. Gönderici ACK’lenmemiş verileri RcvWindow değeri ile sınırlar

Alıcı tamponunun taşmasını engeller

Page 89: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-89

Taşıma Katmanı

3.1 Taşıma katmanı servisleri 3.2 Çoklama (multiplexing) veçoklamanın çözülmesi (demultiplexing)3.3 Bağlantısız taşıma: UDP3.4 Güvenilir veri iletiminin prensipleri

3.5 Bağlantı yönelimli taşıma: TCP

segment yapısıgüvenilir veri iletimiakış kontrolübağlantı yönetimi

3.6 Tıkanıklık kontrolü prensipleri 3.7 TCP tıkanıklık kontrolü

Page 90: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-90

TCP Bağlantı YönetimiHatırla: TCP göndericisi ve

alıcısı veri segmentlerini görndermeden önce “bağlantı” kurarlarTCP değişkenleri belirlenir:

Dizi numaraları tamponlar, akış kontrol bilgileri (örn.RcvWindow)

istemci: bağlantı başlatıcıSocket clientSocket = new Socket("hostname","port

number");

sunucu: istemci tarafından iletişime geçilenSocket connectionSocket = welcomeSocket.accept();

3 yönlü el sıkışma:Adım 1: İstemci TCP SYN

segmentini sunucuya gönderirİlk dizi # nı belirlerUygulama katmanı verisi bulunmaz

Adım 2: Sunucu SYN alır, SYNACK ile cevap verir

Sunucu tamponları ayırırSunucu için ilk dizi # nı belirler

Adım 3: İstemci SYNACK alır, ACK ile cevap verir, veri içerebilir

Page 91: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-91

TCP Bağlantı Yönetimi (devam.)

Bağlantıyı kapama:

client closes socket:clientSocket.close();

Adım 1: İstemci sunucuya TCP FIN kontrol segmenti gönderir

Adım 2: Sunucu FIN alır, ACK ile cevap verir. Bağlantıyı keser, FIN gönderir.

istemci sunucu

close

close

closedti

med

wai

t

Page 92: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-92

TCP Bağlantı Yönetimi (devam)

Adım 3: İstemci FIN alır, ACK ile cevaplar.

“timed wait” değeri girer – Alından FINlere ACK ile cevap verir

Adım 4: Sunucu, ACK alır. Bağlantı kapanır.

istemci sunucu

closing

closing

closedti

med

wai

t

closed

Page 93: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-93

TCP Bağlantı Yönetimi (devam)

TCP istemci döngüsü

TCP sunucu döngüsü

Page 94: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-94

Taşıma Katmanı

3.1 Taşıma katmanı servisleri 3.2 Çoklama (multiplexing) veçoklamanın çözülmesi (demultiplexing)3.3 Bağlantısız taşıma: UDP3.4 Güvenilir veri iletiminin prensipleri

3.5 Bağlantı yönelimli taşıma: TCP

segment yapısıgüvenilir veri iletimiakış kontrolübağlantı yönetimi

3.6 Tıkanıklık kontrolü prensipleri3.7 TCP tıkanıklık kontrolü

Page 95: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-95

Tıkanıklık Kontrolü Prensipleri

Tıkanıklık:“çok fazla kaynağın ağın kaldırabileceğinden çok fazlasını çok hızlı göndermesinden” kaynaklanırAkış kontrolünden farklıdır!belirtileri:

Kayıp paketler (yönlendiricilerdeki tamponlarda taşma)Uzun gecikmeler (yönlendirici tamponlarında kuyruklar)

İlk 10 ağ problemi arasındadır!

Page 96: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-96

Tıkanıklığın nedenleri/maliyeti: Senaryo 1

İki gönderici, iki alıcıSonsuz tamponu olan bir yönlendiriciYeniden iletim yok

Tıkanıklık olduğunda uzun beklemeler

unlimited shared output link buffers

Host Aλin : original data

Host B

λout

Page 97: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-97

Tıkanıklığın nedenleri/maliyeti: Senaryo 2

sonlu tampona sahip bir yönlendiriciGönderici kaybolan paketleri yeniden iletir

finite shared output link buffers

Host A λin : original data

Host B

λout

λ'in : original data, plus retransmitted data

Page 98: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-98

Tıkanıklığın nedenleri/maliyeti: Senaryo 2Tampon boş olduğunda paket gönderdiği bir durum varsayarsak

Sadece bir paketin kesin olarak kayıp olduğu bilinirse:Uzun gecikme nedenli yeniden iletimler, yönlendiricilerin hat bant genişliğini gereksiz yere kullanımına yol açar

λin

λout=λ

out

λout

Tıkanıklığın “maliyeti” :Geciken bir paketin yeniden gönderimi durumlarında, orijinal paketin yeniden iletim işi bir kayıptırGereksiz yeniden iletimler: hatta aynı paketin pek çok kopyası olacaktır

R/2

R/2λin

λ out

b.

R/2

R/2λin

λ out

a.

R/2

R/2λin

λ out

c.

R/4

R/3

= R/3

= R/4

= R/2

Page 99: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-99

Tıkanıklığın nedenleri/maliyeti: Senaryo 3Dört göndericiBirden çok atlamalı yolZaman aşımı/yeniden iletimler

λinQ: ve

artarsa ne olur?λ

in

finite shared output link buffers

Host Aλin : original data

Host B

λout

λ'in : original data, plus retransmitted data

Page 100: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-100

Tıkanıklığın nedenleri/maliyeti: Senaryo 3

Tıkanıklığın başka bir ”maliyeti”:Bir paket yol esnasında atıldığında, bu paketi atıldığı noktaya kadar iletmek içi her yukarı akış hattı tarafından kullanılan iletim kapasitesi kaybedilmiş olur!

Host A

Host B

λout

Page 101: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-101

Tıkanıklık kontrolü yaklaşımları

Uçtan uca tıkanıklık kontrolü yaklaşımı :Ağdan herhangibir geri bildirim alınmazTıkanıklık uç sistemlerin kayıp ve gecikmeleri takibi ile anlaşılırTCP’deki yaklaşımdır

Ağ yardımı ile tıkanıklık kontrolü:Yönlendiriciler ağdaki tıkanıklık durumu ile ilgili uç sistemlere açık bir geri besleme sunarlar

Tıkanıklığı belirten bir bit kullanılır (SNA, DECbit, TCP/IP ECN, ATM)Yönlendirici, göndericiyi hat üzerinde destekleyebileceği iletim hızı ile ilgili olarak açık şekilde bilgilendirir

Tıkanıklık kontrolü için iki temel yaklaşım vardır:

Page 102: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-102

Örnek: ATM ABR tıkanıklık kontrolü

ABR: kullanılabilir bit hızı (available bit rate):“elastik” bir veri iletim servisiAğ “yük altında değilken”:

Kullanılabilir bant genişliğini kullanabilmenin avantajından yararlanmayı

Ağ tıkanık iken ise: Göndericinin daha önceden belirlenmiş minimum bir iletim hızına kısılmasını sağlar

RM – Kaynak yönetim Hücreleri (resource management cells):Ana sistemler ve anahtarlar arası tıkanıklıkla ilgili bilgileri taşırRM hücrelerindeki bit’ler switchler tarafından ayarlanırswitches (“network-yardımlı”)

NI bit: hızda artış yok -no increase in rate orta dereceli tıkanıklıkCI bit: tıkanıklık göstergesi

RM hücreleri göndericiye bit’ler değiştirilmeden geri gönderilir.

Page 103: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-103

Örnek: ATM ABR tıkanıklık kontrolü

RM hücrelerindeki iki-byte’lık ER-kesin hız (explicit rate) alanıTıkalı bir anahtar RM hücresindeki ER alanındaki değeri düşürebilirBöylece kaynaktan hedefe doğrutüm anahtarlardaki desteklenen minimum hız ayarlanabilir

Veri hücrelerindeki EFCI biti : tıkanık switch’de 1 olarak ayarlanır

Eğer RM hücresini takip eden veri hücresinde EFCI bit’i ayarlanmışsa, gönderici geri dönen RM hücresindeki CI bit’ini ayarlar

Page 104: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-104

Taşıma Katmanı

3.1 Taşıma katmanı servisleri 3.2 Çoklama (multiplexing) veçoklamanın çözülmesi (demultiplexing)3.3 Bağlantısız taşıma: UDP3.4 Güvenilir veri iletiminin prensipleri

3.5 Bağlantı yönelimli taşıma: TCP

segment yapısıgüvenilir veri iletimiakış kontrolübağlantı yönetimi

3.6 Tıkanıklık kontrolü prensipleri3.7 TCP tıkanıklık kontrolü

Page 105: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-105

TCP Tıkanıklık Kontrolü

TCP’nin congestion control mekanizması, her bir kullanıcının ağdaki sıkışıklığı algıladığı oranda veri göndermesini azaltması ve limitlemesi prensibi ile çalışmaktadır.Gönderen, kendisi ile alıcı arasında düşük bir tıkanıklık olduğunu algılıyorsa o zaman gönderme oranını artırabilir, eğer yoğun tıkanıklık olduğunu düşünüyorsa da o zaman gönderme oranını düşürmelidir.

TCP bağlantıya bıraktığı trafiği nasıl kısıtlayabilir?Kendisi ile alıcı arasında tıkanıklık olduğunu nasıl anlıyor?İki nokta arasındaki tıkanıklığa dayalı olarak aktarım oranını değiştirecek ne tür bir fonksiyon kullanmalı?

Page 106: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-106

TCP Tıkanıklık Kontrolü

TCP bağlantıya bıraktığı trafiği nasıl kısıtlayabilir?

Bir göndericideki alındı mesajı alınmamış olan veri miktarı CongWin (Tıkanıklık penceresi) ve RcvWindow değerlerinin minimumunu geçmemelidir

LastByteSent-LastByteAcked ≤ min {CongWin,RcvWindow}

Kabaca göndericinin gönderim hızı

rate = CongWinRTT Bytes/sec

Page 107: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-107

TCP Tıkanıklık Kontrolü

Kendisi ile alıcı arasında tıkanıklık olduğunu nasıl anlıyor?

Zaman aşımı3 kopya ACK

Tıkanıklık yoksa doğru ve düzenli gelen alındıları CongWin boyutunu artırmak için kullanır

Page 108: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-108

TCP Tıkanıklık Kontrolü

TCP tıkanıklık kontrolü algoritması3 ana bileşeni vardır:

Toplamsal artış, çarpımsal düşüş (additive increase, multiplicative decrease - AIMD)Yavaş başlangıç (slow start)Zaman aşımı olayına tepki

Page 109: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-109

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Çarpımsal düşüş: kayıp meydana geldiğinde CongWin değeri yarıya indirilir

Toplamsal artış: Kayıp olmadığı durumda CongWİn değeri her RTT için 1 MSS artırılır.

Long-lived TCP connection

Page 110: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-110

TCP Slow Start

Bağlantı kurulduğunda, CongWin = 1 MSS olarak belirlenir

Örn: MSS = 500 bytes & RTT = 200 msecİlk hız = 20 kbps

Kullanılabilir bant genişliği >> MSS/RTTbunu adım adım 1 MSS ile artırmak kayıp olurdu

Kayıp meydana gelirse CongWin değeri yarıya düşer, sonra da önce tanımladığımız gibi çizgisel artar.

Page 111: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-111

TCP Slow Start

Başlangıç fazında hızı doğrusal-çizgisel artırmak yerine TCP göndericisi hızını, her RTT’de CongWin değerini ikiye katlayarak,üssel olarak artırır

Özet: ilk hız yavaştır ancak üssel olarak artar

Host A

RTT

Host B

time

Page 112: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-112

Zaman aşımı

TCP yavaş başlamanın sona ereceği bir Threshold(eşik) değeri belirler Başta 65Kbyte gibi büyük bir değer seçilirZaman aşımı yaşandığında zaman aşımı olayının yaşandığı zamanki CongWin değerinin yarısı yeni Threshold olarak belirlenirZaman aşımından sonra TCP göndericisi yavaş başlama fazına girer :

CongWin=1MSSÜssel olarak yeni belirlenen Threshold değerine kadar hızını artırır

Page 113: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-113

Tıkanıklık Kontrolü

Neden TCP, zaman aşımında Congwin’i 1 MSS’ye düşürürken, 3 kopya ACK alımında yarıya indirerek tepki verir?

3 kopya ACK alımı networkün hala belli miktar veriyi iletebildiği anlamına gelirZaman aşımı ise daha ciddidir

hızlı kurtarma (fast recovery)

Page 114: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-114

TCP Reno vs TCP Thoe

Page 115: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-115

Özet: Tıkanıklık KontrolüCongWin Threshold değerinin altındaysa, gönderici slow-start fazındadır, pencere üssel artar.

CongWin Threshold değerinin üstündeyse, gönderici tıkanıklık önleme fazındadır, pencere lineer artar.

3 kopya ACK meydana geldiğinde, ThresholdCongWin/2 olarak ayarlanır ve CongWin de Threshold’a eşitlenir, pencere lineer artar

Zaman aşımı meydana geldiğinde, ThresholdCongWin/2 olarak ayarlanır ve CongWin 1 MSS’ye eşitlenir, pencere Threshold’a kadar üssel artar

Page 116: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-116

Tıkanıklık KontrolüOlay Durum TCP Gönderici Eylemi Açıklama

Daha önce alındı bilgisi alınmayan veriler için ACK alımı

Yavaş BaşlamaSlow Start (SS)

CongWin = CongWin + MSS, If (CongWin > Threshold)

durum “Congestion Avoidance” (Tıkanıklıktan kaçınma) olarak ayarlanır

Her RTT’de CongWin değerinin ikiye katlanması ile sonuçlanır

Daha önce alındı bilgisi alınmayan veriler için ACK alımı

Tıkanıklıktan KaçınmaCongestionAvoidance (CA)

CongWin = CongWin+MSS * (MSS/CongWin)

CongWin değerinin her RTT için 1 MSS çarpımı ile büyümesiyle sonuçlanan toplamsal artış.

Üç kopya ACK tarafından tespit edilen kayıp olayı

SS veyaCA

Threshold = CongWin/2, CongWin = Threshold,durum “Congestion Avoidance”olarak ayarlanır

Çarpımsal düşüşü uygulayan hızlı kurtarma. CongWin 1 MSS altına düşmez.

Zaman aşımı SS veyaCA

Threshold = CongWin/2, CongWin = 1 MSS,durumu “Slow Start” olarak ayarlanır

Yavaş başlamaya girer

Çift ACK SS veyaCA

Alındı bilgisi alınan segment için çift ACK sayımını artırır.

CongWin and Threshold değişmez

Page 117: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-117

Fairness amacı: Eğer K TCP bağlantısı aynı R bant genişliğine sahip dar boğaz hattını paylaşıyorlarsa, her biri ortalama R/K iletim hızına sahip olmalıdır

TCP bağlantısı 1

Darboğaz yönlendiricikapasitesi R

TCP bağlantısı 2

TCP Fairness (Adalet)

Page 118: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-118

Why is TCP fair?İki yarışan bağlantı:

Toplamsal artış, çıktı arttıkça 45 derecelik eğim verirÇarpımsal düşüş çıktıyı (throughput) orantılı olarak azaltır

R

R

Eşit bant genişliği paylaşımı

Bağlantı 1 çıktısı

tıkanıklıktan kaçınma: toplamsal artışkayıp: pencere çarpımsal olarak azaltılır

tıkanıklıktan kaçınma: toplamsal artışkayıp: pencere çarpımsal olarak azaltılır

Page 119: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-119

AdaletAdalet ve UDP

Multimedia uygulamaları genellikle TCP kullanmazlar

Hızın tıkanıklık kontrolünden etkilenmesini istemezler

Yerine UDP kullanırlar:audio/video paketlerini sabit hızda gönderir, paket kaybını tolere edebilirler

Adalet ve paralel TCP bağlantılarıUygulamaların iki ana sistem arasında paralel bağlantı kurmalarını hiçbir şey engelleyemez.Web tarayıcıları bunu kullanır

Page 120: Taşıma Katmanı (Transport Layer)bilgisayar.kocaeli.edu.tr/files/49_3_tasima_katmani [Compatibility... · Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition

Taşıma Katmanı Transport Layer

3-120

Taşıma Katmanı: ÖzetTaşıma katmanı servisleri ardındaki presnsipler:

Çoklama, çoklamanın çözülmesi (multiplexing, demultiplexing)Güvenilir veri iletimi (reliable data transfer)Akış kontrolü (flow control)Tıkanıklık kontrolü (congestion control)

Tüm bunların Internet’tekiuygulamalarını gördük

UDPTCP

Haftaya:ağ “sınır”ından çıkıp(application, transport layers)Ağ “çekirdeği”ne geçiyoruz