31 Mayıs 2017 Çarşamba

19 Mayıs 2017 Cuma

Kayan Pencerelerle Akış Kontrolü



Kayan Pencerelerle Akış Kontrolü

Birden çok çerçevenin aynı anda iletimini sağlar.
Alıcı, W adet çerçeve alacak kadar bir tampon bölge ayırır.
Gönderici, ACK cevabı beklemeden W adet çerçeve gönderir.
ACK mesajı bir sonra alıncak çerçevenin numarasını içerir.
Sıra numarası k bitle
Çerçeveler Modulo 2k ile numaralandırılır.
Pencerenin maksimum büyüklüğü 2k – 1 olacaktır.
Alıcı, akışı durdurmak için Alıcı Hazır Değil (Receive Not Ready – RNR) mesajı göndererek önceki çerçeveleri onaylayıp sonraki çerçeveleri engeller.
İletimi tekrar başlatmak için tkrar ACK mesajı gönderir.
Full-duplex iletişimde herbir veri çerçevesi hem gönderilen çerçevenin numarasını hem de onaylanan çerçeve numarasını içerir.



3 bitlik sıralama numarası kullanılır (0’dan 7’ye kadar)
Sonraki çerçeveler de tekrardan 0’dan 7’ye kadar numaralandırılır.
Gölgelendirilmiş çerçeveler gönderilebilecek çerçeveleri gösterir.
Örnekte gönderici 0 ile başlayan 5 adet çerçeve gönderebilir.
Her bir gönderim sonrası pencere daralır.
ACK mesajı alınca pencere tekrardan genişler.
Dikey çizgi ile gölgeli pencere arasındaki çerçeveler gönderilip henüz onaylanmayanları kapsar.Bu çerçeveler hata ihtimaline karşı onaylanana kadar saklanmalıdır.
Dur ve bekle yöntemine göre daha verimli hat kullanımı söz konusudur.

Kayan Pencere Örnek : 




3 Bitlik sıralama numarası ve maksimum 7 çerçevelik pencere genişliği kabul edilmiştir.

Başlangıçta A ve B, F0 ile başlayan 7 çerçeve iletimi olacağını belirlemektedir.

3 Adet çerçeve (F0, F1, F2) iletildikten sonra A pencereyi 4 adet çerçeveye daraltır ve gönderilen 3 adet çerçeveyi de onay alana kadar saklar.

Pencere 3 ile başlayan 4 adet çerçevenin iletilebileceğini ifade eder.

B, (RR 3) ile 2 dahil olmak üzere gönderilen çerçeveleri aldığını ve 3’den itibaren çerçeveleri beklediğini bildirir.

A mesajı alınca 3 ile başlayan 7 çerçeveyi gönderilebilir hale çeker ve onay gelen çerçeveleri atar.
A daha sonra 3-6 çerçevelerini gönderir.

B bu arada RR4 ile en son 3 nolu çerçeveyi aldığını onaylar ve F4’den F2’ye kadar çerçeveleri alabileceğini ifade eder.

A’ya RR ulaştığında A halihazırda F4, F5 ve F6 yı gönderdiğinden penceresi F7 ile başlayan 4 adet çerçeveyi içerir.


Kaynak : kucukakarsu.net


9 Mayıs 2017 Salı

Rıfat Yazıcı - Mikroişlemciler Ders Kitabı ve Konu Anlatımı



Kitabın İçeriği

1. SAYI SİSTEMLERİ
2. MERKEZİ İŞLEM BİRİMİ (CPU)
3. YARI İLETKEN BELLEKLER
4. BELLEK ADRESLEME VE EMİR TÜRLERİ
5. PARALEL GİRİŞ / ÇIKIŞ
6. SERİ GİRİŞ/ÇIKIŞ
7. CRT DENETLEYİCİLER
8. İKİNCİL S AKLAYICI CİHAZLAR
9. 8088 CPU’ya GENEL BAKIŞ




Kitabı PDF formatında indirmek için TIKLAYINIZ


C Programlama - Örnek Sorular ve Çözümleri 4


