# Çap Protokolü
 - YÖNLENDİRME 
Çap, Uzun Vadeli Evrim (LTE) ve IP Multimedya Sistemlerinde (IMS) kimlik doğrulama, yetkilendirme ve muhasebe (AAA) bilgilerini değiş tokuş etmek için kullanılan yeni nesil endüstri standardı bir protokoldür. Daha önceki RADIUS protokolünden evrimleşmiştir. RADIUS "Remote Authentication Dial-in User Service" tanımından alan ve uygulama katmanlı protokollerden biridir. İletişim yöntemi olarak Network UDP protokolünü kullanır. Server (Sunucu) / Client (İstemci) mimarisini kullanır.İnternet protokol paketindeki uygulama katmanı protokollerine aittir.
Çap Uygulamaları, Genişletilebilir Kimlik Doğrulama Protokolü (EAP) ile kullanım için olanlar gibi yeni komutlar ve/veya nitelikler ekleyerek temel protokolü genişletir.


## RADIUS ile karşılaştırma.
Adı kelime oyunu, (çapın yarıçapının iki katı) öncülü olan RADİUS protokolünden türetilmiştir. Çap doğrudan geriye dönük olarak uyumlu değildir, ancak RADİUS için bir yükseltme yolu sağlar. Çapın sağladığı ancak RADİUS ta eksik olan ana özellikler şunlardır:
  - SCTP desteği
  - Yetenek pazarlığı
  - Uygulama katmanı onayları  Çap, yük devretme yöntemlerini ve durum makinelerini tanımlar (RFC 3539 )
  - Genişleme  yeni komutlar tanımlanabilir
  - 32 Bit sınırlarında hizalama
Ayrıca: RADIUS gibi, hem yerel hem de dolaşımdaki AAA durumlarında çalışması amaçlanmıştır. UDP kullanan RADIUS'tan farklı olarak TCP veya SCTP kullanır. RADIUS'tan farklı olarak şifreleme içermez, ancak aktarım düzeyinde güvenlik (IPSEC veya TLS) ile korunabilir. AV tanımlayıcısının temel boyutu, temel AV tanımlayıcı boyutu olarak 8 bit kullanan radius'un aksine 32 bittir. RADIUS gibi, durum bilgisi olan modların yanı sıra durumsuz modları da destekler. RADIUS gibi uygulama katmanı onayını destekler ve yük devretmeyi tanımlar. Çap, 3GPP standartları tarafından tanımlanan birçok farklı arabirim için kullanılır ve her arabirim tipik olarak yeni komutlar ve nitelikler tanımlar.


## Uygulamalar.
Çap Uygulaması bir yazılım uygulaması değildir, ancak Çap temel protokolünün, hem yerel hem de dolaşım durumlarında ağ erişimi veya IP mobilitesi gibi uygulamalar için bir Kimlik Doğrulama, Yetkilendirme ve Hesaplama (AAA) çerçevesi sağlaması amaçlanmıştır. RFC 6733 tüm Diameter uygulamaları tarafından kullanılan mesaj formatı, taşıma, hata raporlama, muhasebe ve güvenlik hizmetlerini belirtir. Bu belgede tanımlanan Çap temel protokolü, RFC 3588 ve RFC 5719'u geçersiz kılar ve tüm yeni Çap uygulamaları tarafından desteklenmesi gerekir. RFC 7075 te Çap protokolü, uygulamadan bağımsız bir "yönlendirme aracısı" tarafından kontrol edilen mesaj yeniden yönlendirme özelliği içerir. Bazı durumlarda, bir operatör, tek tek ana bilgisayarlar belirtmeden mesajları alternatif bir etki alanına yönlendirmek isteyebilir.RFC 7075 bir Çap sunucusunun veya proxy'nin (düğüm), Basit Adlandırma Yetkilisi İşaretçisi (S-NAPTR) dinamik eş bulma için kullanılmadığında böyle bir yeniden yönlendirmeyi gerçekleştirebileceği uygulamaya özel bir mekanizmayı belirtir. Bu yeni işlevi gerçekleştiren bir düğüme "Realm-based Redirect Server" adı verilir.RFC 6733 ve RFC 7075'te tanımlanan Çap temel protokolüne dayalı bir protokoldür (Eskiler: RFC 3588 ). Her uygulama bir uygulama tanımlayıcısı tarafından tanımlanır ve yeni komut kodları ve/veya yeni zorunlu AVP'ler (Öznitelik-Değer Çifti ) ekleyebilir. Bir isteğe bağlı AVP eklemek için yeni bir uygulama gerekmez.
Çap uygulamalarına örnekler:
  - Çap Mobil IPv4 Uygulaması (MobileIP, RFC 4004 )
  - Çap Ağ Erişim Sunucusu Uygulaması (NASREQ, RFC 7155 )(Eski: RFC 4005 )
  - Çap Genişletilebilir Kimlik Doğrulama Protokolü Uygulaması (RFC 4072 )
  - Çap Kredi-Kontrol Uygulaması (DCCA, RFC 8506 ])(Eski: RFC 4006 )
  - Çap Oturum Başlatma Protokolü Uygulaması (RFC 4740 )
  - 3GPP IP Multimedya Alt Sistemindeki çeşitli uygulamalar
