Ana içeriğe geç

Bölüm 63:Son Söz

6 dakikalık okumaGüncelleme:

Ağlar'a “Sen”i Katmak yazısının parçası: adres çubuğuna yazdığın tek bir isteğin peşinden bakırla fiberin fiziğine kadar inen uzun bir teknik yolculuk.

Tüm bölümler
  1. Giriş
  2. Adres Çubuğundan İsteğe
  3. Paket Anahtarlamalı Yol
  4. İsimden Adrese
  5. Önbellek, Tazelik ve Güven
  6. Port Numarası ve Soket
  7. Bağlantısız Taşıma: UDP
  8. Üç Adımlı El Sıkışma
  9. Simetrik Şifreleme
  10. Açık Anahtarlı Kriptografi
  11. TLS El Sıkışması
  12. Sertifika Zinciri
  13. HTTP Mesajının Anatomisi
  14. Durum, Çerez ve Oturum
  15. HTTP/2'den HTTP/3'e
  16. İçerik Dağıtım Ağları
  17. Diğer Uygulama Protokolleri
  18. Katmanlı Mimari
  19. Kapsülleme ve Başlıklar
  20. Paket Yakalama ve Çözümleme
  21. Ağ Arayüz Kartı
  22. Fiziksel Adresleme
  23. Hata Sezme ve CRC
  24. Adres Çözümleme: ARP
  25. Anahtarlama ve Ortam Erişimi
  26. Ağ Topolojileri
  27. Sanal Yerel Ağlar
  28. Kablosuz Erişim: 802.11
  29. Radyo Kanalı ve Kapasite
  30. Kablosuz Ağ Güvenliği
  31. Hücresel Ağlar
  32. Spektrum ve Kuşaklar
  33. Hareketlilik ve Aktarma
  34. Adres Kiralama: DHCP
  35. Adresin Anatomisi
  36. Adres Tükenmesi ve IPv6
  37. Yönlendirici Mimarisi
  38. Kuyruk Yönetimi
  39. Cihaz Yapılandırma
  40. Yönlendirme Protokolleri
  41. Kontrol Düzlemi ve SDN
  42. Ağ İzleme ve Yönetimi
  43. Alanlar Arası Yönlendirme
  44. Adres Çevirisi
  45. Ara Kutular
  46. Tünelleme ve IPsec
  47. Güvenlik Duvarları
  48. Operatör ve Metro Ağları
  49. Bitten Sinyale
  50. Çoklama Teknikleri
  51. İletim Ortamları
  52. Kablo Sonlandırma
  53. Fiber Optik İletim
  54. Bakır Erişim Ağı: DSL
  55. Pasif Optik Ağlar
  56. Kablo Erişim Ağları
  57. Denizaltı Kabloları
  58. Veri Merkezi Ağları
  59. Kapsülleme Çözme
  60. Güvenilir Aktarım
  61. Tıkanıklık Denetimi
  62. Trafik Çözümleme
  63. Gecikme Bütçesi
  64. Son Söz

Bitirdin.

Altmış bir durak önce adres çubuğuna bir şey yazmıştın ve ilk bayt geri döndü. Aradaki yolun her metresini gördün: ismin sayıya çevrildiği masayı, kapının numarasını, el sıkışan üç mesajı, kilidin kurulduğu anı, zarfın içine giren zarfı, kartın verdiği kararı, anahtarın öğrendiği tabloyu, yönlendiricinin en uzun öneki, kimsenin haritasını tutmadığı otonom sistemleri, camın içindeki ışığı ve karşı tarafta katman katman soyulan paketi.

Artık ağa “çalışan bir şey” diye bakamazsın. Baktığın şey, kimsenin tamamını bilmediği, hiçbir merkezin yönetmediği, her durağında yerel karar verilen ve buna rağmen çalışan bir düzen.

Bu kitabı okumadan önce de bu sayfaları açabiliyordun. Değişen şey erişim olmadı; görüş oldu. Artık bir sayfa geç açıldığında sorunun nerede olabileceğini biliyorsun: isim çözümlemesi mi uzadı, el sıkışma mı fazla tur harcadı, kuyruk mu doldu, yoksa darboğaz senin hattında değil karşı tarafın çıkışında mı. Aynı belirtiyi dört ayrı katmana ayırabilmek, bu kitabın verdiği asıl beceri.

Bu bölümde neyi kapatıyoruz?

  • Yolculuğun tamamını tek bir zincir hâlinde yerine oturtacağız.
  • Girişte sorduğum üç omurga sorusunu yan yana koyup birbirine bağlayacağız.
  • Kitabın neleri kasten dışarıda bıraktığını netleştireceğiz.
  • Katmanlı tasarımın kime neyi ödettiğini göstereceğiz.

Büyük Resim

