Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş

Benzer belgeler
Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş. Internet Protokolleri ve Ağ Uygulamaları. Internet Protokolleri Üzerinden İletişim

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş. Internet Protokolleri ve Ağ Uygulamaları. Internet Protokolleri Üzerinden İletişim

BLGM 343 DENEY 8 * TCP İLE VERİ İLETİŞİMİ

BLGM 344 DENEY 3 * AĞ PROGRAMLAMAYA GİRİŞ

Ayni sistem(host) üzerinde IPC. Ağ(network) aracılığı ile IPC

Soket IPC (bağlantı doğrultusunda olan istemci and sunucu operasyonları) Sunucu. İstemci. socket() Bir soket yarat. bind()

Hazırlayan: Barış Şimşek. Bitirme Çalışması Sunumu. Ocak 2001, Trabzon KTÜ

Karadeniz Teknik Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Bilgisayar Sistemleri Laboratuarı ĐSTEMCĐ VE SUNUCU MĐMARĐLERĐ

AĞ HİZMETLERİ. Öğr.Gör.Volkan ALTINTAŞ. Version 4.0

Elbistan Meslek Yüksek Okulu Güz Yarıyılı EKi Salı, Perşembe Öğr. Gör. Murat KEÇECĠOĞLU

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

BM 402 Bilgisayar Ağları (Computer Networks)

Toplu İleti Gönderimi

Bir port aynı anda bir process tarafından dinlenebilir. Fakat bir process birden fazla portu dinleyebilir.

EC-100. Ethernet RS232/422/485 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

DM-501 Tak-Çalıştır GPRS-UART Köprüsü

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi


MCR02-AE Ethernet Temassız Kart Okuyucu

Prensipler Çoklu ortam uygulamalarının sınıflandırılması Uygulamaların ihtiyaç duyacağı ağ servislerini belirlemek Uygulamaların gerçek zamanlı

BİLGİSAYAR AĞLARI. «Uygulama Katmanı»

Ağ Altyapısı ve Dağıtılmış İşlem

Ağ Altyapısı ve Dağıtılmış İşlem

Ağ Protokolleri. Aysel Aksu. Nisan, 2016

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: CME 3004

Socket Programming. Z. Cihan TAYŞİ

Görsel Programlama DERS 12. Görsel Programlama - Ders12/

Bölüm3 Taşıma Katmanı. Transport Layer 3-1

EC-485. Ethernet RS485 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

Bölüm 5 İletim(Transport) Katmanı

Computer Networks 5. Öğr. Gör. Yeşim AKTAŞ Bilgisayar Mühendisliği A.B.D.

Protocol Mimari, TCP/IP ve Internet Tabanlı Uygulamalar

ProFTPD FTP Sunucusu. Devrim GÜNDÜZ. TR.NET Sistem Destek Uzmanı.

ÖNDER BİLGİSAYAR KURSU. Sistem ve Ağ Uzmanlığı Eğitimi İçeriği

Bilgisayar Programcılığı

FTP ve Güvenlik Duvarları

Kernel Düzeyi TCP/IP Uygulaması

Ağ Nedir? Birden fazla bilgisayarın iletişimini sağlayan printer vb. kaynakları, daha iyi ve ortaklaşa kullanımı sağlayan yapılara denir.

Yeni Nesil Ağ Güvenliği

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Bilgisayar Ağları - 1 (BİL 403)

TCP/IP protokol kümesini tanımlamak. Bu protokol kümesindeki katmanları sıralamak.

BİLGİSAYAR AĞLARI VE İLETİŞİM

Saldırı Tespit ve Engelleme Sistemleri Eğitimi Ön Hazırlık Soruları

BIL411 - BİLGİSAYAR AĞLARI LABORATUVARI

BİT in Temel Bileşenleri (Yazılım-1)

Ders Kodu Yarıyıl T+U Saat Kredi AKTS. Programlama Dilleri

CENG 362 Computer Networks (2005) Midterm Exam 1 Çözümleri

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ

Web Servis-Web Sitesi Bağlantısı

INTERNET VE INTERNET TARAYICISI

Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü. Bilgisayar Ağları Dersi Lab. 2

Bölüm 12: UDP ve TCP UDP (User Datagram Protocol)

VIDEOCELL API. Versiyon 1.0.0

TEMEL BİLGİ TEKNOLOJİLERİ SORU-CEVAP ÇALIŞMA NOTLARI

