[ Önceki Sayfa ] [ Sonraki Sayfa ]

İnternette Bağlantı Temelleri
İnternet üzerinde veri alişverişinde temel olan bir kaç kural vardır, bunlardan ilki sunucu (server) ile istemci (client) ilişkisidir.
Veri alışverişinin başlayabilmesi için sunucu ile istemci arasında bir bağlantı kurulması ilk şarttır.

Bağlantının kurulmasını ve sonraki aşamalarını daha rahat anlamanız için; istemciyi bir kargo kuryesine, sunucuyu ise kuryenin elindeki paketi bırakacağı binadaki bir alıcıya benzetelim (burada bina, verinin gönderileceği bilgisayar ve alıcı da o bilgisayardaki bir program olarak düşünülmelidir). Bağlantı kurulurken, kesinlikle istemci sunucuya bağlanır. Yani kurye binaya alıcının yanına gider, alıcı veya bina kuryeye gitmez.

Bağlantı kurulduktan sonra 
sunucu, genelde veriyi gönderen, istemci de veriyi alan taraftır; ancak bunun tersi de mümkündür. Yani kurye binaya girdikten sonra alıcıya paketini bırakabileceği gibi, alıcıdan da çeşitli paketler alabilir (mesela alıcının paketi aldığına dair bir imza gibi).

Ancak işler maalesef ne gerçek hayatta ne de internet üzerinde bu kadar basit değil. Öncelikle kuryenin binaya ve alıcıya ulaşabilmesi için elinde bir adres bulunması şart. Burada bir parantez açarak IP adresi nedir, onu anlatalım.

IP, Internet Protokolünün kısaltmasıdır. İnternet üzerindeki her türlü veri alışverişi bu iletişim kuralları (protokol) ile yürütülür. IP kurallarına göre, internete bağlı her aletin bir IP adresi bulunması gereklidir. IP adresi dediğimiz ise, şu an kullanılan 4. nesil IP kurallarına (IPv4) göre XXX.XXX.XXX.XXX şeklinde bir yapıya sahip yalnızca rakam ve noktalardan oluşan bir dizidir. Rakamlardan oluşan bu sayılar, yalnızca 0 ila 255 arasında olabilir. Yani örnek olarak 127.0.0.1
bir IP adresidir, ancak 127.0.0.256 bir IP adresi değildir. Daha detaylı bilgi için, lütfen buraya bakınız.

