Linux Dersleri - 1

kırpık

Üye
9 Tem 2006
83
2
istanbul
Unix ve Linux’un Tarihçesi ve Gelişimi

1.1 UNIX’in oluşumu

1960’larda AT&T’nin Bell Laboratuarları,MIT ve General Electric’ın ortaklaşa yürüttükleri bir projede “Multics” isimli bir işletim sisteminin patentini aldılar. Bell Labaratuarı bu projeden çekilene kadar iki çalışanı , Dennis Ritchie ve Ken Thompson, bu proje de çalıştı. Bell Laboratuarları bu projeden çekildikten sonra bu iki kişi yeni bir projede bir işletim sistemi ortaya çıkardılar. İşletim sistemine “Multics” adından esinlenerek “Unics” ismi takıldıysa da daha sonraları bu isim UNIX olarak değiştirildi.
UNIX’in en temel özelliği Dennis Ritchie tarafından yaratılan C dili ile oluşturulmasıydı. İşletim sistemleri o güne kadar sistemin mimarisine bağlı olan makine dili ile yazılmaktaydı. UNIX işletim sistemi makine dili yerine C dili temel alınarak kodlanmıştı. Bu da işletim sisteminin diğer platformalara taşınmasını kolaylaştırıyordu.
UNIX işletim sistemi duyulmaya başladıktan sonra başta üniversiteler olmak üzere bir çok kişi ve kurumun ilgisini çekti. Özellikle üniversitelerin bilgisayar bilimleri bölümlerinde okuyan ve çalışan kişilerin desteği ile birlikte UNIX kısa zamanda büyük bir ilerleme kaydetti. Bunun sonucu olarakta en önemli bilgisayar işletim sistemi ünvanını eline geçirdi.
1980’lerin başında AT&T UNIX işletim sisteminden para kazanma yoluna gitti ve işletim sistemini özel lisanslar ile pazarlamaya başladı. UNIX’in ortaya çıktığı günden itibaren işletim sisteminin gelişmesine yardımda bulunan bir çok kişi bu karara karşı çıktı. Bunun üzerine amacı UNIX benzeri ve parasız dağıtılabilen bir işletim sistemi ortaya çıkarmak olan GNU projesi Richard Stallman tarafından başlatıldı.GNU’yu desteklemesi için 1984 yılında Stallman ve arkadaşları “Free Software Foundation (FSF)” projesini yarattılar. FSF’te “free” ile anlatılmak istenen bedava olan yazılımdan çok özgürce dağıtılan yazılım manasını taşımaktaydı. FSF’e göre herhangi bir amaç için kullanılabilen , kopyalanıp üzerinde gerekli değişiklik yapılabilen ve daha gelişmiş bir yazılım sistemine dahil edilebilen yazılım serbest yazılım(free software) olarak kabul edilmişti. Bu özgürlükler için temel olarak gereken şey yazılımın koduna erişimdi. Bu yüzden bu akım aynı zamanda “Kaynak Kodu Açık Yazılım – Open Source Software (OSS)” olarak da anılır.Linux günümüzde bulunan en büyük kaynak kodu açık yazılımdır.

1.2 Linux’un ortaya çıkışı

AT&T UNIX işletim sistemini para ile lisanslayana kadar , UNIX üniversitelerde bilgisayar bilimi öğrencilerine işletim sistemlerini öğretmek için kullanılan bir araçtı. AT&T’nin yaptığı değişiklik sonrası üniversitelerin yeni bir işletim sistemine ihtiyacı ortaya çıktı. Bunun üzerine Andrew Tannenbaum UNIX benzeri bir işletim sistemi olan MINIX işletim sistemini ortaya çıkardı.

1990 yılında Finli bilgisayar bilimi öğrencisi Linus Torvalds Intel mimarisindeki bilgisyarlar için hafıza yönetimi yapan bir yazılım üzerinde çalışmaya başladı. Bir zaman sonra bu projesinin genişletilmiş halinin UNIX çekirdeği gibi çalışabileceğini fart etti. 1991 yılında comp.os.minix haber grubuna üzerinde çalıştığı projeyi bildiren ve geliştirme için öneri isteyen bir mesaj gönderdi. Torvalds bu yeni işletim sistemine Linus’un MINIX’i olarak tanımladığı LINUX adını verdi. Unix üzerinde program geliştiren kişilerden Linux’un geliştirilmesi için yardım teklifleri gelmeye başladı. Linux’un bir önemli yanı ise GNU projesinin eksik olan bir parçasını doldurmasıydı. GNU projesi çerçevesinde yaratılacak olan Unix benzeri işletim sisteminin çoğu parçaları bitmişti. Yapılmayan en önemli parça işletim sisteminin çekirdeği idi. Bu eksikte Linux tarafından kapatılmış oldu. 1994 yılında Linux 1.0 serisi kernel GPL lisansı altında yayınlandığında , Linux 100,000 kullanıcıya erişmişti. Günümüzde Linux’un milyonlar ile belirtilen bir kullanıcı kitlesi bulunmakta. Son kullanıcı pazarında da gün geçtikce güçlenmesine rağmen Linux günümüzde çoğunlukla sunucularda kullanılan bir işletim sistemidir. Yapılan araştırmalarda Internet’te bulunan web sunucularının büyük çoğunluğu Linux işletim sistemi üzerinde çalışmaktadır.