Kurumsal Güvenlik ve Web Filtreleme

Veritabanı Dersi. Teoriden Pratiğe. Çağıltay N.E., Tokdemir G. Veritabanı Sistemleri Dersi -Bölüm XXV: Web'den Erişim Çağıltay, N., Tokdemir, G.

ACR-Net 100 Kullanım Kılavuzu

Örnek bir kullanım ve bilgisayar ağlarını oluşturan bileşenlerin özeti

Kurumsal Güvenlik ve Web Filtreleme

Aktif Dizin Logon/Logoff Script Ayarları Versiyon

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Salı, Çarşamba Öğr. Gör. Murat KEÇECĠOĞLU

DOD / DEPARMENT OF DEFENCE

Bilgisayar Ağlarında Güvenlik. Prof. Dr. Eşref ADALI www. Adalı.net

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

EC-232C. Ethernet RS232 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

TCP/IP Modeli. TCP/IP protokol kümesini tanımlamak. Bu protokol kümesindeki katmanları sıralamak.

Kets DocPlace LOGO Entegrasyonu

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

TRANSPORT KATMANI. Akış kontrolu yapar. Bütün bu işlevleri yerine getiren protokollerden önemlileri şunlardır: 1 *TCP, * UDP, *SPX

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Kas Salı, Çarşamba Öğr. Gör. Murat KEÇECİOĞLU

DNS Nedir? HİKMET TÜYSÜZ

BÖLÜM 7. Telekomünikasyon, İnternet ve, Kablosuz Teknoloji. Doç. Dr. Serkan ADA

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Kas Salı, Çarşamba Öğr. Gör. Murat KEÇECĠOĞLU

SMTP Protokolü ve Spam Mail Problemi

Mobil Cihazlardan Web Servis Sunumu

Bağlantı Kılavuzu. Yerel olarak bağlanmış bir yazıcıya yönelik Windows talimatları. Yerel yazdırma nedir? Yazılımı CD'yi kullanarak kurma

BILGİSAYAR AĞLARI. Hakan GÖKMEN tarafından hazırlanmıştır.

MODBUS GATEWAY KONFİGÜRASYON YAZILIMI

C# ile e-posta Göndermek

SafeLine SL1. SafeLine SL1, EN81-28 ve EN81-70 koşullarını tam olarak karşılar.

TC KİMLİK NO SMS GÖNDERİM XML API

Connection Manager Kullanım Kılavuzu

Karel Mobil. Kullanım Kılavuzu KULLANIM KILAVUZU

Sunucu İşletim Sistemini Ayarlamak ve Yönetmek. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

İŞLETİM SİSTEMLERİ. (Operating Systems)

emon: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı Görselleştirilmesi İçin Monitör Yazılımı

Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü. Bilgisayar Ağları Dersi Lab. 2. İçerik. IP ICMP MAC Tracert

Computer Networks 4. Öğr. Gör. Yeşim AKTAŞ Bilgisayar Mühendisliği A.B.D.

Fiery seçenekleri 1.3 yardımı (sunucu)

AĞ TEMELLERI. İSİM SOYİSİM: EMRE BOSTAN BÖLÜM: BİLGİSAYAR PROGRAMCILIĞI ÜNİVERSİTE: NİŞANTAŞI KONU: Konu 5. TCP/IP

Öğrenciler için Kablosuz İnternet Erişimi (Wi-Fi) Kullanım Kılavuzu

HACETTEPE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUVARI DENEY 5. Yönlendiricilerde İşlem İzleme ve Hata Ayıklama

Alt Ağ Maskesi (Subnet Mask)

Sunucu İşletim Sistemini Ayarlamak ve Yönetmek

Fiery seçenekleri 1.3 yardımı (istemci)

Veri İletişimi ve Bilgisayar Ağları (COMPE 436) Ders Detayları

Java Temel Özellikleri

Wolvox Kapı Ekranı. AKINSOFT Wolvox Kapı Ekranı Yardım Dosyası. Doküman Versiyon :

Temel Bilgi Teknolojileri I

Transkript:

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş Kaynak : Douglas E. Comer, Computer Networks and Internets With Internet Applications, 4. Baskı, 2004, Prentice Hall Hazırlayan : Tacettin Ayar İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü 1

