Network Programming 1 - Teori Dasar Network Programming

37
Ridwan Montezari Ridwan Montezari [email protected]

description

Network Programming 1 - Teori Dasar

Transcript of Network Programming 1 - Teori Dasar Network Programming

Page 1: Network Programming 1 - Teori Dasar Network Programming

Ridwan MontezariRidwan [email protected]

Page 2: Network Programming 1 - Teori Dasar Network Programming

Teori DasarTeori DasarPemrograman Jaringan

Page 3: Network Programming 1 - Teori Dasar Network Programming

BahasanKomunikasi DataJaringan KomputerTCP/IP dan UDPPortsKeamanan JaringanNetwork Program

Page 4: Network Programming 1 - Teori Dasar Network Programming

Komunikasi DataTeknologi : Circuit Switching dan Packet Switching.Data dikirim dari satu node ke node yang lain.Faktanya, jaringan point‐to‐point kadang kala tidakpraktis :

Bil k t k t b d d b i j hBila perangkat‐perangkat berada pada bagian yang jauhmaka akan mahalAdanya sekumpulan perangkat, yang membutuhkany p p g , y glink yang sangat kompleksSolusi : Local Area Network (LAN), Wide Area Network (WAN)(WAN)

Page 5: Network Programming 1 - Teori Dasar Network Programming

El K iElemen KunciKomunikasi Data• Source (Sumber) : membangkitkan data yang ditransmisikan, contoh

: PC dan telepon.• Transmitter (Pengirim): konversi data ke dalam sinyal yang

ditransmisikanditransmisikan• Transmission System (Sistem Transmisi) : sistem pembawa data.• Receiver (Penerima) : mengubah sinyal yang diterima ke dalam

bentuk data• Destination (Tujuan) : Menerima data yang dihasilkan oleh receiver.

Page 6: Network Programming 1 - Teori Dasar Network Programming

Circuit SwitchingAlur komunikasi yang digunakan oleh dua stasiun/nodeTiga fasa (Three phases)

Menetapkan (Establish)p ( )Mengirim (Transfer)Memutuskan (Disconnect)

Harus memiliki kapasitas switching dan kapasitas channel Harus memiliki kapasitas switching dan kapasitas channel untuk menetapkan/menentukan koneksi.Harus memiliki kemampuan routing

sebuah proses untuk meneruskan paket‐paket jaringan darisebuah proses untuk meneruskan paket paket jaringan darisatu jaringan ke jaringan lainnya melalui sebuahinternetwork.

Biasa dipakai pada jaringan telepon.p p j g p

Page 7: Network Programming 1 - Teori Dasar Network Programming

A lik iAplikasiCircuit Switching

Tidak Efisien (Inefficient)Setup (connection) memerlukan banyak waktu.Dikembangkan untuk lalu lintas suara.

Resource didedikasikan pada panggilan tertentuP d k di i idl k k b k bPada kondisi idle maka waktu banyak terbuangFixed Data Rate (Kedua stasiun/node harus beroperasipada rate yang sama )pada rate yang sama )

Page 8: Network Programming 1 - Teori Dasar Network Programming

Packet SwitchingData ditransmisikan dalam paket‐paket kecil

Biasanya 1000 bytes.Pesan yang panjang dibagi menjadi rangkaian paketPesan yang panjang dibagi menjadi rangkaian paket‐paket.Setiap paket berisi sebuah bagian dari user data di b h d b b i f k lditambah dengan beberapa info kontrol.

Info kontrolRouting (addressing) infoRouting (addressing) info

Paket diterima, disimpan secara ringkas (buffered) dandilanjutkan ke node selanjutnya

Store and forward

Page 9: Network Programming 1 - Teori Dasar Network Programming

AplikasiAplikasiPacket Switching

Effisiensi LineSatu node ke node penghubungnya dapat berbagiberbagai macam paket setiap waktuberbagai macam paket setiap waktu.Paket diurutkan dan dikirimkan secepat mungkin

Konversi Data RateNodes buffer data jika diperlukan untuk menyamakanrates

Packet akan diterima walaupun jaringan sibukPacket akan diterima walaupun jaringan sibukKecepatan pengiriman mungkin turun