1.3 Linus Torwalds’ın comp.os.minix Haber Grubuna attığı mesaj

From: [email protected] (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: What would you like to see most in minix?
Summary: small poll for my new operating system
Message-ID: < [email protected]>
Date: 25 Aug 91 20:57:08 GMT
Organization: University of Helsinki

Hello everybOdy out there using minix –
I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 368 (486) AT clones. This has been brewing since april, and is starting to get ready. I’d like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same pysical layout of the file-system (due to practical reasons) among other things).

I’ve currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I’ll get something practical with in a few months, and I’d like to know what features most people would want. Any suggestions are welcome, but I won’t promise I’ll implement them :)

Linus ( [email protected])

PS. Yes – it’s free of ant minix code, and it has multi-threaded fs. It is not portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that’s all I have.

Burtaya kadar linux un doğuşunu anlattık. Gelelim İnternette en Önemli olan konuya. Olmazsa olmazımız olan ağ ortamları...

***********************************

2 TEMEL AĞ BİLGİSİ

2.1 ISO/OSI ve TCP/IP Referans Modelleri
LAN, MAN ve WAN’lar, geliştirilme süreçleri içindeki ilk uyarlamalarında oldukça karmaşık bir yapı arzetmekteydi. 1980 ‘lerde networklerin sayılarında ve büyüklüklerindeki inanılmaz artış olamaya başladı. Birçok kuruluş ve firma, sahip oldukları networkleri, daha yüksek verim almak amacıyla, yeni teknolojiler geliştirildikçe ve yeni ürünler üretildikçe, bunlardan faydalanarak geliştirmeye ve yeni networkler oluşturmaya başladılar.


1980’lerin ortalarında bu organizasyonlar, büyümenin getirdiği yeni bir takım problemlerle karşı karşıya kaldılar. Yeni ve değişik belirtimler (specifications) ve uyarlamalar kullanan networklerin birbiri ile iletişim kurmasıda giderek zorlaşmıştı. Bu yüzden patentli yada kuruluşa özel networklerden (proprietary) vazgeçmeye başlanmıştır. Patentli networkler, özel olarak geliştirilen, yönetilen ve kuruluşa özel networklerdir. Bu yüzden tüm teknoloji bu kuruluşların kontrolü altında ve yönetimi altındadır. Bunun tersi olarak “Serbest” ise, halk tarafından teknolojinin serbest olarak kullanımı anla**** gelir. Networklerin uyumsuz ve biribiri ile iletişim kurmama gibi sorunlarını çözmek için, International Organization for Standardization (ISO) DECNET, IBM SNA, ve TCP/IP gibi birçok network çeşitini inceleyerek, bir kurallar kümesi yaratmıştır. Bu araştırmanın bir sonucu olarak ISO, üretici firmaların kendi içlerinde ve diğerleri ile uyumlu olan, iletişim kurabilen ve birlikte çalışabilen networkler üretemelerine yardımcı olmuştur. ISO’nun 1984 de yayınladığı OSI (Open System Interconnectivity) referans modeli, dünya üzerinde değişik birçok üretici firmanın ürettiği değişik tiptteki networklerin biribiri ile daha uyumlu ve birlikte çalışabilir (interoperability) olmasını garantileyen bir dizi standartları belirleyerek, üretiçilere bu desteği vermiştir. OSI referans modeli network iletişimi için ilk modeldir ve bugün birçok üretici ürünlerine bu modele dayalı olarak geliştirmektedirler.


OSI referans modeli katmanlı yapıya sahip bir netwrok modelidir. Her katmandaki network fonksiyonlarının ayrı ayrı izlenmesine izin verir. Daha önemlisi, bilginin network üzerinde yolculuğunu nasıl gerçekleştirdiğinin anlaşılmasını sağlar. Yani, veri paketlerinin yada bir bilginin, uygulama programlarından (application programs-örneğin, hesap çizelgesi,döküman vs,..) bir ortam (media-örneğin kablo) ve nework yoluyla bir başka bilgisayardaki uygulama progra**** nasıl yolculuk ettiğini görselleştirerek anlamamıza olanak sağlar. OSI referans modelinde, 7 adet numaralandırılmış katman (layer) vardır.

7. Katman : Uygulama Katmanı
6. Katman : Sunum Katmanı
5. Katman : Oturum Katmanı
4. Katman : Taşıma Katmanı
3. Katman : Network Katmanı
2. Katman : Veri - Bağı Katmanı
1. Katman : Fiziksel Katman

Her katmanda network fonkiyonlarının o katmana göre belirlenmesine ve bir katmanın görevlerinin diğerlerinden ayrılmasına katmanlama (layering) denir. Katmanlı network yapısının birçok faydası vardır örneğin,
• Network iletişimini küçük ve basit parçalara ayırır. Böylece anlaşılması ve öğrenilmesi daha kolaylaşır.
• Farklı firmaların geliştireceği ve desteğini vereceği network parçalarını ve bileşenlerini standartlaştırır.
• Değişik tipte network donanım ve yazılı****n birbiri ile iletişim kurmasına izin verir.
• Bir katmandaki olası bir değişikliğin başka katmanları etkilemesini engeller. Böylece daha çabuk geliştirilebilirler.
Verinin, bir network üzerinde herhangi bir kaynaktan bir hedefe yol alabilmesi için gerekli olan en önemli kriter, networkü oluşturan tüm elemanların aynı dili konuşması yada aynı kurallar ailesine uyarak haberleşmeleridir. Bu kurallar ailesine PROTOCOL adını veriyoruz. Ağ üzerindeki tüm host’lar aynı ağ protocolune uyarak iletişim kurarlar.