Yolculuğun tamamı tek bir zincir. Her halka bir bölüme çözülüyor:

  1. Metin adres çubuğunda parçalarına ayrılıyor ve tarayıcı ağa çıkmadan önce ceplerini yokluyor — 1. bölüm. 2. Yolun paket anahtarlamayla çalıştığı, hiçbir kutunun yolun tamamını bilmediği ortaya çıkıyor — 2. bölüm. 3. İsim, kökten yetkiliye uzanan bir zincirle sayıya çevriliyor — 3. bölüm. 4. Gelen cevabın çoğu zaman hiyerarşiden değil bir depodan geldiği anlaşılıyor — 4. bölüm.
  2. Adres makineyi gösteriyor, süreci gösteren ikinci sayı devreye giriyor — 5. bölüm. 6. Üç mesajla bir bağlantı kuruluyor ve iki taraf başlangıç numaralarını değiş tokuş ediyor — 7. bölüm. 7. Kilit taşımanın üstüne takılıyor; tek gidiş-dönüşte anahtar kuruluyor — 10. bölüm. 8. İstek nihayet yazılıyor ve sunucu onu hangi siteye ait olduğunu başlıktan öğreniyor — 12. bölüm. 9. Aynı veri her katmanda bir zarf daha giyiyor — 18. bölüm. 10. Kart çerçeveyi okuyor ve adres eşleşmezse gerisini hiç okumadan bırakıyor — 21. bölüm. 11. Anahtar hangi adresin hangi kabloda olduğunu kendi öğreniyor — 24. bölüm. 12. Yönlendirici en uzun öneki seçiyor ve paketi bir sonraki durağa itiyor — 36. bölüm. 13. Otonom sistemler birbirine yol ilan ediyor; kimse haritanın tamamını tutmuyor — 42. bölüm. 14. Bitler cama giriyor, kıtayı geçiyor, karşı tarafta soyuluyor ve ilk bayt geri dönüyor — 52. bölüm ve 62. bölüm.

Üç soru, birlikte

Girişte üç soru sormuştum ve üçünü ayrı bölümlerde kapattık. Şimdi yan yana koyalım, çünkü üçü aynı fikrin üç yüzü.

Bir isim nasıl adrese dönüşüyor ve bunu sana kim söylüyor? Sorumluluk bölünerek. Kimse bütün adları bilmiyor; her basamak yalnızca bir sonraki basamağı gösteriyor. Sana söyleyen ise hiyerarşinin kendisi değil, onun müşterisi olan resolver.

Kaybolabilen bir yolun üstünde kaybolmayan bir aktarım nasıl kuruluyor? Zekâyı uçlara koyarak. Ağ teslim sözü vermiyor; sözü veren, iki uçtaki yazılım.

Kimsenin yolun tamamını bilmediği bir ağda paket yolunu nasıl buluyor? Yerel kararla. Her kutu yalnızca bir sonraki durağı seçiyor ve doğru yol bu seçimlerin toplamından çıkıyor.

Üçünün ortak cevabı tek cümlede duruyor: internet, merkezî bilgiyi yerel karara çevirerek ölçekleniyor. Ölçeklenmesinin sebebi budur, ve kırılganlıklarının da.

Kitabın kasten dışarıda bıraktıkları

Dürüst olmak gerekiyor: bu kitap her şeyi anlatmadı ve anlatmadıklarının bir kısmı bilinçli seçimdi.

Türetmeleri geçtim. Kitap boyunca formül kullandım ve hesap yaptım: Shannon kanal kapasitesini, Snell yasasından kritik açıyı, Hamming uzaklığının sezme ve düzeltme eşiklerini, kayıp oranıyla hızın ters karekök ilişkisini, hücre kümesinin neden yalnızca belli sayılarda kurulabildiğini. Ama hiçbirini kanıtlamadım. Shannon’ın sınırı nereden çıkıyor, ALOHA’nın veriminin niçin tam olarak 1/(2e) olduğu, testere dişinin ortalamasının niçin karekökle ölçüldüğü — üçünün de arkasında bu kitapta açmadığım bir olasılık ve bilgi kuramı katmanı var.

Ayrım şu: formülü kullanmak için ne söylediğini bilmek yeter, ve o kadarını verdim. Türetmek için başka bir kitap gerekiyor. Burada tek bir isteğin yolculuğunu izledik, her durağın altındaki teoriyi değil.

İşletim ve tasarım da dışarıda. Bir ağı nasıl boyutlandıracağın, hangi topolojiyi neye göre seçeceğin, kapasite planlamasının nasıl yapıldığı ayrı bir kitabın konusu. Aynı şekilde saldırı ve savunma tarafına yalnızca yolun üstünde denk geldiğimiz kadarıyla değdik.

Bir de zamanın kendisi var. Bu kitaptaki güncel sayılar 2026 ölçümleridir ve bir kısmı birkaç yıl içinde eskiyecek. Mekanizmalar eskimeyecek; oranlar eskiyecek. Hangisinin hangisi olduğunu ayırt edebilmen için her sayının yanına kaynağını ve tarihini yazdım.

Katmanlı tasarımın bedeli

Kitap boyunca katmanların işi kolaylaştırdığını gördük. Kolaylaştırmayan taraflarını da gördük ve toplamak gerekiyor.

