Selasa, 10 November 2009

Transmission Control Protocol (TCP)

TCP/IP TCP singkatan dari 'Transmission Control Protocol' dan hampir semua sistem operasi modern kompatibel dengan protocol ini. TCP adalah dasar dari koneksi, Hal ini berarti melakukan suatu koneksi langsung antara dua komputer untuk melakukan transfer data antara kedua host. Suatu paket mengandung header dan data gram, pada bagian header dari paket akan mengandung informasi penting tentang :

· Source Port

· Destination Port

· Sequence number

· Acknowledgement number

· Header Length (Standard 20 Bytes)

· Flags (syn, ack, psh, fin, rst, urg)

· Window size

· Checksum

· IP_v4 or IP_v6

· Header Length

· DSF

· Total Length

· Identification

· Flags (Set Fragment bit or not)

· Fragment Offset

· TTL

· Protocol (this case TCP)

· Header checksum

· Source IP

· Destination IP

Karakteristik TCP

TCP memiliki karakteristik sebagai berikut:

  • 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).
  • 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 nomor urut (TCP sequence number) dari data yang ditransmisikan dan sebuah acknowledgment dari data yang masuk.
  • Dapat diandalkan (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.
  • Byte stream: TCP melihat data yang dikirimkan dan diterima melalui dua jalur masuk dan jalur keluar TCP sebagai sebuah byte stream yang berdekatan (kontigu). Nomor urut TCP dan nomor acknowlegment dalam setiap header TCP didefinisikan juga dalam bentuk byte. Meski demikian, TCP tidak mengetahui batasan pesan-pesan di dalam byte stream TCP tersebut. Untuk melakukannya, hal ini diserahkan kepada protokol lapisan aplikasi (dalam DARPA Reference Model), yang harus menerjemahkan byte stream TCP ke dalam "bahasa" yang ia pahami.
  • Memiliki layanan flow control: Untuk mencegah data terlalu banyak dikirimkan pada satu waktu, yang akhirnya 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.
  • Melakukan segmentasi terhadap data yang datang dari lapisan aplikasi (dalam DARPA Reference Model)
  • 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-to-many.

TCP umumnya digunakan ketika protokol lapisan aplikasi membutuhkan layanan transfer data yang bersifat andal, yang layanan tersebut tidak dimiliki oleh protokol lapisan aplikasi tersebut. Contoh dari protokol yang menggunakan TCP adalah HTTP dan FTP.

UDP (User Datagram Protocol)

Adalah TCP yang connectionless. Hal ini berarti bahwa suatu paket yang dikirim melalui jaringan dan mencapai computer lain tanpa membuat suatu koneksi. Sehingga dalam perjalanan ke tujuan paket dapat hilang karena tidak ada koneksi langsung antara kedua host dalam jarigan yang menggunakan TCP/IP. Jadi UDP sifatnya tidak realibel, tetapi UDP lebih cepat dari pada TCP dalam mengirimkan suatu paket karena UDP tidak membutuhkan koneksi langsung.

Karakteristik UDP

UDP memiliki karakteristik – karakteristik berikut:

a. Connectionless (tanpa koneksi)

Pesan – pesan UDP akan dikirimkan tanpa harus dilakukan proses negosiasi koneksi antara dua host yang hendak bertukar informasi.

b. Unrealible (Tidak andal)

Pesan – pesan UDP akan dikirimkan sebagai datagram tanpa adanya nomor urut atau pesan acknowledgment. Protocol lapisan aplikasi yang berjalan di atas keandalannya mereka masing – masing, atau mengirim pesan secara periodic atau dengan menggunakan waktu yang telah didefinisikan.

c. UDP menyediakan mekanisme untuk mengirim pesan – pesan ke sebuah protocol lapisan aplikasi atau proses tertentu di dalam jaringan yang menggunakan TCP/IP. Header UDP berisi Field Source Process dan Destination Process Indentification.

d. UDP menyediakan perhitungan checksum berukuran 16 – bit terhadap keseluruhan pesan UDP.

UDP tidak menyediakan layanan – layanan antar host berikut:

a. UDP tidak menyediakan mekanisme penyanggaan (buffering) dari data yang masuk ataupun data yang keluar. Tugas buffering merupakan tugas yang harus diimplementasikan oleh protocol lapisan aplikasi yang berjalan di atas UDP.

b. UDP tidak menyediakan mekanisme segmentasi data yang besar ke dalam segmen – segmen data, seperti yang terjadi dalam protocol TCP. Karena itulah, protocol lapisan aplikasi yang berjalan di atas UDP harus mengirimkan data yang berukuran kecil (tidak lebih besar dari nilai Maksimum Transfer Unit / MTU) yang dimiliki oleh sebuah antarmuka di mna data tersebut dikirim. Karena, jika ukuran paket data yang dikirim lebih besar dibandingkan nilai MTU, paket data yang dikirimkan bias saja terpecah menjadi beberapa fragmen yang akhirnya tidak jadi terkirim dengan benar.

c. UDP tidak menyediakan mekanisme flow – control , seperti yang dimiliki TCP.

Penggunaan UDP

UDP sering digunakan dalam beberapa tugas berikut:

a. Protokol yang “ringan” (lightweight).

Untuk menghemat sumber daya memori dan prosesor. Beberapa protokol lapisan aplikasi membutuhkan penggunaan protokol yang ringan yang dapat melakukan fungsi – fungsi spesifik dengan saling bertukar pesan. Contoh dari protokol yang ringan adalah fungsi query nama dalam protokol lapisan aplikasi Domain Name System.

b. Protokol lapisan apliksi yang mengimplementasikan layanan keandalan.

Jika protokol lapisan aplikasi menyediakan layanan transfer data yang andal, maka kebutuhan terhadap keandalan yang ditawarkan oleh TCP pun menjadi tidak ada. Contoh dari protokol seperti ini adalah Trivial File Transfer Protocol (TFTP) dan Network File System (NFS).

c. Protokol yag tidak membutuhkan keandalan.

Contoh protokol ini adalah protokol Routing Information Protocol (RIP).

d. Transmisi broadcast: Karena UDP merupakan protokol yang tidak perlu membuat koneksi terlebih dahulu dengan sebuah host tertentu, maka transmisi broadcast pun dimungkinkan. Sebuah protokol lapisan aplikasi dapat mengirimkan paket data ke beberapa tujuan dengan menggunakan alamat multicast atau broadcast. Hal ini kontras dengan protokol TCP yang hanya dapat mengirimkan transmisi one-to-one. Contoh: query nama dalam protokol NetBIOS Name Service.

Port UDP

Seperti halnya TCP, UDP juga memiliki saluran untuk mengirimkan informasi antar host, yang disebut dengan UDP Port. Untuk menggunakan protokol UDP, sebuah aplikasi harus menyediakan alamat IP dan nomor UDP Port dari host yang dituju. Sebuah UDP port berfungsi sebagai sebuah multiplexed message queue, yang berarti bahwa UDP port tersebut dapat menerima beberapa pesan secara sekaligus. Setiap port diidentifikasi dengan nomor yang unik, seperti halnya TCP, tetapi meskipun begitu, UDP Port berbeda dengan TCP Port meskipun memiliki nomor port yang sama. Tabel di bawah ini mendaftarkan beberapa UDP port yang telah dikenal secara luas.

Nomor Port UDP

Digunakan Oleh

53

Domain Name System (DNS) Name Query

67

BOOTP Client (Dynamic Host Configuration Protocol [DHCP])

68

BOOTP Server (DHCP)

69

Trivial File Transfer Protocol (TFTP)

137

NetBIOS Name Service

138

NetBIOS Datagram Service

161

Simple Network Management Protocol (SNMP)

445

Server Message Block (SMB)

520

Routing Information Protocol (RIP)

1812/1813

Remote Authentication Dial – in User Service (RADIUS)

Daftar Pustaka:
WIKIPEDIA

Telnet

Telnet adalah aplikasi remote login Internet. Telnet digunakan untuk login ke komputer lain di Internet dan mengakses berbagai macam pelayanan umum, termasuk katalog perpustakaan dan berbagai macam database. Telnet memungkinkan pengguna untuk duduk didepan komputer yang terkoneksi ke internet dan mengakses komputer lain yang juga terkoneksi ke internet. Dengan kata lain koneksi dapat terjadi ke mesin lain di satu ruangan, satu kampus, bahkan setiap komputer di seluruh dunia. Setelah terkoneksi, input yang diberikan pada keyboard akan mengontrol langsung ke remote computer tadi. Akan dapat diakses pelayanan apapun yang disediakan oleh remote machine dan hasilnya ditampilkan pada terminal lokal. Dapat dijalankan session interaktif normal (login, eksekusi command), atau dapat diakses berbagai service seperti: melihat catalog dari sebuah perpustakaan, akses ke teks dari USA today, dan masih banyak lagi service yang disediakan oleh masing-masing host pada di network.


Telnet menggunakan 2 program, yang satu adalah client (telnet) dan server (telnetd). Yang terjadi adalah ada dua program yang berjalan, yaitu software client yang dijalankan pada komputer yang meminta pelayanan tersebut dan software server yang dijalankan oleh computer yang menghasilkan pelayanan tadi.

Gambar 1. Interaksi TELNET (Parker, 1994:117)

Gambar 2. Koneksi mesin ketika terjadi TELNET (Parker, 1994:118)

Tugas dari client adalah:

  • Membuat koneksi network TCP (Transfer Control Protocol) dengan server.

  • Menerima inputan dari user.

  • Menformat kembali inputan dari user kemudian mengubah dalam bentuk format standard dan dikirim ke server.

  • Menerima output dari server dalam format standard.

  • Mengubah format output tadi untuk ditampilkan pada layar.


Sedangkan tugas dari server adalah:

  • Menginformasikan software jaringan bahwa komputer itu siap menerima koneksi.

  • Menunggu permintaan dalam bentuk format standard.

  • Melaksanakan permintaan tersebut.

  • Mengirim kembali hasil ke client dalam bentuk format standard.

  • Menunggu permintaan selanjutnya.

Domain Name Server (DNS)

DNS adalah Domain Name Server, yaitu server yang digunakan untuk mengetahui IP Address suatu host lewat host name-nya. Dalam dunia internet, komputer berkomunikasi satu sama lain dengan mengenali IP Address-nya.

Namun bagi manusia tidak mungkin menghafalkan IP address tersebut, manusia lebih mudah menghapalkan kata-kata seperti www.yahoo.com, www.google.com, atau www.friendster.com. DNS berfungsi untuk mengkonversi nama yang bisa terbaca oleh manusia ke dalam IP addresshost yang bersangkutan untuk dihubungi.

Struktur DNS

DNS merupakan sebuah hiraki pengelompokan domain berdasarkan nama yang terbagi menjadi beberapa bagian, diantaranya:

  1. Root Level Domain

    Domain ditentukan berdasarkan tingkatan kemampuan yang ada di struktur hirarki yang disebut dengan level, dan level yang paling atas disebut dengan root domain. root doamain di ekspresikan berdasarkan periode dimana lambang untuk root domain adalah (".")

  2. Top Level Domain

    Berikut ini adalah contoh dari top level domain:

  • .com → Organisasi Komersial

  • .edu → Institusi pendidikan atau universitas

  • .org → Organisasi non profit

  • .net → Network (Backbone Internet)

  • .gov → Organisasi pemerintah non militer

  • .mil → Organisasi pemerintah militer

  • dll

  1. Second Level Domain

    Second Level Domain dapat berisi host dan domain lain, yang disebut dengan sub domain. Sebagai contoh nya adalah sebagai berikut:

  • Domain eepis-its
  • Domain .detik
  • Domain .cisco
  1. Host Names

    Domain name yang digunakan dengan host nama akan menciptakan dully qualified domain name (FQDN) untuk setiap komputer. Sebagai contoh, jika terdapat fileserver.eepis-its.edu, dimana fileserver adalah host name dan eepis-its.edu adalah domain name.

Cara kerja DNS adalah sebagai berikut:

Bagian resolver adalah bagian dari program aplikasi yang berfungsi menjawab setiap pertanyaan tentang domain. Untuk menjawab pertanyaan, resolver dapat mencari jawabannya dengan memeriksa isi cache dan meneruskan pertanyaan ke server DNS atau bertanya langsung ke server DNS. Cache adalah bagian yang menyimpan pertanyaan-pertanyaan tentang domain yang pernah diajukan sebelumnya. Setiap aplikasi internet yang ingin menghubungi host lain pasti akan berinteraksi dengan server DNS melalui resolver.

Jika server DNS tidak memiliki jawaban dari pertanyaan domain (name server bukan authoritative name server dari domain yang ditanyakan), maka server DNS akan meneruskan pertanyaan tersebut ke name server yang dianggapnya lebih tahu. Proses pengalihan ke name server (NS) lain (proses name resolution) ni merupakan proses iteratif yang berlangsung hingga diperoleh alamat lengkap sebuah host.

Sebagai contoh jika ada user yang ingin menghubungi lecturer.eepis-its.edu, maka mula-mula NS akan menghubungi root server. Karena root server tidak memiliki informasi untuk host lecturer.eepis-its.edu, maka root server akan memberikan referensi kepada NS untuk menghubungi authoritative name server terdekat yaitu name server untuk domain edu. Proses ini terus berlangsung hingga NS memperoleh informasi lengkap tentang host lecturer.eepis-its.edu.

Setiap request domain akan disimpan di dalam cache untuk jangka waktu tertentu. Hal ini bertujuan untuk mempercepat proses name resolution. Sebagai contoh jika sebelumnya ada user yang me-request informasi untuk lecturer.eepis-its.edu, maka untuk user yang me-request fileserver.eepis-its.edu akan diarahkan ke name server yang memiliki korelasi terdekat dengan domain yang pernah di-request yang tersimpan di dalam cache, yaitu name server eepis-its.edu.

FlowChart DNS Server

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 Simple Mail Transfer Protocol (SMPT). SMPT mampu menangani pesan berupa teks kode ASCII yang akan dikirim kedalam kotak surat (mail-boxes) pada host TCP/IP yang telah ditentukan untuk melayani e-mail.

Pada gambar di atas menunjukkan mekanisme SMTP, dimana user yang ingin mengirimkan e-mail berinteraksi dengan mail-system lokal lewat komponen user-agent (UA) pada mail-system. e-mail yang akan dikirim terlebih dahulu disimpan sementara dalam outgoing-mail-box, selanjutnya SMTP pengirim memproses e-mail yang dikumpulkan pada outgoing-mail-box secara periodi. Jika pengirim SMTP menemukan e-mail pada outgoing-mail-box, maka secara langsung akan membuat koneksi TCP dengan host yang dituju untuk mengirim e-mail. Penerima SMTP dalam proses sebagai tujuan yang harus menerima 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 tidak sesuai dengan nama mail-box yang adapada host tujuan, maka e-mail dikirim kemabali yang menunjukkan mail-bok tidak ada. Alamat e-mail yang dipakai pada SMTP menggunakan standart RFC 882, dan informasi yang dikirim ditambahakan beberapa header yang sering disebut dengan "882 headers". Contoh alatmat e-mail misalnya:

edys@student.eepis-its.edu

teks sebelum simbol "@" adalah nama mail-box, sedangkan teks sesudah simbol "@" adalah nama host, jika pada alamat e-mail edys@student.eepis-its.edu berarti nama mail_box adalah edys yang terdapat pada host student.eepis-its.edu. Jika mail-box menggunakan karakter atau simbol khusus (misalnya tanda %), maka nama mail-box diberikan untuk encoding khusus agar SMTP dapat menggunakan sebagai mail-gateway.

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 berbeda 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.

POP (Post Office Protocol)

Suatu protocol yang dirancang untuk mengirimkan pesan e-mail dari server ke mail cilent. User yang mempunyai mail menyimpan dalam mailbox pada server. User dalam hal ini adalah POP client mengakses pesan yang disimpan menggunakan POP. Menjawab atau membuat mail baru digerakkan oleh client yang menyimpannya melalui SMTP. Mail dikirim dari client yang tidak memerlukan host yang lain untuk mengirimkan mail atau mengirim mail langsung ke penerima jarak jauh. POP server juga tidak relay mail untuk client.


Trivial File Transfer Protocol (TFTP)

File Transfer Protocol menggunakan TCP untuk mendapatkan komunikasi dalam jaringan yang dapat diandalkan. Jika jaringan sudah cukup dapat diandalkan, seperti umumnya pada jaringan LAN maka dapat dipergunakan File Transfer Protocol yang lebih sederhana, yaitu dapat digunakan user datagram ptotocol (UDP) untuk mendasari protocol transport (host to host). Sebagai contoh file transfer Protocol yang menggunakan UDP adalah trivial File Transfer Protocol (TFTP).
Pada gambar di atas ditunjukkan tahapan TFTP yang dipakai untuk transfer file diantara dua host. TFTP dapat dipakai untuk transfer file antara dua host tanpa memerlukan pengenalan (authentication) terhadap user yang memakai. File dapat di transfer dengan hanya menunjukkan nama file tersebut. Oleh karena user account dan password tidak diperlukan untuk transfer file dengan TFTP, maka beberapa system administrator mematikan fasilitas TFTP ini, atau membatasi jenis file yang dapat ditransfer, demikian juga implementasinya untuk akses dapat ditolak kecuali setiap user yang berada pada host dapat mengakses file.
TFTP kebanyakan dipakai untuk menghubungkan workstation yang tidak memiliki diskdrive maupun harddisk ke server untuk mendownload boot-image dari sistem operasi pada saat booting. Protokol TFTP cukup kecil dan efisien utnuk diterapkan pada Boot ROM di dalam card jaringan yang dipasang pada workstation. Workstation Unix dari Sun Microsystem menggunakan TFTP untuk menghubungkan dengan RARP atau BOOTP yang dapat dipergunakan untuk menentukan alamat IP dari workstation tersebut pada saat meng-download sistem operasi untuk booting.