TCP / IP Protokol Grubu Tarihçesi
TCP/IP protokol grubu 1970 ’lerin ortasında, Stanford Üniversitesi, Bolt Beranek ve Newman (BB&N) tarafından geliştirilmiştir. Geliştirme , DoD (Department of Defence) ‘in Advanced Research Projects Agency (DARPA) bölümü tarafından desteklenmiştir. DARPA, ARPANET (Advanced Research Projects Agency NETwork) adı verilen ve devlet kuruluşları, üniversiteler ve araştırma kurumlarını paket bağlaşmalı ağlarla birbirine bağlama projesi üzerinde çalışmıştır. TCP / IP protokol grubu bu amaca yönelik olarak geliştirilmiştir.
1978-1979 ‘lu yıllarda TCP / IP protokol grubunun büyük bir kısmı tamamlanmış ve DARPA 1980 ’lerde internet protokolünü ARPANET birimlerine yüklemeye ve kullanmaya başlamıştır. 1983 yılının ocak ayında, DARPA, ARPANET ’e bağlanan tüm ağların internet kullanmasını zorunlu tutmuştur. İnternetin büyümesi ve kullanımı ile ARPANET, küçük-paket bağlaşmalı ağlardan, noktadan-noktaya telefon bağlantılarla hibrid ağlara dönüşmüştür. ARPANET terimi kullanılmaya devam etmektedir ve DoD ’nin araştırma-geliştirme amacı ile internetin bir parçası olarak uygulanmaktadır.
Internet Architecture Board (IAB) adındaki bir organizasyon, şu anda internet araştırmalarını organize etmektedir. IAB, DARPA tarafından kurulan ve internet araştırmalarını teşvik etmeye yönelik bir kuruluştur. Her IAB grubu internet konularının bir parçası üzerinde çalışır. Bu çalışmaların sonuçları genellikle internetin işlevsel bir parçası haline gelir.
Şu anda internet üzerinde çalışan birçok protokol ve uygulama, Request For Comments (RFC) adı verilen ve günümüzde sayıları ikibine gelen bir dizi teknik rapor ile belgelenir. RFC kitaplığının bakımı ve jüriliğini yapma görevi, Menio Park, Kaliforniya ’da bulunan Network Information Center (NIC) tarafında yürütülür.
İnternet protokolünü konu alan her dokümanda Unix Berkeley Software Distrubition (BSD) ve internet protokol birleşmesinin önemi vurgulanır. 1982 ’de, Unix BSD işletim sistemi üniversitelerin bilgisayar bölümlerinde çok popüler olan bir işletim sistemiydi. Ağ standardı olarak interneti kabul etmiştir. Unix BSD-internet birleşimi, her ikisininde popülaritesini arttırmış ve bu durum günümüze kadar devam etmiştir.
ABD, kendi denetimi altında bulunan internet protokolü parçasının OSI referans modeli ile uyumlu olması için Government Open System Interconnection Profile (GOSIP) ile değiştirilmesini istemiştir. Buna rağmen TCP / IP ’nin ticari kullanımı büyüyerek devam etmiştir.
TCP / IP protokollerinin kullanımla nedenleri:
TCP / IP protokolleri belirli hedeflerin gerçekleştirilebilmesi için geliştirilmişlerdir. Bu hedefleri oluşturan talepler şunlardır:
- Üreticiden bağımsız tüm ürünleri içine alan bir kapsamda, sistemleri birbiriyle görüştürme (IBM, DEC, Sun, HP vb..)
- Tüm ölçekteki bilgisayarları birbirleriyle görüştürme (ana bilgisayarlar, mini bilgisayarlar, iş istasyonları, PC ’ler, hand-held bilgisayarlar hatta cep telefonları)
- Unix sistemlerine tam uyumluluk
- Birçok OSI 1. ve 2. Katman protokollerinin desteklenmesi (Ethernet, Token-ring, FDDI vb..)
TCP / IP protokol grubuna genel bakış:
Aşağıdaki şekilde TCP / IP protokol grubu içerisinde yer alan temel protokoller gösterilmiştir.
TCP / IP protokol grubu, OSI referans modeli hazırlanmadan önce oluşturulmuştur.
TCP / IP protokol grubu DoD modelini referans alır ve DoD modeli OSI modelinden farklı yapıdadır.
TCP / IP Protokol Grubu
| ||||
IP Adresleme
|
Ağ Arayüz Katmanı
|
İnternet Katmanı
|
Aktarım Katmanı
|
Uygulama Katmanı
|
Alt Ağlar
|
Ethernet
|
IP
|
UDP
|
FTP
|
Yayın
|
Token-Ring
|
ICMP
|
TCP
|
TELNET
|
Çokluyayın
|
FDDI
|
ARP
|
SMTP
| |
ATM
|
RARP
|
DNS
| ||
SNMP
|
TCP / IP protokol grubunun referans aldığı DoD modeli 4 ayrı katmandan oluşur. Bu katmanların OSI modelindeki karşılıkları aşağıdaki şekilde gösterilmiştir:
OSI Modeli Katmanları:
|
DoD Modeli Katmanları:
| ||||
7
|
Uygulama
|
Uygulama
| |||
6
|
Sunum
|
4
| |||
5
|
Bağlantı
| ||||
4
|
Aktarım
|
3
|
Aktarım
| ||
3
|
Ağ
|
2
|
İnternet
| ||
2
|
Veri-Bağlantı
|
1
|
Ağ Arayüz
| ||
1
|
Fiziksel
|
DoD modeli katmanlarına genel bakış:
Ağ Arayüz Katmanı:
DoD modelinin en alt katmanıdır. Fiziksel iletişim ortamı üzerinden çerçeveleri (frame’leri) hedefe gönderen katmandır. OSI modelinde fiziksel katman ve veri-bağlantı katmanlarının ikisine birden karşılık gelir.
İnternet Katmanı:
DoD modelinin 3. katmanını oluşturur. OSI modelindeki Ağ katmanına karşılık gelir. Host’tan host’a haberleşmenin sağlanmasından sorumludur. Yol belirleme algoritmaları [routing algorithms (distance vector, link state)] bu katmanı kullanırlar.
Aktarım Katmanı:
DoD modelinin 2. katmanıdır. Farklı birimler üzerindeki uygulamaların birbirleriyle görüştürülmesinden sorumludur. Veri paketleri içine kimlik bilgileri burada yerleştirilir ya da çözülür. Aktarım katmanı karşılıklı işlem bazında görüşme sağlar. TCP / IP protokol grubunda bağlantısız servis veren (connectionless) UDP ile bağlantılı servis veren (connection-oriented) TCP bu katmanın protokolleridir.
Uygulama Katmanı:
DoD modelinin en üst katmanını oluşturur. TELNET, FTP, DNS, SMTP ve SNMP gibi TCP / IP protokolleri bu katmanda çalışır.
DoD modeli katmanları ve bu katmanlarda kullanılan protokoller:
Uygulama
|
TELNET
|
FTP
|
SMTP
|
DNS
|
SNMP
| ||||||
Aktarım
|
TCP
|
UDP
| |||||||||
İnternet
|
I P
|
ICMP
|
ARP
|
RARP
| |||||||
Ağ Arayüz
|
Ethernet
|
ATM
|
Token Bus
|
Token Ring
|
FDDI
|
Ağ Arayüz Katmanı Protokolleri:
Ağ arayüz katmanı protokolleri LAN ortamına hangi kurallar dahilinde erişileceğini belirlerler.
Ethernet Protokolü [IEEE standartı (802.3)]:
Bus (kılçık) topolojisinde kullanılır. Ethernet Protokolünün çalışma yönteminin adı CSMA / CD (Carrier Sense Multiple Access / Collision Detection) ‘dir. Carrier Sense; ağ üzerinde her bilgisayarın hattı dinlemesi yani veri transferi yapıp yapmadığını anlaması demektir. Eğer hat boşsa istenilen veri transfer edilir. Ancak hattı dinleme ağdaki tüm bilgisayarların yaptığı bir şeydir. Multiple Access ifadesi buradan gelir. Bir bilgisayar hattı dinlerken diğer bir bilgisayar da hattı dinliyor olabilir. Aynı anda birden fazla bilgisayar hattın boş olduğunu fark edip paketlerini gönderirlerse networklerin önemli bir sorunu olan çarpışmalar (collision) ortaya çıkar. Bir çarpışma olduğunda paketler bozulur ve yeniden gönderilmeleri gerekir. Ethernetin çarpışma algılama özelliği sayesinde bu anlaşılır ve aynı paketi göndermek için rasgele bir süre beklenir. Böylece ikinci bir çarpışma olasılığının azaltılması hedeflenmiştir. Ancak bu olasılık hiçbir zaman sıfıra inmez bu nedenle çok kullanılıcılı ağlarda Ethernet Protokolü kullanılmaz. Aşağıda kullanılan iletim ortamı, modülasyon tekniği ve hızlar tablo şeklinde gösterilmiştir.
İletim Ortamı
|
Modülasyon Tekniği
|
Veri Hızı (Mbps)
|
Koaksiyel Kablo (50 W )
|
Temelband (Manchester)
|
10
|
Koaksiyel Kablo (50 W )
|
Temelband (Manchester)
|
10
|
UTP
|
Temelband (Manchester)
|
1
|
UTP
|
Temelband (Manchester)
|
10
|
Koaksiyel Kablo (75 W )
|
Genişband (DPSK)
|
10
|
Token Bus (IEEE 802.4):
Bus topolojisinde kullanılır. Özellikle fabrika otomasyonunda kullanılır. İlk olarak IEEE 802 standartı geliştirilirken General Motors‘ta kullanılmıştır. Token Bus’ta istasyonlar ağaç şeklinde veya lineer bir kabloya istasyonlar bağlanmıştır. İstasyonlar, herbir bilgisayar sağındaki ve solundaki istasyonun adresini bilecek şekilde lojik olarak bir ring şeklinde organize edilmiştir.
Lojik ring çalıştırıldığında ilk çerçeveyi en yüksek numaralı istasyon gönderebilir. Bu gerçekleşince token denilen özel kontrol çerçevesini hemen yanındaki komşu istasyona göndererek, yolu kullanma iznini komşusuna devreder.
Token, lojik ring üzerinde döner. Sadece token’a sahip olan istasyonun çerçeve gönderme izni vardır. Bir anda sadece bir istasyon token’a sahip olabileceğinden çarpışma olması mümkün değildir. Burada istasyonların fiziksel bağlanma sıraları önemli değildir. Aşağıda basit bir Token Bus şekli gösterilmiştir:
Aşağıda Token Bus’ta kullanılan iletim ortamı, modülasyon tekniği ve hızlar tablo şeklinde gösterilmiştir:
İletim Ortamı
|
Modülasyon Tekniği
|
Veri Hızı (Mbps)
|
Koaksiyel Kablo (75 W )
|
Genişband (AM / PSK)
|
1, 5,10
|
Koaksiyel Kablo (75 W )
|
Genişband (FSK)
|
1, 5, 10
|
Fiber Optik
|
ASK – Manchester
|
5, 10, 20
|
Token Ring (IEEE 802.5)
Halka topolojisinde kullanılır. Token Ring’te token denen özel bir bit konfigürasyonu halkada döner. Bir istasyon veri göndermek istediğinde token’ı halkadan çıkarmak zorundadır. İstasyon verisini yolladıktan sonra bu veriyi alan istasyon veri yollamayacaksa halkaya yeni bir token yollar ve bu token halkada dönmeye devam eder. Halkada bir token olduğundan yalnız bir istasyon veri yollayabilir.
Token Ring’te kullanılan iletim ortamı, modülasyon tekniği ve sistemin hızı aşağıdaki tabloda verilmiştir:
İletim Ortamı
|
Modülasyon Tekniği
|
Veri Hızı (Mbps)
|
STP
|
Diferansiyel Manchester
|
1 - 4
|
Aşağıda Token Ring tipi bir network şekli gösterilmiştir:
FDDI (Fiber Distributed Data Interface):
Kullanılan fiber optik kablo sayesinde yüksek hızlarda çalışan (100 Mbps’nin üzerinde) token ring LAN’dır. FDDI kablolamada çift kablolama tekniği kullanılır. Bu durumda bir taraf saat yönünde iletim yaparken diğer taraf saatin tersi yonünde iletim yapar. FDDI ‘da A ve B sınıfı olmak üzere iki istasyon vardır. A sınıfı istasyonlar hayati önemli veriler ilettiğinden her iki fibere de bağlanır. B sınıfı istasyonlar ise fiberlerden sadece birine bağlanır.
FDDI ile IEEE 802.5 Token Ring’in bir farkı vardır. 802.5’te bir istasyon yolladığı paket yerine gidip geri gelene kadar yeni token üretemezken FDDI’da istasyonun yeni bir token üretmek için eski token’ın geri gelmesini beklemesine gerek yoktur.
İnternet Katmanı Protokolleri:
IP (İnternet Protokolü):
Temel olarak datagram paketleri için bir iletim yolu belirleme işlevini yerine getirir. IP’nin sağladığı fonksiyonlar şunlardır:
- Global adresleme yapısı
- Servis isteklerini tiplendirme
- Paketleri iletim için uygun parçalara ayırma
- Hedef alıcıda paketleri tekrar birleştirme
TCP ile IP arasında basit bir ilişki vardır. TCP hedef bilgisi bulunan segmenti IP ‘ye verir. IP bu segmenti alır herhangi bir diğer datagram veya segmentten önce veya sonra hedef host’a iletim için bir yol belirler.
IP’nin sorumluluğu üst katmandan gelen segment ya da datagramları birbirine bağlı ağlar üzerinden iletmektir. IP bu segment ve datagram bilgilerini TCP’den veya UDP’den alır.
Segment ile Datagram arasındaki fark:
Aktarım katmanında UDP‘nin oluşturduğu veri bütününe “datagram”, TCP’nin oluşturduğu veri bütününe “segment” adı verilir. İkisi arasındaki temel fark, segmenti oluşturan veri grubunun başında sıra numarası bulunmasıdır.
Her bir datagram veya segment IP tarafından kendi başlığı eklenerek IP paketi haline getirilir ve herbir IP paketi birbirinden bağımsız olarak hedef hosta gönderilir.
IP’nin temel özellikleri şunlardır:
- Paketler üzerinde çok sınırlı hata kontrolü vardır. IP 16 bitlik başlık hata kontrolü (checksum) sağlar. Bu IP paketini alan hostun IP başlığında bir bozulma oluşup oluşmadığını kontrol etmesini sağlar.
- Onay (acknowledge) mekanizması kullanmaz.
- Verinin internet katmanına bozuk ulaştığını değerlendirip yeniden gönderimi sağlayabilecek fonksiyona sahip değildir. Bu görev bir üst katmandaki TCP’de yapılır, TCP’nin kullanılmadığı durumlarda daha üst katman protokollerince yerine getirilir.
- Akış kontrol ve paket sıralama mekanizmalarına sahip değildir. Yine bu fonksiyonlar gerektikçe daha üst katman protokollerince yapılır.
- IP bağlantısız paket dağıtım servisi sunar.
Protokoller arası çoğullama (Demultiplexing)
Tek bir haberleşme kanalı üzerinden birden fazla farklı aktarım ve daha üst katman protokolü taşınabilmektedir. Bu olaya “Multiplexing” denilmektedir. Bu tek kanaldan iletilen protokollerin hedef host üzerinde katmanları tırmanırken uygun şekilde ters işleme tabi tutulması gereklidir. Yani her protokol kendini ilgilendiren protokol kanalına sevk edilmelidir. Bu olaya da “demultiplexing” denir.
Örneğin ethernet protokolü, ethernet çerçevesi içerisindeki tür kısmına bakıp, öncelikle çerçevede kullanılan protokolün TCP / IP protokol grubuna ait olup olmadığını anlar. Eğer TCP / IP protokol grubuna ait ise bu ethernet verisini hangi ağ katmanı protokolüne göndereceğine karar verir. (IP, ARP, RARP) Daha sonra o protokol kanalına paketi yönlendirir. Benzer şekilde eğer IP protokolüne gelen paket üst katmanda TCP ya da UDP protokollerinden birisine gönderilir.
IP paket formatı:
IP paketi IP paket özelliklerini tanımlayan bir başlık bilgisi ve IP verisinden oluşur. IP verisi üst protokollere ilişkin başlık ve verileri içerir.
IP paket formatı
| |
IP başlığı
|
IP verisi
|
Version
|
IHL
|
TOS
|
Toplam uzunluk
| ||||||||||||||||||||||||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
32
|
Kimlik bilgisi
|
Bayrak
|
Parçalanma ötelemesi
| |||||||||||||||||||||||||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
32
|
TTL
|
Protokol
|
Başlık kontrolü
| |||||||||||||||||||||||||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
32
|
Kaynak Adresi
| |||||||||||||||||||||||||||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
32
|
Hedef Adresi
| |||||||||||||||||||||||||||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
32
|
Seçimlik
|
Doldurma biti
| ||||||||||||||||||||||||||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
32
|
DATA
|
IP başlığındaki alanların açıklamaları:
Sürüm (Version):
İnternet başlığının sürümünü verir. Halen sürüm 4 kullanılmaktadır.
IHL (Internet Header Length) İnternet Başlık uzunluğu:
İnternet başlığının toplam uzunluğunu sabit olmadığından IHL internet başlık uzunluğunu verir. Bu alan bilgisi maksimum değeri olan 15 ise toplam başlık uzunluğu 60 bayt demektir.
Toplam uzunluk (Total Length):
IP paketinin toplam uzunluğunu verir. (IP başlığı + Veri) Maksimum uzunluk 65535 bayt’tır. Günümüzde bu üst limit yeterlidir ancak gelecekte gigabit’ler mertebesinde uzunluklara gerek olacaktır.
Servis Türü [Type of Service (TOS)]:
Üst düzey protokollerin IP’ye datagramın nasıl ele alınması gerektiğini belirtir. Bu alanın ilk 3 biti öncelik (precedence) bitlerinden oluşur. Öncelik birleri paketlerin önemini 0 – 7 arasında değerler vererek belirtir. TOS bilgilerindeki D, T, R bitleri OSPF (Open Shortest Path First) protokolü tarafından sıkça kullanılır.
TOS Alanı
| |||||||
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
Öncelik bitleri
|
D
|
T
|
R
|
Kullanılmıyor
|
D biti set edilirse (1 yapılırsa), IP paketi düşük gecikmeler ister. Böyle bir paket örneğin ses verisi taşıyabilir ve az gecikmeli bir hat üzerinde taşınması gerekir.
T biti set edilirse yüksek aktarım performansı isteniyor demktir. Bu yolla biyik dosyaların aktarılma yeteneği artmış olur.
R biti set edilirse yüksek güvenilirlik isteniyor anlamına gelir. Böyle bir paket hata toleranslı bir ağ üzerinden önemli bir bilgi işlem uygulaması verisi taşıyabilir. (Örneğin banka işlemleri)
OSPF, 1990 Mayısında standart olarak kabul edildi. Daha önce Interior Gateway Routing Protocol (İç geçiş yönlendirme protokolü) olarak uzaklık vektör protokolü kullanıyordu. OSPF 3 çeşit bağlantı ve networkü destekler:
- İki yönlendirici arasında noktadan noktaya bağlantılar
- Yayınlı çoklu erişim (Multiaccess) networkler (Örnek: LAN’ların çoğu)
- Yayınsız çoklu erişim (Multiaccess) networkler (Örnek: Paket bağlaşmalı WAN’ların çoğu)
Açıklama: Çoklu Erişim network: İçinde birçok yönlendirici bulunan ve bunların tümü birbiriyle direkt olarak haberleşebilen network.
Kimlik (Identification):
Kaynak host tarafından IP paketlerine verilen numaradır. Parçalanmış paketlerin tekrar birleştirilmesinde kullanılır.
Bayrak (Flag):
Üç bitten oluşur. Parçalama (Fragmentation) kontrolünde kullanılır. Bir datagram parçalanıp parçalanmadığı, onun parçalanma izninin olup olmadığı gibi bilgilere ait kodlar taşır.
Bayrak bit numarası
|
0 değerinin anlamı
|
1 değerinin anlamı
|
Bit 0
|
Bu bit kullanılmaz daima 0’dır.
| |
Bit 1 (DF biti)
|
Parçalanma izni var
|
Asla parçalanamaz (Don’t Fragment)
|
Bit 2 (MF biti)
|
Son parça
|
Başka parça da var (More Fragment)
|
Parçalanma Ötelemesi (Fragment offset):
Eğer bir datagram parçalanmışsa, parçalanmış datagramın bu parçasının orijinal (parçalanmamış) datagramın neresine karşılık geldiğinin tespit edilmesini sağlar. Parçalanma ötelemesi için 13 bit ayrıldığından datagram başına maksimum 8192 parça olabilir.
TTL [Time To Live (yaşam süresi)]:
İnternette bir IP paketinin yaşam zamanını belirler. Bu zaman sonunda, IP paketi en son bulunduğu host üzerinde yok edilir. Bir paketin maksimum ömrü 255 saniyedir. TTL alanı sıfır olduğunda IP paketi yok edilir ve kaynak hosta ICMP aracılığı ile bir uyarı paketi gönderilir. Böylece sorunlu paketlerin internette sonsuza kadar dolaşmaları önlenmiş olur.
Protokol:
Bir üst katman protokolüne ilişkin kodları içerir. Bu kodlar gelen paketin aktarım katmanı protokollerinden (TCP, UDP veya bir başka protokol) hangisine iletileceğini bildirir. Protokol kodlamasının tam açıklaması RFC(1700) adlı teknik raporda bulunabilir. Aşağıdaki tabloda sekize kadarki kodlamanın açılımı gösterilmiştir.
Protokol numarası (ondalık)
|
Protokol
|
0
|
Saklı (reserved)
|
1
|
Internet Control Message Protocol (ICMP)
|
2
|
Internet Group Management Protocol (IGMP)
|
3
|
Geçitten geçite
|
4
|
IP içinde IP (Encapsulation)
|
5
|
Stream
|
6
|
Akış Kontrolü (Transmission Control)
|
7
|
UCL
|
8
|
EGP
|
Başlık Kontrolü (Header checksum):
Sadece başlık için bozulmaya karşı bir koruma önlemi sağlar. TTL alanı sürekli değiştiğinden her hostta checksum değerinin yeniden hesaplanması gerekir. Yönlendiricinin içindeki kötü bellek kelimeleri nedeniyle oluşabilecek hataları algılamada da faydalı bir işlevi vardır.
Kaynak Adres (Source Adress) :
Kaynak adresidir. 32 bitlik bir IP adresi ile doldurulur.
Hedef Adres (Destination Adress):
Hedef adrestir. Hedefe ait 32 bitlik bir IP adresi ile doldurulur.
Seçimlik (Option):
Bazı durumlarda kullanılır. Örneğin çok ender rastlanan başlık bitlerini bilgi biti olarak kullanılmasını engellemek için kullanılabilir.
Doldurma Biti (padding):
IP başlığının toplam uzunluğunu korumak için kısa başlıklarda, başlık sonuna ilave edilen sıfırları ifade eder.
Maksimum Aktarma Parçası[Maximum Transfer Unit (MTU)]
Parçalanma (fragmentation) büyük IP paketlerini, gereksinim duyulduğu daha küçük boyutlu IP paketleri haline getirme işlemidir. Bu parçalama işlemine kıstas alınan parçalama boyutu MTU ile ifade edilir.
MTU, İnternet Katmanından Ağ Ara Yüz katmanına gelen paketin bayt cinsinden maksimum boyutunu ifade eder. Diğer bir deyişle iletişim ortamına çıkarılan çerçevelerin içinde taşıdığı verinin toplam uzunluğunun maksimum değeridir. Bu değer TCP / IP protokolleri tarafından tanımlanmaz ancak kullanılır. MTU büyüklüğü, Ağ Ara Yüz Katmanında kullanılan protokolün tanımlarından bulunabilir. Örneğin Ethernet için bu değer 1500 bayttır.
Ethernet Çerçevesi
| ||
Ethernet Başlığı
|
Veri
|
CRC(Cyclic Redundancy Check)
|
MTU
|
Yukarıdaki şekilde içerisinde IP paketi taşıyan bir Ethernet çerçevesi ve bu çerçeve içinde MTU biriminin karşı geldiği alan gösterilmiştir.
Parçalanma (fragmentation) işlemi
Ağ ara yüz katmanında bulunan protokollerden örneğin Ethernet ve Token Ring protokolü için MTU değerleri birbirinden farklıdır. Bu durumda bir paket iletilmek istediğinde parçalanma işlemi şu şekilde oluşur:
Ethernetin MTU değerinin 1500 bayt, Token Ring’in MTU değerinin 4500 bayt olduğu göz önüne alındığında Token Ring tipi bir LAN’dan Ethernet tipi bir LAN’a bir paket iletileceğini varsayalım:
Token Ring Çerçevesi
| ||
MTU = 4500 bayt
| ||
Token Ring Başlığı
|
IP Başlığı + Datagram
|
Ethernet Çerçeveleri
| ||
MTU = 1500 bayt
| ||
Ethernet Başlığı
|
IP + Datagram 1
|
CRC
|
Ethernet Başlığı
|
IP + Datagram 2
|
CRC
|
Ethernet Başlığı
|
IP + Datagram 3
|
CRC
|
Ethernet Başlığı
|
IP + Datagram 4
|
CRC
|
IP tarafından parçalama işlemi gerçekleştirildikten sonra, Token Ring çerçevesi 4 parça halinde Ethernet tarafına iletilir. Parçalamadan sonra oluşan IP paketlerinin her birinin başlığı aşağıdaki gibi oluşur:
Orjinal Token Ring datagram
|
Değer
|
Açıklama
|
Kimlik Bilgisi
|
13458
| |
Toplam Uzunluk
|
4500
|
20 IP başlığı + 4480 Datagram
|
Parçalanma Ötelemesi
|
0
| |
Bayrak Biti (MF biti)
|
0
|
1. Ethernet datagramı
|
Değer
|
Açıklama
|
Kimlik Bilgisi
|
13458
| |
Toplam Uzunluk
|
1500
|
20 IP başlığı + 1480 Datagram
|
Parçalanma Ötelemesi
|
0
| |
Bayrak Biti (MF biti)
|
1
|
2. Ethernet datagramı
|
Değer
|
Açıklama
|
Kimlik Bilgisi
|
13458
| |
Toplam Uzunluk
|
1500
|
20 IP başlığı + 1480 Datagram
|
Parçalanma Ötelemesi
|
185
| |
Bayrak Biti (MF biti)
|
1
|
3. Ethernet datagramı
|
Değer
|
Açıklama
|
Kimlik Bilgisi
|
13458
| |
Toplam Uzunluk
|
1500
|
20 IP başlığı + 1480 Datagram
|
Parçalanma Ötelemesi
|
370
| |
Bayrak Biti (MF biti)
|
1
|
4. Ethernet datagramı
|
Değer
|
Açıklama
|
Kimlik Bilgisi
|
13458
| |
Toplam Uzunluk
|
1500
|
20 IP başlığı + 40 Datagram
|
Parçalanma Ötelemesi
|
375
| |
Bayrak Biti (MF biti)
|
0
|
IP Adresleme
Ağ katmanında paketler bir noktadan diğer noktaya iletilirken mantıksal adresler kullanırlar. Mantıksal adresler paketin kaynak ve gideceği en son yerin (hedefin) ağ adresini içerir. IP mantıksal adres olarak kendine özgü bir teknik kullanır. Adres alanı içinde varış noktasının ağ adresi ile host adresi bileşimi bulunur.
IP adres formatlarının ortak özellikleri:
- Adres uzunluğu 4 bayt = 32 bittir.
- Her adres sınıfı o adresi tanımlayan ilk baytın en anlamlı bitlerine yerleşen bir bit dizisi ile tanımlanır.
- Bu bit dizisini A, B, C sınıfı adreslerde Ağ adresi ve sonrasında host adresi takip eder.
IP global bir adresleme tekniğine sahiptir. Yani onbinlerce ağ ve milyonlarca hostu adreslemek mümkündür. IP, 5 farklı adres formatını destekler, bunlar; A, B, C, D ve E sınıfı adreslerdir.
A sınıfı Adres Formatı:
A sınıfı adreslerde ilk bayt ağı tanımlamak için kullanılır. İlk bir her zaman “0” ’dır. Ondan sonraki 7 bit ağ adresini oluşturur. Geri kalan 24 bit ağdaki host sayısını belirler. A sınıfı adresler çok sayıda host bulunan ağlar için uygun bir adres sınıfıdır.
B sınıfı Adres Formatı:
B sınıfı adreslerde ilk iki bayt ağı tanımlar. İlk iki bit adres sınıfını belirler ve diğer 14 bit network adresini oluşturur. Diğer 16 bit ağdaki host sayısını belirler. B sınıfı adresler orta sayıda hostu olan kurumlar için uygundur.
C sınıfı Adres Formatı:
C sınıfı adreslerde ilk üç bayt ağı tanımlar. İlk üç bit adres sınıfını belirler ve diğer 21 bit ağ adresini oluşturur. Kalan 8 bit ağdaki host sayısını belirler. C sınıfı adres host sayısı az olan kurumlar için uygundur.
D sınıfı Adres Formatı:
D sınıfı adresler çoklu-yayın (Multicast) adresleme için kullanılır.
E sınıfı adresleme “Reserved” olarak saklı tutulmaktadır.
IP adreslemesi IPv4 standartlarına göre yapılmaktadır. Yani IP adresleri 32 bitten oluşmaktadır fakat günümüzde bu IP adreslerinin tamamı tükenmek üzere olduğunda yakın bir gelecekte IP adresleri IPv6 standartlarına göre verilmeye başlanacaktır. Bu adresleme tekniğinde IP adresleri 32 değil 128 bitten oluşmaktadır.
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
32
| |||||||||||
A |
0
|
Ağ Adresi
|
Yerel Host Adresi
| |||||||||||||||||||||||||||||||||||||||
B |
1
|
0
|
Ağ Adresi
|
Yerel Host Adresi
| ||||||||||||||||||||||||||||||||||||||
C |
1
|
1
|
0
|
Ağ Adresi
|
Yerel Host Adresi
| |||||||||||||||||||||||||||||||||||||
D |
1
|
1
|
1
|
0
|
Çoklu-yayın (Multicast) Adres
| |||||||||||||||||||||||||||||||||||||
E |
1
|
1
|
1
|
1
|
0
|
Gelecekte kullanılmak üzere saklanmıştır (reserved)
|
Sınıf
|
Network Sayısı
|
Host Sayısı
|
A
|
126
|
16 777 214
|
B
|
16 384
|
65 534
|
C
|
2 097 152
|
254
|
NIC (Network Information Center) internet bağlantısı isteyen yerler için ağ numarası ataması yapar. Ağ numaraları ağın karakteristiğine göre (host ve ağ sayısına göre) verilir.
TCP / IP hostlar üzerinde IP adresi ayarlanırken yukarıda bahsedilen adres sınıflarına uygun maske (Mask) denen ve yine 32 bitten oluşan bir tanımlama alanı daha kullanılır. Bu alanın temel kullanım amacı, tek bir adresten host sayısı daha az olan alt ağ adresleri elde etmektir.
Özel IP Adresleri:
- IP Adresi:
Bu IP adresi Varsayılan (Default) yönlendiricileri adresleme için kullanılır.
Host kısmı “0” olan adresler:
IP adreste host için ayrılmış alanın “0” olması bu adresin hiçbir hostu ifade etmediği anlamına gelir. Bu tür adresler, ağ ortamını tanımlar ve yönlendiriciler tarafından yol belirleme tablolarının oluşturulmasında kullanılır.
Host kısmı “255” olan adresler:
Bu adresler ağın yayın (Broadcast) adresleridir. İlgili ağdaki her hostu tek bir seferde adreslemede kullanılır.
255.255.255.255 IP Adresi:
IP ‘nin yayın (Broadcast) adresidir. Tüm ağlar ve hostları tek bir seferde adresler.
224 ile başlayan adresler:
Bu adresler çoklu-yayın (multicast) adresleridir. Belirli özelliklere sahip host gruplarını tek bir seferde adreslemede kullanılır.
127.0.0.1 adresi:
Bu yerel hostu tanımlayan bir adrestir. Local Loopback adres olarak da isimlendirilir. Bu adrese gönderilen paket ağa çıkartılmaz. Genelde hostun TCP / IP servisinin doğru çalışıp çalışmadığını kontrol etmek için kullanılır.
Alt Ağlar (Subnets):
Bir ağdaki tüm hostlar aynı ağ adresine sahip olmalıdır. Fakat ağ büyüdükçe bu bir sorun yaratmaya başlar. IP adres tasarımı yapılırken bu tür sorunların çözümü düşünülmüş ve her IP hostunda IP adresinin yanında birde IP Maskesi (IP Mask)tanımlamasının yapılması zorunluluğu getirilmiştir. Bu IP Maskeleri kullanılarak bir ağ adresinden daha fazla ağ adresi elde edilebilmektedir.
IP Maskesi:
Bir hostun gerçek ağ ve host adresi ancak, IP adresin Maske süzgecinden geçirilmesiyle elde edilebilir. A, B, C sınıfı adreslerin varsayılan maske (default mask) değerleri aşağıdaki gibidir:
Adres Sınıfı
|
Varsayılan Maske
|
A
|
255.0.0.0 (FF.0.0.0)
|
B
|
255.255.0.0 (FF.FF.0.0)
|
C
|
255.255.255.0 (FF.FF.FF.0)
|
Maske Filtrelemesi elimizdeki IP adresi ile Maskemizin VE işlemine tabi tutulmasıyla olur. Şöyle ki:
Elimizdeki IP adresi 192.140.120.15 olsun. Bu durumda bu adres C sınıfı bir adres olduğundan varsayılan maskemiz 255.255.255.0 ‘dır. Bunları ve işlemine tabi tutarsak:
11000000 10001100 01111000 00001111
VE 11111111 11111111 11111111 00000000
11000000 10001100 01111000 00000000
sonucuna ulaşılır. Bu filtreleme sonucunda elimizde kalan (filtreden geçen) adres Ağ Adresi, Filtreye takılan ise Host adresidir.
Bir ağ adresinden daha fazla ağ adresi elde edebilmek için, IP adresinde hosta ayrılmış olan adres alanından, maske kullanarak yeterli sayıda bit ödünç alınıp ağ adres alanına kaydırılır. Böylelikle tanımlanabilir host sayısında meydana gelen azalmaya karşılık istenilen sayıda alt ağ oluşturulabilir.
Kaç tane alt ağ oluşturulacağına göre ödünç alınan bit sayısı değişir. Ancak bir ağda en az 2 host bulunmalıdır. Yani C sınıfı bir adres için en fazla 6 bit ödünç alınabilir.
Ödünç alınan bit sayısı
|
Oluşturulabilecek alt ağ sayısı
|
1
|
0
|
2
|
2
|
3
|
6
|
4
|
14
|
5
|
30
|
6
|
62
|
Tablodan da görülebileceği gibi oluşturulabilecek alt ağ sayısı (2n—2)‘dir.
Alt ağlar oluşturmamızın karşılığında tanımlanabilecek host sayısında azalma oluşacaktır.
Yayın (Broadcast):
Hostlar bazen bir ağ yada bir başka host hakkında bilgiye gereksinim duyarlar. Sabit disksiz bir host internet adresini ve TCP / IP protokolüne ait konfigürasyonu kendi ortamında kalıcı olarak saklayamadığından bu tür bilgilerin saklandığı başka bir hosttan [genelde ana bilgisayar (server)] bu bilgileri isterler. Hostların haberleşmesi için gerekli fiziksel adres bulunmak istendiğinde ARP protokolü ağ üzerindeki herbir hostu adreslemek için bu tür yayın adresine sahip paketler kullanırlar.
Yayın, temel olarak hedefin tam tarif edilemediği veya ağdaki tüm hostlara paket iletileceği zaman başvurulan adresleme yöntemidir. Yani ağdaki her hostun alacağı bir paket gönderme olayına yayın (broadcast), bu paketi oluştururken kullanılan adrese yayın adresi denir.
Çoklu-yayın (Multicast) adresleme:
Bir çoklu-yayın adresi ağ üzerinde belirli özelliklere sahip host grubunu adresler. Bu tür mesajların gönderilmesinde D sınıfı IP adresi kullanılır. Bazı çoklu-yayın (Multicast) adresleri:
Çoklu-yayın adresler
| Anlamları |
224.0.0.0
| Saklıdır (Reserved) |
224.0.0.1
| Alt-ağdaki tüm hostlar |
224.0.0.2
| Alt-ağdaki tüm yönlendiriciler |
İnternet Kontrol Mesaj Protokolü [Internet Control Message Protocol (ICMP)]
ICMP, TCP / IP protokollerinin işlemesine yardımcı olan bir bilgilendirme protokolüdür. TCP / IP ile çalışan her hostta mutlaka ICMP protokolü çalışır.
ICMP’nin temel fonksiyonu paket gönderen kaynağa, datagram paketinin seyahati sırasında paket üzerinde bir hata meydana gelmesi durumunda, yol üzerindeki bir yönlendirici veya host tarafından paketin sahibinin geri bildirimle bilgilenmesini sağlar.
ICMP mesajları şu amaçlarla kullanılır:
- Bir yönlendirici datagram paketini TTL süresi dolduğu zaman (TTL = 0 olduğunda) yok eder. Paketin yok edildiğini bir ICMP paketiyle paketin sahibine (yani gönderene) bildirmek amacıyla kullanılır.
- Yönlendirici kendisine gönderilen datagram paketi için yeterli tampon alana sahip değilse bu paket yönlendirici tarafından yok edilir. ICMP paketi gönderen hostu bu durumdan haberdar eder.
- Yönlendirici DF bayrak biti “1” olan bir paketi parçaladığında ICMP paketi gönderen hostu bilgilendirir.
- Yönlendirici veya host paketin IP başlığında bir dizilim hatası bulduğunda, hatayı bulan birim tarafından paketi gönderen host ICMP sayesinde bilgilendirilir. (Paket yok edilir)
- Yönlendirici üzerinde geçerli varsayılan yönlendirici tanımı yoksa ve yönlendirici kendisine gelen paketi göndereceği ağın yol bilgisini tablosunda bulamıyorsa, bu yönlendirici tarafından ICMP paketleri aracılığıyla paketi gönderen host bilgilendirilir.
- Yönlendirici kaynak hosta daha kısa yol olan başka bir yönlendiricinin kullanılmasını önereceğinde bunu ICMP paketleri aracılığıyla yapar.
IP güvenilir bir veri dağıtım protokolü olarak tasarlanmamıştır.
Güvenilirlik fonksiyonunu sağlamak daha üst katmandaki protokollere bırakılmıştır.
ICMP paketleri ortamda bir geri besleme (feedback) sağlarlar. Bu yolla ciddi problemleri, haberleşen birimlere bildirerek bir hata bildirim mekanizması oluştururlar. Ancak buradan ICMP’nin IP’yi güvenilir bir protokol haline dönüştürme amacıyla geliştirildiği yargısı çıkarılmamalıdır.
ICMP mesajı, IP paketlerinin veri bölümünde taşınır. Bu yüzden ICMP paketlerinin dağıtım güvenilirliği, IP paketlerinin dağıtım güvenliliği ile sınırlı kalmaktadır. Buradan ICMP paketlerinin güvenilir iletilemeyeceği ve hedefe varmasının garanti edilemeyeceği sonucu çıkarılabilir.
ICMP Mesaj Tipleri:
Echo:
Echo mesajları, bir yönlendirici veya host tarafından diğer bir yönlendirici veya hosta gönderilen mesajlardır.
Echo mesajı kaynaktan hedefe yönelen bir mesaj olup, tepki mesaj olarak hedeften kaynağa Echo Reply (Echo Cevabı) mesajı döner.
Echo mesajı ile hedef hostun çalışıp çalışmadığı ve iletişim kurmak için gerekli yolun sağlanıp sağlanamayacağının testi yapılır. TCP / IP protokol grubu yüklü olan hostlar üzerinde çalıştırılan PING komutu bu işlevi yerine getirir.
Destination Unreachable (Hedefe Erişilemiyor):
Bu mesaj şu durumlarda oluşur:
- Bir yönlendirici hedef hosta nasıl erişeceğini bilmiyorsa IP paketini gönderen hosta bu mesaj iletilir.
- Datagram paketinde hedef yol belirlenmişse ve bu yol tanımı ile ağın mevcut durumu uyuşmuyorsa (değişiklik olmuş ise) bu mesaj kaynak hosta gönderilir.
- Bir yönlendirici parçalama(Don’t Fragment) bayrağı kurulmuş olan bir datagramı parçalarsa bu mesaj kaynak hosta gönderilir ve parçalanan datagram atılır.
- Hedef hostta gerekli protokol modülü yüklü değilse veya işlem portu aktif değilse, hedef host datagram paketi üzerinde işlem yapamaz ve bu mesajla kaynak hosta bilgi verilir.
Source Quench:
Bu mesaj tipi temel akış (flow) kontrol işlevini yerine getirir. Eğer bir yönlendirici veya hosta işleyebileceğinden daha fazla paket gönderilirse host veya yönlendirici işleyemedikleri paketleri atarlar, daha sonra bu durumu “Source Quench(SQ)”paketiyle kaynak hosta bildirirler. Bu uyarı paketini alan kaynak host paket gönderme hızını azaltır.
Kaynak host veya yönlendirici zamanla paket gönderme hızını yavaş yavaş arttırır. Bu durum yeni bir SQ paketi alınıncaya kadar devam eder.
Tekrar Yöneltme (Redirect):
Yönlendirici tarafından, aynı ağ üzerinde bağlı, diğer hostlara gönderilen bir masaj türüdür. Bu mesaj sayesinde ağ üzerinde hosta seçilebilecek en iyi yol hakkında bilgi verilir.
Ayrıca yönlendirici paketin yanlış yönlendirildiğini fark ettiğinde bu mesajı yollar ve olası bir problemi kaynak hosta bildirir.
Yaşam Süresi Aşımı (Time Exceed):
Her IP paketinin internet üzerinde belirli bir yaşam süresi (TTL) vardır. Bu süre içinde hedefe ulaşamamış paketler Time To Live (TTL) süresinin sıfıra ulaştığı yönlendirici üzerinde yok edilir. Paketi yok eden yönlendirici “Time exceed” paketi göndererek paket sahibini bilgilendirir.
Parametre sorunu (Parameter Problem):
Eğer bir yönlendirici veya host datagram paketi üzerinde işlem yapacağı zaman paketin başlık parametrelerinde bir hata bulurlarsa bu datagram paketi atılır ve kaynak hosta “Parameter Problem” mesajı gönderilir.
Zaman damgası (Time Stamp):
Bu ICMP paketi ağın geçilebilirlik karakteristiğini belirlemede kullanılan mekanizmanın bir parçasıdır. Time Stamp göndericisi zaman bilgisini Bilgi (Information) kısmına yerleştirdiği bir ICMP paketini hedef gönderir. Alıcı bu zaman bilgisini alır ve alım için geçen bu süreyi hesaplar, daha sonra Zaman Damgası Cevabı(Time Stamp Reply) paketiyle bu süreyi kaynak hosta bildirir.
Echo cevabına benzerdir fakat tek fark zaman damgasıyla birlikte olmasıdır.
Bilgi İsteği (Information Request):
Bir hostun bağlı olduğu ağın adresini öğrenebilmek için ağa gönderdiği bir keşif paketidir. İstekte bulunan host, IP paketinin hedef ve kaynak IP adres kısımlarını “0” ile doldurarak ağa bu paketi gönderir. Daha sonra hostun bağlı olduğu ağın adresi hosta geri döner.
Adres Maskeleme İsteği (Adress Mask Request):
Bir host bağlı olduğu ağın maskesini öğrenmek istediğinde bu mesajı gönderir. Ağdaki bir yönlendirici tarafından hostun yayınladığı bu mesaj alınır ve gerekli maske bilgileri işlenerek istemci hosta Adres Maske Cevabı (Adress Mask Reply) paketiyle geri gönderilir.
ICMP Paketinin yeri:
ICMP
| |||||
IP başlığı
|
IP verisi
| ||||
Ethernet başlığı
|
Ethernet Verisi
|
CRC
|
Her ICMP paketi bir IP paketi içine gömülerek taşınır.
ICMP Başlık Formatı
Her bir ICMP paketi kendine has bir formata sahiptir. Genel bir ICMP paketi aşağıdaki gibidir:
Tip
|
Kod
|
Hata Denetimi
| |||||||||||||||||||||||||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
32
|
Mesaja bağlı
| |||||||||||||||||||||||||||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
32
|
Bilgi
|
Tip (Type) 8 bit:
Mesaj tipini belirler. Mesaj tipleri aşağıdaki gibidir:
Tip
|
Mesaj
|
0
|
Echo Cevabı
|
3
|
Hedef hosta ulaşılamıyor
|
4
|
SQ
|
5
|
Tekrar Yöneltme
|
8
|
Echo İsteği
|
11
|
Parametre Problemi
|
12
|
Zaman Aşımı
|
13
|
Zaman Damgası İsteği
|
14
|
Zaman Damgası Cevabı
|
15
|
Bilgi İsteği
|
16
|
Bilgi Cevabı
|
17
|
Adres Maske İsteği
|
18
|
Adres Maske Cevabı
|
Kod (Code):
Mesaj tipinin alt gruplarını tanımlamak suretiyle daha detaylı tanımlama sağlar. Kod tipleri aşağıdaki gibidir:
Kod
|
Anlamı
|
0
|
Ağa erişilemiyor
|
1
|
Hosta erişilemiyor
|
2
|
Protokole erişilemiyor
|
3
|
Porta erişilemiyor
|
4
|
Parçalamaya ihtiyaç var
|
5
|
Kaynak yönlenme bozulmuş
|
6
|
Hedef ağ bilinmiyor
|
7
|
Hedef host bilinmiyor
|
Hata Denetimi (Checksum):
ICMP mesajının hata denetiminin yapılabilmesi amacıyla kullanılır.
Mesaja Bağlı (Message Dependent):
Bir çok ICMP mesaj türünde bu alan kullanılmaz. Gelecekte kullanılmak üzere saklanmıştır (reserved).
Bilgi (Information):
Bu alan değişken boydadır. Pek çok ICMP mesaj tipinde vardır. Bu alanda IP başlığı, kaynak ve hedef adresleri gibi bilgiler vardır.
Bu alanın sonunda 64 bitlik orijinal veri paketi yer alır. Bu 64 bitlik alan Aktarım Katmanı protokollerine (TCP, UDP) ait bilgiler içerir.
Adres Çözümleme Protokolü [Adress Resolution Protocol (ARP)]
Bilgisayar ağı üzerindeki hostların birbirleriyle haberleşebilmeleri için birbirlerinin IP adreslerini bilmeleri gereklidir. Bu adres ya kullanıcılardan temin edilir ya da DNS (Domain Name System) gibi isim servislerinden sorulur.
Veri-bağlantı katmanında, pakete hedef hostun fiziksel adresini yerleştirme zorunluluğu vardır. Ethernet protokolü tarafından kullanılan görüşme paketlerinde Kaynak ve Hedef için ayrı ayrı olmak üzere 48 bit fiziksel adres [MAC adress (Media Access Control)] için ayrılmıştır. Her ethernet kartının içinde fabrikada üretim esnasında verilen bir MAC adresi vardır. Yani dünyadaki hiçbir ethernet kartının MAC adresi bir diğerinin MAC adresiyle çakışmaz. Bunu garantileyebilmek için oluşturulan bir komite ethernet kartı üreticilerine 24 bitlik bir kod verir. Firmalar ürettikleri kartların içine yazılan 48 bitlik numaranın ilk 24 bitini bu komiteden aldıkları kodla oluştururlar. Diğer 24 bitlik kalan kısım ise üretim sıra numarası ya da seri numarası olarak belirlenir.
Bilgisayarlar, ağ katmanında IP adresleriyle haberleşiyorlar gibi görünseler de gerçekte bu adresler sadece rehberdir ve en son hedef noktayı simgeler. Hedef uçlar arasındaki duraklar (köprüler, yönlendiriciler, switchler ..) aralarındaki haberleşmede IP adresi kılavuz olarak kullanılmakta ve gerçek haberleşme için MAC adreslerinden yararlanmaktadırlar. Gerçek haberleşme fiziksel adresler kullanılarak veri-bağlantı katmanında gerçekleştirilir.
ARP protokolü çalıştığı katmanın bir üst katmanından gelen mantıksal adresi (IP adresi) alır ve kendi tuttuğu veya ana bilgisayara (server’a) sorarak bu mantıksal adresi kullanan hostun MAC adresini elde eder. Yani mantıksal adresi çözümleyerek fiziksel adresi elde eder ve veri-bağlantı katmanına bu adresleri iletir.
ARP isteği (Request):
Aynı ağda yerleşmiş olan hostlar birbirleriyle haberleşmek istediklerinde kaynak host bir ARP isteği oluşturur. ARP protokolü çözümleme işini üstlendiğinde önce kaynak hostun belleğinde (RAM) tuttuğu ve ARP önbelleği (ARP Cache) olarak adlandırılan “IP adresi / MAC adresi” listesine bakar. Herhangi bir şekilde bu listeye karşılığı istenen IP adresinin daha önce işlenip işlenmediğini kontrol eder. Eğer bu listede IP adresini bulursa, IP adresine karşılık düşen MAC adresini okur ve bu adresi veri-bağlantı katmanı protokolüne verir.
Aranan IP adresi ARP Cache ‘de bulunamazsa bu durumda ARP protokolü özel bir soru paketi oluşturarak bilgisayar ağına yayınlar.(broadcast) Ağ üzerindeki her host bu ARP paketini alır ve kendi IP adresi ile kontrol eder. Eğer IP adresi kendisine ait değilse bu mesajı çöpe atar, kendisinin ise bu pakete fiziksel adresini yerleştirerek bir ARP cevabı (ARP Response) oluşturur ve doğrudan kaynak hosta geri gönderir. Bu arada kendi ARP Önbelleğine de soru paketini gönderen hostun IP adresini ve fiziksel adresini yerleştirir.
Eğer ARP isteğine bir ARP cevabı gelmezse kaynak hosta “host cevap vermiyor” ya da “böyle bir host yok” şeklinde bir mesaj iletilir. Bu mesaj uygulama katmanı protokollerince hazırlanır.
ARP Paket Formatı:
Donanım Adres Alanı
|
Protokol Adres Alanı
| ||||||||||||||||||||||||||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
32
|
Donanım Adres Uzunluğu
|
Yazılım Adres Uzunluğu
|
İşlem Kodu
| |||||||||||||||||||||||||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
32
|
Kaynak Donanım Adresi
| |||||||||||||||||||||||||||||||
Hedef Protokol Adresi
| |||||||||||||||||||||||||||||||
Kaynak Protokol Adresi
| |||||||||||||||||||||||||||||||
Hedef Donanım Adresi
|
Donanım Adres Alanı (Hardware Adress Space)
Veri-bağlantı katmanı protokolünü tanımlar.
Değer
|
Anlamı
|
1
|
Ethernet 10 Mbps
|
6
|
IEEE 802 Ağlar
|
7
|
ARCNET
|
11
|
Local Talk
|
14
|
SMDS
|
15
|
Frame Relay
|
16
|
ATM
|
Protokol Adres Alanı (Protocol Adress Space)
Ağ katmanı protokolü olarak neyin kullanıldığını belirtir.
Donanım Adres Uzunluğu (Hardware Adress Space)
MAC adres uzunluğunu belirtir. Ethernet için 6 ‘dır.
Yazılım Adres Uzunluğu (Software Adress Length)
Ağ katmanı protokolünün kullandığı adres uzunluğunu belirtir. IP için bu değer 4’tür.
İşlem Kodu (Operation Code)
Paketin fonksiyonunun ne olduğunu belirtir. ARP isteği, ARP cevabı, RARP isteği, RARP cevabı.
Kaynak Donanım Adresi (Source Hardware Adress)
Gönderenin MAC adresidir.
Hedef Protokol Adresi (Target Hardware Adress)
ARP isteği sonucunda ulaşılması istenen MAC adresidir.
Kaynak Protokol Adresi (Source Protocol Adress)
Gönderenin IP adresidir.
Hedef Donanım Adresi (Target Hardware Adress)
Alıcının IP adresidir.
ARP veri paketleri veri-bağlantı katmanında çalışan protokol içinde taşınır.
ARP paketi
| ||
Ethernet başlığı
|
Ethernet Verisi
|
CRC
|
ARP, IP’nin hizmetlerini kullanmaz o nedenle IP başlığı içermez. ARP paketi sadece yerel ağ üzerinde hazırlanıp gönderilir. Uzak ağlardaki (yönlendiricilere bağlı ağlar) hostların fiziksel adresi host için bir anlam ifade etmez. Çünkü yönlendiriciler fiziksel adrese göre değil ağ katmanı mantıksal adresine göre (IP Adresi) yönlendirme yaparlar.
Ters Adres Çözümleme Protokolü [Reverse Adress Resolution Protocol (RARP)]
ARP protokolünün yaptığı işin tersini yapar. Yani elinde olan bir fiziksel adresin IP karşılığını bulur. Bu protokol özellikle sabit disksiz hostlar tarafından kullanılır. ARP ile aynı paket formatını kullanır.
RARP protokolünün kullanılabilmesi için ağ üzerinde en az bir tane RARP server olmalıdır. Bazen yedekleme amacıyla ağda ikinci bir RARP server’ın kullanılması gerekebilir. Bu durumda server’lar birincil (primary) ve ikincil (secondary) olarak konfigüre edilir.
RARP server’larının her ağa konması maliyet açısından problem yaratacağından BOOTP protokolü(Bootstrap Protocol) geliştirilmiştir. RARP ‘in aksine BOOTP, UDP ‘nin servislerini kullanmaktadır.
Aktarım Katmanı Protokolleri:
User Datagram Protocol (UDP)
UDP, TCP / IP protokol grubunun iki aktarım katmanı protokolünden birisidir.
UDP, onay (acknowledge) gönderip alacak mekanizmalara sahip değildir. Bu yüzden veri iletiminde başarıyı garantileyemez. Yani güvenilir bir aktarım servisi sağlamaz. Hedefe ulaşan paketler üzerinde sıralama yapıp doğru veri aktarımını da sağlayacak mekanizmalara sahip değildir. Uygulamalar güvenli ve sıralı paket dağıtımı gerektiriyorsa UDP yerine TCP protokolü tercih edilmelidir.
UDP, minimum protokol yükü (overhead) ile uygulama programları arasında basit bir aktarım servisi sağlar.
Port numaralarıyla Demultiplexing:
IP, internet üzerinde iki host arasında haberleşmeye izin veren yol belirleme fonksiyonlarını destekler ve paket dağıtımı yapar. IP, UDP port numaraları aracılığıyla pek çok datagram paketi arasında ayrıştırma yapabilecek mekanizmaları içerir. Bu yolla bir çok uygulamanın alıcı host üzerinde aynı anda çalışmasına ve ağ üzerinden haberleşmesine olanak tanır.
Port numaraları standart olarak belirlenmiş numaralar olup haberleşme sırasında atanan numaralar değillerdir.
Uygulama 1
|
Uygulama 2
|
Uygulama 3
|
Uygulama 4
|
Port 1
|
Port 2
|
Port 3
|
Port 4
|
UDP
|
IP
|
Ethernet
|
Bazı UDP Port numaraları ve karşılıkları aşağıdaki tabloda verilmiştir:
Port Numarası
|
Tanımı
|
5
|
Remote Job Entry (Uzaktan İş girişi)
|
7
|
Eko
|
9
|
Discard
|
11
|
Aktif Kullanıcı
|
13
|
Saat
|
15
|
Who is up or NETSTAT
|
17
|
Günün alıntısı (Quote of the Day)
|
19
|
Karakter Üreteci
|
37
|
Zaman
|
39
|
Resource Location Protocol
|
42
|
Host İsim servisi
|
43
|
Who is
|
53
|
DNS (Domain Name System)
|
67
|
Bootstrap Protokol Server’ı
|
68
|
Bootstrap Protokol İstemcisi
|
69
|
Trivial File Transfer
|
79
|
Finger
|
111
|
Sun Microsystem RPC
|
123
|
Network Time Protocol
|
161
|
SNMP Message
|
162
|
SNMP Trap
|
UDP paketleri internet üzerinde IP paketleri içinde taşınır:
UDP Başlığı
|
UDP Verisi
| |||||
IP başlığı
|
IP verisi
| |||||
Ethernet başlığı
|
Ethernet Verisi
|
CRC
|
UDP Paket Formatı:
Kaynak Port
|
Hedef Port
| ||||||||||||||||||||||||||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
32
|
Uzunluk
|
Hata Kontrolü
| ||||||||||||||||||||||||||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
32
|
Veri
|
Kaynak Port (Source Port):
Opsiyonel bir alandır. Gönderilen işlemin portunu gösterir. Eğer gönderen host bir kaynak numarasına sahip değilse bu alan “0” ile doludur.
Hedef Port (Destination Port):
Hedef host içerisinde, işlemlere uygun ayrımları yapmak için kullanılır.
Uzunluk (Length):
UDP veri ve UDP başlığının bayt cinsinden toplam uzunluğudur.
Hata Kontrolü (Checksum):
Opsiyonel bir alandır. Hata kontrol mekanizması sağlar. Eğer hata kontrolü yapılmayacaksa bu alan “0” ile doludur.
IP sadece kendi başlığı üzerinde hata kontrol işlemi yapar. UDP verisi üzerinde hata kontrolü yapmaz. UDP ‘deki hata kontrolü sadece hatasız taşımanın bir ölçüsüdür. Yeniden gönderim veya güvenilirlik sağlamaz.
Aktarım Kontrol Protokolü [Transmission Control Protokol (TCP)]
TCP, IP ’nin bir üst katmanında çalışan iki aktarım katmanı protokolünden birisidir.
TCP, güvenilir ve sanal devre üzerinden çalışan bir protokoldür. Aynı ağ üzerinde ya da farklı ağlar üzerinde iki hostun birbirleriyle güvenilir bir şekilde haberleşmesini sağlar.
TCP ‘nin başlıca özellikleri şunlardır:
- Bir bağlantının (connection) kurulması ve sonlandırılması
- Güvenilir (Reliable) paket dağıtımının sağlanması
- Akış kontrolü (flow control) olanağı ile hostlarda veri taşmasının (overflow) önlenmesi
- Bozulmuş ya da ikilenmiş verinin düzeltilmesi (error recovery)
- Alıcı host içerisinden birçok uygulama arasında demultiplexing yapılması
TCP istemci host üzerinde çalışan uygulama katmanı protokolleri:
- TELNET
- Dosya Aktarım Protokolü [File Transfer Protocol (FTP)]
- Temel Posta Aktarım Protokolü [Simple Mail Transfer Protocol (SMTP)]
TCP, IP ‘den hizmet alan bir protokoldür. IP, TCP ‘nin sağladığı olanaklarla güvenli veri dağıtımı yapar. IP ‘nin TCP ‘ye sağladığı ana hizmetler şunlardır.
- Farklı ağlar üzerindeki kaynak ve hedef istasyonların adreslenmesi
- İnternet üzerinde veri paketlerinin yönlendirilmesi
- Ağlar arasında küçük boyutlu paketleri iletebilen ağlarda daha sonra birleştirilmek üzere paket parçalama (fragmentation) fonksiyonunun yerine getirilmesi
- IP paketinin protokol numarasına bakarak bu paketleri üst katmana yönlendirme işinin yapılması
- Yaşam Süresi [Time to Live (TTL)] alanına yerleştirilen değerle paketin internet üzerinde ömrünün sınırlandırılması
TCP Arayüzleri (Interface)
TCP üst katman olan uygulama katmanı ile bir alt katman olan internet katmanı ile kendi arasında iki farklı arayüz oluşturur.
Bir kullanıcı uygulaması Çağrı (call) yoluyla veriyi TCP katmanındaki tampon (buffer) alana yerleştirir. TCP gelen veriyi segmentler haline getirip herbir segmenti çağrı yoluyla IP ‘ye gönderip hedef hosta iletilmesini ister. Hedefte çalışan TCP, IP ’den segmentleri alır ve hedef uygulama katmanına iletir.
TCP – Aktarım Katmanı Arayüzü
Arayüz, TCP ile uygulama katmanı işlemi arasında sorumlulukları belirlenmiş çağrı fonksiyonlarını çağırarak bağlantıyı sağlar. Bu çağrı fonksiyonları standart işletim sistemleri olan dosyalarla ilgili açma, kapama, okuma ve yazma fonksiyonlarına çok benzerdir. Bu çağrı fonksiyonları bir uygulamanın bir bağlantıyı açması ve kapamasını OPEN ve CLOSE fonksiyonları ile sağlarlar. Gönder (send) ve al (receive) fonksiyonları ile de veri trafiğinin düzgün akışını temin ederken durum (status) fonksiyonlarıyla bağlantının durumunu kontrol eder.
TCP – İnternet Katmanı Arayüzü
TCP ‘nin IP ile olan arayüzüdür. İnternet sistemi üzerinde herhangi bir yerdeki bir başka TCP ile görüşmek için çağrı fonksiyonları kullanılır.
Fiziksel ortama bağlı arayüz, donanım sürücüleri ile kontrol edilir. TCP doğrudan donanım sürücüleri ile haberleşemez bunun için IP protokolünü kullanır.
TCP ‘nin Temel İşlevleri
TCP ‘nin üzerinde çalıştığı farklı hostlar arasında güvenilirliğe sahip, bağlantı tabanlı paket dağıtımını sağlar.
TCP, internet ortamında şu işlevleri sağlar:
- Temel Veri Aktarımı (Basic Data Transfer)
- Güvenilirlik (Reliability)
- Uçtan uca Akış Kontrolü (End to end flow control)
- Çoğullama (Multiplexing)
- Bağlantılar (connections)
- Tam çift yönlü işlem (full duplex process)
Temel Veri Transferi (Basic Data Transfer):
Haberleşen TCP hostlar üzerinde bu katmanlar arası segment aktarımı yoluyla haberleşme sağlanır. TCP veri akışını baytları sıralandırıp segment grupları halinde iletir. Eğer bir parçalama gerekliliği ortaya çıkmadıysa her segment bir IP paketine konarak iletilir.
Güvenilirlik (Reliability):
TCP, zarara uğramış, bozulmuş, ikilenmiş verinin doğru olarak elde edilmesinden sorumludur.
TCP, her bir bayt ’a sıra numarası verir. Daha sonra ilettiği bu bayt ’lara karşılık onay (acknowledge) bekler. Eğer belirli aralıklarla beklediği onayları alamazsa onay alamadığı kısımları yeniden hedef hosta iletir. Hedef host sıra numaralarına göre segmentleri sıralarken aynı segment numarasına sahip iki segmentle karşılaşabilir. Her bir segment checksum denilen kontrol bilgileri içerir. Bu kontrol bilgilerine göre hasara uğramış segmentler anlaşılır ve atılır. Kaynak hosta onay gönderilmezse kaynak hosttaki TCP onay alamadığı segmentleri yeniden gönderir.
Uçtan uca Akış Kontrolü (End to end flow control):
Kaynak istasyondan hedefe iletilen veri miktarını kontrol eden bir mekanizmadır. Bu mekanizma pencere yönetimi (window management) tekniği ile sağlanır.
Çoğullama (Multiplexing):
TCP üzerinde birden fazla eş zamanlı TCP bağlantı kurmakta kullanılır.
Bağlantılar (Connections):
Bağlantı iki TCP hostun veri transferi için birbirlerinden haberdar olmaları ve gerekli hazırlıkları tamamlamış olmaları demektir. Bağlantı kurulumu için kaynak host hedef hosta bağlantı kurmak istediğini bildirir. Hedef host gelen istekteki port numarasına karşılık gelen hizmeti sağlıyorsa ve bağlantı için hazırsa bir cevap mesajı göndererek bağlantı işlemini başlatır. Bağlantı, kaynak ve hedef host arasında sanal bir devre oluşturulmasıyla kurulur. Bağlantı kurulup transfer gerçekleştirildikten sonra bağlantı koparılır.
Haberleşme sırasında, herbir host üzerindeki TCP protokolü, sürekli hata kontrolü yaparlar. Eğer herhangi bir nedenle (ağ problemi) bir iletişim problemi ortaya çıkarsa, her iki TCP bu problemden haberdar olur ve üst katman protokollerini uyarırlar.
Bağlantının kurulmasında TCP başlığı içindeki SYN (Sync) ve ACK (onay) bitlerini kullanılır.
Bağlantı kurulumunda bağlantı talebinde bulunan ve bağlantıyı kabul eden hostlar arasında iki farklı durum oluşur.
Bağlantıyı kabul eden host pasif, bağlantı talebinde bulunan host aktif olur.
Tam çift yönlü işlem (Full Duplex Process):
TCP işlemleri hem gönderim hem de alımın aynı anda yapılmasına olanak tanır. Bu da haberleşmenin daha hızlı olmasını sağlar.
Sıra Numarası (Sequence Number)
TCP üst katmandan aldığı veriyi segmentlere böler. Bu segmentlerin herbiri genelde tek bir IP paketi içinde taşınır. Her bir segmente TCP bir numara verir. Amaç ağlar üzerinde dolaşan bu segmentlerin hedefe varış sıralarının karışması durumunda hedef hostta çalışan TCP protokolünün bunları tekrar sıraya koyup üst katmana aktarmasıdır. (segment boyları sabit değildir)
TCP, karşı TCP ile bağlantıyı ilk kurduğunda, ilk gönderdiği segmente bir numara verir ve daha sonraki segment numaraları sıralı olarak artan şekilde devam ettirir. Sıra numarası 0 – 231 arasında olabilmektedir.
TCP verideki bayt ’ları gruplayarak segmentleri oluşturur ve herbir segment ayrı bir numara ile numaralandırılır. Bir segment bir numara aldığında bu segment numarasını içinde barındırdığı ilk bayt ’a verir. Yine içinde barındırdığı diğer bayt ‘lara bu numaranın artanlarını verir. Bu segmentten sonra gelen segmentin alacağı numara, bir önceki segmentin içindeki en son bayt ‘ın aldığı numaranın bir fazlası olacaktır. Bu sıra numaraları TCP başlığı içinde taşınır.
Port
TCP ve UDP üst protokollerle bağlantıda portları kullanırlar. Herbir port gerçekte üst katman tarafından sağlanan bir servisi simgeler. TCP kendine gelen paket içerisindeki TCP başlığında yer alan hedef port numarasına bakarak ilgili veriyi bu port ile temsil eden uygulamaya gönderir.
Bu port numaraları hedef port numaraları olarak kullanılır. Yani hizmet veren uygulamaların port numaralarıdır. Hizmet alan uygulamaya port numarası, hostun IP adresi ve hedef TCP port numarası gözönünde bulundurularak otomatik olarak o anda atanır. Yani bir host TELNET uygulaması ile görüşeceği zaman hedef port numarası 23, ancak kaynak port numarası standart olmayan bir değer olacaktır.
TELNET
|
FTP
|
Uygulama 3
|
Uygulama 4
|
Port 23
|
Port 21
|
Port 3
|
Port 4
|
TCP
|
UDP
|
IP
| |
Ethernet
|
TCP bağlantısının kuruluşu
TCP bağlantısının kurulması üç aşama sonucunda gerçekleşir:
1.Aşamada: Kaynak host bağlanmak istediği hosta bir istek paketi gönderir. Bu paketin TCP başlığında SYN = 1 ve ACK = 0 ‘dır. Gönderdiği paket içindeki segmente ait sıra numarası X ‘tir.
2.Aşamada: Bu paketi alan hedefe TCP başlığında SYN = 1, ACK = 1 bitlerini kurarak kendi paketini sıra numarasına SEQ Numarası=Y ve onay numarası, ACK Numarası = (X + 1) ‘i gönderir.
3.Aşamada: İsteğine karşılık bulan istemci son aşamada hedefe onay paketi gönderir ve bağlantı kurulmuş olur.
Sonra kaynak, hedefe göndermek istediği veri paketlerini gönderir. Şekilde bağlantının kurulması ve veri iletiminin sağlanma aşamaları gösterilmiştir:
Aktif Kaynak
|
Pasif Hedef
| ||
1. Aşama
|
SEQ = X
| ||
2. Aşama
|
SEQ = Y
ACK = X + 1
| ||
3. Aşama
|
SEQ = X + 1
ACK = Y + 1
| ||
Bağlantı
|
Veri
Veri
Veri
|
Olumlu Onay ve Yeniden Bildirim Mekanizması (Positive Acknowledgment and Retransmission – PAR)
TCP host, bir segmenti karşı hosta gönderdiğinde bu gönderdiği segmente karşılık olumlu onay bekler. Bu bekleme süresi belirlidir ve sabittir. Segment gönderildiği anda süre çalışmaya başlar. Süre dolduğunda hala gönderilen segmente olumlu onay gelmemişse segment tekrar gönderilir. Bu nedenle bandgenişliği kullanım verimi düşüktür. Bir host yeni paket göndermeden önce eski gönderdiklerinin onayını bekler ve belirli bir anda sadece bir paket gönderebilir.
Pencere Yönetimi (Window Management)
Pencere mekanizması karşı hosttan onay alınmadan önce, TCP’nin birçok segmenti en uygun şekilde iletmesini sağlar. Pencere kullanımıyla akış kontrolü de sağlanmış olur.
Başlangıçtaki pencere büyüklüğü, bağlantının kurulumu esnasında kararlaştırılır. Pencerenin boyutu içine pek çok segment almaya uygundur.
Yerel TCP, sıra numaraları üzerinde bir aktarım penceresi oluşturur. Kaynak TCP, pencere içerisindeki sıralı bayt grupları ile segmenti oluşturur.
Pencere 3 işaretleyici ile tanımlanır:
- Sol işareti
- Sağ işareti
- Aktarım sınırı (Transmit Boundary) işareti
Onaylanmış veri
|
Pencere
|
Segmentler
| ||||||||||||
....
|
50
|
51
|
52
|
53
|
54
|
55
|
56
|
57
|
58
|
59
|
60
|
61
|
62
|
.....
|
SOL Aktarım Sınırı SAĞ
Sol İşareti:
Pencerenin sol kenarını işaretler. Veriler sol işaretten sağ işarete doğru gönderilir. Sol işaret ile Aktarım sınırı işareti arasındaki baytlar gönderilmiş veriyi belirler.
Sağ İşareti:
Pencerenin sağ kenarını belirler. Pencerenin sağ işareti ile aktarım sınırı işareti arasında kalan baytlar pencerenin henüz gönderilmemiş kısmını oluşturur.
Aktarım sınırı (Transmit Boundary):
Pencere içerisindeki o anda gönderilecek olan baytı gösterir.
Segmentlerin gruplanması ve aktarılması aktarım sınırı işaretinden sağ işarete doğru hızla gerçekleştirilir. Her aktarılan bayttan sonra aktarım sınır işareti bir sağa kayar. Pencere alıcı hosttan gelen “.. numaralı baytlar alınmıştır” onayına karşılık onayı gelen baytlar kadar sağa kaydırılır. Sonuçta pencere alınan onayla sağa kayarken, pencere içindeki aktarım işareti de gönderilen her bayttan sonra sağa kaymaya devam eder. Eğer pencere içindeki aktarım işareti pencereye göre daha hızlı sağa kayar ve sağ işarete ulaşırsa bu durumda TCP gönderimi durdurup onay beklemeye başlar. Onay aldıkça aktarım işlemi devam eder.
Alıcı TCP üzerinde de, alınan her bayt üzerinde benzer bir pencere mekanizması çalışır. Yani her bir bağlantı için iki pencere birbirleriyle zaman uyumlu olarak çalışırlar.
Akış Kontrolü (Flow Control)
Son uçtan son uca akış kontrolü ile değişken boyutlu pencere boyu uygulamaları gerçekleştirilebilmektedir. Herbir TCP işlemi eşine (counterpart) “alış” pencere boyutunu bildirir. “Alış” penceresi boyutu karşılıklı olarak belirlenir. Bu boyut her iki TCP için de geçerlidir. Başlangıçta bu pencere boyutu düşüktür ve başarılı veri alışverişi sırasında arttırılır.
Gönderici, pencere boyutunu büyütür ve bu yeni pencere boyutu ile baytları alıcıya gönderir. Eğer alıcı göndericiye pencere boyutunu düşürmesini bildirirse o zaman gönderici pencere boyutunu düşürür. Böyle bir bildirimin olmaması yeni pencere boyutunda anlaşıldığını gösterir.
TCP segmentleri, IP paketi içinde taşınırlar.
TCP Başlığı
|
TCP Verisi
| |||||
IP başlığı
|
IP verisi
| |||||
Ethernet başlığı
|
Ethernet Verisi
|
CRC
|
TCP Paket Formatı:
TCP, internetin temel aktarım protokolüdür. Üst katmanlardan gelen her türlü uzunluktaki paketi kabul etmekte ve karşı taraftaki hosttaki TCP ‘ye tam çift yönlü (full duplex), geri bildirimli, bağlantı tabanlı (connection oriented), akış denetimli (flow control) olarak göndermektir.
TCP veriyi, yapısız bayt biçiminde sürekli göndermektedir. Her bayt bir sıra numara ile tanımlanmaktadır. Zamandan kazanmak ve band genişliğini optimum kullanmak için TCP aynı zamanda birden fazla üst katman çevirimleri yapabilmektedir.
Şekilde TCP paket formatı verilmiştir:
Kaynak Port
|
Hedef Port
| |||||||||||||||||||||||||||||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
32
| |||
Sıra Numarası (Sequence Number)
| ||||||||||||||||||||||||||||||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
32
| |||
Onay (Acknowledgment)
| ||||||||||||||||||||||||||||||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
32
| |||
TCP Başlık uzunluğu
|
Saklı (Reserved)
|
Bayraklar
|
Pencere
| |||||||||||||||||||||||||||||||
URG
|
ACK
|
PSH
|
RST
|
SYN
|
FIN
| |||||||||||||||||||||||||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
32
| |||
Hata Kontrolü (checksum)
|
Acil Göstergesi (Urgent Pointer)
| |||||||||||||||||||||||||||||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
32
| |||
Seçimlik
|
Doldurma Biti
| |||||||||||||||||||||||||||||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
32
| |||
Veri
|
TCP başlığındaki Alanların Anlamları:
Kaynak – Hedef Port:
Kaynak ve hedef port alanları bağlantının yerel son noktalarının tanımlarlar. Her host kendisi için 256’dan başlamak üzere port numarasına karar verebilir.
Sıra numarası (Sequence Number):
32 bitlik sıra numarası alanını gösterir. TCP mesajı tekrar düzgün sırada oluşturmak için sıra numarasını kullanır.
Onay Numarası (Acknowledgment Number):
TCP ‘de onay işlemi için kullanılır. TCP ‘nin geri bildirim mekanizması etkin band kullanımı için tasarlanmıştır. Her gönderilen veri için farklı bir geri bildirim paketi göndermek yerine, TCP bütün geribildirimleri geciktirmekte ve birkaç geribildirim gerektiğinde bunları tek bir pakette göndermektedir.
TCP Başlık Uzunluğu (TCP Header Length):
4 bitlik bu alan, TCP başlığındaki 32 bitlik kelime sayısını gösterir. Bu yolla segment içindeki verinin başladığı alan tespit edilir. Bu alana ihtiyaç duyulmasının nedeni Seçimlik alanın içeriğinin değişken uzunlukta olmasıdır.
Saklı (Reserved)
Gelecekte kullanılmak üzere bu 8 bitlik alan saklanmıştır. Normal uygulamalarda bu alan “0” yapılmalıdır.
Bayraklar (Flags)
Bayrak bitleri çeşitli denetim fonksiyonlarını sağlar. Bu bitler bağlantı kurma, bağlantı koparma ve denetim bilgisi için kullanılır.
URG Bayrağı
URGent (Acil) bayrağının 1 olması Acil Göstergesi (Urgent Pointer) bölümünün kullanımda olduğunu gösterir.
ACK Bayrağı
ACKnowledgment (Onay) bayrağının 1 olması Onay alanının geçerli olduğunu gösterir.
PSH Bayrağı
PuSH bayrağı, gönderen TCP ‘ye gönderilecek veriyi hemen göndermesi için emir verir ve bu emir alt katmanlara iletilir. Benzer biçimde, alt katmandan gelen verinin hemen üst katmana aktarılması için TCP ‘yi zorlar. Normalde TCP bu işlemi kendi önceliğine göre yapar ancak PuSH bayrağı bu önceliği değiştirebilir.
ReSeT Bayrağı
ReSeT bayrağı sorunlu veya kopmak üzere olan bağlantıları başlangıç durumuna getirmekte kullanılır.
SYNchronize Bayrağı
SYNchronize Bayrağı, gönderilen ilk paket ise gönderen ve alan tarafından kurulur. Bunun kurulması gönderen ve alanın sanal bağlantı isteğinde bulundukları anlamını taşır. Bağlantıyı gerçekleştirmek için üç aşamalı işlem gerçekleştirilir.
FINish Bayrağı
Bu bayrak gönderenin daha fazla verisi olmadığını belirtir ve bağlantı koparılabilir.
Pencere (Window):
16 bitlik pencere alanı onay (acknowledgment) alanından, göndericinin iletmek istediği alana kadar iletilecek veri baytlarının sayısını verir. Sıra numarası ve onay numarası ile birlikte bu alan TCP ‘nin kayan pencere mekanizmasında akış denetimi sağlar.
Hata Kontrolü (Checksum):
16 bitlik bu alan veri transferinde başlığın bozulup bozulmadığını kontrol eder. Eğer hesaplanan hata kontrolü alanı, paketteki hata kontrolü alanı ile aynı değer olmaz ise paket atılır.
Acil Göstergesi (Urgent Pointer):
16 bitlik acil göstergesi, paketin sıra numarasından hesaplanan göreli başlangıç değeridir. Bu alan veri içinde acil bilginin nerede bulunacağını belirtir. Gerçekte, bu alandaki değer acil verinin son baytından sonraki değeridir. Acil veri, üst katman protokolü için önemli olan veridir. Genelde bu alandaki değer klavye kesilme sinyali gibi bilgiyi denetler. TCP bu veri üzerinde herhangi bir işlem yapmaz.
Seçimlik (Options):
Değişken değerli seçenekler alanı, eğer varsa, acil gösterge alanından sonra gelir. En çok kullanılan seçenek olan “en uzun segment boyu” seçeneği bağlantı kurma sırasında TCP ‘nin kabul edebileceği en büyük band içi segmenti belirtir.
TCP port numaraları:
Port Numarası
|
Tanımı
|
1
|
TCP Multiplexer
|
5
|
Remote Job Entry
|
7
|
Eko
|
9
|
Discard
|
11
|
Aktif kullanıcı
|
15
|
Who is up
|
19
|
Karakter Üreteci
|
20
|
FTP (Data)
|
21
|
FTP (Kontrol)
|
23
|
TELNET
|
25
|
SMTP
|
43
|
Who is
|
53
|
DNS
|
67
|
Bootstrap Protokol Server’ı
|
68
|
Bootstrap Protokol İstemcisi
|
103
|
X.400 Posta Servisi
|
104
|
X.400 Posta Yollama
|
111
|
Sun RPC
|
139
|
NETBIOS Oturum Servisi
|
Uygulama Katmanı Protokolleri:
Dosya Transfer Protokolü [File Transfer Protocol (FTP)]
FTP, kullanıcıların iki host arasında dosya kopyalamalarına olanak tanır. FTP aynı zamanda, bağlanma, klasör listesi alma, dosya işlemleri, komut işletimi ve denetim işlemlerini de yapabilmektedir. Bu işlemler, host üzerindeki sistemden ve donanım platformundan bağımsız olarak yapılabilmektedir. FTP, güvenilir servis vermek amacıyla aktarım katmanında TCP ’yi kullanır.
FTP ‘nin temel olarak sağladığı imkanlar şunlardır:
- Dosyalara uzaktan erişim
- Dosya paylaşımı
- Veri aktarımının güvenilir ve verimli yapılması
FTP, bir FTP server’ın çalıştığı sistem üzerinde tanımlı bir kullanıcı kodu ve şifre ile sisteme bağlanılmasını gerektirir. Bağlanma için gerekli işlemler FTP tarafından yerine getirilir. Böylece kullanıcı karşı sistemin dizinlerini ve dosyalarını bir liste halinde kendi ekranında görebilir.
Kullanıcılar, etkileşimli olarak dosya değiştirme işlemi yapabilirler. FTP programdan programa veri transferi yapabilir.
FTP veri transferinde iki ayrı TCP bağlantısı kullanılır:
- Kontrol Komutları (Control Commands) ile bağlantı
- Veri Transferi için bağlantı
FTP komut kanalı için Telnet protokolü kullanır. Bu yönüyle sadece kontrol işlemlerinde FTP ile TCP arasında bir de Telnet protokolü fonksiyonları devreye girer.
FTP tüm standartları destekleyerek dosya transferi yapan bir protokol değildir. FTP, veri transferinde kısıtlı sayıda dosya türünü destekler. Her iki uçta dosya transferinin yapılabilmesi için aynı dosya yapısı kullanılıyor ya da destekleniyor olmalıdır. Böyle değilse FTP standartlarına dönüşümü sağlayacak mekanizmalara sahip olmalıdır. FTP konfigüre edilebilen bir protokoldür.
Basit Posta Transfer Protokolü [Simple Mail Transfer Protocol (SMTP)]
Elektronik posta hizmeti sunar. Postaların güvenli bir şekilde adreslerine ulaşabilmesi için TCP servislerinden yararlanır. (TCP Port : 25)
TELNET
Telnet bir terminal emülasyon protokolüdür. Telnet, bir bilgisayar sistemine uzaktan bağlanarak o sistemin bir terminaliymiş gibi çalışmak için kullanılır. Telnet için Telnet hizmeti sağlayan bir server gerekir.
Basit Ağ Yönetim Protokolü [Simple Network Management Protocol (SNMP)]
SNMP, ağ üzerindeki bilgisayarların uzaktan izlenmesini ve bazı parametrelerinin değiştirilmesini sağlayan bir protokoldür.
İnternet yaygınlaştıkça ağlar arası bağlantıları sağlayan yönlendiriciler ve köprüler önem kazanmaya başlamıştır. SNMP ile yönlendirici ya da köprünün sağlıklı çalışıp çalışmadığını uzaktan izlemek mümkün olmaktadır. SNMP ile bir yönlendiricinin sabit diskinin dolup dolmadığı ya da bir portu üzerindeki trafik miktarı izlenebilir.
SNMP iki kısımdan oluşur:
- SNMP yönetim sistemi
- SNMP ajanları
SNMP yönetim sistemi özel bir yazılımdır ve ağdaki yazılım ve donanım unsurlarının SNMP parametrelerini sorgular, bunlardan çeşitli raporlar ya da uyarılar çıkarabilir.
SNMP ajanları ise kendilerine sorulduğunda ya da önceden belirlenmiş olaylar gerçekleştiğinde SNMP parametrelerini yönetici sistemlere bildirirler.
Domain İsim Sistemi [Domain Name System (DNS)]
DNS, 256 karaktere kadar büyüyebilen host isimlerini IP ‘ye çevirmek için kullanılan bir sistemdir.
DNS, isim server’ları ve çözümleyicilerinden oluşur. İsim server’ları host isimlerine karşılık düşen IP adresi bilgilerini tutarlar. Çözümleyiciler ise DNS istemcilerdir.
3 çeşit DNS server’ı vardır:
- Birincil İsim Server’ı (Primary Name Server)
Bölgesiyle ilgili bilgileri kendisinde bulunan bölge dosyasından elde eder.
- İkincil İsim Server’ı (Secondary Name Server)
Bölgesiyle ilgili bilgileri bağlı bulunduğu bir DNS server’dan alır.
- Sadece Kaşeleyen İsim Server’ı (Caching Only Name Server)
Kendisinde bölge bilgilerinin tutulduğu bir dosya bulunmaz. Bağlı bulunduğu server’a sorarak topladığı bilgileri hem istemciye ulaştırır, hem de ön belleğine koyar.
Hiç yorum yok:
Yorum Gönder