TCP/IP ve Sockets ile DNS Sunucularına Erişmek

TCP/IP ve Sockets ile DNS Sunucularına Erişmek

TCP/IP ve Sockets ile DNS sunucularına erişmek için ihtiyacınız olan tüm bilgiler burada! Bu makalede, DNS sunucuları nedir, nasıl çalışır ve TCP/IP ve Sockets kullanarak DNS sunucularına nasıl erişebileceğiniz anlatılmaktadır Hemen okuyun ve internetinizi daha iyi anlayın!

TCP/IP ve Sockets ile DNS Sunucularına Erişmek

Bugün internet, günlük hayatımızın ayrılmaz bir parçası haline geldi. Dünya genelinde milyarlarca insan, internet aracılığıyla birbirleriyle iletişim kuruyor, bilgiye erişiyor ve işlemlerini gerçekleştiriyor.

Bununla birlikte, internetin kullanımını mümkün kılan birçok teknoloji ve protokol var. Bu protokollerden biri de TCP/IP'dir. TCP (Transmission Control Protocol), veri iletişiminde güvenilirliği sağlamak için kullanılan bir protokoldür. IP (Internet Protocol) ise, veri paketlerinin iletişiminin sağlandığı temel internet protokolüdür.

Bir diğer önemli kavram da sockets'tir. Sockets, TCP/IP protokolünü kullanarak iletişim kuran uygulamaların oluşturulması için gerekli olan bir API'dir. TCP soketleri ve UDP soketleri olmak üzere iki tür socket vardır. TCP soketleri, güvenilir ve sıralı iletişim için kullanılırken, UDP soketleri ise daha hızlı ancak güvenilirlik açısından daha zayıf bir iletişim sağlar.

DNS (Domain Name System), internet üzerindeki alan adlarını IP adreslerine çeviren bir sistemdir. DNS sunucuları, bu işlemi gerçekleştiren sunuculardır. DNS sunucularına erişmek için Socket nesneleri kullanılabilir. Bu nesneler vasıtasıyla kullanıcının belirlediği DNS sunucusuna istek yapılır ve cevap alınır.


TCP/IP Nedir?

TCP/IP, internet üzerinde veri iletimi için kullanılan bir protokol setidir. TCP (Transmission Control Protocol), veri iletişiminde güvenilirliği sağlamak için kullanılan bir protokoldür. IP (Internet Protocol) ise, veri paketlerinin iletişiminin sağlandığı temel internet protokolüdür. TCP/IP protokolü, veri paketlerinin doğru bir şekilde iletilmesini sağlar ve hata kontrolü yaparak güvenilir bir iletişim sağlar. Bu protokol, internetin yaygın kullanımına olanak tanıyan en önemli faktörlerden biridir.


Sockets Nedir?

Sockets, TCP/IP protokolünü kullanan uygulamaların birbirleriyle iletişim kurmasını sağlayan bir API'dir. Bu API sayesinde uygulamalar arasında güvenilir ve sıralı iletişim kurulabilir. Socketler, bir bilgisayardaki bir uygulamanın başka bir bilgisayardaki uygulamayla iletişim kurmasını sağlar.

TCP soketleri ve UDP soketleri olmak üzere iki tür socket vardır. TCP soketleri, güvenilir ve sıralı iletişim için kullanılırken, UDP soketleri daha hızlı ancak güvenilirlik açısından daha zayıf bir iletişim sağlar. TCP soketleri, veri iletiminde kayıp ve hataları azaltır ve verilerin doğru sırayla alınmasını sağlar. UDP soketleri ise daha düşük gecikme süreleri sağlar ancak veri iletiminde kayıplar yaşanabilir.

Socketlerin birçok kullanım alanı vardır. Örneğin, web tarayıcıları, e-posta istemcileri ve dosya paylaşım hizmetleri gibi birçok uygulama, socketler aracılığıyla bilgisayarlar arasında iletişim kurar. Ayrıca, network yöneticileri ve ağ güvenlik uzmanları da socketleri kullanarak ağlardaki cihazlar arasındaki iletişimi denetleyebilirler.


Socket Türleri Nelerdir?

Socket türleri, TCP soketleri ve UDP soketleri olmak üzere iki türe ayrılmaktadır. TCP soketleri, güvenilir ve sıralı iletişim için kullanılırken, UDP soketleri ise daha hızlı ancak güvenilirlik açısından daha zayıf bir iletişim sağlar. Her iki tür soket de farklı amaçlar için kullanılır.

TCP soketleri, veri paketlerinin doğru bir şekilde çıktı alabilmesi için gerekli olan güvenilirlik, sıralı iletişim ve akış kontrollerini sağlar. Yani, bir veri paketi diğerine göre önceden gönderildiği ve doğru bir şekilde alındığından emin olunur. Bu nedenle, TCP soketleri genellikle dosya aktarımı, e-posta ve web sayfaları gibi hata kabul etmeyen uygulamalarda kullanılır.

