Linux Sistem Yönetimi (1. Düzey) -------------------------------- Eğitmenler: ----------- Emre Eryılmaz Aydın Doyak - aydindoyak@ozguryazilim.com.tr Samed Beyribey Levent Emmungil Çağrı Ersen Özgür yazılım nedir? Özgür yazılım: 0- Çalıştırma özgürlüğü, 1- Değiştirme özgürlüğü, 2- Dağıtma özgürlüğü, 3- Kaynak kodlarıyla birlikte dağıtma özgürlüğüne sahip olan yazılımdır. Unix; Dennis Ritchie, Ken thompson, Brian Kernighan tarafından 1969'da yazılan, ilk çok kullanıcılı (multiuser) işletim sistemidir. Unix, Dennis Ritchie tarafından yazılan C programlama diliyle yazılmıştır. Linus Torvalds tarafından yazılan Linux, Unix olmayıp, bir Unix türevidir. GNU'nun açılımı da GNU's not UNIX'tir. GNU tools (space) GPL (General Public License) - Genel Kamu Lisansı Dosya Sistemi Hiyerarşi Standardı --------------------------------- • /(kök -root- dizini) • /boot (açılış yükleyiciye -boot loader- ait statik dosyalar) • /dev (aygıt dosyaları) • /etc (üzerinde ̧calışılan -host- makinaya ait sistem konfigürasyonu) • /lib (paylaşılan temel kütüphaneler ve ̧cekirdek modülleri) • /mnt (bir dosya sistemini geçici olarak bağlamak için bağlantı noktası) • /opt (Sonradan eklenebilen -add-on– uygulama yazılım paketleri) • /sbin (gerekli ikili/ ̧calışabilir -binary- sistem dosyaları) • /tmp (geçici dosyalar) • /usr (ikincil hiyerarşi) • /var (değişken bilgiler) +---------+-----------------+-------------+ | | shareable | unshareable | +---------+-----------------+-------------+ |static | /usr | /etc | | | /opt | /boot | +---------+-----------------+-------------+ |variable | /var/mail | /var/run | | | /var/spool/news | /var/lock | +---------+-----------------+-------------+ Levent Emmungil Takas (swap) alanı RAM'in yetmediği durumlarda RAM'in tamamının dolmasını engeller. Peki, hangi veriyi atar? Çalışmayan program gibi işlenmeyen veriyi. Linux'ta mecbur kalınmadıkça RAM kullanılmaz. Bu nedenle RAM daha etkili kullanılır. Windows'ta takas ayrı bir partition değildir. Mac'ın ise ayrı bir takas alanı da yoktur. Windows'ta swap C'nin altındadır ve RAM yeterli olsa bile swap kullanılır. Bu HDD'nin ömrünü azaltır ve HDD'nin veri çekmede yavaşlaması anlamına gelir. Neden komut satırı kullanıyoruz? * Komut satırı grafik arayüzde yapamadığımız şeyleri yapabilme imkanı sağlar. * Daha az kaynak kullanmak, sistem kaynaklarını çok daha az tüketmek için komut satırını kullanırız. Cache (önbellek) --- buffer (küçük önbellek + tampon) RAM'de bir işlem yapılırken kapatılınca RAM boş gözükür. RAM'de yer varsa, bunu cache'ye atar. Kapattığımızda kullanmadığımız alanlar, cache'de saklanır. Bu, Windows'ta da böyledir. Linux ve Mac Windows'u görür, Windows hiçbirini göremez. NTFS - FAT farkı, NTFS'nin günlüklü olması. EXT4 - EXT3 farkı // // // HFS - HFS farkı // // // Windows'ta yazılan CD'ler Linux'ta da çalışır. Çünkü CD'ler için ortak dosya sistemi kullanılır. Aynı şey flash diskler için de geçerlidir. CD'ler içeriden dışarıya yazar, HDD'ler dışarıdan içeriye yazarlar. primary primary primary extended +---------+-----------------+-------------+-------------+ |SDA1 | SDA5 | SDA6 | | | | | | | +---------+-----------------+-------------+-------------+ primary extended +---------+-----------------+ | SDA2 | | | | | +---------+-----------------+ SDA1, SDA5, SDA6... Bilindiği gibi, yalnızca 4 primary partition yapılabilir. Bu nedenle, sistem tarafından SDA2, SDA3, SDA4 rezerve edilmiştircd -c. Ondandır ki ilk partitionlar bunlardır. Kabuk: Dokunduğumuz, tıkladığımız kısım. Çekirdek: Donanıma yakın olan kısım. Çekirdek modüllerden oluşur: Ekran kartı sürücüsü vb. gibi. İstenildiği zaman bu mowdüllerde değişikliğe gidilebilir. Paket yöneticisi Genel olarak Debian'ın .deb ve Red Hat'ın .rpm paketleri kullanılıyor. Paket yöneticisi programları kurup kaldırmayı sağlar. Linux'ta dosyalar birden çok amaç için kullanılır. Windows'taysa tek bir amaçla kullanılır. Linux, sistem kaynaklarını iyi kullanır. Exchange: Microsoft'un mail sunucusudur. Türkiye'de bunu düzgün biçimde yönetebilen insan sayısı bir elin parmaklarını geçmez. MSQL: Microsoft'un veritabanı sunucusudur. SQL: SQL der ki: Benim tablolarım var. Bu tabloları kullan. Gerektiğinde içindeki verileri al, kullan. +-----------------+ |--|--|--|--|--|--| |--|--|--|--|--|--| +-----------------+ GNU/Linux dağıtımlarının çok olması, tercihlerin çok olması anlamına geliyor. Tabii, özgür yazılımın geniş seçenekler sunuyor olması da bu yönelimi kolaylaştırıyor. UTM (Unified Thread Management): Bütünleşik güvenlik cihazı. Antivirüslerden ağ geçidine, filtreleme sistemlerine kadar tüm tehditleri engelleyen bütünleşik cihaz. IP adresi: İnternette bilgisayarların birbirleriyle haberleşmelerini sağlayan adresler. IP adresi; iç IP adresi ve dış IP adresi olmak üzere ikiye ayrılır. +---------+ +---------+ +---------+ | PC | | PC | | PC | | | | | | | +---------+ +---------+ +---------+ İki bilgisayarımız var. Bunları kabloyla birbirine bağlayabiliriz ya da wireless ile. Bunun için network kartı gereklidir. Her ikisinin de IP adresi olmalıdır. Dolayısıyla IP1 ve IP2 diye iki ayrı IP adresi ortaya çıkar. 3. bir bilgisayar alacaksam? Onu da diğerleriyle bağlayacaksam ve kablolu bağlayacaksam? Switch! Peki bunları kablosuz bağlamak istersem? Access point! O zaman aygıtlar sinyal gücüyle bağlanır. 1- Bağlantılarda mümkün olduğunca kablolu olanı tercih etmeliyiz. 2- Gerekliyse kablosuza geçebiliriz. +---------+ +---------+ +---------+ +------+ +------+ | PC | | PC | | PC | |switch| |ADSL | | |--|---------|--|---------|---------|------|----|Kablo | +---------+ +---------+ +---------+ +------+ +------+ veya uydu internet 3G modem Metro internet Eski modemlerde analog sinyal gönderimi vardı. ADSL'de (D) digital iletim var. Dolayısıyla dönüşüm işlemleri söz konusu olmadığı için yüksek hız ortaya çıkıyor. ADSL Olanağının küçük bir bölümü upload için ayrılıyor. Bu nedenle upload-download arasında önemli bir fark oluşuyor. Mac adresi: Cihazların IP adresi olmasa bile Mac adresi denen bir adresleri vardır. Mesela: ifconfig komutu verildiğinde: Wlan0 link encap:Ethernet HWaddr 24:0a:64:9C:7f:6f biçiminde bir çıktı alınır. Burada HWaddr diye başlayan kısım Mac adresidir. +---------+ +---------+ +---------+ +------+ +------+ | PC | | PC | | PC | |switch| |ADSL | | |---|---------|---|---------|---------|------|----|Kablo | +---------+ +---------+ +---------+ +------+ +------+ 192.168.1.5 192.168.1.5 192.168.1.5 - IP adresi (tek başına yetmez!) 255.255.255.0 255.255.255.0 255.255.255.0 - Alt ağ maskesi (o da lazım!) 255.255.255.0 şu anlama geliyor: 255.255.255 kısmı değişemez. Ama sondaki 0'a denk gelen kısım değişebilir. Bu, her bilgisayarda farklı olabilir. Zaten her bilgisayarda farklı bir IP adresi olması gerektiği için bu kısım farklı olmak durumundadır. Ağ geçidi: İnternet nereden karşılanacak? Ağ geçidi (gateway) başka bir ağa geçiş hizmeti veren bir noktadır. Büyük şirketlerde genelde ağ geçitleri bir istemciyi (client) internet ortamına yönlendirme görevi üstlenirler. Bu durumda ağ geçidi bir vekil (Proxy) sunucu veya bir ateş duvarı (firewall) olabilir. Router, 192.168.1.1.'den diğer tarafa iletimi sağlayan aygıt demek. Proxy: İnternet kontrol makinesi. Ama bunun asıl amacı interneti hızlandırmaktır. İnternet erişimine belirli kısıtlamalar da getirebilir. sudo nano /etc/shadow --- şifrelerin tutulduğu dosyayı açar. Şifreler dönüştürülmüştür. Normal olarak bu şifreleri kimse anlayamaz. +-----------+----------+-----------+-----------+ | | | |_| |_| |_| | | | | | +-----------+-----------+-----------+-----------+ Tarayıcıda farklı sekmelerde çok çeşitli siteleri açıyor, her birinde değişik işlemler yapıyoruz. Ama hiçbir işlem birbirine karışmıyor. Bu, nasıl mümkün oluyor? Bizi internete yalnızca bir kablo bağladığına göre, nasıl oluyor da on ca işi hiçbir karışıklık yaşamadan idame ettirebiliyoruz? Bunun sırrı perde gerisinde çalışan 65535 tane portta yatıyor. İşte her bir işlemi ayrı ayrı yürüten bu 65535 porttur. Güvenlik duvarı, dışarıdan içeri girişleri kapatır. İçeriden dışarı çıkışlar ise açıktır. TCP (transmission control protocol): Gelişmiş bilgisayar ağlarında paket anahtarlamalı bilgisayar iletişiminde kayıpsız veri iletimi için kullanılır. UDP (User datagram protocol): Kullanıcı veribloğu iletişim kuralları. TCP/IP protokol takımının iki aktarım katmanı protokolünden birisidir. Verileri bağlantı kurmadan yollar. İİBF EĞT. FAK. MÜH. FAK. +---------+ +---------+ +---------+ | | | | | | | |-| | |-| | |-| +---------+ +---------+ +---------+ Bilgi İşlem +---------+ | | Güvenlik duvarı buraya kurulabilir. |-| | +---------+ Herkes kendine göre bir iletişimde bulunur. Mühendis ile eğitimci interneti aynı ihtiyaçlarla kullanmaz. Dolayısıyla proxy bilgi işleme kurulursa, Müh. Fak.'tan Bilgi işleme giden istek geri döndüğünde ve tekrar geldiğinde büyük bir yoğunluk oluşur. Ayrıca Bilgi işlemde kurulacak proxy bozulursa, sistem çöker. O nedenle her birine ayrı ayrı proxy kurulması daha uygun bir seçenektir. DAha pratik olacaktır. Merkezdeki yönetim de daha kolay olacaktır. Logları da kendi bölümlerinde tutmak akıllıca olacaktır. Güvenlik duvarı Bilgi işleme kurulabilir ama onun da ayrı ayrı kurulmasının daha iyi olacağını görmek gerekir. Normal kamera CCTV'li olanlardır. IP kameralar ise ağ üzerinden, internet üzerinden görüntü gönderebilen kameralardır. Network kablosu taşıyan bu kameralar elektriği de bu kablolardan alırlar. FTP (File transfer protocol): Bir veri yığınının bir uç aygıttan diğerine iletimi için kullanılır. Samba daemonu arka planda çalışan Linux makineye Windows yüklü diğer makineler tarafından erişimi sağlar. SMTP (Simple mail transfer protocol): Elektronik posta gönderme protokolü. Bir e-posta göndermek için sunucu ile işlemci arasındaki iletişim şeklini belirleyen protokoldür. 25 yerine 587 ile kullanılmaktadır. POP3'ü de maili çekerken kullanırız:110 IMAP (Internet message access protocol): Bir e-posta iletişim protokolüdür. Maillerinizin listeini görün, istediğinize tıklayın ve ben onu indireyim. Değilse, mailleriniz bilgisayarda dursun. Yerel sunucuların uzaktaki bir e-possta sunucusuna erişmesini sağlayan bir uygulama katmanı protokolüdür. Sistem yöneticisinin en büyük yardımcısı loglardır. Loglar, kök dizindeki /var dizininin /log dizini altında tutulurlar. Bu kayıt dosyalarına mesela Windows'ta da erişilebilmesi için dosyalara uzantılar eklenmiştir. nano /var/log/auth.log komutu log dosyalarını görüntüler. ls /var/log dizindeki dosyaları listeler. Aydın Doyak aydindoyak@ozguryazilim.com.tr Kullanıcı izinleri: User - group others r - okuma --- 4 | w - yazma --- 2 | toplam : 7 x - çalıştırma - 1 | chmod 777 bütün izinler. Root - kullanıcının karşılığı: 0 - grubunun karşılığı: 0 Debian --- aptitude /etc/apt.d Ubuntu vs. apt-get update apt-cache sudo apt-get upgrade .deb dpkg Red Hat --- RPM - yum update yum install dpkg ----- apt-get ------- mirror(yansı)da bulunması gerekir. RPM ------ yum --- mirror(yansı)da bulunması gerekir. / \ / \ / user \ /uygulama\ / kabuk \ / çekirdek \--Bilgisayar / donanım \ /________________\ Kabuk, yorumlayıcı olarak çalışır. Ne verilirse, bunu makinenin anlayacağı dile çevirir. Bash kabuğu kullanılır. Linux Loging Level (Linux loglama düzeyi) Emergency - acil durum Alert - Alarm Critical - Kritik durum Error - hata Warning - uyarı Notice - bildirim info - bilgi Debug - hata ayıklama Bir uygulamanın başlaması için sistemde çeşitli paketlerin (bağımlılık) kurulu olması gerekiyor. Mesela Firefox'un çalışması için gtk2'nin kurulu olması gerekir. RPM'de yum için de aynı şeyler geçerlidir. 32 x 64 Bit ----------- 32 bit sistemlerde en çok kullanılabilecek RAM miktarı, 3 GB'dir. 64 bit sistemlerde bu sınırlama yoktur. Dolayısıyla 32 bit kısıtlamalıdır. 32 bit sistemlerde çekirdeğe katılan özel bir ek sayesinde, çekirdeğin tamamını göstermek mümkündür. Buna karşın çeşitli uygulamalar, kullanımda 3 GB'den fazlasını görmez, mesela veritabanları gibi. /dev içinde zero adlı 0 değerinde bir aygıt var. Bu aygıt kullanılarak bir dizine belli bir boyutta bir dosya yapmak mümkündür. Mesela: dd if=/dev/zero of=/home/kullanıcı-adı/swap bs=1M count=2048 Burada geçen terimler: if=inputfile of=outputfile bs=block size Bu, verilen adrese, swap adlı bir dosya yapar. Sonra bu swap adlı dosyayı swap dosyasına dönüştürmek gerekir: sudo mkswap /home/kullanıcı-adı/swap Bu, swap adlı dosyayı swap dosyasına dönüştürür. Şimdi bu swap dosyasına dönüştürülen swap adlı dosyayı swap olarak bağlamak gerekir: sudo swapon /home/kullanıcı-adı/swap Bu, swap dosyasına dönüştürülen swap adlı dosyayı swap olarak bağlar. Ancak bu işlemler kalıcı değildir. Bilgisayar yeniden başlatıldığında unutulur. Kalıcı olması için /etc/fstab'a eklenmelidir. Gerekirse, bütün takas alanları kapatılabilir de: sudo swapoff -a /etc/fstab'da yer alan verilerin sıralaması ------------------------------------------- /etc/fstab'da yer alan veriler, 4 ayrı bölümde sıralanır. Bunlar: 1. Kaynak 2. Hedef 3. Dosya sistem türü 4. Dosya sistemi bağlama seçenekleri /dev/sda1 /dev/sdb1 ext4 0 1 UUID=1D3B806535BC68AF /boot swap 0 0 fstab'a gerekli bilgi eklenmelidir. Her .iso dosyası flash diske yazılmaz. Her dağıtımın .iso'su da flash diske yazılmaz. Ancak, flash diske yazılabilen .isoları herhangi bir program kullanmadan nasıl yazdırabiliriz? dd if=home/kullanıcı-adı/tails-i386-1.1.iso of=/dev/sdb Bu, ilgili .iso'yu flash diske yazdıracaktır. MBR (master boot record) GPT (Grand partition table) 2 TB'nin üzerindeki HDD'ler mutlaka GPT formatında olur. fdisk bölüm oluşturmaya yarar. Ancak, 2 TB'nin üzerini bölümlendiremez. 2 TB'nin üzeri için parted ya da gdisk kullanılır. MBR'nin ilk 512 byte'ı disk bölümlerini içeren bir tablo barındırır, bu tabloda syslinux, GRUB, LILO gibi önyükleyiciler yer alır. GPT'de böyle bir tablo yoktur. vfat, Linux'ta FAT32'ye verilen isimdir. Grub çekirfdeği açar. Grub için çekirdek, wmlinuz yazan çalıştırılabilir bir dosyadır, initramfs. initramfs içi nde temel sistem komutları vardır: mount, cp, cpio vb. Böylece ilk sürece gelinir. Init, ilk süreçtir. Süreçler nasıl çalışır? Sistem açıldığında: 1- Init. Init, ilk süreçtir. Servisleri başlatır. Sırasıyla şu süreçleri izler: Init 0 - Sistemi kapatır. Init 1 - Single user mode. Init 2 - Single user mode. Init 3 - grafik masaüstü yoksa, bu kipte çalışır. Init 4 - 2 gibidir. Init 5 - Çok kullanıcılı. Grafik masaüstü açılır. Grafik masaüstü bir sunucudur aslında. Init 6 - Makineyi yeniden başlatır. Çalışan süreçler bir gerçek terminal TTY, bir de sahte terminal PTY içerirler. Linux uygulamalarının her biri bir süreçtir, process. Processor (işlemci, bilgisayar) da buradan gelmektedir. Network Makine çalıştığında onunlabirliktr çalışan bir servis var: dhclient. Bu, her bir makineye IP verir. Öncelikle gerçek IP'ler vardır. Mesela TTNET. TTNET, kendisinden hizmet alanlara bir tane gerçek IP veriyor. Ondan sonra evdeki diğer cihazlar buna göre sanal IP'ler almaya başlıyor. Yani mesela 192.168.0.0 (24) paketi verilmişse, buna göre 192.168.0.0 ile 192.168.0.255 arasında IP'ler seçilebilir. Mesela ifconfig -a komutu verildiğinde: (bilgisayarın IP adresini verir) çıktı: Link encap:Ethernet HWaddr 24:0a:64:9c:7f:6f inet addr:10.40.124.85 Bcast:10.40.127.255 Mask:255.255.252.0 Burada HWaddr diye başlayan kısım Mac adresi, inet addr: kısmı ise o bilgisayarın IP'sidir. Çekirdeğin donanım ile yazılım açısından farkı nedir? Çekirdek yazılım açısından KERNEK ve donanım açısından CORE adını alır. Biri işletim sisteminin diğeri ise donanımın bir parçasıdır. Sistemin açılışında (Init1) single user mode üzerinde şifre sormadan sisteme giriş mümkün. Sanallaştırma teknolojilerinden hangileri açık kaynaktır? XEN: Açık kaynak dünyasında sunucu sanallaştırılmasında kullanılan teknoloji. KVM: Açık kaynak dünyasındaki sunucu sanallaştırılma teknolojilerinden. Virtualbox: Açık kaynak dünyasındaki sunucu sanallaştırılma teknolojilerinden. Qemu: Açık kaynak dünyasındaki sunucu sanallaştırılma teknolojilerinden. Aşağıdaki özelliklerden hangisi/hangileri UTM (unified thread management) cihazlarında bulunabilir? Güvenlik duvarı, web sunucusu, dosya sunucusu, Radius sunucu, bant genişliği yöneticisi, dizin hizmetleri, VPN sunucusu. Router: Farklı IP blokları arasındaki cihaz. IP dönüşümü yapan cihaz. Başka bir ağ için hazırlanmış olan (IP adres bloğu farklı) kablosuz erişim noktasını kendi ağıma taktığım zaman bu cihazın ayarlarını değiştirmeden kablosuz erişim için kullanabilir miyim? Evet (X) Hayır ( ) Fakat yönetemezsiniz. IP adres bloğu farklı olduğu için yönetmek mümkün değildir. Aşağıdaki işlemlerden hangisi/hangileri UDP protokolü kullanarak haberleşir? Web sayfaları ( ) Görüntülü konferans (X) IMAP ( ) SSL sayfaları ( ) torrent (X) DNS sorguları (X) SMTP ( ) "Komut satırı Linux çekirdeğidir" önermesi doğru mudur? Evet ( ) Hayır (X) Mars yüzeyini araştırmak için gönderdiğiniz robotun bilgisayarına bir işletim sistemi kurmanız gerekiyor. Hangi işletim sistemi ailesini tercih edersiniz? MacOS ( ) Linux (X) Windows ( ) Herhangi biri ( ) "Kablosuz ağ cihazları cep telefonları kadar zararlıdır" önermesi doğru mudur? Evet ( ) Hayır (X) Belki ( ) Aşağıdakilerden hangisi/hangileri veri güvenliği için kullanılan özelliklerdendir? WPA (X) SSL (X) Hash (X) GPG (X) Encryption (x) Bilgisayardaki bilgilerin kaybolmasını önlemek için aşağıdaki teknolojilerden hangisi/hangileri kullanıllabilir? RAID1 (X) RAID0 ( ) Yedekleme (X) DRBD (X) RAID Nedir? RAID 1 RAID 0 ------ ------ / \ / \ / \ / \ / \ /B 1 \ /B 1 \ /B 1 \ /B 2 \ /B 3 \ / \ / \ / \ / \ / \ RAID 10 RAID 5 ------ ------ / \ / \ / \ / \ / \ / \ / \ /B 1 \ /B 2 \ /B 1 \ /B 2 \ /B 1 \ /B 2 \ /B P \ / \/ \/ \/ \ / \/ \/ \ Bir dosyamız var, bu dosyamızı nasıl paylaşabiliriz? FTPS Yerel ağ paylaşımı e-posta Dropbox mplayer http://46.20.3.204:80 Broadcast: Herkesin duyması istenilen yayın, TV gibi. Multicast: Belli bir grubun duyması istenilen yayın. 15 23 *** mplayer http://46.20.3.204:80 Örnek: Hergün 06:30, 12:30, 18:30, 20:30 saatlerinde çalışabilen bir zamanlanmış görev yazın. 30 6,12,18,20 *** Örnek: İlk çalışma saati 04.00'da, sonraki çalışma saati 07:00'dan2:00'a kadar olan , diğer çalışma saati ise 14:00 olan bir zamanlanmış görev yazın. 0 4,7-12,14 *** Pazartesi ve cuma günleri sadece mesai saatleri içerisinde 10 dskiksds bir çalışabilen bir zamanlanmış görev yazın. */10 8-17 ** 1,5 Örnek: 21 Mart Salı günü 6 saatte bir çalışacak bir zamanlanmış görev yazın. **/6 21 3 2 Örnek: İkiye bölünebilen ayların üçe bölünebilen günlerinde eğer o gün cumartesi gününe denk geliyorsa, sabah 8'den 14:00'a kadar 9 dakikada bir çalışabilen bir zamanlanmış görev yazın. 1/ 30 6,12,18,20 *** Örnek: İkiye bölünebilen ayların üçe bölünebilen günlerinde eğer o gün cumartesi gününe denk geliyorsa, sabah 8:00'dan 14:00'a kadar 9 dakikada bir çalışabilen bir zamanlanmış görev yazın. */9 8-14 3-30/3 3-30/3 2-12/2 6 Cronjob (Zamanlanmış görevler) * * * * * | | | | | | | | | | | | | | ---------Haftanın günleri | | | | | | | -----------Aylar | | | | | -------------Ayın günleri | | | ---------------Saat | -----------------dakika +---------+ |user | 3. katman |space | +---------+ +---------+ |kernel | 2. katman |space | +---------+ +---------+ |donanım | 1. katman | | +---------+ wait() +---------+-----------------------------+---------+ |parent | |zombi | |process | |process | +---------+ +---------+ |fork() +---------+------------+---------+------------+---------+ |child | |child | |zombi | |process | |process | |process | +---------+ +---------+ +---------+ Örnek: Sistem belleğini en çok kullanan 5 processi listeleyerek komut satırında ekrana yazdırın. ps -eo pmem,pid,cmd | sort -k 1 -nr | head -5 -e -every process -o - output format sort -sırala -k -1. sütuna göre., -n -numerik -r -reverse Örnek: Bash kabuğu üzerindeki parent process ve child process değişkenlerini söyleyiniz. Linux sistem çağrılarını araştırın! ----------------------------------- Bir sistem çağrısı bir yazılımın çekirdekten bir hizmet isteği yapması için kullanılır. Hizmet genellikle, G/Ç işlemleri gibi sadece çekirdeğin ayrıcalığında olan şeylerdir. Yazılım geliştirenlerin genellikle bu sistem çağrılarını bilmeye ihtiyacı olmaz. Çünkü GNU C kütüphanesi sistem çağrılarının yaptığı hemen herşeyi sanal olarak sağlayan işlevler içerir. Örneğin, bir dosyanın erişim izinlerini değiştiren bir sistem çağrısı vardır, ama GNU C kütüphanesinin chmod işlevi zaten bu işlemi yaptığından bu sistem çağrısını kullanma ihtiyacı ortaya çıkmaz. Sistem çağrılarına kimi zaman çekirdek çağrıları dendiği de olur. Her ne kadar doğrudan sistem çağrıları yapma ihtiyacı duyulmasa da GNU C kütüphanesi bunu yapabilmeniz için syscall işlevini içerir. syscall kullanımı zordur ve chmod gibi işlevleri kullanmak daha taşınabilirdir, ama sistem çağrılarını makine kodu komutları ile kodlamaktan daha kolay ve daha taşınabilirdir. syscall çağrıları, henüz GNU C kütüphanesinde bulunmayan özel sistem çağrıları ile çalışacağınız zaman oldukça kulllanışlı olacaktır. syscall tamamen soysal bir yöntemle gerçeklenmiştir; işlev belli bir sistem çağrısının ne yaptığıyla, hatta geçerli olup olmadığıyla bile ilgilenmez. Bu kısımdaki syscall işlevi ile ilgili açıklama, GNU C kütüphanesinin çalıştığı çeşitli platformlardaki sistem çağrıları için belli bir protokolün varlığı kabulüne dayanır. Bu protokol herhangi bir otorite tarafından tanımlanmamıştır, ancak onu burada açıklamayacağız. Shell yani kabuk dediğimiz bir programla terminalden verdiğimiz komutlar yorumlanarak istediğimiz işler yaptırılmaktadır.Kernel ile shell arasında adına sistem çağrıları denen yakın bir ilişki bulunmaktadır. http://www.belgeler.org/glibc/glibc-System-Calls.html processlerin öncelik değerleriyle ilgili araştırma yapın. Processlere kim öncelik veriyor vb. crontab! Oldu! crontab -e 09 10 * * * mplayer http://46.20.3.204:80 09 22 * * * mplayer http://46.20.3.204:80 Transmission control protocol (TCP) INternet Protocol (IP) Network nedir? Network mimarileri.. TCP-IP ilk olarak UNIX üzerinde geliştirilmiş, ARPANET'te. İnternetin temeli budur. Pek çok protokol vardır, ancak, TCP-IP çıkınca belli bir stanadart gelmiştir. TCP-IP, network için aranan şeydir. Network birden fazla bilgisayarın birbirine bağlanmasıdır. Peer to peer, client to server network mimarileridir. +---------+ +---------+ +---------+ +---------+ | PC 1 | | PC 2 | | PC 3 | | PC 4 | | | | | | | | | --> peer to peer +---------+ +---------+ +---------+ +---------+ | | | | --------------------------------------------- +---------+ +---------+ +---------+ +---------+ | server | | PC 1 | | PC 2 | | PC 3 | | | | | | | | | --> client to server +---------+ +---------+ +---------+ +---------+ | | | | --------------------------------------------- Büyüklüklerine göre networkler wan, lan, man gibi çeşitlere ayrılırlar. Network kartlarına network interface card (NIC) denir. 1 optet 8 bitten oluşur. Hexadecimal: 16 tabanlı sayı sistemidir. Bilgisayar belleğindeki 8 bitlik byte'ları göstermek için kullanılan kestirme yoldur. Mac adresi: CO:D9:62:36:DA:27 ------------------------------------------------------------------------------------------------------ |Dec | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15| ------------------------------------------------------------------------------------------------------ |Hex | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | ------------------------------------------------------------------------------------------------------ |Binary|0000 |0001 |0010 |0011 |0100 |0101 |0110 |0111 |1000 |1001 |1010 |1011 |1100 |1101 |1110 |1111| ------------------------------------------------------------------------------------------------------- İnternet protokol adresi: 10.5.7.0 --> 32 bit arp komutunun çıktısı: 10.47.87.223 10.47.1.1 --- gateway'in IP adresi 10.47.158.249 +---------+ | PC 1 | - 10.22.03/24 | | +---------+ | | +---------+ | Ağ | | geçidi | +---------+|arp request arp | isteğini | +---------+ kabul | | PC 2 | - 10.23.05/24 ettiğini -----------| | bildirecek +---------+---arp isteğini kabul edecek 5 tane IP seçeneği var: ABCDE. A SINIFI: 0.0.0.0'dan başlıyor, 127.255.255.255'de son buluyor. A sınıfının ön tanımlı subneti; 255.0.0.0. B SINIFI: 128.000.0'dan başlıyor, 191.255.255.255'e kadar gidiyor. C SINIFI: 192.000.011 küçük yerel ağlar için kullanılır. 193.0.0.0'dan başlar, 223.255.255.255'e kadar devam eder. D SINIFI: Multicast yayınlar için kullanılır. E SINIFI: askeri ya da bilimsel araştırmalar için ayrılmış IP bloğu. IP sınıflarını neden ilk 3 bite göre belirtiyoruz. Network ID? RFC nedir? Broadcast ID? RFC (826) Subnet adress? RFC (760) RFC (Request for Comments) Nedir? TCP/IP nin tanımlanmasında kullanılan standart numaralara sahip dökümanlardır. Yeni yada güncellenmiş internet standartları için önerileri içeren belgeler serisi. RFC dediğimizde aklımıza gelen aslında internetin standartlarıdır. Internet protokolü, mekanizması için bu protokolleri ve mekanizmasını tanımlayan bir RFC vardır. Örneğin TCP/IP (Transmission Control Protocol) ile ilgili RFC 793'tedir. Hatta detaylı olarak bakacak olursak şöyledir: 0793 Transmission Control Protocol. J. Postel. September 1981. (Format: TXT=172710 bytes) (Obsoletes RFC0761) (Updated by RFC1122, RFC3168, RFC6093, RFC6528) (Also STD0007) (Status: STANDARD). Daha detaylı incelemek için RFC Resmi Sayfası (http://www.ietf.org/rfc.html) ya da RFC Dökümantasyon Sayfası (http://www.rfc-editor.org/rfc.html) incelenebilir. RFC (826) Bir Ethernet Adres Çözümleme Protokolü. 48 bit için ağ Protokolü Adresleri dönüştürme. ARP 1982 yılında RFC 826 ile tanımlanmıştır. Aynı zamanda, çoğu işletim sistemlerinde bu adresleri işlemek için programın adıdır İnternet Standart STD 37. ARP gibi (ayrıca MAC adresi olarak da bilinir). -------------------------------------------------------------------- -------------------------------------------------------------------- Genel Ağ Protokolü (IP) - DARPA Internet Programı Protokol Belirtimi -------------------------------------------------------------------- -------------------------------------------------------------------- RFC 791 Düzenleyen: Jon Postel Yazım tarihi: Eylül 1981 Çeviren: Tuğrul Bodur Çeviri tarihi: Mayıs 2006 Information Sciences Institute University of Southern California 4676 Admiralty Way Marina del Rey, California 90291 tarafından Defense Advanced Research Projects Agency Information Processing Techniques Office 1400 Wilson Boulevard Arlington, Virginia 22209 için hazırlanmıştır. Açıklama İsteği: 791 Geçersiz kıldıkları: RFC 760, IEN'ler: 128, 123, 111, 80, 54, 44, 41, 28, 26 Güncelleyen RFC: 1349 Durumu: Standart (STD0005) Yasal Uyarı RFC'lerin yazarlarının hakları BCP 78 ile düzenlenmiştir. Dolayısıyla RFC çevirilerinin çevirmenlerinin haklarını da BCP 78'in düzenlediği kabul edilmiştir. Bu belge IETF tarafından yayınlanan resmi RFC791'in gayrıresmi çevirisidir ve aslının yerine kullanılamaz. Bu çevirinin hiçbir bağlamda ya da koşulda hükmü yoktur. Bu çeviri, anadili Türkçe olan Genel Ağ kullanıcılarının bu RFC hakkında fikir edinebilmelerini sağlamak amacıyla hazırlanmıştır. BU BELGE "ÜCRETSİZ" OLARAK RUHSATLANDIĞI İÇİN, İÇERDİĞİ BİLGİLER İÇİN İLGİLİ KANUNLARIN İZİN VERDİĞİ ÖLÇÜDE HERHANGİ BİR GARANTİ VERİLMEMEKTEDİR. AKSİ YAZILI OLARAK BELİRTİLMEDİĞİ MÜDDETÇE TELİF HAKKI SAHİPLERİ VE/VEYA BAŞKA ŞAHISLAR BELGEYİ "OLDUĞU GİBİ", AŞİKAR VEYA ZIMNEN, SATILABİLİRLİĞİ VEYA HERHANGİ BİR AMACA UYGUNLUĞU DA DAHİL OLMAK ÜZERE HİÇBİR GARANTİ VERMEKSİZİN DAĞITMAKTADIRLAR. BİLGİNİN KALİTESİ İLE İLGİLİ TÜM SORUNLAR SİZE AİTTİR. HERHANGİ BİR HATALI BİLGİDEN DOLAYI DOĞABİLECEK OLAN BÜTÜN SERVİS, TAMİR VEYA DÜZELTME MASRAFLARI SİZE AİTTİR. İLGİLİ KANUNUN İCBAR ETTİĞİ DURUMLAR VEYA YAZILI ANLAŞMA HARİCİNDE HERHANGİ BİR ŞEKİLDE TELİF HAKKI SAHİBİ VEYA YUKARIDA İZİN VERİLDİĞİ ŞEKİLDE BELGEYİ DEĞİŞTİREN VEYA YENİDEN DAĞITAN HERHANGİ BİR KİŞİ, BİLGİNİN KULLANIMI VEYA KULLANILAMAMASI (VEYA VERİ KAYBI OLUŞMASI, VERİNİN YANLIŞ HALE GELMESİ, SİZİN VEYA ÜÇÜNCÜ ŞAHISLARIN ZARARA UĞRAMASI VEYA BİLGİLERİN BAŞKA BİLGİLERLE UYUMSUZ OLMASI) YÜZÜNDEN OLUŞAN GENEL, ÖZEL, DOĞRUDAN YA DA DOLAYLI HERHANGİ BİR ZARARDAN, BÖYLE BİR TAZMİNAT TALEBİ TELİF HAKKI SAHİBİ VEYA İLGİLİ KİŞİYE BİLDİRİLMİŞ OLSA DAHİ, SORUMLU DEĞİLDİR. Tüm telif hakları aksi özellikle belirtilmediği sürece sahibine aittir. Belge içinde geçen herhangi bir terim, bir ticari isim ya da kuruma itibar kazandırma olarak algılanmamalıdır. Bir ürün ya da markanın kullanılmış olması ona onay verildiği anlamında görülmemelidir. Mayıs 2006 Özet Bu belge Genel Ağ Protokolünün belirtimidir. Genel Ağ Protokolü paket anahtarlamalı bilgisayar iletişim ağlarını birbirine bağlayan sistemlerde kullanmak için tasarlanmıştır. Genel Ağ Protokolü kaynakların ve hedeflerin sabit uzunluktaki adreslerle tanınan konaklar olduğu ağlarda verikatarı denilen veri bloklarının kaynaktan hedefe aktarımı için tüm gereksinimleri sağlar. Genel Ağ Protokolü ayrıca, gerektiğinde, "küçük paketli" ağlarda aktarım için uzun verikatarların bölünmesi ve yeniden birleştirilmesi için de tüm gereksinimleri sağlar. Önsöz Bu belge ABD Savunma Bakanlığı (DoD) Standart Genel Ağ Protokolünün belirtimidir. Bu standardın üzerine inşa edildiği daha önceki altı ARPA Genel Ağ Protokolü belirtimi vardır ve belirtimin metni ağırlıkla bunların metinlerinden oluşmuştur. Gerek metin gerekse kavramsal olarak bu çalışmaya pek çok kişi destek oldu. Bu sürümde adresleme teknikleri, hata yakalama, seçenek kodları ve güvenlik, üstünlük, bölümler ve Genel Ağ Prokolünün kısıtlayıcı özellikleri tekrar gözden geçirilip düzeltilmiştir. -- Jon Postel Editor Giriş Motivation Genel Ağ Protokolü paket anahtarlamalı haberleşme ağlarının arabağlantılı sistemlerinde kullanılmak için tasarlanmıştır. Böyle sistemlere "catenet" [1] adı verilir (Türkçeye "ağ zinciri" olarak çevrilebilir). Genel Ağ protokolü hedef ve kaynağın sabit uzunluklu adreslerle tanımlanan konaklar olduğu bir sistemde, kaynaktan hedefe verikatarı adı verilen veri bloklarının aktarımı içindir. Genel Ağ protokolü ayrıca uzun verikatarlarının küçük paketli ağlarda aktarılması için gerekli ise dilimlenmesini ve yeniden birleştirilmesini de sağlar. Etki Alanı Genel Ağ protokolü özellikle arabağlantılı ağ sistemlerinde bit paketlerinin (bir Genel Ağ verikatarı) kaynaktan hedefe teslimini gerektiren işlevleri sağlayacak kapsamda sınırlanmıştır. Uçtan uca veri güvenliğini artıran, akış denetimini, ardışıllığı ya da konaktan konağa protokollerde genelde bulunan diğer hizmetleri sağlayan bir baska mekanizma yoktur. Genel Ağ protokolü desteklendiği ağlarda çeşitli kalite ve türdeki hizmetlerden yararlanabilir. Arayüzler Bu protokol Genel Ağ ortamında konaktan konağa protokoller tarafından çağrılır. Bu protokol Genel Ağ verikatarlarını bir sonraki ağgeçidine veya hedef konağa taşıyacak yerel ağ protokollerini çağırır. Örneğin, bir TCP modülü bir Genel Ağ verikatarının veri taşıyan kısmı olarak bir TCP veribölütünü (TCP başlığı ve kullanıcı verisi içerir) alacak Genel Ağ modülünü çağırır. TCP modulü adresleri ve diğer parametreleri Genel Ağ modülüne çağrı argümanı olarak Genel Ağ başlığında sağlar. Genel Ağ modülü de bir Genel Ağ verikatarı oluşturur ve bunu aktarmak için yerel ağ arayüzüne çağrı yapar. ARPANET durumunda, örneğin, arayüz denetim işlemcisine (IMP) aktarılacak bir ARPANET iletisi oluşturmak için Genel Ağ verikatarına 1822 denetim bilgisini [2] ekleyen bir yerel ağ modülünü çağırır. ARPANET adresi yerel ağ arayüzü tarafından Genel Ağ adresinden türetilir ve ARPANET'te diğer ağlar için bir ağgeçidi olabilen bir konağın adresi olur. İşlemler Genel Ağ protokolü iki temel işlevi gerçekleştirir: adresleme ve dilimleme. Genel Ağ modülleri Genel Ağ verikatarlarını hedefe doğru taşırken Genel Ağ başlığında bulunan adresleri kullanır. Aktarım için yol seçimi yönlendirme olarak adlandırılır. Genel Ağ modülleri gerektiğinde Genel Ağ verikatarlarını "küçük paket" ağlarında taşıyabilmek için dilimleme ve tekrar birleştirme işlemleri için Genel Ağ başlığındaki alanları kullanır. İşlem modeli Genel Ağ iletişimine adanmış konaklarda ve arabağlantılı ağlardaki ağgeçitlerinde yer alan bir Genel Ağ modülüdür. Bu modüller Genel Ağ verikatarlarındaki adres alanlarını yorumlamak için ve verikatarlarını dilimleyip tekrar birleştirmek için ortak kuralları paylaşırlar. Ek olarak, bu modüller yönlendirme kararları ve diğer işlevler için (özellikle ağgeçitlerinde) bazı yöntemlere sahiptir. Genel Ağ protokolü her Genel Ağ verikatarına diğer verikatarlarıyla ilgisi olmayan bağımsız birer varlık gibi davranır. Başka bir bağlantı ya da mantıksal devre yoktur (sanal olsun olmasın). Genel Ağ protokolü hizmetlerini sunmak için dört anahtar mekanizma kullanır: Hizmet Türü, Yaşam Süresi, Seçenekler ve Başlık Sağlama Özeti. Hizmet Türü istenen hizmet kalitesini belirtmek için kullanılır. Hizmet türü Genel Ağı oluşturan ağlarda sunulan hizmet seçimlerini tanımlamak için genellenmiş veya soyutlanmış bir parametreler kümesidir. Bu hizmet türü belli bir ağ için asıl aktarım parametrelerini seçecek ağgeçitleri tarafından kullanılmak içindir; belli bir ağ: Genel Ağ verikatarını yönlendirirken sonraki sıçrama noktası veya sonraki ağgeçidine ulaşmak için kullanılan ağ. Yaşam Süresi bir Genel Ağ verikatarının ömrünün üst sınırı gösterir. O verikatarının göndericisi tarafından ayarlanır ve yönlendirme boyunca işlendiği her noktada azaltılır. Yaşam Süresi hedefe ulaşmadan sıfır olursa Genel Ağ verikatarı yok edilir. Yaşam Süresi kendi kendini yoketme zamanının sınırı olarak düşünülebilir. Seçenekler en bilinen iletişimlerde gerekli olmamasına rağmen bazı durumlarda kullanışlı hatta gerekli olan denetim işlevleri sunar. Bu seçenekler zaman damgaları, güvenlik ve özel yönlendirme için gereken önlemleri içerir. Başlık Sağlama Özeti Genel Ağ verikatarının hatasız aktarılması işleminde kullanılan bilginin bir doğrulamasını sağlar. Veri hatalar içerebilir. Eğer başlık sağlaması başarısız olursa, hatayı anlayan öğe tarafından anında yok edilir. Genel Ağ protokolü güvenli bir iletişim imkanı sunmaz. Gerek uçtan uca gerekse sıçrama noktasından sıçrama noktasına hiçbir alındılama işlemi yoktur. Veri için başlık sağlama özeti dışında hiçbir hata denetimi yoktur. Yeniden aktarım ya da akış denetimi mekanizmaları yoktur. Saptanan hatalar Genel Ağ protokol modülünde gerçeklenen Genel Ağ Denetim İletisi Protokolü (Genel Ağ Control Message Protocol - ICMP) [3] aracılığıyla raporlanabilir. Diğer Protokollerle İlişkisi Aşağıdaki şekil Genel Ağ Prokolünün protokol hiyerarşisindeki yerini gösteriyor: Şekil 2.1. Protokol İlişkileri +------+ +-----+ +-----+ +-----+ |Telnet| | FTP | | TFTP| ... | ... | Uygulama Seviyesi +------+ +-----+ +-----+ +-----+ | | | | +-----+ +-----+ +-----+ | TCP | | UDP | ... | ... | Konak Seviyesi +-----+ +-----+ +-----+ | | | +--------------------------+----+ | Genel Ağ Protokolü ve ICMP | Ağgeçidi Seviyesi +--------------------------+----+ | +---------------------------+ | Yerel Ağ Protokolü | Ağ Seviyesi +---------------------------+ Protokollerin Birbirleriyle İlişkileri Genel Ağ prokotokolü bir tarafta daha yüksek seviyeli konaktan konağa protokollerle diğer taraftaki yerel ağ protokollerine bir arayüzdür. Buradaki yerel ağ bir bina ya da ARPANET gibi daha büyük bir ağ içindeki küçük bir ağ olabilir. İşleme Modeli Bir verikatarını bir uygulama programından diğerine aktarımı için kullanılan işlem modeli aşağıdaki senaryoda sekillendirilmiştir: Bu aktarımın bir aracı ağgeçidi gerektireceğini varsayıyoruz. Gönderen uygulama programı verisini hazırlar ve bu veriyi bir verikatarı olarak yollayacak yerel Genel Ağ modülünü, hedef adresini ve diğer parametreleri çağrı argümanları olarak belirterek çağırır. Genel Ağ modülü bir verikatarı başlığı hazırlar ve veriyi ona iliştirir. Genel Ağ modülü bu Genel Ağ adresi için bir yerel ağ adresi saptar; bu durumda bu adres bir ağgeçidi adresi olacaktır. Bu verikatarını ve yerel ağ adresini yerel ağ arayüzüne gönderir. Yerel ağ arayüzü bir yerel ağ başlığı oluşturup bunu verikatarına iliştirir ve sonucu yerel ağ üzerinden gönderir. Verikatarı yerel ağ başlığında paketlenmiş bir şekilde bir ağgeçidi konağına ulaşır, yerel ağ arayüzü bu başlığı ayırır ve verikatarını Genel Ağ modülüne yöneltir. Genel Ağ modülü Genel Ağ adresinden bu verikatarının ikinci ağdaki diğer bir konağa ilerletileceğini saptar. Genel Ağ modülü hedef konak için bir yerel ağ adresi saptar. Verikatarının gönderileceği ağın yerel ağ arayüzüne çağrı yapar. Bu yerel ağ arayüzü yerel bir ağ başlığı oluşturur ve hedef konağa gönderilmek üzere verikatarına ekler. Bu hedef konakta verikatarı yerel ağ arayüzü tarafından yerel ağ başlığından ayrılır ve Genel Ağ modülüne verilir. Genel Ağ modülü bu verikatarının konaktaki hangi uygulama programı için olduğunu saptar. Genel Ağ modülü kaynak adresi ve diğer parametreleri çağrı sonucu olarak aktararak bir sistem çağrısının yanıtında uygulama programına veriyi aktarır. Şekil 2.2. Aktarım Yolu Uygulama Uygulama Programı Programı \ / Genel Ağ Modülü Genel Ağ Modülü Genel Ağ Modülü \ / \ / YAA-1 YAA-1 YAA-2 YAA-2 \ / \ / Yerel Ağ 1 Yerel Ağ 2 Aktarım Yolu İşlev Açıklaması Genel Ağ Protokolünün amacı ya da işlevi verikatarlarını bir arabağlantılı ağ kümesi boyunca taşımaktır. Bu, hedefe ulaşıncaya kadar verikatarını bir Genel Ağ modülünden diğerine aktararak yapılır. Genel Ağ modülleri Genel Ağ sistemindeki ağgeçitlerinde ve konaklarda bulunur. Verikatarlarının bir Genel Ağ modülünden diğerine tek tek ağlar boyunca yönlendirilmesi bir adresin yorumlanmasına oturtulmuştur. Bu durumda, Genel Ağ protokolünün önemli bir mekanizması Genel Ağ adresi olmaktadır. İletilerin bir Genel Ağ modülünden diğerine yönlendirilmesinde, verikatarlarının, azami paket boyutu verikatarınınkinden küçük olan ağlar boyunca hareket etmesi gerekli olabilir. Bu zorluğun üstesinden gelmek için, Genel Ağ protokolünde bir dilimleme mekanizması bulunur. Adresleme Ayrım isimler, adresler ve rotalar arasında yapılır [4]. Bir isim bizim ne aradığımızı gösterir. Bir adres onun nerede olduğunu gösterir. Rota ise oraya nasıl ulaşılacağını gösterir. Genel Ağ protokolü öncelikli olarak adreslerle uğraşır. Yüksek seviyeli protokollerin (örn, konak veya uygulama seviyesi) görevi isimleri adreslere eşlemektir. Genel Ağ modülü ise Genel Ağ adreslerini yerel ağ adresleriyle eşler. Yerel ağ adreslerini rotalara eşlemek ise daha düşük seviyeli (yerel ağ veya ağgeçidi gibi) yordamların görevidir. Adresler dört sekizliden oluşan sabit uzunluktadırlar. Bir adres ağ numarası ile başlar, yerel adres ile devam eder. Genel Ağ adreslerinin üç biçimi ya da sınıfı vardır: a sınıfında, yüksek bit sıfır, sonraki yedi bit ağ için ve son 24 bit ise yerel adres içindir; b sınıfında, yüksek iki bit bir ve sıfır, sonraki 14 bit ağ için ve son 16 bit yerel adres içindir; c sınıfında ise yüksek üç bit bir-bir-sıfır, sonraki 21 bit ağ için ve son 8 bit ise yerel adres içindir. Genel Ağ adreslerini yerel ağ adreslerine eşlerken dikkatli olunmalıdır; bir tek yerel konak birçok farklı Genel Ağ adresini kullanarak bir çok farklı konakmış gibi davranabilir. Bazı konaklar ayrıca birkaç fiziksel arayüze sahiptir (çok evlilik). Yani, herbirinin çeşitli Genel Ağ adresleri olan çok sayıda fiziksel ağ arayüzüne sahip bir konak için önlem alınmış olmalıdır. Adres eşleme örnekleri [5]'teki "Adres Eşleme" bölümünde bulunabilir. Dilimleme Bir Genel Ağ verikatarının dilimlenmesi, büyük paket boyutuna sahip bir ağdan kaynaklanan bir verikatarının hedefe ulaşabilmek için daha küçük paket boyutlarına sahip bir yerel ağdan geçmesi icabediyorsa gerekir. Bir Genel Ağ verikatarı "dilimlenmeyecek" diye işaretlenebilir. Böyle işaretlenmiş bir Genel Ağ verikatarı hiçbir durumda dilimlenmez. Eğer Genel Ağ verikatarı dilimlenmeyecek diye imlenmişse ve hedefe ulaşması için mutlaka dilimlenmesi gerekiyorsa dilimlemek yerine yokedilir. Dilimleme, aktarım ve birleştirme, Genel Ağ protokol modülüne görünmez olan bir yerel ağ içinden geçerken ağiçi dilimlenme adını alır ve belki [6] kullanılabilir. Genel Ağ dilimleme ve birleştirme yöntemleri bir verikatarını daha sonra birleştirilebilecek sayıda dilinmesine gerek duyar. Veridiliminin alıcısı veridilimini farklı verikatarlarının veridilimleri ile karıştırmamak için betimleme alanını kullanır. Veridilimi başlangıç alanı alıcıya veridiliminin özgün verikatarındaki yerini gösterir. Veridilimi başlangıcı ve uzunluğu bu veridilimi tarafından kapsanan orijinal verikatarı bölümünü belirler. Kalan Veridilimleri bayrağı son veridilimini belirtir. Bu alanlar verikatarını tekrar oluşturmak için yeterli bilgiyi sağlar. Betimleme alanı verikatarının bir dilimini diğerinden ayırmak için kullanılır. Bir Genel Ağ verikatarının kaynaklandığı protokol modülü, Genel Ağ sisteminde verikatarının etkin olacağı süre içinde protokol ve bu kaynak-hedef çifti için eşsiz olacak bir değeri Betimleme alanına atar. Verikatarının tamamının kaynaklandığı protokol modülü Kalan Veridilimleri bayrağını sıfırlar ve Veridilimi Başlangıcı alanına sıfır değerini atar. Uzun bir Genel Ağ verikatarını dilmek için, bir Genel Ağ protokol modülü (örn, ağgeçidinde), iki Genel Ağ veridilimi oluşturur ve Genel Ağ başlık alanlarının içeriğini verikatarından bu iki veridiliminin Genel Ağ başlığına kopyalar. Verikatarının verisi 8 sekizli (64 bit) cinsinden ölçülen bloklar halinde iki veridilimine bölünür (İkinci veridilimi 8 sekizlinin katlarından oluşmayabilir ama birincisi oluşmak zorundadır). Çağrı 8 sekizlilik blok sayısı içinde ilk veridiliminin DBS (Dilim Bloklarının Sayısı) için yapılır. Verinin ilk kısmı ilk Genel Ağ veridiliminde yer alır ve Toplam Uzunluk alanına ilk veridiliminin uzunluğu atanır. Kalan Veridilimleri bayrağına bir atanır. Verinin ikinci kısmı ikinci Genel Ağ veridilimine yerleştirilir, Toplam Uzunluk alanına ikinci veridiliminin uzunluğu atanır. Kalan Veridilimleri bayrağı verikatarınınki ile aynı değeri taşır. İkinci Genel Ağ veridiliminin Veridilimi Başlangıcı alanına uzun verikatarındaki alanın değeri artı DBS atanır. Bu yöntem açıklanan ikili ayırmaya göre daha çok kullanılan bir n-li ayırma için genelleştirilebilir. Bir Genel Ağ verikatarının dilimlerinin montajı için, bir Genel Ağ protokol modülü şu dört alan için aynı değere sahip Genel Ağ veridilimlerini birleştirir: Betimleme, Kaynak, Hedef ve Protokol. Birleştirme, her veridiliminin veri bölümlerinin veridiliminin Genel Ağ başlığındaki Veridilimi Başlangıcı tarafından belirtilen göreli konuma yerleştirilmesi suretiyle yapılır. İlk veridiliminin Veridilimi Başlangıcı ve son veridiliminin Kalan Veridilimleri bayrağı sıfır olacaktır. Ağgeçitleri Ağgeçitleri ağlar arasında verikatarlarını taşıyacak Genel Ağ protokolünü gerçekler. Ağgeçitleri ayrıca yönlendirmeyi ve diğer Genel Ağ denetim bilgilerini yönetmek için ağgeçitleri arası protokolü (Gateway to Gateway Protocol - GGP) [7] gerçekler. Ağgeçitlerinde daha yüksek seviyeli protokollerin gerçeklenmemesi ve GGP işlevlerinin IP modülüne eklenmesi gerekir. Şekil 2.3. Ağgeçidi Protololleri +---------------------------------+ | Genel Ağ Protokolü, ICMP ve GGP | +---------------------------------+ | | +--------------+ +--------------+ | Yerel Ağ | | Yerel Ağ | +--------------+ +--------------+ Ağgeçidi Protokolleri Genel Ağ Başlığı Biçimi Genel Ağ başlığının içeriği özet olarak şöyledir: Şekil 2.4. Genel Ağ Verikatarı Başlığı Örneği 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 <= Bitler +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sürüm | IBU | Hizmet Türü | Toplam uzunluk | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Betimleme |Brklr| Veridilimi Başlangıcı | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Yaşam Süresi | Protokol | Başlık Sağlama Özeti | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Kaynak adres | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Hedef adres | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Seçenekler | Dolgu | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Genel Ağ Verikatarı Başlığı Örneği Sürüm: 4 bit Sürüm alanı Genel Ağ başlığının biçimini belirler. Bu belgede 4. sürüm açıklanmıştır. IBU: 4 bit Genel Ağ Başlık Uzunluğu 32 bitlik sözcükler cinsinden Genel Ağ başlığının uzunluğudur. Doğru başlık için asgari değerin 5 olacağına dikkat ediniz. Hizmet Türü: 8 bit Hizmet Türü istenilen hizmet kalitesinin soyutlanmış parametlerine bir gösterim sağlar. Bu parametreler verikatarı belli bir ağ boyunca aktarılırken asıl hizmet parametrelerin seçiminde kullanılır. Bazı ağlar yüksek öncelikli trafiğin diğer trafikten daha önemli olarak ele alındığı bir üstünlük hizmeti sunarlar (genellikle aşırı yüklü durumlarda sadece belli bir üstünlük seviyesinin üstündeki trafiği kabul ederek). Ana seçim, düşük gecikme, yüksek güvenirlik ve yüksek işlem gücü arasındaki bir üçlü ödünleşimdir. Bits 0-2: Üstünlük. Bit 3: 0 = Normal Gecikme (G), 1 = Düşük Gecikme. Bits 4: 0 = Normal İşlem Gücü (İ), 1 = Yüksek İşlem Gücü. Bits 5: 0 = Normal Güvenilirlik (Ü), 1 = Yüksek Güvenilirlik. Bit 6-7: Gelecekte kullanım için ayrılmış. 0 1 2 3 4 5 6 7 +-----+-----+-----+-----+-----+-----+-----+-----+ | | | | | | | | ÜSTÜNLÜK | G | İ | Ü | 0 | 0 | | | | | | | | +-----+-----+-----+-----+-----+-----+-----+-----+ Öncelik 111 - Ağ Denetimi 110 - Ağlararası Denetim 101 - Yaşamsal/velvele 100 - Yıldırımüstü 011 - Yıldırım 010 - Acil 001 - Öncelikli 000 - Sıradan Gecikme, İşlem Gücü ve Güvenirlik imlerinin kullanımı hizmet maliyetini arttırabilir. Çoğu ağda bu parametrelerden biri için daha iyi olan başarım diğeri üstündeki daha kötü başarımla birleştirilir. Çok elverişsiz durumlar dışında bu üç imden en fazla ikisi etkinleştirilmelidir. Hizmet türü Genel Ağ sistemindeki aktarımı boyunca verikatarının ele alınışını belirtmede kullanılır. Genel Ağ hizmet türünün AUTODIN II, ARPANET, SATNET ve PRNET gibi ağlar üzerindeki asıl hizmetlerle örnek eşlemleri [8]'deki "Hizmet Eşleme" bölümünde verilmiştir. Ağ Denetim üstünlüğü tasarımı sadece bir ağ içinde kullanmak için düşünülmüştür. Bu tasarımın asıl kullanım ve denetimi her ağ için'e genişletilmiştir. Ağlararası Denetim tasarımı sadece ağgeçidi denetim tasarımcıları tarafından kullanılması için düşünülmüştür. Bu üstünlük tasarımlarının asıl kullanımı belli bir ağ ile ilgili olmasıysa, kullanımları ve erişim denetimleri bu ağın sorumluluğundadır. Toplam Uzunluk: 16 bit Toplam uzunluk verikatarının sekizli cinsinden Genel Ağ başlığı ve veri dahil uzunluğudur. Bu alan 65535 sekizliye kadar verikatarı uzunluğunu mümkün kılar. Böyle uzun verikatarları çoğu konak ve ağ için uygulanamaz. Bütün konaklar 576 sekizliye kadar verikatarlarını (tamamen veya veridilimleri olarak) kabul etmek için hazırlanmıştır. Tasarımlarının daha büyük verikatarlarını kabul edecek şekilde hazırlandığının güvencesi veriliyorsa sadece bu konaklara 576 sekizliden büyük verikatarlarının gönderilmesi önerilir. 576 sayısı makul boyutlu bir veri bloğunun gerekli başlık bilgileri eklenerek aktarımını mümkün kılacak şekilde seçilmiştir. Örneğin bu boyut 512 sekizliden oluşan veri bloğuna ek olarak 64 sekizliden oluşan bir başlık taşımaya uygundur. Azami Genel Ağ başlığı 60 sekizliden ve sıradan bir Genel Ağ başlığı ise daha yüksek seviyeli protokollerin başlıkları için bir girintiye izin veren 20 sekizliden oluşur. Betimleme: 16 bit Bir verikatarının veridilimlerinin montajına yardımcı olmak için gönderici tarafından atanan bir betimleme değeri. Bayraklar: 3 bit Çeşitli Denetim Bayrakları. Bit 0: yedektir, sıfır olmalı Bit 1: (DY) 0 = Dilimlenebilir, 1 = Dilimlenmeyecek. Bit 2: (KD) 0 = Son Veridilimi, 1 = Kalan Veridilimleri. 0 1 2 +---+---+---+ | | D | K | | 0 | Y | D | +---+---+---+ Veridilimi Başlangıcı: 13 bit Bu alan veridiliminin verikatarındaki yerini belirtir. Veridilimi başlangıcı 8 sekizliden (64 bitlik) oluşan birimlerle ölçülür. İlk veridiliminin başlangıcı sıfırdır. Yaşam Süresi: 8 bit Bu alan verikatarının Genel Ağ sisteminde en çok ne kadar süre kalabileceğini belirtir. Eğer bu alanın değeri sıfırsa verikatarı yokedilmelidir. Bu alan Genel Ağ başlığı işlenirken değiştirilir. Zaman birimi saniye cinsinden ölçülür ama verikatarını işleme sokan her modül işlem bir saniyeden kısa sürse bile bu yaşam süresini 1 saniye eksilteceğinden bu süre verikatarının Genel Ağ'da kalabileceği sürenin üst sınırı olarak düşünülmelidir. Maksat, azami verikatarı ömrünü doldurduğu halde teslim edilemeyen verikatarlarının yokedilmesine sebep olmaktır. Protokol: 8 bit Bu alan bir sonraki seviyedeki protokolü göstermek için kullanılır. Çeşitli protokollerin değerleri [9]'daki "Atanmış Numaralar" bölümünde belirtilmiştir. Başlık Sağlama Özeti: 16 bit Sadece başlığın sağlama özeti. Bazı başlık alanları değiştiğinden (örn, yaşam süresi) Genel Ağ başlığının işleme girdiği her noktada bu alan yeniden hesaplanır ve doğrulanır. Sağlama Özeti algoritması: Sağlama özeti başlıktaki bütün 16 bitlik sözcüklerin birin tümleyenine göre toplamının 16 bitlik bire tümleyenidir. Sağlama özetini hesaplamak için Başlık Sağlama Özeti alanındaki değer sıfır yapılır. Bu sağlama özetinin basit hesabıdır ve deneysel kanıtlar yeterli olduğunu belirtmektedir, fakat bu geçicidir ve deneyime bağlı olarak bir CRC yordamı tarafından değiştirilebilir. Kaynak Adresi: 32 bit Kaynak adresi. Bkz. İnceleme. Hedef Adresi: 32 bit Hedef adresi. Bkz. İnceleme. Seçenekler: değişken Seçenekler verikatarlarında bulunabilir de bulunmayabilir de. Bütün IP modülleri (konak ve ağgeçidi) tarafından gerçeklenmelidirler. Verikatarında aktarımı isteğe bağlı olanların gerçeklenimi isteğe bağlı değildir. Bazı ortamlarda güvenlik seçeneği tüm verikatarlarında gerekli olabilir. Seçenek alanı değişken uzunluktadır. Sıfır olabileceği gibi fazlasıyla seçenek bulunabilir. Bir seçeneğin biçimi için iki durum sözkonusudur: Seçenek-türü için tek bir sekizli. Seçenek-türü için bir sekizli, seçenek-uzunluğu için bir sekizli ve asıl seçenek-verisi sekizlileri. Seçenek-uzunluğu sekizlisinde seçenek-türü ve seçenek-uzunluğu sekizlileriyle seçenek-verisi sekizlileri sayılır. Seçenek-türü sekizlisinin 3 alana sahip olduğu görülür: 1 bit kopyalanmış bayrağı, 2 bit seçenek sınıfı, 5 bit seçenek sayısı. Kopyalanmış bayrağı bu seçeneğin bütün veridilimlerine kopyalandığını gösterir. 0 = kopyalanmamış 1 = kopyalanmış Seçenek sınıfları şunlardır: 0 = denetim 1 = gelecekte kullanım için ayrılmış 2 = hata ayıklama ve ölçüm 3 = gelecekte kullanım için ayrılmış Şu Genel Ağ seçenekleri tanımlıdır: SINIF SAYI UZUNLUK AÇIKLAMA ----- ---- ------- ----------- 0 0 - Seçenek Listesi Sonu. Bu seçenek sadece bir sekizli işgal eder; uzunluk sekizlisine sahip değildir. 0 1 - İşlem Yok. Bu seçenek sadece bir sekizli işgal eder; uzunluk sekizlisine sahip değildir. 0 2 11 Güvenlik. Güvenlik, Bölümleme, Kullanıcı Grubu (ADK) ve Savunma Bakanlığının gereksinimleriyle uyumlu Kısıtlama Kodlarını taşımakta kullanılır. 0 3 dğş. Gevşek Kaynak Yönlendirme. Kaynak karafından sağlanmış bilgiyi temel alan Genel Ağ verikatarını yönlendirmekte kullanılır. 0 9 dğş. Sıkı Kaynak Yönlendirme. Kaynak karafından sağlanmış bilgiyi temel alan Genel Ağ verikatarını yönlendirmekte kullanılır. 0 7 dğş. Rota Kaydı. Bir Genel Ağ verikatarının aldığı yolu izlemekte kullanılır. 0 8 4 Akım Kimliği. Akım kimliğini taşımakta kullanılır. 2 4 dğş. Genel Ağ Zaman Damgası. Başlıca Seçenek Tanımları Seçenek Listesi Sonu +--------+ |00000000| +--------+ Türü=0 Bu seçenek seçenek listesinin sonunu gösterir. Bu Genel Ağ başlık uzunluğuna göre Genel Ağ başlığının sonu ile çakışmaz. Bu bütün seçeneklerin sonunda kullanılır ve sadece Genel Ağ başlığının sonu ile seçeneklerin sonu çakışmıyorsa kullanımınına gerek duyulur. Kopyalanabilir, başa alınabilir, veridiliminden silinebilir ya da başka sebeplerle kullanılabilir. İşlem Yok +--------+ |00000001| +--------+ Türü=1 Bu seçenek, seçenekler arasında kullanılabilir; örneğin, bir sonraki seçeneğin başlangıcını 32 bitlik sınıra hizalamakta kullanılabilir. Kopyalanabilir, başa alınabilir, veridiliminden silinebilir ya da başka sebeplerle kullanılabilir. Güvenlik Bu seçenek konaklar için güvenlik, bölümleme, kısıtlama kodları ve ADK (aktarım denetim kodu) parametrelerini göndermenin bir yolunu sunar. Bu seçeneğin kodlama biçimi aşağıdaki gibidir: +--------+--------+---//---+---//---+---//---+---//---+ |10000010|00001011|GGG GGG|BBB BBB|KKK KKK| ADK | +--------+--------+---//---+---//---+---//---+---//---+ Türü=130 Uzunluğu=11 Güvenlik (G alanı): 16 bit 16 güvenlik seviyesinden birini belirler (sekizi gelecekte kullanım için ayrılmıştır). 00000000 00000000 - Sınıflandırılmamış 11110001 00110101 - Az Gizli 01111000 10011010 - EFTO 10111100 01001101 - MMMM 01011110 00100110 - PROG 10101111 00010011 - Hizmete Özel 11010111 10001000 - Gizli 01101011 11000101 - Çok Gizli 00110101 11100010 - (Gelecekte kullanım için ayrılmış) 10011010 11110001 - (Gelecekte kullanım için ayrılmış) 01001101 01111000 - (Gelecekte kullanım için ayrılmış) 00100100 10111101 - (Gelecekte kullanım için ayrılmış) 00010011 01011110 - (Gelecekte kullanım için ayrılmış) 10001001 10101111 - (Gelecekte kullanım için ayrılmış) 11000100 11010110 - (Gelecekte kullanım için ayrılmış) 11100010 01101011 - (Gelecekte kullanım için ayrılmış) Bölümler (B alanı): 16 bit Bütün sıfır değerler aktarılan bilgiler bölümlendirilmediği zaman kullanılır. Alanın diğer değerleri (ABD'nin) Savunma Haberalma Dairesinden temin edilebilir. Kısıtlama Kodları (K alanı): 16 bits Denetim ve dağıtım imlerinin değerleri alfasayısal iki karakterliler olup (ABD'nin) Savunma Haberalma Dairesi Kılavuzu DIAM 65-19'un "Standart Güvenlik İmleri" bölümünde tanımlanmışlardır. Aktarım Denetim Kodu (ADK alanı): 24 bits Trafiği ayırma ve üyeler arasında denetimli ilgi toplulukları tanımlama anlamında kodlar sağlar. ADK değerleri üç karakterli kodlardan oluşur ve HQ DCA Code 530'dan elde edilebilir. Veridilimlerine kopyalanmalıdırlar. Bu seçenek bir verikatarında en fazla bir kere görünebilir. Gevşek Kaynak ve Rota Kaydı +--------+--------+--------+---------//--------+ |10000011|uzunluk | gstrici| rota verisi | +--------+--------+--------+---------//--------+ Türü=131 Gevşek Kaynak ve Rota Kaydı (GKRK) seçeneği, ağgeçitleri tarafından verikatarının ilerletilmesinde kullanılmak üzere yönlendirme bilgisini sağlayacak Genel Ağ verikatarı kaynağı için bir imkan sağlar. Seçenek, seçenek türü kodu ile başlar. İkinci sekizli, seçenek türü, uzunluk sekizlisi, gösterici sekizlisi ve 3 sekizliden oluşan rota verisinin toplam uzunluğunu içeren secenek uzunluğudur. Üçüncü sekizli, işlenecek sonraki kaynak adresle başlayan sekizliyi belirten yönlendirme verisine göstericidir. Gösterici bu seçeneğe görelidir ve olası en küçük geçerli değeri 4'tür. Bir rota verisi bir seri Genel Ağ adresinden oluşur. Her Genel Ağ adresi dört sekizli ya da 32 bit uzunluktadır. Gösterici bu uzunluktan daha büyük olursa kaynak rota boştur (ve kayıtlı rota doludur) ve yönlendirme sadece hedef adres alanına göredir. Hedef adres alanındaki adrese ulaşılırsa ve gösterici bu uzunluktan büyük değilse, kaynak rotadaki bir sonraki adres hedef adres alanındaki adres ile değiştirilir ve kayıtlı rota adresi kullanılmakta olan kaynak adresle yer değiştirir ve gösterici dört arttırılır. Kayıtlı rota adresi, Genel Ağ modülünün bu verikatarının ilerletileceği ortamda bilinen kendi Genel Ağ adresidir. Kaynak rotanın kayıtlı rota ile yerdeğiştirilmesi işlemi (ters sırada olsa da, bir kaynak rota olarak kullanılmakta olması gerekir), verikatarının Genel Ağ boyunca işlenmesine rağmen seçeneğin (ve bir bütün olarak IP başlığının) sabit uzunlukta kaldığı anlamına gelir. Ağgeçidi veya konak IP, rotadaki sonraki adrese erişmek için bol ağgeçidi ve rota kullanımına izin verdiğinden dolayı bu seçenek gevşek bir kaynak rotası belirtir. Veridilimlerine kopyalanmalıdır. Bir verikatarında en fazla bir kere görünebilir. Sıkı Kaynak ve Rota Kaydı +--------+--------+--------+---------//--------+ |10001001|uzunluk | gstrici| rota verisi | +--------+--------+--------+---------//--------+ Türü=137 Sıkı Kaynak ve Rota Kaydı (SKRK) seçeneği, ağgeçitleri tarafından verikatarının ilerletilmesinde kullanılmak üzere yönlendirme bilgisini sağlayacak ve rota bilgisini kaydedecek Genel Ağ verikatarı kaynağı için bir imkan sağlar. Seçenek, seçenek türü kodu ile başlar. İkinci sekizli, seçenek türü, uzunluk sekizlisi, gösterici sekizlisi ve 3 sekizliden oluşan rota verisinin toplam uzunluğunu içeren secenek uzunluğudur. Üçüncü sekizli, işlenecek sonraki kaynak adresle başlayan sekizliyi belirten yönlendirme verisine göstericidir. Gösterici bu seçeneğe görelidir ve olası en küçük geçerli değeri 4'tür. Bir rota verisi bir seri Genel Ağ adresinden oluşur. Her Genel Ağ adresi dört sekizli ya da 32 bit uzunluktadır. Gösterici bu uzunluktan daha büyük olursa kaynak rota boştur (ve kayıtlı rota doludur) ve yönlendirme sadece hedef adres alanına göredir. Hedef adres alanındaki adrese ulaşılırsa ve gösterici bu uzunluktan büyük değilse, kaynak rotadaki bir sonraki adres hedef adres alanındaki adres ile değiştirilir ve kayıtlı rota adresi kullanılmakta olan kaynak adresle yer değiştirir ve gösterici dört arttırılır. Kayıtlı rota adresi, Genel Ağ modülünün bu verikatarının ilerletileceği ortamda bilinen kendi Genel Ağ adresidir. Kaynak rotanın kayıtlı rota ile yerdeğiştirilmesi işlemi (ters sırada olsa da, bir kaynak rota olarak kullanılmakta olması gerekir), verikatarının Genel Ağ boyunca işlenmesine rağmen seçeneğin (ve bir bütün olarak IP başlığının) sabit uzunlukta kaldığı anlamına gelir. Ağgeçidi veya konak IP verikatarını rotada belirtilmiş ağgeçidi veya konağa erişmek için sadece sonraki adresin belirttiği doğrudan bağlantılı ağ üzerinden doğrudan kaynak rotadaki sonraki adrese göndermesi gerektiğinden bu seçenek sıkı bir kaynak rotası belirtir. Veridilimlerine kopyalanmalıdır. Bir verikatarında en fazla bir kere görünebilir. Rota Kaydı +--------+--------+--------+---------//--------+ |00000111|uzunluk | gstrici| rota verisi | +--------+--------+--------+---------//--------+ Type=7 Rota kaydı seçeneği bir Genel Ağ verikatarının rotasını kaydetmek için bir imkan sunar. Seçenek, seçenek türü kodu ile başlar. İkinci sekizli, seçenek türü, uzunluk sekizlisi, gösterici sekizlisi ve 3 sekizliden oluşan rota verisinin toplam uzunluğunu içeren seçenek uzunluğudur. Üçüncü sekizli, bir rota adresini saklayacak sonraki alanla başlayan sekizliyi belirten yönlendirme verisine göstericidir. Gösterici bu seçeneğe görelidir ve olası en küçük geçerli değeri 4'tür. Bir rota verisi bir seri Genel Ağ adresinden oluşur. Her Genel Ağ adresi dört sekizli ya da 32 bit uzunluktadır. Gösterici bu uzunluktan daha büyük olursa kayıtlı rota veri alanı doludur. Seçeneğin boyu adreslerin eklenmesinden dolayı değişmez. Rota verisi alanının başlangıçtaki içeriği sıfır olmalıdır. Bir Genel Ağ modülü bir verikatarını yönlendirirken, rota kaydı seçeneği var mı diye bakar. Varsa, oraya, bu verikatarının ilerletildiği, gösterici tarafından belirtilen sekizliden başlayan kayıtlı rota ortamında bilinen kendi Genel Ağ adresini yerleştirir ve göstericiyi dört arttırır. Eğer rota alanı zaten doluysa (gösterici, uzunluğu aşarsa), verikatarı, adres kayıtlı rotaya yerleştirilmeden ilerletilir. Biraz yer varsa ama tam adresi yerleştirmek için yeterli değilse, özgün verikatarının hatalı olduğuna hükmedilip verikatarı yokedilir. Her durumda, kaynak konağa bir ICMP parametre sorunu iletisi gönderilebilir [3]. Bütün veridilimlerine kopyalanmaz, sadece ilk veridiliminde gider. Bir verikatarında en fazla bir kere görünür. Akım Betimleyici +--------+--------+--------+--------+ |10001000|00000010| Akım Kimliği | +--------+--------+--------+--------+ Türü=136 Uzunluğu=4 Bu seçenek akım fikrini desteklemeyen ağlar boyunca taşınmak için 16 bitlik SATNEM akım betimleyici için bir yol sunar. Veridilimlerine kopyalanmalıdır. Bir verikatarında en fazla bir kere görünür. Genel Ağ Zaman Damgası +--------+--------+--------+--------+ |01000100|uzunluk | gstrici|taşm|byr| +--------+--------+--------+--------+ | Genel Ağ adresi | +--------+--------+--------+--------+ | zaman damgası | +--------+--------+--------+--------+ | . | . . Türü = 68 Seçenek uzunluğu, tür, uzunluk, gösterici ve taşma/bayrak sekizlilerinin sayısıdır (azami uzunluk: 40). Gösterici, bu seçeneğin başlangıcından zaman damgalarının sonuna kadar sekizlilerin sayısının bir fazlasını içerir (yani, sonraki zaman damgasını içerecek boşluğun başındaki sekizliyi gösterir). Geçerli en küçük değer 5'tir. Gösterici bu uzunluktan büyük olduğunda zaman damgası alanı dolu demektir. Taşma (taşm) [4 bit] boş alan yokluğundan dolayı zaman damgasının kaydedemediği IP modüllerinin sayısıdır. Bayrak (byr) [4 bit] değerleri: 0 -- sadece, ardışık olarak 32 bitlik sözcüklerde saklanan zaman damgası 1 -- her zaman damgasının öncesinde kaydedilen öğenin Genel Ağ adresi vardır 3 -- Genel Ağ adres alanları önceden belirtilmiştir. Kendi adresi ile sonradan belirtilen Genel Ağ adresi eşleşiyorsa, böyle bir IP modülü sadece kendi zaman damgasını kaydeder. Zaman damgası sağa yanaşık, evrensel zamanda geceyarısından itibaren milisaniye cinsinden 32 bitlik bir zaman damgasıdır. Eğer zaman milisaniye cinsinden alınamıyorsa veya elde edilen zaman hiç gerektiği gibi değilse, gerektiği gibi zaman damgasının mümkün olduğu ilk zamanda kayıt girilir, ancak zaman damgası alanının yüksek biti standartdışı bir değer kullanıldığını belirtmek üzere bir yapılır. Verikatarının oluşturulduğu konakta bu seçenek beklenen zaman damgası bilgisinin tümünü tutacak büyüklükte bir zaman damgası alanı ile oluşturulmalıdır. Zaman damgası eklemeleriyle seçeneğin boyu değişmez. Zaman damgası alanının başlangıç değeri ya sıfırlardan ya da Genel Ağ adresi/sıfır çiftlerinden oluşmalıdır. Zaman damgası veri alanı önceden dolmuş ise (gösterici uzunluğu aşmışsa) verikatarı zaman damgası eklenmeden ilerletilir. Ama taşma sayacı bir artırılır. Biraz yer varsa ama tam zaman damgasını yerleştirmek için yeterli değilse veya taşma sayacının kendisi taşmışsa, özgün verikatarının hatalı olduğuna hükmedilip verikatarı yokedilir. Her durumda, kaynak konağa bir ICMP parametre sorunu iletisi gönderilebilir [3]. Zaman damgası seçeneği bütün veridilimlerine kopyalanmaz; ilk veridiliminde taşınır. Bir verikatarında en fazla bir kere görünür. Dolgu: değişken Genel Ağ başlık dolgusu Genel Ağ başlığının 32 biti tam doldurmasını sağlamak için kullanılır. Dolgu karakteri sıfırdır. İnceleme Bir Protokolün gerçeklenimi dayanıklı olmalıdır. Her gerçeklenim başkaları tarafından oluşturulanlarla birarada iş görebilmelidir. Bu belirtim protokol hakkında açıklanmamış bir şey kalmamasını hedeflerken farklı yorumlar da mümkündür. Genel olarak, bir gerçenim verirken tutucu, alırken özgürlükçü olmalıdır. Yani, verikatarlarını iyi biçimlenmiş olarak yollamak hususunda dikkatli olmalı ama yorumlayabileceği her verikatarını da kabul etmelidir (temiz kalmaya çalışırken teknik hatalara konu olmamak gibi). Temel Genel Ağ hizmeti verikatarları üzerine kuruludur ve verikatarlarının hedef konaktaki hedef Genel Ağ protokolü modülünde birleştirilmek üzere ağgeçitlerinde veridilimlerine bölünmesine imkan verir. Elbette verikatarlarının bir ağın içinde veya bir ağın ağgeçitleri arasında özel kabullere göre veridilimlerine bölünmesi ve yeniden birleştirilmesine, bu işlemin Genel Ağ protokollerine ve diğer yüksek seviyeli protokollere şeffaf oluşundan dolayı, ayrıca izin verilir. Veridilimlerine bölme ve yeniden birleştirme işleminin bu şeffaf türüne "ağa bağımlı" dilimleme denir ve burada daha fazla bahsedilmeyecektir. Genel Ağ adresleri kaynakların ve hedeflerin konak seviyesinde ayrımsanmasını sağlarken bir protokol alanına da imkan verir. Her protokolün bir konakta her gerekli oluşunda çoğullamaya imkan vereceği kabul edilir. Adresleme Ağlara adres atamada esneklik sağlayabilmek ve küçükten orta ölçekliye kadar çok fazla sayıda ağa izin vermek için, adres alanı yorumu çok konaklı az sayıda ağ, makul sayıda konaklı makul sayıda ağ ve az konaklı çok sayıda ağ belirtilebilecek şekilde kodlanmıştır. Ek olarak, "ek adresleme kipi" için bir çıkış kodu da vardır. Adres Biçimleri: Yüksek Bitler Biçim Sınıfı ------------- ----------------------------- ------ 0 ağ için 7, konak için 24 bit a 10 ağ için 14, konak için 16 bit b 110 ağ için 21, konak için 8 bit c 111 ek adresleme kipi için önlem Ağ alanındaki sıfır değeri bu ağ anlamındadır. Bu sadece belirli ICMP iletilerinde kullanılır. Ek adresleme kipi tanımlanmamıştır. Bu özelliklerin ikisi de gelecekte kullanım için ayrılmıştır. Ağ adresleri için atanmış gerçek değerler "Atanmış Numaralar"da [9] verilmiştir. Yerel ağa göre atanmış yerel adres, fiziksel tek bir konağın sanki bir kaç Genel Ağ konağıymış gibi davranmasını mümkün kılmalıdır. Yani, çeşitli Genel Ağ adreslerinin tek bir arayüze karşılık gelmesini mümkün kılan ağ/konak arayüzleri ile Genel Ağ konak adresleri arasında bir eşlem olması gerekir. Ayrıca tek bir konağın birden fazla fiziksel arayüze sahip olabilmesi ve bunlardaki verikatarlarının tümünün tek bir konağı adresliyormuşçasına ele alınabilmesi mümkün olmalıdır. ARPANET, SATNET, PRNET ve diğer ağların adresleri ile Genel Ağ adresleri arasındaki eşleşmeler "Adres Eşlemleri"nde [5] açıklanmıştır. Dilimleme ve Yeniden Birleştirme Genel Ağ betimleme alanı (ID), yeniden birleştirmek amacıyla veridilimlerini betimlemek için protokol alanları ile kaynak ve hedef adresini birlikte kullanır. Kalan Veridilimleri bayrağı biti (KD), verikatarı son veridilimi değilse etkin olur. Veridilimi Başlangıcı alanı veridiliminin özgün verikatarındaki göreli başlangıç yerini belirtir. Veridilimleri 8 sekizlilik birimlerle sayılır. Dilimleme stratejisinin tasarımı, özgün verikatarının dilimleme ile ilgili alanlarının sıfır oluşuna (KD = 0, Veridilimi Başlangıcı = 0) dayandırılmıştır. Eğer bir Genel Ağ verikatarı dilimlemeye maruz kalmışsa, veri alanı 8 sekizlilik dilimlere ayrılmış demektir. Bu biçimleme, 65.536 sekizlinin her biri 8 sekizliden oluşan 8192 (2^13) dilime ayrılmasını mümkün kılar. Bu hesabın verikatarının toplam uzunluk alanı ile tutarlılığına dikkat edilmelidir (elbette, başlık, veridilimlerinde değil toplam uzunluğun içinde hesaba katılır). Dilimleme yapılırken, bazı seçenekler her veridilimine kopyalanırken bazıları sadece ilk veridiliminde kalır. Her Genel Ağ modülü dilimleme yapılmaksızın 68 sekizlilik bir verikatarını ilerletebilmelidir. Bunun sebebi en küçük dilimin 8 sekizli ve Genel Ağ başlığının da en fazla 60 sekizli uzunlukta olabilmesidir. Her Genel Ağ hedefi 576 sekizli uzunluktaki bir verikatarını, ister tek bir 576 sekizlilik verikatarı olarak, ister yeniden birleştirilmek üzere 576 sekizlilik bir veridilimi olarak, alabilmelidir. Dilimleme işleminden etkilenebilen alanlar şunlardır: Seçenekler alanı Kalan Veridilimleri bayrağı Veridilimi Başlangıcı Genel Ağ başlığı Uzunluk alanı Toplam Uzunluk alanı Başlık Sağlama Özeti Dilimlenmeyecek (DY) bayrağı etkinse, bu verikatarının veridilimlerine bölünmesine izin VERİLMEZ, ama yokedilebilir. Bu, alan konağın Genel Ağ veridilimlerini yeniden birleştirecek kadar özkaynağa sahip olmadığı durumlarda dilimlemeyi yasaklamak için kullanılabilir. Dilimlenmeyecek kullanımına örnek olarak küçük bir konağın hat yükünü düşürmek için kullanımı verilebilir. Küçük konak bir verikatarını kabul eden onu belleğinde saklayıp daha sonra çalıştıran bir önyükleme programı içeriyor olabilirdi. Dilimleme ve yeniden birleştirme işlemleri en kolay örneklerle açıklanır. Aşağıdaki yöntemler gerçeklenim örnekleridir. Aşağıdaki sözde programlarda kullanılan sembollerin anlamları: "=<" küçük ya da eşittir anlamında, "#" farklı anlamında, "=" eşit anlamında, "<-" atanır anlamındadır. "x..y" x dahil, y hariç, x'ten y'ye kadar olanlar anlamındadır. Örneğin, "4..7" gösteriminde aralığa 4, 5, 6 dahildir, 7 dahil değildir. Bir Dilimleme İşlemi Örneği Sonraki ağ boyunca aktarılabilen en büyük verikatarının uzunluğu azami aktarım birimi (Maximum Transmission Unit - MTU) olarak bilinir. Verikatarının toplam uzunluğu azami aktarım biriminden küçük veya eşitse bu verikatarı yola devam edilmek üzere sonraki adıma teslim edilir; aksi takdirde, veri katarı iki veribölütüne bölünür, ilk veribölütü azami uzunlukta olurken ikinci veribölütü kalanı içerir. İlk veribölütü işlemin sonraki adımına teslim edilirken, ikincisi hala çok büyükse tekrar ikiye bölme işlemine tabi tutulur. Gösterim: VB - Veridilimi Başlangıcı İBU - Genel Ağ Başlık Uzunluğu DY - Dilimlenmeyecek bayrağı KD - Kalan Veridilimleri bayrağı TU - Toplam Uzunluk EVB - Eski Veridilimi Başlangıcı EİBU - Eski Genel Ağ Başlık Uzunluğu EKD - Eski Kalan Veridilimleri bayrağı ETU - Eski Toplam Uzunluk DBS - Dilim Bloklarının Sayısı MTU - Azami Aktarım Birimi Algoritma: TU =< MTU ise, bu verikatarı yola devam etmek üzere sonraki adıma teslim edilir değilse ve DY = 1 ise, verikatarı yokedilir değilse, ilk veridilimini üretmek için: (1) Özgün Genel Ağ başlığı kopyalanır; (2) EİBU <- İBU; ETU <- TU; EVB <- VB; EKD <- KD; (3) DBS <- (MTU-İBU*4)/8; (4) İlk İBU*8 veri sekizlisi iliştirilir; (5) Doğru Başlık: KD <- 1; TU <- (İBU*4)+(DBS*8); Sağlama Özeti yeniden hesaplanır; (6) bu veridilimi yola devam etmek üzere sonraki adıma teslim edilir; ikinci veridilimini üretmek için: (7) Genel Ağ başlığı seçmece kopyalanır (bazı alanlar kopyalanmaz, Seçenek tanımlarına bakınız); (8) Verinin kalanı eklenir; (9) Doğru Başlık: İBU <- (((EİBU*4)-(seçenek uzunluğu kopyalanmaz))+3)/4; TU <- ETU - DBS*8 - (EİBU-İBU)*4); VB <- EVB + DBS; KD <- EKD; Sağlama Özeti yeniden hesaplanır; (10) Bu veridilimi dilimleme sınamasına teslim edilir; sınama sonu. Yukarıdaki algoritmada her veridilimi (sonuncu hariç) izin verilen azami boyutta üretilmektedir. Bunun yerine azami boyuttan daha küçük veridilimleri üretmek de bir seçenek olabilir. Örneğin, sonuç azami aktarım biriminden küçük olana kadar büyük verikatarlarını peşpeşe ikiye bölen bir yordam gerçeklenebilirdi. Bir Yeniden Birleştirme Örneği Her verikatarı için tampon betimleyici, kaynak, hedef, protokol ve betimleme alanlarının toplamı olarak hesaplanır. Eğer bu dilimlenmemiş verikatarı ise (Veridilimi Başlangıcı ve Kalan Veridilimleri alanlarının ikisi de sıfırsa), bu tampon betimleyici ile ilişkili yeniden birleştirme özkaynakları serbest bırakılır ve verikatarı yola devam etmek üzere sonraki adıma teslim edilir. Bu tampon betimleyici ile ilişkili elde başka veridilimi yoksa, yeniden birleştirme özkaynakları ayrılır. Bu özkaynaklar, bir veri tamponu, bir başlık tamponu, bir veridilimi bloğu bit tablosu, bir toplam veri uzunluğu alanı ve zamanlayıcıdan oluşur. Veridilimindeki veri, Veridilimi Başlangıcı ve Uzunluk değerlerine göre veri tamponuna yerleştirilir ve veridilimi bloğu bit tablosundaki alınan veridilimi bloklarının karşılığı olan bitler etkin yapılır. Eğer bu ilk veridilimi ise (yani, Veridilimi Başlangıcı sıfır ise), bu başlık başlık tamponuna yerleştirilir. Eğer bu son veridilimi ise (yani, Kalan Veridilimi alanı sıfırsa), toplam veri uzunluğu hesaplanır. Eğer bu veridilimi verikatarını tamamlıyorsa (veridilimi blokları tablosundaki bitlere bakarak saptanır), verikatarı yola devam etmek üzere sonraki adıma teslim edilir; aksi takdirde, zamanlayıcı bu veridiliminin yaşam süresi alanındaki değere ve mevcut zamanlayıcı değerinin azamisine ayarlanır; ve yeniden birleştirme yordamı, denetimi kendini çağıran sürece bırakır. Eğer zamanlayıcılar zamanaşımına uğrarsa, bu tampon betimleyici ile ilgili yeniden birleştirme özkaynaklarının tamamı serbest bırakılır. Zamanlayıcının ilk ayar değeri yeniden birleştirme bekleme süresinin alt sınırıdır. Eğer gelen veridilimindeki Yaşam Süresi, mevcut zamanlayıcı değerinden büyükse bekleme zamanı arttırılacağından ama küçükse azaltılmayacağından bu değer bir alt sınırdır. Üst sınır ise azami yaşam süresidir (yaklaşık 4,25 dakika). Zamanlayıcının ilk ayar değeri olarak şu an önerilen 15 saniyedir. Bu, bu protokolden elde edilen deneyimle değişebilir. Bu parametre değerinin seçiminin tampon sığasına bağlı oluşuna ve tampon sığasınında aktarım ortamının hızı ile orantılı oluşuna dikkat ediniz. Yani, veri hızı ile zamanlayıcı değerinin çarpımı tampon boyutunu verecektir (örn, 10Kb/s X 15s = 150Kb). Gösterim: VB - Veridilimi Başlangıcı İBU - Genel Ağ Başlık Uzunluğu KD - Kalan Veridilimleri bayrağı TTL - Yaşam Süresi TU - Toplam Uzunluk TVU - Toplam Veri Uzunluğu BUFID - Tampon betimleyici ALBT - Alınan Veridilimi Bit Tablosu ZAS - Zamanlayıcı Alt Sınırı Algoritma: (1) BUFID <- kaynak|hedef|protokol|betimleme; (2) VB = 0 ve KD = 0 ise, (3) ve BUFID tamponu ayrılmışsa, (4) bu BUFID için tampon boşaltılır; (5) Verikatarı sonraki adıma teslim edilir; İşlem bitirilir. (6) değilse (BUFID tamponu ayrılmamışsa), (7) BUFID ile yeniden birleştirme özkaynakları ayrılır; TIMER <- ZAS; TVU <- 0; (8) Veridilimindeki veri BUFID tamponuna VB*8 .. (TU-(İBU*4))+VB*8 sekizlileri olarak yerleştirilir (9) VB .. VB+((TU-(İBU*4)+7)/8) ALBT bitleri bir yapılır; (10) MF = 0 ise, TVU <- TU-(İBU*4)+(VB*8) (11) VB = 0 ise, başlığı başlık tamponuna koy (12) TVU # 0 ise, (13) ve 0 .. (TVU+7)/8 ALBT bitleri bir ise, (14) TU <- TVU+(İBU*4) (15) Verikatarını sonraki adıma teslim et; (16) Bu BUFID için yeniden birleştirme özkaynaklarını serbest bırak; İşlem bitirilir. (17) TIMER <- MAX(TIMER,TTL); (18) sonraki veridilimineveya zamanaşımına kadar işlemden vazgeç; (19) Zaman dolar: Bu BUFID için yeniden birleştirme özkaynaklarını boşalt; Yordam sonu. İki veya daha fazla veridiliminin aynı veriyi içermesi durumunda, ya tamamen ya da bir kısmi örtüşme boyunca, bu yordam veri tamponundaki en son veriyi kullanır ve verikatarı teslim alınır. Betimleme Bir verikatarı için Betimleyici seçimi, veridilimlerini eşsiz olarak kimliklendirmenin bir yolunu sağlamak ihtiyacına dayanır. Veridilimlerini birleştiren protokol modülü veridilimlerinin aynı verikatarına ait olup olmadığına kaynak, hedef, protokol ve betimleyicinin hepsinin aynı olup olmadığına bakarak karar verir. Bu durumda, gönderici Betimleyiciyi verikatarının (veya onun veridilimlerinin) Genel Ağ'da canlı olduğu süre için bu kaynak, hedef çifti ve protokol için eşsiz olarak seçmelidir. Gönderen protokolün, Genel Ağ'daki son azami paket ömrü süresince haberleştiği her hedef için bir girdi tuttuğu bir betimleyici tablosuna gerek duyduğunu anlaşılıyor. Betimleyici alanı 65536 farklı değere izin verdiğinden, bazı konaklar basitçe hedeften bağımsız olarak eşsiz betimleyiciler kullanabilirler. Bazı yüksek seviyeli protokoller betimleyici seçimini kendilerine uydurur. Örneğin, TCP protokolü modülleri birbirinin aynı TCP veribölütleri aktarabilir (yeniden aktarım olayı). Eğer yeniden aktarım özgün aktarımla aynı betimleyiciyi taşıyorsa, her verikatarının veridilimleri doğru TCP veribölütünü oluşturmakta kullanıldığından, doğru alım olasılığı artar. Hizmet Türü Hizmet Türü (HT) Genel Ağ hizmet kalitesinin seçimidir. Hizmet Türü, üstünlük, gecikme, işlem gücü ve güvenilirlik soyut parametreleri üzerinden belirlenir. Bu soyut parametreler, içinden verikatarı geçen ağların asıl hizmet parametreleriyle eşlenmek içindir. Üstünlük. Bir verikatarının öneminin bağımsız ölçüsü. Gecikme. Hemen teslim bu belirteci taşıyan verikatarları için önemlidir. İşlem Gücü. Yüksek veri hızı bu belirteci taşıyan verikatarları için önemlidir. Güvenirlik. Tesliminden emin olmak için daha fazla çaba gösterilmesi bu belirteci taşıyan verikatarları için önemlidir. Örneğin, ARPANET bir öncelik bitine ve "standart" iletilerle (0. tür) "denetimsiz" iletiler (3. tür) arasında bir seçim imkanına sahiptir (tek paketlik ve çok paketli iletiler arasındaki seçim de ayrı bir hizmet parametresi olarak düşünülebilir). Denetimsiz iletilerin teslimatları daha az güvenilir olmaya ve daha az gecikmeye uğramaya meyleder. Bir Genel Ağ verikatarının ARPANET boyunca gönderileceğini varsayalım. Genel Ağ hizmet türü şöyle verilmiş olsun: Üstünlük: 5 Gecikme: 0 İşlem Gücü: 1 Güvenirlik: 1 Bu örnekte, bu parametrelerin bu değerlere eşlenmesi ARPANET için ARPANET öncelik bitinin etkin ayarlanması demek olurdu, çünkü Genel Ağ üstünlüğü kendi aralığının üst yarısındadır; standart iletiler seçilmiş olurdu, çünkü işlem gücü ve güvenirlik gereksinimleri belirtilmiş ama gecikme istenmemiştir. Hizmet eşleme ile ilgili daha ayrıntılı bilgi "Hizmet Eşlemleri"nde [8] bulunmaktadır. Yaşam Süresi Yaşam süresi gönderici tarafından verikatarının Genel Ağ sisteminde kalabileceği azami süreye ayarlanır. Eğer verikatarı Genel Ağ sisteminde yaşam süresinden daha uzun süre kalırsa verikatarı yokedilir. Bu alanın değeri Genel Ağ başlığının işleme sokulduğu her noktada verikatarını işlemeye harcanan zamanı yansıtacak şekilde düşürülmelidir. Asıl harcanan zamana ilişkin yerel bir bilginin olmaması halinde bile alanın değeri 1 düşürülmelidir. Süre saniye cinsinden ölçülür (yani 1, bir saniye demektir). Bu durumda azami yaşam süresi 255 saniye, yani 4,25 dakika olur. Verikatarını işleyen her modül işlem zamanı bir saniyeden az bile sürse, yaşam süresini bir azaltması gerekir. Bu bakımdan Yaşam Süresi bir verikatarının mevcut olabileceği asıl süreyi değil sürenin üst sınırını belirler. Yaşam Süresi belirlemenin amacı, teslim edilemeyen verikatarlarının yokedilmesini sağlamak için verikatarlarının ömrünü sınırlamaktır. Bazı daha yüksek seviyeli güvenilir protokoller eski yinelenmiş verikatarlarının belli bir süre geçtikten sonra artık gelmeyeceği kabulüne dayanırlar. Yaşam süresi böyle protokoller için önkabullerinin güvencesini sağlamanın bir yoludur. Seçenekler Seçenekler verikatarları için isteğe bağlıdır, fakat gerçeklenimlerde hepsi gereklidir. Yani, bir seçeneğin varlığı ya da yokluğu gönderici açısından sadece bir seçim olduğu halde her Genel Ağ modülünün her seçeneği değerlendirecek yeteneği olmalıdır. Seçenek alanında çok sayıda seçenek bulunabilir. Seçenekler 32 bitlik sınırda bitmeyebilirler. Genel Ağ başlığında seçenek sekizlilerinin boş olanları sıfır sekizlileri olmalıdır. Bunlardan ilki "Seçenek Sonu" seçeneği olarak yorumlanır ve Genel Ağ başlığının kalanı dolgu kabul edilir. Her Genel Ağ modülü her seçeneğin gerektirdiği gibi davranabilmelidir. Güvenlik Seçeneği, eğer sınıflandırılmış, sınırlanmış veya bölmelenmiş trafik geçirilecekse gereklidir. Sağlama Özeti Genel Ağ başlığı sağlama özeti Genel Ağ başlığı değişmişse tekrar hesaplanır. Örneğin yaşama süresinin azalması, Genel Ağ seçeneklerinde artış veya değişiklik, dilimleme dolayısıyla başlık değişebilir. Bu Genel Ağ seviyesinde sağlama özeti, Genel Ağ başlığının aktarım hatalarından korunması için düşünülmüştür. Yeniden aktarım gecikmeleri olmaması için bir kaç bit hatasını kabul edebilen bazı uygulamalar vardır. Eğer Genel Ağ protokolü veri doğruluğu için zorlanacaksa böyle uygulamalar desteklenmemelidir. Hatalar Genel Ağ protokol hataları ICMP iletileri [3] olarak raporlanabilir. Arayüzler Her işletim sistemi farklı imkanlar sunduğu için kullanıcı/IP arayüzünün işlevsel açıklaması kurgusaldır. Neticede, okuyucuyu farklı gerçeklenimlerin farklı kullanıcı arayüzleri olacağı konusunda uyarmamız gerekir. Yine de, tüm IP gerçeklenimlerinin en azından belli bir hizmet kümesini garanti edebilmek için aynı protokol hiyerarşisini destekleyebilmeleri gerekir. Bu bölüm tüm IP gerçeklenimleri için gerekli olan işlevsel arayüzlerin belirtimidir. Genel Ağ protokolü bir tarafı yerel ağa, diğer tarafı ise ya bir yüksek seviyeli protokole ya da bir uygulama programına bakan bir arayüzdür. Aşağıda yer alan, daha yüksek seviyeli protokol veya uygulama programını (hatta bir ağgeçidi programını) Genel Ağ modülünü kullanması sebebiyle "kullanıcı" olarak isimlendireceğiz. Genel Ağ protokolü bir verikatarı protokolü olduğundan küçük de olsa bir bellek veya verikatarı aktarımları arasında sürdürülen bir kat vardır ve kullanıcı tarafından Genel Ağ protokolü modülüne yapılan her çağrıda IP'nin istenen hizmeti uygulayabilmesi için gereken tüm bilgi sağlanır. Bir Üst Düzey Arayüz Örneği Aşağıda, kullanıcıdan Genel Ağ protokolü modülüne iletilmesi gerekenleri sağlayan iki çağrı örneği yer almaktadır ("=>" işareti "döndürülür" anlamında kullanılmıştır): GÖNDER (kyn, hdf, prot, HT, TTL, TmpGST, uzn, Id, DF, sçn => sonuç) burada: kyn = kaynak adresi hdf = hedef adresi prot = protokol HT = hizmet türü TTL = yaşam süresi TmpGST = tampon göstericisi uzn = tampon uzunluğu Id = Betimleyici DY = Dilimlenmeyecek bayrağı sçn = seçenek verisi sonuç = yanıt TAMAM = verikatarı sorunsuz gönderildi Hata = argüman veya yerel ağ hatası Üstünlük, HT içindedir ve güvenlik/bölüm bir seçenek olarak aktarılır. AL (TmpGST, prot, => result, kyn, hdf, HT, uzn, sçn) where: TmpGST = tampon göstericisi prot = protocol sonuç = yanıt TAMAM = verikatarı sorunsuz alındı Hata = argümanlarda hata uzn = tampon uzunluğu kyn = kaynak adresi hdf = hedef adresi HT = hizmet türü sçn = seçenek verisi Kullanıcı bir verikatarını gönderirken, tüm argümanlarını sağlayarak GÖNDER çağrısı yapar. Bu çağrıyı alan Genel Ağ protokolü modülü, argümanlara bakarak iletiyi hazırlayıp gönderir. Eğer argümanlarda sorun yoksa ve verikatarı yerel ağ tarafından kabul edilmişse, çağrı başarılı olarak döner. Eğer argümanlarda sorun varsa veya verikatarı yerel ağ tarafından kabul edilmemişse, çağrı başarısız olarak döner. Başarısızlık durumunda, sorunun sebebi olarak makul bir raporlama yapılmalıdır, fakat böyle raporların ayrıntıları gerçeklenime göre farklıdır. Yerel ağdan Genel Ağ modülüne bir verikatarı geldiğinde, ya adresli kullanıcıdan kaynaklanan bekleyen bir AL çağrısı vardır ya da yoktur. Birinci durumda, bilgi verikatarından kullanıcıya aktarılarak bekleyen çağrı yerine getirilir. İkinci durumda, adresli kullanıcı bekleyen bir verikatarı varlığı konusunda uyarılır. Eğer adresli kullanıcı yoksa, gönderene bir ICMP hata iletisi döndürülür ve veri yokedilir. Kullanıcı bilgilendirmesi, gerçeklenim ortamının işletim sistemine uygun olarak bir sözde kesme veya benzeri bir mekanizma üzerinden yapılabilir. Bir kullanıcının AL çağrısı bir bekleyen verikatarı tarafından hemen yerine getirilebileceği gibi çağrı bir verikatarı gelene kadar askıya da alınabilir. Kaynak adresi, gönderen konağın çeşitli adreslere sahip olması (çok sayıda fiziksel bağlantı veya mantıksal adres varlığı) halinde GÖNDER çağrısında belirtilir. Genel Ağ modülü kaynak adresinin bu konağın geçerli adreslerinden biri olup olmadığına bakmalıdır. Bir gerçeklenim, ayrıca, bir verikatarı sınıfının kullanımına ilgi gösterilmesini veya tersine ayrıcalıklı kullanımını gerektirebilir ya da mümkün kılabilir (örn, bunların hepsi protokol alanında belli bir değer olabilir). Bu bölüm işlevsel olarak bir KULLANICI/IP arayüzünü niteler. Kullanılan gösterim çoğunlukla yüksek seviyeli dillerdeki yordam veya işlev çağrılarına benzemekle birlikte, bu kullanım tuzak türü hizmet çağrılarının (SVCler, UUOlar, EMTler gibi) veya başka süreçlerarası iletişim şekillerinin hariç tutulduğu anlamına gelmez. A. Örnekler ve Senaryolar Örnek 2.1. Olası en küçük veriyi taşıyan Genel Ağ verikatarı örneği: Şekil 2.5. Genel Ağ Verikatarı Örneği 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 <= Bitler +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Srm= 4 |İBU= 5 | Hizmet Türü | Toplam Uzunluk = 21 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Betimleme = 111 |Byr=0|Veridilimi Başlangıcı = 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Süre = 123 | Protokol = 1 | Başlık Sağlama Özeti | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | kaynak adresi | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | hedef adresi | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | veri | +-+-+-+-+-+-+-+-+ Genel Ağ Verikatarı Örneği Bu Genel Ağ protokolünün 4. sürümü için bir Genel Ağ verikatarıdır; Genel Ağ başlığı 5 tane 32 bitlik sözcükten oluşmakta olup verikatarının toplam uzunluğu 21 sekizlidir. Bu verikatarı dilimlenmemiş tek bir verikatarıdır (veridilimi değildir). Örnek 2.2. Bu örnekte ilk olarak yönetilebilir boyutta bir Genel Ağ verikatarı gösterdikten (452 veri sekizlisi) sonra, azami aktarım boyu olarak 280 sekizliye izin verildiğinden bu verikatarının dilimlenmesinden olaşabilecek iki Genel Ağ veridilimine yer verdik. Şekil 2.6. Dilimlenebilir Verikatarı Örneği 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Srm= 4 |İBU= 5 | Hizmet Türü | Toplam Uzunluk = 472 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Betimleme = 111 |Byr=0|Veridilimi Başlangıcı = 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Süre = 123 | Protokol = 6 | Başlık Sağlama Özeti | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | kaynak adresi | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | hedef adresi | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | veri | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | veri | \ \ \ \ | veri | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | veri | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Örnek Genel Ağ Verikatarı Şimdi, ilk veridilimi verikatarından 256 veri sekizlisi ayrılarak oluşturuluyor. Şekil 2.7. Genel Ağ Veridilimi Örneği 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Srm= 4 |İBU= 5 | Hizmet Türü | Toplam Uzunluk = 276 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Betimleme = 111 |Byr=1|Veridilimi Başlangıcı = 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Süre = 119 | Protokol = 6 | Başlık Sağlama Özeti | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | kaynak adresi | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | hedef adresi | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | veri | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | veri | \ \ \ \ | veri | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | veri | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Örnek Genel Ağ Veridilimi Ve ikinci veridilimi. Şekil 2.8. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Srm= 4 |İBU= 5 | Hizmet Türü | Toplam Uzunluk = 216 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Betimleme = 111 |Byr=0|Veridilimi Başlangıcı=32 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Süre = 119 | Protokol = 6 | Başlık Sağlama Özeti | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | kaynak adresi | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | hedef adresi | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | veri | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | veri | \ . \ \ . \ | veri | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | veri | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Örnek Genel Ağ Veridilimi Örnek 2.3. Burada, seçenekleri içeren bir verikatarı örneği görüyoruz: Şekil 2.9. Seçenekli Verikatarı Örneği 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Srm= 4 |İBU= 8 | Hizmet Türü | Toplam Uzunluk = 576 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Betimleme = 111 |Byr=0|Veridilimi Başlangıcı = 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Süre = 123 | Protokol = 6 | Başlık Sağlama Özeti | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | kaynak adresi | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | hedef adresi | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sçn. Kodu = x | Sçn. Uzn. = 3 |seçenek değeri | Sçn. Kodu = x | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sçn. Uzn. = 4 | seçenek değeri | Sçn. Kodu = 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sçn. Kodu = y | Sçn. Uzn. = 3 |seçenek değeri | Sçn. Kodu = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | veri | \ . \ \ . \ | veri | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | veri | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Örnek Genel Ağ Verikatarı B. Veri Aktarım Sırası Bu belgede açıklanan başlığın ve verinin aktarım sırası sekizli seviyesinde çözümlenmiştir. Bir sekizli grubunu bir şema olarak gösterdiğimizde, bu sekizlilerin aktarım sırası Türkçe'de okundukları normal sıraya göredir. Örneğin, aşağıdaki şemadaki sekizliler numaralandıkları sırayla aktarılırlar. Şekil 2.10. Sekizlilerin Aktarım Sırası 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1 | 2 | 3 | 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 5 | 6 | 7 | 8 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 9 | 10 | 11 | 12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Sekizlilerin Aktarım Sırası Bir sekizli bir sayısal büyüklüğü gösterdiğinde şekilde en soldaki bit, yüksek bit veya en önemli bittir. Yani, 0 etiketli bit en önemli bittir. Örneğin, aşağıdaki şekilde (onluk tabanda) 170 değeri gösterilmiştir. Şekil 2.11. Bitlerin Önemleri 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ |1 0 1 0 1 0 1 0| +-+-+-+-+-+-+-+-+ Bitlerin Önemleri Benzer şekilde, bir çok sekizli alan bir sayısal büyüklüğü ifade ettiğinde, tüm alanların en solundaki bit en önemli bittir. Birden fazla sekizliden oluşan bir büyüklük aktarılırken en önemli bit önce gönderilir. Dağarcık 1822 BBN Report 1822, "The Specification of the Interconnection of a Host and an IMP". ARPANET ile bir konak arasındaki arayüzün belirtimi. ARPANET iletisi ARPANET'te bir konak ile IMP arasındaki aktarım birimi. Azami boyutu yaklaşık 1012 sekizlidir (8096 bit). ARPANET lideri Konak/IMP arayüzünde bir ARPANET iletisi üzerindeki denetim bilgisi. ARPANET paketi ARPANET'te IMP'ler arasında dahili olarak kullanılan bir aktarım birimi. Azami boyutu yaklaşık 126 sekizlidir (1008 bit). başlık Bir iletinin, veridiliminin, verikatarının, paketin veya veri blokunun başlangıcındaki denetim bilgisi. Bayraklar Çeşitli denetim bayraklarını taşıyan bir Genel Ağ başlığı alanı. Betimleme Bir verikatarının veridilimlerini birleştirmeye yardımcı olmak için gönderici tarafından atanan betimleyici değeri taşıyan bir Genel Ağ başlığı alanı. DBS Bir Genel Ağ veridiliminin veri kısmındaki Dilim Bloklarının Sayısı. Yani, veri kısmının 8 sekizli cinsinden ölçülen uzunluğu. Dolgu Genel Ağ başlığında verinin 32 bitlik sözcük sınırında başlamasını temin için kullanılan Dolgu alanı. Dolgu sıfırlardan oluşur. DY Seçenekler alanında taşınan Dilimlenmeyecek biti. GGP Gateway to Gateway Protocol. Ağgeçitleri arası protokol, birincil olarak ağgeçitleri arasında rotayı ve diğer ağgeçidi işlevlerini denetlemekte kullanılan protokol. Hedef Bir Genel Ağ başlığı alanı: hedef adresi The destination address, an Genel Ağ header field. Hizmet Türü Genel Ağ verikatarı için hizmet kalitesini belirten bir Genel Ağ başlığı alanı. HT Hizmet Türü ICMP Internet Control Message Protocol. Genel Ağ denetim iletisi protokolü; Genel Ağ modülünde gerçeklenir; ICMP ağgeçitlerinden konaklara ve konaklar arasında hataları raporlamakta ve yönlendirme önerileri yapmakta kullanılır. IMP Interface Message Processor. Arayüz ileti işlemci, ARPANET'in paket anahtarlaması. İBU Genel Ağ Başlığı Uzunluğu, Genel Ağ başlığının 32 bitlik sözcükler cinsinden ölçülen uzunluğunu taşıyan bir Genel Ağ başlığı alanıdır. Genel Ağ Adresi Bir Ağ alanı ve bir Yerel Adres alanından ve dört sekizliden (32 bit) oluşan kaynak ve hedef adresi. Genel Ağ veridilimi Bir Genel Ağ başlığı ile bir Genel Ağ verikatarının verisinin bir kısmını içeren bir veri değiştokuş birimi. Genel Ağ verikatarı Bir Genel Ağ modül çifti arasındaki bir veri değiştokuş birimi (Genel Ağ başlığını içerir). Kalan Bir Genel Ağ Adresinin yerel adres kısmı. Kalan Veridilimleri bayrağı Bulunduğu veridiliminin bir Genel Ağ verikatarının sonunu içerip içermediğini belirten ve Genel Ağ başlığının Bayraklar alanında taşınan bir bayrak. Kaynak Kalnak adresi. Bir Genel Ağ başlığı alanı. KD Genel Ağ başlığının bayraklar alanında taşınan Kalan Veridilimleri bayrağı. Kullanıcı Genel Ağ protokolünün kullanıcısı. Bu daha yüksek seviyeden bir protokol modülü, bir uygulama programı veya bir ağgeçidi programı olabilir. modül Bir gerçeklenim, genellikle yazılım olarak; bir protokolün veya başka bir yordamın gerçeklenimi. Protokol Bu belgede, Genel Ağ başlığında bir alanın ismi olup sonraki daha yüksek seviyeli protokolün betimleyicisini içerir. Seçenekler Çeşitli seçenekler içeren Genel Ağ başlığının Seçenekler alanı. Her seçenek bir veya birkaç sekizli uzunlukta olabilir. sekizli Bir sekiz bitlik bayt. Sürüm Genel Ağ başlığının biçimini belirten Sürüm alanı. TCP Transmission Control Protocol. Aktarım denetim protokolü: Genel Ağ ortamlarında güvenilir iletişim için konaklar arası protokol. TCP Veribölütü TCP modülleri arasında veri değiştokuş birimi (TCP başlığını içerir). TFTP Trivial File Transfer Protocol: UDP üzerine inşa edilmiş basit bir dosya aktarım protokolü. Toplam Uzunluk Genel Ağ başlığı alanı olarak Toplam Uzunluk, Genel Ağ başlığı ve veri dahil sekizli cinsinden verikatarının uzunluğudur. TTL Time to Live. Yaşam Süresi. UDP User Datagram Protocol. Kullanıcı Verikatarı Protokolü: Aktarım amaçlı uygulamalar için kullanıcı seviyesinde bir protokol. Veridilimi Başlangıcı Bir veridiliminin bir Genel Ağ verikatarındaki yerini gösteren bir Genel Ağ başlığı alanı. Yaşam Süresi Genel Ağ verikatarının Genel Ağ'da ne kadar süre kalabileceğinin bir üst sınırını içeren bir Genel Ağ başlık alanı. Yerel Adres Bir ağdaki bir konağın adresi. Bir ağdaki konak adresleri üzerine bir Genel Ağ yerel adresinin asıl eşlemi çoktan bire eşleşmeyi mümkün kılmasıyla oldukça geneldir. Kaynakça [IEN48] V. Cerf. The Catenet Model for Internetworking. Ağlar Arası Sistemler için Zincirleme Ağ Modeli. Information Processing Techniques Office, Defense Advanced Research Projects Agency. Temmuz 1978. [BBN-TR1822] Bolt Beranek and Newman. Specification for the Interconnection of a Host and an IMP. Bir Konak ile bir IMP'nin Arabağlantısı için Belirtim. BBN Technical Report 1822. Mayıs 1978'de değişiklik yapıldı. [RFC792] J. Postel. Internet Control Message Protocol - DARPA Internet Program Protocol Specification. ICMP - Genel Ağ Denetim İletisi Prokotolü - DARPA Internet Programı Protokol Belirtimi. USC/Information Sciences Institute. Eylül 1981. [F1978] J. Shoch. Inter-Network Naming, Addressing, and Routing. Ara-Ağlarda İsimleme, Adresleme ve Yönlendirme. COMPCON, IEEE Computer Society. 1978 Baharı. [RFC796] J. Postel. Address Mappings. Adres Eşlemleri. USC/Information Sciences Institute. Eylül 1981. [CN-v3n1] J. Shoch. Packet Fragmentation in Inter-Network Protocols. Ara-Ağ Protokollerinde Paketin Dilimlenmesi. Computer Networks, v. 3, n. 1. Şubat 1979. [IEN109] V. Strazisar. How to Build a Gateway. Bir Ağgeçidi Nasıl Kurulur. Bolt Beranek and Newman. Ağustos 1979. [RFC795] J. Postel. Service Mappings. Hizmet Eşlemleri. USC/Information Sciences Institute. Eylül 1981. [RFC790] J. Postel. Assigned Numbers. Atanmış Numaralar. USC/Information Sciences Institute. Eylül 1981. http://www.belgeler.org/rfc/rfc791.html Network ID: Bir cihazınhangi cihaza bağlı olduğunu gösteriyor. Boadcast adress; 192.168.1.0 gib. Tüm cihazların networkte yayın yapmasını sağlayan adres; 192.199.1.255 gibi. Subnet: Bir IP ağının alt ağlarına subnet denir. 192.168.1.0'daki subnetimiz 255.255.255.0'dır. 192.168.1.0/24 255 255 255 0 |||||||| |||||||| |||||||| 00000000 SUBNET HESAPLAMA 1. ADIM: 192.168.170.0/24'lük bir networkümüz var. 1- Bunu 5 subnete böleceğiz. Formül: 2 üssü n >= yeni-subnet-sayısı 2üssü n >= 5 n = 3 2. ADIM: 2. formül: Eski subnet + n = yeni subnet 24 + 3 = 27 3. ADIM: optetler: 255 255 255 254 |||||||| |||||||| |||||||| |||00000 4. ADIM: Toplam IP sayısı 2 üssü 5 = 32 192.168.170.0/27 1. subnet: 192.168.170.0 - network 192.168.170.31 - broadcast 2. subnet: 192.168.170.32 - network 192.168.170.63 - broadcast 3. subnet: 192.168.170.64 - network 192.168.170.95 - broadcast 4. subnet: 192.168.170.96 - network 192.168.170.127 - broadcast 5. subnet: 192.168.170.128 - network 192.168.170.159 - broadcast 6. subnet: 192.168.170.160 - network 192.168.170.191 - broadcast 7. subnet: 192.168.170.192 - network 192.168.170.223 - broadcast 8. subnet: 192.168.170.225 - network 192.168.170.255 - broadcast 172.16.50.0/16 7 subnete ayırın. 2üssü n >= 7 n = 3 2. formül: yeni sub. 16 + 3 = 19 255 255 0 0 |||||||| |||||||| 00000000 00000000 1. subnet: 172.16.0.0 - network 172.16.31.255 broadcast 192.168.203.121 255.255.255.252 - IP adresli bir bilgisayar hangi subnete aittir? 255.255.255.252 için: |||||||| |||||||| ||||||||| ||||||00 2üssü2= 4 öyleyse bu hatta 4 tane IP var. 192.168.203.0. 192.168.203.3 192.168.203.4 192.168.203.7 (...) 192.168.203.121 Örnek: 172.23.218.44/23 IP adresi hangi subnet aralığındadır? 172.23.218.,'dan başlar, 172.23.219.20'ye kadar gider. OSI (Open System Interconnection) Amaç; iki bilgisayar arasındaki iletişimin nasıl olacağını tanımlamaktır. OSI'nin aasıl amacı bir standart oluşturmaktır. OSI'nin 7 tane katmanı vardır: 1- Fiziksel katman, 2- Yer katmanı, 3- Ağ katmanı, 4- Taşıma katmanı, 5- Oturum katmanı, 6- Sunum katmanı, 7- Uygulama katmanı. Örnek: 1. TCP ve UDP protokolleri hangi katmana dahildir? Taşıma katmanına. 2. HTTP, DNS servisleri hangi katmanda çalışır? Uygulama katmanında. 3. DSI modeline göre iki bilgisayar arasında şifreleme hangi katmanda yapılır? Sunum katmanında. 4. ICMI protokolü hangi katmanın protokolüdür? Ağ katmanının. 5. Telnet hangi katmanın protokolüdür? Uygulama katmanının. +---------+ | PC 1 | | | +---------+ +---------+ | PC 2 | | | | | +---------+ | | +---------+ | |---network yöneticisi | switch | +---------+| | +---------+ | PC 3 | | | +---------+ +---------+------------+----+------------+---------+ | | | | | | |fakülte | | X | |rektörlük| +---------+ +----+ +---------+ 1. UDP protokolünün avantaj ve dezavantajlarını araştırınız. OSI Modeli nedir http://www.ccnaegitimi.com/2014/01/04/osi-modeli-nedir/ ----------------------- ----------------------- ----------------------- İKİ BİLGİSAYARI BAĞLAMA ----------------------- ----------------------- ----------------------- tcpdump uygulamasını indir--- ifconfig sudo ifconfig eth0 up sudo service network-manager stop sudo service network-manager start sudo ifconfig eth0 192.168.1.10 netmask 255.255.255.0 sudo ifconfig eth0 down sudo ifconfig eth0 192.168.1.10 ping 192.168.1.20 sudo tcpdump -i eth0 python2.7 -m SimpleHTTPServer http://192.168.1.10:8000 ---------------------------------------- ---------------------------------------- İKİ BİLGİSAYARDAN BİRİ İNTERNETE ÇIKACAK ---------------------------------------- ---------------------------------------- sudo route add default gw 192.168.1.10 sudo su echo 1 > /proc/sys/net/ipv4/ip_forward sudo pluma etc/sysctl.conf ifconfig wlan0 up iwlist wlan0 scanning iwconfig wlan0 essid WIFI-AIBU iwconfig dhclient wlan0 ilk bilgisayar internete çıkar.... İkinci bilgisayarı internete çıkarmak için: iptables -t nat -A POSTROUTING -0 wlan0 -j MASQUERADE İkinci bir ethernet kartı oluşturun, 172.16.0.50 IP adresi verin. 172.16.0.0/16 ve 192.168.1.0/24 networklerinin ağ geçidi bu ethernet üzerinden geçsin. sudo ifconfig eth0:1 172.16.0.50 up ifconfig (eth0:1 orada) sudo route add -net 172.16.0.0/16 gw 172.16.0.1 dev eth0:1 sudo route add -net 192.168.1.0/24 gw 192.168.1.1 dev eth0:1 OPEN-SSH TCP bağlantısı üzerinde şifreli bağlantıyı sağlayan protokoldür. İlkin Finlandiya'da bir öğrencinin çalışması sonucu Helsinki Üniversitesi'nde ortaya çıkmıştır. 1995'e kadar SSH (Secure Shell - güvenli veri iletimi için kriptografik ağ protokolü) açık kaynak kodlu olarak dağıtılıyor. 1999'da kodları kapatılıyor, böyle olunca OPEN-SSH doğuyor. Başka neler var? SSH karşı hosta bağlıyor. SCP --- dosya kopyalama. SFTP --- SSH FTP. /etc/sshd ya da /etc/ssh dizinine gir. SSH:TCP bağlantısı üzerinde şifreli bağlantıyı sağlayan bir PROTOKOLDÜR. -------- TCP -------- | PC1 |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| PC-2 | | | şifreli iletişim | | -------- -------- ssh -> client sshd -> server ssh yetkilendirme çeşitleri -password -public/private key -host~based Serverlarda pek kullanılmaz. Çünkü güvenli değil. Trafikte password görülebiliyor. -------- -------- | ssh |~~~~~~~~~~~istek~~~~~~~~~~~~>| ssh | | client |<~~~~~~~~password~~~~~~~~~~~ |server | -------- ~~~~~~~~~~~password~~~~~~~~> -------- SSH yetkilendirme çeşitleri *Password *public ve private key *host based rs/ssh id.rsa id.dsa id.rsa.pub id.dsa.pub Terminalde şu komut verilir: ssh-keygen Çıktı: generating publing/private rsa key pair / Enter de! Parola gir.. Enter de. cd /home/kullanıcı/.ssh dizinine girelim ls -l id_rsa ve id_rsa.pub dosyalarının oluşmuş olduğu görülür. touch /home/kullanıcı/.ssh/autorized_keys /home/kullanıcı/.ssh dizinine autorized_keys dosyasını yapar. Dosyayı açalım: pluma /home/kullanıcı/.ssh/autorized_keys Arkadaşın gönderdiği ona ait id_rsa.pub'ı buraya yapıştıralım, kaydedip kapatalım. Aynısını o da kendi bilgisayarında bizim id_rsa.pub'ımızla yapıyor. Sonra: ssh omer@10.47.89.127 (onun adı ve IP'si ile bağlanma girişimi) O da benimkilerle aynısını yapıyor. Host based Sadece IP bilgileri, SSH key ID'si ile bağlantı sağlanabilir. netstat -a --- TCP, UDP dahil tüm bağlantıları listeler netstat -t --- TCP'yi listeler. netstat -u --- UDP'yi listeler. netstat -l --- dinlenen portları listeler. netstat -n --- Herhangi bir alan adının çözümlenmesini engeller. netstat -p --- portları ekrana yazdırır. netstat -i --- bilgisayar üzerindeki interfaceleri listeler. netstat -s --- istatistikleri listeler. netstat -c --- netstat'ın her saniye güncellenmesini sağlar. KENDİ KONFİGÜRASYON DOSYAMIZLA BAĞLANMAK İSTİYORSAK SSH -f ~/CONF-dosyası-yolu omer@... -p 222 https://www.fastssh.com/page/ssh-account-creator adresine gidip SSH Server tabından hesap aç. Sonra terminalden; ssh de-1.fastssh.com koduyla linke gir. ssh new@sdf.org ssh kullanıcı@hostname ssh clone@rita-pc ls -l SSH'i bir VPN gibi kullanalım. Bu, poor man VPN'i diye adlandırılır. ssh -N 8090 kullanıcı@hostname -p portnumarası ------ ------------ yerel port mesela: 2222 numarası sock 5 portu açılıyor +---------+-----------------------------+---------+ | MY | | SSH | | PC |TURKEY | SERVER |ABD +---------+8090 +---------+2222 Türkiye'deki PC'den ABD'deki PC'ye tünel oluşturulduğunda sanki Türkiye'de değil de ABD'de yayın yapılıyormuş gibi olacaktır. ssh -ND 8090 freessh@109.73.172.201 parola:freessh ssh -ND 8090 misafir@107.170.154.237 kullanıcı: misafir parola: misafir!!@ sshuttle -vvr misafir@107.170.154.237 0/0 tarayıcının tercihler/ağ/ayarlar sekmelerinden socks sunucusu: 127.0.0.1, iletişim noktası da 8090 olarak ayarlanmalıdır. Böylece yasak diye bir şey kalmıyor. Yerel portu başka bir porta yönlendirme ssh -L 8000:www.nsa.gov:80 freessh@109.73.172.201 Bir de ters tünelleme yapılabilir: ssh -R 8000:localhost:80 kullanıcı-adı@hostname ---- --------- -- remote B portu B yerel port PC ssh -R 8000:localhost:80 ali@ali.com A sunucusu <---------------------------------------------B sunucusu (uzak sunucu) (yerel sunucu) Hollanda Turkey 8000 n'lu port uzaktaki sunucunun kullanabildiği port. Onu 80 no'lu porta yönlendireceğiz. Yani yukarıdakinin tersine uzak bilgisayarı kendimize yönlendiriyoruz. SSHFS Artık uzaktaki bilgisayarın bir partitionunu mount edebiliriz. Önce bunun için bir dizin yapalım: sudo mkdir /mnt/sshf_disk şimdi bağlayalım: sudo sshfs clone@rita_pc:/home/rita /mnt/sshf_disk sudo sshfs omer@10.47.111.118:/home/omer /mnt/sshf_disk SSH üzerinden grafik ekranını forwarding edelim: vim /etc/ssh/sshd_config * X11forwarding --- satırı var bu satır aktif edilecek. ssh -X omer@10.47.111.118 firefox kodları verilerek Firefox'a giriliyor. SSH copy scp dosya ya da scp user@hostname:/copy/to/path/dosya SSH en çok saldırı alan servislerden biridir. SSH servisinin hangi portta olduğu keşfedilirse, saldırılar artacaktır. Örnek: Birbirininizin /home dizinini saatlik, günlük, haftalık, aylık olacak şekilde düzenli biçimde tam bir yedeğini alın. rsync -avz --delete omer@10.47.111.118:/home/omer /home/fortran/yedek --delete parametresi yedekleme yapılan dizindeki dosyaları siler. Silinmesi istenmiyorsa kullanılmamalıdır. +---------+---------------------------> +---------+ | A | | B | |(B yedek)| |(A yedek)| +---------+ <---------------------------+---------+ Apache Web Server sudo apt-get install apache2 Apache2 içindeki apache2.conf konfigürasyon dosyasıdır. magic dosyası, dosya türlerini tanımlar, ports.conf apache'nin port ayarlarını içeren dosyadır. envvars dosyası değişkenlerin tanımlandığı dosyadır. Dosyayı enable etmek için sudo a2encof /etc/apache2/mods-available/userdir.load Dosyayı disable etmek için sudo a2disconf /etc/apache2/mods-available/userdir.load Modül sudo a2enmod /etc/apache2/mods-enabled/access_compat.load sudo a2enmod /etc/apache2/mods-enabled/access_compat.load Site sudo a2ensite /etc/apache2/sites-enabled//sites-available/000-default.conf sudo a2disdisk /etc/apache2/sites-enabled//sites-available/000-default.conf Apache üzerinde iki tür process yönetimi vardır. İki tür multiprocess var. Birisi Prefork diğeri ise Worker. İkisi arasındaki fark, Prefork process ana process ile child processleri başlatırken Worker, ihtiyaç olduğunda child processleri başlatıyor. Serverimizi düzenleyelim: sudo cp /etc/apache2/sites-available/000-default.conf mysite_com.conf sudo pluma mysite_com.conf değiştir: ServerName www.mysite.com ServerAdmin admin@yahoo.com DocumentRoot /var/www/mysite.com/html/ ErrorLog /var/www/mysite.com/log/error.log CustomLog /var/www/mysite.com/log/access.log combined 80. porttan çalışacak bir Virtualhost oluşturduk. Şimdi yukarıdaki dizinleri oluşturalım: sudo mkdir -p /var/www/mysite.com/html/ sudo mkdir /var/www/mysite.com/log sudo ls -l mysite grubu için yeni bir kullanıcı ekleyelim: sudo useradd -s /usr/sbin/nologin -g www-data mysite Yeni kullanıcıya kullanım hakkı verelim: -R mysite:www-data /var/www/mysite.com sudo apache2 Konfigürasyon dosyasını test edelim: sudo apache2ctl configtest sudo pluma /etc/hosts http://www.mysite.com sitemize son biçimi verelim: sudo nano index.html Debian GNU/Linux /var/www/mysite.com/html/ dizinine yeni bir dosya açalım: sudo pluma /var/www/mysite.com/html/info.php içine şunu yazalım: şimdi tarayıcıya http://www.mysite.com/info.php yazıp PHP bilgilerini görelim. www.google.com/mail/ -------------------- FQDN (Full Qualified Domain Name) URL (Uniform Resonic Locater) Şimdi en üst seviyede 1. Kök sunucular var. (Root servers) Bunlar şöyle bir ağaç oluşturuyor: TLD (Top level domain) | | -------gTLD (Generic TLD) | | --------------ccYLD(country code TLD) Ülkelere ait domainler. Domainlerle ilgili kuruluş: ICANN'dır. DNS (Domain Name Server) Bir domain alıyoruz. Mesela ns1.isimtescil.net, ns2.isimtescil.net biçiminde bu domaini tescilliyoruz. 173.12.0.2 abc.com +---------+ +---------+ | DNS | | zone | | sunucu |---| | +----|-----+ +-----|---+ | | +----|----+ +-----|----+ | DNS | | | | sunucu | | abc.com | 193.20.10.30 +----|----+ +----------+ | +----|----+ | DNS |III.Farklı lokasyon. | sunucu | +---------+ BIND Üç çeşit DNS sunucusu var. 1. Cahing DNS server. Zone dosyası barındırmaz, sorguları cache yapar. 2. Primary DNS server. Asıl zone kayıtlarının tutulduğu server. 3.Seccondary DNS server. Primary'deki zone kayıtlarını kendisine replike eder. Şimdi Bind 9'u kuralım. sudo apt-get install bind9 Şimdi şu dizinin içine girelim: cd /etc/bind bu dizindeki dosyalar şunlar: @mint /etc/bind $ ls -l toplam 52 bind.keys db.0 db.127 db.255 db.empty db.local db.root named.conf named.conf.default-zones named.conf.local --- kendi domainlerimizle ilgili zone oluşturacağız. named.conf.options --- DNS sunucusuyla ilgili genel konfigürasyonlar burada yapılır. rndc.key zones.rfc1918 Şu adrese bir istek gönderelim: dig @ns1.mku.edu.tr www.mku.edu.tr Hemen cevap aldığımızı alan kaydının çözümlenmesini göreceksiniz. Şimdi şunu yazalım: dig @ns1.mku.edu.tr www.google.com Görüldüğü gibi bu kez bir cevap dönmedi. Çünkü bu DNS recursive olarak yapılandırılmamış, zones olarak yapılandırılmış. İlk DNS ise recursive olarak yapılandırılmış olduğu için hemen bilgi içeren cevap yazmıştı. Demek ki bir DNS yapılandırırken onu recursive olarak değil, zones yapılandırmamız gerekiyor. Aşağıdaki dosyayı açalım: sudo pluma /etc/bind/named.conf zone "abc.com"{ type master; --- tipini veriyorum: master. file "/etc/bind/zones/abc.com.zone"; --- zone dosyasının yolu. }; kaydedip kapatıyoruz. /etc/bind altına zones adlı bir dizin oluşturuyoruz: sudo mkdir zones Şu kopyalamayı yapıyoruz: sudo cp /etc/bind/db.local zones/abc.com.zone Şimdi şu dosyayı açıyoruz: sudo pluma zones/abc.com.zone @ IN SOA localhost.com. root.localhost. ( satırını @ IN SOA abc.com. root.abc.com. ( biçiminde değiştiriyoruz. Şimdi /etc/bind/zones dizinine girelim cd /etc/bind/zones abc.com.zone dosyasını açalım: sudo pluma abc.com.zone TTL (time to live) Fazla olmamalı, optimum güncelleme çok iyi değil. SOA (start of authority) domainin başlangıcı. Root: localhost yerine e-posta girilir. Seri no: Buraya genellikle tarih yazıyoruz. Güncellerke de tarih ile değiştiriyoruz. Refresh: İkincil DNS sunucusu birincil DNS sunucusundan yenilenme olup olmadığını sorar. Retry: Hata olursa, bu kaydı çekmeyi yeniden dene. Expire: Zone kaydının ne zaman expire olacağını sorar. Negative Cache TTL: Bu TTL ikincil DNS sunucu için bu zone kaydını cachesinde saklayacak. abc.com.zone dosyasında üstte soldaki abc.com'u ns1.abc.com yapıyoruz. En alta ise: ns1 IN A 10.47.122.103 ya da ns1 abc.com IN A 10.47.122.103 yazıyoruz. Şimdi bind9'u yeniden başlatalım: sudo service bind9 restart DNS sunucusunu test edelim: dig @127.0.0.1 ns1.abc.com ns2.mysite.com mx -> mail exchanger NS -> name server yine abc.com.zone dosyasını açalım: sudo pluma abc.com.zone aşağıdakileri dosyaya ekleyelim: mail IN A 10.47.112.103 @ IN MX mail.abc.com. www IN CNAME abc.com --- bu, www.abc.com ya da abc.com yazıldığında aynı sunucuya yönlendirir. @ IN TEXT "Yaşasın özgür yazılım" kaydedip kapatalım. DNS sunucusu restart edilmemeli. Zone dosyasında reload edilebilir. bind9'u reload edelim: sudo service bind9 reload abc.com.zone dosyasını yeniden açalım: sudo pluma abc.com.zone Serial kısmını değiştirelim. Serial kısmı tarih ile değiştirilir. 2014082220 --- 2014 yıl, 08 ay, 22 gün, 20 saattir. Serial şöyle oldu: 2014082220 ; Serial DNS sunucuyu tekrar test edelim: dig @127.0.0.1 ns1.abc.com syntax kontrolü yapalım: named-checkconf /etc/bind/zones/abc.com.zone @ IN MX 1 mail.abc.com dig MX gmail.com sudo named-checkconf -z sudo named-checkzone abc.com /etc/bind/zones/abc.com.zone dig @127.0.0.1 ns1.abc.com ns2.mysite.com