Internet Protokolleri ve Ağ Uygulamaları Internet protokolleri Veri iletimi için genel amaçlı hizmet sağlar Konakların bağlantıya geçmesi için mekanizma sağlar Uygulama programları diğer uygulamalarla iletişime geçmek için Internet protokollerini kullanır Kullanıcı düzeyi hizmetler sağlar 2

Internet Protokolleri Üzerinden İletişim Uygulama, iletişime geçmeden önce protokol yazılımı ile etkileşmelidir Dinleyici uygulama, yerel protokol yazılımını gelen mesajları kabul etmeye hazır olduğu konusunda bilgilendirir Bağlanıcı uygulama, dinleyici ile iletişime geçmek için Internet protokolünü kullanır Uygulamalar iletişime geçince mesajları karşılıklı değişir 3

İstemci-Sunucu Kavramı Sunucu uygulama dinleyicidir Mesaj gelmesi için bekler Hizmeti yerine getirir Sonuçları geri döndürür İstemci uygulama bağlanıcıdır Sunucuya mesaj gönderir Geri dönen mesajı bekler 4

İstemcinin Özellikleri Herhangi bir uygulama programı ağ hizmetine gereksinim duyduğunda istemci olur Doğrudan kullanıcı tarafından çağrılır Kullanıcının bilgisayarında yerel olarak koşar Sunucuyla olan bağlantıyı başlatır Özel bir donanım veya karmaşık işletim sistemi gerektirmez 5

Sunucunun Özellikleri Ağ hizmeti sağlamaya adanmış özel amaçlı uygulama Sistem açılışı zamanında başlar (Genellikle merkezi, paylaşılmış) Uzak bir bilgisayarda koşar İstemcilerden hizmet istekleri bekler, sonraki isteği beklemek için döngü yapar Rasgele istemcilerden istek kabul eder, her istemciye bir hizmet sağlar Güçlü donanıma gereksinim duyabilir 6

Sunucu-Sınıfı Bilgisayarlar Birçok sunucu uygulaması koşturan paylaşılmış, merkezi bilgisayarlar bazen sunucular olarak adlandırılır. Daha doğrusu, uygulamalar sunucu dur ve bilgisayar da sunucu-sınıfı bilgisayar dır Sunucular çok basit bilgisayarlarda koşabilir 7

Mesaj Karşılıklı Değişimleri Genellikle istemci ve sunucu mesajları şu şekilde karşılıklı değiştirirler : İstemci (belki veriyle) istek gönderir Sunucu (belki veriyle) cevap gönderir İstemci birden çok istek gönderebilir, sunucu birden çok cevap gönderebilir Sunucu birden çok cevap gönderebilir Örneğin video gönderimi 8

İletim Protokolleri ve İstemci-Sunucu Kavramı -1 İstemciler ve sunucular iletim protokolleri üzerinden (örn. TCP veya UDP) mesajları karşılıklı değişirler İstemci ve sunucunun ikisi de aynı protokol yığınına sahip olmalıdır ve ikisi de iletim katmanıyla etkileşmelidir 9

İletim Protokolleri ve İstemci-Sunucu Kavramı -2 10

Bir Bilgisayarda Birden Çok Hizmet - 1 Yeterince güçlü bilgisayar yeterli hızda işlemci, çok-görevcikli işletim sistemi- birden çok sunucu koşturabilir İyi yönleri : Sunucular bağımsız süreçler olarak koşar ve istemcileri aynı anda idare edebilir Kaynakları birden çok hizmet arasında paylaştırarak maliyetleri düşürebilir Yönetim yükünü düşürür yalnızca bir sunucu-sınıfı bilgisayarın bakımı 11

Bir Bilgisayarda Birden Çok Hizmet - 2 Kötü yönleri : Bir sunucu, sunucu-sınıfı bilgisayarın kaynaklarını tüketerek diğer sunucuları etkileyebilir Bir tek sunucu-sınıfı bilgisayarın çökmesi birden çok sunucuyu alaşağı edebilir 12

Bir Bilgisayarda Birden Çok Hizmet - 3 13

Bir Hizmeti Tanımlama Her hizmet bir eşsiz tanımlayıcı elde eder İstemci ve sunucunun ikisi de bu tanımlayıcıyı kullanır Sunucu, yerel protokol yazılımına tanımlayıcı ile kaydolur İstemci, bu tanımlayıcı altında iletişim için protokol yazılımıyla bağlantıya geçer Örnek TCP, protokol port numaralarını tanımlayıcı olarak kullanır Sunucu, hizmet için port numarası ile kaydolur İstemci, hizmet için port numarasıyla oturum ister 14

