Hafta 1: TCP/IP Protokol Kümesi

Amaçlar:

·         TCP/IP protokol kümesini tanımlamak.

·         TCP/IP protokol kümesinin tarihçesini ve temel bileşenlerini açıklamak.

I. TCP/IP Protokol Kümesi

Başta Internet olmak üzere, farklı teknolojilere sahip networklerin olması, bağımsız olarak yönetilmesi ve geliştirilmesi gibi özellikleri TCP/IP protokolünün en yaygın kullanılan protokol olmasına neden olmuştur.

Aslında TCP/IP protokolü diye adlandırmak çok doğru değildir. Çünkü TCP/IP çok sayıda protokol ve yardımcı programlardan oluşan bir protokol kümesidir (protocol stack).

Şekil: TCP/IP Protokol Kümesi

A. Tarihçe

TCP/IP, endüstri standardı olan bir protokoldür. Bütün networkler için geliştirilmiştir. TCP/IP protokolü A.B.D Savunma Bakanlığı projesi olarak 1970'lerde temelleri atılmıştır. U.S. Department of Defense Advanced Research Projects Agency (DARPA) projesi daha sonra ARPANET olarak kullanılmaya başlanmıştır. ARPANET adı verilen proje Üniversite ve kamu kuruluşlarını bir birine bağlamayı sağlayacak bir ağ geliştirme amacını taşımaktaydı.

TCP/IP, DARPA'nın farklı bilgisayarlar arasında iletişim kurması gerektiğinde geliştirilmiştir. O günlerde bu oldukça zor bir görevdi. TCP/IP işletim sistemi ve bilgisayardan bağımsız olarak bilgisayarların iletişim kurmasını planlamıştı.

O zamanların TCP/IP standartları ve amaçları DoD (Department of Defence) olarak anılır. Ardından yapılan gelişmeler IAB (Internet Activities Board) adı verilen gruplar tarafından yapılmaktadır.

Şu anda da RFC (Request For Comments) adı verilen makalelerce TCP/IP'nin gelişmesi devam ettirilmektedir.

B. RFC (Request For Comments)

RFC (Request For Comments), TCP/IP'yi tanımlayan makalelerdir (dokümanlar). Bu makaleler herhangi bir kişi tarafından hazırlanabilir ve NIC yöneticisine gönderilir. Her RFC'nin bir numarası vardır. Örneğin SNMP yönetimi RFC 1065 ile tanımlanırken, kabul edilen SNMP kullanımı RFC 1155 numaralıdır.

Günümüz teknolojilerindeki gelişmeler, TCP/IP için bir gelişmenin olmasını zorunlu kıldığında komiteler önerilen RFC'leri kabul ederek yayınlarlar.

C. Tasarım Amaçları

İlk başta U.S Savunma Bakanlığı (Department of Defence) TCP/IP çalışmalarına başladığında çok sayıda tasarım amaçlarına sahipti. Bunlardan bazıları:

Donanım ve yazılım firmalarından bağımsız olacak.

Yerleşik bir hata dayanıklılığına sahip olacak. Networkün bir kısmı çöktüğünde diğer bir kısmı çalışabilecek.

Etkin bir veri aktarım hızına sahip olacak.

D. Neden TCP/IP

·         Üreticiden bağımsız olması.

·         Değişik ölçekli bilgisayarları birbirine bağlayabilmesi.

·         Farklı işletim sistemleri arasında veri alışverişi için kullanılabilmesi.

·         UNIX sistemleriyle tam uyumluluk.

·         Birçok firma tarafından birinci protokol olarak tanınması ve kullanılması.

·         Internet üzerinde kullanılması.

·         Yönlendirilebilir (routable) protokol olması.

·         Yaygın bir adresleme şemasına sahip olması,

ve daha sayabileceğimiz onlarca özellik TCP/IP'nin yaygın olarak kullanılmasını sağlar.

E. TCP/IP Mimarisi