2.1.1 OSI KATMANLARININ YAPISI ve FONKSİYONLARI


Her OSI katmanı, verinin network üzerinde bir kaynaktan bir hedefe yolculuk edebilmesini sağlayan bir dizi fonksiyonlara sahiptir. Yine her katman kendine özel protokollere sahiptir, herhangi bir katmanı “ n ” ile gösterirsek, bu katmana ait protokole N. Katman Protokolü (Layer n Protocol) denir. Her OSI katmanı network üzerindeki tüm diğer cihazlarla (device) veya host’larla türdeş (Peer-to-Peer Communication) iletişim kurarlar. Veri katmanlar arasındaki yolculuğu esnasında her katmanda o katmana ait özelliklerini yansıtan bir isim alır. Bu şekilde isimlendirme sonucu veriye n. Katman Protocol Veri Elemanı adı verilir (N. Layer Protocol Data Unit - PDU).


Veri network üzerindeki iletilmeden önce kaynak üzerinde her katmanda ayrı ayrı o katmana özel bir takım bilgilerle (header ve trailer) sarılarak zarflanır (encapsulation). Hedefte ise aynı veri, her katmanda ayrı ayrı o katmana özel olan sargıları yada zarfları, ilgili her katmanda ayrı ayrı açıldıkça üst katmanlara iletilir (decapsulation). Bir katman ancak kendisine ait zarfı açabilir, bir üstündeki katmana ait zarfı açamaz. Aynı şekilde bir katman zarflama esnasında bir alt yada üst katman adına bu işlemi gerçekleştiremez.

Uygulama (Application) <----veri---> Uygulama (Application)
Sunum (Presentation) <----veri---> Sunum (Presentation)
Oturum (Session) <----veri---> Oturum (Session)
Taşıma (Transport) <- Segment-> Taşıma (Transport)
Ağ (Network) <---Paket--> Ağ (Network)
Ver Bağı (Data Link) <---Çerceve-> Veri Bağı (Data Link)
Fiziksel (Physical) <----- Bit-----> Fiziksel (Physical)


Bir katman üst katman protokollerinden gelen protokol veri elemanlarını kendi üzerinde zarflayarak altındaki katmana iletir. Böylece veri en üst katmandan (uygulama katmanı-application layer) itibaren zarflanarak en alt katman olan fiziksel katmanda bit katarlarına dönüştürülerek ağ ortamı (media) vasıtasıyla ağ üzerinde hedefine doğru ilerler. Hedefte ise her katman kendi protocol veri elemanı (PDU) ile ilgilenmek, onu yorumlamak için zarfı açar ve zarf içinde bulunan, o katmanda verinin nasıl değerlendireceği bilgisinin tanımlandığı başlık (header) ve kuyruğu (trailer) inceler. Daha sonra, zarfın veri bölgesinde bulunan ve bir üst katmana ait olan PDU’yu ilgili üst katman protokolünü içeren üst katmana, incelediği bilgiler ışığında iletir. Böylece gönderen ve alan sistemlerde her katmanın sanal olarak sadece birbirleri ile TÜRDEŞ iletişim kurması sağlanmış olur. Başka bir deyişle her katman uç sistemlerde, kendi Katman Protokol Veri Elemanı ile bağlantı kurarak haberleşir. Uygulama, Sunum ve Oturum katmanlarının protokol veri elemanlarına “ veri “, Taşıma katmanı protokol veri elemanına “ segment ”, Ağ katmanı protokol veri elemanına “ paket “, Veri bağı katmanlarının kullandığı veri elemanına “ frame ” ve Fiziksel katmanınkine ise “ bit “ denir.
ISO / OSI katmanlı referans modeline göre her katman bir üstündeki OSI katmanına sahip olduğu servis fonksiyonlarını kullanarak servis verir. Hiçbir katman bir altındaki yada bir üstündeki katmanı kullanmadan direk olarak diğer katmanlar ile veri alış verişinde bulunamaz. Kısa tanımlamalar ile bu katmanları özetlersek,

Katman 7 - Uygulama Katmanı , OSI modeline göre kullanıcıya veya uygulama süreçlerine en yakın olan OSI katmanıdır ve bunlara ağ servisleri verir. Başka bir OSI katmanına servis vermeyen tek OSI katmanıdır. Uç sistemlerde amaclanan ilgili servisin varlığı araştırır, bağlantıyı kurar, iletişimi senkronize eder, veri bütünlüğü ve hata düzeltme için gerekli yordamlar için uç sistemler ile anlaşma sağlar.

Katman 6 - Sunum Katmanı , bir sistemin uygulama katmanının gönderdiği verinin diğer sistemin uygulama katmanı tarafından okunabilir olmasını sağlar. Eğer gerekirse, ortak bir biçim (format) kullanarak çeşitli diğer veri biçimleri arasında dönüştürme sağlar

