Tcp / Ip Nedir ?
TCP / IP MODELİ
*
Application Layer : OSI de 7.6. ve 5. katmanlara karşılık gelir.
*
Transport Layer : OSI de 4. katman olan Transport katmanına karşılık gelir.
*
Internet Layer : OSI de 3. katmana karşılık gelir.
*
Network Access : OSI de 1. ve 2. katmanlara karşılık gelir.
Bu katmanlarda sırasıyla şu işlemler yapılmaktadır.
*
FTP : File Transfer Protocol
*
HTTP : Hypertext Transfer Protocol
*
SMTP : Simple Mail Transfer Protocol
*
DNS : Domain Name System
*
TFTP : Trivial File Transfer Protocol (Konfigürasyon dosyaları alıp gönderir.)
*
TCP : Transmission Control Protocol
* UDP : User Datagram Protocol
TCP/IP ile OSI'nin KARŞILAŞTIRILMASI
TCP/IP Modelinde Application ve Transport Layer�lar Protocol�leri oluşturmaktadırlar. Internet ve Network Access Layer�lar ise Network�ü oluşturur.
OSI Modelinde ise; Application, Presentation ve Session Layer�lar Application Layer yani Uygulama katmanı olarak bilinirler. Diğer 4 katman olan Transport, Network, Data Link ve Physical ise Data Flow Layet yani Data İletim, akım katmanlarıdır.
TCP / IP
--------------------------------------------------------------------------
1. TCP/IP
1.1- Nedir TCP/IP
1.2- TCP/IP'nin Isleyisi
1.2.1 Protokoller
Ag seviyesi protokolleri
--------------------------------------------------------------------------
Internetin belkemigi olan TCP/IP ile ilgili bazi temel bilgileri bilmeden ne dönüp bittigini anlamak zordur. Bu yüzden internet savaslari konusunda ayrintiya girmeden önce kisaca TCP/IP protokolüne deginmek istedim. Bu konuda kisaca TCP/IP'nin ne oldugunu ve nasil çalistigini görecegiz. Burda verilen bilgiler temel düzeydedir ve ileride görecegimiz konulari daha kolay anlamaniza yardimci olacaktir.
1.1- Nedir TCP/IP
TCP/IP internette veri transferi için kullanilan iki protokolü temsil eder. Bunlar Transmission Control Protokol (TCP) ve Internet Protocol (IP). Ve bu protokoller de daha genis olan TCP/IP protokol grubuna aittir. TCP/IP'de bulunan protokoller internette veri transferi için kullanilir ve internette kullanilan her türlü servisi saglarlar. Bunlarin arasinda elektronik posta transferi, dosya transferi, haber gruplari, WWW erisimi gibi servisler TCP/IP sayesinde kullanicilara sunulmaktadir.
TCP/IP protocol grubunu ag seviyesi protokolleri ve uygulama seviyesi protokolleri olarak iki gruba ayirabiliriz.
Ag seviyesindeki protokoller genellikle kullaniciya görünmeden sistemin alt seviyelerinde çalisirlar. Örnek olarak IP protokolü kullaniciyla uzak bir makine arasindaki paket iletimini saglar. IP ag seviyesinde diger protokollerle etkilesimli olarak çalisarak paketlerin hedef adrese gönderilmesini saglar. Çesitli ag araçlari kullanmadiginiz sürece sistemdeki IP trafigini ve neler dönüp bittigini anlayamazsiniz. Bu araçlar agda gidip gelen IP paketlerini yakalayabilen sniffer'lardir. Sniffer'lar konusuna ileriki konularda ayrintiyla deginecegiz.
Uygulama seviyesi protokolleri sistemde daha üst düzeyde çalisirlar ve kullaniciya görünürler. Örnek olarak Dosya Transfer Protokolünü (FTP) verebiliriz. Kullanici istedigi bir bilgisayara baglanti isteginde bulunur ve baglanti yapildiktan sonra dosya transferi islemini gerçeklestirir. Ve bu karsilikli transfer islemleri kullaniciya belli bir seviyede görünür, giden gelen byte sayisi, meydana gelen hata mesajlari... gibi.
Kisaca TCP/IP internette veri transferini saglayan protokoller grubudur.
Burda TCP/IP'nin tarihçesine girmeyecegim söyleyecegim tek sey TCP/IP diger protokollere göre çok fazla avantaja sahip oldugu için çok kisa sürede en yaygin kullanilan protokol haline gelmistir. Artik internetin belkemigi haline gelen TCP/IP herhalde üzerinde en çok çalisilan ag protokolüdür.
Günümüzde artik TCP/IP sadece internet degil bir çok alanda kullaniliyor. Intranet'ler mesela TCP/IP kullanilarak olusturulmaktadir. Bu tip bir sistemde TCP/IP'yi kullanmak diger protokollere göre avantajlar içerir. En basitinden TCP/IP hemen hemen her türlü sistemde desteklendigi için çok kolay bir sekilde heterojen sistemler kurulabilir. Iste internette tamamen heterojen bir sistem oldugu için TCP/IP en uygun protokoldür.
TCP/IP protokolü günümüzde artik hemen hemen tüm isletim sistemlerinde desteklenmektedir. UNIX, DOS (Piper/IP ile), Windows (TCPMAN ile), Windows 95/98/2000/Me, Windows NT, Machintosh (MacTCP), OS/2, AS/400 OS/400 sistemlerinde TCP/IP destegi gelmektedir. Tabi her sistemin TCP/IP gerçeklemesi farkli oldugundan servis kalitesi de farklilklar gösterebilir. Ancak temel olarak sunulan servisler aynidir ve birbiriyle uyumlu olarak çalisirlar.
1.2- TCP/IP'nin Isleyisi
TCP/IP protokol yiginini kullanarak çalisir. (TCP/IP Stack) Bu yigin iki makine arasindaki veri transferini saglamak için gereken tüm protokollerin birlesmis bir halidir. Bu yigin kisaca en üstte "uygulama seviyesi", daha sonra "transport seviyesi", "ag seviyesi", "datalink seviyesi" ve "fiziksel seviye"'lerden meydana gelir. Bu seviyelerde en üstte yakin olan seviyeler kullaniciya daha yakindir, alta yakin olan seviyeler ise kullanicidan habersiz olarak çalisan seviyelerdir. Örnek olarak en üst düzey olan uygulama seviyesinde FTP, Telnet gibi programlari örnek verebiliriz. Bu programlari çalistirdiginizda diger sisteme bir baglanti kurulur ve veri transferi yapilir. Siz sadece yaptiginiz islemlerle ilgili sonuçlari ve olaylari görürsünüz ancak bir veri gönderdiginizde bu veri ilk önce sizin bilgisayarinizdaki bu TCP/IP protokol yigininda asagiya dogru inmek zorundadir. Yani uygulama seviyesinden, ftp'de verdiginiz bir komut mesela, transport seviyesine, ordan ag seviyesine ve en sonunda fiziksel seviyeye iner ve artik diger bilgisayara ulasmak üzere internet aginda yada yerel bir agda uzun yolculuguna baslar. Gidecegi makinenin fiziksel seviyesine ulasana kadar veriler genellikle bir yada daha fazla ag geçidinden geçerler. (tracert komutu belirli bir hedefe hangi geçitlerden geçerek gidilecegini veren komuttur) En sonunda diger makineye ulasinca yine uygulama seviyesine ulasincaya kadar, bu sefer karsida çalisan ftp sunucusuna, yine bu TCP/IP protokol seviyelerini bir bir yukari dogru asmak zorundadir.
Bu arada bu seviyelere ne gerek var diyebilirsiniz. Ancak bu seviyelerin her biri degisik bir görevi üstlenmektedir. Bir seviye fiziksel olarak verilerin gönderilmesi isini yaparken baska bir seviye verileri ufak paket dedigimiz parçaciklara bölerek iletisim isini üstlenir, baska bir seviye ise iletisimde meydana gelebilecek hatalari tespit eder. Bu sekilde tüm seviyeler bir uyum içinde çalisirsar ve her seviye karsi tarafta bulunan yine kendi seviyesindeki protokolle karsilikli iletisim içindedir. Daha yukarida yada daha asagidaki bir seviyede ne gibi bir isin yapildigina ve sonuçlariyla ilgilenmez.
1.2.1 Protokoller
Kisaca TCP/IP protokol yigininin nasil çalistigini gördük ve simdi kullanilan protokollere bir göz atalim.
Ag seviyesi protokolleri
Ag seviyesi protokolleri veri transferi islemini kullanicidan gizli olarak yaparlar ve bazi ag araçlari kullanilmadan farkedilemezler. Bu araçlar Sniffer'lardir. Sniffer bir cihaz yada bir yazilim olabilir ve ag üzerindeki tüm veri iletisimini izlemeye yarar. Bu araçlarin kullanilis maksadi agda meydana gelebilecek hatalari tespit etmek ve çözmektir. Ancak ileride de görecegimiz gibi sniffer'lar da hacker ve cracker'lar tarafindan kullanilan ölümcül makineler haline gelmistir.
Ag protokolleri arasinda önemli olarak Adres Çözümleme Protokolü (ARP), Internet Mesaj Kontrol Protokolü (ICMP), Internet Protokolü (IP) ve Transfer Kontrol Protokolü (TCP) protokollerini verebiliriz.
Kisaca bu protokollerin ne is yaptigina bir bakalim:
ARP protokolü: internet adreslerini fiziksel adrese dönüstürmek için kullanilir. Bir paketin bir bilgisayardan çiktiginda nereye gidecegini IP numarasi degil gidecegi bilgisayarin fiziksel adresi belirler. Iste bu adreste paketin gidecegi ip numarasi kullanilarak elde edilir. Ve bu islemden sonra paket hedef ip adresine sahip bilgisayara gitmek için gerekli yönlendirmelerle yolculuguna baslar. Bilgisayara takili olan ethernet kartlarinin bir ethernet adresi vardir. Ve bu adres IP adresinden farklidir. Bir paket makineden çiktigi anda gidecegi adres diger bir makinenin ag kartidir ve bu ag karti ile IP numarasi arasinda bir bag yoktur. Paket bu karta gidebilmesi için kartin fiziksel numarasini bilmek durumundadir. ARP adres çözümlemek istedigi zaman tüm aga bir ARP istek mesaji gönderir ve bu IP adresini gören yada bu IP adresine giden yol üzerinde bulunan makine bu istege cevap verir ve kendi fiziksel adresini gönderir. ARP isteginde bulunan makine bu adresi alarak verileri artik bu makineye gönderir.
Internet mesaj kontrol protokolü: ICMP protokolü iki yada daha fazla bilgisayar arasinda veri transferi sirasinda meydana gelebilecek hatalari ve kontrol mesajlarini idare eder. Bu nedenle ICMP ag problemlerini tespit etmek için çok önemli bir protokoldür. ICMP protokolü kullanilarak elde edebilecegimiz bazi sorunlar: bir bilgisayarin ayakta olup olmadigini kontrol etmek, ag geçitlerinin tikanik olup olmadigini kontrol etmek gibi...
ICMP protokolünde bilinen en yaygin ag araci ping'dir. ping programi karsidaki bir bilgisayarin çalisir durumda olup olmadigini kontrol etmek için kullanilir. Çalisma mantigi çok basittir, karsi bilgisayara echo paketleri gönderir ve geri gelmesini bekler. Eger paketler geri gelmezse ping hata mesaji verir ve karsi bilgisayarin aga bagli ve çalisir durumda olmadigi anlasilir.
Internet protokolü: IP protokolü TCP/IP protokol yigininda ag seviyesine aittir ve tüm TCP/IP protokol takiminin paket iletimi islemini saglar. Kisacasi IP verilerin internetteki iletisiminin kalbini olusturan protokoldür. IP paketi çesitli kisimlardan olusmaktadir. Paketin en basinda bir paket basligi vardir ve gönderilecek olan veriyle ilgili olarak gidecegi adres, gönderen adres gibi bilgileri içermektedir. Paketin geri kalan kismi ise gönderilecek veriyi içerir.
IP paketleriyle ilgili en ilginç sey bu paketler yolculugu sirasinda daha ufak paket boyutlari kullanan aglara rast geldiginde daha küçük parçalara bölünebilmesi ve karsi tarafta tekrar birlestirilmesidir.
Transfer kontrol protokolü: TCP prtokolü interntette kullanilan ana protokoldür. Dosya transferi ve uzak oturumlar gibi kritik isleri saglar. TCP diger protokollerden farklidir. Güvensiz bir iletisimm ortaminda verilerin ayni sekilde hedefe ulasacagindan emin olamazsiniz. Ancak TCP gönderilen verilerin gönderildigi sirayla karsi tarafa ulasmasini saglayarak güvenli veri iletimini saglar.
TCP iki makine arasinda kurulan sanal bir baglanti üzerinden çalisir. Üç kisimli bir islemden olusur bu baglanti ve three-part handshake olarak bilinir. (TCP/IP three way handshake) TCP/IP üzerinde yapilan bazi saldiri tekniklerini iyi anlayabilmek için TCP'nin çalisma mantigini iyi anlamak gerekmektedir. Bu nedenle simdi bu baglantinin nasil olduguna bir bakalim:
Three-way handshake isleminde öncelikle istemci sunucuya port numarasiyla birlikte bir baglanti istegi gönderir. Istegi alan sunucu bu istege bir onay gönderir. En sonunda da istemci makine sunucuya bir onay gönderir ve baglanti saglanmis olur. Baglanti yapildiktan sonra veri akisi her iki yönde de yapilabilmektedir. Buna genellikle full-duplex iletisim denmektedir.
TCP ayni zamanda hata kontrol mekanizmasi da sagliyor. Gönderilen her veri blogu için bir numara üretilmektedir. Ve karsilikli iki makine de bu numarayi kullanarak transfer edilen bloklari tanimaktadirlar. Basarili olarak gönderilen her blok için alici makine gönderici makineye bir onay mesaji gönderir. Ancak transfer sirasinda hata olursa alici makine ya hata mesajlari alir yada hiç bir mesaj almaz. Hata olustugu durumlarda, oturum kapanmadigi sürece, veriler tekrar gönderilir.
TCP prtokolü ile verinin iki makine arasinda nasil transfer edildigini gördük. Simdi istemcinin isteginin karsi tarafa ulastiginda ne olup bittigine bakalim. Bir makine baska bir makineye baglanti istegi gönderdigi zaman belli bir hedef adresi belirtir. Bu adres bir IP adresi ve fiziksel adrestir. Ancak sadece bu adreste yeterli degildir, istemci karsi makinede hangi uygulamayla konusmak istedigini de belirtmek durumundadir. Örnek olarak siz bir sayfaya baglanmak istediginizde URL adres kismina
TcpSecurity.com Tcp Port Internet Adsl Windows Security Firewall adresini yazip baglan dediginiz anda browser bu adresteki bilgisayara bir baglanti istegi gönderir ve o makinede bulunan HTTP uygulamasiyla konusmak istedigini de belirtir. Simdi bu HTTP isteginizin karsi tarafa gittigi zaman neler olduguna bakalim.