TCP/IP, OSI 3 ve 4. katmanda çalışan bir protokoldür. Şekilde de görüldüğü gibi TCP/IP data link ve fiziksel katmanda bağımsız olarak çalışmaktadır.

Şekil: TCP/IP Mimarisi

II. Microsoft TCP/IP

Microsoft TCP/IP, Windows 2000 gibi Microsoft işletim sistemleri üzerinde network işlemlerinin yapılmasın olanaklı kılar. Windows 2000'i TCP/IP ile birlikte kullanmak şu üstünlükleri sağlar:

·         Bir standart, routable networking protocol. Bütün modern network işletim sistemlerinin TCP/IP desteği vardır.

·         Farklı sistemleri birbirine bağlayan bir teknoloji. File Transfer Protocol (FTP) ve Telnet gibi.

·         İstemci sunucu uygulama geliştirmek için Microsoft TCP/IP, Windows Sockets programlama arabirimi sağlar.

·         Internet'e erişim.

III. Gözden Geçirme

1. Neden TCP/IP bir protokol kümesidir?
2. Neden TCP/IP yaygın kullanılan standart bir protokol seçilmiştir?
3. DoD nedir?
4. TCP/IP'nin özelliklerini sayınız?
5. Routable (yönlendirilebilir) özelliği TCP/IP'ye ne gibi özellikler sağlamıştır.
6. Host Nedir? Yanıt: TCP/IP dokümanlarında yaygın olarak bir host sözcüğünden bahsedilir. TCP/IP protokol kümesini üzerinde çalıştıran bilgisayar ve diğer aygıtlara host adı verilir.


Hafta 2: TCP/IP Protokol Kümesinin Mimarisi

Amaçlar:

·         TCP/IP protokol kümesinin mimarisini açıklamak.

·         TCP/IP'nin temel bileşenlerini açıklamak.

I. TCP/IP Mimarisi

TCP/IP, OSI 3 ve 4. katmanda çalışan bir protokoldür. Şekilde de görüldüğü gibi TCP/IP data link ve fiziksel katmanda bağımsız olarak çalışmaktadır.

Şekil: TCP/IP Mimarisi

A. TCP/IP Protokol Kümesi

TCP/IP protokol kümesi Windows 2000 networkünün oluşmasını sağlar. TCP/IP protokol kümesi altı çekirdek protokol ve bir dizi yardımcı program (utility) içerir.

Altı çekirdek protokol:

·         TCP (Transmission Control Protocol)

·         UDP (User Datagram Protocol)

·         IP (Internet Protocol)

·         ICMP (Internet Control Message Protocol)

·         IGMP (Internet Group Management Protocol)

·         ARP (Address Resolution Protocol)

B. TCP (Transmission Control Protocol)

TCP protokolü connection-oriented olarak adlandırılan ve iki bilgisayar arasında veri transferi yapılmadan önce bağlantının kurulması ve veri iletiminin garantili olarak yapıldığı bir protokoldür. TCP iletişiminde veri paketleri kullanılır. Ayrıca gönderen ve alan uygulamalarda da port bilgisi eklenir. Port (çıkış), kaynak ve hedef uygulamanın iletişimini sağlar.

Şekil: TCP/IP Protokol Kümesi


TCP, güvenilir ve bağlantı (connection-oriented) temelli bir servistir. Bağlanı temelli olması bağlantının bilgisayarlar arasında veri değişiminden önce yapılması anlamına gelir. Güvenilir olması ise iletimin kontrolünün yapılması ile ilgilidir. Belli aralıklarla ACK bilgisi ile veri gönderimi kontrol edilir.

TCP byte-stream iletişimi kullanır. Bu yöntemde TCP segmentlerindeki datalar bir bayt dizisi olarak işlenir. Aşağıdaki tabloda TCP header içindeki ana alanlar yer almaktadır:

Tablo: TCP Header içindeki ana alanlar

Field

Function

Source Port

Göderenin TCP portu.

Destination Port

Alanın (hedefin) TCP portu.

Sequence Number

TCP segmenti içindeki birinci baytın sıra numarası.

Window

TCP ara bellek (buffer) alanının şu anki mevcut büyüklüğü.

TCP Checksum

TCP header ve TCP datanın bütünlüğünü kontrol etmek için kullanılır.

 

TCP Portları

Bir TCP portu mesaj iletişiminde kullanılır:

Port  Numarası

İşlevi

21

FTP

23

Telnet

53

DNS

..

..

C. UDP (User Datagram Protocol)

UDP'de bir gönderim katmanı protokoldür. Ancak UDP iletiminde sağlama yapılmadığı için gönderim garantisi olmaz. Broadcast iletiminde, az miktardaki verilerin iletiminde UDP paketleri kullanılır. UDP iletimi, gönderimin garanti edilmediği connectionless türü bir iletişim kurar.

NOT: Bu dokümanlar Faruk Çubukçu tarafından hazırlanmıştır. Ticari amaçlı olarak kullanılmaz. Daha fazla bilgi için www.farukcubukcu.com adresine bakınız.

UDP Servisi

UDP bağlantısız (connectionless) datagram servisidir. UDP kaybolan verilerin kurtarılması konusunda herhangi bir garanti vermez. Bu nedenle güvenilir bir protokol olarak nitelendirilmez.

UDP alınan verilerin garantisine gereksinim duymayan uygulamalar tarafından kullanılır. NetBIOS name servisleri, NetBIOS datagram servisi ve SNMP servisleri UDP kullanan uygulamalara örnektir. Aşağıdaki tabloda UDP header içindeki ana alanlar yer almaktadır:

Tablo : UDP Header içindeki ana alanlar

Alan

İşlevi

Source Port

Gönderen bilgisayarın UDP portu.

Destination Port

Alıcı bilgisayarın UDP portu.

UDP Checksum

UDP header ve UDP datasının kontrolü için kullanılır.

D. ARP (Address Resolution Protocol)

Network üzerindeki bilgisayarlar (host olarak adlandırıyoruz) iletişim kurmak için birbirlerinin donanım adreslerini (MAC adresi) bilmeleri gerekir. ARP, broadcast (genel yayın) temelli çalışan ağlarda donanım adresini bulmak için kullanılır.

ARP, donanım adresini bulduktan sonra, IP adresini ve donanım adresini ARP cache olarak adlandırılan bir alanda saklar. Bu bir sonraki istenilen hedef adresinin fiziksel yerinin kolayca bulunmasını sağlar. Bakınız: "Uzak bir IP adresinin çözülmesi".

ARP cache içinde statik ve dinamik adresler bulunur. Dinamik kayıtlar otomatik olarak eklenir ve silinir. Statik adresler ise bilgisayar restart edilinceye kadar bellekte kalır.

1. Uzak Bir IP Adresinin Çözülmesi

Eğer hedef IP adresi uzaktaki bir networke ait ise, bir ARP broadcast sayesinde router bulunur ve datagramlar hedef bilgisayarlara (hosts) ulaştırılır.

Bu işlem şu şekilde yerine getirilir:

1.      İletişim isteği başlatıldığında, hedef (destination) IP adresi uzak adres (remote address) olarak tanımlanır.

2.      Belirtilen gateway için bir eşleşme bulunmadığında bir ARP isteği yayınlanır. ARP isteği hedef host için değil de gateway adresi yapılır.

3.      Router'da IP hedef adresinin yerel (local) ya da uzak (remote) olduğunu belirler. Eğer adres yerelse, router donanım adresini bulmak için ARP'yi kullanır. Eğer adres uzaksa, router kendi routing tablosuna bakar.

4.      Hedef bilgisayar (host) isteği aldıktan sonra, bir ICMP yanıtı düzenler. Belirtilen gateway'in donanım adresi ARP cache içinde yoksa, onu sağlamak için bir ARP broadcast kullanılır.

