İnternet iletişim kuralları dizisi

Vikipedi, özgür ansiklopedi
Atla: kullan, ara
İnternet iletişim kuralları dizisi

OSI Modeli

Katman İletişim kuralları
7. Uygulama katmanı HTTP, HTTPS, SMTP, FTP, TFTP, UUCP, NNTP, SSL, SSH, IRC, SNMP, SIP, RTP, Telnet, ...
6. Sunum katmanı ISO 8822, ISO 8823, ISO 8824, ITU-T T.73, ITU-T X.409, ...
5. Oturum katmanı NFS, SMB, ISO 8326, ISO 8327, ITU-T T.6299, ...
4. Ulaşım katmanı TCP, UDP, SCTP, DCCP, ...
3. Ağ katmanı IP, IPv4, IPv6, ICMP, ARP, IGMP, IPX,...
2. Veri bağlantısı katmanı Ethernet, HDLC, Wi-Fi, Token ring, FDDI, PPP, ...
1. Donanım katmanı ISDN, RS-232, EIA-422, RS-449, EIA-485, ...

İnternet protokol takımı, bilgisayarlar ve cihazları arasında iletişimi sağlamak amacıyla standart olarak kabul edilmiş kurallar dizisidir. Bu kurallar dizisi temel olarak verinin ağ üzerinden ne şekilde paketleneceğini ve iletilen veride hata olup olmadığının nasıl denetleneceğini belirlemektedir.

Ağ kavramının ortaya çıkmasından günümüze kadar geçen sürede farklı amaçlar için birçok protokol geliştirilmiştir. Bu protokoller ilk zamanlar belli bir standarda uygun olarak geliştirilmemiş, genelde bilgisayar donanımlarına bağlı kullanılacak şekilde tasarlanmışlardır. Bu dönemde ağ yapıları donanım üreticileri tarafından kendilerine has bir biçimde geliştirilmekteydi. Bu yapılara örnek olarak IBM 'in SNA ve DEC 'in DECnet ağları verilebilir. Bu şekilde tanımlanan protokoller ve donanımlar iletişimde bir ortak noktanın bulunması ve ağlar için yazılımların geliştirilmesinde sorun oluşturmuştur. Ortaya çıkan bu sorunun çözümü olarak 1978 yılında ISO (International Organization for Standardization - Uluslararası Standartlık Örgütü) tarafından, donanımdan ve ağ alt yapısından bağımsız olarak geliştirilmiş OSI (Open Systems Interconnection) başvuru modeli ortaya konmuştur. Bu yapısı ile OSI başvuru modeli bir standart olarak kabul görülmüş ve hızlı bir şekilde gelişme göstermiştir.


Katmanlar / Layers[değiştir | kaynağı değiştir]

TCP/IP'de, yollanan veriler katmanlara göre paketlenerek yollanır ve alıcıda bu paketler teker teker açılıp veri ulaştırılır. Bu yöntem, yollanan veri, yollama şekli ve yollama yolunu birbirinden ayırarak birlikte çalışmayı kolaylaştırır: örneğin bir bilgisayarda bağlantı olarak Ethernet yerine Wi-fi kullanılması, üzerinde başka bir web tarayıcı kullanılmasını gerektirmez.

