• 400 likes • 845 Views
Pemrograman Jaringan. Socket Programming. Aurelio Rahmadian. Objektif. Socket Client-Server TCP Socket Programming UDP Socket Programming TCP Socket vs UDP Socket. Socket.
E N D
Pemrograman Jaringan Socket Programming Aurelio Rahmadian
Objektif • Socket • Client-Server • TCP Socket Programming • UDP Socket Programming • TCP Socket vs UDP Socket
Socket • Socket adalahmekanismekomunikasi yang memungkinkanterjadinyapertukaran data antar program atauprosesbaikdalamsatumesinmaupunantarmesin • Keunggulandaripenggunaan socket adalahdapatmelakukankomunikasiantarproses/program melaluijaringanberbasis yang TCP/IP, bahkandengan program lain, sepanjang program tersebut berbicara dalam protokol transfer yang sama
Socket • Socket adalah interface padajaringan yang menjadititikkomunikasiantarmesinpada Internet Protocol, dantentunyatanpakomunikasiini, tidakakanadapertukaran data daninformasijaringan • Socket terdiridarielemen-elemenutamasebagaiberikut: • Protokol • Local IP • Local Port • Remote IP • Remote Port
Socket Port • Port merupakan sebuah koneksi data virtual yang digunakan aplikasi untuk bertukar data secara langsung • Terbagiatas 3 bagian: • Well-known ports Merupakanport yang telahdigunakansecara internal olehsistem, misalnya port untukkoneksi Internet, service FTP, danseterusnya. Port yang telahdigunakaniniadalah port 0 sampaidengan port 1023. • Registered ports Port inidapatdigunakandalamaplikasitertentu, range-nyaadalah port 1024 hingga port 49151. • Dynamic/Private ports Dari port 49152 sampaidengan port 65535.
Socket • Network Socket merupakantitikakhiraruskomunikasimelaluisuatujaringankomputer, ditujukanuntukkomunikasiantaraplikasiantarmesindalamlingkunganjaringanTCP/IP • Kebanyakan network socket merupakan Internet Socket
Socket • Jenis internet socket: • Stream Socket, connection-oriented socket, menggunakan TCP • Datagram Socket, connectionless, menggunakan UDP • Raw Socket (Raw IP Socket), umumnyaberadapadaperangkatjaringan
Socket Stream Socket • Socket komunikasi full-duplex berbasisaliran (stream) data • Padamodel komunikasi Socket Stream, koneksiduaaplikasiharusdalamkondisitersambungdenganbenaruntukdapatbertukardata • Koneksimodel sepertiiniakanmenjamin data dapatdipertukarkandenganbaik, namunmemilikikelemahandalamhalpenggunaanjalur data yang relatifbesardantidakbolehterputus
Socket Datagram Socket • Socket initidakmembutuhkankoneksi yang tersambungdenganbenaruntukmengirimkandanmenerimadata • Model koneksisemacaminitidakdapatmenjamin data dapatdipertukarkandenganbaik, namun memiliki keunggulan dalam hal penggunaan jalur data yang minimal • Tidakada yang dapatmenjamindata dapatditerimadenganbaik, kecualiditerapkanmetodarechecking
Client-Server • Kebanyakanjaringankomputer yang adasaatinimemilikiarsitektur client-server • Client melakukaninisiasiproseskomunikasi • Server meresponpermintaan/request dari client
Client-Server • Untukmembuataplikasi socket yang sederhanadiperlukanduaaplikasi, pertamaadalahaplikasi server yang akanmenerima data, sedangkanaplikasikeduaadalahaplikasi client yang mengirimkan data padaserver • Baikaplikasi server danaplikasi client mendefinisikan port yang samasebagaijalurkomunikasi
TCP Socket Programming • Dari sisi server • Server beradadalamposisi Listening dansiapmenerimakoneksidari client • Pengirimandanpenerimaan data menggunakan input dan output stream • Dari sisi client • Koneksike server dilakukanpadapemanggilan constructor • Pengirimandanpenerimaan data menggunakan input dan output stream
TCP Socket Programming • Model TCP Client-Server
TCP Socket Programming • Socket pada server memilikifungsi: • Mengikat Port (Bind Function) • Mengamati data yang datang (Listen Function) • Menerimakoneksidari remote machine pada port tertentu (Accept Function)
TCP Socket Programming TCP Server socket( ) bind( ) +----> listen( ) | accept( ) | (block until connection from client ) | read( ) | write( ) +----- close( ) close( )
TCP Socket Programming • Create a server socket • Prepare the socket to listen • Wait for a request to connect, a new client socket is created here • Read data sent from client • Send data back to client • Close client socket • Loop back if not told to exit • Close server socket is exit command given by client
TCP Socket Programming • Socket(InetAddress address, int port) • Membuatsebuah stream socket dankoneksikesuatunomor port padasuatukomputer yang memilikialamat IP • Socket(String Host, int port) • Membuat stream socket danjugakoneksikesuatu port komputerberdasarkannamakomputernya • Socket(String host, int port, InetAddresslocalAddr, intlocalPort) • Membuatsebuah socket danmengkoneksikannyake port yang ditujupadaalamat IP yang disebutkanpada parameter address ataunamahost • Melakukan bind socket kealamatlokaldan port lokal. (Jikakoneksiantara client dan server membutuhkannomor port yang sudahditentukan)
TCP Socket Programming TCP Client socket( ) connect( ) write( ) read( ) close( )
TCP Socket Programming • Create a socket with the server IP address • Connect to the server, this step also names the socket • Send data to the server • Read data returned (echoed) back from the server • Close the socket
UDP Socket Programming • Untukprotokol UDP, perbedaanyaadalah socket disisi server samadengan socket disisi client, dantidakadaoperasi listen padasisiserver • Kemudiansaatpaket data dikirimkan, alamat socket penerimaharusdisertakansebagaiargumen
UDP Socket Programming • DatagramSocket(int port) • Class inidapatdigunakanuntukmenyatakanpenggunaansuatunomor port sebagai "pintu“ untukmenerimakoneksidari client • DatagramSocket(int port, InetAddressladdr) • Class inimembentukkoneksidenganprotokol UDP padaalamat IP lokaltertentudanpadanomor port tertentu • DatagramSocket() • Class inimembentukkoneksidenganprotokol UDP padaalamat IP localhostdenganpenentuannomorportnyasecara random berdasartersedianyanomor port yang dapatdigunakan
UDP Socket Programming UDP Server • Membuat socket menggunakanDatagramSocket object • Membuat object dariDatagramPacket class danmenggunakan receive() method untukmenerimapesan yang dikirim client • Membuat object dariDatagramPacket class danmenggunakan send() method untukmengirimpesanke client • Memulai server serverdenganmemanggil constructor dari UDP server class di method main()
UDP Socket Programming UDP Client • Membuat socket danmenggunakan object DatagramSocketuntukmelakukankomunikasidengan server • Membuat object dariDatagramPacket class danmenggunakan send() method untukmengirimpesanke server • Membuat object dariDatagramPacket class danmenggunakan method receive() untukmenerimapesan yang dikirimoleh server
TCP Socket vs UDP Socket • TCP adalah protocol yang reliable • Menunggukonfirmasidaripihak socket penerima, dankalauperlu packet data yang hilangakandikirimkankembali • Konsekuensinyaadalah TCP menimbulkan overhead lalulintasjaringanlebihtinggidibanding UDP • UDP adalah protocol yang unreliable • Ketika packet data dikirimkan, UDP tidakmengecekkembaliapakah data yang dikirimsampaitujuan • Jadidengan UDP tidakadakepastianbagisisipengirimbahwadatanyasudahsampaiketujuandengankeadaanbaik
TCP Socket vs UDP Socket • TCP: tidakmemilikibatasankarena data-data dikirimkansebagaialiran data (stream) • UDP: memilikibatasanukuran datagram (packet data) yang dikirimkansebesar 64 kB
TCP Socket vs UDP Socket • TCP: membuat setup koneksidengan socket tujuanterlebihdulu, setelahkoneksiterbentuk, tidakdibutuhkanmengirimkaninformasi socket pengirimtiap kali data dikirimkan • UDP: setiap kali suatu packet data dikirim, informasi socket pengirimdanalamat socket tujuanturutdikirimkan