Multirecipient
1. Dasar Teori
Konsep client-server merupakan dasar dari setiap transaksi yang terjadi pada setiap aplikasi jaringan. Socket merupakan antarmuka antara application process dan transport layer. Setelah sebelumnya kita mempelajari beberapa metode untuk penanganan request dari banyak client ke server, maka muncul pertanyaan Bagaimana Jika kita akan mengirimkan data ke banyak penerima? Ada beberapa solusi yang dapat diterapkan diantaranya adalah menggunakan fasilitas yang disediakan oleh jaringan yaitu broadcast dan multicast. Dalam penerapannya metode broadcast dan multicast sendiri memiliki keterbatasan, yaitu:
■ Hanya UDP socket yang dapat melakukan broadcast dan multicast
■ Broadcast hanya mencakup lingkup lokal, biasanya jaringan area local (LAN).
■ Multicast di seluruh Internet saat ini tidak didukung oleh sebagian besar penyedia layanan Internet.
Broadcast merupakan pengiriman data dengan tujuan semua alamat yang berada dalam 1 jaringan. Aplikasi akan mengirimkan data ke alamat broadcast, apabila data dikirim ke alamat ini maka semua host yang berada dalam jaringan tersebut akan menerima data. Sebelum mengirimkan data ke alamat broadcast, maka kita harus meminta “izin” kepada sistem untuk melakukan broadcast dengan men-set opsi SO_BROADCAST harus pada sisi pengirim.
Berbeda dengan broadcast, multicast merupakan pengiriman data dengan tujuan alamat group dalam 1 jaringan. Pada prakteknya dalam pemrograman tidak perlu set permission untuk multicast. Multicast sender dapat men set nilai TTL untuk mengirimkan datagram. Langkah-langkah yang harus dilakukan dalam pemrograman untuk melakukan broadcast maupun multicast pada dasarnya sama dengan pemrograman menggunakan UDP, namun pada broadcast perlu penambahan socket option SO_BROADCAST, sehingga sistem mengizinkan untuk melakukan broadcast.
2. Percobaan
Program 1: program multicast
- Server
- Client
- Output
Tugas 1: Amatilah dan analisa pogram datas, kemudian jelaskan cara kerjanya
Jawab: Pada percobaan multicast ini di bagian servernya terdapat import socket, import struct dan juga imports sys, lalu terdapat message = "HALLO SAYA AMELIA" yang mana pada bagian message ini adalah suatu pesan yang nantinya akan dikirimkan dari server sehingga nantinya akan muncul pada bagian client. Setiap dijalankannya perintah multicast server maka pesan tersebut akan muncul pada bagian client. Kemudian terdapat multicast_group() yang mana bagian multicast_group() ini adalah suatu grup yang mana nantinya dapat menghubungkan 2 client yang mempunyai server atau ip yang berbeda atau di pc yang berbeda. Saat dilakukan nya run pada servernya maka dari client yang berbeda dapat terkirim pesan yang mana terdapat ip dari server masing-masing. Lalu terdapat server_address dan sock.settimeout yang mana waktu nya disetting 0.2 dan juga digunakan struct. Pada programnya juga terdapat try yang dimana nantinya akan terdapat pesan sending berisi ip dari clientnya dan juga digunakan while dimana jika true aka terdapat pesan "waiting to receive" lalu terdapat juga except socket.tmeout yang mana jika tidak ada respon dalam waktu 0.2 maka akan muncul pesan "timed out, no more responses dan terdapat break, jika terdapat respon lagi dari client maka akan terdapat pesan "reeive "ack" form..." dan jika memang tidak ada lagi respon maka akan muncul pesan "Closing socket".
Pada bagian client nya digunakan juga import socket, import struck, dan import sys yang mana juga terdapat multicast_group yang sama pada bagian server sebelumnya dan juga terdapat server address. Kemudian pada bagian client ini juga digunakan sock.bind yang mana mengarah pada bagaian server address dan juga terdapat group yang mana group ini adalah client yang terdapat pada multicast_group. Lalu terdapat while true yang mana saat dilakukannya run pada program maka akan muncul pesan "waiting to receive message" dan juga terdapat "received...bytes from..." kemudian juga terdapat print yang mana nantinya akan memunculkan pesan yang sebelumnya kita buat di bagian server lalu setelah itu terdaoat pesan "sending acknowledement to...".
Pada bagian outputnya terlihat bahwasanya pada bagian servernya terdapat 2 ip address yang berbeda yang mana ip tersebut berasal dari client yang berdeba. Pada bagian client nya dapat dilihat bahwasanya terdapat pesan antar client yang mana saat client1 menjalankan servernya maka akan muncul pada bagian client1 dan client2 dan begitu juga dengan client2 jika menjalankan servernya makan akan muncul pada bagian client1 dan client2. Hal tersebut terjadi karena client1 dan client2 sudah berada didalam group yang sama sehingga memungkinkan saling berbagi data
Program 2: Program Broadcast
- Server
- Client
- Output
Tugas 2:Amatilah dan analisa pogram datas, kemudian jelaskan cara kerjanya
Jawab: Pada bagian servernya digunakan library import socket dan juga import time yang man terdapat server.setsocket yang mana pada programnya terdapat SO_REUSEPORT dan juga SO_BROADCAST lalu terdapat server.settimeout yang mana disini waktu untuk broadcast nya disetting 0,2. Kemudin pada programnya juga terdapat message "your very important message" yang mana nantinya pesan ini akan dikirimkan melalui broadcast ke dalam jaringan yang sama. Selanjutnya terdapat while true dimana server nya akan saling terhubung pada lalu lintas yang sama dimana nantinya pada bagian server akan muncul pesan "message sent!".
Pada bagian client nya terdap import socket yang mana pada program nya juga terdapat client=socket.socket dan juga client.setsockopt yang mana ini untuk menyetel opsi yang terkait dengan socket lalu juga terdapat client.bind yang nantinya akan terhubung ke server. Kemudian terdaoat while true yang mana nantinya jika menerima pesan dari client lain maka akan muncul pesan "received message...".
Pada bagian outputnya dapat dilihat bahwasanya terdapat 1 Server dan 2 client yang mana setiap client mendaoatkan received message dan isi received message nya bermacam-macam namun antara client1 dan client2 isinya sama. Pesan yang di dapatkaj pada client tersebut berasa dari server-server yang berbeda namun masih dalam lalu lintas jaringan yang sama dimana terlebih dahulu kita harus mengubah tipe jaringan nya menjadi bridge agar pesan dari server lain dapat muncul pada bagian client nya.
0 comments:
Post a Comment