Katman 5 - Oturum Katmanı , iletişimde bulunan hostların sunum katmanları arasında oturumu açar, yönetir ve sonlandırır. Aynı zamanda iki uç sistemin sunum katmanlarının dialogları arasında senkronizasyonu ve aralarındaki veri iletişimini sağlar. Oturum esnasındaki diologları Diolog Control mekanizması gereği tek bir süreç olarak değil diolog parçalarına bölerek yönetir (Diolog Seperation) .Oturum kontrolünün (session regulation) yanında oturum katmanı, servisin sınıfı (class of service – örneğin TwoWayAlternate, TwoWaySimultaneous), etkin veri aktarımı ve problemlerden kaynaklanan kural dışı durumları raporlamak için gerekli olan herşeyi sağlar.

Katman 4 - Taşıma Katmanı , bağlantısız bir servis olan UDP (User Datagram Protocol ) ve bağlantılı bir servis olan TCP (Transmission Control Protocol) ile üst katman protokollerine iki tür servis verir. Oturum katmanı ve Taşıma katmanı arasındaki sınır, uygulama protokolleri ve veri-akışı protokolleri arasında bir sınır olarak düşünülebilir.
TCP servisinde gönderen sistemin oturum katmanının yönettiği oturum boyunca üst katmanlardan gelen veriyi segment adı altında küçük parçalara sıra numarası vererek böler ve Ağ Katmanına iletir. Alıcı sistemde ise bu sıra numaralarına göre segmentlerden asıl mesajı oluşturmak için önce kaybolan veya hatalı olarak alıcı sisteme ulaşmış veriyi gönderen sistemden yeniden ister, sırası bozuk olan segmentleri sıraya dizer ve son olarak segmentleri birleştirerek segmentlerin başlık kısımlarında belirtilmiş hedef port numarası ile (destination port number) ilişkilendirilmiş uygulama katmanı protokolüne gönderilmek üzere mesajı oturum katmanına iletir. Windowing mekanizması ile veri akışı kontrolü sağlar.
Taşıma katmanı, üst katmanların veri iletişim detaylarına saydam olmalarını sağlayacak şekilde servisler verir. İletişimde bulunan iki bilgisayar arasında iletişimin nasıl güvenilir (reliable) kılınacağı taşıma katmanının görevlerinden biridir. Taşıma katmanı iletişim servisi verirken, yapay devreleri (virtual circuits) portlar vasıtasıyla açar, yönetir ve doğru olarak sonlandırır.

Katman 3 - Ağ Katmanı , coğrafi olarak ayrı bölgelerde bulunan ağlardaki iki bilgisayar sistemi arasındaki bağlantının kurulması ve iletişim için yol seçimi işlevlerini yerine getiren ve karmaşık bir yapı içeren bir katmandır.

Katman 2 - Veri Bağı Katmanı , fiziksel bir link üzerinden verinin güvenilir bir şekilde aktarılmasını sağlayan, çeşitli ağ teknolojilerini içinde barındıran bir katmandır. Verinin güvenli olarak iletilebilmesi için fiziksel adresleme, ağ topolojileri, ağa erişim kontrolü , hata bildirme, framelerin sıralı dağıtımı, teslimi ve akış kontrolü gibi yapılar ile ilgilenir.

Katman 1 – Fiziksel Katman , uç sistemler arasındaki fiziksel linkin aktif hale getirilmesi, bakımı ve kaldırılması için gerekli elektriksel, mekanik, prosedürel ve fonksiyonel belirtimleri (specifications) karakteristikleri ve ayrıntıları tanımlar. Bu karakteristikler örneğin voltaj seviyeleri, voltaj değişimi için zamanlama, fiziksel veri hızı, maksimum iletim uzaklığı, fiziksel konektörler ve diğer benzeri öznitelikler (attributes) fiziksel katman belirtimleri tarafından tanımlanır.

ISO/OSI modelinin yaygın olarak tanınmasına karşın, internetin tarihi ve teknik açıdan açık standartı (Open Standart) TCP/IP referans modelidir (Transmission Control Protocol / Internet Protocol). TCP/IP referans modeli ve TCP/IP protokol yığını (stack), dünyanın herhangi bir yerindeki iki tane sistem arasında veri iletişimini neredeyse ışık hızında mümkün kılar..

Uygulama Katmanı
(Application Layer)

Taşıma Katmanı
(Transport Layer)

Internet Katmanı
(Inetrnet Layer)

Ağ Erişim Katmanı
(Network Access Layer)

TCP/IP modeli ISO/OSI gibi katmanli yapıdadır ve 4 adet katmana sahiptir. Bazı katman isimleri ISO/OSI model ile benzerlik gösterir. Ancak iki ayrı modeldeki isimleri aynı olan katmanların görevlerini birbiri ile karıştırmamak gerekir. Çunki taşıma katmanı dışında, aynı isimli katmanlar tamamen özdeş değildirler.

Katman 4 – Uygulama Katmanı , ISO/OSI modelinin en üst 3 katmanı ve tüm uygulama-ilişkili görevleri TCP/IP modelinde tek bir katmanda birleştirilmiştir. Böylece sunum, kodlama ve dialog kontrolü işlerinin yürütüldüğü tek bir uygulama katmanı yaratılmıştır.

Katman 3 – Taşıma Katmanı , OSI modelde olduğu gibi , servisin kalitesi, güvenilirlik sorunları, akış kontrolü ve hata düzeltme ile ilgilenir. Protokollerinden bir tanesi olan TCP, güvenilir ve hata oranı az bir ağ iletişimi için esnek ve mükemmel çözümler sunar.