Prioritasnya dapat diatury p

Page 10: Network Programming 1 - Teori Dasar Network Programming

TeknikTeknikPacket Switching

Stasiun memecah pesan panjang menjadi paket‐paketPengiriman packet satu kali pada satu waktu ke j ijaringanPacket di‐handle dalam dua cara :

D tDatagramVirtual circuit

Page 11: Network Programming 1 - Teori Dasar Network Programming

D tDatagramPacket Switching

Setiap paket diperlakukan secara independentPacket dapat mengambil setiap rute praktisPacket mungkin datang tidak sesuai urutanPacket mungkin dapat menghilangTergantung pada receiver untuk mengurutkan paketdan mengembalikan paket yang hilang

Page 12: Network Programming 1 - Teori Dasar Network Programming

Vi t l Ci itVirtual CircuitPacket Switching

Membangun perencanaan rute sebelum mengirimkanpaketPanggilan permintaan dan panggilan penerimaangg p p gg ppaket membangun koneksi (handshake)Masing‐masing paket terdiri dari sebuah pengenalvirtual circuit bukan sebuah alamat tujuanvirtual circuit bukan sebuah alamat tujuanTidak ada keputusan routing yang diperlukan untuksetiap paketM k i t t k lkMengosongkan permintaan untuk menggagalkancircuitBukan sebuah jalur yang bersifat dedicated

Page 13: Network Programming 1 - Teori Dasar Network Programming

D t Vi t l Ci itDatagram vs Virtual CircuitPacket Switching

DatagramTidak memerlukan fase call setup (Lebih baik jika paketnyasedikit)sedikit)Lebih Flexible (Routing dapat digunakan untuk menghindaritabrakan dalam jaringan).

Virtual CircuitJaringan dapat menyediakan sequencing dan kontrol error Packet diteruskan lebih cepat (Tidak perlu membuatPacket diteruskan lebih cepat (Tidak perlu membuatkeputusan routing)Kurang reliable (Hilangnya sebuah node menyebabkanhil l h i i l l i )hilangnya seluruh circuit yang melaluinya)

Page 14: Network Programming 1 - Teori Dasar Network Programming

Jaringan KomputerSeperangkat komputer otonom yang saling terhubungyang secara explisit terlihat, sehingga dapat salingbertukar informasi/data dan berbagi (share) satubertukar informasi/data dan berbagi (share) satudengan lainnya. [Tanenbaum. 1996]Kumpulan dari perangkat‐perangkat yang berbagiKumpulan dari perangkat perangkat yang berbagiprotokol dan media komunikasi. [David and Michael Reilly. 2002]Kumpulan dari komputer dan perangkat lainnya yang dapat mengirim dan menerima data satu sama lain secara real time [Elliot R H 2004]secara real‐time [Elliot R.H. 2004]

Page 15: Network Programming 1 - Teori Dasar Network Programming

KonsepKonsepJaringan Komputer

Setiap mesin dalam sebuah jaringan disebut Node.Node adalah komputer, printer, router, bridge danl i l ilain‐lain.Node‐node yang berupa komputer yang memilikisuatu fungsi disebut Hostsuatu fungsi disebut Host.Setiap node didalam jaringan mempunyai sebuahalamat unik yang berfungsi untuk mengidentifikasialamat unik yang berfungsi untuk mengidentifikasinode tersebut.Alamat unik : Internet Protocol (IP)

Page 16: Network Programming 1 - Teori Dasar Network Programming

KonsepKonsepJaringan Komputer

Alamat jaringan dapat menggunakan penamaansehingga dapat lebih mudah mengingatnya.P i i k di b h d h l j di lPenamaan ini akan diubah dahulu menjadi alamatbyte yang diatur oleh DNS (Domain Name System)Satu atau lebih nama harus mewakili satu alamat byte Satu atau lebih nama harus mewakili satu alamat byte fisik yang diatur oleh server alias pada server.

Contoh : localhost dan test.com dapat merujuk padap j psatu alamat IP yang sama yaitu 127.0.0.1

Page 17: Network Programming 1 - Teori Dasar Network Programming

