Multipath TCP Nedir ve Birden Fazla Ağı Nasıl Kullanır?

Bir cihaz aynı anda Wi-Fi ile yerel kablosuz ağa, mobil veriyle hücresel ağa bağlanabilir. TCP, uygulama verisini güvenilir ve sıralı biçimde ileten taşıma protokolüdür; klasik bir TCP bağlantısını kaynak ve hedef IP adresleriyle port numaraları tanımlar. Multipath TCP (MPTCP), uygulamaya tek bağlantı sunarken veriyi birden fazla TCP alt akışı üzerinden taşıyabilir. Subflow, MPTCP bağlantısının altında kurulan, kendi kaynak ve hedef IP adresleri ile port numaraları olan bir TCP bağlantısıdır.
Uygulama açısından amaç yine güvenilir ve sıralı bir bayt akışı sunmaktır. Fark, bu akışın ağ içinde tek bir yola bağlı kalmak yerine kullanılabilir birden fazla IP yolu arasında taşınabilmesidir.
Bu mekanizma hem aktarım kapasitesinden daha iyi yararlanabilir hem de bir yol kullanılamaz olduğunda bağlantının kalan yol üzerinden sürmesine yardımcı olabilir. Ancak iki bağlantının hızlarının her durumda doğrudan toplanacağı veya her cihazın iki ağı otomatik olarak birlikte kullanacağı anlamına gelmez.
Tek MPTCP Bağlantısında Alt Akışların Kurulması ve Eşlenmesi
MPTCP birden fazla bağımsız uygulama oturumu açmak yerine tek MPTCP bağlantısının altında birden fazla TCP alt akışı yönetir. Böylece üst katmandaki uygulama tek bir güvenilir veri akışı görürken taşıma katmanı farklı IP adresi çiftlerini kullanabilir.
İlk Alt Akışın Kurulması ve Yeni Yolların Eklenmesi
Bağlantı, TCP'nin SYN, SYN/ACK ve ACK paketleriyle gerçekleşen üç aşamalı el sıkışmasında uçların MP_CAPABLE seçeneğiyle MPTCP desteğini bildirmesiyle başlar. İlk alt akış bu görüşmede kurulur; uygun başka IP adresi ve port birleşimleri üzerinden erişim varsa mevcut MPTCP bağlantısına ek alt akışlar daha sonra eklenebilir.
Ek alt akış, ilk bağlantıdan ayrı bir uygulama oturumu değildir. MP_JOIN el sıkışmasındaki token, hangi MPTCP bağlantısına katılmak istendiğini belirten değerdir. Bağlantı kurulurken paylaşılan anahtarlar ve yeni rastgele değerlerle hesaplanan HMAC (Hash-based Message Authentication Code), yeni alt akışın aynı uçlar arasında kurulduğunu denetlemek için kullanılır. Bu denetim uygulama verisini şifrelemez ve sunucunun kimliğini bir sertifikayla kanıtlamaz.
Alt Akışların Ortak Veri Sırasına Eşlenmesi
Yolların gecikmesi ve kapasitesi birbirinden farklı olabilir. MPTCP, her alt akışın kendi TCP sıra numaralarına ek olarak bağlantının tamamı için veri düzeyinde ayrı bir sıra numarası kullanır ve alt akıştaki veriyi bu ortak sıraya eşler.
Bu eşleme, verinin farklı alt akışlardan gelmesine rağmen alıcıda doğru sırada birleştirilmesini sağlar. Aynı mekanizma, bir yolda teslim edilemeyen verinin gerektiğinde başka bir alt akışta yeniden iletilmesine de olanak tanır.
Wi-Fi ve Mobil Veri Aynı Anda Kullanılabilir mi?
Bir cihaz Wi-Fi ve mobil veri üzerinden farklı ağ yollarına erişebiliyorsa MPTCP bu yolları aynı bağlantının alt akışları olarak kullanabilir. Bunun gerçekleşmesi yalnız iki arayüzün açık olmasına bağlı değildir; karşı uçta MPTCP desteği bulunmalı, ek alt akış kurulabilmeli ve uçların politikası o yolu etkin biçimde kullanmaya izin vermelidir.
Ek yolun her zaman veri taşıması da zorunlu değildir. Bir alt akış veri taşımak için etkin tutulabilirken başka bir alt akış yalnız ana yol kullanılamadığında devreye girecek yedek yol olarak işaretlenebilir. Bu nedenle cihazın iki ağa bağlı olması, her iki ağdan sürekli trafik geçtiğinin kanıtı değildir.
Hız Neden Her Zaman İki Bağlantının Toplamı Olmaz?
MPTCP birden fazla yol üzerinden veri taşıyabildiği için bazı koşullarda tek yola göre daha yüksek aktarım hızı elde edilebilir. Ancak MPTCP, iki bağlantının nominal hızlarının toplamını garanti etmez.
- İki yol internet üzerinde aynı darboğazda birleşebilir; cihazdan çıkarken farklı görünmeleri tamamen bağımsız kapasiteye sahip oldukları anlamına gelmez.
- Yolların gecikme, paket kaybı ve kullanılabilir bant genişliği değerleri farklıysa verinin dağıtımı ve yeniden sıralanması performansı etkileyebilir. Yavaş yoldaki eksik veriyi beklemek, hızlı yoldan ulaşmış sonraki verinin uygulamaya teslimini de geciktirebilir.
- Her alt akış tıkanıklık koşullarına tabidir ve MPTCP'nin birden fazla yolu kullanması diğer trafikle adil paylaşım gereğini ortadan kaldırmaz.
- Uç nokta politikası bazı yolları yedek tutabilir veya belirli bir anda yalnız belirli alt akışları kullanabilir.
- Uygulamanın veya uç sistemlerin işlem kapasitesi ağ yollarının toplam aktarım kapasitesinden daha düşükse ek yol aktarım hızını artırmayabilir.
Bu yüzden MPTCP'yi yalnız bir “hız toplama” yöntemi olarak değerlendirmek yanıltıcıdır. Bazı kullanım biçimlerinde asıl kazanç, en yüksek hızdan çok bağlantının tek bir erişim yoluna bağımlılığını azaltmaktır.
Ağ Yolu Kesildiğinde Bağlantının Sürmesi
MPTCP bağlantısı birden fazla çalışan alt akışa sahipse tek bir alt akışın kapanması bütün bağlantının hemen bitmesini gerektirmez. Bağlantı düzeyindeki veri sıralaması sayesinde henüz teslim edilmemiş veri başka bir uygun alt akış üzerinden yeniden iletilebilir.
Örneğin Wi-Fi yolu kullanılamaz hale geldiğinde mobil veri alt akışı çalışmaya devam ediyorsa, MPTCP bağlantısı kalan yol üzerinden sürdürülebilir. Geçişin kullanıcı tarafından fark edilip edilmeyeceği yol kesintisinin süresine, kalan yolun gecikmesine, yeniden iletimlere, uç sistemlerin bağlantı politikasına ve uygulamanın davranışına bağlıdır.
Bu dayanıklılığın da sınırı vardır. Karşı uç MPTCP'yi desteklemiyorsa çoklu yol bağlantısı baştan kurulamaz. Kullanılabilir başka bir alt akış yoksa veya yeni yol kurulamıyorsa MPTCP, bağlantının kesintisiz süreceğini garanti etmez.
Multipath TCP ile Dual-WAN ve Bonding Arasındaki Farklar
Dual-WAN, bir yönlendiricinin internet erişimi için iki WAN bağlantısını kullanmasıdır. Bağlantı bazlı yük dengelemede yönlendirici farklı bağlantıları farklı hatlara dağıtır; tek bir TCP bağlantısının hızını iki hattın toplamına çıkarmaz. MPTCP ise aynı uygulama bağlantısının verisini birden fazla TCP alt akışına dağıtabildiği için bu yöntemden ayrılır.
Bonding (hat birleştirme) tek bir protokolün adı değildir. Paketleri farklı hatlara dağıtıp karşı uçta birleştiren sistemler, internet servis sağlayıcısının desteğini veya uygun bir uzak sunucuyu gerektirebilir. Bazı hat birleştirme ürünleri de MPTCP kullanır; dolayısıyla bonding ile MPTCP birbirini dışlayan iki yöntem değildir. Ürünün yalnız bağımsız bağlantıları mı dağıttığı, yoksa aynı bağlantıyı birden fazla hat üzerinden mi taşıdığı belirleyicidir.
Ara Cihazlar ve MPTCP Desteği
İki MPTCP ucu arasında adres ve gerektiğinde port çeviren NAT cihazları ile güvenlik duvarları bulunabilir. Bu cihazların TCP seçeneklerini değiştirip değiştirmediği ve ek alt akışları geçirip geçirmediği bağlantının çalışmasını etkiler. İlk el sıkışmada MPTCP desteği karşılıklı doğrulanamazsa normal TCP bağlantısı kurulabilir; bu durumda çoklu yol kullanılamaz. MPTCP bağlantısı zaten kurulmuşken yalnız yeni alt akışın başarısız olması ise çalışan diğer alt akışları kendiliğinden iptal etmez.
Bağlantıya aracılık eden bir proxy sunucusu MPTCP'yi sonlandırıyorsa MPTCP desteği, istemci ile bu ara sunucu arasında gerekir. Proxy sunucusu hedefe ayrı bir normal TCP bağlantısı kurabilir; hedef uygulama sunucusunun MPTCP desteklemesi bu kurulumda zorunlu değildir. Ancak çoklu yol kullanımı yalnız MPTCP'nin kurulduğu bölüm için geçerlidir; ara sunucudan sonraki normal TCP bağlantısı kendiliğinden MPTCP bağlantısına dönüşmez.