Katmanlar, bahsedilen standarda göre dört veya yedi şekilde açılabilir. TCP/IP'de genel olarak dört katmandan bahsedilir, bunlar:

  • Uygulama: Bu katmanda veriyi göndermek isteyen uygulama ve kullandığı dosya formatı bulunur. Örneğin "HTTP üzerinden HTML formatında yazılmış Wikipedia ana sayfası". OSI modelindeki gibi ağa erişmek için gerekli uygulama protokollerini içerir. OSI modelindeki uygulama katmanından farkı sunum ve oturum katmanlarının uygulama katmanı içerisinde yer almasıdır. SMTP ve FTP protokolleri bu katmanda bulunur.
  • Taşıma: Bu katmanda verinin ne şekilde gönderildiği gösterilir. Servis kalitesi(the quality of service), güvenli veri aktarımı,veri akış kontrolü (flow control), hata kontrolü (error control) gibi işlemlerin yapıldığı katmandır. TCP veya UDP gibi protokoller bu katmandadır. TCP bağlantılı (connection oriented) ve güvenilir iletişim sağlayan bir protokoldür. Bağlantılı olması; kaynak ve hedef arasında mantıksal bağlantı kurulmasıdır. Bu da iki bilgisayarın veri alışverişinde bulunmadan önce anlaşması demektir. Güvenilir olması; bağlantı üzerinden gönderilen verinin gönderildiği şekilde, veri kaybı olmadan ve sıralı biçimde iletimini garanti eder. UDP bağlantısız ve güvenilir olmayan bir iletişim sağlar. Bu nedenle UDP, TCP' ye göre daha hızlıdır.
  • : Bazen IP katmanı olarak da anılan bu katman, IP adreslerinin veriye eklendiği ve yönlendirmenin yapıldığı noktadır. Kaynak ağdan gelen veriyi hedef ağa gönderme yönlendirmedir. Paketin hedefe en iyi yoldan gönderilmesi de bu katmanın sorumluluğudur. Bu katmandaki uygulamalar IP veya IPv6 gibi iletişim protokolleri olabileceği gibi ICMP, IGMP veya ARP gibi durum bildirme ve katmanlar arası bağ protokolleri de olabilir.

Örneğin, bilgisayarınız Wikipedia ana sayfasını alırken işlemler şu şekilde gerçekleşir:

  • Wikipedia web sunucusu, HTML çıktısını yaratır ve üzerinde çalıştığı sisteme "şu veriyi şu adrese şu porttan(80-HTTP) yolla" komutu verir. Bu ilk veri, dördüncü katman olan uygulama katmanından gelen veridir.
  • Sistem, bu çıktıya öncelikle üçüncü katman olan taşıma katmanının bilgilerini iliştirir, yani paketin başına port bilgisini ve paket boyunu yazar.
  • Ardından, deminki pakete bu sefer de ağ katmanı bilgileri, başka bir deyişle yollayan bilgisayarın ve sizin bilgisayarınızın IP adresleri ve paketin toplam boyu, eklenir.
  • Son olarak, paket fiziksel katmanın eline geçer ve o katman da fiziksel adresleri ve paketin yeni boyunu da yazarak paketi gönderir.
  • Paket, dünya etrafında küçük bir tur attıktan sonra sizin bilgisayarınıza ulaşır. Yol boyunca değişik makineler paketi alır, açar, ihtiyaca ve ağ durumuna göre tekrar paketler. Paket sonunda sizin bilgisayarınıza ulaştığında sizin bilgisayarınız da önce fiziksel paketi, ardından ağ paketini, ardından taşıma paketini ve en son da uygulama paketini açar. Paketten çıkan veriyi web tarayıcınıza verir. Web tarayıcısı da size gösterir.

Katmanlama, her katmana özel donanımlar yapılmasına olanak sağlamıştır: fiziksel katmanda paket yönlendirmesi switch'ler, IP katmanında paket yönlendirmesi router'lar, taşıma katmanında paket yönlendirmesi ise NAT'lar tarafından yapılır. Bu sayede, basit donanımlarla yüksek TCP/IP performansları elde edilebilmektedir.

Katmanlama, uygulamalar arası uyumu kolaylaştırdığı gibi büyük bir dezavantaja da sahiptir: her katman veriye tekrarlanan (dolayısıyla gereksiz) veriler ekler. Örneğin her katman pakete ekstra bir boy bilgisi ekleyecektir. Çoğu katman verinin doğruluğundan emin olmak için muhtelif rakamlar da ekleyebilir. Bunun, dünya internet trafiğinin %15'ini oluşturduğu tahmin edilmektedir.

