inter-process communication: processler-arası İletişim network … · 2019-11-17 · 6...
TRANSCRIPT
![Page 1: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/1.jpg)
1
Inter-Process Communication:Processler-Arası İletişim
Network Programming using Java Sockets
Java Soketleri kullanarak Ağ Programlama
![Page 2: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/2.jpg)
2
Konu Başlıkları
Giriş Ağ Kullanmanın Temelleri Portlar ve Soketlerin Anlaşılması Java Soketleri
Server Yazılımı Client Yazılımı
Örnekler Sonuçlar
![Page 3: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/3.jpg)
3
Giriş
Internet ve WWW küresel iletişim ortamı haline gelerek bilim, mühendislik ve ticaret tutumumuzu değiştirdi.
Bununla beraber, öğrenme, yaşama, eğlenme, iletişim kurma, etkileşimde bulunma, vs, tarzımızı da değiştirdi.Görünüşe bakılırsa, modern hayat etkinlikleri bütün bütün Internet etrafında dönmeye başlıyor.
![Page 4: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/4.jpg)
4
Yerel ve Uzak Kullanıcılara Hizmet Veren İnternet Uygulamaları
Internet Server
PC client
Local Area Network(Yerel Ağ)
PDA
![Page 5: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/5.jpg)
5
Layers, interfaces, and protocols in the OSI model.
Layers, interfaces, and protocols in the OSI model.
![Page 6: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/6.jpg)
6
Networking BasicsAğ Temelleri
Physical/Link Layer (Fiziksel Katman) Bir bilgisayardan diğerine veri akışını
gösteren sinyallerin iletimi için işlevsellik.
Internet/Network Katmanı IP (Internet Protocols) – uzaktaki bir
bilgisayara adreslenip teslim edilecek bir paket veri.
Transport Layer (Taşıma Katmanı) Uzak bir bilgisayardaki belirli bir
processe veri paketlerini teslim etmek için işlevsellikler.
TCP (Transmission Control Protocol) UDP (User Datagram Protocol) Programlama Arayüzü:
Soketler Applications Layer (Uygulama Katmanı)
Standart veya kullanıcı uygulamaları arasında veri değişimi:
HTTP, FTP, Telnet
TCP/IP Stack (Yığını)
Application(http,ftp,telnet,…)
Transport(TCP, UDP,..)
Internet/Network(IP,..)
Physical/Link(device driver,..)
![Page 7: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/7.jpg)
7
A typical msg as seen on network
Figure 4-2. A typical message as it appears on the network.
![Page 8: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/8.jpg)
8
Middleware Protocols:An adapted reference model
![Page 9: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/9.jpg)
9
Internet uygulamalarına olan talep artışı
Internet tarafından sunulan imkanlardan faydalanmak için, iş sahipleri devamlı olarak, servislerini Internet üzerinden sunmak için, yeni ve yenilikçi yol ve yöntemler arıyorlar.
Bu da, yeni Internet-uyumlu uygulamalar oluşturmaveya var olan uygulamaları Internet ortamına taşıma yeteneğine sahip yazılım mühendisleri içinbüyük bir talep meydana getirdi.
Object-oriented Java teknolojileri—Soketler, threadler, RMI, clustering (kümeleme), Web servisleri– taşınabilir, verimli, bakımı yapılabilen, büyük ve karmaşık Internet uygulamalarının yapımı için önde gelen çözümler olarak ortaya çıktı.
![Page 10: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/10.jpg)
10
A networked application with its own protocol.
Client Machine: Provide means for users to interact with remote servers. App-to-app
![Page 11: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/11.jpg)
11
A general solution to allow access to remote applications.
Provide direct access to remote services by ofering convenient interface
Client:terminal no need for local storage
![Page 12: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/12.jpg)
12
Network
client (istemci), server (sunucu), ve network (ağ)
ClientServer
Client machine Server machine
C-S Computing Elemanları
Processler katılımcılar tarafından gözlemlenmesi gereken kuralları tanımlayan bir protokol izlerler: Veri değişimi nasıl kodlanır? Olaylar (gönderme, alma) nasıl eşitlenir (sıralanır) ki, katılımcılar koordine bir şekilde gönderip alabilsin?
Yüz-yüze iletişim; insanlar, göz teması, vücut dili, yüz ifadesi temelli konuşulmayan protokol izlerler.
![Page 13: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/13.jpg)
13
Networking BasicsAğ Temelleri
TCP (Transmission Control Protocol) iki bilgisayar arasında güvenli veri akışını sağlayan connection-oriented (bağlantılı) iletişim protokolü.
Örnek uygulamalar: HTTP FTP Telnet
TCP/IP Stack
Application(http,ftp,telnet,…)
Transport(TCP, UDP,..)
Internet/Network(IP,..)
Physical/Link(device driver,..)
![Page 14: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/14.jpg)
14
Networking BasicsAğ Temelleri
UDP (User Datagram Protocol) bir bilgisayardan diğerine, ulaşma veya ulaşma sırası garantisi olmadan, datagram denilen bağımsız paketleri gönderen (bağlantısız iletişim) protokolüdür.
Bir mektubu, birden fazla posta ile parça parça göndermeye benzer.
Örnek uygulamalar: Clock server (Saat sunucusu) Ping
TCP/IP Stack
Application(http,ftp,telnet,…)
Transport(TCP, UDP,..)
Network(IP,..)Link
(device driver,..)
![Page 15: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/15.jpg)
15
TCP - UDP İletişimi Karşılaştırması
A B
A B
…
…
Connection-Oriented (Bağlantılı) İletişim
Connectionless (Bağlantısız) İletişim
![Page 16: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/16.jpg)
16
Portları Anlamak
TCP ve UDP protokolleri, gelen veriyi bir bilgisayar üzerinde çalışan belirli bir processe eşlemek için portlarıkullanırlar.
server
Port
ClientTCP
TCP or UDP
port port port port
app app app app
port# dataDataPacket
![Page 17: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/17.jpg)
17
Portları Anlamak
Port, (16-bit) pozitif bir tamsayı ile ifade edilir Bazı portlar yaygın/bilinen servisleri
desteklemek için ayrılmıştır (reserved): ftp 21/tcp telnet 23/tcp smtp 25/tcp login 513/tcp
Kullanıcı düzeyindeki processler ve servisler genellikle 1024 ve daha büyük olan portnumaralarını kullanırlar
![Page 18: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/18.jpg)
18
Soketler
Soketler taşıma katmanındaki (transport layer) programlama ağları için bir ara-yüz sunar.
Soket kullanarak ağ iletişimi kurmak, dosya okuma yazmaya (I/O) oldukça benzerdir Aslında, soket tutucu, dosya tutucu (file handle) gibi işlenir. Dosya I/O işleminde kullanılan akışlar soket-tabanlı I/O’ya da
uygulanabilir. Soket-tabanlı iletişim, programlama dilinden
bağımsızdır. Yani, Java dilinde yazılmış bir soket programı, hem Java’da
hem de diğer dillerde yazılmış bir soket programıyla anlaşabilir.
![Page 19: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/19.jpg)
19
Soket İletişimi
Bir sunucu (programı) belirli bir bilgisayar üzerinde çalışır ve belirli bir porta bağlanmış bir soketi vardır. Server, bir clientın bağlantı isteğinde bulunmasını beklerken soketi dinler.
server ClientConnection requestBağlantı isteği
port
![Page 20: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/20.jpg)
20
Soket İletişimi
İşler yolunda giderse, server bağlantıyı kabul eder. Bunun üzerine server, farklı bir porta bağlı yeni bir soket alır. Yeni bir sokete (bununla birlikte farklı bir portnumarasına) ihtiyaç duyar ki, bağlanan cliente servis verirken aynı zamanda ilk soketten bağlantı isteklerini dinleyebilsin.
server
Client
port
port port
![Page 21: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/21.jpg)
21
Berkeley Sockets: The socket primitives in C for TCP/IP
Figure 4-14. The socket primitives for TCP/IP.
![Page 22: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/22.jpg)
22
Connection-oriented communication pattern using sockets
![Page 23: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine](https://reader033.vdocuments.site/reader033/viewer/2022041513/5e29b9d52d8bdc3a5659f159/html5/thumbnails/23.jpg)
23
Soketler ve Java Soket Classları
Soket, ağ üzerinde çalışan iki program arasındaki iki yönlü iletişim bağının ucudur.
Soket, bir port numarasına bağlıdır. Bu, TCP katmanının, verinin gönderileceği uygulamayı tanıyabilmesi içindir.
Java’nın .net paketi iki sınıf temin eder: Socket –client tanımlamak için ServerSocket –server tanımlamak için