Ana içeriğe geç

Bölüm 39: Router Mimarisi

13 dakikalık okumaGüncelleme:

Ağlar'a “Sen”i Katmak kitabının bir bölümü: adres çubuğuna yazdığın tek bir isteğin peşinden bakırla fiberin fiziğine inip karşı taraftan geri dönen uzun bir teknik yolculuk.

Kısım 6: Router'dan Router'a (Bölüm 37-44)

Tüm bölümler
  1. Giriş
  2. Adres Çubuğundan İsteğe
  3. Paket Anahtarlamalı Yol
  4. İsimden Adrese
  5. DNS Kayıtları
  6. Önbellek, Tazelik ve Güven
  7. Port Numarası ve Soket
  8. Bağlantısız Taşıma: UDP
  9. Üç Adımlı El Sıkışma
  10. Simetrik Şifreleme
  11. Açık Anahtarlı Kriptografi
  12. TLS El Sıkışması
  13. Sertifika Zinciri
  14. HTTP Mesajının Anatomisi
  15. Durum, Çerez ve Oturum
  16. HTTP/2'den HTTP/3'e
  17. İçerik Dağıtım Ağları
  18. Diğer Uygulama Protokolleri
  19. Katmanlı Mimari
  20. Hizmet ve Protokol
  21. Encapsulation ve Başlıklar
  22. Paket Yakalama ve Çözümleme
  23. Ağ Interface Kartı
  24. Fiziksel Adresleme
  25. Hata Sezme ve CRC
  26. Adres Çözümleme: ARP
  27. Ortam Erişimi: CSMA/CD
  28. Switch'ler
  29. Ağ Topolojileri
  30. Sanal Yerel Ağlar
  31. Kablosuz Erişim: 802.11
  32. Radyo Kanalı ve Kapasite
  33. Kablosuz Ağ Güvenliği
  34. Hücresel Ağlar
  35. Spektrum ve Kuşaklar
  36. Hareketlilik ve Aktarma
  37. Adres Kiralama: DHCP
  38. Adresin Anatomisi
  39. Adres Tükenmesi ve IPv6
  40. Router Mimarisi
  41. Kuyruk Yönetimi
  42. Cihaz Yapılandırma
  43. Routing Protokolleri
  44. Kontrol Düzlemi ve SDN
  45. Ağ İzleme ve Yönetimi
  46. Alanlar Arası Routing
  47. Adres Çevirisi
  48. Ara Kutular
  49. Tünelleme ve IPsec
  50. Firewall'lar
  51. Ağ Saldırıları
  52. Operatör ve Metro Ağları
  53. Bitten Sinyale
  54. Sembol Hızı ve Kanal Kapasitesi
  55. Multiplexing Teknikleri
  56. İletim Ortamları
  57. Bakır Kablo Sonlandırma
  58. Fiber Sonlandırma
  59. Fiber Optik İletim
  60. Bakır Erişim Ağı: DSL
  61. DSL'de Hız ve Mesafe
  62. Pasif Optik Ağlar
  63. Kablo Erişim Ağları
  64. Kablo Modem ve CMTS
  65. Denizaltı Kabloları
  66. Veri Merkezi Ağları
  67. Encapsulation Çözme
  68. Güvenilir Aktarım
  69. Tıkanıklık Denetimi
  70. Trafik Çözümleme
  71. Gecikme Bütçesi
  72. Soket Programlama
  73. Eşten Eşe ve Protokol Tasarımı
  74. Uyarlanır Video Akışı
  75. Gerçek Zamanlı Ses ve Görüntü
  76. Kablosuz Sensör Ağlarının Mimarisi
  77. Sensör Ağlarında Ortam Erişimi
  78. Sensör Ağlarında Yönlendirme ve IP
  79. Zaman Eşitleme ve Konum Bulma
  80. Sensör Ağı Uygulamaları
  81. Mobil Kablosuz Sensör Ağları
  82. Son Söz

Yolun tamamını bilen bir makine yok. Paketi alan router (yönlendirici) yalnızca bir sonraki adımı biliyor ve kararını o adımda veriyor.