IP AddressPengalamatan IP memiliki 32 bit angka yang bersifatunik.

NetID : bit‐bit terkiri dan HostID (bit‐bit selain NetID)NetID : bit‐bit terkiri dan HostID (bit‐bit selain NetID)

Range : 0.0.0.0 s/d 255.255.255.255U t k d h b k dib tl hUntuk mempermudah pembacaan maka dibuatlahdalam bentuk desimal di mana setiap 8 bit diwakilisatu bilangan desimal yang dipisahkan dengan tandatitik.

Page 18: Network Programming 1 - Teori Dasar Network Programming

Pengkelasan Alamat IPKelas A

27 atau 128 jaringan yang tersedia.organisasi komputer yang jumlahnya sangat besar dalam jaringannya

Kelas B Kelas B 214 atau 16.384 jaringan yang tersedia.organisasi komputer dalam jumlah menengah.

Kelas C221 atau 2 097 152 jaringan yang tersedia221 atau 2.097.152 jaringan yang tersedia.organisasi komputer dalam jumlah kecil.

Kelas DKhusus kelas D ini digunakan untuk tujuan multicasting di mana sebuah datadikirimkan melalui jaringan ke sekumpulan komputer yang tergabung ke dalamdikirimkan melalui jaringan ke sekumpulan komputer yang tergabung ke dalamsebuah grup tertentu, yang disebut sebagai multicast group

Kelas EKelas E disisakan untuk pengunaan khusus, biasanya untuk kepentingan riset

Page 19: Network Programming 1 - Teori Dasar Network Programming

Protokol JaringanSeperangkat kesepakatan aturan yang mengaturformat, bentuk serta aksi‐aksi yang perlu dilakukanterhadap pesan atau data yang dikirim melaluiterhadap pesan atau data yang dikirim melaluijaringan.Dalam komunikasi data aturan‐aturan meliputi caraDalam komunikasi data, aturan aturan meliputi caramembuka hubungan, mengirim paket data, mengkonfirmasikan jumlah data yang diterima danmeneruskan pengiriman data.

Page 20: Network Programming 1 - Teori Dasar Network Programming

Protokol JaringanProtokol mendefinisikan apa yang dikomunikasikan bagaimana dan kapan terjadinya komunikasi.Elemen‐elemen penting daripada protokol adalah :

Syntax (mengacu pada struktur atau format data yang mana dalamSyntax (mengacu pada struktur atau format data, yang mana dalamurutan tampilannya memiliki makna tersendiri. Sebagai contoh, sebuah protokol sederhana akan memiliki urutan pada delapan bit pertama adalah alamat pengirim, delapan bit kedua adalah alamatpenerima dan bit stream sisanya merupakan informasinya sendiri)penerima dan bit stream sisanya merupakan informasinya sendiri)Semantics (mengacu pada maksud setiap section bit. Dengan kata lain adalah bagaimana bit‐bit tersebut terpola untuk dapat diterjemahkan)Timing (mengacu pada 2 karakteristik yakni kapan data harus dikirimdan seberapa cepat data tersebut dikirim Sebagai contoh jikadan seberapa cepat data tersebut dikirim. Sebagai contoh, jikapengirim memproduksi data sebesar 100 Mbps namun penerima hanyamampu mengolah data pada kecepatan 1 Mbps, maka transmisi data akan menjadi overload pada sisi penerima dan akibatnya banyak data yang akan hilang atau musnah)yang akan hilang atau musnah)

Page 21: Network Programming 1 - Teori Dasar Network Programming

St d i i & S L iStandarisasi & Susunan LapisanProtokol Jaringan

Salah satu standarisasi dalam protokol jaringan yang dikembangkan oleh International Standards Organization(ISO) adalah Open System Interconnection (OSI)(ISO) adalah Open System Interconnection (OSI).Teknik pada model referensi OSI adalah menggunakanteknik layer (lapisan) dimana setiap lapisan dibedakanmenurut fungsi dan proses yang dilakukan.Model referensi OSI ini didefenisikan menjadi tujuhlapisan protokol komunikasi yaitu Application Layer lapisan protokol komunikasi yaitu Application Layer, Presentation Layer, Session Layer, Transport Layer, Network Layer, Data Link Layer, Physical Layer.

Page 22: Network Programming 1 - Teori Dasar Network Programming

S L iSusunan LapisanProtokol Jaringan

Application LayerBertugas untuk mengatur interaksi antara pengguna komputer dengan aplikasi yang dipakai. Contoh : Telnet,HTTP,FTP, SMTP, SNMP.

Presentation LayerMasalah perbedaan format penyajian data dengan cara mengonversikan syntax data yang dikirim agar dapat dimengerti olehpenerima dan menyediakan fasilitas untuk melakukan kompresi dan enkrisi‐dekripsi data agar keamanan data terjamin. Contoh: ASCII

Session layerBertugas untuk menyediakan sarana pembangunan hubungan dan pengontrolan terhadap kerjasama antar komputer atauprogram aplikasi yang sedang berkomunikasi. Contoh : RPC, SQL.

T i i lTransmission layerMemberikan layanan dalam hal error recovery dan data flow control serta mencari rute kosong untuk proses transmisi data daninformasi. Contoh : TCP, UDP.

Network LayerMemberikan layanan pengiriman data dengan menentukan rute pengiriman dan mengendalikannya sehingga data dapatsampai ketujuan Selain itu data yang berupa pesan‐pesan akan dibagi‐bagi dlm bentuk paket‐paket data yg dilengkapi dengansampai ketujuan. Selain itu data yang berupa pesan‐pesan akan dibagi‐bagi dlm bentuk paket‐paket data yg dilengkapi denganberbagai header tertentu pada setiap paket data tersebut. Contoh : IP, IPX, Appletalk DDP.

Data Link Layer memecah data atau informasi menjadi beberapa frame tertentu yang dilengkapi dengan bit‐bit alamat pengirim dan penerima, mendeteksi kesalahan yang mungkin terjadi saat proses transmisi berlangsung dan pada sisi penerima, lapisan ini berfungsiuntuk menggabungkan kembali bit‐bit yang diterima. Contoh : IEEE802.2/802.3, HDLC, Frame relay, PPP, FDDI, ATM

Physical Layerbertugas untuk mengatur sinkronisasi pengiriman dan penerimaan data, spesifikasi mekanis dan elektris. membangun danmemutuskan hubungan komunikasi. Contoh : EIA/TIA‐232,V35, EIA/TIA‐ 449, V.24, RJ‐45, Ethernet

Page 23: Network Programming 1 - Teori Dasar Network Programming

TCP/IPTCP/IP(Transmission Control Protocol/Internet Protocol)

Dikembangkan dari proyek ARPANET oleh US Defense Advance Research Project Agency (DARPA).Digunakan oleh jaringan internet.Terdiri dari 5 lapisan :

Application LayerTransport Layerp yInternet LayerNetwork Interface LayerPhysical LayerPhysical Layer

Perlengkapan standar pada sistem operasi UNIX danturunannya dan saat ini mesin Novell, SUN maupunMachintosh sudah dilengkapi dengan protokol standarg p g pTCP/IP.

Page 24: Network Programming 1 - Teori Dasar Network Programming

P i i K j TCPPrinsip Kerja TCP (Transfer Control Protocol)

Prinsip kerja seperti virtual circuit pada jaringankomputer.M b i b k h bMengatur bagaimana cara membuka hubungankomunikasi, jenis aplikasi apa yang akan dilakukandalam komunikasi tersebut misalnya mengirim e‐dalam komunikasi tersebut, misalnya mengirim email, transfer file dsb.Mendeteksi dan mengoreksi jika ada kesalahan data.g j

Page 25: Network Programming 1 - Teori Dasar Network Programming

P i i K j IPPrinsip Kerja IP(Internet Protocol)

IP berfungsi menyampaikan datagram dari satukomputer ke komputer lain tanpa tergantung padamedia kompunikasi yang digunakanmedia kompunikasi yang digunakan.Data transport layer dipotong menjadi datagram‐datagram yang dapat dibawa oleh IP datagram yang dapat dibawa oleh IP. Tiap datagram dilepas dalam jaringan komputer danakan mencari sendiri secara otomatis rute yang harusy gditempuh ke komputer tujuan.

Page 26: Network Programming 1 - Teori Dasar Network Programming

Lapisan Pada TCP/IPApplication Layer

Lapisan ini bertanggung jawab dalam rangka menyediakan akses kepada aplikasi terhadap jaringan TCP/IP. Protokol‐protokol yang berjalan pada lapisan ini adalah protokol Dynamic Host Configuration Protocol (DHCP), Domain Name System (DNS), Hypertext Transfer Protocol (HTTP), File Transfer Protocol (FTP), Telnet, Simple Mail Transfer Protocol (SMTP), Simple Network Management Protocol (SNMP) dll

Transport LayerTransport LayerLapisan ini bertanggung jawab dalam rangka membuat komunikasi antar dua host, dengan menggunakan caramembuat sebuah sesi connection‐oriented atau menyebarkan sebuah connectionless broadcast. Protokol‐protokol yang berjalan pada lapisan ini adalah protokol Transmission Control Protocol (TCP) dan User Datagram Protocol (UDP).

Internet LayerLapisan ini bertanggung jawab dalam melakukan routing dan pembuatan paket IP (dengan menggunakan teknikencapsulation). Protokol‐protokol yang berjalan pada lapisan ini adalah Internet Protocol (IP), Address Resolution Protocol (ARP), Internet Control Message Protocol (ICMP), serta Internet Group Management Protocol (IGMP)

Network Interface LayerLapisan ini bertanggung jawab dalam meletakkan frame‐frame data di atas media jaringan Protokol yang Lapisan ini bertanggung jawab dalam meletakkan frame frame data di atas media jaringan. Protokol yang berjalan dalam lapisan ini adalah beberapa arsitektur jaringan lokal (seperti halnya Ethernet atau Token Ring), serta layanan teknologi WAN (seperti Plain Old Telephone Service (POTS), Integrated Services Digital Network (ISDN), Frame Relay, dan Asynchronous Transfer Mode (ATM).)

Physical LayerPada lapisan ini ditentukan karakteristik media transmisi, rata‐rata pensinyalan, serta skema pengkodean sinyaldan sarana sistem pengiriman data ke device yang terhubung ke network dan sarana sistem pengiriman data ke device yang terhubung ke network.

Page 27: Network Programming 1 - Teori Dasar Network Programming

OSI vs TCP/IP

Page 28: Network Programming 1 - Teori Dasar Network Programming

UDPUDP(User Datagram Protocol)

Berorientasi connectionless protocol.Pesan‐pesan UDP akan dikirimkan tanpa harus dilakukan proses negosiasi koneksi antara dua host yang hendak berukar informasi.

Tidak mendukung reliabilitasTidak mendukung reliabilitas.Tidak ada informasi yang yang diterima oleh mesin pengirim yang mengindikasikan data diterima oleh mesin penerima dengan benar.

Tidak memiliki kemampuan untuk melakukan recover terhadapTidak memiliki kemampuan untuk melakukan recover terhadapdata yang mengalami error.Digunakan untuk trivial file transfer protocol (TFTP) dan remote call procedure (RCP).Berhubungan langsung dengan IP tanpa adanya mekanisme flow control dan error‐recoveryTransmisi broadcast.Contoh DNS

Page 29: Network Programming 1 - Teori Dasar Network Programming

UDP vs TCPUDP dianalogikan seperti proses pengiriman SMS (Short Messsage Service) dimana kita tidak harusselalu berada ditempat untuk menunggu pesan karenaselalu berada ditempat untuk menunggu pesan karenapesan yang dikirim akan sampai sekalipun teleponselular itu tidak diaktifkan.TCP dianalogikan seperti proses komunikasi langsungpada telepon dimana kita harus berada ditempatuntuk menjawab langsung telepon tersebut.

Page 30: Network Programming 1 - Teori Dasar Network Programming

PortAlamat / nomor yang membedakan koneksi yang berbeda‐beda pada mesin yang sama.Range 0 65535Range 0 – 65535

