PPP (Point to Point Protokolü) bir Veri Bağlama Katmanı (Data Link Layer) protokolüdür ve veri alışverişi yapmak isteyen iki noktanın, telefon hattı gibi seri bir hat üzerinden bağlantısını sağlayarak çift yönlü iletim (full-duplex) yapılabilmesine olanak sağlar. Bu nedenle bu protokolün kullanıldığı noktadan noktaya bağlantılar çift yönlü iletimi destekleyecek nitelikte olmalıdır. PPP Protokolü, “Seri Hat Üzerinden İnternet Protokolü“ olarak adlandırılan SLIP (Serial Line IP) protokolünün sıkıştırma ve düzenleme özelliklerinin geliştirilmesiyle ortaya çıkmış standart iletişim kuralları kümesidir. Her iki protokol de TCP/IP (İnternet Protokolleri Ailesi) için geliştirilmiş Geniş Alan Bağlantısı (WAN) protokolleridir ve modem ya da benzer başka bir cihaz yardımıyla seri bağlantılar kurulmasına olanak sağlarlar. Ancak PPP resmi bir İnternet protokolü iken, SLIP standart bir protokol değildir. Günümüzde vazgeçilmez hale gelmiş olan hata düzeltme, veri sıkıştırma, kimlik denetleme ve adresleme özellikleri PPP protokolünün kullanışlı özellikleri arasındadır. PPP’nin geliştirilmesiyle, iki bilgisayarın haberleşebilmesi için ISP (İnternet Servis Sağlayıcısı) tarafından atanan IP’yi sisteme tanıtmak için bir ilave işleme gerek kalmamıştır. Sistem bu tanıtımı otomatik olarak yapmaktadır. Ayrıca PPP, SLIP’ in aksine asenkron (farklı zamanlı) hatlara ek olarak senkron (eş zamanlı) hatlar üzerinde de çalışabilir.
Noktadan Noktaya Protokolü’nün Çalışma Mekanizması
PPP’nin temel amacı seri bir iletim ortamı üzerinden paketlerin aktarılmasıdır. Böylece PPP sayesinde, iki iletişime uygun cihazın özel olarak yapılandırılmış veri paketleri (datagram) sayesinde bilgi değişimi yapması sağlanmış olur. Çalışma mekanizmasını; Kapsüllenme (Encapsulation), Bağlantı Kontrol Protokolü (Link Control Protocol) ve Ağ Kontrol Protokolü (Network Control Protocol) olmak üzere üç ana bölümde incelemek mümkündür.
Kapsüllenme (Encapsulation)
Bütün WAN bağlantılarında, verinin iletilmeden evvel "enkapsüle edilerek" frame (çerçeve) haline getirilmiş olması gerekir. PPP’ nin içerdiği kapsülleme özelliği sayesinde; IP, IPX gibi farklı ağ katmanı protokollerinin aynı bağlantı üzerinde eş zamanlı olarak çalışabilmesi sağlanır ve veri paketlerinin (Datagram) PPP ile gönderilmek üzere nasıl paketleneceğini belirlenir. HDLC, (High-Level Data Link Control-Yüksek Seviyede Veri Bağlantı Kontrolü) noktadan noktaya bağlantıda kullanılan temel kapsülleme metodudur. PPP ise, HDLC temel alınarak geliştirilmiştir. HDLC, temel noktadan noktaya iletişim protokolü olarak da kabul edilebilir. PPP, Veri Bağlama Katmanı üzerinden iletimin sağlanabilmesi için veriyi enkapsüle ederek çerçeve haline getirir. Bu enkapsülasyon PPP’ nin yapısını oluşturan temel bileşenlerden biri olan HDLC Protokolü sayesinde olur.
HDLC Enkapsülasyonu
HDLC iki nokta arasında hatasız bir iletişim sağlanması için eş zamanlı seri iletim kullanır. Ayrıca, “alındı bildirimleri” (acknowledgement) kullanımı ile akışı ve hatanın kontrolünü sağlayan Katman 2’ye (Veri Bağlama Katmanı) özgü bir çerçeve yapısı tanımlar. Tanımlanan çerçevelerin tipi ister kontrol isterse veri tipinde olsun aynı yapıya sahiptir. Çerçevelerin gönderildiği hatların çerçevelerin başlangıç ve sonlarını belirtilmesini sağlayacak bir mekanizması olmadığından, HDLC her çerçevenin başını ve sonunu işaret eden sınırlayıcı bir bayrak (flag) kullanır.
Standart HDLC birden fazla protokol desteği vermez, sadece bir protokolle çalışabilir. Çoklu protokol desteği sorununun çözülmesi için Cisco, Standart HDLC’yi geliştirerek Cisco HDLC (cHDLC)' yi oluşturmuştur. Böylece aynı anda birden çok protokolün çalışabilmesine imkan sağlanmıştır. cHDLC, Cisco’ya özgü bir protokol olsa da, Cisco’nun izni dahilinde pek çok ağ cihazı sağlayıcısı tarafından uygulanır hale gelmiştir. Cisco HDLC çerçeveleri, standart HDCL’den farklı olarak enkapsüle edilmekte olan ağ protokolünün bilgisinin de belirtildiği bir protokol bilgi alanına sahiptir.
Şekilde gösterilen bilgi alanlarının işlevi aşağıdaki gibi özetlenebilir:
Bayrak (Flag): Bu kısım hata kontrolünü başlatır ve sonlandırır. Bir çerçeve her zaman 8-bit uzunluğundaki bayrak (flag) kısımla başlar ve sonlanır. Çerçevelerdeki bitler alıcı tarafında çıkarılarak geri elde edilir. Çerçevelerin ard arda yollanması durumunda bir çerçevenin sonundaki bayrak aynı zamanda bir sonraki çerçevenin başlangıcı olabilir.
Adres (Adress): Açılış bayrağının ardından gidilecek bir sonraki hedefin adresini belirten bilgi alanı gelir. Adres bölgesi, özel bir adres ya da bir grubun adresini içerebildiği gibi tüm hedef adreslere gönderilmek üzere yayınlanacak bir adresin (broadcast) bilgisini de içerebilir.
Kontrol (Control): Kontrol alanında, kullanılan HDLC frameinin tipine bağlı olarak 3 farklı biçim bulunabilir:
- Bilgi Çerçeve (Information - I Frame): Bilgi çerçeveleri daha üstteki katmanlara dair bilgi taşır ve bazı kontrol bilgilerini içerir. Ayrıca gelen verinin doğru şekilde sıralanmış olması konusunda kesinliği sağlamak için, kontrolü gerçekleştiren sıralama numaralarını (sequence numbers) gönderir ve alır. Böylece verinin gelmesi gereken sıranın doğruluğu kontrol edilmiş olunur. Akışın ve hatanın kontrolünü gerçekleştiren bit ise, kontrol alanında 5. sıradaki pozisyonda bulunan ve P/F (Poll Final Bit) adı verilen bittir. Giden sıra numarası (send sequence number) bir sonra gönderilecek çerçevenin sıra numarasını ifade ederken, gelen sıra numarası (receive sequence number) ise bir sonra alınacak çerçevenin numara bilgisini belirtir.
- Denetimsel Çerçeve (Supervisory - S Frame): S-çerçeveleri kontrol bilgisi içerir. Bir S çerçevesi bir iletimin başlatılması için talepte bulunabilir ve iletimi sonlandırabilir. İçinde bulunulan durum hakkında raporlama yapabilir ayrıca I-çerçevelerinin (I-Frame) alındığına dair bildirimde bulunabilir. S-çerçeveleri bir bilgi alanına (information field) sahip değildir.
- Numarasız Çerçeve (Unnumbered Frame- U Frame): U-Çerçeveleri yine kontrol amacına hizmet eden numarasız çerçevelerdir. U-çerçevesinin işlevine bağlı olarak kontrol alanı (control field) 1 ya da 2 bayt olabilir. Bazı U-çerçeveleri bir bilgi alanı da (information field) içerir.
Protokol (Protocol): Sadece Cisco HDCL (cHDCL)’de kullanılan kısımdır. Çerçeve ile beraber enkapsüle edilen protokolün bilgisini belirtildiği kısımdır. Örneğin IP protokolü için bu kısımdaki bilgi 0x0800‘ dır.
Veri (Data): Veri alanında ya yol bilgi birimi (Path Information Unit- PIU) bilgisi ya da değişim kimlik tanımlaması (Exchange Identification- XID) ile ilgili bilgi vardır.
Frame Kontrol Dizisi (Frame Check Sequence-FCS): Bu kısım kapanış bayrağndan önce gelir ve genellikle Döngüsel Fazlalık Testi (Cyclic Redundancy Check- CRC) hesaplamasından arta kalan kısımdır. CRC hesaplaması alıcı tarafında tekrarlanır ve eğer elde edilen değer ilk çerçevedeki değerden farklı elde edilirse bir hata oluştuğu söylenir.
PPP Yapılanması
Birbiriyle bağlantılı katmanlar arasıdaki haberleşmeye yardımcı olan mantıksal modele ya da tasarıma "Katmanlı Mimari" denir. Aşağıdaki resim OSI (Open System Interconnection-Açık Sistem Bağlantıları) referans modeline karşı PPP' nin katmanlı mimarisini göstermektedir. PPP ve OSI aynı fiziksel katmanı paylaşmasına rağmen PPP'nin NCP ve LCP'ye görevlerini dağıtışı farklı olur.
En temel özelliklerinin seçilmesi ile Noktadan Noktaya Protokolü,
- Senkron fiziksel ortamı (Synchronous Physical Media) ya da,
- Asenkron fiziksel ortamı (Asynchronous Pysical Media) (Örneğin Modem Dial-up (Çevirmeli) bağlantılar için basit bir telefon servisi kullanan bir ortamı) kullanabilir.
PPP tarafından yapılan işin büyük kısmı Veri Bağlantı ve Ağ katmanlarında; Link Kontrol Protokolü (LCP) ve Ağ Kontrol Protokolleri (NCPs) tarafından yapılır. LCP, hem PPP bağlantısının hem de bağlantı parametrelerinin ayarlamasının yapılmasından sorumludur. NCP'ler ise üst katman protokolleri ile ilgili yapılandırmanın yapılması ile ilgilenirler. PPP bağlantısının kapanmasından ise LCP sorumludur.
Bağlantı Kontrol Protokolü (Link Control Protocol)
Link Kontrol Protokolü (LCP), PPP’nin asıl çalışan kısmıdır. Noktadan noktaya bağlantının kurulması LCP sayesinde olur. LCP, Fiziksel katmanın üzerinde bulunur ve bağlantının kurulması, yapılandırmasının yapılması ve test edilmesi LCP' nn görevidir.
LCP ayrıca NCP'ler tarafından sağlanan WAN bağlantı üzerindeki kontrol seçeneklerinin sunulmasından ve ayarlanmasından da sorumludur. LCP her son uçta bulunan arayüz için aşağıdaki durumları içeren bir otomatik yapılandırma seçeneği sunar:
- Paket boyutu üzerindeki değişen limitlerin düzenlenmesi
- Genel yapılandırma hatalarının tespiti
- Bağlantının sonlandırılması
- Bir bağlantının ne zaman düzgün çalışıp ne zaman hata verdiğinin belirlenmesi
PPP ayrıca bağlantı kurulduktan hemen sonra enkapsülasyon biçimleri (kimlik doğrulaması, sıkıştırma, hata tespiti) konusunda otomatik olarak uzlaşma sağlanması için de LCP' yi kullanır. Kısacası noktadan noktaya bağlantı için bir yönetici (administrator) tarafından belirlenen kontroller uygulanırken, PPP servis seçeneklerini LCP üzerinden sunar ve uzlaşmanın sağlanması ve çerçevelerin kontrol edilmesi için LCP' yi görevlendirir.
Ağ Kontrol Protokolü (Network Control Protocol)
Noktadan noktaya bağlantılar şuan kullanımda olan ağ protokolleri ailesi ile pek çok problemi daha da kötüye götürebilecek durumdadır. Örneğin IP adreslerinin atanması ve yönetimi Yerel Alan Ağı (LAN) için bile bir problemken, çevirmeli modem bağlantı sunucusu gibi devre anahtarlamalı olan noktadan noktaya bağlantılar için ciddi bir sorun teşkil eder. PPP bu sorunların üstesinden gelmek için ağ kontrol protokollerini kullanır.
PPP aynı bağlantı üzerinde birden fazla Ağ katmanı protokolünün çalışmasına izin verir. Kullanılan her Ağ katmanı protokolü için, PPP ayrı bir NCP (Network Control Protocol- Ağ Kontrol Protokolü) kullanır. Örneğin IP için gerekli protokol IPCP (IP Kontrol Protokolü) iken, IPX için gerekli olan protokol IPXCP' dir. (Novell IPX Kontrol Protokolü).
NCP' ler PPP'nin enkapsüle etmekte olduğu Ağ katmanı protokolünün bilgisinin belirtilmesi için içinde bir standartlaştırılmış onaltılık sayı sisteminde (hexadecimal) kodların bulunduğu bir bilgi alanına sahiptir. PPP protokol alanına yazılabilecek kodlar aşağıdaki tablodaki gibidir:
Kod (Onaltılı sayı sisteminde) | Protokol Adı |
8021 | IP Kontrol Protokolü |
8023 | OSI Ağ Katmanı Kontrol Protokolü |
8029 | Appletalk Kontrol Protokolü |
802b | Novell IPX Kontrol Protokolü |
c021 | Bağlantı Kontrol Protokolü |
c023 | Şifre Onaylama Protokolü |
c223 | Sorun Çözme Kimlik Doğrulaması Protokolü |
Her NCP kendi Ağ kontrol protokolü için gerekli olan belirli ihtiyaçları karşılar. Çeşitli NCP bileşenleri çoklu Ağ katmanı protokolleri için enkapsüllemenin yapılmasından ve seçenekler arasında uzlaşmanın sağlanmasından sorumludur.
Aşağıda bir PPP bağlantısının şematik akışı görülmektedir.
RFC (Request For Comments)-1661' de tanımlı olan standartlara göre bir PPP bağlantısı kurulurken gerçekleşen adımlar şunlardır:
- Bağlı olmama durumu (Dead Link) : Bu durum, bağlantının herhangi bir hatadan dolayı kopması ya da bağlı taraflardan birine bağlantısını koparması gerektiği söylendiğinde gerçekleşir. Mesela taraflardan birisinin telefon hattı üzerinden kurulan bağlantısını (Dial up) bitirmesi sonucunda bağlantı kopar.
- Bağlantının kurulması durumu (Link Establishment) : Bu adım, LCP’nin aradaki bağlantıyı kurmaya çalıştığı aşamayı ifade eder. Eğer bağlantı kurulabilirse bağlantı onaylama adımının istenip istenmemesine göre ya doğrudan NCP ayarlarının yapıldığı adıma geçilir ya da bağlantının onaylandığı adıma geçilir.
- Bağlantı onayı (Authenticate) : Bu adım isteğe bağlıdır. Eğer PPP’nin bu özelliği aktif haldeyse tarafların kimlik doğrulamasından geçip geçemediği sınanır. Bu doğrulamanın gerçekleşmesi halinde bağlantı onay alır ve NCP protokollerinin çalıştığı adıma geçilir.
- Bağlantının sonlandırılması (Link Termination Phase) : Bu adımda iki nokta arasındaki bağlantı sonlandırılır. Bir bağlantı, kimlik doğrulama hatası alındığında ya da kontrolü yapılan herhangi bir özelliğin sağlanmaması gibi durumlarda otomatik olarak sonlanabilir. Taraflardan birinin bağlantıyı bitirmek istemesi halinde ise içinde bulunulan duruma en uygun şekilde sonlandırma işlemi tamamlanır.
PPP’de Güvenlik Doğrulaması
Günümüzde İnternet ağlarında güvenlik önemli bir konudur. PPP’ nin birçok özelliğinden biri de diğer katmanlar için uyguladığı kimlik doğrulama, şifreleme, erişim kontrol ve genel güvenlik prosedürlerine ek olarak Katman 2’ de gerçekleştirdiği kimlik denetimidir. PPP, güvenliğin önemli olduğu bağlantılarda PAP (Password Authentication Protocol-Şifre Doğrulama Protokolü) ve CHAP (Challenge Handshake Authentication Protocol-Sorun Çözme Kimlik Doğrulaması Protokolü) adı verilen iki kimlik doğrulama protokolü seçeneği sunar. Bu protokollerin tercihi LCP tarafından bağlantının başlangıçtaki ayarları yapılırken yapılır. Bağlantının doğrulaması yapılarak daha güvenli bir iletişim ortamı sağlanır ve böylece noktadan noktaya bağlantının yetkisi olmayan cihazlardan korunması sağlanmış olur.
Şifre Denetleme Protokolü (PAP) İle Kimlik Denetimi
Şifre Doğrulama Protokolü'nde kullanıcı tarafından kullanıcı adı ve şifresi bağlantı kurulmadan önce sunucuya gönderilir. Sunucu bu bilgileri kendi veri tabanından kontrol ederek, bağlantıyı kabul eder ya da sonlandırır. PAP, uçtaki bir cihazın kendi kimliğini kullanarak çift taraflı uzlaşmanın sağlanmasının ardından bağlantı sağlayan basit bir metottur. Kimlik denetimini başardıktan sonra görevi bitmiş olur. CHAP'a göre güvenlik seviyesi düşüktür.
Sorun Çözme Kimlik Doğrulaması Protokolü (CHAP) İle Kimlik Doğrulaması
PAP'ın kimlik denetlemesini bir kez yaptıktan sonra çalışmayı durdurması, bağlantıyı dışardan gelebilecek bir saldırıya karşı savunmasız bırakır. CHAP ise PAP' ın aksine kimlik denetlemesini düzenli aralıklarla tekrarlar ve karşı tarafın hala geçerli bir şifresinin olup olmadığını denetler. Bağlantının kurulum evresinin tamamlanmasının hemen ardından karşı taraftaki uca bir kimlik sorgulaması gönderilir. Uzaktaki uç ise sorgulama mesajının ve şifrenin türüne göre değişen ve genelde MD5 ile şifrelenmiş tek yönlü bir hash fonksiyonu ile hesaplanmış bir değer ile cevap verir. Eğer beklenen hash değeri ile cevap aynı ise bağlantı yeniden onaylanır, eğer aynı değilse bağlantı hemen sonlandırılır. Güçlü şifreleme tekniği ve sürekli denetimiyle CHAP daha güvenli bir iletişim ortamı sağlar.
Noktadan Noktaya Bağlantısının Kullanıldığı Yerler
PPP farklı fiziksel medyalar üzerinde kullanılmaya uygun bir protokoldür. PPP Çoğunlukla mesajlaşma ve dosya paylaşım programlarınca kullanılmaktadır. Telefon haberleşmesi, fiber optik haberleşme ortamı, radyo iletişim ortamı ve cep telefonu haberleşmesi için kulanılır. Ayrıca ADSL hatlar yaygınlaşmadan önce, İnternet Servis Sağlayıcıları (ISP) tarafından sunulan telefon hattı üzerinden bağlantı (Dial up) için modem üzerinden kullanılıyordu. Günümüzde ise ADSL hatların üzerinde PPPoE ( Ethernet üzerinden Noktadan Noktaya iletişim) veya PPPoA (ATM üzerinden Noktadan noktaya iletişim) yaygın olarak kullanılmaktadır. PPP’nin yaygınlaşması ile beraber son yıllarda ortaya çıkan bazı yazılımlar SLIP yerine sadece PPP desteği vermektedirler. Ancak yine de; SLIP, PPP’den önce geliştirildiği ve birçok UNIX sisteminin parçası haline geldiği için hala yaygın olarak kullanılmaktadır. Ayrıca PPP protokolünün daha üstün özelliklere sahip olması ve SLIP’ e göre %5-10 kadar daha hızlı olması onu daha tercih edilir hale getirmiştir.