Katmanlama sistemindeki ilk üç katman (yani donanım, ağ ve taşıma katmanları) arasından:

  • Donanım katmanı, bilgisayarın üzerindeki ağ donanımını tanıyabilmek için bir ağ kartı numarası. Bu kart numarası ağ kartına yazılı gelir (yani değiştirilemez (aslında bu yöne yönelik programlarla MAC adresini de değiştirmek mümkündür)) ve MAC adresi olarak anılır.
  • Ağ katmanı, bilgisayara ulaşabilmesi için verilen IP adresini kullanır.
  • Taşıma katmanı ise, aynı bilgisayarda çalışan değişik yazılımların aynı anda internete ulaşabilmesi için her yazılıma bir port numarası verir.

Dolayısıyla bir bilgisayara ulaşabilmek için teoride IP adresi veya MAC adresi kullanılabilirdi. Ama, MAC adresleri karta yazılı olarak geldiği ve değiştirilemediği (dolayısıyla organize edilemediği) için kullanılmamakta, onun yerine ağın yöneticisi tarafından her kullanıcıya özgürce verilebilen IP adresleri kullanılmaktadır. Bunun avantajları şu şekildedir:

  • Ağlar, alt ağlara bölünebilir ve hangi makinenin hangi ağda olduğu hızlıca anlaşılabilir
  • Hangi makinenin hangi ağda olduğu kolayca anlaşılabildiği için paket yönlendirme kolaylaşır
  • Son olarak, alt ağlara bölünmedeki bazı standartlar sayesinde işletim sistemleri otomatik olarak diğer ağlara erişim için gerekli donanımlara ulaşabilir.