Ev Abone Sunucusu (HSS), aramaları ve oturumları işleyen IMS ağ varlıklarını destekleyen ana kullanıcı veritabanıdır. Abone konumu işlevi veya SLF, belirli bir kullanıcı profili ile ilişkili ev abone sunucusu (HSS) hakkında bilgi sağlayan bir IP multimedya alt sistemi içindeki bir işlevdir. Hem HSS hem de SLF, Çap protokolünü kullanarak iletişim kurar.
(Genel Önyükleme Mimarisi): Sunucusu İşlevi


## Tarih.
Çap protokolü ilk olarak 1998'de Pat R. Calhoun, Glen Zorn ve Ping Pan tarafından RADIUS'un sınırlamalarının üstesinden gelebilecek kimlik doğrulama, yetkilendirme ve muhasebe (AAA ) için bir çerçeve sağlamak üzere geliştirildi. RADIUS'un güvenilirlik, ölçeklenebilirlik, güvenlik ve esneklikle ilgili sorunları vardı. RADIUS, uzaktan erişim, IP mobilitesi ve ilke denetimi ile etkin bir şekilde başa çıkamazdı. Çap protokolü, istemciler tarafından AAA ve kaynak denetimi gerçekleştirmek için kullanılan bir ilke protokolünü tanımlar. Bu, tek bir sunucunun birçok hizmet için ilkeleri yönetmesine izin verir.
RADIUS gibi, Çap da AAA işlevselliği sağlar, ancak UDP yerine TCP ve SCTP kullanır, bu nedenle iletişim sorunlarının algılanmasını ve ele alınmasını bu protokollere devreder. Çap protokolü, 3. Nesil Ortaklık Projesi (3GPP) IP Multimedya Alt Sisteminin (IMS) geliştirilmesiyle daha da geliştirilmiştir. S6a, S6b, Gx, Gy, Sy, Rx, Cx, Dh, Dx, Rf, Ro, Sh ve Zh arayüzleri Çap uygulamaları tarafından desteklenir. Uzantıların kullanımı yoluyla protokol, proxy'leri, aracıları, güçlü güvenliği, mobil IP'yi, ağ erişim sunucularını (NASREQ), muhasebe ve kaynak yönetimini desteklemek için genişletilebilir olacak şekilde tasarlanmıştır.


## Protokol açıklaması.
Çap temel protokolü, RFC 6733 (Eskiler: RFC 3588 ve RFC 5719 ) tarafından tanımlanır ve bir AAA protokolü için minimum gereksinimleri tanımlar. Çap Uygulamaları, yeni komutlar, nitelikler veya her ikisini ekleyerek temel protokolü genişletebilir. Çap güvenliği IPsec veya TLS tarafından sağlanır. IANA, RFC 6733 bölüm 11.4'te belirtildiği gibi, Çapa 3868 numaralı TCP ve SCTP bağlantı noktası atamıştır.


### Paket formatı.
Çap, Mesaj (Paket) tabanlı protokoldür. İstek Mesajları ve Cevap Mesajları olmak üzere iki tür mesaj vardır. Paket, Çap mesajıyla ilgili bilgileri kapsüllemek için bir Çap başlığından ve değişken sayıda Öznitelik-Değer Çiftlerinden veya AVP'lerden oluşur.


### Sürüm.
Bu alan Çap Taban Protokolünün sürümünü gösterir. 2014 itibarıyla, desteklenen tek değer 1'dir .


### Mesaj uzunluğu.
Mesaj Uzunluğu alanı, başlık alanları ve dolgulu AVP'ler dahil olmak üzere, Çap mesajının bayt cinsinden uzunluğunu gösterir.


