Tcp Ile Udp Arasindaki Farki Bilmek

Bilgisayar mühendisi udp ile tcp farkını bilmek zorunda değil.

Neden bilmek zorunda oldugunu abstraction leak üzerinden anlatayim.

Evet, cogu zaman bilmek zorunda degil. Ama bilmesi gerektigi an geldiginde ve bu farki bilmediginde, gerekeni yapamaz ya da cözüm üretemez ya da sorunu cözemez.

OSI (Open Systems Interconnection) modeli ag iletisimi 7 katmana ayirir. En tepede uygulamanin kendisi vardir, asagiya indikce yapi somutlasir. Üst katmanlara ciktica soyutlama neticesinde alt katmanda ne oldugunu bilmeden kullanim kolaylasir.

Joel Spolsky söyle diyor abstraction leak konusunda:

> All non-trivial abstractions, to some degree, are leaky.

Bunun en güzel örnegi bir sistemin baska bir sisteme erismek icin alabilecegi Timeout hatasidir.

Programci altta ne olup bittigini bilmeden:

> socket.send(data);

islemi gerceklestirir. Bu OSI’nin en tepesindeki soyutlamadir ve ag icinde su islemler gerceklesiyor olabilir:

– Paketler kaybolabilir

– Retransmission gerekebilir

– ACKlar gecikmeli gelebilir

Yani kisaca send() metodu karsi tarafindan gönderilen verileri aldigini garantisi degildir.

Ama aniden timeout gelmeyen basladiginda programcinin muhattap olacagi konular söyledir:

– Tcp mi udp mi

– RTT (Round Trip Time)

– Retransmission timeout

– Sliding Window

– Congestion Window

Ne oldu? Artik soyutlama seviyesini terk edip, alt katmanin somut detaylari ile ugrasmak zorunda kaldik. Yani asagidan yukariya dogru soyutlik sizintisi oldu.

Soru su: hangi mühendis burada daha etkin olacaktir?

a.) Tcp ile udp arasindaki farki bilen

b.) Tcp ile udp arasindaki farki bilmeyen

Burada tcp ve udp aslinda bir metafor. Bu konulari incelemis bir yazilimci aslinda OSI’nin ne oldugunu, aglarin nasil isledigini ve karsilastigi sorunlari nasil cözebilecegini bilen birisidir.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir