PEMROGRAMAN JARINGAN
Tujuan
Memahami protocol jaringan seperti TCP, UDP dan SCTP Mengenal kemampuan Java untuk pemrograman j jaringan g
Protocol Jaringan
Internet Protokol (IP) adalah
protokol lapisan jaringan (network layer dalam OSI Reference Model) atau protokol lapisan internetwork (internetwork layer dalam DARPA Reference Model) yang digunakan oleh protokol TCP/IP untuk melakukan pengalamatan dan routing paket k t data d t antar t host-host h t h t di jaringan j i kkomputer t berbasis TCP/IP
Transmission Control Protocol (TCP)
Transmission Control Protocol (TCP) adalah
suatu protokol yang berada di lapisan transpor (baik itu dalam tujuh lapis model referensi OSI atau model DARPA) yang berorientasi sambungan (connection-oriented) dan dapat diandalkan (reliable).
Karakteristik TCP
Berorientasi sambungan (connection-oriented): Sebelum
data dapat ditransmisikan antara dua host, dua proses yang berjalan pada lapisan aplikasi harus melakukan negosiasi untuk membuat sesi koneksi terlebih dahulu. Koneksi TCP ditutup dengan menggunakan proses terminasi koneksi TCP (TCP connection ti ttermination). i ti )
Karakteristik TCP
Full-duplex: Untuk
setiap host TCP, koneksi yang terjadi antara dua host terdiri atas dua buah jalur, yakni jalur keluar dan jalur masuk. Dengan menggunakan teknologi lapisan yang lebih rendah yang mendukung full-duplex, maka data pun dapat secara simultan diterima dan dikirim. H d TCP b Header berisi i i nomor urutt (TCP sequence number) b ) dari data yang ditransmisikan dan sebuah acknowledgment dari data yang masuk. masuk
Karakteristik TCP •
D Dapat t diandalkan di d lk (reliable): ( li bl ) –
–
–
Data yang dikirimkan ke sebuah koneksi TCP akan diurutkan dengan g sebuah nomor urut p paket dan akan mengharapkan g p paket positive acknowledgment dari penerima. Jika tidak ada paket Acknowledgment dari penerima, maka segmen TCP (protocol data unit dalam protokol TCP) akan ditransmisikan ulang. Pada pihak penerima, segmen-segmen duplikat akan d b k dan diabaikan d segmen-segmen yang datang d tidak d k sesuai dengan urutannya akan diletakkan di belakang untuk mengurutkan segmen-segmen TCP. Untuk menjamin integritas setiap segmen TCP, TCP mengimplementasikan penghitungan TCP Checksum.
Karakteristik TCP •
M Memiliki layanan flow fl control:l –
Untuk mencegah data terlalu banyak dikirimkan pada satu waktu, k yang akhirnya khi membuat b " "macet" " jaringan j i internetwork IP, TCP mengimplementasikan layanan flow control yang dimiliki oleh pihak pengirim yang secara terus menerus memantau dan membatasi jumlah data yang dikirimkan pada satu waktu. Untuk mencegah pihak penerima untuk memperoleh data yang tidak dapat disangganya (buffer), TCP juga mengimplementasikan flow control dalam pihak penerima, yang mengindikasikan jumlah buffer yang masih tersedia dalam p pihak p penerima.
Karakteristik TCP
Melakukan segmentasi terhadap data yang datang dari lapisan aplikasi (dalam DARPA Reference Model)
Karakteristik TCP
Mengirimkan paket secara "one-to-one": hal
ini karena memang TCP harus membuat sebuah sirkuit logis antara dua buah protokol lapisan aplikasi agar saling dapat berkomunikasi. TCP tidak menyediakan layanan pengiriman data secara one-tomany.
Segmen TCP
3 Way Handshake pada TCP
User Datagram Protocol (UDP)
User Datagram Protocol (UDP) singkatan
dari User Datagram Protocol, adalah salah satu protokol lapisan transpor TCP/IP yang mendukung komunikasi yang tidak andal (unreliable), tanpa koneksi (connectionless) antara host-host dalam jaringan yang menggunakan TCP/IP.
Karakteristik UDP
Connectionless (tanpa koneksi) Pesan-pesan
UDP akan dikirimkan tanpa harus dilakukan proses negosiasi koneksi antara dua host yang hendak berukar informasi.
Karakteristik UDP •
U li bl (tidak Unreliable ( andal)) – –
Pesan-pesan UDP akan dikirimkan sebagai datagram tanpa adanya d nomor urut atau pesan acknowledgment. k l d Protokol lapisan aplikasi yang berjalan di atas UDP harus melakukan pemulihan terhadap pesan-pesan pesan pesan yang hilang selama transmisi. Umumnya, protokol lapisan p aplikasi p yang y g berjalan j di atas UDP mengimplementasikan layanan keandalan mereka masing-masing, atau mengirim pesan secara periodik atau dengan d menggunakan k waktu k yang telah l h didefinisikan.
Karakteristik UDP
UDP menyediakan mekanisme untuk mengirim pesan-pesan ke sebuah protokol lapisan aplikasi atau proses tertentu di dalam sebuah host dalam jaringan yang menggunakan TCP/IP. Header UDP berisi field Source Process Identification dan Destination Process Identification.
Karakteristik UDP
UDP menyediakan penghitungan checksum berukuran 16-bit terhadap keseluruhan pesan UDP.
Format UDP
Pemrograman Jaringan dengan Java •
•
•
•
Pemrograman socket adalah cara untuk menggunakan komponen API (Application Programming Interface) socket untuk membuat sebuah aplikasi. Java telah menyediakan paket java.net yang berisi kelaskelas dan interface yang menyediakan API (Application Programming Interface) Level rendah (Socket, ServerSocket, DatagramSocket) dan level tinggi (URL, URLConnection). Socket merupakan fasilitas IPC (Inter Proses Communication)) untuk aplikasi p jjaringan. g
Client menghubungi server
Server menghubungi client
•
•
•
•
SSebuah b h socket k dilengkapi dl k d dengan alamat, l yang terdiri d atas IP address tujuan dan nomor port. Al Alamat IP dapat d menggunakan k alamat l j i jaringan l k l lokal (LAN) maupun alamat internet. Jadi socket dapat digunakan untuk IPC pada LAN maupun Internet. Internet Nomor port merupakan bilangan bulat yang digunakan untuk membedakan layanan layanan-layanan layanan yang berjalan pada komputer server yang sama. Pengguna layanan menggunakan nomor port ini untuk menghubungi komputer server dengan workstation (client).
Paket Java Network •
Socket(InetAddress address, address int port) : –
•
Socket(String host, int port) : –
•
untuk mendapatkan nomor remote host
getLocalPort() : –
•
untuk mendapatkan nama host yang dituju dan alamat Ipnya
getPort() P () : –
•
untuk membuat sebuah stream socket dan juga koneksi ke suatu port tertentu pada sebuah komputer berdasar namanya. Socket(InetAddress address, int port, InetAddress localAddr,int localPort) / Socket(String host, int port, InetAddress localAddr, int localPort) : untuk membuat sebuah socket dan mengkoneksikannya ke port yang dituju pada alamat IP yang disebutkan pada parameter address atau nama host. Selain itu juga akan dilakukan bind socket ke alamat lokal dan port lokal. (Hal ini dilakukan jika koneksi antara client dan server membutuhkan nomor port yang sudah ditentukan).
getInetAddress() : –
•
untuk membuat sebuah stream socket dan koneksi ke suatu nomor port pada sebuah komputer yang memiliki alamat IP.
untuk mendapatkan nomor port localhost
getLocalAddress() : –
untuk mendapatkan alamat local dimana socket digunakan
•
getInputStream() : –
•
getOutputStream() : –
•
untuk membentuk koneksi dengan protokol UDP pada alamat IP lokal host dengan penentuan nomor portnya secara random d berdasar b d tersedianya di nomor port yang dapat d di digunakan. k
DatagramPacket(byte[] buf, int length) : –
•
untuk membentuk koneksi dengan protokol UDP pada alamat IP lokal tertentu dan pada nomor port tertentu.
DatagramSocket() : –
•
untuk membuat sebuah server dengan port tertentu, batasan jumlah antrian (backlog), dan alamat IP bindAddress. DatagramSocket(int port) : untuk menyatakan penggunaan suatu nomor port sebagai "pintu" untuk menerima koneksi dari client.
D t DatagramSocket(int S k t(i t port,t InetAddress I tAdd l dd ) : laddr) –
•
mengembalikan objek output stream ke socket
ServerSocket( int port [, int backlog [, InetAddress bindAddress ]] ) : –
•
mengembalikan objek input stream dari socket
untuk mengambil informasi.
DatagramPacket(byte[] buf, int length, InetAddress address, int port) : –
untuk membuat paket Datagram yang akan mengirim data. Constructor ini memerlukan informasi array byte yang akan dikirim dan panjangnya, serta alamat dan port yang dituju.
Next on Dasar
– dasar Pemrograman Java