1. Jelaskan secara singkat apa yang anda ketahui tentang UDP
  2. Jelaskan perbedaan TCP dan UDP
  3. Berikan contoh aplikasi –aplikasi yang menggunakan protokol UDP, dan jelaskan bagaimana kerja aplikasi tersebut.
  4. Bagaimana konsep Client Server dalam jaringan komputer
  5. Jelaskan secara singkat apa yang anda ketahui tentang Protokol Transport.
  6. Dalam protokol transport terdapat dua protokol utama yaitu TCP and UDP, jelaskan perbedaan TCP dan UDP.
  7. Berikan contoh aplikasi –aplikasi yang menggunakan protokol TCP, dan jelaskan bagaimana kerja aplikasi tersebut.
  8. Jelaskan langkah dan prinsip kerja socket programming untuk komunikasi dua arah

JAWABAN

  1. UDP (Unit 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. Di protocol connectionless, tidak ada usaha yang dibuat untuk koneksi end-to-end. Koumikasi dicapai dengan mengirimkan informasi satu arah, dari source ke destination tanpa mengecek untuk melihat apakah tujuan masih ada, atau apakah koneksi disiapkan untuk menerima informasi. Paket UDP melewati jaringan dalam unit-unit yang berdiri sendiri.
  2. TCP memiliki ciri-ciri yaitu sebagai berikut:
    • Terpercaya
      TCP mengatur pesan acknoweledegment, retransmission, dan timeout. Banyak usaha untuk mengirimkan pesan yang dibuat dengan terpercaya. Jika hilang ditengah jalan, server akan meminta kembali bagian yang hilang. Di TCP, tidak ada data yang hilang atau dalam beberapa kasus timeouts, koneksi didrop.
    • Terurut
      Jika dua pesan dikirimkan sepanjang koneksi, satu demi satu, pesan yang pertama akan mencapai aplikasi penerima pertama. Ketika paket data tiba di urutan yang berbeda, layer TCP menahan data selanjutnya sampai data yang baru saja datang dapat di urutkan kembali dan dikirimkan ke aplikasi.
    • Heavyweight
      TCP meminta tiga paket hanya untuk mensetup socket, sebelum beberapa data aktual dapat dikirimkan. Ini mengatur koneksi, reliability, dan congestion control. Ini adalah protocol transport yang besar yang didesain di atas IP
    • Streaming
      Data dibaca sebagai “stream”, dengan tidak membedakan dimana satu paket berakhir dan yang lin dimulai. Paket mungkin dipisah atau digabungkan ke dalam data streams yang lebih besar atau lebih kecil secara sewenang-wenang.

    Ciri-ciri UDP adalah:

    • Tidak terpercaya
      Ketika pesan dikirimkan, tidak dapat diketahui apakah akan sampai tujuan. Paket dapat hilang di jalan. Tidak ada konsep acknoweledgment, retransimission, dan timeout.
    • Tidak terurutJika dua pesan dikirimkan ke penerima yang sama, urutan sampainya tidak dapat diprediksi.
    • Lightweight
      Tidak ada pemesanan pesan, tidak ada pelacakan koneksi, dll. Layer transport yang kecil yang didesain di atas IP.
    • Datagrams
      Paket yang dikirimkan secara individu dan dijamin akan utuh jika sampai. Paket-paket memiliki batas-batas yang pasti, dan tidak dipisan dan dibagi ke dalam data stream yang mungkin ada.
  3. Aplikasi yang menggunkan protokol UDP antara lain :
    • Domain Name System (DNS) name server, Dimana cukup dengan sebuah host yang melakukan pemetaan suatu namaterhadap IP, sehingga host lain cukup mengakses host tersebut dan menanyakan suatu namadan dibalaskan alamat IP kepada host penanya. Sehingga host penanya tidak perlu memilikidatabase pemetaan tersebut
    • Remote Procedure Call (RPC), RPC adalah suatu protokol yang memperbolehkan suatu program komputer yangmemberikan suatu subroutin kepada komputer yang lain untuk menjalankan suatu perintahtanpa melalui programmner membuat program terlebih dahulu
    • Network File System (NFS, SUN Microsystems Network File System (NFS) adalah protokol yang dapat membagisumber daya melalui jaringan. NFS dibuat untuk dapat independent dari jenis mesin, jenissistem operasi, dan jenis protokol transport yang digunakan. Hal ini dilakukan denganmenggunakan RPC.
    • Simple Network Management Protocol (SNMP, SNMP merupakan salah protokol resmi dari Internet Protocol suite yang dibuat olehInternet Engineering Task Force (IETF). SNMP merupakan contoh dari layer 7 aplikasiyang digunakan oleh network management system untuk memonitor perangkat jaringansehingga dapat memberikan informarsi yang dibutuhkan bagi pengelolanya
    • Lighweight Directory Access Protocol (LDAP)
  4. Sesuai dengan namanya, Client-Server berarti adanya pembagian kerja pengolahan data antara client dan server . Saat ini, sebagian besar jaringan menggunakan model client/server. Secara singkat, jaringan client/server adalah jaringan dimana komputer client bertugas melakukan permintaan data dan server bertugas melayani permintaan
    Client tersebut.Sistem client server memungkinkan sebuah teknologi dan applikasinya digunakan bersamaan. User disini adalah end user yang mengakses client untuk mendapatkan sebuah layanan. Client dapat berupa sebuah pemproses yang powerful atau dapat juga berupa terminal tua dengan kemampuan proses yang terbatas. Secara mendasar client adalah sebuah PC dengan sistem operasinya sendiri. Konektivitas adalah hal yang terpenting namun bukan satu-satunya faktor untuk mendapatkan efisiensi dan efektivitas sharing resource yang dimiliki. Dibutuhkan sebuah perangkat yang memiliki kemampuan mengontrol software, menjalankan program applikasi, dan mengakses database dengan mudah dan cepat. Untuk itulah diperlukan sebuah Server.
  5. Protokol transport merupakan protokol yang berjalan dalam layer transport yang menghubungkan antar 2 host berbeda , 2 program berbeda dalam 1 jaringan dan mengirim data pada port-port menurut printah da
  6. Perbedaan antara UDP dan TCP adalah :a. Protokol TCPTCP( Transmission Control Protocol ) adalah salah satu jenis protokol transfer data. TCP mempunyai karakteristik sebagai protokol yang berorientasi koneksi (Connection oriented). Sebelum terjadi proses tranfer data, maka yang pertama dilakukan adalah kedua belah pihak melakukan caal request dan call accept. Protokol TCP menggunakan jalur data full duplex yang berarti antara kedua host terdapat dua buah jalur, jalur masuk dan jalur keluar sehingga data dapat dikirimkan secara simultan.

    Sebuah circuit virtual disiapkan sebelum packet-packet dikirimkan. Pada masing-masing packet terdapat virual circuit identifier yang berisi alamat tujuan packet tersebut. Data yang dikirimkan dalam sebuah protokol TCP maka akan diurutkan dengan sebuah nomor urut dan akan mengharap packet positive acknowledgment. Apabila tidak ada packet positive acknowledgment, maka packet akan dikirim ulang. Oleh karena itu, protokol TCP reliable. Akan tetapi karena harus mengecek setiap packet yang dikirmkan, maka protokol TCP relatif lambat. Pada TCP, hanya bisa melakukan koneksi one-to-one dan tidak bisa melakukan koneksi one-to-many. Karena rute-rute packet sudah ditentukan sebelumnya, maka akan lebih sulit bagi jaringan untuk beradaptasi dengan kemacetan. Apabila sebuah simpul/node mengalami kerusakan/kegagalan, maka seluruh virtual circuit yang melewati simpul tersebut akan hilang.

    b.Protokol UDP

    UDP ( User Datagram Protocol) adalah jenis transfer data yang lain dari TCP. UDP mempunyai karateristik connectionless (tidak berbasis koneksi). Dengan kata lain, data yang dikirimkan dalam bentuk packet tidak harus melakukan call setup seperti pada TCP. Selain itu, data dalam protokol UDP akan dikirimkan sebagai datagram tanpa adanya nomor identifier. Sehingga sangat besar sekali kemungkinan data sampai tidak berurutan dan sangat mungkin hilang/rusak dalam perjalananan dari host asal ke host tujuan. Tergantung pada host penerima/tujuan, apakah akan meminta kembali pakcet yang rusak atau hilang.

    Kelebihan UDP adalah pada saat digunakan pada lightweight protokol, misalnya saja DNS(Domain Name Service). Selain itu protokol UDP lebih fleksibel karena misalnya saja terjadi kemacetan pada salah satu bagian jaringan, maka datagram dapat dialihkan menghindari bagian yang mengalami kemacetan tersebut. Kemudian apabila sebuah simpul(node) mengalami kerusakan/kegagalan, maka pacekt packet berikutnya dapat menemukan jalan/rute pengganti yang melewati simpul tersebut.

    1. UDP adalah “datagram-oriented”, sedangkan TCP adalah “session-oriented”. Datagram adalah paket informasi self-contained. UDP berhubungan dengan datagram atau paket individu yang dikirim dari client ke server dan atau sebaliknya.
    2. UDP adalah connection-less. Client tidak membangun koneksi ke server sebelum mengirim data, client hanya mengirim data secara langsung.
    3. UDP adalah protokol yang tidak andal, dalam artian :

    * Paket dapat hilang. UDP tidak dapat mendeteksinya, sehingga pada program aplikasi client – server, metode transmisi ulang dikarenakan data rusak atau hilang harus dilakukan pada level aplikasi. Biasanya aplikasi menunggu hingga timeout habis, dan kemudian mencoba lagi.

    * Paket dapat mengalami kerusakan. Paket UDP berisi checksum semua data dalam paket. Checksum ini memungkinkan UDP mendeteksi kapan suatu paket mengalami kerusakan. Jika hal ini terjadi, maka paket tersebut dikeluarkan, dan sebagaimana biasa aplikasilah yang mendeteksi hal ini dan melakukan transmisi ulang seperlunya.

    * Karena UDP adalah datagram-oriented dan pada level protokol setiap paket berdiri sendiri, maka UDP tidak memiliki konsep paket sesuai urutan, yang selanjutnya berarti tidak memerlukan nomor urut pada paket tersebut.

    * Karena UDP tidak memerlukan mekanisme kontrol yang rumit, maka UDP dapat dianggap lebih mudah dan lebih kecil ( dalam hal baris data dan memori ) untuk diimplementasikan. Namun hal tersebut juga membuat UDP tidak cocok untuk sejumlah besar data.

    Port in UDP

    Tidak ada perbedaan fungsi yang signifikan antara port di UDP dan TCP. Seperti halnya TCP, port dalam UDP menggunakan 16-bit integer, port – port yang bisa digunakan adalah antara 1 sampai 65535. Port – port yang digunakan dibagi menjadi 3 bagian yaitu well-known port ( antara 1 – 1023), registered port ( 1024 – 49151 ) dan ephemeral port ( 49152 – 65535 ).

    Port in TCP
    Aplikasi client menggunakan nomor port untuk memberitahu mesin tujuan dan service TCP mana yang diinginkannya. Server untuk aplikasi tertentu menggunakan well-known port untuk mengetahui koneksi dari client yang meminta servicenya.

    Port – port yang digunakan dalam transport layer menggunakan 16-bit integer (0 – 65535), dengan satu sama lain harus berbeda (unique).

    Pada saat client ingin membangun koneksi dengan Server, client harus mengetahui port dari server yang dituju dan protokol apa yang digunakan (UDP or TCP or SCTP).

    Client di sisi sebaliknya, umumnya menggunakan ephemeral port atau biasa disebut short-lived ports. Nomor pada port ephemeral yang digunakan oleh client diberikan oleh Transport Protocol. Client tidak perlu tahu nomor port ephemeral yang digunakan, yang jelas semua port ephemeral yang digunakan pasti bersifat unique.

    The Internet Assigned Numbers Authority (IANA) telah mengelompokkan nomor – nomor port yang dibagi menjadi tiga bagian :

    1. well-known ports: 0 – 1023. Pada range ini merupakan nomor – nomor port yang telah digunakan oleh IANA. Contoh nya adalah Web server yang menggunakan port 80, FTP menggunakan 21 dll.
    2. Registered ports: 1024 – 49252. Nomor – nomor port pada range ini tidak digunakan oleh IANA, IANA mengelompokkan port – port ini untuk dapat digunakan sebagai server untuk TCP atau UDP. Contohnya antara port 6000 sampai 6063 digunakan untuk X Windows server. Aplikasi yang kita gunakan juga bisa menggunakan port ini.
    3. Private ports: 49152 – 65535. Nomor – nomor port pada range ini adalah ephemeral port. Namun tentu saja tidak menutup kemungkinan nilai ephemeral port mempunya nilai diluar range ini, hal tersebut bergantung juga dari Sistem Operasi yang digunakan.

    Jadi dapat disimpulkan bahwa koneksi TCP memiliki 1 buah local ip address, local port number, foreign ip address dan foreign port number.

  7. •TELNET, Protokol TELNET dipakai untuk menyamai seperti terminal yang terkoneksi untuk host secara remote (berjauhan). Prinsip kerjanya menggunakan TCP sebagai protokol transport untuk mengirimkan informasi dari keyboard pada user menuju remote-host serta menampilkan informasi dari remote-host ke workstation pada user.

    Untuk menjalankan proses TELNET maka digunakan komponen TELNET untuk client yang dijalankan padaworkstation (user) dan server TELNET yang dijalankan pada host.
    •File Transfer Protocol (FTP),FTP menggunakan protokol transport TCP untuk mengirimkan file. TCP dipakai sebagai protokol transport karena protokol ini memberikan garansi pengiriman dengan FTP yang dapat memungkinkan user mengakses file dan directory secara interaktif, diantaranya:

    • Melihat daftar file pada direktory remote dan lokal.
    • Menganti nama dan menghapus file
    • Transfer file dari host remote ke lokal (download)
    • Transfer file dari host lokal ke remote (upload)
    •Simple Mail Transfer Protocol (SMTP),

    Komunikasi dengan e-mail mungkin saat ini merupakan salah satu aplikasi yang paling luas dipakai pada internet. Ada beberapa protokol yang dapat digunakan untuk melayani transfer e-mail, tetapi yang paling umum digunakan adalah Simplemail-transfer-protocol (SMTP).
    SMTP mampu menangani pesan berupa teks kode ASCII yang akan dikirimkan kedalam kotak surat (mail-boxes) pada host TCP/IP yang telah ditentukan untuk melayani e-mail.
    Mekanisme SMTP: dimana user yang ingin mengirimkan e-mail berinteraksi dengan mail-system lokal lewat komponen user agent (UA) pada mail-systemE-mail yang akan dikirim terlebih dahulu disimpan sementara dalam outgoing-mail-box, selanjutnya SMTP pengirim memproses e-mail pada yang dikumpulkan padaoutgoing-mail-box secara periodik. Jika pengirim SMTP menemukan e-mail pada outging-mail-box, maka secara langsung akan membuat koneksi TCP dengan host yang dituju untuk mengirimkan e-mail. Penerima SMTP dalam proses sebagai tujuan yang harus meneima koneksi TCP, selanjutnya e-mail dikirim pada koneksi ini. Pada penerima SMTP ini e-mail disimpan dalam host tujuan pada masing-masing mail-box sesuai dengan alamat tujuan. Jika mail-box dengan nama yang tidak sesuai dengan nama mail-box yang ada pada host tujuan, maka email dikirim kembali yang menunjukkan mail-box tidak ada.
    Alamat e-mail yang dipakai pada SMTP menggunakan standar RFC 882, dan informasi yang dikirim ditambahkan beberapa header yang sering disebut dengan “882 headers”. Contoh alamat e-mail misalnya :
    fulan@yahoo.com
    teks sebelum simbol @ adalah nama mail-box, sedangkan teks sesudah simbol @ adalah nama host, jadi pada alamat e-mail fulan@yahoo.com berarti nama mail-box adalah fulan yang terdapat pada hostyahoo.com. Jika mail-box menggunakan karakter atau simbol khusus (misalnya tanda %), maka nama mail-box diberikan untuk encoding khusus agar SMTP dapat menggunakan sebagai mailgateway.
    Protokol SMTP menginginkan host tujuan yang akan menerima e-mail dalam keadaan on-line, jika tidak maka hubungan TCP dengan host tujuan tidak dapat dilakukan. Pada sistem jaringan komputer maka host SMTP selalu dalam keadaan on dan tersambung ke jaringan, sedangkan workstation yang berada pada user dapat  berinteraksi dengan host SMTP untuk membaca atau mengirim e-mail menggunakan client/server-mail-protocol, contohnya post-office-protocol versi 3 sesuai yang dijabarkan dalam RFC 1460, atau yang sering disebut POP3.
    Jika ingin mengirimkan e-mail lewat SMTP dengan informasi yang berisi bermacam-macam format data (tidak hanya teks saja) maka dapat digunakan sistem pengkodean agar data tersebut menjadi teks dengan program UUCODE, kemudian penerima SMTP yang menerima e-mail dapat mengkodekan kembali untuk merubah teks agar sesuai dengan format sebelumnya menggunakan program UUDECODE. Cara lain yang dapat dipakai untuk mengirimkan informasi non-teks adalah dengan menggunakan protokol Multipurpose-internet-mail-extension (MIME). MIME dijabarkan dalam RFC 1521, 1522 & 1563.
    Pada saat ini untuk menggunakan fasilitas MIME tidak akan menyulitkan pemakai karena pada beberapa aplikasi e-mail telah dilengkapi dengan fasilitas pengkodean MIME, seperti pada aplikasi e-mail pada Netscape Composer, Microsoft Outlook, Eudora, dll.
    •Hyper-Text Transfer Protocol (HTTP), protokol yang dipakai pada browser yang kita gunakan pada umumnya sebagai ganti dari penginputan IP untuk mencari alamat WEB.
  8. PRINSIP KERJA PEMROGRAMAN SOCKET
a.       Antarmuka (interface) antara program aplikasi dengan protokol komunikasi pada suatu sistem operasi disebut Application Program Interface (API). API didefinisikan sebagai suatu kumpulan instruksi yang mendukung proses interaksi antara suatu perangkat lunak dengan suatu protokol yang digunakan.
b.      Pada mesin keluarga Linux, socket terintegrasi dengan I/O sehingga aplikasi yang berkomunikasi dengan socket, cara kerjanya sama dengan suatu aplikasi yang mengakses peralatan I/O. Oleh karena itu untuk memahami cara kerja socket pada Linux, sebelumnya harus juga memahami fasilitas I/O pada Linux.
c.      Pada saat suatu aplikasi berkomunikasi, awalnya aplikasi membuat socket baru, maka pada aplikasi tersebut akan diberikan nomer yang digunakan sebagai referensi socket. Jika ada suatu sistem yang menggunakan nomer referensi socket tersebut, maka akan terjalin suatu jaringan komunikasi antar komputer sebaik transfer data lokal.
d.      Untuk berkomunikasi dengan server, client harus tahu nomor IP server begitu juga server, nomor port yang dituju, nomor port menunjukkan service yang dijalankan. Contoh port23 untuk Telnet Server, port 25 untuk Mail Server dan port 80 untuk Web Server. Dalam hal ini aplikasi di client sudah mengetahui port yang akan dituju. Contoh program aplikasi di client yang meminta service di server ada;ah ftp, telnet, ssh. Untuk melihat service bisa dilihat pada file /etc/services.
e.       Program yang berjalan di server, akan berjalan sepanjang waktu (disebut sebagai daemon) sampai mesin/service dimatikan, menunggu request dari client sesuai service yang diminta.