### Komut bayrakları.
" R " (Talep) biti – Ayarlanmışsa, mesaj bir istektir. Temizlenirse, mesaj bir cevaptır.
" P " (Proxiable) biti – Ayarlanmışsa, mesaj düğümlenebilir, iletilebilir veya yeniden yönlendirilebilir. Silinmişse, mesaj yerel olarak İŞLENMELİDİR.
" E " (Hata) biti – Ayarlanırsa, mesaj bir protokol hatası içerir ve mesaj, bu komut için açıklanan CCF'ye uymaz. "E" bit seti olan mesajlara genellikle hata mesajları denir. Bu bit istek mesajlarında AYARLANMAMALIDIR.
" T " (Potansiyel olarak yeniden iletilen mesaj) biti – Bu işaret, yinelenen isteklerin kaldırılmasına yardımcı olmak için bir bağlantı yük devretme prosedüründen sonra ayarlanır. Henüz onaylanmayan istekleri yeniden gönderirken, bir bağlantı hatası nedeniyle olası bir yinelemenin göstergesi olarak ayarlanır.


### Komutlar.
Her komut İstek/Cevap çiftine bir komut kodu atanır. İstek mi yoksa yanıt mı olduğu, başlığın Komut Bayrakları alanındaki 'R' biti aracılığıyla tanımlanır.
0-255 değerleri RADIUS geriye dönük uyumluluk için ayrılmıştır. 256-16777213 değerleri, IANA tarafından tahsis edilen kalıcı, standart komutlar içindir. 16777214 ve 16777215 (hex 0xFFFFFE ve 0xFFFFFF) değerleri deneysel ve test amaçlı olarak ayrılmıştır.
Belirli bir mesaj için gerçekleştirilecek eylemi belirlemek için bir Komut Kodu kullanılır. Protokolde (taban ve uygulamalar) tanımlanan bazı yaygın Çap komutları şunlardır:


### Uygulama Kimliği.
Uygulama Kimliği, mesajın hangi Çap uygulaması için geçerli olduğunu belirlemek için kullanılır. Uygulama bir kimlik doğrulama uygulaması, bir muhasebe uygulaması veya satıcıya özel bir uygulama olabilir.
Uygulama Kimliği, mesajın hangi Çap uygulaması için geçerli olduğunu belirlemek için kullanılır. Uygulama bir kimlik doğrulama uygulaması, bir muhasebe uygulaması veya satıcıya özel bir uygulama olabilir.
Başlıktaki Uygulama Kimliği alanının değeri, mesajda yer alan ilgili Uygulama Kimliği AVP'leriyle aynıdır. Örneğin Çap Kredi-Kontrol Uygulaması için Kredi-Kontrol-Talebi (CCR) ve Kredi-Kontrol-Cevap (CCA) Komutundaki Uygulama-Kimliği ve Yetki-Uygulama-Kimlik Özelliğinin değeri 4'tür.


### Hop-by-Hop(Atlamalı) Tanımlayıcı.
Atlamalı Tanımlayıcı, yanıtta istekteki aynı değer kullanıldığından, istekleri yanıtlarıyla eşleştirmek için kullanılan işaretsiz 32 bitlik bir tam sayı alanıdır (ağ bayt sırasına göre). Atlamalı aktarımı, bir ağdaki veri akışını kontrol etme ilkesidir. Atlamalı aktarımı ile, veri parçaları düğümden düğüme depola ve ilet olarak düşünülebilir.
Çap protokolü, geçiş ve yakın aracılarının, yük devretme amacıyla kullanılan işlem durumunu korumasını gerektirir. İşlem durumu, bir istek iletildiğinde, Atlamalı Tanımlayıcısının kaydedildiği anlamına gelir; alan, ilgili yanıt alındığında orijinal değerine geri yüklenen yerel olarak benzersiz bir tanımlayıcı ile değiştirilir. Talebin durumu, yanıtın alınmasıyla birlikte serbest bırakılır. Bilinen bir Atlamalı Tanımlayıcı ile eşleşmeyen alınan yanıtlar, Çap aracısı tarafından yok sayılır.
Aracıların yeniden yönlendirilmesi durumunda, Çap aracısı bir yanıt mesajıyla yanıt verdiği için Atlamalı Atlama Tanımlayıcısı başlıkta korunur.