myLinkedList() fonksiyonu, "param1" 'in işaret ettiği m1 üyesinde 1 değerini, "param2" 'in işaret ettiği m1 üyesinde 2 değerini ve "param3" 'ün işaret ettiği m1 üyesinde 3 değerini sakladıktan sonra bu yapılar arasında bir dairesel bağlı liste (circular linked list) oluşturur ("param1" 'in işaret ettiği yapı, "param2" 'nin işaret ettiği yapıyı; "param2" 'in işaret ettiği yapı, "param3" 'ün işaret ettiği yapıyı; "param3" 'ün işaret ettiği yapı ise "param1" 'in işaret ettiği yapıyı işaret eder).
Sınav Sorularını PDF formatında indirmek için TIKLAYINIZ



\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
:::::::::::::: ÖRNEK :::::::::::::::::::::
---------main4.c DOSYASININ İÇERİĞİ:-----------
#include <stdio.h>
struct listEntry {
int m1;
struct listEntry *m2;
};
void myCircularLinkedList(struct listEntry *param1, struct listEntry *param2, struct listEntry *param3);
int main ()
{
struct listEntry var1, var2, var3;
myCircularLinkedList(&var1, &var2, &var3);
printf("%d\t%d\t%d\t%d", var1.m1, (var1.m2)->m1, ((var1.m2)->m2)->m1, (((var1.m2)->m2)->m2)->m1);
return 0;
}
--------DOĞRU ÇIKTI:-----
1 2 3 1
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\



Videolu Çözüm ;

C Programlama - Örnek Sorular ve Çözümleri 3


myTranspose() isimli bir fonksiyonu oluşturunuz. Oluşturduğunuz bu fonksyon “rows” adet satıra ve "columns" adet sütuna sahip iki boyutlu "param1" dizisinin transpozunu "param2" dizisinde saklasın.
Programın prototipi soruda verilmiştir. ( Fonksiyon yazılırken sorudan herhangi birşey silinmemesi gerekir. )
Sınav Sorularını PDF formatında indirmek için TIKLAYINIZ



\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
myTranspose() fonksiyonuna ait prototip aşağıdaki gibidir:
void myTranspose(int param1[][3], const int rows, const int columns, int param2[][2]);
myTranspose() fonksiyonu, “rows” adet satıra ve "columns" adet sütuna sahip iki boyutlu "param1" dizisinin transpozunu "param2" dizisinde saklar.
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
:::::::::::::: ÖRNEK :::::::::::::::::::::
---------main3.c DOSYASININ İÇERİĞİ:-----------
#include <stdio.h>
void myTranspose(int param1[][3], const int rows, const int columns, int param2[][2]);
int main ()
{
int myArray1[2][3] = {{1, 2, 3}, {0, -6, 7}};
int myArray2[3][2];
int index1, index2;
myTranspose(myArray1, 2, 3, myArray2);
printf("MATRIS TRANSPOZU:\n");
for(index1 = 0; index1 < 3; index1++){
for(index2 = 0; index2 < 2; index2++){
printf("%d\t", myArray2[index1][index2]);
}
printf("\n");
}
return 0;
}
--------DOĞRU ÇIKTI:-----
MATRIS TRANSPOZU:
1 0
2 -6
3 7
************************************



Videolu Çözüm ;

C Programlama - Örnek Sorular ve Çözümleri 2


Rows adet satıra ve columns adet sütüna sahip myInitialize() fonksiyonu oluşturunuz ve bu fonksiyon param1 dizisinin her bir elemanını , satır ve sütunlarda bulunan elemanların çarpımıyla başlatsın.
Programın prototipi soruda verilmiştir. 

Sınav Sorularını PDF formatında indirmek için TIKLAYINIZ