Bu kutuyu şimdiye kadar kapalı tuttum. Kapağını açıyorum: içeride hedefi arayan bir tablo, portları birbirine bağlayan bir doku ve nanosaniyeyle ölçülen bir bütçe var. Karar bu kadar hızlı nasıl çıkıyor?

Router içeride kaç iş yapıyor?

Network layer’ın iki ayrı işi var. Tek bir paketi doğru kabloya itmeye iletme (forwarding), o kabloyu söyleyen tabloyu doldurmaya routing demiştim; ikisi kutunun içinde ayrı yerlerde yaşıyor. İletme her kutuda ayrı koşan veri düzleminin (data plane) işi, routing ağ çapında çalışan kontrol düzleminin (control plane). Bu bölümün konusu birincisi.

Kapağı kaldırdığında dört parça görüyorsun: giriş portları, yüksek hızlı bir anahtarlama dokusu (switch fabric), çıkış portları ve bir routing işlemcisi. Doku, giriş portlarını çıkış portlarına bağlayan iç ağdır.

Aradaki hız farkı altı basamak. İletme donanımda yapılır ve nanosaniye ölçeğinde çalışır; routing ile yönetim yazılımdır ve milisaniye ölçeğinde çalışır.

Nanosaniye ölçeği somut bir bütçe demek. En küçük Ethernet frame’inin telde 84 bayt yer kapladığını 22. bölümde görmüştük. 10 Gbit/s’lik bir hatta bu frame’lerden tam yükte saniyede yaklaşık 14,9 milyon tanesi geçiyor. Paket başına işlem bütçesi 67 ns; bugünkü 400 Gbit/s’lik bir portta 1,7 ns’ye iniyor. Giriş portunun hedefi işini hat hızında bitirmektir; yetişemezse tampon dolar ve paket düşer. Router’ın içindeki bütün tasarım baskısı bu tek cümleden çıkıyor.

Bütçenin içine sabit bir iş de giriyor. IPv4 başlığındaki alanları tek tek adlandırmıştım; TTL o başlığın 8 bitlik alanıydı. Datagram her router’dan geçtiğinde bu sayaç bir azalır, sıfırlandığında da atılır. Böylece hiçbir datagram sonsuza dek dolaşamaz. TTL her atlamada değiştiği için 16 bitlik başlık sağlaması da yenilenmek zorunda. Router onu baştan hesaplamaz; RFC 1624’teki artımlı yöntemle yalnızca değişen alanın farkını ekler. 38. bölümde IPv6’nın başlık sağlamasını tümden atmasının sebebi de bu iş yüküydü.

Tablodaki bir satır ne söylüyor?

Routing tablosundaki her satır dört şey taşır: ağ hedefi, alt ağ maskesi, bir sonraki durak ve çıkış interface’i. Ağ hedefi tek başına kullanılmaz; satırı bir öneke çeviren şey yanındaki maskedir.

Maske bir adresi ağ ve makine parçasına bölüyor, CIDR yazımı da önek uzunluğunu taşıyordu. Tablo aynı ayrımı kullanıyor: her hedef ağ için bir satır vardır, her hedef makine için değil. Datagram hedef ağa bağlı router’a ulaştığında dağıtımı o yapar.

Tablonun ilk satırlarını ise kimse yazmamıştır. Router’ın bir ağa fiziksel olarak bağlı interface’i varsa o ağa nasıl ulaşacağını zaten bilir; bunlara doğrudan bağlı yollar denir.

Aynı hedefe birden çok satır çıkarsa aradaki farkı metrik açar. Metrik bir yolun kullanım maliyetidir: RIP’te atlama sayısı, OSPF’te bağlantı hızından türetilen bir maliyet. Aynı kaynaktan gelen iki satırı en düşük metrik ayırır; farklı kaynaklardan gelenlerin nasıl elendiğini birazdan göreceğiz.