Birden Çok Sunucu Arasından Seçim Gelen mesajlar ne şekilde doğru sunucuya aktarılır? Her iletim oturumu iki eşsiz tanımlayıcıya sahiptir Sunucuda (IP adresi, port numarası) İstemcide (IP adresi, port numarası) Bir bilgisayardaki iki istemci aynı port numarasını kullanamaz Böylece, istemci son-noktaları eşsiz olur ve sunucu bilgisayar protokol yazılımı, mesajları doğru sunucu sürecine iletebilir 15

Bağlantılı ve Bağlantısız İletim TCP -bağlantılı İstemci, sunucuyla bağlantı kurar İstemci ve sunucu rasgele boyutlu birden çok mesajı karşılıklı olarak değişirler İstemci ve sunucu bağlantıyı sonlandırır UDP -bağlantısız İstemci mesaj oluşturur İstemci mesajı sunucuya gönderir Sunucu yanıtlar Mesaj bir UDP datagramına sığmalıdır Bazı hizmetler ikisini de kullanır DNS, chargen, motd 16

API Protokola olan arayüz, API (Uygulama Programı Arayüzü) olarak adlandırılır programlama/işletim sistemi tarafından tanımlanmıştır Uygulama programı için fonksiyonlar topluluğunu içerir 17

Soket API si Protokollar genellikle API yi belirtmez API programlama sistemi tarafından tanımlanır Farklı programlama sistemleriyle azami esneklik-uyumluluk sağlar Soket API si özel bir protokol API sidir Kökeni Berkeley BSD UNIX e dayanır Günümüzde Windows 95, Windows NT, Solaris,...vs de bulunur TCP/IP standardı olarak tanımlanmamıştır, de facto standarttır 18

Soketler ve UNIX G/Ç UNIX G/Ç sistemine genişletme olarak geliştirilmiştir Aynı dosya tanımlayıcısı adres uzayını kullanır (küçük tamsayılar) Aç-oku-yaz-kapat modeline dayandırılmıştır aç bir dosyayı erişim için hazırla oku/yaz dosyanın içeriğine eriş kapat dosya kullanımını güzelce sonlandır aç, oku/yaz/kapat için dosyayı tanımlamada kullanılan bir dosya tanımlayıcısı döndürür. 19

Soket API si Soket programlama, dosya G/Ç dan daha karmaşıktır Daha fazla parametre gerektirir Adresler Protokol kapı numaraları Protokol tipi Yeni anlamlar İki Yöntem Varolan G/Ç sistem çağrılarına parametre ekleme Yeni sistem çağrıları oluşturma Soketler bir dizi yeni sistem çağrıları kullanır 20

Kısaca Soket Sistem Çağrıları socket: yeni bir soket oluşturur close: bir soketin kullanımını sonlandırır bind: bir sokete bir ağ adresini iliştirir listen:gelen bağlantı istekleri için kuyruk boyunu belirler accept: bağlantı isteği gelmesi için beklemeye geçer ve kullanmaya başlar connect: uzak konağa bağlantı yapar send: aktif bağlantı üzerinden veri iletir recv: aktif bağlantı üzerinden veri alır sendto: bağlantısız hizmet üzerinden veri iletir recvfrom: bağlantısız hizmet üzerinden veri alır 21

Socket() tanımlayıcı = socket(protokol ailesi, tip, protokol) Sonraki çağrılarda kullanılan soket tanımlayıcısını döndürür Protokol ailesi : protokol ailesini seçer PF_INET - Internet protokolları PF_APPLETALK - AppleTalk protokolları Tip : haberleşme tipini seçer SOCK_DGRAM - bağlantısız SOCK_STREAM bağlantılı Protokol : protokol ailesi içindeki protokolü belirtir IPPROTO_TCP TCP yi seçer IPPROTO_UDP - UDP yi seçer 22

Close() close(tanımlayıcı) Soket tanımlayıcısının kullanımını sonlandırır Tanımlayıcı : kapatılacak soketin tanımlayıcısıdır 23

Bind() bind(soket, yerel adres, adres uzunluğu) Başlangıçta soketin iliştirilmiş bir adresi yoktur Yerel Adres : Sokete iliştirilecek adres ve kapı Adres uzunluğu yerel adres yapısının uzunluğu 24