Soru 2
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
myInitialize() fonksiyonuna ait prototip aşağıdaki gibidir:
void myInitialize(int *param1, const const int rows, const int columns);
myInitialize() fonksiyonu, “rows” adet satıra ve "columns" adet sütuna sahip iki boyutlu "param1" dizisinin her bir elemanını, elamanın satır ve sütun indislerinin çarpımıyla başlatır.
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
:::::::::::::: ÖRNEK :::::::::::::::::::::
---------main2.c DOSYASININ İÇERİĞİ:-----------
#include <stdio.h>
void myInitialize(int *param1, const const int rows, const int columns);
int main ()
{
int myArray[5][5];
int index1, index2;
myInitialize(&myArray[0][0], 5, 5);
printf("GUNCELLENMIS DIZI:\n");
for(index1 = 0; index1 < 5; index1++){
for(index2 = 0; index2 < 5; index2++){
printf("%d\t", myArray[index1][index2]);
}
printf("\n");
}
return 0;
}
---------DOĞRU ÇIKTI:-----
GUNCELLENMIS DIZI:
0 0 0 0 0
0 1 2 3 4
0 2 4 6 8
0 3 6 9 12
0 4 8 12 16
***************************************


Cevap :

Sorunun Videolu Çözümü :

C Programlama - Örnek Sorular ve Çözümleri


Bir dizinin aritmetik ortalaması bulunduktan sonra dizideki elemanlar ortalama değerden daha küçük değere sahipse 1 eksiğine, ortalamadan daha büyük değere sahipse 1 fazlasına güncelleyen bir program yazınız. Programın prototipi soruda verilmiştir.

Sınav Sorularını PDF formatında indirmek için TIKLAYINIZ


\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
SORU 1
myStretch() fonksiyonuna ait prototip aşağıdaki gibidir:
void myStretch(int *param1, const int param2);
myStretch() fonksiyonu, “param1” dizisi içerisindeki elemanların aritmetik ortalamasını bulduktan sonra ortalama değerden daha küçük değere sahip elemanları 1 eksiğine, ortalamadan daha büyük değere sahip elemanları ise 1 fazlasına güncellemelidir. "param2", "param1" dizisi içerisindeki toplam eleman sayısını ifade etmektedir.
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
:::::::::::::: ÖRNEK :::::::::::::::::::::
---------main1.c DOSYASININ İÇERİĞİ:-----------
#include <stdio.h>
void myStretch(int *param1, const int param2);
int main ()
{
int myArray[] = {2, 4, 2, 4, 2, 4};
int index;
myStretch(myArray, 6);
printf("GUNCELLENMIS DIZI: ");
for(index = 0; index < 6; index++){
printf("%d\t", myArray[index]);
}
return 0;
}
---------DOĞRU ÇIKTI:-----
GUNCELLENMIS DIZI: 1 5 1 5 1 5
***************************************************************


Cevap:

Şimdide Çözümü Videolu Olarak Görelim ;



8 Mayıs 2017 Pazartesi

Splay Ağacı Konu Anlatımı - Örnek Çözümü



Splay ağacının temel mantığı en son aranan elemana en kolay ulaşmayı sağlamaktır. Splay Ağacı oluştururken 3 temel kuraldan bahsedilir. Bu kuralları örneklerle beraber inceleyelim. 


(1-5-3-7-6-4-11-0-2)
Sayılarını sırasıyla Splay Ağacına ekleyeceğiz :


1.Adım :

İlk ekleyeceğimiz sayıyı ağaca ekliyoruz.

2.Adım :

2. Eklediğimiz sayı ilk sayıdan büyükse sağ tarafa , küçükse sol tarafa ekleme işlemini yapıyoruz. 5 > 1 olduğu için 5'i 1'in sağ tarafına ekliyoruz.

Ardından Splay ağacının mantığı olan son kullanan elemanı en üste taşıma işlemini yapmamız gerekiyor.. Burada yapılan işleme ZIG denir. Burada Zig Left işlemi uygulanacak... Son elemanı başa ekledikten sonra şeklimiz şu hale gelecek : 


3.Adım :

Bu adımda 3 sayısını ağaca ekleyelim. 5 ' ten küçük olduğu için sol tarafa gidiyoruz.. 5'in sol tarafında 1 var. 3 ile 1 ' i kıyaslıyoruz.. 3 > 1 olduğu için 3'ü 1'in sağ tarafına yerleştiriyoruz. Şeklimiz şu şekilde oluyor : 


