Bölüm 32:Hareketlilik ve Aktarma
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
- Giriş
- Adres Çubuğundan İsteğe
- Paket Anahtarlamalı Yol
- İsimden Adrese
- Önbellek, Tazelik ve Güven
- Port Numarası ve Soket
- Bağlantısız Taşıma: UDP
- Üç Adımlı El Sıkışma
- Simetrik Şifreleme
- Açık Anahtarlı Kriptografi
- TLS El Sıkışması
- Sertifika Zinciri
- HTTP Mesajının Anatomisi
- Durum, Çerez ve Oturum
- HTTP/2'den HTTP/3'e
- İçerik Dağıtım Ağları
- Diğer Uygulama Protokolleri
- Katmanlı Mimari
- Kapsülleme ve Başlıklar
- Paket Yakalama ve Çözümleme
- Ağ Arayüz Kartı
- Fiziksel Adresleme
- Hata Sezme ve CRC
- Adres Çözümleme: ARP
- Anahtarlama ve Ortam Erişimi
- Ağ Topolojileri
- Sanal Yerel Ağlar
- Kablosuz Erişim: 802.11
- Radyo Kanalı ve Kapasite
- Kablosuz Ağ Güvenliği
- Hücresel Ağlar
- Spektrum ve Kuşaklar
- Hareketlilik ve Aktarma
- Adres Kiralama: DHCP
- Adresin Anatomisi
- Adres Tükenmesi ve IPv6
- Yönlendirici Mimarisi
- Kuyruk Yönetimi
- Cihaz Yapılandırma
- Yönlendirme Protokolleri
- Kontrol Düzlemi ve SDN
- Ağ İzleme ve Yönetimi
- Alanlar Arası Yönlendirme
- Adres Çevirisi
- Ara Kutular
- Tünelleme ve IPsec
- Güvenlik Duvarları
- Operatör ve Metro Ağları
- Bitten Sinyale
- Çoklama Teknikleri
- İletim Ortamları
- Kablo Sonlandırma
- Fiber Optik İletim
- Bakır Erişim Ağı: DSL
- Pasif Optik Ağlar
- Kablo Erişim Ağları
- Denizaltı Kabloları
- Veri Merkezi Ağları
- Kapsülleme Çözme
- Güvenilir Aktarım
- Tıkanıklık Denetimi
- Trafik Çözümleme
- Gecikme Bütçesi
- Son Söz
Otobüs kalkıyor ve sayfayı yeni açtın. Birkaç yüz metre sonra bağlandığın hücre değişecek, ama isteğin kopmayacak.
Kopmamasının sebebi şans değil. Hücreler arasında el değiştirmek yönetilen bir iş. Peki o devri kim yönetiyor?
Yer değiştirmek adresi neden bozuyor?
Hareketlilik tek bir durum adı taşımıyor; dört kademeli bir yelpaze oluşturuyor ve her kademenin bedeli farklı.
| kademe | ne oluyor | zorluk |
|---|---|---|
| yerinde duruyorsun | hiçbir şey değişmiyor | yok |
| kapanıp başka ağda açılıyorsun | taşınacak oturum yok | düşük |
| aynı sağlayıcının hücreleri arasında geziyorsun | açık oturum taşınıyor | orta |
| sağlayıcı ağları arasında geçiyorsun | oturum ve kimlik birlikte taşınıyor | yüksek |
Yelpazenin kolay ucunda ayakta tutulacak bir şey yok. Cihaz yeni yerde sıfırdan bağlanıyor. Zorluk oturum açıkken yer değiştirmekten doğuyor.
Kökü de adreste. Her IP adresi iki parça taşıyor: birinci parça hangi ağda olduğunu, ikinci parça o ağın neresinde olduğunu söylüyor. Adres yer bilgisi taşıdığı için yer değiştiren, adresini de değiştirmek zorunda kalıyor.
Bu tek başına felaket sayılmaz. Felaket, üstteki katmanın o adrese yaslanmasıyla başlıyor. Bir bağlantı soket four-tuple’ıyla tanınıyordu: kaynak IP, kaynak portu, hedef IP, hedef portu. Four-tuple’ın herhangi bir üyesi değişirse alıcı gelen segmenti aynı sokete yönlendiremiyor. Bağlantı kopmuş sayılıyor.
Somut bir vakaya bakalım. Tarayıcın 203.0.113.9:51820 adresinden 192.0.2.30:443 sunucusuna bağlandı. Başka bir alt ağa geçtiğin anda cihaza 198.51.100.7 düşüyor. Four-tuple’ın ilk üyesi değişti, kalan üçü aynı kaldı. Sunucudaki tabloda bu yeni four-tuple’ın karşılığı yok. Gelen segment bir sokete değil, bir RST yanıtına gidiyor.
Buradan yalnızca iki çıkış var. Ya ağ değişikliği gizler ve üst katman adresin değiştiğini hiç görmez, ya da bağlantı adresle tanınmaktan vazgeçer. Hücresel ağ birinci yolu seçti, QUIC ikinciyi.
Aktarmayı kim başlatıyor?
Aktarma, cihazın ağa bağlanma noktasının değişmesi. Cihaza giden veri akışı kaynak baz istasyonundan hedef baz istasyonuna aktarılıyor. Gerekçesi her zaman zayıflayan sinyal olmuyor. İkinci gerekçe yük: hedef daha az cihaz ve daha az trafik taşıyorsa karar onun lehine çıkabiliyor.