Soket Adres Biçimleri - 1 Soketler herhangi bir protokol için kullanılabileceğinden adres biçimi geneldir : struct sockaddr { /* adresin toplam uzunluğu */ u_char sa_len; /* adresin ailesi */ u_char sa_family; } /* adres */ char sa_data[14]; 25

Soket Adres Biçimleri - 2 IP protokolleri için, sa_data, IP addresini ve kapı numarasını tutar : struct sockaddr_in { /*adresin toplam uzunluğu*/ u_char sin_len; /*adresin ailesi*/ u_char sin_family; /* protokol kapı numarası */ u_short sin_port; struct in_addr sin_addr; /* IP adresi */ } char sin_zero[8] /*kullanılmayan*/ 26

Soket Adres Biçimleri - 3 İlk iki alan genel sockaddr yapısının aynıdır Kalanlar IP protokollerine özgüdür INADDR_ANY herhangi bir IP adresi olarak yorumlanır 27

Listen() listen(soket, kuyruk boyu) Sunucu, gelen bağlantıları beklemek için kullanır soket: bağlantıların, üzerinden varacağı soketi (adres) tanımlar Sunucu önceki isteği işlerken yeni bağlantı istekleri varabilir İşletim sistemi istekleri kuyrukta tutabilir Kuyruk boyu: (bekleyen+kabul edilmiş) istekler için üst sınırı belirler 28

Accept() tanımlayıcı = accept(soket, istemci adresi, istemci adres uzunluğu) Sunucu tarafından bir sonraki bağlantı isteğini kabul etmek için kullanılır Bağlantı isteği varana kadar bloklanır tanımlayıcı: yeni bağlantının sunucu tarafındaki ucuna yeni soket Eski soket değişmeden kalır istemci adresi : struct sockaddr tipinde istemci adresini döndürür, biçim soketin adres ailesine bağlıdır istemci adres uzunluğu : adres uzunluğunu döndürür 29

Connect() - 1 connect(soket, sunucu adresi, sunucu adres uzunluğu) İstemci sunucuyla bağlantı kurmak için kullanır Bağlantı tamamlanıncaya (kabul edilinceye) kadar bloklanır soket: Kullanılacak soketin tanımlayıcısını tutar sunucu adresi: sunucuyu tanımlar (struct sockaddr tipinde) sunucu adres uzunluğu: sunucu adresinin uzunluğunu verir 30

Connect() - 2 Genellikle bağlantılı iletim protokolüyle kullanılır Bağlantısız protokol ile de kullanılabilir Yerel soketi sunucu adresiyle işaretler Sonraki mesajlar için gizlice sunucuyu tanımlar 31

Send() send(soket, veri, uzunluk, bayraklar) Bağlanmış bir soket üzerinden veri gönderiminde kullanılır soket: soket i tanımlar veri: gönderilecek veriyi işaret eder uzunluk: (sekizlik olarak) veri uzunluğunu verir bayraklar özel seçenekleri belirtir 32

Sendto() sendto(soket, veri, uzunluk, bayraklar, hedef adresi, hedef adres uzunluğu) Bağlanmamış soketlerde hedefi açıkça belirterek kullanılır sendto fazladan parametre ekler : hedef adresi - hedef adresi (struct sockaddr) hedef adres uzunluğu 33

Recv() recv(soket, tampon, uzunluk, bayraklar) Bağlanmış soket üzerinden gelen veriyi almakta kullanılır soket: soket i tanımlar Gelen veri, tampona kopyalanır uzunluk: Sekizlik olarak en fazla alınabilecek veri boyutu bayraklar : özel seçenekler verir Gerçekte alınan sekizlik sayısını döndürür 0 bağlantının kapandığını belirtir -1 hata belirtir 34

Recvfrom() recvfrom(soket, tampon, uzunluk, bayraklar, gönderici adresi, gönderici adres uzunluğu) Bağlanmamış soket üzerinden gelen veriyi almakta kullanılır soket: soket i tanımlar tampon: Gelen verinin kopyalanacağı yer uzunluk : Sekizlik olarak en fazla alınabilecek veri boyutu bayraklar: özel seçenekler verir gönderici adresi : veriyi gönderenin adresi gönderici adres uzunluğu : gönderici adresinin uzunluğu 35