Bir de her adrese uyan bir satır var. Varsayılan yol, hedefi ve maskesi 0.0.0.0 olan satırla yazılır. Maskesi sıfır olduğu için hiçbir bit eşleşmesi aramaz; önek uzunluğu da sıfırdır. Makinenin varsayılan geçide neden yöneldiğini biliyorsun; ev router’ının tablosundaki karşılığı bu satır.

Aslında ortada iki tablo var ve adları ayrı. Routing protokollerinin öğrendiği her şeyin toplandığı, aday yolların yan yana durduğu tabloya RIB (Routing Information Base) deniyor. Karar verilip donanıma indirilen, iletmenin gerçekten baktığı sadeleşmiş kopyaya ise FIB (Forwarding Information Base). RIB yazılımda yaşıyor ve büyük olabilir; FIB donanımda duruyor ve her paket için nanosaniyeler içinde okunmak zorunda. 2. bölümde iletme tablosu (forwarding table) demiştim; ders kitaplarının bu adla anlattığı şey FIB’dir. Türkçede ikisine de çoğu zaman yönlendirme tablosu denir, ayrım RIB’in yazılımın öğrendiği, FIB’in donanımın okuduğu tablo olmasında.

Gerçek bir tablo çıktısında her satırın başında kaynağını söyleyen bir harf durur. C doğrudan bağlı, S elle yazılmış statik demektir. R ve O ise routing protokollerinden öğrenilmiş satırlardır. Bu satırların oraya nasıl geldiğini burada bırakıyorum; router’ların aynı haritada nasıl yakınsadığını 42. bölümde göreceğiz.

Gerçek bir tablo neye benziyor?

Şimdiye kadar tabloyu tarif ettim; artık bakma zamanı. Aşağıdaki çıktı bir kenar router’ın tablosu ve her satırı okumaya değer:

Gateway of last resort is 203.0.113.2 to network 0.0.0.0

S*    0.0.0.0/0 [1/0] via 203.0.113.2
      10.0.0.0/16 is subnetted, 1 subnets
O        10.20.0.0 [110/65] via 203.0.113.2, 00:14:22, Serial0/0/0
      192.0.2.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.0.2.0/24 is directly connected, GigabitEthernet0/0
L        192.0.2.1/32 is directly connected, GigabitEthernet0/0
S     198.51.100.0/24 [1/0] via 203.0.113.2
      203.0.113.0/24 is variably subnetted, 2 subnets, 2 masks
C        203.0.113.0/30 is directly connected, Serial0/0/0
L        203.0.113.1/32 is directly connected, Serial0/0/0

Baştaki harf satırın nereden geldiğini söylüyor:

harfkaynakadministrative distance
Cdoğrudan bağlı ağ0
Linterface’in kendi adresi, /32 yerel yol0
Selle yazılmış statik yol1
OOSPF ile öğrenilmiş110
RRIP ile öğrenilmiş120
BBGP ile öğrenilmiş20 / 200

Köşeli parantezin içindeki iki sayı da ayrı şeyler söylüyor: soldaki administrative distance, sağdaki metrik. İkisini karıştırmak yaygın bir hata. Administrative distance kaynaklar arasında seçim yapar: aynı ağa hem statik hem OSPF yol geldiyse statik kazanır, çünkü 1 < 110. Metrik ise aynı kaynağın iki yolu arasında seçim yapar. Uzaklık eşit değilse metriğe hiç bakılmaz. OSPF satırındaki 65 de bir toplam: seri hattın maliyeti 64, arkadaki Ethernet’inki 1. OSPF maliyeti bağlantı hızından hesaplıyor; yavaş hat pahalı.

S* satırındaki yıldız o yolun son çare geçidi olduğunu, yani hiçbir satır tutmazsa paketin oraya gideceğini işaretliyor.

L satırı ilk bakışta gereksiz görünüyor: 192.0.2.1/32 zaten 192.0.2.0/24 içinde. Ama ikisi farklı iş yapıyor. /24 satırı “bu ağa frame yazabilirim” derken, /32 satırı “bu adres benim, paketi yukarı ver” diyor. En uzun önek eşleşmesi ikisini kendiliğinden ayırıyor.

Aynı tablonun bir Linux router’daki hâli daha az süslü ama aynı bilgiyi taşıyor:

$ ip route
default via 203.0.113.2 dev eth1 proto static metric 100
192.0.2.0/24 dev eth0 proto kernel scope link src 192.0.2.1
198.51.100.0/24 via 203.0.113.2 dev eth1 proto static
203.0.113.0/30 dev eth1 proto kernel scope link src 203.0.113.1

proto kernel doğrudan bağlıya, proto static elle yazılana karşılık geliyor. scope link ise “bu hedefe ulaşmak için bir sonraki durak yok, doğrudan komşu” demek; via yazmayan her satır böyle. Windows tarafında aynı tabloyu route print basar.

Bir sonraki durak da aranmak zorunda

Tablodaki via 203.0.113.2 satırına dikkatli bak: bir IP adresi yazıyor, bir interface değil. Router o paketi kabloya koyabilmek için hangi interface’ten çıkacağını bilmeli ve bunu ancak 203.0.113.2 adresini tabloda ikinci kez arayarak bulabilir. İşlemin adı özyinelemeli arama.

İkinci arama 203.0.113.0/30 satırına düşüyor, o satır Serial0/0/0 diyor, iş bitiyor. Zincirin doğrudan bağlı bir satırda bitmesi şart; bitmezse yol etkin değil sayılır ve tabloya hiç yazılmaz.

Bunun çok somut bir arıza karşılığı var. Statik bir yol yazdın, komutu kabul edildi, ama show ip route çıktısında satır görünmüyor. Sebebi neredeyse her zaman budur: yazdığın bir sonraki durak adresi, tabloda çözülemiyor. Satır yanlış değil, ulaşılamaz.

Zincirin son halkasında bir arama daha var ve o artık network layer’da değil. Çıkış interface’i ile bir sonraki durağın IP adresi belli; kabloya yazılacak frame’in hedef MAC adresi ise belli değil. Komşunun donanım adresini soran mekanizmayı 25. bölümde görmüştük. Tek bir paketin iletilmesi bu yüzden üç ayrı aramaya dayanıyor: hedef için önek eşleşmesi, bir sonraki durak için özyinelemeli arama ve komşu için adres çözümlemesi.

Gerçek router’lar bu üçünü her pakette yeniden yapmaz. FIB kurulurken özyineleme bir kez çözülür, komşunun MAC adresi de frame’e yazılacak hazır bir başlık olarak satıra iliştirilir. Paket başına tek bir arama kalır. RIB ile FIB’in ayrı tablolar olmasının asıl sebebi bu.

İki adres çifti, iki ayrı ömür

Üç aramanın sonucuna bir de paketin gözünden bakalım, çünkü ağ öğrenirken en çok karıştırılan yer burası.

Diyelim ki bir paket A’dan çıkıp iki router geçerek B’ye varıyor. Yolculuğun tamamında IP adresleri hiç değişmiyor: kaynak A, hedef B, ilk kabloda da son kabloda da. Değişen şey frame’in adresleri. Her kabloda frame baştan yazılıyor ve iki MAC alanı yalnızca o kablonun iki ucunu gösteriyor.

kablokaynak MAChedef MACkaynak IPhedef IP
A — Y1AY1AB
Y1 — Y2Y1Y2AB
Y2 — BY2BAB

Sağdaki iki sütun sabit, soldaki iki sütun her satırda değişiyor. Sebebi katmanların iş bölümü: IP adresi yolculuğun iki ucunu adlandırıyor, MAC adresi ise yalnızca içinde bulunduğu kablonun iki ucunu. Frame bir kablonun ötesine geçemiyor, paket geçiyor.

Bunun iki somut sonucu var. Hedefin donanım adresini yol boyunca hiçbir router bilmiyor ve bilmesi de gerekmiyor; her biri yalnızca bir sonraki komşusununkini biliyor. İkincisi, B’ye varan frame’in kaynak MAC alanında A değil son router yazıyor; B, A’nın donanım adresini hiçbir zaman görmüyor.

Tablo yalnızca router’lara ait bir şey de değil. Az önce andığım default gateway, ev makinesinde de böyle bir tablonun ilk satırında duruyor.