Şimdi 3 ' ü en başa geçirmemiz gerekiyor. 3'ün en üste geçmesi için önce sola sonra sağa gitmesi gerekiyor. Bu duruma ZIG-ZAG denir. (Aynı şekilde önce sağa sonra sola gitmeside ZIG-ZAG olarak adlandırılır.)
Son eklenen eleman ZIG-ZAG yapılarak geldiği yere eklenir. Yani örneğimizde 5'in yerine gelir... Ardından kontroller sağlanır... 1 < 3 olduğu için 1 soluna , 5 > 3 olduğu için 5 sağına eklenir. Şeklimiz şu hale gelir : 


4.Adım :

Bu adımda 7 elemanını ağaca ekleyelim. En üstten kontrole başlayalım. 7 ile 3 ü kıyasladığımızda 7 > 3 olduğunu görüyoruz. 3'ün sağ tarafına gidiyoruz. Sağ tarafta 5 var.. 7 ile 5 ' i kıyaslıyoruz. 7 > 5 olduğu için 7' yi 5'in sağ tarafına ekliyoruz. Şeklimiz şu hale geliyor :


Şimdi sırada 7'yi en üste taşıma işlemi var. Burada dikkat ederseniz 2 kez sola kayarak en üste gelmesi gerekiyor. Bu işleme ise ZIG-ZIG yöntemi denir. (2 kez sağa gelme işlemi de ZIG-ZIG)
ZIG-ZIG yönteminde öncelikle 5 elemanı başa geçer. 5 elemanı başa geçer. 5 başa geçince solunda sırası ile 3 ve 1 sağında ise 7 elemanı bulunacaktır. 
Ardından 7 elemanımız başa geçer ve şeklimiz şu hale gelmiş olur :  


5.Adım :

Bu adımda 6 elemanını elemanını Ağacımıza ekleyelim. 6 yı kontrol ettiğimizde 5 elemanının sağ tarafına eklememiz gerektiğini görüyoruz. Şeklimiz şu hale geliyor :


Şimdi 6 ' nın en başa geçmesi gerekiyor. 6 en başa geçmek için önce sola sonra sağa gitmesi gerek. Yani ZIG-ZAG yöntemi uyguluyoruz. ZIG-ZAG yöntemi uyguladıktan sonra şeklimiz : 


6.Adım :

Bu adımda ise önce ZIG-ZAG ardından ZIG işlemi yapmamız gereken bir eleman ekleyelim. Hangi elemanı eklersek bu işlemleri gerçekleştirmek zorunda kalırız? Tabii ki 4 :) 4' ü ağacımıza ekleyelim :


4 elemanını ağacımıza ekledikten sonra öncelikle ZIG-ZAG işlemi yapmamız gerekiyor. Önce sola sonra sağa gidip 5 ' i yerinden ediyoruz :) Şeklimiz şu hale gelmiş oluyor :


Şimdi ise ZIG işlemi yaparak tahtımıza 4 elemanını oturtuyoruz . Ağacımızın yeni şekli şöyle olmuş oluyor : 


Basit bişeyi hatırlatayım . Belki anlayamayan , dikkat edemeyen birkaç kişi çıkar diye söyleme ihtiyacı duydum. Burada 5 sayısı 4 ten büyük olduğu için 4'ün sağ tarafına , 6 ' nın sol tarafına eklendi. Bazen arkadaşlar dikkatsizlik yapıp 3'ün sağ tarafına ekliyor. Tüm ağaç sistemi bozuluyor :)


7.Adım :

Şimdi de önce ZIG-ZIG ardından ZIG işlemi yapmamız gereken bir sayı ekleyelim ağacımıza. Bu sayıda tabii ki 7 ' den büyük herhangi bir sayı olabilir.. Biz 11'i ekleyelim.. 11 ' i ağacımıza eklediğimizde şeklimiz : 


Şimdi 11 ' i başa geçirmek için öncelikle ZIG-ZIG işlemini gerçekleştirelim. ZIG-ZIG işlemini gerçekleştirdiğimizde öncelikle 7 , 6'nın yerine geçecek.. 6 ve 5 , 7'nin solunda , 11 ise sağında olacak . Ardından 11 ' de 7 nin yerine geçecek ve şeklimiz şu hale gelmiş olacak : 


Son olarak 11 ' i tahta geçirme vaktimiz geldi :) Tahta geçen sayının tahtı devraldığı sayı ile bağı asla kopmaz. Dolayısıyla şeklimiz şu hale gelmiş oluyor. 



8.Adım :

Şimdi de 2 adet ZIG-ZIG yapmamız gereken bir sayı ekleyelim. Bu sayı da 0 olsun. 0 ' ı ağacımıza eklediğimizde şeklimiz şu hale gelmiş olacak : 


İlk ZIG-ZIG işlemimizde şeklimiz :



İkinci ZIG-ZIG işlemimizde 0 tahta geçer ve şeklimiz şu şekilde olmuş olur:



9.Adım :

Bu seferde 2 kez ZIG-ZAG yöntemi izleyeceğimiz bir sayı ekleyelim.. 2 sayısını ağacımıza eklediğimizde :


2 sayısının tahta geçmesi için 2 kez ZIG-ZAG yapması gerek... İlk ZIG-ZAG'da 1' in yerini , ikinci ZIG-ZAG'da ise tahtı ele geçirecek. İlk ZIG-ZAG ' ın sonucunda ağacımız :


İkinci ZIG-ZAG'dan sonra ağacımız :


Şimdi siz :

Ağaca öncelikle 13 elemanını ekleyin (13 Eklendikten sonra Splay Ağacı)

Ardından 21 elemanını ekleyin (21 Eklendikten sonra Splay Ağacı)

Ardından 12 elemanını ekleyin (12 Eklendikten sonra Splay Ağacı)

Ardından 17 elemanını ekleyin (17 Eklendikten sonra Splay Ağacı)

ve son olarak 

14 elemanını ağaca ekleyin (14 Eklendikten sonra Splay Ağacı)



Bilgisayar Ağları - Geleneksel İnternet Uygulamaları - 2



Bir programcı , bir ağ üzerinde iletişim kuran iki uygulama oluşturulduğunda, programcı aşağıdaki detayları belirler.

1. Değiş-tokuş edilebilecek mesajların sözdizimi ve anlam bilimi
2. İletişimi istemcinin mi sunucunun mu başlatacağı bilgisi
3. Bir hata oluşması halinde gerçekleşecek işlemler
4. Her iki tarafında iletişimi nasıl sonlandıracağını nasıl bileceği bilgisi

World Wide Web , İnternet üzerinde en çok kullanılan hizmetlerden biridir. Web oldukça karışık olduğu için detayları beliirlemek için bir çok protokol standartı tasarlanmıştır. WWW' in kullandığı 3 anahtar standart sırasıyla ;

HTML : Bir web sayfasının içeriğini ve düzenini belirlemek için kullanılan temsil standartıdır.
URL : Bir web sayfası tanımlayıcının format ve anlamını belirleyen temsil standartıdır.
HTTP : Bir tarayıcının , veriyi transfer etmek için bir web server ile nasıl iletişim kurduğunu belirleyen bir transfer protokolüdür.

HTML , web sayfalarının bir temsil standartıdır. Bir sayfayı, herhangi bir cihaz üzerinde göstermeye izin vermek amacıyla HTML görüntü için gelen anahatları verir bir tarayıcının detayları seçmesine izin verir.

URL, (Uniform Resource Locator), İnternet'te bir kaynağa (belge veya resim gibi) rastgelen, standart bir formata uygun bir karakter tertibidir.



HTTP'nin açılımı “Hyper Text Transfer Protocol” yani “Hiper Metin Transfer Protokolü“dür. 1990 yılından beri dünya çapında ağ üzerinde (www-world web wide) kullanılan bir iletişim protokolüdür. HTTP protokolü ağ üzerinden web sayfalarının görüntülenmesini sağlayan protokoldür.

HTTP'de kullanılan durum kodu örnekleri şunlardır :

200 - OK (Tamam)
400 - BAD (Kötü Talep)
404 - Not Found (Bulunamadı)

Bir tarayıcı , kullanıcının diskindeki bir önbellekte her görüntünün bir kopyasını depolayıp bu önbelleklenmiş kopyayı kullanarak indirme zamanını önemli biçimde azaltabilir.