IP adresinin ne olduğunu artık öğrendiğimize göre devam edebiliriz. Kuryemizin elinde doğru bir IP adresinin olduğunu varsayalım, bu durumda doğru binaya kadar gidebilecektir. Ancak binanın içine girmesi gerektiğinde şöyle bir durumla karşılaşacaktır; karşısındaki binanın yalnızca bir adet kapısı yoktur. Hangisine gireceğini de bilmesi gerekmektedir. Kapıya benzettiğimiz kavramın aslında port olarak adlandırıldığını belirtelim ve portun ne olduğuna dair ufak bir bilgi verelim. (Buradaki bilgilerin bazıları Mustafa ATAKAN'ın buradaki anlatımlarından derlenmiştir)

Bilgisayar ve telekomünikasyon dünyasında, port denildiği zaman akla ilk gelen genellikle fiziksel bağlantıda kullanılan ara birimlerdir. Bu tür portlar üzerinden bağlanmış herhangi bir makinaya veri gönderilebilir ve bu makinanın işleyişi kontrol edilebilir. Örneğin, tipik bir bilgisayarda bir veya birden fazla seri port bir tane de paralel port bulunur. Adından da anlaşılacağı gibi seri port dan bilgiler seri (her defasında bir bit) olarak gönderilir ve bu tür port lara genellikle tarayıcı (scanner) gibi cihazlar takılır. Her defasında birden çok bit göndermek içinse paralel port kullanılır. Bu tip port lara da yazıcı (printer) veya paralel port bağlantısı olan herhangi bir cihaz takılabilir.

Bizi ilgilendiren ve çoğunlukla İnternet dünyasında kullanılan port kavramı ise yukardaki tanımdan biraz daha soyut bir kavramdir. Bu anlamda port (ki bu dokümanın sonuna kadar port bu anlamda kullanılacaktir) herhangi bir fiziksel bağlantı yeri değil, mantıksal bir bağlanma şeklidir. Şöyle ki:

Günümüz dünyasında birçok işletim sistemi birden fazla programın aynı anda çalışmasına izin vermektedir. Bu programlardan bazıları dışarıdan gelen istekleri (istemci-client/request) kabul etmekte ve uygun gördüklerine cevap (sunucu-server/response) vermektedir. Bir bilgisayar, dış dünya ile bağlantı kurduğunda programların dışarıdan gelen istekleri kabul edebilmeleri için bir çok soyut bağlantı noktası tanımlar ve herbirine, bunları tanıyabilmek için pozitif bir sayı verilir (port numarası). Genelde 65.536 adedi TCP tipinde, 65.536 adedi de UDP tipinde olmak üzere, toplamda 131.072 adet port tanımlanır. Bu portların bir çoğu önceden bazı uygulamalar için ayrılmıştır, mesela 80 nolu TCP portu web uygulamaları için, 23 nolu TCP portu ise telnet uygulamaları için ayrılmıştır.

Dolayısıyla, internet üzerindeki herhangi bir sunucu programa bağlanmak istenildiğinde, programın çalıştığı bilgisayarın adresinin yanında istekleri kabul ettiği port numarasını da vermek gerekir. Örnek verecek olursak: 127.0.0.1 adresine sahip makinada çalışan telnet sunucu programına (23. port dan hizmet veren) bağlanmak için 127.0.0.1:23 gibi bir adres kullanırız.

Portun ne anlam ifade ettiğini öğrendiğimize göre kurye örneğimize geri dönecek olursak, kuryemizin paketi iletebilmesi için elinde doğru bir IP adresi ve bir de port numarası bulunmalıdır.

Örneğimizi biraz daha genişletelim. Binanın bu kapıları (bilgisayarın portları) kilitlenmemiş olsa da, binamızın kapılarının açılmak için dıştan bir kolu olmadığı için içeriden birisi açmadığı sürece binaya giremez. Bu nedenle, belirtilen portun izleniyor/dinleniyor olması gerekmektedir, yani alıcımızın (programımızın) bina yönetimine (işletim sistemine) "Bana bazı paketler gelebilir ve ben şu kapıdan getirmelerini istedim, şimdi o kapıyı izlemeye ve birisi gelirse kapıyı içeriden açıp girmesini sağlamaya gidiyorum" demesi ve alıcının o kapıyı gelebilecek paketlere karşı izlemesi gerekmektedir.

Alıcımızın bina yönetimini uyardığını, bina yönetiminin alıcımızı engellemediğini, kuryemizin elinde adresin ve gerekli kapı numarasının bulunduğunu varsayalım. Bu durumda veri alışverişinin gerçekleşmemesi için normalde hiçbir neden yoktur.

Ancak yukarıdaki durumda bir gariplik olduğunu söylememiz gerekiyor. Bina yönetimi alıcıya karşı bu kadar teslimiyetçi olursa, alıcımız kötü niyetli ise binaya zarar verecek paketleri de içeriye gönül rahatlığı ile sokabilir; öyle değil mi?

İşte bu durumu önlemek için, günümüzde birçok bilgisayarda alıcı ile kapı arasında güvenlik görevlileri (güvenlik duvarı, firewall) bulunuyor. Alıcı böyle birşey söylediği zaman bina yönetimi alıcının kapıyı dinlemesine izin vermek yerine,
"Sizin yerinize bizim güvenlik görevlimiz o kapıyı dinleyecek, siz burada oturun keyfinize bakın, güvenlik görevlimiz eğer gelen paketin güvenli olduğunu düşünürse size teslim edecektir" der ve ancak bina sahibi (yani siz) genelde dışarıdan gelecek hiç bir pakete güvenmemesi konusunda tembihlenmiş olan güvenlik birimine (güvenlik duvarı, firewall)"Bu kapıdan gelecek paketlerin şu alıcı tarafından alınmasına izin veriyorum" dediği sürece (yani belirtilen port numarasından veri alış verişine izin verecek bir kural oluşturduğunuz sürece) o kapıyı dinleyen güvenlik görevlisi gelen paketin güvenli olduğunu düşünür ve alıcıya ulaştırır. Gerçekte de bu işlemler böyle gerçekleşir, güvenlik duvarınız normalde siz özel izin vermediğiniz sürece dışarıdan gelen hiçbir isteğe cevap vermez,çeşitli programların dış dünya ile haberleşebilmesi için sizin özel izin kuralları belirlemeniz gerekir.

Artık veri alış verişimiz güvenli ve mümkün halde, değil mi? Binaya gelebilmiş kuryelerin izin verilen paketleri bırakabileceğini biliyoruz şu an. Peki ya kuryelerimizin  ellerinde doğru adres ve kapı numarası bulunduğu halde binaya girmesi engellenirse?

Devam etmek için sonraki sayfaya geçiniz.  

[ Önceki Sayfa ] [ Sonraki Sayfa ]