Aynı adrese üç satır uyuyorsa hangisi kazanır?

Arama merkezde yapılmaz. İletme tablosunun bir kopyası her giriş portunda durur ve port, başlık alanlarına bakıp çıkış portunu kendi başına bulur. Buna merkezsiz anahtarlama denir. Merkezî tek bir arama birimi olsaydı bütün portların toplam yükünü aynı 67 ns’lik bütçenin içinde tek başına işlemek zorunda kalırdı. Darboğaz hesap değil, tabloya bakma hızıdır. Tabloyu her porta kopyalamak, tek bir birimi N kat hızlandırmaktan ucuza geliyor.

Bir taşıyıcı router'ın hat kartı: ön kenarında dört fiber port, kartın üstünde yongalar ve bellek modülleri. İletme tablosunun kopyası bu kartın üstünde durur ve çıkış portu merkeze sorulmadan burada bulunur.

Giriş portundaki işin adı da bellidir: eşleştir ve uygula. Önce tabloda hedefe uyan satır bulunur, sonra o satırın söylediği eylem yapılır.

Eşleştirmenin kuralı kısa. Verilen bir hedef adres için tabloda bakarken, adrese uyan öneklerin en uzunu seçilir. Buna en uzun önek eşleşmesi deniyor ve birden çok satırın uyması normaldir. Kazanan, daha çok bit sabitleyen satırdır.

Dört satırlık bir tabloyla bakalım:

önekkapsadığı adresçıkış interface’i
203.0.113.0/242561
203.0.113.128/251282
203.0.113.160/27323
0.0.0.0/0hepsi0

Hedef 203.0.113.170 gelsin. Üç özgül satır da uyar. Son oktet 170, ikili yazımla 10101010; /25 maskesiyle VE işleminin sonucu 128, /27 maskesiyle 160 çıkar ve ikisi de kendi satırının değeriyle tutar. En uzun önek /27 olduğu için paket üçüncü interface’e gider.

Hedef 203.0.113.140 için sonuç değişir: son oktet /27 maskesinden geçince 128 çıkar ve satırın 160’ıyla tutmaz, o yüzden kazanan /25 olur. 203.0.113.5 için geriye yalnızca /24 kalır. 198.51.100.7 için hiçbir özgül satır tutmaz ve varsayılan satır devreye girer.

Her ek önek biti kapsanan adres sayısını yarıya indiriyor. Tablo adres aralıklarıyla kurulsaydı, bir aralığın ortasındaki küçük bir kümeyi başka porta göndermek için aralığı parçalara bölmen gerekirdi. En uzun önek eşleşmesi bu bölmeyi gereksiz kılıyor. Özel durumu daha uzun bir önekle yazarsın; genel kural olduğu yerde kalır.

Bir adresin tablodaki hangi satırlara uyduğunu, hangisinin kazandığını izleyelim:

Aynı adres üç satıra uyduğunda hangisi kazanıyor
iletme tablosuher adrese uyar203.0.113.170gelen datagramın hedef adresi203.0.113.0/24256 adresarayüz 1203.0.113.128/25128 adresarayüz 2203.0.113.160/2732 adresarayüz 30.0.0.0/0bütün adreslerarayüz 0üçüncü interfaceeşleştieşleştien uzun eşleşme
Adres giriş portuna geliyor. Hedef 203.0.113.170. Karar yalnızca bu adresle tablodaki satırların karşılaştırılmasından çıkıyor; başka hiçbir alana bakılmıyor.
  1. Adres giriş portuna geliyor. Hedef 203.0.113.170. Karar yalnızca bu adresle tablodaki satırların karşılaştırılmasından çıkıyor; başka hiçbir alana bakılmıyor.
  2. İlk satır tutuyor. Adresin ilk üç okteti satırınkiyle aynı, yani /24 öneki eşleşiyor. Bu satır tek başına kalsaydı paket birinci interface'den çıkacaktı.
  3. İkinci satır da tutuyor. Son oktet 170, ikili yazımla 10101010. /25 maskesiyle VE işleminin sonucu 128 ve satırın kendi değeriyle aynı; aday sayısı ikiye çıkıyor.
  4. En uzun önek kazanıyor. 170 sayısının /27 maskesiyle VE sonucu 160 ve o satırla da tutuyor. Üç aday içinde en çok bit sabitleyen /27, karar onun.
  5. Karar çıkışa dönüşüyor. Paket üçüncü interface'e veriliyor. Alttaki varsayılan satır bu adrese de uyuyordu, ama uzunluğu sıfır olduğu için her yarışı kaybediyor.