UDP soketleri ise, daha hızlı ama güvenilirlik açısından daha zayıf bir iletişim sağlar. Paket kaybı durumunda veri paketi yeniden gönderilmez ve herhangi bir akış kontrolü yapılmaz. Bu nedenle, UDP soketleri genellikle canlı yayın, video görüntüleme ve oyun uygulamaları gibi anlık iletişim gerektiren uygulamalarda kullanılır.


TCP Soketi Oluşturma

TCP soketi oluşturmak için öncelikle bir socket nesnesi oluşturmak gerekir. Bu nesne, Socket sınıfından türetilir ve java.net paketi altında bulunur. Nesne oluşturulduktan sonra, bind() ve listen() metodları kullanılarak ayarlanarak dinleme moduna geçirilir.

bind() metodu, soketin hangi IP adresi ve port numarası üzerinden erişileceğini belirler. Bu metot, InetAddress ve int parametrelerini alır. InetAddress parametresi, IP adresini belirtirken int parametresi ise, port numarasını belirtir. Örneğin;

InetAddress hostIP = InetAddress.getLocalHost();
int port = 1234;
Socket socket = new Socket();
socket.bind(new InetSocketAddress(hostIP, port));

Bu şekilde bir TCP soketi oluşturulmuş ve belirlenen IP adresi ve port numarası üzerinden dinleme moduna geçirilmiştir. listen() metodu ise, soketin maksimum bağlantı beklemesi sayısını belirler ve bağlantı çağrılarına izin verir. Örneğin;

int maxAwaitingConnections = 5;
socket.listen(maxAwaitingConnections);

Bu şekilde oluşturulan TCP soketi, belirtilen IP adresi ve port numarası üzerinden dinleme moduna geçirerek, maksimum bekleyen bağlantı sayısını belirleyerek hazır hale getirilmiştir.


UDP Soketi Oluşturma

UDP soketi oluşturmak için öncelikle bir socket nesnesi oluşturulmalıdır. Bu işlem için socket() fonksiyonu kullanılır. Ardından, oluşturulan socket nesnesi, sendto() ve recvfrom() metotları kullanılarak veri iletimi yapılabilir.

UDP soketleri, güvenilirlik açısından TCP soketlerine göre daha zayıftır. Ancak, hızlı ve sıralı olmayan veri iletimi gerektiren durumlarda tercih edilir. Bu tür durumlarda, bind() işlemi yapmadan doğrudan sendto() ve recvfrom() metotları kullanarak veri iletimi daha uygun olabilir.

UDP soketi oluşturulurken dikkat edilmesi gereken noktalardan biri de paket boyutudur. UDP soketlerinde, iletilen verinin boyutu 65.535 byte'ı geçemez. Bu nedenle, verinin bölünerek birden fazla paket olarak iletilmesi gerekebilir.

UDP soketleri, genellikle video ve ses gibi gerçek zamanlı iletim gerektiren uygulamalar için kullanılır. Örneğin, bir video konferans uygulamasında, kullanıcıların canlı görüntü ve ses verilerini hızlı bir şekilde paylaşmaları için UDP soketleri kullanılabilir.

UDP soketlerinin dezavantajı olan güvenilirlik sorunu, uygulama tarafından çözülebilir. Örneğin, verilerin doğru bir şekilde iletimi için uygulama, yeniden gönderme veya hata düzeltme işlemleri yapabilir.


DNS Sunucuları

DNS, İnternet üzerindeki alan adlarını IP adreslerine çeviren sistemdir. Bireylerin ya da şirketlerin alan adları, IP adresleriyle eşleşir ve kullanıcılar, kullanmak istedikleri siteye alan adını yazarak erişim sağlarlar. Ancak, bu işlem için DNS sunucularına ihtiyaç duyulmaktadır.

DNS sunucuları, alan adlarının karşılık geldiği IP adreslerini tutan, bu işlemi gerçekleştiren sunuculardır. İnternet kullanıcıları, DNS sunucularına erişerek sorgulama yapar ve belirledikleri alan adının karşılık geldiği IP adresini alırlar. Bu sayede, kullanıcının alan adına göre IP adresini hatırlamasına gerek kalmadan, istedikleri siteye erişim sağlamaları mümkün olur.


DNS Sunucularına Erişmek İçin Nasıl Bir Yaklaşım İzlenir?

DNS sunucularına erişmek için bir yaklaşım olarak Socket nesneleri kullanılır. Kullanıcının belirlediği DNS sunucusuna istek yapmak için öncelikle bir Socket nesnesi oluşturulur. Daha sonra, oluşturulan Socket nesnesi ile kullanıcının belirlediği DNS sunucusunun IP adresi ve port numarasına bağlanılır.

Bağlantı sağlandıktan sonra, DNS sunucusuna sorgu yapacak istekler gönderilir. Bu istekler, DNS protokolüne uygun şekilde hazırlanmalıdır. DNS sunucusu, aldığı istekleri cevaplandırarak ilgili IP adreslerini belirtilen port numarası ile birlikte geri gönderir.

Geri gönderilen cevap, Socket nesnesi üzerinden alınır ve işlenir. İşlenen veriler, kullanıcının isteği doğrultusunda sunucu tarafından geri döndürülen veriler içerir. Bu şekilde, DNS sunucularına erişmek mümkündür.