1‐1023 : spesifikasi port untuk layanan standar (Well‐known Port) yang ditetapkan oleh Internet Assigned N b A h i (IANA)Number Authority (IANA).1024‐65535 : spesifikasi port untuk kebutuhan khusus(Dynamically Assigned Port).( y y g )

Protokol TCP dan UDP menggunakan port untukmemetakan data yang masuk ke proses tertentu yang berjalan pada komputerberjalan pada komputer.

Page 31: Network Programming 1 - Teori Dasar Network Programming

Layanan pada PortSetiap port menyediakan sebuah layanan.Contoh Layanan :

Echo Port 7 : kebutuhan untuk tujuan pengujian keterhubungan koneksi.Port 7 : kebutuhan untuk tujuan pengujian keterhubungan koneksi.FTP (File Transfer Protocol)Port 20 & 21 : pada port 20 berfungsi untuk mengirim file dan port 21 pengiriman perintah FTP (PUT/GET).Telnet Telnet Port 23 : Remote command line sessionSMTP (Simple Mail Transfer Protocol)Port 25 : pengiriman e‐mailHTTP (Hypertext Transfer Protocol)HTTP (Hypertext Transfer Protocol)port 80 : Protokol yang mendasari dari World Wide Web.NNTP (Network News Transfer Protocol)port 119 : Usenet, untuk mengirim artikel berita Usenet antara server dan client

Page 32: Network Programming 1 - Teori Dasar Network Programming

Permasalahan Keamanan JaringanKeamanan jaringan merupakan topik yang pentingbagi administrator jaringan dengan melindungi sistemkomputer dan bagi para pengembang menghasilkankomputer dan bagi para pengembang menghasilkanperangkat lunak jaringan.Firewall dan Proxy ServerFirewall dan Proxy Server

Page 33: Network Programming 1 - Teori Dasar Network Programming

Fi llFirewallPermasalahan Keamanan Jaringan

Mesin khusus yang telah dikonfigurasikan untuk melaranghal yang berbahaya dari data yang masuk dan keluar.Biasanya firewall system akan membatasi suatu aksesBiasanya firewall system akan membatasi suatu akseskeluar komputer dengan membatasi services yang tidakperlu untuk meminimalisasi potensi cracking/hacking.

Page 34: Network Programming 1 - Teori Dasar Network Programming

P SProxy ServerPermasalahan Keamanan Jaringan

Sebuah mesin yang bertindak sebagai proxy untukprotokol aplikasi.S i k k i k d i l l Server menerima koneksi yang masuk dari local network dan membuat request ke mesin yang terkoneksi dengan Internetterkoneksi dengan Internet.Akses langsung ke internal machines tidak pernahterjadi dan proxy server dapat mengkontrol transaksi.j p y p g

Hak akses HTTP dapat dibatasi terhadap website ‐website tertentu saja.

l k k l kProxy servers juga melakukan log networking events.

Page 35: Network Programming 1 - Teori Dasar Network Programming

Network ProgramSebuah program jaringan dapat menerima informasidan mengirim suatu informasiT k l i k k i li di k i d l hTeknologi koneksi yang paling umum dipakai adalahClient‐Server

Chat Application Chat Application Multiplayer GamesPeer‐to‐peer Applicationp ppBrowser Web.

Page 36: Network Programming 1 - Teori Dasar Network Programming

Application OfApplication Of Network Programming

Network ToolsTelnet, FTP

Internet ToolsInternet ToolsHTTP, NTP

Collaborative ToolsCollaborative ToolsApplication Sharing.

Distributed Object ComputingRPC, CORBA

Distributed DatabaseOracle SQL ServerOracle, SQL Server

Page 37: Network Programming 1 - Teori Dasar Network Programming

ReferensiDavid and Michael Reilly, “ Java Network Programming and Distributed Computing”, Addison Wesley, 2002.Elliotte Rusty Harold “Java Network Programming” 3rdElliotte Rusty Harold, Java Network Programming , 3rd

Edition, O'Reilly, 2004.Melwin Syafrizal, “Pengantar Jaringan Komputer”, ANDI, y , g J g p , ,2005.Jan Graba, “An Introduction To Network Programming With J ”S iWith Java”,Springer,2007.