Kural belli, ama bütçe hâlâ 67 ns. Tabloda binlerce satır var ve her biri için bir maskeleme, bir karşılaştırma gerekiyor. Bunları tek tek yapmak o bütçeye sığmıyor; sığdıran şey belleğin türü oluyor. En uzun önek eşleşmesi genellikle üçlü içerik adresli bellek (TCAM) ile yapılır. Sıradan bellekte adres verip içerik alırsın; burada içerik verip adres alırsın. Üçlü olmasının sebebi her bitin üç durum taşıyabilmesi: 0, 1 ve umursama. Maskenin donanımdaki karşılığı o üçüncü durum. Adresi verdiğinde bütün satırlar aynı anda karşılaştırılır ve cevap tek saat çevriminde çıkar.

Bunun bir bedeli var. Bütün satırları aynı anda karşılaştırabilmek için her satır kendi karşılaştırıcısını taşımak zorunda. Bu yüzden üçlü bellek sıradan bellekten pahalıdır ve her aramada daha çok güç harcar. Fatura satır başına yazılıyor: tablo büyüdükçe kutu da pahalılaşıyor. İnternetin tam tablosunu taşıyan büyük router’ların çoğu bu yüzden TCAM’i yalnızca bir kısım için kullanıyor, geri kalanını ağaç biçimli algoritmik aramalarla sıradan belleğe sığdırıyor.

Kuralın bir de sınırı var: geleneksel iletme yalnızca hedef adrese bakar, oysa karar başlıktaki başka alanlara da bağlanabilir. Bu genişlemeyi 43. bölümde, kontrol düzlemi kutudan söküldüğünde akış kurallarıyla birlikte açacağız.

Paketi çıkışa kim taşıyor?

Anahtarlama hızı, paketlerin girişlerden çıkışlara aktarılabildiği hızdır ve genellikle hat hızının katı olarak ölçülür. N girişli bir router’da istenen değer hat hızının N katıdır. Dokunun üç ana türü var.

Birincisi bellek üzerinden anahtarlama. İlk kuşak router’lar sıradan bilgisayarlardı; anahtarlama doğrudan işlemcinin denetimindeydi ve paket sistem belleğine kopyalanıyordu. Her datagram veri yolunu iki kez geçtiği için hızı bellek bant genişliği sınırlıyordu.

İkincisi ortak veri yolu üzerinden anahtarlama. Darboğaz yolun kendisidir: aynı anda tek paket geçebildiği için hız veri yolunun bant genişliğine takılır; buna yol çekişmesi denir. Örnek bir erişim router’ında bu tavan 32 Gbit/s’lik bir veri yoludur.

Üçüncüsü ara bağlantı ağı. Büyük bir switch, daha küçük switch’lerin birkaç aşamasından kurulur; çapraz çubuk ve Clos ağları bu aileye girer. Fikir de yeni değildir. Clos ağının adı, 1953’te bu düzeni telefon santralleri için öneren Bell Labs mühendisi Charles Clos’tan geliyor; aynı fikir sonra çok işlemcili bilgisayarlarda işlemcileri bağlamak için kullanıldı. Bugünkü veri merkezlerinin leaf-spine ağları da onun bina ölçeğindeki hâli.

Paralelliği kullanmanın bir bedeli var. Datagram girişte sabit uzunlukta hücrelere bölünür, hücreler dokudan geçirilir ve çıkışta yeniden birleştirilir. Doku değişken boyutlu paketi değil, eşit boyda parçaları taşıyor.