Günümüzde bir IP adresi, 32 bit'lik bir sayıdır (IPv6'de bu sayı 128 bit'lik olacaktır). IP'de iki cihaz aynı ağda olup olmadıklarını birbirlerinin IP adreslerinin ilk birkaç basamağına bakarak anlarlar. Bu basamağa IP maskesi (IP mask) denir. Örneğin IP maskesi 255.255.255.0 ise, ilk üç basamağı (yani ilk 24 bit'i) aynı olan iki makine aynı ağda demektir. Bu durumda, 192.168.0.1 ile 192.168.0.2 aynı ağda, 192.168.1.1 ise başka bir ağdadır.

Bazı IP adresleri ve maskeleri bazı kullanımlar için ayrılmıştır. Bunlar şu şekildedir:

  • Yerel ağlar için ayrılmış adresler:
    • 10.0.0.0 ile 10.255.255.255 arası adresler (yani maske olarak 255.0.0.0)
    • 172.16.0.0 ile 172.31.255.255 arası adresler (yani maske olarak 255.0.0.0)
    • 192.168.0.0 ile 192.168.255.255 arası adresler (yani maske olarak 255.255.0.0)
    • 169.254.0.0 ile 169.254.255.255 arası adresler (yani maske olarak 255.255.0.0)

Not: Bir IP adresi ya da protokol sınıfından bağımsız olarak bir subnet mask ile çalışıyor veya çalışabiliyorsa "classless" aksi duruma "classfull" denir.

  • Bir makinenin kendisine konuşması (loopback) için ayrılmış adresler:
    • 127.0.0.0 ile 127.255.255.255 arası adresler (yani maske olarak 255.0.0.0)

Bu sayede, bir ağdaki IP adreslerini mantıksal bir şekilde ve basitçe organize etmek mümkündür. Buna ek olarak, kullanıcılara IP adresi, ağ maskesi ve hatta varsayılan ağ geçidini otomatik atayabilmek için DHCP protokolü kullanılabilir. Bu sayede, örneğin taşınabilir bilgisayarıyla ücretsiz hizmet veren bir kablosuz ağa bağlanıldığında tüm bağlantı ayarları otomatik olarak düzenlenecektir.

TCP/IP ile mektup teknolojilerini karşılaştıracak olursak:

  • Mektubun gönderildiği kişi, mektubu içeriğine bakacak olan kişidir. Dolayısıyla, TCP/IP'de mektubun alıcısı bir uygulamadır (yani bir program). TCP/IP'de değişik uygulamalar değişik port numaraları ile temsil edilirler. TCP/IP'de 65536 uygulama aynı anda desteklenebilir.
  • Mektubun gönderildiği adres, mektubun ulaşacağı yerdir. TCP/IP'de bunun karşılığı IP adresidir. IP'nin günümüzdeki sürümünde dört milyara yakın IP adresi destelenmektedir, IP'nin bir sonraki sürümünde bu sayının 2128' (yani dört milyar üzeri dört) çıkartılması planlanmaktadır.
  • Mektubu göndermek için bir posta idaresi ve bir postahane gerekmektedir. TCP/IP'de postahaneler ağ geçidi (İngilizce gateway) olarak adlandırılır.

Genelde bilgisayarlar tek bir ağ geçidine bağlı oldukları için paket göndermek ve almak için karmaşık işlemler yapmazlar (bir TCP/IP yöneticisi, sadece hangi portu hangi programın dinlediğini aklında tutmak zorundadır). Öte yandan, ağ geçitleri değişik ağlar arasındaki bağlantıyı sağladıkları için paket yönlendirme konusunda dikkatli davranmaları gerekmektedir:

  • Öncelikle, bir önceki bölümde bahsedildiği gibi bir cihaz başka bir cihazla aynı ağda olup olmadığını kendi IP adresi ve diğer IP adresini kendi ağ maskesini kullanarak karşılaştırarak anlar. Demin değinildiği gibi, ağ maskesi 255.255.255.0 ise 192.168.0.1 ile 192.168.0.2 aynı ağdadır, 192.168.1.1 ise başka bir ağdadır. Bir cihazın başka bir ağda olması, arada bir ağ geçidi (ağ geçidi bir switch, router, NAT veya bridge olabilir) kullanılması gerektiğine işarettir...
  • Bir ağ geçidi, tüm fiziksel çıkışlarının hangi ağda olduğu bilgisini tutar (buna IP yönlendirme tablosu denir). Ağ geçidine bir paket ulaşınca, geçit hangi ağa hangi çıkıştan ulaşacağına bu tablodan bakarak karar verir. Tablo, elle girilebilir veya RIP / OSPF gibi protokollerle otomatik olarak oluşturulabilir.
  • Öte yandan, her ağ geçidi dünyadaki tüm ağ geçitlerinin nerede olduğunu tabii ki aklında tutmaz. Dolayısıyla, çoğu ağ geçidinin bir de varsayılan geçit (yani "paket nereye gidiyor bilmediğinde pakedin verileceği yer") girdisi bulunur. Örneğin sizin evinizdeki bir kişisel ağda çok yüksek ihtimalle varsayılan geçit olarak TTnet kullanılıyor olacaktır.

Bir ağ geçidi, bağlı olduğu bir cihaza verdiği bir pakedin yerine ulaşıp ulaşmadığını kontrol etmediği için IP'nin bir sonraki yöne kadar yönlendirme (İngilizce next hop routing) yaptığı söylenir...

Bazı TCP/IP protokolleri[değiştir | kaynağı değiştir]

Ağ katmanındaki protokoller[değiştir | kaynağı değiştir]

  • ARP (Address Resolution Protocol, yani Adres Çözümleme Protokolü) bir IP adresinin hangi ağ kartına (yani MAC adresine) ait olduğunu bulmaya yarar. TCP/IP'de veri gönderilecek bilgisayarın hangisi olduğunu bulmak için kullanılır. Ayrıca IP adresini yeni almış olan bir RARP, yani Ters ARP) protokolü ARP'ın tersi işlemi yapar, yani hangi MAC adresinin hangi IP adresini kullandığını bulur. Bir TCP/IP ağında RARP'ın çalışacağı garanti değildir, zira RARP bir RARP sunucusuna ihtiyaç duyar.

IP katmanındaki protokoller[değiştir | kaynağı değiştir]

  • ICMP (Internet Control Message Protocol, yani Internet Yönetim Mesajlaşması Protokolü), hata ve türlü bilgi mesajlarını ileten protokoldür. Örneğin, ping programı ICMP'yi kullanır.
  • RIP (Router Information Protocol, yani Router Bilgi Protokolü) router'ların yönlendirme tablolarını otomatik olarak üretebilmesi için yaratılmıştır.
  • OSPF (Open Shortest Path First, yani İlk Açık Yöne Öncelik) aynı RIP gibi router'ların yönlendirme tablolarını otomatik olarak üretebilmesine yarar. OSPF, RIP'ten daha gelişmiş bir protokoldür.
  • IGMP, (Internet Group Messaging Protocol, yani Internet Grup Mesajlaşma Protokolü) bir sistemin internet yayınlarına (multicast) abone olmasına ve aboneliği durdurmasına yarar. Bu yayınlar, UDP üzerinden yapılır ve genelde çoklu ortam (radyo veya video) içerikli olurlar.
  • DHCP (Dynamic Host Configuration Protocol, yani Dinamik Cihaz Ayar Protokolü) bir TCP/IP ağına bağlanan bir cihaza otomatik olarak IP adresi, ağ maskesi, ağ geçidi ve DNS sunucusu atanmasına yarar.

Taşıma katmanındaki protokoller[değiştir | kaynağı değiştir]

  • UDP (User Datagram Protocol, yani Kullanıcı Veri Protokolü), IP üzerinden veri yollamaya yarar. Verilerin ulaşacağını garanti etmez ve UDP paketlerinin maksimum boy sınırları vardır. Öte yandan, UDP son derece basit ve bağlantı gerektirmeyen (connectionless) bir protokoldür.
  • TCP (Transmission Control Protocol, yani Gönderim Kontrol Protokolü), IP üzerinden ulaşma garantili ve herhangi bir boyda veri gönderilmesine imkân tanıyan bir protokoldür. UDP'den farklı olarak, TCP'de iki cihazın iletişim kurabilmesi için önce birbirlerine bağlanmaları gerekmektedir.

Uygulama katmanındaki protokoller[değiştir | kaynağı değiştir]

  • DNS (Domain Name System, yani Alan Adı Sistemi) alan adı verilen isimler (mesela www.wikipedia.org) ile IP adreslerini birbirine bağlayan sistemdir. Paylaştırılmış bir veritabanı olarak çalışır. UDP veya TCP üzerinden çalışabilir.
  • HTTP (HyperText Transfer Protocol, yani HiperMetin Yollama Protokolü) ilk başta HTML sayfaları yollamak için yaratılmış olan bir protokol olup günümüzde her türlü verinin gönderimi için kullanılır. TCP üzerinden çalışır.
  • HTTPS (Secure HTTP yani Güvenli HTTP) HTTP'nin RSA şifrelemesi ile güçlendirilmiş halidir. TCP üzerinden çalışır.
  • POP3 (Post Office Protocol 3, yani Postahane Protokolü 3) e-posta almak için kullanılan bir protokoldür. TCP üzerinden çalışır.
  • SMTP (Simple Mail Transfer Protocol, yani Basit Mektup Gönderme Protokolü) e-posta göndermek için kullanılır. TCP üzerinden çalışır.
  • FTP (File Transfer Protocol, yani Dosya Gönderme Protokolü) dosya göndermek ve almak için kullanılır. HTTP'den değişik olarak kullanıcının illa ki sisteme giriş yapmasını gerektirir. Veri ve komut alış verişi için iki ayrı port kullanır. TCP üzerinden çalışır.
  • SFTP veya FTPS (Secure FTP, yani Güvenli FTP), FTP'nin RSA ile güçlendirilmiş halidir. TCP üzerinden çalışır.

Tüm bu protokoller (ve dahası) sayesinde TCP/IP her geçen gün daha da popülerleşen bir protokol olmuştur.

Kaynakça[değiştir | kaynağı değiştir]

Bilgisayar Ağları ve İletişim - Abdullah Kuzu