Katman 2 – Internet Katmanı , görevi kaynak sistem paketlerinin, internetworkteki herhangi bir ağdan, üzerinden geçtiği ağlar ve yollardan bağımsız olacak şekilde, hedef sisteme ulaşmalarını sağlamaktır. IP bu katmandaki belirgin protokoldür. En iyi yolun belirlenmesi ve paket anahtarlama (packet switching) bu katmanda gerçekleşir.

Katman 1 – Ağ Erişim Katmanı , isim anlamı oldukça dar ve bazen karmaşık olabilir. Aynı zamanda host-to-network layer olarakda adlandırılır. IP paketinin gerçek bir fiziksel link yaratabilmek için ihtiyacı olan birçok konu ile ilgilenen katman bu katmandır. ISO/OSI modelin veri-bağı ve fiziksel katmanlarının tüm görevlerini, LAN ve WAN teknoloji detaylarını içerir.
 

kırpık

Üye
9 Tem 2006
83
2
istanbul
Linux Dersleri - 2

1.1 TCP/IP PROTOKOLLERİ, PORTLAR ve SERVİSLER

Diagramda TCP/IP protocol yığını tarafindan belirlenen ve çok yaygın olan protokollerden bazıları görülmektedir. TCP/IP referans modelinde, hangi uygulamanın ağ servisi istediğinden veya hangi taşıma katmanı servisinin kullanıldığından bağımsız olarak ağ katmanında tek bir ağ katmanı desteği verilir. Buda Internet Protocol olarak bilinen IP protokoludur.
Ağ katmanında bağlantısız bir servis olan IP, paketin ağlar arasında en iyi şekilde iletilmesi ve yönlendirilmesini sağlar. Veri paketleri birkez ağ katmanından taşıma katmanına gelince burada iki ayrı protokole göre işleme tabi tutulurlar. Bunlar bağlantılı bir servis olan TCP (Transmission Control Protocol) ve bağlantısız bir servis olan UDP dir (User Datagram Protocol).
.TCP, uç sistemlerdeki port numaralarını kullanarak uygulamalar arasında yapay-devre oluşturur. Karakteristikler özetlenirse,
.Bağlantılı bir servistir
.Güvenilirdir
.Giden mesajları segmentlere ayırırak gonderir
.Alıcı sistemde bunları numara sırasına göre sıraya dizer
.Alıcı sistem tarafından alınmayan segmentleri yeniden gönderir
.Gelen segmentlerden mesajları yeniden oluşturur

UDP, uç sistemler arasında veriyi güvenilir olmayan bir şekilde iletir. UDP’in karakteristikleri ise şöyle özetlenebilir,
·Bağlantısızdır
·Güvenilir değildir
·Mesajların kendisini iletir
·Mesajın dağıtılıp dağıtılmadığına ilişkin yazılımsal bir doğrulama yoktur (Güvenilmez)
·Gelen mesajları bir araya toparlayarak yeniden mesajı oluşturmaz
·Mesaj alındısı kullanmaz (No-Acknowledgement)
·Akış kontrolü yoktur (No-Windowing)

TCP/IP iki bireysel protokolün bir kombinasyonudur. Bağlantısız ve bir 3. Katman protokolü olan IP ki taşıdığı verinin ağ üzerinde en-iyi-dağıtım (Best-Effort-Delivery) servis desteğini veren ve bağlantılı ve güvenilirliğin yanında akış kontrolü sağlayan ve bir 4. Katman protokolü olan TCP bunu oluşturur. TCP ve UDP, bilgiyi üst katmanlara iletmek için port (yada socket) adı verilen servis erişim noktalarını kullanırlar. Port’lar eş zamanlı oluşan farklı dialogların izini takip edebilmek için kullanılır. Bu port numaraları RFC1700 ile belirlenmiştir. Bir çok TCP/IP ve UDP/IP servisi bu port numaraları ile tanınırlar. Port numaraları üç ayrı sınıfta toplanırlar, bunlar,
·Numarası 255 ‘in altında olan Portlar (Well-Known-Ports)
·Numarası 255 ile 1023 arasında bulunan ve ticari şirketlerin geliştirdiği uygulamalar için atanan Port Numaraları
·Numarası 1024 ve üzerinde bulunan ve herhangi bir düzenlemeye tabi tutulmamış Port Numaralarıdır.
Bazı portlar halka açık ve çok kullanılan uygulama programları için özellikle ayrılmıştır. Örneğin bir dosya aktarma protokolü olarak bilinen FTP standart olarak 21 nolu TCP portunu kullanır. Bu tür portlara İyi-Bilinen (Well-Known) Port numaraları denir. Port numaralarının bir kısmı ise şirketlerin geliştirdiği ticari yazılımlar için ayrılmıştır. Bu tür yazılımlara yukarıda belirlenen aralıktan rastgele olarak port numaraları atanabilir. Bazı TCP ve UDP port numaraları ise özel amaçlar için ayrılmış ve saklanmıştır. Uç sistemler port numaralarını uygun uygulamayı seçmek amacıyla kullanırlar. Kaynak port numaraları kaynak sistem tarafından dinamik olarak atanır ve 1024 ve üzerindeki port numaralarından seçilirler
TCP, veri aktarımından önce bağlantı temelli oturumu Üç-Yönlü Elsıkışma (Three Way Handshake) metodunu kullanarak açar ve her iki uç sistemde bağlantıyı eşzamanlı kılar. Veri transferi daha sonra başlatılır. Böylece üst katmanlara taşıma katmanı tarafından verilen bu servis sayesinde üst katman protokollerine ait olan veri (mesaj), sıralanmış, veri segmentleri birleştirilmiş ve mesaj haline getirilmiş olur. Veri daha sonra ilgili üst katman protokolüne, o protokol ile ilgili PORT numarısı uyarınca iletilir

