PEMROGRAMAN JARINGAN
Tujuan Memahami protocol jaringan seperti TCP, UDP dan SCTP Mengenal kemampuan Java untuk pemrograman jaringan
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 kt data dt antar host-host th t di jaringan komputer 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 termination). 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. Header TCP berisi i nomor urut (TCP sequence number) dari data yang ditransmisikan dan sebuah acknowledgment dari data yang masuk.
Karakteristik TCP Dapat diandalkan d (reliable): Data yang dikirimkan ke sebuah koneksi TCP akan diurutkan dengan sebuah nomor urut paket dan akan mengharapkan 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 diabaikan dan segmen-segmen yang datang tidak 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 Memiliki layanan flow control: Untuk mencegah data terlalu banyak dikirimkan pada satu waktu, yangakhirnya membuat "macet"" jaringan 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 pihak 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 Unreliable (tidak andal) Pesan-pesan UDP akan dikirimkan sebagai datagram tanpa adanya nomor urut atau pesan acknowledgment. Protokol lapisan aplikasi yang berjalan di atas UDP harus melakukan pemulihan terhadap pesan-pesan yang hilang selama transmisi. Umumnya, protokol lapisan aplikasi yang berjalan di atas UDP mengimplementasikan layanan keandalan mereka masing-masing, atau mengirim pesan secara periodik atau dengan menggunakan waktu yang telah 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 jaringan.
Client menghubungi server
Server menghubungi client
Sebuah socket dilengkapi dengan alamat, yang terdiri atas IP address tujuan dan nomor port. Alamat IP dapat menggunakan alamat jaringan lokal l (LAN) maupun alamat internet. Jadi socket dapat digunakan untuk IPC pada LAN maupun Internet. Nomor port merupakan bilangan bulat yang digunakan untuk membedakan 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, int port) : untuk membuat sebuah stream socket dan koneksi ke suatu nomor port pada sebuah komputer yang memiliki alamat IP. Socket(String host, int port) : 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 mendapatkan nama host yang dituju dan alamat Ipnya getport() : untuk mendapatkan nomor remote host getlocalport() : untuk mendapatkan nomor port localhost getlocaladdress() : untuk mendapatkan alamat local dimana socket digunakan
getinputstream() : mengembalikan objek input stream dari socket getoutputstream() : mengembalikan objek output stream ke socket ServerSocket( int port [, int backlog [, InetAddress bindaddress ]] ) : 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. DatagramSocket(int t(i tport, InetAddress laddr) : untuk membentuk koneksi dengan protokol UDP pada alamat IP lokal tertentu dan pada nomor port tertentu. DatagramSocket() : untuk membentuk koneksi dengan protokol UDP pada alamat IP lokal host dengan penentuan nomor portnya secara random berdasar tersedianya nomor port yang dapat digunakan. DatagramPacket(byte[] buf, int length) : 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