### Uçtan Uca Tanımlayıcı.
Uçtan uca ilke, bilgisayar ağlarında bir tasarım çerçevesidir. Bu ilkeye göre tasarlanmış ağlarda, güvenilirlik ve güvenlik gibi uygulamaya özgü belirli özelliklerin garanti edilmesi, bunların ağın iletişim halindeki uç düğümlerinde bulunmasını gerektirir. Uçtan Uca Tanımlayıcı, Kaynak-Host AVP kombinasyonu ile birlikte yinelenen mesajları algılamak için kullanılan işaretsiz bir 32-bit tam sayı alanıdır (ağ bayt sırasına göre).
Bir istek oluştururken, Uçtan Uca Tanımlayıcı yerel olarak benzersiz bir değere ayarlanır. Uçtan Uca Tanımlayıcı, herhangi bir tür Çap aracıları tarafından değiştirilmez ve yanıtta karşılık gelen istekteki aynı değer kullanılır.


### Özellik-Değer Çiftleri (AVP).
Basit olması için, AVP Bayrağı " V " biti, Satıcıya Özgü Anlamına gelir; " M " biti Zorunlu anlamına gelir; " P " biti Korumalı anlamına gelir.
Satıcıya Özel bit olarak bilinen " V " biti, AVP başlığında isteğe bağlı Satıcı Kimliği alanının bulunup bulunmadığını gösterir. AVP Kodu ayarlandığında, belirli satıcı kodu adres alanına aittir.
Zorunlu bit olarak bilinen " M " biti, AVP desteğinin gerekli olup olmadığını gösterir. Bir Çap istemcisi, sunucu, yakın veya çeviri aracısı tarafından " M " bit seti ile bir AVP alınırsa ve AVP veya değeri tanınmazsa, mesaj reddedilmelidir . Çap geçişi ve yönlendirme aracıları, tanınmayan AVP'lere sahip mesajları reddetmemelidir.
" P " biti, uçtan uca güvenlik için şifreleme ihtiyacını belirtir.


### Durum makineleri.
RFC 3558, Gelişmiş Değişken Hız Codec (EVRC) Konuşması ve Seçilebilir Mod Ses Kodlayıcı (SMV) Konuşması için RTP veri yükü biçimini açıklar. Farklı uygulama senaryoları için iki alt format belirlenmiştir. Paket kaybının konuşma kalitesi üzerindeki etkisini azaltmak ve birden fazla konuşma çerçevesi üzerinden RTP başlığının ek yükünü amorti etmek için paketlenmiş/araya eklenen bir format dahil edilmiştir. Gruplandırılmış olmayan bir biçim, konuşma uygulamaları için de desteklenir..RFC 3588, eşler arasındaki bağlantıları korumak ve mesajları işlemek için bir çekirdek durum makinesi tanımlar. Bu, temel protokol işlevselliğinin bir parçasıdır ve tüm yığınlar bunu desteklemeli ve bağlantıyla ilgili işlemlerden soyutlanmalıdır.
Ek olarak, uygulamaya özel durum makineleri daha sonra veya daha yüksek bir soyutlama katmanında tanıtılabilir. RFC 3588, bir yetkilendirme ve bir hesap durumu makinesi tanımlar.


### Mesaj akışları.
İki çaplı eşler arasındaki iletişim, bir taşıma bağlantısının (TCP veya SCTP ) kurulmasıyla başlar. Başlatıcı daha sonra diğer eşe bir Yetenekler-Değişim-İstek (CER) gönderir, bu da Yetenekler-Değişim-Cevabı (CEA) ile yanıt verir. RFC3588 uyumlu eşler için TLS (Aktarım Katmanı Güvenliği) isteğe bağlı olarak müzakere edilebilir. RFC6733 uyumlu eşler için TLS anlaşması isteğe bağlı olarak CER/CEA dan önce gerçekleşebilir.
Bağlantı daha sonra uygulama mesajlarının değiş tokuşu için hazırdır.
Bir süre boyunca herhangi bir mesaj alışverişi yapılmadıysa, her iki taraf da bir Cihaz-İzleyici-Mesajları (DWR) gönderebilir ve diğer eş Cihaz-İzleyici-Cevap ile yanıt vermelidir.
Her iki taraf da, diğer eşin Bağlantıyı Kes-Eş-Yanıt ile yanıtlaması gereken bir Bağlantıyı Kes-Eş-Talebi (DPR) göndererek iletişimi sonlandırabilir. Bundan sonra taşıma bağlantısı kesilebilir.


## RFC.
TCP/IP'nin tanımlanmasında kullanılan standart numaralara sahip dokümanlardır. Çap protokolü şu anda aşağıdaki IETF RFC'lerinde tanımlanmıştır: Eski RFC üstü çizili metinle belirtilir.