FTP (File Transfer Protocol) internete bağlı bir bir bilgisayardan diğerine (her iki yönde de)dosya aktarımı yapmak için geliştirilen bir internet protokolü ve bu işi yapan uygulama programlarına verilen genel addır. FTP ilk geliştirilen internet protokollerinden biridir. FTP protokolü ile ;1) Bir başka bilgisayardan bir başka bilgisayara dosya aktarımı yapılırken, o bilgisayar ile etkileşimi aynı anda bağlantı kurulur 2) Protokol ile sağlanan bir dizi komutlar yardımıyla iki bilgisayar arasında dosya alma/gönderme işlemleri yapılır.

FTP Yapmak İçin Nelere İhtiyaç Var?
 - Bağlanacağımız bilgisayarın internet adresi,
- Bağlanacağımız bilgisayarda dosyalara ulaşmak istediğimiz hesapla ilgili kullanıcı numarası, varsa şifresi,
- İnternet erişimi olan,üzerinde FTP yazılımı bulunan bilgisayar
- Bağlanacağımız bilgisayarda, FTP protokol komutlarını yorumlayacak çalışır durumda bir FTP servis programı yani FTP sitesi gereklidir.

DNS (Domain Name System - Alan Adı Sistemi) insanlar tarafından okunabilen sembolik isimleri bilgisayar adresine çeviren hizmeti sağlar. Tarayıcılar, posta yazıcıları ve internet kullanan uygulamaların büyük çoğunluğu DNS kullanır.



DNS, kolay anlaşılabilir ve kullanılabilir makine ve alan isimleri ile makine IP adresleri arasında çift taraflı dönüşümü sağlar. IP adreslerinin gündelik hayatta kullanımı ve hatırlanması pek pratik olmadığı için domain isimlendirme sistemi kullanılır. Ana amacı, ağ uzerinden gelen alan adı veya IPnumarası ile ilgili sorgulamalara yanıt vermektir. Bu amaç için cok yaygın olarak "Berkeley Internet Name Domain (BIND)" yazılımı kullanılmaktadır. Siz bir siteye erişmek istediğinizde, DNS sayesinde hangi site nerde , hangi IP hangi bilgisayara ait olduğu belirlenir, ve istediğiniz yere erişirsiniz.


Konuları özetleyecek olursak ;


Standart servisler için gerekli olan uygulama-katmanı protokolleri veri temsillerini ve iletişimin veri transfer hususlarını tanımlar. WWW ile kullanılan temsil protokolleri HTML ve URL standartlarını içermektedir, http olarak bilinen web transfer protokolü, bir tarayıcının herhangi bir içeriğini indirmek ya da yüklemek için bir web sunucu ile bir tarayıcının nasıl iletişim kuracağını belirler. İndirmeleri hızlandırmak için, bir tarayıcı sayfa içeriğini önbelleğe alır ve bir HTTP HEAD komutunu, sayfa hakkındaki durum bilgisini talep etmek için kullanır.

Önbelleğe alınmış versiyon güncel kalırsa tarayıcı ön­belleğe alınmış versiyonu kullanır; yoksa tarayıcı taze bir kopyayı yükleyebilmek için bir CET talebinde bulunur. HTTP metin mesajları kullanır. Bir sunucudan alınan her cevap bu cevabı anlatan bir başlık ile başlar. Başlıktaki satırlar ASCII basamakları ile ifade edilen ve durumu (ör. bir talepte hata bulunup bulunmadığı) anlatan bir nümerik değer ile başlar. Başlığı takip eden hata, keyfi ikilik değerler içerebilir.

 FTP geniş dosya indirmeleri sağlar. FTP bir istemcinin sunucunun sistemine giriş yapabilmesine ihtiyaç duyar. FTP açık dosya erişimleri için anonim giriş ismini ve konuk parolasını destekler. FTP’nin en ilginç özelliği, bağlantıların alışılagelmedik kullanım­larından kaynaklanır. Bir istemci, bir komut dizisi göndermek için kullanılan bir kontrol bağlantısı oluşturur. Bir sunucunun bir veri göndermesi gerektiğinde (bir dosya indirme ya da dizinin listelenmesi gibi), sunucu bir istemci gibi, istemci de bir sunucu gibi davra­nır. Çünkü sunucu, istemciye bir veri bağlantısı başlatır. Tekil bir dosya bir kez gönderil­diğinde veri bağlantısı kapatılır. Uygulama-katmanı protokollerinin üç türü elektronik posta ile birlikte kullanılır: transfer, temsil ve erişim.

 SMTP anahtar transfer standardı olarak davranır; SMTP yal­nızca metinsel mesaj transfer edebilir. E-posta için iki temsil standardı vardır: RFC 2822 posta mesaj formatım boş bir çizgi ile ayrılacak şekilde başlık-gövde olarak ayırır. MİME standardı, ikilik dosyalar, bir e-posta mesajına eklenti olarak ekleyebilmek için bir me­kanizma tanımlar.

