Bilgisayar Ağları İçin Soket Programlamasına Genel Bir Bakış

Bir soket, bilgisayar ağı programlamanın en temel teknolojilerinden biridir. Soketler, ağ yazılımı uygulamalarının ağ donanımı ve işletim sistemlerinde yerleşik standart mekanizmaları kullanarak iletişim kurmasını sağlar.

Internet yazılım geliştirmesinin bir başka özelliği gibi görünse de, soket teknolojisi Web'den çok önce var olmuştur. Ve bugünün en popüler ağ yazılımı uygulamalarının çoğu sokete dayanıyor.

Ağınız için ne yuva yapabilir

Bir soket, tam olarak iki yazılım parçası arasında bir bağlantıyı temsil eder ( noktadan noktaya bağlantı olarak adlandırılır). İkiden fazla yazılım, birden çok soket kullanarak istemci / sunucu veya dağıtılmış sistemler ile iletişim kurabilir. Örneğin, birçok Web tarayıcısı aynı anda sunucu üzerinde yapılan bir grup soket aracılığıyla tek bir Web sunucusuyla iletişim kurabilir.

Soket tabanlı yazılım genellikle ağ üzerindeki iki ayrı bilgisayar üzerinde çalışır, ancak yuvalar da yerel olarak ( süreçler arası ) tek bir bilgisayarda iletişim kurmak için kullanılabilir. Soketler çift ​​yönlüdür , yani bağlantının her iki tarafı da veri gönderip alabilir. Bazen iletişimi başlatan bir uygulama "istemci" ve diğer uygulama "sunucu" olarak adlandırılır, ancak bu terminoloji akranyapısındaki karışıklığa yol açar ve genellikle önlenmelidir.

Soket API'leri ve Kütüphaneleri

İnternette standart uygulama programlama arayüzlerini (API) uygulayan çeşitli kütüphaneler bulunmaktadır. İlk ana paket - Berkeley Soket Kütüphanesi hala UNIX sistemlerinde yaygın olarak kullanılıyor. Diğer bir yaygın API, Microsoft işletim sistemleri için Windows Sockets (WinSock) kitaplığıdır. Diğer bilgisayar teknolojilerine göre, soket API'leri oldukça olgun: WinSock, 1993'ten beri ve Berkeley soketleri 1982'den beri kullanılıyor.

Soket API'leri nispeten küçük ve basittir. İşlevlerin çoğu read () , write () ve close () gibi dosya giriş / çıkış rutinlerinde kullanılanlara benzerdir. . Fiili fonksiyon çağrıları seçilen programlama diline ve soket kitaplığına bağlı olarak kullanır.

Soket Arabirim Türleri

Soket arabirimleri üç kategoriye ayrılabilir:

  • En yaygın tür olan akış soketleri, iletişim kurulacak iki tarafın önce bir soket bağlantısı kurmasını gerektirir; bundan sonra, bu bağlantı üzerinden geçen herhangi bir verinin, gönderildiği ile aynı sırada gelmesi garantilenir - sözde bağlantıya yönelik programlama modeli.
  • Datagram soketleri "bağlantısız" semantikleri sunar. Datagramlarla, bağlantılar akışlarla olduğu gibi açık olmak yerine örtüktür. Her iki taraf da gerekli olduğu şekilde datagramları gönderir ve diğerinin cevap vermesini bekler; mesajlar iletim sırasında kaybolabilir veya siparişten çıkarılabilir, ancak uygulamanın bu sorumluluğu yerine getirecek soketlerin değil, uygulamanın sorumluluğundadır. Datagram soketlerinin uygulanması, bazı uygulamalara, bazı durumlarda kullanımlarını gerekçelendirerek, akış soketlerine kıyasla performans artışı ve ek esneklik sağlayabilir.
  • Üçüncü soket tipi - ham soket - kütüphanenin TCP ve UDP gibi standart protokoller için yerleşik desteğini atlar. Özel düşük seviyeli protokol geliştirme için ham prizler kullanılır.

Ağ Protokollerinde Soket Desteği

Modern ağ soketleri genellikle IP, TCP ve UDP gibi İnternet protokolleriyle birlikte kullanılır. Internet Protokolü için soketleri uygulayan kütüphaneler, akışlar için TCP, datagramlar için UDP ve ham soketler için IP'yi kullanır.

İnternet üzerinden iletişim kurmak için, IP soket kitaplıkları belirli bilgisayarları tanımlamak için IP adresini kullanır. İnternetin pek çok bölümü adlandırma servisleri ile çalışmaktadır, böylece kullanıcılar ve soket programcıları bilgisayarla adlarıyla ( örneğin , "thiscomputer.wireless.about.com" gibi) adres yerine ( örneğin 208.185.127.40) çalışabilirler. Akış ve datagram soketleri, birbirinden çoklu uygulamaları ayırt etmek için IP port numaralarını da kullanır. Örneğin, İnternet'teki web tarayıcıları, Web sunucuları ile soket iletişimleri için varsayılan olarak bağlantı noktası 80'i kullanmayı bilmektedir.