Her katman kendi başlığını ekliyor; küçük paketlerde taşınan verinin yarısı başlık olabiliyor. Her katman bir üstündekinden habersiz çalıştığı için aynı iş iki kez yapılabiliyor — sağlama toplamı üç ayrı katmanda hesaplanıyor. Ve bir katmanın verdiği söz üstündekinin ihtiyacına tam oturmayınca, aradaki fark yeni bir katmanla kapatılıyor.

Buna rağmen kimse katmanları kaldırmadı. Sebep şu: katman bir performans tercihi değil, bir değiştirilebilirlik tercihi. Kablonun bakırdan cama geçmesi üstteki hiçbir şeyi bozmadıysa, bedeli ödemeye değmiş demektir.

Bunun bir de teknik olmayan yüzü var. İnterneti ayakta tutan şey yalnızca protokoller değildir; aynı zamanda anlaşmalardır. İki operatörün trafiği karşılıklı taşımayı kabul etmesi, bir kayıt kuruluşunun alan adını devretmesi, bir standart kuruluşunun bir sayıyı tahsis etmesi — bunların hiçbiri kodda yazmıyor. Kitap boyunca birkaç kez, teknik olarak mümkün olan bir şeyin ticari olarak yapılmadığını gördük. Ağın şeklini belirleyen şey çoğu zaman mühendisliğin sınırı olmuyor; kimin kiminle anlaştığı oluyor.

Buradan Sonra Nereye?

Dört somut yol var.

Kendi ağını ölç. Elindeki komutlar artık yabancı değil: dig, ss, ip route, traceroute, tcpdump. Kendi makinenden bir sayfa açıp trafiği baştan sona izle; bu kitabın tamamı o çıktının içinde duruyor.

Standardı kaynağından oku. Bir protokolü gerçekten bilmek, RFC’sini açmakla başlıyor. RFC 9293 (TCP), RFC 8446 (TLS 1.3), RFC 9110 (HTTP) ve RFC 1035 (DNS) iyi bir başlangıç. Metinlerin dili kuru ama tuzağı yok: her belge kendinden önceki numarayı hangi noktada geçersiz kıldığını başında söylüyor. Sayı ararken de aynı yere bak — bir alanın kaç bit olduğunu ikinci elden okumak yerine tanımlandığı satırdan okumak, bu kitabın da yöntemiydi.

Bir laboratuvar kur. Sanal makinelerle iki alt ağ ve bir yönlendirici, kitaptaki bölümlerin yarısını elle tekrarlatır. Maskeyi bir bit kaydır ve iki makinenin birbirini görmez olmasını izle; varsayılan yolu sil ve yerel ağın hâlâ çalıştığını gör. Yanlış yapılandırdığında öğrendiğin şey, doğru yapılandırdığında öğrendiğinden fazla.

Klasiklere geç. Kurose ve Ross’un Computer Networking: A Top-Down Approach kitabı bu kitabın da omurgasıydı. Yanına Tanenbaum’un Computer Networks’ü, derinlik için Stevens’ın TCP/IP Illustrated serisi ve tasarım gerekçesi için Peterson ile Davie’nin Computer Networks: A Systems Approach kitabı konabilir.

Bonus: Küçük Notlar

Kitapta yeri gelmeyen birkaç şey.

Ethernet’in adı, ışığı taşıdığı varsayılan ve sonradan var olmadığı anlaşılan “eter”den geliyor. ping komutunun adını yazan mühendis, denizaltı sonarının sesinden esinlendiğini söylemişti. Ve internet üzerinden geçen trafiğin büyük kısmı, kıtaları birbirine bağlayan ve bir bahçe hortumundan kalın olmayan kablolardan geçiyor.

Bir de teşekkür. Bu kitap ders kitaplarına, Türkçe ders serilerine ve onlarca standart metnine dayanıyor; bu alanı yazanların emeği olmasa hiçbiri yazılamazdı. Bir hata bulursan ya da bir bölüm sende oturmadıysa, söylemen bu kitabı düzeltir.

Bitirirken bir şey daha söylemek istiyorum. Bu yolculuk boyunca en çok tekrarlanan fikir, hiçbir parçanın bütünü bilmemesiydi. Tarayıcı ağı bilmiyordu, kart yolu bilmiyordu, anahtar hedefi bilmiyordu, yönlendirici yolun tamamını bilmiyordu, otonom sistem komşusunun içini hiç görmüyordu. Her biri yalnızca kendi bir adımını doğru yaptı.

Bu, mühendislikte pek rastlanmayan bir başarı. Milyarlarca makine, tek bir merkez olmadan, kimsenin izin vermesini beklemeden, birbirine yalnızca sınırda anlaşarak çalışıyor. İşin zor tarafı da bu: kimse tamamından sorumlu olmadığı için, kimse tamamını da düzeltemiyor.

Adres çubuğu hâlâ orada. Bir dahaki sefere Enter’a bastığında, arada ne olduğunu biliyor olacaksın.