MIME mesajın nasıl yorumlanacağını anlatan ekstra başlık dosyaları yerleştirir. MIME bir dosyayı yazdırılabilir bir metin şeklinde kodlamak için bir gönde­riciye ihtiyaç duyar. POP3 ve IMAP erişim protokolleri bir kullanıcının bir posta kutusuna erişmesine izin verir. Erişim popüler hale gelir çünkü bir sağlayıcı, bir ISP’ye bir e-posta sunucusuna Çalıştırmasına ve kullanıcının posta kutusunu aynı şekilde korumasına izin verir.

 DNS insanlann okuyabileceği isimlerden bilgisayar adreslerine otomatik bir geçiş sağlar. DNS her biri isim uzayının bir kısmını kontrol eden pek çok sunucu içermektedir. Sunucular bir hiyerarşi içinde düzenlenmiştir ve bir sunucu bu hiyerarşideki sunucuların lokasyonlarını bilmektedir.

 DNS önbelleğe almayı verimlilik için kullanır; bir otoriter sunucu bir cevap sağladı­ğında cevap transfer eden her sunucu kendi önbelleğinde de bir kopya tutar. Önbelleklenmiş kopyaları bozulmaktan korumak için, bir isim için otoriteler ismin hangi uzunlukta önbelleklenebileceğini belirler.


Bilgisayar Ağları - Ağ İletişimi ve Uygulamalarına Giriş - 1




Bilgisayar ağları , etkileyici bir şekilde büyümeye devam etmektedir. 1970'lerde bilgisayar iletişimi küçük bir grupça ele alınan bir araştırma konusu iken günümüzde herkesin hayatında bir yere sahip olacak kadar büyümüş ve gelişim göstermiştir.

1980 yıllarında dünya üzerinde yaklaşık birkaç düzine kadar ineternet sitesinin oluşturduğu araştırma projesiyken günümüzde bu sayı milyonları geçmiştir. 

Bilgisayarlar arası iletişimin temel taşı Paket Anahtarlama kavramına dayanmaktadır. Paket anahtarlama yöntemi ile veri ' paket ' adı verilen küçük bloklara bölünerek alıcıya ait bilgiler bu pakete yerleştirilir. Yol boyunca paketlerin üzerinde bulunan adresleri kontrol eden cihazlar yerleştirilmiştir. Paket bu cihazlara ulaşınca cihaz paketin adresini kontrol eder ve paketi ulaşması gereken adresin yoluna koyar. Bu şekilde paket gerekli adrese ulaşmış olur.

Teoride paket anahtarlama yöntemi oldukça basit ve açıktır. Bununla birlikte , bazı temel soruların cevaplarına göre pek çok tasarım mümkün olabilir. Bu sorulardan bazıları ;

  1. Bir hedef nasıl tanımlanmalıdır ve bir gönderici bir alıcının adresini nasıl bulacaktır?
  2. Paketlerin büyüklükleri ne olmalıdır?
  3. Bir ağ , gönderilen paketin bittiğini ve yeni gelecek paketin başladığını nasıl anlar?
  4. Bir ağ üzerinden pek çok paket gönderiliyorsa bu paketler adil bir şekilde nasıl gönderilebilir?
Bu gibi sorular arttırılabilir..