TCP, eşzamanlama için Beklenimli onay adıda verilen (Expectational Acknowledgement) Pozitif Onaylama Yeniden İletim Sistemi kullanır. Yani uç sistemler gönderdikleri mesajlarda sıra numarası (sequence number) ve onay (acknowledgement) bilgilerini içeren alanlar kullanırlar. Bu sistem uç sistemlerin, üç yönlü elsıkışma esnasında başlatılan ve veri iletiminde de devam eden bir kontrol mekanizmasına dayanır. Sistemler birbirlerine gönderdikleri mesajı alıp almadıklarını kontrol etmek amacıyla verilen cevap mesajında, karşı tarafın kendisinden beklediği kendi sıra numarasını (sequence number) ve onay olarak gönderilmiş olan mesajın deva**** niteleyen bir sonraki sıra numarasını (acknowledgement number) gönderirler.
Eğer, gönderilen mesajın karşı tarafa ulaştığı haberi zamanında geri gelmezse mesaj tekrar gönderilir. Eğer mesaj alıcı sistem tarafından zamanında alınmaz ise Pozitif Onaylama Yeniden iletim sistemi gereği mesaj yeniden istenir. Bunun için ise beklenilen ve henüz alınmamış verinin sıra (sequence) numarası onay mesajında belirtilir.
TCP, verinin güvenilir biçimde iletilmesinin yanında aynı zamanda veri iletimi için veri üzerinde akış kontrolüde gerçekleştirir. Akış kontrolü için Kayan Pencere (Sliding Window) sistemi kullanılır. Alıcı sistemler, her defasında mesajın deva**** isterken göderecekleri onay üzerinde, karşı taraftan kendisine segmentleri kaçarlı gruplar halinde kabul edebileceğini belirten ve pencere boyutu olarak tanımlanan sayıyıda, gönderen sisteme bildirirler. Bu sayı alıcı sistemin tampon belleğinin o anki durumuna göre belirlenir ve dinamik olarak değişir.

Bu sistem düzgün çalışmasa yada kullanılmasaydı tampon bellek boşalması yada taşması gibi problemler oluşabileceğinden veri transferi etkin kılınamamış olacaktı.
UDP, TCP/IP protokol ailesinde ,bağlantısız bir veri iletim sistemidir. Datagramların değiş tokuş edilmesini sağlayan basit bir protokoldür. Pencere ve onay sistemi kullanmaz. Hata işleme ve yeniden iletim diğer protokoller tarafından gerçekleştirilmek zorundadır. Bu yüzden uygulama katmanı protokolleri bu görevleri yerine getirmek durumundadır.
UDP, mesajın segment sıra (sequence) numaraları kullanarak sıralanmasına ve/veya bu segmentlerden yeniden oluşturulmasına ihtiyaç duymayan uygulama katmanı protokolleri için geliştirilmiş bir protokoldür. Segmentlere ayırılması gerekmeyen büyüklükteki verilerin (mesajların) iletilmesi için ideal bir protokoldür. User Datagram Protocol’ü kullanan bazı uygulamalar arasında, TFTP, SNMP, DNS (zone transferleri için) sayılabilir.
1.2 MAC ve IP ADRESLERİ ve IP ADRES SINIFLARI