Kararı veren de cihaz değil. Hâlâ bağlı olduğun kaynak baz istasyonu hedefi seçiyor ve ona bir Handover Request iletisi gönderiyor. Cihazın işi ölçmek. Modülasyonu seçen 4 bitlik CQI raporu tanıdık; aynı rapor aktarma kararının da girdisi.
Rapor sürekli bir ölçek taşımıyor, basamaklı bir ölçek taşıyor. 4 bitlik alan 16 ayrı seviye kodluyor. Ölçmenin bir de pil bedeli var. LTE radyosu iletirken ya da almayı beklerken 1000-3500 mW harcıyor. Kapalıyken 15 mW’ın altına iniyor, yani açık hâlin %1 ile %2’si kadar.
Gelen rapor tek başına aktarmayı başlatmaya yetmiyor. Cihaz komşu hücreyi kendi hücresinden bir tık iyi buldu diye karar tetiklenmiyor; komşunun belirgin biçimde iyi olması ve bu üstünlüğün bir süre devam etmesi aranıyor. Aradaki paya histerezis deniyor ve olmadığında iki hücrenin sınırında duran bir telefon aralarında gidip geliyor. Her gidiş gelişte yeni bir aktarma yükü doğuyor; sahadaki adı ping-pong aktarma.
Hedef baz istasyonu, cihaz daha oraya geçmeden radyo zaman dilimlerini ayırıyor ve gereken bilgiyi taşıyan bir HR ACK ile yanıt veriyor. Yer önce hazırlanıyor, cihaz sonra taşınıyor.
Sıranın her adımının bir adı var. Ölçüm raporu, aktarma isteği ve isteğin onayı; ardından cihaza giden RRC yeniden yapılandırma iletisi. Cihazı asıl yerinden oynatan ileti bu. Cihaz yeni istasyona tutununca bir yeniden yapılandırma tamam iletisi dönüyor. Hedef de kaynağa aktarmanın başarılı olduğunu bildiriyor.
Asıl incelik kaynak tarafta. Kaynak baz istasyonu cihaza doğrudan göndermeyi bıraktığı anda elindeki datagramları atmıyor; onları hedefe iletiyor, hedef de radyo kanalından cihaza ulaştırıyor. Cihaz iki istasyon arasında havadayken hedef o veriyi tamponda bekletiyor. Kaybı önleyen şey bu yönlendirme.
Cihaz açısından iş burada bitmiş sayılıyor. Yeni istasyondan gönderebildiği anda aktarma tamamlanmış görünüyor. Oysa çekirdek tarafındaki yol hâlâ eski istasyona bakıyor.
Devrin hangi adımda kimin elinde olduğunu izleyelim:
- Ölçüm raporu gider. Cihaz aldığı referans sinyallerin kalitesini ölçüyor ve kaynak baz istasyonuna 4 bitlik bir kanal kalitesi değeri bildiriyor. Karar bu ölçümle besleniyor.
- Kaynak hedefi seçer. Kararı cihaz vermiyor. Hâlâ bağlı olunan kaynak baz istasyonu hedefi seçiyor ve ona bir Handover Request iletisi gönderiyor.
- Hedef yeri hazırlar. Hedef, cihaz daha gelmeden radyo zaman dilimlerini ayırıyor ve cihaz için gereken bilgiyi taşıyan bir HR ACK ile yanıt veriyor.
- Cihaz el değiştirir. Cihaz kaynaktan ayrılıp hedefe tutunuyor. Kaynak elindeki datagramları atmıyor, hedefe iletiyor; hedef de cihaz gelene kadar onları tamponda bekletiyor.
- Çekirdek yolu değiştirir. Radyo tarafı bitince tünelin ucu yeni baz istasyonuna çevriliyor. Hedef tamamlandığını bildirince kaynak taraf ayırdığı radyo kaynaklarını serbest bırakıyor.
Bu sıranın ne kadar sık tekrarlandığını hücrenin boyutu belirliyor. Yukarı bantlar kapsamayı daraltıyordu; hücre küçüldükçe aynı yolda daha çok aktarma oluyor. 300 m yarıçaplı, yani 600 m çaplı bir hücreyi 5 km/sa hızla yürüyen biri 432 saniyede, yani 7,2 dakikada kat ediyor. Aynı hücre 100 km/sa giden bir araç için 21,6 saniyeye iniyor.
Bağlantı koparak mı devrediliyor, kopmadan mı?
Aktarmanın nasıl yapıldığının iki klasik cevabı var ve aralarındaki fark tek bir sözcükte: sıra.
Sert aktarma (break-before-make) önce eski bağı bırakır, sonra yenisini kurar. Arada kısa bir boşluk oluşur. Basit, ucuz ve tek bir radyo yeter — cihaz aynı anda iki hücreyle konuşmak zorunda değil. Bedeli o boşluk.
Yumuşak aktarma (make-before-break) tersini yapar: yeni bağ kurulmadan eskisi bırakılmaz. Geçiş süresince cihaz iki hücreyle birden konuşur ve aynı veriyi iki yoldan alır. Boşluk yoktur; karşılığında cihaz iki radyo zinciri, şebeke de iki kat kaynak ayırmak zorundadır. 3G’nin kod bölmeli tasarımı bunu ucuza yapabiliyordu, çünkü komşu hücreler aynı frekansı kullanıyordu.
LTE ve 5G sert aktarmaya döndü — ama boşluğu neredeyse görünmez kılarak. Hazırlığın tamamı kesinti başlamadan önce yapılıyor:
- Cihaz komşu hücrelerin sinyal gücünü sürekli ölçüp kaynak baz istasyonuna raporluyor.
- Kaynak, hedef baz istasyonuyla doğrudan konuşup yer ayırtıyor. İki baz istasyonu arasındaki bu arayüzün adı LTE’de X2, 5G’de Xn — trafik çekirdek ağa hiç uğramıyor.
- Kaynak, cihaza “şu hücreye geç” komutunu yolluyor.
- Cihaz yeni hücreye bağlanırken, kaynakta biriken paketler hedefe tünellenerek aktarılıyor. Böylece geçiş anında sırada bekleyen veri kaybolmuyor.
Kalan kesinti tipik olarak on milisaniyeler mertebesinde ve bir görüşmede duyulmuyor. Ama hâlâ sıfır değil, ve en kritik anda — sinyal zayıfken — o komutun cihaza ulaşması gerekiyor. 5G bunun için üçüncü bir yol getirdi: koşullu aktarma. Şebeke hedefi ve tetikleyici koşulu önceden cihaza veriyor, cihaz koşul sağlandığında komut beklemeden kendisi geçiyor. Karar anındaki gidiş-dönüş tamamen ortadan kalkıyor.
Çekirdek neden yerinde duruyor?
Radyo tarafı değişirken sabit duran bir taraf var. Her cihaza bir UPF atanıyordu; o UPF cihazla internet arasında röle gibi çalışıyor ve trafiği N3 arayüzünde tünelliyordu. İnternetin gördüğü sabit nokta orası.
Aktarmada değişen şey de cihazın adresi değil, o tünelin ucu. Radyo tarafı bittikten sonra SMF, UPF’ye tünelin ucunu yeni hedef baz istasyonu olacak biçimde değiştirmesini söylüyor. Hedef, aktarmanın tamamlandığını kaynağa bildirince kaynak taraf ayırdığı radyo kaynaklarını serbest bırakıyor.
Çekirdek yarısının da kendi ileti sırası var. Hedef istasyon çekirdeğe bir yol değiştirme isteği yolluyor, çekirdek PDU oturumunu güncelliyor ve isteği onaylıyor. Eski yola en sonda bir veri sonu işareti düşüyor. O işaretten sonra o tünelden veri gelmiyor. Kaynak istasyona giden son ileti cihaz bağlamını kapatıyor.
Adres vererek bakınca daha keskin. Cihazın adresi 203.0.113.9, UPF’nin adresi 198.51.100.5, kaynak baz istasyonu 198.51.100.20 ve hedef istasyon 198.51.100.21. İnternetteki gönderen 192.0.2.30 olsun. İki zarfı yan yana koyalım:
önce dış zarf: 198.51.100.5 -> 198.51.100.20 iç zarf: 192.0.2.30 -> 203.0.113.9
sonra dış zarf: 198.51.100.5 -> 198.51.100.21 iç zarf: 192.0.2.30 -> 203.0.113.9İç zarfta tek bir bayt bile oynamıyor. Gönderen tarafta bu devri gösteren hiçbir iz yok.
Tünelin ucu neden hep aynı kutuda kalıyor? Çünkü UPF yalnızca röle değil. Politika uygulaması, yasal dinleme, trafik kullanım ölçümü ve hizmet kalitesi denetimi de orada yürüyor. Bunların hepsi akışın tamamını tek noktadan görmeyi istiyor. Çapayı oynatmak, bu dört işi birden taşımak demek olurdu.
Zaman çizgisi bu yüzden iki yarıya bölünüyor: önce radyo erişim ağındaki ayrılma ve tutunma, sonra çekirdekteki yol değiştirme. Cihaz için kesinti yalnızca ilk yarıdaki ayrıl-tutun aralığı.
Cihazın nerede olduğunu AMF takip ediyor: sen hücre değiştirirken ağa tutunmanın ve erişim yetkinin sürmesinin kaydını o tutuyor. Bir operatörde tek bir çekirdek ağ çok sayıda radyo erişim ağına hizmet ediyor.
Yelpazenin en zor ucunda sağlayıcı da değişiyor. Hücresel dünyada kimliğin bir kullanıcı adı taşımıyor, bir abonelik taşıyor: parasını ödediğin bir ev ağın var ve seni asıl tanıyan orası. Karşılaştırmayı ev tarafı yapıyor ve ziyaret edilen ağa yalnızca anchor key gönderiliyordu. 5G’nin getirdiği fark tam burada: 4G’de aynı karşılaştırma ziyaret edilen ağın kendisinde yapılıyordu.
Wi-Fi aynı sorunu neden ucuza çözüyor?
Hücresel tarafın bunca iş yapmasının sebebi, sorunu üçüncü katmanda çözmek zorunda olması. 802.11 bir bağ katmanı standardı ve dolaşımı da o katmanda ele alıyor. Üst katmanlar olan bitenden habersiz kalıyor.
Genişletilmiş hizmet kümesinin içinde access point değiştirirken IP adresi değişmiyordu; komşuya geçmek yalnızca ilişkilendirmeyi yenilemek demek. Dolaşımı hızlandıran üç ek çalışma grubunun kendi tarihi var: 802.11k-2008 komşu ölçümünü, 802.11r-2008 hızlı yeniden kimlik doğrulamayı, 802.11v-2011 ise ağın cihaza aday access point önermesini getirdi.
Bu iddiayı kendi makinende birkaç komutla doğrulayabilirsin. Windows’ta netsh wlan show interfaces, Linux’ta iw dev wlan0 link bağlı olduğun access point’i yazıyor:
SSID : kampus-ag
BSSID : 00:1a:2b:3c:4d:5eBinanın öbür ucuna yürü ve komutu tekrarla. SSID satırı aynı, BSSID satırı başka. ipconfig ya da ip addr ile baktığında IPv4 adresin de değişmemiş olacak.
Ucuzluğun sınırı da burada. Alt ağın kenarını geçtiğin anda adresin değişiyor ve bağ katmanının hilesi bitiyor.
Adres değişince bağlantı neden ölmüyor?
İkinci çıkış yolu bağlantıyı adresten koparmak. QUIC bağlantıyı four-tuple’la değil bir bağlantı kimliğiyle tanıyordu ve buna bağlantı göçü deniyordu. Kimliğin birincil işi, alt katmanlardaki adres değişikliklerinin paketleri yanlış uca göndermesini engellemek.
Kimliğin bir de boyu var. QUIC sürüm 1’de bağlantı kimliği en çok 20 bayt tutuyor. Daha uzununu gören uç paketi düşürmek zorunda.
Değişikliklerin hepsi kasıtlı da değil. NAT yeniden bağlama, aradaki kutunun akışa yeni bir çıkış portu ya da yeni bir çıkış adresi vermesiyle oluyor. Uç, karşı tarafın adresinde herhangi bir değişiklik sezerse yol doğrulaması yapmak zorunda.
Yol doğrulaması, yeni adresten gelen paketlerin sahte kaynak taşımadığını sınıyor. Gönderen, tür kodu 0x1a olan PATH_CHALLENGE çerçevesinin 8 baytlık veri alanına 64 bitlik rastgele bir değer koyuyor. Alıcı aynı veriyi taşıyan bir PATH_RESPONSE üretmek zorunda. Datagram ayrıca en az 1.200 bayta genişletiliyor, böylece yeni yolun bu boyutu taşıyabildiği de sınanmış oluyor. Gerçek yük datagramın %0,67’si, kalanı dolgu.
Göç serbest de değil. El sıkışma doğrulanmadan göç başlatılamıyor ve başlatma sorumluluğu istemcide. Sunucu, bir istemci adresinden yoklama dışı paket görmeden o adrese yoklama dışı paket göndermiyor. Bu sınama tek yönü kanıtlıyor; ters yönü karşı taraf kendi başına yapıyor.
Doğrulama bitince uç, tıkanıklık denetleyicisini ve gidiş-dönüş süresi kestiricisini yeni yol için başlangıç değerlerine sıfırlamak zorunda. Tek istisna yalnızca portun değiştiği durum; o genelde NAT yeniden bağlamasıdır ve eski durum korunabiliyor. Bir kural daha var. Uç, birden fazla yerel adresten gönderirken aynı bağlantı kimliğini yeniden kullanamıyor. Sebep gizlilik: sabit bir kimlik, pasif bir gözlemcinin iki ayrı ağdaki etkinliği aynı kişiye bağlamasına izin verirdi.
DerinleşmeMobil IP yirmi yıl uğraştı, QUIC nasıl bu kadar ucuza çözdü?
Ağ katmanının bu soruya verdiği eski cevabın adı mobil IP ve çekirdek fikri iki adres. Ev adresi, düğüm internete nereden bağlanırsa bağlansın değişmiyor. Ziyaret adresi ise düğümün o an bulunduğu yeri gösteriyor. Üst katman ev adresini görüyor, ağ ziyaret adresini kullanıyor.
Bunu yürütmek için ağda iki yeni rol gerekiyordu. Ev aracısı, düğümün ev ağındaki bir yönlendirici; düğüm evden uzaktayken datagramları ona tünelleyerek ulaştırıyor. Yabancı aracı ise ziyaret edilen ağdaki yönlendirici ve kayıtlı düğüme yönlendirme hizmeti veriyor. İkisi de altyapı demek: çözümün çalışması için yolun her iki ucundaki yönlendiricilerin bu işi bilmesi gerekiyor.
QUIC’in kolaylığı zekâsından değil, durumun nerede durduğundan geliyor. Bağlantı durumu uçlarda; ağdaki hiçbir kutunun bir şey bilmesi gerekmiyor. Üstelik QUIC’te güvenilirlik, tıkanıklık denetimi, kimlik doğrulama ve şifreleme durumu tek bir gidiş-dönüşte kuruluyor. Yani bağlantıyı yeniden kurmanın bedeli zaten bir gidiş-dönüş, ve bağlantı göçü o bedeli de ödememeyi sağlıyor.
Özet
Peki, ne öğrendik?
- Hareketlilik bir yelpaze: kapalı cihazı taşımak bedava, açık oturumu taşımak pahalı, ve pahalı olanın kökü adresin yer bilgisi taşımasıdır.
- Aktarmayı kaynak yönetir: hedefi seçen ve isteği gönderen kaynak baz istasyonudur, cihaz yalnızca ölçüm raporu üretir.
- Yer önce hazırlanır: hedef radyo dilimlerini cihaz gelmeden ayırır ve kaynak biriken datagramları atmak yerine hedefe iletir.
- Çekirdek yerinde durur: aktarmada değişen şey UPF’ye giden tünelin ucudur, cihazın adresi değil.
- Bağlantı kimliği adresin yerini alır: QUIC bağlantıyı four-tuple’la tanımadığı için adres değişse de bağlantı yaşar, ama yeni yol önce doğrulanır.
Yer değiştirirken bağlantının neden ayakta kaldığını artık iki ayrı katmanda izleyebiliyorsun. İkisinin de dayandığı şey aynı: cihazın elinde bir adres olması. Telsiz de olsan telli de olsan bağlandın; peki bağlanır bağlanmaz aldığın o adresi sana kim verdi?
33. bölüme devam et: Adres Kiralama: DHCP