Her ağ teknolojisi , hız , mesafe ve ekonomik değer gibi çeşitli gereksinimleri karşılamak için oluşturulduğundan , pek çok paket anahtarlama teknolojisi mevcuttur. Teknolojiler, paket boyutları ve alıcıyı tanımlamak için kullanılan yöntemler gibi detaylarda farklılık gösterebilirler.

1970'lerde bilgisayar ağları konusunda devrim yaşanmıştır. İnternet kavramı... Paket anahtarlama konusunda çalışma yapan pek çok araştırmacı tüm ihtiyaçları karşılayan tek bir paket anahtarlama yöntemi üzerinde çalışmıştır. Tüm ihtiyaçları karşılayacak bir paket anahtarlama yöntemi yerine bir çok paket anahtarlama yöntemini bir araya getirerek yeni bir paket anahtarlama yöntemi teknolojisi oluşturmaya karar vermişlerdir. Araştırmacılar , bu tip bir birleşim için bir standartlar kümesi geliştirmeyi önermişlerdir ve sonuçta ortaya çıkan standartlar TCP/IP olarak adlandırılmıştır. TCP/IP , Global İnternetin temelini oluşturmuştur ve ağ iletişiminin önemli bir parçasını oluşturmaktadır.

Özetleyecek olursak ;

İnternet Çoklu paket anahtarlama ağlarının birleştirilmesi ile oluşturulmuştur. Yaklaşım , eski teknolojilerin tamamının yerine geçmesine gerek duymadan yeni teknolojilerin entegre olmasını sağladığı için çok güçlü bir teknolojidir.

İnternet , tekil bir iletişim sistemi gibi  davranmasına karşın esasında bireyler veya organizasyonlar tarafından sahiplenilen çeşitli parçalardan oluşmaktadır. Sahiplik durumu ve kullanım amaçlarını açık bir şekilde ifade etmek için internet "Genel Ağ" ve " Özel Ağ " olarak 2 ' ye ayrılmıştır.

Genel ağ , bir servis sağlayıcının sahip olduğu ve abonelik bedeli ödeyen kişi yada organizasyonlara hizmet sunan ağdır.

Buradaki genel terimi bir servisin halka açık olduğunu ifade eder. Yani bu serviste transfer edilen veriler , dışarıdaki kişiler tarafından erişilemez ve ortaya çıkarılamaz.

Özel ağ , özel bir grup tarafından kontrol edilen ağdır. Yani örnek vermek gerekirse , eğer bir firma bir sağlayıcıdan bir veri devresi kiralarsa ve bu firmanın kullanımını sadece firma trafiği olacak şekilde kısıtlarsa bu devre , o firmanın özel ağı olmuş olur. Özel ağ , tek bir müşteriye , küçük bir ofise , geniş ölçekli kurumlara hizmet verebilir..

Ünite Sonu Soruları
1. İnternetin yakın yıllardaki büyümesinin sebepleri nelerdir?

2. Bilgisayar ağları konusuna bağlı olan 10 endüstriyi listeleyin.

3. İnternetin mimarisini ve teknolojilerini anlamadan, internet uygulamaları geliştirmek mümkün müdür? Cevabınızı örneklerle destekleyin.

4. Veri iletişimi, ağ iletişiminin hangi hususlarını ifade etmektedir?

5. Paket-anahtarlama nedir ve paket-anahtarlama neden İnternet ile ilgilidir?

6. Intenetin kısa bir tarihçesini, ne zaman ve nasıl başladığını ifade ederek anlatın.

7. Birlikte çalışabilirlik nedir ve İnternet için neden özel bir önemi vardır?

8. İletim protokolü nedir? Kavramsal olarak, bir protokolün belirlediği iki adet iletim hususu nelerdir?

9. Bir protokol ailesi nedir ve bir ailenin avantajları nelerdir?

10. TCP/IP katmanlama modelini açıklayın ve nasıl türetildiğini anlatın.

11. TCP/IP modelinin katmanlarını listeleyin ve her biri hakkında kısa bir açıklama verin.

12. Katmanlı bir protokol yığıtı üzerinden bir veri geçerken başlıkların nasıl eklendiğini ve çıkarıldığını açıklayın.

13. Veri iletişimi ve bilgisayar ağlan için standartları belirleyen ana standartlaştırma kuruluşlarını listeleyin.