TCP/IP Protocol Suite 48
5. TCP/IP Protocol Suite 5.1. Pendahuluan TCP/IP protocol suite memungkinkan segala ukuran komputer, dari bermacam-macam vendor komputer yang berbeda, yang menggunakan sistem operasi yang benar-benar berbeda, untuk berkomunikasi satu dengan lainnya. Hal ini cukup mengagumkan karena penggunaannya jauh melampaui dari perkiraan semula. Bermula di akhir 1960-an sebagai sebuah proyek penelitian yang di-danai oleh pemerintah (AS) menjadi jaringan packet switching, kemudian pada 1990-an, berubah menjadi format jaringan antar komputer yang paling luas digunakan. TCP/IP benar-benar sebuah open system yang mana definisi dari protocol suite dan banyak mengenai implementasinya tersedia untuk publik atau tidak dipungut bayaran. TCP/IP menjadi basis/dasar format untuk apa yang disebut Worldwide Internet, atau Internet, sebuah jaringan yang luas (wide area network = WAN) untuk lebih dari satu juta komputer yang secara harafiah mencakup dunia.
5.2. Layering Protokol-protokol jaringan secara normal di kembangkan dalam lapisan-lapisan (layers), yang setiap layer bertanggung jawab pada sebuah bagian komunikasi yang berbeda. Sebuah kumpulan protokol (protocol suite), seperti TCP/IP, adalah kombinasi dari bermacam-macam protokol pada lapisan-lapisan (layers) yang bermacam-macam. TCP/IP secara normal adalah sebuah sistem dengan 4 buah lapisan (4-layer system), seperti pada tabel 5-1 berikut ini. Application Telnet, FTP, e-mail, etc. Transport TCP, UDP Network IP, ICMP, IGMP Link Device driver and interface card Tabel 5-1 4 Lapisan dari TCP/IP Protocol Suite Setiap layer (lapisan) memiliki sebuah tanggung jawab yang berbeda 1. Link layer, kadang-kadang disebut data-link layer atau network interface layer, biasanya terdiri dari device driver (software pengendali peralatan hardware) dalam sistem operasi dan network interface card yang terdapat di dalam komputer. Bersama-sama mereka menangani seluruh detail perangkat keras (hardware) dari penghubung fisik (physically interfacing) dengan kabel (atau tipe media apapun yang digunakan).
Subandi
[email protected] FTI UBL
TCP/IP Protocol Suite 49
2. Network layer (kadang-kadang disebut Internet layer), menangani pergerakan paket diseputar jaringan. Mengarahkan/me-rute (routing) paket. Contohnya adalah: IP (Internet Protocol), ICMP (Internet Control Message Protocol), dan IGMP (Internet Group Management Protocol) menyediakan network layer dalam TCP/IP protocol suite. 3. Transport layer menyediakan sebuah aliran data antar dua hosts (hosts dapat diartikan sebagai komputer-komputer yang terhubung dalam sebuah jaringan), untuk application layer diatasnya. Dalam TCP/IP protocol suite terdapat dua protokol transport yang sangat berbeda: TCP (Transmission Control Protocol) dan UDP (User Datagram Protocol). a. TCP menyediakan sebuah aliran data yang reliable (dapat dipercaya) antar dua hosts. TCP berkonsentrasi pada sebuah pembagian/pemecahan (dividing) data yang lewat kepadanya dari aplikasi kedalam ukuran chunks (bagian data yang telah dibagi) yang tepat untuk network layer di bawahnya, memberitahukan paket yang diterima, menentukan timeout untuk membuat kepastian pemberitahuan akhir paket yang lain telah di kirim, dan seterusnya. Sebab aliran data yang dapat dipercaya ini di berikan oleh transport layer, application layer dapat mengabaikan (ignore) keseluruhan detail tersebut. b. UDP, disisi lain, memberikan layanan yang lebih sederhana kepada application layer. UDP hanya mengirimkan paket-paket data yang disebut datagram dari satu host ke host lainnya, tetapi tidak ada garansi/jaminan datagram tersebut mencapai tujuannya. Untuk mendapatkan aliran data yang dapat dipercaya dilakukan dengan memberikan prosedur tambahan pada application layer. 4. Application layer menangani aplikasi yang ada secara rinci/detail. Terdapat banyak aplikasi TCP/IP umum yang biasanya tersedia di setiap implementasi: a. Telnet untuk remote login, b. FTP, the File Transfer Protocol, c. SMTP, the Simple Mail Transfer Protocol, untuk electronic-mail, d. SNMP, the Simple Network Management Protocol, Jika kita memiliki dua host/komputer pada sebuah local area network (LAN) seperti sebuah Ethernet, keduanya menjalankan FTP, Gambar 5-1 menggambarkan bagaimana protokolprotokol berinteraksi. Kita tandai satu kotak aplikasi FTP Client dan yang lainnya FTP Server. Sebagian besar aplikasi jaringan di desain satu sisi sebagai client dan di-sisi lainnya sebagai server. Server memberikan beberapa tipe layanan kepada clients, yang pada kasus ini memberikan akses ke file-file pada server host atau komputer server. Dalam aplikasi remote login, Telnet, aplikasi memberikan layanan berupa kemampuan untuk client login ke server host atau komputer server.
Subandi
[email protected] FTI UBL
TCP/IP Protocol Suite 50
Gambar 5-1 Dua hosts pada sebuah LAN menjalankan FTP Setiap layer memiliki satu atau lebih protokol-protokol untuk komunikasi dengan sesamanya pada layer yang sama. Satu protokol, sebagai contoh, mengijinkan dua TCP layer untuk berkomunikasi, dan protokol lainnya membolehkan dua IP layer berkomunikasi. Di sebelah kanan dari Gambar 5-1 kita dijelaskan umumnya application layer adalah sebuah user process sedangkan tiga layer di bawahnya biasanya di impelementasikan di dalam kernel (the operating system atau sistem operasi yang digunakan). Walaupun hal ini bukan sebuah syarat, hal tersebut khas dan ini adalah cara yang dilakukan jika menggunakan Unix. Terdapat perbedaan kritis lainnya antara top layer pada Gambar 5-1 dan tiga layer dibawahnya. Application layer berkonsentrasi secara detail pada aplikasi dan tidak pada pergerakan data melalui jaringan. Tiga layer dibawah-nya tidak tahu apapun mengenai aplikasi tetapi menangani seluruh detail komunikasi. Kita melihat empat protokol di Gambar 5-1, masing-masing pada sebuah layer berbeda. FTP adalah sebuah application layer protocol, TCP adalah sebuah transport layer protocol, IP adalah sebuah network layer protocol, dan Ethernet protocol beroperasi/bekerja pada link layer. TCP/IP protocol suite adalah sebuah kombinasi banyak protokol. Walaupun secara umum nama yang digunakan untuk keseluruhan protocol suite adalah TCP/IP, TCP dan IP hanyalah dua dari keseluruhan protokol yang ada pada TCP/IP protocol suite. (Sebuah nama alternatif adalah the Internet Protocol Suite). Kegunaan dari network interface layer dan application layer adalah menjelaskan bagaimana network interface layer menangani detail dari media komunikasi (Ethernet, token ring, etc.) sedangkan application layer menanangi satu spesifik aplikasi user (FTP,
Subandi
[email protected] FTI UBL
TCP/IP Protocol Suite 51
Telnet, etc.). Tetapi pada pandangan awal perbedaan antara network layer dan transport layer tidak terlihat terlalu jelas. Mengapa terdapat perbedaan antara keduanya? Untuk memahami alasannya, kita memperluas perspektif dari sebuah jaringan tunggal menjadi sebuah kumpulan jaringan-jaringan. Satu dari alasan-alasan untuk fenomena yang berkembang di jaringan selama 1980-an adalah realisasi bahwa sebuah pulau (island) yang terdiri dari sebuah stand-alone komputer membuat sedikit masuk akal. Sebagian kecil sistem stand-alone di kumpulkan bersama-sama kedalam sebuah jaringan. Pada saat ini berlangsung, selama 1990-an kita baru menyadari bahwa ini baru, pulau (island) yang lebih besar terdiri dari sebuah jaringan tunggal tidak membuat arti sama sekali. Orang-orang meng-kombinasikan bermacammacam jaringan bersama kedalam sebuah Internetwork, atau sebuah Internet. Sebuah Internet adalah kumpulan jaringan-jaringan yang seluruhnya menggunakan protocol suite yang sama. Cara termudah untuk membangun sebuah Internet adalah meng-hubungkan dua atau lebih jaringan dengan sebuah router. Router biasanya adalah sebuah kotak perangkat keras yang memiliki kegunaan khusus untuk menghubungkan jaringan-jaringan (a specialpurpose hardware box for connecting networks). Hal yang menarik dari router adalah router menyediakan koneksi ke banyak tipe jaringan fisik yang berbeda: Ethernet, token-ring, point-to-point links, FDDI (Fiber Distributed Data Interface), dan seterusnya. Kotak tersebut biasa disebut IP routers, tetapi kita menggunakan istilah router. Sebelumnya kotak ini di sebut gateways, dan istilah ini banyak digunakan pada literatur TCP/IP. Saat ini istilah gateways digunakan untuk sebuah aplikasi gateway: sebuah proces yang menghubungkan dua protocol suite yang berbeda (sebutkan saja, TCP/IP dan IBM’s SNA) untuk sebuah aplikasi yang ada (biasanya electronic mail atau file transfer).
Subandi
[email protected] FTI UBL
TCP/IP Protocol Suite 52
Gambar 5-2 Dua jaringan dihubungkan dengan sebuah router Gambar 5-2 menggambarkan sebuah Internet yang terdiri dari dua jaringan: sebuah Ethernet dan sebuah token ring, dihubungkan dengan sebuah router. Meskipun kita melihat hanya ada dua host yang berkomunikasi, dengan router menghubungkan kedua jaringan, seluruh host pada Ethernet dapat berkomunikasi dengan seluruh host yang ada pada token ring. Pada Gambar 5-2 kita dapat membedakan antara sebuah end system (kedua host pada tiap sisi) dan sebuah intermediate system (router yang terletak di tengahnya). Application layer dan transport layer menggunakan end-to-end protocols. Di gambar yang ada dua layer ini di perlukan hanya pada end systems. Network layer, bagaimanapun juga, memberikan sebuah hop-by-hop protocol dan digunakan pada kedua end system dan setiap intermediate system. Dalam TCP/IP protocol suite network layer, IP, memberikan sebuah layanan yang tidak dapat dipercaya (unreliable service). Hanya itu, IP melakukan pekerjaan terbaiknya dengan memindahkan sebuah paket dari sumbernya ke tujuan finalnya. Tetapi tidak terdapat jaminan/garansi. TCP, pada pihak yang lain, memberikan sebuah transport layer yang dapat dipercaya menggunakan layanan yang tidak dapat dipercaya (IP). Untuk memberikan layanan ini, TCP menentukan timeoute dan retransmission, mengirim dan menerima pemberitahuan end-to-end, dan seterusnya. Transport layer dan network layer memiliki tanggung jawab yang jelas. Sebuah router, berdasarkan definisi, memiliki dua atau lebih network interface layers (pada saat router menghubungkan dua atau lebih jaringan). System lainnya dengan banyak interface dinamakan multihomed. Sebuah host dapat menjadi multihomed jika host tersebut secara spesifik meneruskan paket dari satu interface ke interface lainnya, tetapi host tersebut tidak di sebut sebuah router. Juga, router tidaklah harus sebuah special hardware
Subandi
[email protected] FTI UBL
TCP/IP Protocol Suite 53
boxes yang hanya memindahkan paket di seputar sebuah Internet. Implementasi TCP/IP secara umum mengijinkan sebuah multihomed host untuk bertindak sebagai sebuah router juga. Tetapi host tersebut harus dikonfigurasikan secara khusus agar hal tersebut dapat terlaksana. Pada kasus ini kita dapat menyebut system sebagai sebuah host (pada saat sebuah aplikasi seperti FTP atau Telnet digunakan) atau sebuah router (pada saat host tersebut meneruskan paket dari satu jaringan ke jaringan lainnya). Kita akan menggunakan istilah apapun untuk membuat konteks yang diberikan agar dapat dimengerti. Salah satu tujuan dari sebuah Internet adalah untuk menyembunyikan seluruh detail layout fisik Internet dari aplikasi-aplikasi. Walaupun ini tidak jelas dari dua jaringan Internet yang ada di Gambar 5-2, application layer tidak dapat perduli (dan tidak perduli) bahwa sebuah host terdapat pada sebuah Ethernet, dan yang lainnya pada sebuah token ring, dengan sebuah router di-antaranya. Dapat saja terdapat 20 router diantaranya, dengan bermacammacam tipe dari physical interconnections. Dan aplikasi akan berjalan sama saja. Dengan menyembunyikan detail inilah yang membuat konsep sebuah Internet menjadi sangat powerful dan useful. Cara lain untuk menghubungkan jaringan-jaringan adalah dengan menggunakan bridge. Bridge menghubungkan jaringan pada link layer, sedangkan router menghubungkan jaringan pada network layer. Brige membuat multiple LAN tampak sebagai sebuah single LAN pada layer diatasnya. TCP/IP Internets cenderung di bangun menggunakan router dari pada bridge.
5.3 TCP/IP Layering Terdapat lebih banyak protokol dalam TCP/IP protocol suite. Gambar 5-3 memperlihatkan protokol-protokol tambahan yang akan dibahas berikut ini.
Subandi
[email protected] FTI UBL
TCP/IP Protocol Suite 54
Gambar 5-3 Bermacam-macam protokol pada layer-layer yang berbeda dalam TCP/IP protocol suite. TCP dan UDP adalah dua protokol transport layer yang utama. Keduanya menggunakan IP sebagai network layer. TCP memberikan sebuah transport layer yang dapat dipercaya (reliable), walaupun service yang digunakan (IP) tidak dapat dipercaya (unreliable). UDP mengirim dan menerima datagram-datagram dari aplikasi-aplikasi. Sebuah datagaram adalah sebuah unit dari informasi (contoh, beberapa byte informasi yang telah ditetapkan oleh pengirim) yang berjalan dari pengirim ke penerima. Tidak seperti TCP, UDP tidak dapat dipercaya (unreliable). Tidak ada jaminan bahwa datagram telah mencapai tujuan akhirnya. IP adalah protokol utama pada network layer. IP digunakan oleh TCP dan UDP. Setiap potongan/bagian dari data TCP dan UDP yang di transfer di seputar Internet berangkat melalui/melewati IP layer pada kedua end system dan pada setiap intermediate router. Pada Gambar 5-3 kita melihat ada aplikasi yang meng-akses IP secara langsung. Hal ini jarang terjadi, tetapi memungkinkan (Beberapa protokol routing lama telah mengimplementasikan cara ini. Begitu juga, hal ini memungkinkan untuk melakukan eksperiment dengan protokol transport layer baru dengan menggunakan fitur ini.)
Subandi
[email protected] FTI UBL
TCP/IP Protocol Suite 55
ICMP adalah sebuah keterangan (an adjunct) untuk IP. ICMP digunakan oleh IP layer untuk bertukar pesan error dan informasi vital lainnya dengan IP layer dari host lainnya atau router. Walaupun ICMP utamanya digunakan oleh IP, tetapi bisa saja sebuah aplikasi juga meng-aksesnya. Dua tool diagnostik populer, Ping dan Traceroute keduanya menggunakan ICMP. IGMP adalah Internet Group Management Protocol. IGMP digunakan dengan multicasting: mengirim sebuah UDP datagram ke multiple (banyak) host. ARP (Address Resolution Protocol) dan RARP (Reverse Address Resolution Protocol) adalah protokol khusus yang hanya digunakan oleh tipe network interface tertentu (seperti Ethernet dan token ring) untuk merubah antar alamat-alamat yang digunakan oleh IP layer dan alamat-alamat yang digunakan oleh network interface.
5.4. Internet Addresses (Pengalamatan Internet) Setiap interface pada sebuah Internet harus memiliki seubuah alamat Internet yang unik (yang biasa disebut sebuah alamat IP). Pengalamatan ini terdiri dari 32-bit angka. Gambar 5-4 menunjukkan ke-lima kelas dari Internet addresses (alamat Internet). Pengalamatan 32-bit ini biasanya di tulis sebagai empat angka desimal, satu untuk setiap byte alamat. Penulisan ini disebut notasi dotted-decimal. Sebagai contoh, alamat kelas B adalah 140.252.13.33 Cara termudah untuk membedakan antara kelas yang berbeda dari pengalamatan adalah dengan melihat angka pertama dari sebuah alamat dotted-decimal. Gambar 5-5 memperlihatkan perbedaan kelas-kelas yang ada, dengan angka pertama di cetak tebal.
Gambar 5-4 Lima kelas yang berbeda pada Internet addresses Class (Kelas) Range A 0.0.0.0 to 127.255.255.255 B 128.0.0.0 to 191.255.255.255
Subandi
[email protected] FTI UBL
TCP/IP Protocol Suite 56
C D E
192.0.0.0 to 223.255.255.255 224.0.0.0 to 239.255.255.255 240.0.0.0 to 247.255.255.255
Tabel 5-2 Range untuk kelas-kelas pada pengalamatan IP Sebuah multihomed host akan memiliki multiple IP addresses: satu per-interface. Karena setiap interface yang ada di sebuah Internet harus memiliki IP address yang unik, maka diperlukan adanya kewenangan pusat (central authority) untuk meng-alokasikan alamat-alamat ini untuk koneksi jaringan-jaringan ke worldwide Internet. Internet Network Information Center, yang disebut InterNIC adalah pihak yang berwewenang memberikan IP address. InterNIC hanya menentukan network ID. Sedangkan penentuan host ID dilakukan oleh system administrator. Layanan pendaftaran (registration) untuk penggunaan Internet (IP addresses dan DNS domain names) di tangani oleh NIC, di nic.ddn.mil. Pada 1 April 1993, InterNIC didirikan. Saat ini NIC hanya menangani permintaan dari Defense Data Network (DDN). Semua pengguna Internet lainnya sekarang menggunakan layanan registrasi InterNIC, di rs.internic.net. Ada tiga bagian layanan InterNIC: registration services (layanan pendaftaran) di rs.internic.net, directory and database services (layanan direktori dan database) di ds.internic.net, dan information services (layanan informasi) di is.internic.net.
Terdapat tiga tipe IP addresses: unicast (dipersiapkan untuk sebuah single host), broadcast (dipersiapkan untuk seluruh host pada sebuah jaringan yang ditentukan), dan multicast (dipersiapkan untuk sebuah set/kumpulan host yang termasuk ke sebuah multicast group).
Subandi
[email protected] FTI UBL
TCP/IP Protocol Suite 57
5.5 Domain Name System Meskipun network interface pada sebuah host, dapat diketahui melalui IP addesses, tetapi manusia lebih suka menggunakan nama dari sebuah host. Dalam dunia TCP/IP pada Domain Name System terdapat database terdistibusi yang menyediakan pemetaan antara IP addresses dan nama host. Oleh karena itu terdapat aplikasi yang memanggil sebuah fungsi perpustakaan standar untuk melihat (look up) IP address (atau pengalamatan) dari nama host yang berhubungan dengannya. Sama halnya dengan fungsi kebalikannya (reverse lookup) melihat nama host yang berhubungan dengan sebuah IP address. Umumnya aplikasi-aplikasi yang dapat mengambil sebuah nama host sebagai sebuah argument juga dapat mengambil sebuah IP address.
5.6 Encapsulation Pada saat aplikasi mengirim data menggunakan TCP, data tersebut dikirim ke susunan protokol dibawahnya, melewati setiap layer, sambil data tersebut dikirimkan sebagai sebuah aliran (stream) bit-bit melalui jaringan. Setiap layer menambahkan informasi ke pada data tersebut dengan memberikan headers (dan kadang-kadang menambahkan informasi trailer) pada saat diterima (receives). Gambar 5-5 memperlihatkan proses ini. Unit data yang dikirim TCP ke IP disebut TCP segment. Unit data yang IP kirim ke network interface disebut IP datagram. Bits stream (aliran bit-bit) yang mengalir melalui Ethernet disebut sebuah frame (bingkai). Nomor di akhir header dan trailer dari Ethernet frame dalam Gambar 5-5 adalah ukuran khas dari header dalam bytes. Sebuah keterangan fisik dari sebuah Ethernet frame adalah ukuran datanya harus antara 46 sampai dengan 1500 bytes. Seluruh standar Internet dan sebagian besar buku pada TCP/IP lebih menggunakan istilah octet dari pada byte.
Untuk data UDP kita dapat menggambarkannya sama dengan Gambar 5-5. Perbedaannya hanya pada unit informasi yang UDP lewatkan ke IP disebut sebuah UDP datagram, dan ukuran dari UDP header adalah 8 bytes.
Subandi
[email protected] FTI UBL
TCP/IP Protocol Suite 58
Gambar 5-5 Encapsulasi data terjadi pada saat data tersebut turun ke lapisan-lapisan protocol dibawahnya. Dengan melihat Gambar 5-3 TCP, UDP, ICMP, dan IGMP semuanya mengirim data ke IP. IP harus menambahkan beberapa tipe identifikasi ke IP header yang dihasilkannya. Untuk meng-indikasi layer pemilik data tersebut. IP menangani hal ini dengan menyimpan sebuah nilai yang besarnya 8-bit pada IP header yang disebut protocol field. Nilai 1 berarti ICMP, 2 berarti IGMP, 6 berarti TCP, dan 17 untuk UDP. Beberapa aplikasi yang berbeda dapat menggunakan TCP atau UDP pada suatu saat kapan saja. Transport layer protocol menyimpan sebuah indentifikasi dalam header yang dihasilkan olehnya untuk meng-identifikasi aplikasi. TCP dan UDP keduanya menggunakan penomoran port 16-bit untuk meng-identifikasi aplikasi. TCP dan UDP menyimpan nomor port sumber dan nomor port tujuan dalam header-nya masing-masing. Network interface mengirim dan menerima frame dari IP, ARP dan RARP. Oleh karena itu harus terdapat beberapa format identifikasi dalam Ethernet header untuk meng-indikasi network layer protocol yang menghasilkan (generated) data tersebut. Untuk menangani hal ini, terdapat sebuah field bertipe frame 16-bit (a 16-bit frame type field) di dalam Ethernet header.
5.7. Demultiplexing Pada saat sebuah Ethernet frame di terima pada host tujuan, frame tersebut berjalan ke lapisan protokol diatasnya dan seluruh header di buang oleh kotak protokol yang sesuai. Setiap kotak protokol melihat pada identifikasi tertentu dalam headernya untuk mengetahui
Subandi
[email protected] FTI UBL
TCP/IP Protocol Suite 59
kotak berikutnya yang menerima data pada layer diatasnya. Hal ini disebut demultiplexing . Gambar 5-6 memperlihatkan bagaimana hal ini dapat terjadi.
Gambar 5-6 Demultiplexing dari sebuah Ethernet frame yang diterima Memposisikan kotak protokol “ICMP” dan “IGMP” selalu membuat sebuah tantangan. Pada Gambar 5-3 di gambarkan ICMP dan IGMP terdapat pada layer yang sama dengan IP, karena ICMP dan IGMP merupakan tambahan keterangan dari IP. Tetapi disini digambarkan ICMP dan IGMP berada diatas IP, untuk menekankan bahwa ICMP messages dan IGMP messages di encapsulate dalam IP datagrams. Kita mempunyai permasalahan yang sama dengan kotak “ARP” dan “RARP”. Disini digambarkan keduanya diatas Ethernet device driver sebab keduanya memiliki tipe frame Ethernet-nya sendiri-sendiri, seperti IP datagrams. Tetapi pada pengambaran selanjutnya diperlihatkan ARP sebagai bagian dari Ethernet device driver, dibawah IP, sebab hal tersebut adalah secara logikal. Perlu diketahui penggambaran lapisan-lapisan kotak protokol ini tidaklah sempurna.
Pada saat kita mendeskripsikan TCP secara detail kita melihat bahwa segment yang diterima demultiplexes sesungguhnya menggunakan nomor port tujuan (destination), asal IP address, dan nomor port sumber.
5.8. Client-Server Model Sebagian besar aplikasi jaringan di tulis dengan asumsi satu sisi sebagai client dan lainnya sebagai server. Kegunaan dari aplikasi adalah agar server memberikan beberapa layanan tertentu untuk client. Kita dapat mengkatagorikan server ke dalam dua kelas: iterative (berulang/ber-urutan) atau concurrent (ber-samaan). Sebuah server iterative, memiliki step-step berikut: I1. Menunggu datangnya sebuah permintaan dari sebuah client. Subandi
[email protected] FTI UBL
TCP/IP Protocol Suite 60
I2. Mem-proses permintaan client. I3. Mengirim respon kembali ke client yang mengirim permintaan tersebut. I4. Kembali ke step I1. Masalah pada sebuah server iterative yaitu pada ketika step I2 memproses permintaan yang memerlukan waktu beberapa saat. Selama proses tersebut tidak ada client lainnya yang dilayani. Sebuah server concurrent, di sisi lain, menghasilkan step-step berikut: C1. Menunggu datangnya sebuah permintaan dari sebuah client C2. Memulai sebuah server baru untuk melayani permintaan client. Ini mungkin melibatkan pembuatan sebuah proses baru, tugas baru, atau urutan baru, bergantung pada dukungan sistem operasi yang digunakan. Bagaimana step ini di kerjakan tergantung pada sistem operasi tersebut. Server baru ini melayani seluruh permintaan client tersebut. Ketika selesai, server baru ini berhenti (terminates). C3. Kembali ke step C1. Kelebihan dari sebuah server concurrent adalah server dapat menghasilkan server lainnya untuk melayani permintaan-permintaan client. Setiap client mendapatkan servernya sendiri-sendiri. Dengan asumsi sistem operasi mengijinkan multiprogramming, multiple client di layani secara bersamaan (concurrent). Sebagai aturan umum, server TCP adalah concurrent, dan server UDP adalah iterative, tetapi terdapat beberapa pengecualian.
5.9. Port Numbers Telah disebutkan bahwa TCP dan UDP meng-identifikasi aplikasi menggunakan nomornomor port 16-bit. Bagaimanakah nomor-nomor port tersebut dipilih? Server biasanya mengetahui dari nomor-nomor port yang telah di kenal (well-known). Sebagai contoh, setiap implementasi TCP/IP yang menyediakan sebuah server FTP menyediakan layanan pada TCP port 21. Setiap server Telnet menggunakan port 23. Setiap implementasi TFTP (Tivial File Transfer Protocol) menggunakan port 69. Layananlayanan tersebut dapat diperoleh oleh implementasi TCP/IP apapun yang memiliki nomornomor port yang telah di kenal (well-known port numbers) antara 1 dan 1023. Nomornomor port yang telah di kenal tersebut di atur oleh Internet Assigned Numbers Authority (IANA). Sejak 1992 nomor-nomor port yang telah dikenal adalah antara 1 dan 255. Port antara 256 dan 1023 biasanya digunakan oleh sistem Unix untuk Unix-specific services, layanan-layanan yang terdapat pada sebuah sistem Unix, tetapi mungkin tidak didapatkan pada sistem operasi lainnya. Saat ini IANA mengatur port antara 1 dan 1023. Sebuah contoh perbedaan antara Internet-wide service dan sebuah Unix-specific service adalah perbedaan antara Telnet dan Rlogin. Kedaunya mengijinkan kita untuk login melalui sebuah jaringan ke host lainnya.
Subandi
[email protected] FTI UBL
TCP/IP Protocol Suite 61
Telnet adalah sebuah standar TCP/IP dengan well-known port number 23 dan dapat di implementasikan pada hampir semua sistem operasi. Rlogin, disisi lain, didesain khusus untuk sistem Unix (walaupun banyak sistem non-Unix sekarang menyediakan layanan ini juga) dan well-known port yang dipilih untuk Rlogin ini dipilih di awal 1980-an yaitu 513.
Sebuah client biasanya tidak perduli berapa nomor port yang digunakannya. Semua yang dibutuhkan adalah berapapun nomor port yang digunakan nomor port tersebut harus unik pada host tersebut. Nomor port Client disebut ephemeral ports (yang artinya: cepat berlalu). Hal ini karena sebuah client biasanya hanya ada (exists) hanya selama user menjalankan service tersebut pada client, sedangkan server biasanya menjalankannya selama host/komputer tersebut hidup. Sebagian besar implementasi TCP/IP meng-alokasikan nomor port diantara 1024 dan 5000. Nomor port 5000 keatas diperuntukkan untuk server lainnya (nomor port diatas 5000 bukan merupakan well-known port di seputar Internet).
Reseved Ports Sistem Unix memiliki konsep reserved ports (port-port yang telah di pesan). Hanya sebuah proses dengan ijin superuser dapat menentukan bagi dirinya sebuah reserved port. Nomor port-port tersebut berada di range 1 sampai 1023, dan digunakan oleh beberapa aplikasi, sebagai bagian dari authentication (pembuktian hak akses) antara client dengan server.
5.10 Proses Standarisasi Terdapat empat group yang bertanggung jawab terhadap standarisasi dan pengawasan TCP/IP protocol suite untuk teknologi Internet. 1. 1. Internet Society (ISOC) adalah sebuah ikatan profesional untuk mem-fasilitasi, memberi dukungan, dan mengumumkan perubahan dan perkembangan Internet sebagai sebuah penelitian global infrastruktur komunikasi. 2. 2. Internet Architecture Board (IAB) adalah badan koordinasi dan kesalahan teknis (technical oversight). Beranggotakan lebih kurang 15 tenaga sukarela internasional dari berbagai macam disiplin ilmu dan melayani sebagai editor akhir dan badan peninjau teknis untuk kualitas dari standar Internet. IAB berada di bawah ISOC. 3. 3. Internet Engineering Task Force (IETF) group yang ber-orientasi pada standarstandar, dibagi dalam sembilan area (aplikasi, routing dan pengalamatan, keamanan, dll.). IETF mengembangkan spesifikasi yang akan menjadi standar Internet. Sebuah group tambahan Internet Engineering Steering Group (IESG) telah dibentuk untuk membantu IETF chair (pimpinan IETF). 4. 4. Internet Research Task Force (IRTF) mempercepat proyek-proyek penelitian yang memakan waktu lama. IRTF dan IETF keduanya berada di bawah IAB.
Subandi
[email protected] FTI UBL
TCP/IP Protocol Suite 62
5.11. RFC Seluruh standar resmi dalam komunitas internet di publikasikan sebagai sebuah Request for Comment, atau disingkat RFC. Selain itu terdapat juga beberapa RFC yang bukan merupakan standar resmi. Tetapi dipublikasikan untuk kepentingan informasi. Sebuah RFC bisa terdiri dari 1 halaman sampai dengan 200 halaman. Setiap RFC di-identifikasikan dengan sebuah angka, seperti RFC 1122, semakin besar angka berarti semakin baru RFC tersebut. Semua RFC yang ada tersedia secara gratis melalui e-mail atau FTP melalui Internet. Dengan mengirim e-mail seperti berikut: To:
[email protected] Subject: getting rfcs Help: ways_to_get_rfcs Akan diperoleh sebuah listing detail dari bermacam-macam cara untuk mendapatkan RFC. Index RFC terakhir selalu menjadi sebuah point awal pada saat mencari sesuatu. Index ini di-spesifikasikan pada saat sebuah RFC tertentu telah di gantikan oleh sebuah RFC yang baru, dan jika sebuah RFC meng-update beberapa informasi dalam RFC tersebut. Ada beberapa RFC yang penting. 1. Assigned Numbers RFC men-spesifikasikan semua magic numbers dan tetap yang digunakan dalam Internet protocols. Versi terakhir RFC ini adalah 1340 [Reynold and Postel 1992]. Seluruh Internet-wide well-known ports tertulis disini. Pada saat RFC ini di-update (biasanya di-update paling sedikit pertahun) Daftar index untuk 1340 akan meng-indikasikan RFC mana yang telah menggantikannya. 2. Internet Official Protocol Standards, sekarang RFC 1600 [Postel 1994]. RFC ini men-spesifikasikan posisi standarisasi dari bermacam-macam Internet protocols. Setiap protokol memiliki standarisasi dari satu posisi berikut: standard, draft standard, proposed standard, experimental, informational, atau historic. Selain itu setiap protokol memiliki sebuah level persyaratan: required (diperlukan), recommended (disarankan), elective (pilihan), limited use (digunakan secara terbatas), atau not recommended (tidak disarankan). Seperti Assigned Number RFC, RFC ini selalu di-update secara rutin, Pastikan anda membaca salinan terkini. 3. Host Requirements RFCs, 1122 dan 1123 [Braden 1989a, 1989b]. RFC 1122 menangani link layer, network layer, dan transport layer, sedangkan RFC 1123 menangani application layer. Kedua RFC ini membuat beberapa koreksi dan interpretasi dari RFC penting sebelumnya. Dan sering menjadi point awal ketika mencari detail perbaikan dari sebuah protokol yang diberikan. RFC tersebut memberi daftar fitur dan detail implementasi dari protokol-protokol sebagai salah satu “must”(harus), “should”(bisa), “may”(mungkin), “should not”(tidak bisa), atau “must not”(tidak harus). [Borman 1993b] memberikan sebuah wawasan praktis pada kedua RFC ini, dan RFC 1127 [Braden 1989c] memberikan sebuah ringkasan
Subandi
[email protected] FTI UBL
TCP/IP Protocol Suite 63
informal pada diskusi dan kesimpulan dari group kerja yang mengembangkan Host Requirements RFC. 4. Router Requirements RFC. Versi resmi dari RFC 1009 ini [Barden dan Postel 1987], tetapi sebuah versi baru hampir selesai [Almquist 1993]. Hal ini sama dengan host requirements RFC, tetapi men-spesifikasikan syarat unik dari routers.
5.12. Standard, Simple Services Terdapat sedikit standar, simple services (layanan sederhana, standar) hampir setiap implementasi menyediakan. Kita akan menggunakan beberapa dari server-server ini yang seluruhnya teks, biasanya dengan Telnet client. Tabel 5-3 men-deskripsikan layananlayanan (services) ini. Kita dapat melihat dari table ini bahwa pada saat services di berikan menggunakan keduanya, TCP dan UCP, kedua nomor port biasanya dipilih agar sama. Jika kita mempelajari nomor port untuk service-service standar ini dan service-service standar TCP/IP lainnya (Telnet, FTP, SMTP, dll.), umumnya adalah nomor-nomor ganjil. Sejarahnya nomor-nomor port ini berasal dari nomor-nomor port NCP. (NCP, Network Control Protocol, pendahulu TCP sebagai sebuah transport layer protocol untuk ARPANET). NCP adalah simplex, tidak full-duplex, maka setiap aplikasi membutuhkan dua koneksi, dan sebuah pasangan even-ganjil dari nomor port telah dipesan/ditentukan (reserved) untuk setiap aplikasi. Ketika TCP dan UDP menjadi standar transport layer, hanya sebuah nomor port tunggal yang diperlukan per aplikasi, maka nomor port ganjil dari NCP yang digunakan.
Nama echo discard daytime
TCP Port 7 9 13
UDP Port 7 9 13
RFC Deskripsi 862 863 867
Server memberikan (return) apapun yang dikirim client. Server membuang apapun yang dikirim client. Server memberikan (return) waktu dan tanggal dalam format yang dapat dibaca manusia chargen 19 19 864 Server TCP mengirim sebuah continual stream of characters, sampai koneksi diputuskan oleh client. Server UDP mengirim sebuah datagram yang mengandung sebuah random number of characters setiap saat client mengirim sebuah datagram. Time 37 37 868 Server memberikan (return) waktu (time) sebagai sebuah nomor binari 32-bit. Nomor ini mewakili detik-detik (number of seconds) sejak pertengahan malam 1 Januari 1900, UTC. Tabel 5-3 Standard, simple services yang diberikan oleh sebagian besar implementasi
5.13. The Internet Pada Gambar 5-2 kita diperlihatkan sebuah internet terdiri dari dua jaringan – sebuah Ethernet dan sebuah token ring. Kata-kata internet memiliki arti yang berbeda tergantung dari apakah berhuruf besar atau tidak. Jika internet di tulis dengan huruf kecil berarti banyak jaringan terhubung satu dengan lainnya, menggunakan sebuah protokol yang sama. Jika Internet ditulis dengan huruf
Subandi
[email protected] FTI UBL
TCP/IP Protocol Suite 64
besar menunjukkan kepada sekumpulan host (lebih dari satu juta) diseputar dunia yang dapat saling berkomunikasi dengan lainnya menggunakan TCP/IP. Walaupun Internet adalah sebuah internet, tetapi hal tersebut tidak berlaku sebaliknya.
5.14. Implementations Standar de-facto untuk implementasi TCP/IP salah satunya dari Computer Systems Research Group pada University of California at Berkeley. Berdasarkan sejarahnya hal ini telah di-distribusikan dengan 4.x BSD system (Berkeley Software Distribution), dan dengan “BSD Networking Releases”. Source code (kode sumber) ini telah menjadi point awal untuk banyak implementasi-implementasi. Gambar 5-7 menampilkan sebuah kronologi dari bermacam-macam releases BSD, mengindikasikan fitur-fitur TCP/IP yang penting. BSD Networking Release yang diperlihatkan di sebelah kiri adalah source code releases yang tersedia bagi publik berisikan seluruh kode jaringan: mencakup protokol itu sendiri dan banyak aplikasi-aplikasi dan utiliti-utiliti (seperti Telnet dan FTP). Keseluruhan teks yang akan kita gunakan menggunakan istilah Berkeley-derived implementation untuk menunjukkan implementasi-implementasi vendor seperti SunOS 4.x, SVR4, dan AIX 3.2 yang aslinya dikembangkan dari source (sumber) Berkeley. Implementasi-implementasi ini memiliki banyak kesamaan, seringkali termasuk juga bugbug! yang sama.
Subandi
[email protected] FTI UBL
TCP/IP Protocol Suite 65
Gambar 5-7 Bermacam-macam BSD releases dengan fitur-fitur TCP/IP yang penting. Banyak penelitian (research) asli dalam Internet masih di-aplikasikan pada Berkeley system-new congestion (kebuntuan) control algorithms, multicasting, “long fat pipe” modifications, dan yang mirip.
5.15. Application Programming Interfaces Dua application programming interfaces (APIs) populer untuk aplikasi menggunakan TCP/IP protocols disebut dengan socket dan TLI (Transport Layer Interface). Sebelumnya sering kali disebut “Berkeley sockets”, hal ini meng-indikasikan asal usul pengembangannya. Berikutnya, asli dikembangkan oleh AT&T, yang sering kali disebut XTI (X/Open Transport Interface), mengetahui pekerjaan yang diselesaikan oleh X/Open, sebuah international group of computer vendors yang membuat sekumpulan standar bagi dirinya sendiri. XTI sesungguhnya sebuah superset dari TLI. Teks ini bukan sebuah teks pemrograman (programming), tetapi kadang-kadang referensi dibuat untuk fitur-fitur dari TCP/IP yang kita lihat, walaupun fitur tersebut di berikan oleh API (sockets) yang sangat populer atau tidak. Keseluruhan detail jaringan untuk kedua sockets dan TLI tersedia dalam [Steven 1990].
Subandi
[email protected] FTI UBL