Ölçeklenmenin yolu ise dokuyu çoğaltmak. Örnek bir taşıyıcı router’ın temel birimi 8 anahtarlama düzlemi. Her düzlem üç aşamalı bir ara bağlantı ağı; toplam kapasite yüzlerce Tbit/s’ye çıkıyor.

Kuyruk kutunun neresinde oluşuyor?

Kuyruk kutunun içinde iki ayrı noktada birikebilir ve ikisinin sebebi ayrıdır.

Doku, giriş portlarının toplamından yavaşsa kuyruk giriş tarafında oluşur ve tampon taşarsa gecikme ile kayıp doğar. Bir de çıkış portu çekişmesi var: aynı çıkışa giden iki datagramdan yalnızca biri aktarılabilir, öbürü bekler.

Bekleyen paket kuyruğun önündeyse arkasındakileri de durdurur. Baş engellemesini 15. bölümde application layer’da görmüştün; burası aynı kusurun donanımdaki karşılığı. Öndeki paket başka bir çıkış için beklerken, arkasındakinin gideceği çıkış çoktan boşalmış olabilir. Yine de kımıldayamaz. Bugünkü büyük router’lar bunu her giriş portunda her çıkış için ayrı bir kuyruk tutarak çözüyor (virtual output queue); öndeki paket beklerken başka çıkışa gidenler kendi kuyruklarından akabiliyor.

Çıkış tarafındaki kuyruğun sebebi bunun tersi. Doku hattan hızlı çalışıyorsa datagramlar çıkış portuna, hattın iletim hızından daha hızlı gelir. Orada biriken şey bu hız farkının kendisi.

Tampon dolduğunda iş politikaya dönüşüyor. Hangi datagramın atılacağı bir düşürme politikasıdır. Hangi paketin sıradaki olarak gönderileceği ise ayrı bir zamanlama disiplinidir. İkisini de 40. bölümde açacağız.

2. bölümde gecikmenin dört bileşenini ayırmış, kuyruk gecikmesini tek başına bırakmıştık. Artık o kuyruğun fiziksel yerini biliyorsun. Paketin başına gelen şey yolun uzunluğu değil, bu kutunun içindeki doluluk.

Özet

  • İletme yerel bir iştir: karar tek bir kutunun içinde, giriş portuna gelen datagramın hangi çıkışa verileceği sorusuyla sınırlıdır.
  • Arama girişte yapılır: tablonun kopyası her giriş portunda durduğu için port, eşleştir ve uygula adımlarını merkeze sormadan yürütür.
  • En uzun önek kazanır: aynı adrese birden çok satır uyabilir ve seçilen, daha çok bit sabitleyen satırdır; varsayılan satır sıfır bitle her yarışı kaybeder.
  • Administrative distance ile metrik ayrı işler yapar: ilki hangi kaynağa güvenileceğini, ikincisi aynı kaynağın hangi yolunun kısa olduğunu seçer.
  • Tek bir paket üç arama gerektirir: hedef için önek eşleşmesi, bir sonraki durak için özyinelemeli arama, komşunun donanım adresi için de adres çözümlemesi.
  • IP sabit kalır, MAC her atlamada değişir: IP adresleri yolculuğun iki ucunu adlandırır, MAC adresleri ise yalnızca içinde bulunduğu kablonun iki ucunu.
  • Doku hattan hızlı olmak zorundadır: N girişli bir kutuda istenen anahtarlama hızı hat hızının N katıdır ve bu hız ancak paralel bir iç ağla kurulur.
  • Kuyruk kutunun içinde doğar: doku yavaşsa girişte, hat yavaşsa çıkışta birikir ve baş engellemesi boş bir çıkışı bile bekletebilir.

Router hedefi buldu, paketi doğru çıkışa verdi ve orada bir kuyruk buldu. Ama o kuyrukta bekleyen tek paket değil: aynı anda gelen bin paketten hangisinin önce çıkacağına hâlâ birileri karar veriyor. O kararı kim veriyor ve hangi ölçüye göre?

40. bölüme devam et: Kuyruk Yönetimi