MAC (Media Access Control ) adresleri 48 bit uzunluğunda ve 12 hexadecimal dijit ile ifade edilen adreslerdir ve iki kısımdan oluşurlar. Yüksek anlamlı ilk 6 dijitlik ilk kısım IEEE tarafından idare edilir ve kart üretici firmalara dağıtılır. OUI (Organizational Unique Identifier), olarak adlandırılan bu kısım kart üreticisi firmayı temsil eder. Geri kalan 6 hex dijit, Interface Serial Number’ı ihtiva eder. Bu 6 dijitlik kısım firmanın kontrolünde üreteceği kartlar için firmanın belirlediği kurallar ile kullanılır. MAC adresleri, NIC kartın ROM’u üzerine yazıldığı için zaman zaman burned-in-address (BIAs) olarak da adlandırılırlar. Her bilgisayar kendisinin diğer bilgisayarlardan ayırt edilmesini sağlayan bir fiziksel yada donanım (Hardware) adresine sahiptir.Bu adreslere Medya Erişim Kontrol Adresleri (Media Access Control Adress) yada kısace MAC adresleri denir. İki ayrı NIC kartın ve dolayısı ile bunları kullanan bilgisayarların MAC adresleri aynı olamaz. MAC adreslerinin 0000.0c12.3456 ve 00-00-0c-12-34-56 olmak üzere iki çeşit gösterim şekli vardır.
Bir Ethernet ağında, herhangi bir cihaz ile veri alışverişinde bulunmak isteyen bir cihaz kendi ve hedef cihazın MAC adreslerini kullanarak bir iletişim yolu açar. Verinin ağ üzerindeki yolculuğu esnasında ağ üzerindeki diğer tüm cihazlar bu hedef MAC adreslerini kendi MAC adresleri ile kıyaslayarak verinin kendilerine gönderilip gönderilmediğini anlamaya çalışırlar. Kendilerine ulaşan frame üzerindeki hedef MAC adresi kendi MAC adresi ile uyuşmayan cihazlar bu frame’i kabul etmez gözardı ederler. Adres uyuşması durumunda hedef istasyon frame ‘in bir kopyasını alarak bunu üst katmana iletir.
MAC adresleri olmadan ağ üzerinde iletişim imkansızdır, bu adresler cihazların ağ üzerinde kendilerini belirlemelerini sağlar. Ancak bunların yanında herhangi bir hierarşik yada yapısallığa sahip olmaması nedeniyle ağlar arası iletişimi desteklemek için yetersizdirler. Bu yüzden MAC adresleme mekanizmasına düz adresleme (Flat Addressing) mekanizmasıda denir. MAC adresleri bir ülkede yaşayan insanlar için birer kimlik kartı gibi yorumlanabilir. Ancak bu kimlik kartları bir pasaport gibi uluslararası kabul belgeleri değildirler! MAC adresleri bir yerel ağ (Local Area Network) üzerindeki iletişimin düzgün kurulabilmesi için gerekli ve yeter şart iken yerel ağlar arası iletişim için bir mantıksal ağ adresleme (Logic Addressing) mekanizmasına ihtiyaç vardır. Bu adresleme mekanizmasının hierarşik bir yapıya sahip olması gerekir. Bu tür adresleme mekanizması ISO/OSI modelde Ağ katmanında TCP/IP modelde ise Internet katmanında belirlenir. Örnek olarak TCP/IP modelde IP (Internet Protocol) adresleri mantıksal adreslerdir. Nowell’in IPX’i, Digital Equipment Co.nun DecNet adresleri de diğer örnekler olarak verilebilir. Hierarşik adresleme mekanizmasına bir örnek de telefon numaraları verilebilir. Telefon numaralarındaki alan kodunu belirten ön-ekler (Prefix) santralleri, numaranın geri kalanı ise belirli bir santraldeki abone numarasını betimler. Bir telefona ulaşmak için, alan kodu birinci adımı ( First Hop) sonraki 3 dijit yerel santral numarasını yani ikinci adımı (Second Hop), son dijitler ise telefonun kendisini yani son adımı (Final Hop) belirler.
IP adresleri en yaygın ve popüler hierarşik adresleme uygulamasıdır. IP, Internetin kullandığı ağ protokolüdür ve yaygınlaşmasında çok büyük rol oynamıştır. Her IP paketinin başlık (Header) kısmında yer alan kaynak ve hedef adres alanları 32 bitlik alanlandır ve paketin ağ üzerinde yönlendirilebilmesi için yeterli bilgiye sahiptir. Paketi gönderen sistem, IP paketinin başlık kısmındaki kaynak adres bölümünü kendi IP adresi için, hedef adres kıs****da ulaşmak istediği istasyonun IP adresini belirlemek için kullanır. IP adresleri 4 adet 8 bitlik octet adı verilen alandan oluşur. IP adreslerinin hierarşik yapısı, IP adreslerinin sınıflandırılmasından kaynaklanır. IP adresleri ağ ve sunucu (network ve host) alanı olmak üzere iki alandan oluşur. Sınıflandırma IP adreslerinin bu özelliğine göre gerçekleştirilmiştir.
IP adresleri American Registry for Internet Numbers (ARIN) tarafından organize edilir. Üç adet IP adres sınıfı vardır bunlar A, B ve C sınıfı adreslerdir. Bir IP adresi eğer,
·İkilik düzende yazıldığında ensoldaki bit 0 ise bu bir A sınıfı adrestir. Adresin ilk octeti ağ bölümünü sonraki üç octeti sunucu bölümünü ifade eder. Başka bir deyişle bir A sınıfı adreste, 7 bit ağ alanı ve 24 bit host alanı vardır. IP adres uzayı 0 ile 127 arasındadır. 127, 0 ile başlar ama özel amaçlar için kullanılmak amacıyla saklanmıştır.
·En sol 2 bit 10 ise bu bir B sınıfı adrestir. Ağ alanı ilk iki octet ten oluşur ve geri kalan 2 octet sunucu alanını tanımlar. 14 bitlik ağ ve 16 bitlik sunucu alanına sahiptir. IP uzayı 128 ile 191 arasındadır. 172.16.0.0 ile 172.31.255.255 arasındaki adresler özel adresler olarak ayrılmıştır (Private Address Space) ve internet üzerinde yönlendirilmezler.
·En sol üç bit 110 ise IP C sınıfıdır. Üç adet ağ ve bir adet sunucu alanı vardır. Ağ alanı 21 bit, sunucu alanı 8 bittir. Adres uzayı 192 ile başlar ve 223 ile biter. 192.168 ile başlayan adresler özel adreslerdir (Private Address Space) ve internet üzerinde yönlendirilmezler.
1.3 TCP/IP AĞ ADRESLERİ
IP adresleri her nekadar sınıflarına göre sunucu alanlarına sahip olsalarda bu alanlarının hepsini sunucuları adreslemek için kullanamazlar. Örneğin bir C sınıfı adres için 2^8 yani 256 adet sunucu adresi vardır ancak bunlardan 254-2 tanesi sunucuları yada ağ üzerindeki cihazları adreslemek için kullanılırlar. Kullanılamayan adreslerden biri ağ adresi (Network Address), diğeri ise ağ yayın adresidir (Broadcast Address). Bir ağ yada alt-ağ üzerinde bağlı olan tüm sunucular ve ağ cihazlarının sahip olduğu IP adreslerinin hepsi aynı ağ yada alt-ağ adresine sahiptir (Network yada Subnetwork adresi) . Bu ağ adresi ağın kendisinin ve ağdaki tüm cihazların diğer ağlar ve diğer ağlardaki cihazlardan ayırt edilebilmelerini sağlar. Ağ adresinin tanımlanabilmesi için IP adresinin yanında ağ maskesi adı verilen yine 32 bitten ve 4 octet ten oluşan bir adrese daha ihtiyaç vardır.
Ağ maskesi (Netmask) IP adresinin sınıfına göre belirlenir ve varsayılan ağ maskesi adını alır. Bir IP nin ağ maskesini (Netmask) belirlemek için iki durum göz önünde bulundurulmalıdır.
1.Ağ alt ağlara ayrılmamışsa ; bu durumda ağın ağ maskesi IP’nin ağ (Network Bitleri) alanlarını belirleyen bitlerin hepsinin 1 yapılması ile gerçekleştirilebilir. (örneğin 180.80.200.15 bir B sınıfı adrestir ve ağ maskesi 255.255.0.0 dır. Ağ adresi 180.80.0.0 dır, çünki ağ bitleri 16 adettir. Sunucu alanların bit alanı sayısı ise aynıdır)
2.Eğer alt ağlara bölünmüş ise (Subnetting) ; ağ alanları ile birlikte alt-ağ (Subnet bitleri) alanlarınında birlenmesi ile bulunabilir (örneğin 193.185.25.65 bir C sınıfı adrestir ağ maskesi ise 255.255.255.223 olarak belirlenmiş ise ağ adresi, 193.185.25.64 olarak karşımıza çıkar. Dikkat edilirse sunucu alanı olan son octet üzerinde üç bitlik alan alt-ağ yaratmak üzere sunucu alanından ödünç alınmıştır. Böylece 2^3 adet yani 8 tane alt ağ yaratılabilir ancak 8 – 2=6 adet alt-ağ kullanılabilir. Kullanılamayan ağlardan biri ana-ağın adresi le diğeri ise yine ana-ağın ağ yayın adresi ile çakışmaktadır. Sunucu alanı için geriye 5 bit kalır buda herbir alt ağ üzerinde 2^5 yani 32 adet IP adresi demektir ancak bunlardan 32-2=30 tanesi hostlar için kullanılabilir. Bu sefer, kullanılamayan IP adreslerinden biri ana-ağın adresi ile diğeri ise yine ana-ağın ağ yayın adresi ile çakışmaktadır.
1.3.1 Alt-Ağlara Ayırma Örneği

Ağ Ağ Ağ Sunucu

193 185 25 64 IP Adresi (Onluk Düzen)

11000001. 10111001. 00011001. 010 00000 IP Adresi (İkilik Düzen)

11111111. 11111111. 11111111. 111 00000 Alt-Ağ Maskesi
AND


11000001. 10111001. 00011001. 010 00000 Alt-Ağ Adresi



2^2 * 0 + 2^1 * 1 + 2^0 *0 = 2 ( IP adresi İkinci alt Alt ağ aittir)


Alt ağlar, sahip olunan ağ üzerinde yayın etki alanı (broadcast domain) kontrolü yapılabilmesi ve ağın daha etkin olarak kullanılabilmesi, yönetilmesi amacıyla yaratılırlar. Yayın etki alanları bir ağ katmanı cihazı olan router ile biribirinden ayrılabilir.
Ağlar arası iletişimde ağ yada alt-ağ adresleri router yardımıyla sağlanır. Bir router kendisine bağlanan her ağ üzerinde bir ağ arayüzüne (Network Interface yada Port) sahiptir. Bu arayüz o alt ağın adres uzayından bir mantıksal adres alır. Örneğin IP sözkonusu ise, router ın bu arayüzünün sahip olduğu adres, o ağ yada alt-ağdaki tüm ağ istasyonları için (hosts, network devices) varsayılan geçit adresi ismini alır (Default Gateway). Varsayılan geçit adresi istasyonların yerel olmayan iletişimin kurulabilmesi için gereklidir. Bu yüzden dış ağlara ve internete ulaşması istenen tüm istasyonlarda TCP/IP yapılandırılmasında belirtilebilir.
Ağ yayın adresleri ve alt-ağ yayın adresleri aynı ağ üzerindeki tüm istasyonlara aynı anda ulaşacak bir verinin iletilmesi için kullanılırlar (Broadcast). Ağ yayın adresi tüm sunucu bitlerinin “1” yapılması ile bulunabilir. Görülen örnekteki 2. alt-ağ için ağ yayın adresinin nasıl bulunduğu gösterilmiştir.


Ağ Ağ Ağ Alt-ağ Sunucu


11000001. 10111001. 00011001. 010 11111 2. Alt-Ağ Yayın Adresi

193. 185. 25. 95 2. Alt-Ağ Yayın Adresi

11000001. 10111001. 00011001. 010 00001 İlk Kullanılabilir Sunucu Adresi
193. 185. 25. 65

11000001. 10111001. 00011001. 010 11110 Son Kullanılabilir Sunucu Adresi
193. 185. 25. 94
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.