Şekil: Uzak (remote) IP adreslerinin çözülmesi.

E. IP (Internet Protocol)

Hedef bilgisayarın network üzerindeki yerini bulur. Paketlerin adreslenmesi ve network üzerindeki bilgisayarlar arasında yönlendirilmesini sağlar. IP iletimi de UPD gibi gönderimin garanti edilmediği connectionless türü bir iletişim kurar.

IP, iki bilgisayar (aygıt) paketlerin yönlendirilmesini sağlayan bağlantısız bir protokoldür. Bağlantısız (connectionless) olması oturumun iletişimden önce kurulmamasıyla ilgilidir. Bununla birlikte veri iletimindeki başarı da garantili olmaz. İletimin garantisi daha üst düzey protokol olan TCP ile sağlanır.

Bir IP paketi bir IP Header (başlık bilgisi) ve bir IP payload’tan oluşur. Aşağıdaki tabloda IP header paketinin alanları yer almaktadır:

Tablo: IP Header içindeki alanlar

IP Header alanı

İşlevi

Kaynak IP Adresi

Kaynak verinin IP adresi.

Hedef IP Adresi

Gideceği yerin IP adresi.

Tanımlama

Bir spesifik IP datagramını tanımlamak için kullanılır.

Protokol

Paketlerin TCP, UDP, ICMP ya da diğer protokollerle iletişimi ile ilgili.

Checksum

IP header’ın bütünlüğünü kontrol etmek için kullanılan basit bir matematiksel hesaplama.

Time-to-Live (TTL)

Datagramın dolaşacağı network sayısını belirler. TTL sayesinde paketlerin sürekli olarak dolaşması engellenir.

F. Port ve Soketler

Uygulamaların birbirleriyle iletişim kurmaları için belli TCP/IP portları kullanılır. Örneğin FTP Server'lar port 80 kullanarak diğer uygulamalarla iletişimde bulunurlar.

TCP/IP protokolü 65536 tane port kullanımına olanak tanır. Standart port numaraları IANA (Internet Assigned Nımbers Authority) tarafından sağlanır.

Tablo: TCP port numaraları:

Port Numarası

Açıklama

1

TCP Multiplexer

20

FTP (data)

21

FTP (control)

23

Telnet

25

SMTP

53

DNS

80

http

103

X.400 Mail Service

102

X.400 Mail Sending

139

NetBIOS Session Service

..

...

      
NOT: Diğer port numaraları için EK bölümündeki TCP Portları tablosuna bakınız.

Soketler ise yine bir network iletişimde kullanılan IP adresi ve port bilgisidir. Bir uygulama bir uzak uygulamayla iletişim kurmak için bir connectionless (bağlantı temelli olmayan) bağlantı kurar. Buna socket denir.

G. Broadcast

Network üzerindeki hostların (bilgisayarlar ve diğer aygıtlar) birbirleriyle iletişim kurması için fiziksel adreslerin bilinmesi gerekir. Bu durumda network üzerinde herkese gidecek bir ARP paketi gönderilecek hostların MAC adresleri ve IP adresleri belirlenir.

Diğer bir deyişle hedef adresinin bilinmediği ve paketin network üzerinde bütün hostlara iletilmesi gerektiğinde kullanılan bir adresleme yöntemidir.

II. Diğer İletişim Protokolleri

TCP/IP protokol kümesi FTP, Telnet ve SMTP gibi iletişim amaçlı kullanılan protokollere de sahiptir:

A. FTP

FTP ptotokolü iki host arasında dosya kopyalamayı sağlar. FTP'nin en önemli özelliği bu işlemleri farklı donanım ve işletim sistemleri üzerinde çalışabilmesidir.

FTP (File Transfer Protocol), transport katmanında ve TCP'yi kullanarak çalışır.

FTP kullanımı:

1.      Bir FTP servisinin başlatılması için FTP istemcisi çalıştırılır.

2.      Karşında bağlanılacak FTP Server'ın IP adresi yazılır.

3.      Ardından buraya bağlanmak için bir kullanıcı adı (user name) sorulur.

4.      Kullanıcı adını ve şifresini giren kullanıcı FTP Server'a bağlanır.

NOT: WWW'nin yaygın olmadığı durumlarda FTP ile dosya alışverişi yaygın yapılmaktaydı. Şu anda da Web tarayıcıları FTP kullanarak dosya indirmeye yardımcı olurlar.

B. TelNet

TelNet, PC'ler üzerinden (onları bir terminal gibi kullanarak) terminal sunucusu yazılımı çalıştıran bir Host'a erişmeyi sağlayan protokoldür.

TelNet ile uzaktaki sunucuya bağlanan kullanıcı orada bir uygulamayı çalıştırabilir.

Telnet için gerekli yazılımlar:

·         Client-TelNet

·         Server-TelNet

Client-TelNet yazılımı kullanıcının terminalinde çalışır. Bu yazılım TelNet sunucusuyla iletişim kurmayı sağlar. İletişim TCP ile yapılır.

Server-TelNet ise host üzerinde çalışır ve gelen istekleri karşılar.

NOT: WWW'nin yaygın olmadığı durumlarda TelNet ile iletişim kurmak yaygındı.

C. SMTP

Hostlar arasında mesaj iletişimini sağlayan bir uygulama katmanı (application layer) protokolüdür. SMTP'nin ana amacı postalama yapmaktır. Mesajın düzenlenmesi gibi işlemlerle uğraşmaz.

SMTP iletişiminde mesaj üç aşamadan Gönderici-SMTP ile Alıcı-SMTP arasında yapılır.

1.      Birinci aşamada bir TCP bağlantısı (connection-based) kurulur.

2.      İkinci aşamada veri aktarımı (data transfer) yapılır.

3.      Üçüncü aşamada bağlantı sona erdilir.

NOT: Bu dokümanlar Faruk Çubukçu tarafından hazırlanmıştır. Ticari amaçlı olarak kullanılmaz. Daha fazla bilgi için www.farukcubukcu.com adresine bakınız.

III. Gözden Geçirme

1. TCP/IP protokol kümesinin çekirdek protokolleri hangisidir?
2. ARP protokolünün görevi nedir?
3. FTP ile Telnet protokollerini karşılaştırın?

EK: TCP/UDP Portları

Tablo: TCP Portları

Port

Anahtar Sözcük

Açıklama

0/tcp, udp

 

Reserved

1/tcp, udp

tcpmux

TCP Port Service Multiplexer

2/tcp, udp

compressnet

Management Utility

3/tcp, udp

compressnet

Compression Process

4/tcp, udp

 

Unassigned

5/tcp, udp

rje

Remote Job Entry

6/tcp, udp

 

Unassigned

7/tcp, udp

echo

Echo

8/tcp, udp

 

Unassigned

9/tcp, udp

discard

Discard; alias=sink null

10/tcp, udp

 

Unassigned

11/udp

systat

Active Users ; alias=users

12/tcp, udp

 

Unassigned

13/tcp, udp

daytime

Daytime

14/tcp, udp

 

Unassigned

15/tcp, udp

 

Unassigned [was netstat]

16/tcp, udp

 

Unassigned

17/tcp, udp

qotd

Quote of the Day; alias=quote

18/tcp, udp

msp

Message Send Protocol

19/tcp, udp

chargen

Character Generator; alias=ttytst source

20/tcp, udp

ftp-data

File Transfer [Default Data]

21/tcp, udp

ftp

File Transfer [Control], connection dialog

22/tcp, udp

 

Unassigned

23/tcp, udp

telnet

Telnet

24/tcp, udp

 

Any private mail system

25/tcp, udp

smtp

Simple Mail Transfer; alias=mail

26/tcp, udp

 

Unassigned

27/tcp, udp

nsw-fe

NSW User System FE

28/tcp, udp

 

Unassigned

29/tcp, udp

msg-icp

MSG ICP

30/tcp, udp

 

Unassigned

31/tcp, udp

msg-auth

MSG Authentication

32/tcp, udp

 

Unassigned

33/tcp, udp

dsp

Display Support Protocol

34/tcp, udp

 

Unassigned

35/tcp, udp

 

Any private printer server

36/tcp, udp

 

Unassigned

37/tcp, udp

time

Time; alias=timeserver

38/tcp, udp

 

Unassigned

39/tcp, udp

rlp

Resource Location Protocol; alias=resource

40/tcp, udp

 

Unassigned

41/tcp, udp

graphics

Graphics

42/tcp, udp

nameserver

Host Name Server; alias=nameserver

43/tcp, udp

nicname

Who Is; alias=nicname

44/tcp, udp

mpm-flags

MPM FLAGS Protocol

45/tcp, udp

mpm

Message Processing Module

46/tcp, udp

mpm-snd

MPM [default send]

47/tcp, udp

ni-ftp

NI FTP

48/tcp, udp

 

Unassigned

49/tcp, udp

login

Login Host Protocol

50/tcp, udp

re-mail-ck

Remote Mail Checking Protocol

51/tcp, udp

la-maint

IMP Logical Address Maintenance

52/tcp, udp

xns-time

XNS Time Protocol

53/tcp, udp

domain

Domain Name Server

54/tcp, udp

xns-ch

XNS Clearinghouse

55/tcp, udp

isi-gl

ISI Graphics Language

56/tcp, udp

xns-auth

XNS Authentication

57/tcp, udp

 

Any private terminal access

58/tcp, udp

xns-mail

XNS Mail

59/tcp, udp

 

Any private file service

60/tcp, udp

 

Unassigned

61/tcp, udp

ni-mail

NI MAIL

62/tcp, udp

acas

ACA Services

63/tcp, udp

via-ftp

VIA Systems - FTP

64/tcp, udp

covia

Communications Integrator (CI)

65/tcp, udp

tacacs-ds

TACACS-Database Service

66/tcp, udp

sql

*net Oracle SQL*NET

67/tcp, udp

bootpc

DHCP/BOOTP Protocol Server

68/tcp, udp

bootpc

DHCP/BOOTP Protocol Server

69/ udp tftp Trivial

File

Transfer

70/tcp, udp

gopher

Gopher

71/tcp, udp

netrjs-1

Remote Job Service

72/tcp, udp

netrjs-2

Remote Job Service

73/tcp, udp

netrjs-3

Remote Job Service

74/tcp, udp

netrjs-4

Remote Job Service

75/udp

 

Any private dial out service

76/tcp, udp

 

Unassigned

77/tcp, udp

 

Any private RJE service

78/tcp, udp

vettcp

Vettcp

79/tcp, udp

finger

Finger

80/tcp, udp

www

World Wide Web HTTP

81/tcp, udp

hosts2-ns

HOSTS2 Name Server

82/tcp, udp

xfer

XFER Utility

83/tcp, udp

mit-ml-dev

MIT ML Device

84/tcp, udp

ctf

Common Trace Facility

85/tcp, udp

mit-ml-dev

MIT ML Device

86/tcp, udp

mfcobol

Micro Focus Cobol

87/tcp, udp

 

Any private terminal link; alias=ttylink

88/tcp, udp

kerberos

Kerberos

89/tcp

su-mit-tg

 SU/MIT Telnet Gateway

89/udp

su-mit-tg

SU/MIT Telnet Gateway

90/tcp, udp

 

DNSIX Security Attribute Token Map

91/tcp, udp

mit-dov

MIT Dover Spooler

92/tcp, udp

npp

Network Printing Protocol

93/tcp, udp