TCP/IP Networking Model
fathurhoho

TCP/IP Networking Model

Published by:
Di dunia jaringan komputer, kita mengenal 2 model yang menjadi standar, yakni TCP/IP dan OSI Layer, atau disebut juga networking model. Dua hal yang benar-benar harus dipahami secara matang jika kamu ingin memahami sepenuhnya dunia jaringan komputer.

Hal yang menjadi inti pada tulisan ini adalah;
  • Terkadang kita bingung apa dan untuk apa itu TCP/IP dan OSI layer
  • Apa kaitan antara TCP/IP dan OSI layer
  • Apa fungsi TCP/IP
  • Sedikit penjelasan application layer dan tranport layer

... dan pertanyaan-pertanyaan sejenis lainnya yang tidak jarang saya temukan di forum-forum atau group diskusi jaringan komputer.

Apa itu Networking Model?

Dalam memahami konsep jaringan komputer, kita bisa menganalogikannya dengan sebuah blueprint, atau arsitektur plan atas sebuah bangunan.  Bayangkan kita akan membangun sebuah rumah yang cukup besar, akan ada banyak orang yang mengerjakan pembangunan tersebut, dari lantai, kelistrikan, pengecatan, dan lain-lain. 

Agar bangunan selesai sesuai rencana, semua yang mereka kerjakan harus mengacu kepada dokumen perencanaan pembangunan tadi, atau kita sebut saja blueprint. 

Pada dasarnya, networking model itu mengacu kepada sekumpulan dokumen, dimana setiap dokumen tersebut akan menjelaskan setiap fungsi yang dibutuhkan oleh sebuah jaringan.

Beberapa dokumen akan mendefinsikan protokol, rules-rules logic yang harus diikuti perangkat lunak maupun perangkat keras agar dapat saling berkomunikasi.

Jadi,
Fungsi TCP/IP adalah untuk, memungkinkan komunikasi antar 2 komputer dengan kondisi;
  • Terkonfigurasi dengan perangkat lunak atau perangkat keras apapun, 
  • Terhubung dengan media apapun, baik kabel, nirkabel, modem, dial-up, dan lain-lain.

Sejarah TCP/IP

Tahun 1970-an, setiap vendor menggunakan protokol proprietary mereka untuk produk mereka masing-masing. Seperti IBM mempublikasi System Network Architecture (NSA), atau DECNet atau Digital Equipment Corporation.

Maka lahirlah cetusan dari ISO untuk mengeluarkan standard yakni OSI yang terdiri dari 7 layer. 
OSI layer ini menjadi standar komunikasi jaringan komputer pertama yang ada, sekaligus menjadi solusi yang paling cemerlang untuk permasalahan diatas. 

Disamping itu, Departmen of Defense (DoD) juga mengembangkan standar yang tidak se-formal dan se-kompleks OSI Layer.

Project ini dilakukan oleh voluntir, para peneliti dari berbagai universitas dan dilakukan di UC Barkeley (saat ini kita kenal dengan Barkeley Software Distribution atau BSD) di California, kemudian terbentuklah TCP/IP. 

TCP/IP ini bekerja dengan baik, kemudian TCP/IP dikemas dalam rilis BSD berikutnya sebagai shareware untuk universitas-universitas dan institusi lainnya. dan hasilnya menjadi kesuksesan luar biasa untuk teknologi internet. 

Perbandingan TCP/IP dengan OSI Layer

Karena bersifat lebih terbuka, dan simpel, TCP/IP menjadi jauh lebih berkembang. 
Era 1990-an, setiap vendor mengikuti standar OSI Layer dan TCP/IP, namun era 2000 hingga sekarang, TCP/IP cenderung menjadi pilihan. 

Gambarannya seperti berikut:

tcp-ip-networking-model
TCP/IP as Networking Model Nowadays
Jadi, saat ini dunia jaringan komputer menggunakan satu networking model, yakni TCP/IP. Menarik? Penyebabnya karena TCP/IP bersifat lebih terbuka dibanding OSI model, less-formal, tidak kompleks.

Dengan kata lain, OSI layer lebih ke sebuah ide standarisasi, setiap implementasi yang dilakukan standar lain selalu mengacu ke OSI layer karena lebih kompleks dan detail, namun TCP/IP dalam penerapannya lebih banyak digunakan.

Bagaimanapun, TCP/IP dan OSI Layer saling berkaitan. Untuk mendefinisikan sebuah protokol, TCP/IP menggunakan dokumentasi yang dikenal dengan RFC (Requests For Comments).

Setiap protokol pada TCP/IP selalu mengacu pada OSI atau yang sudah dibuat sebelumnya, seperti contoh Institute of Electrical and Electronic Engineers (IEEE) telah mendefiniasikan Ethernet LANS, dan TCP/IP tidak mendefinisikannya lagi di RFC, hanya mengacunya ke IEEE. 

Lalu apa perbedaan antara TCP/IP dengan OSI Layer? TCP/IP hanya menggunakan 4 layer, sedang OSI menggunakan 7 layer.

tcp-ip-vs-osi
TCP/IP Model and OSI Model
Kenapa harus pakai layer atau lapisan? Tujuannya agar memudahkan orang mengerti model tersebut. Sesuai dengan fungsi TCP/IP di awal tulisan, model ini akan mengatur standar komunikasi perangkat keras apapun, dengan perangkat lunak apapun, dan dengan media apapun.

Sehingga perlu dibagi-bagi kategorinya, setiap kategori ini nantinya berisi aturan-aturan atau protocol yang saling berhubungan antara satu dengan lainnya.
TCP/IP Layer (Original) terdiri dari 4 layer, namun TCP/IP Updated terdiri dari 5 layer yang membagi layer Link menjadi Data Link dan Physical. Ketika orang berbicara TCP/IP hari ini artinya mereka mengacu ke Original (4) Layer. 

TCP/IP Application Layer

Aplikasi adalah layer teratas dari TCP/IP, yang bertugas untuk menyediakan layanan dari setiap aplikasi yang berjalan di komputer. Jangan salah paham.

Web browser bukanlah salah satu contoh service yang berjalan di application layer, namun sebenarnya web browser hanyalah sebuah aplikasi, yang membutuhkan protocol HTTP yang berjalan di application layer.

HTTP ini yang mengatur bagaimana browser dapat melakukan request halaman web tertentu dari sebuah web server.

Mekanisme Protokol HTTP

HTTP atau Hypertext Transfer Protocol (port 80), contoh sederhananya adalah, kamu saat ini sedang menggunakan web browser di handphone atau laptop untuk mengakses tulisan ini, yang tersimpan di web server (blog ini berada di server google). 
Web browser yang kamu gunakan tersebut menggunakan protocol HTTP.

http-mechanism
Mekanisme HTTP
  1. Client mengirimkan pesan, yang berisi HTTP header.
    Protocol membaca pesan "get" yang ada di header tersebut, dan mengirimkannya ke server.
  2. Server menanggapi request, dan membalas pesan tersebut dengan menyertakan HTTP header juga, yang berisi "OK" berarti siap dan sudah mengirimkan sebagian isi dari content laman web yang diminta.
  3. Server melanjutkan pengiriman lagi hingga selesai, tanpa menyertakan HTTP header lagi. 
Disamping HTTP kita juga mengenal HTTPS (Hypertext Transfer Protocol Secure) versi HTTPS yang lebih aman dikarenakan protocol ini menggunakan SSL (Secure Socket Layer).  Biasanya dikenal juga dengan sebutan S-HTTP atau SHTTP (s for secure).

Protokol ini menjadi standar yang diakui secara de facto sejak Microsoft mendukung HTTPS.  Dengan protokol ini, kamu bisa berselancar dengan aman.  Aman dalam arti, ketika melakukan transaksi misalnya di sebuah situs jual beli atau banking atau situs-situs lainnya dimana kamu menginputkan data-data yang penting.

Domain Name Service (DNS)

Kembali pada mekanisme HTTP diatas, ketika kamu mengakses halaman fathurhoho.id, sebenarnya browser tidak melakukan transaksi langsung ke alamat tersebut. Kenapa?!

Ingat, sebuah komputer saling berkomunikasi di jaringan harus memiliki sebuah alamat, yakni IP Address (pada layer Network). Sehingga,  Sebelum halaman web tersebut berhasil ditampilkan di browser, client harus mengetahui terlebih dahulu alamat IP dari laman web yang akan diakses.

Sederhananya, jika kamu ingin mengetahui halaman web dari fathurhoho.id, just simply ping the domain!
C:\Users\fathurhoho>ping fathurhoho.id

Pinging fathurhoho.id [104.18.43.121] with 32 bytes of data:
Reply from 104.18.43.121: bytes=32 time=216ms TTL=54
Reply from 104.18.43.121: bytes=32 time=215ms TTL=54
Reply from 104.18.43.121: bytes=32 time=222ms TTL=54
Reply from 104.18.43.121: bytes=32 time=211ms TTL=54

Ping statistics for 104.18.43.121:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 211ms, Maximum = 222ms, Average = 216ms
Disinilah fungsi DNS tersebut, untuk menterjemahkan alamat domain (fathurhoho.id) menjadi alamat IP. Ingat kembali seperti penjelasan saya di tulisan ini, bahwa mekanisme komunikasi 2 komputer yang berbeda, mengikuti standar networking model TCP/IP, dan dimulai dari layer teratas, atau layer aplikasi.

Penjelasannya sebagai berikut:
  1. Terjadi komunikasi client server, yang pertama dilihat adalah IP address, jika IP address tidak disertakan, maka komputer akan bekerja sesuai dengan port yang di request. 
  2. Client melakukan komunikasi dengan protokol HTTP, dengan mengetikkan alamat domain di browser. 
  3. Alamat domain tersebut perlu di resolve terlebih dahulu menjadi alamat IP. 
  4. Client akan mengirimkan request ke DNS server untuk mengetahui alamat IP dari sebuah domain.
  5. Setelah DNS mengirimkan IP dari domain yang diminta, maka client mulai melakukan transaksi ke HTTP server.
Sebuah DNS server memiliki catatan yang berisi daftar domain dan alamat IP mereka masing-masing dan mengirimkannya jika ada client yang me-request.

TCP/IP Transport Layer

Fungsi transport layer adalah, menyediakan service untuk layer diatasnya, yakni application layer.
Jadi, harus diketahui dulu application layer apa yang digunakan, apakah HTTP, DNS, FTP, Telnet, SMTP, atau yang lainnya.

Terdapat 2 protokol yang berada pada layer Transport, yaitu; TCP (Transport Control Protocol) dan UDP (User Datagram Protocol). Beberapa kriteria yang dimiliki oleh TCP namun tidak ada di UDP adalah:
  • Reliable, pesan dipastikan dapat sampai dengan utuh. 
  • Connection oriented, sedangkan UDP bersifat connectionless.
  • Acknowledgments, server dan client harus establishing connection dulu sebelum melakukan komunikasi, atau dikenal dengan tree hand shake. 
  • Windowing flow control, dilakukan agar menjaga data tetap reliable.
  • Menggunakan virtual circuits dalam koneksinya. 
Jadi,  Saya akan menggunakan mekanisme HTTP dan DNS diatas.

User Datagram Protocol (UDP)

Ketika client melakukan request ke DNS server untuk menterjemahkan alamat domain menjadi alamat IP, ini terjadi secara connectionless, dan tidak ada acknowledgment. Artinya, request terjadi begitu saja, dan server memberi balasan.

Setelah data balasan terkirim, selesai. Tidak ada sejenis percakapan seperti "Hi client, apakah data yang kukirimkan telah sampai dengan baik?"

Oh ya, fitur diatas bukanlah kekurangn atau kelebihan antara TCP dengan UDP. Jika seorang developer ingin aplikasinya bekerja dengan cepat, tidak perlu reliable, maka ia cukup menggunakan UDP, begitu juga sebaliknya. 
Terdapat situasi dimana DNS menggunakan TCP, bukanlah UDP. Salah satunya ketika packet size melebihi 512 bytes, dan lain-lain. [source

Transport Control Protocol (TCP)

Berbeda dengan DNS, HTTP menggunakan TCP agar data yang dapat terkirim dengan sempurna.
Ingat kembali mekanisme HTTP diatas.
  1. Setelah client mendapatkan alamat IP dari domain yang ingin diakses, dia akan melakukan request ke HTTP server.
  2. Pesan segment akan berisi request SYNC (synchronization). 
  3. Server akan membalas dengan segment SYN/ACK (acknowlegement).
  4. Client membalas kembali dengan ACK, lalu koneksi akan dibentuk, dan data akan dikirimkan.
tcp-mechanism
TCP Three Way Handshake
Ingat, pada layer ini kita menyebut data unit tersebut dengan Segment. Setelah koneksi dibentuk, data akan dikirimkan. Selama pengiriman data ini, digunakan sequencing agar memastikan data terkirim dan diterima sesuai dan tidak acak-acakan.

Pesan ACK memastikan bahwa, data tersebut sudah diterima dengan baik, ada kalanya terjadi error, atau buffer si penerima sedang penuh, disinilah fungsi flow control untuk memperbaikinya, bisa juga disebut dengan TCP Error Recovery.

Same-Layer dan Adjacent-Layer Interactions

Same-layer interaction, seperti contoh mekanisme HTTP diatas, yakni sebuah komputer yang berkomunikasi dengan layer yang sama dengan komputer lain, menggunakan sebuah protocol (dengan menyertakan header).

sedangkan Adjacent-layer interaction, seperti contoh mekanisme TCP diatas, yakni sebuah layer yang memberikan service untuk layer diatasnya. HTTP yang menginginkan error-recovery, menggunakan layer dibawahnya, yakni TCP/IP.

Kesimpulan

Pemahaman networking model secara sempurna memang menjadi syarat yang sangat wajib jika kita ingin membahas jaringan komputer. Diatas saya sudah memberi penjelasan dan pengertian tentang TCP/IP serta sedikit tentang layer Application dan Transport.

Prakteknya nanti akan sering ditemui jika kita akan mengkonfigurasi perangkat security, seperti firewall, atau menerapkan access list di router.

Hal lain yang perlu diketahui adalah port number. Pada skenario requesting web page diatas, client tidak menyertakan alamat IP tujuan, hanya domain saja. Oleh karena itu, komputer melihat port number dari HTTP.

Agar lebih jelasnya, kamu dapat mensimulasikan hal ini. Saya sudah menulisnya di Pengenalan OSI Layer dan Cara Memahaminya. Setiap protokol di TCP/IP memiliki port number masing-masing. Kamu dapat menelusurinya dengan kata kunci "well known port numbers"

Selanjutnya, masih ada TCP/IP Network Layer, dan TCP/IP Link Layer (Data Link dan Physical). Sedikit penjelasan mengenai data link sudah saya jelaskan di tulisan Ethernet Networking.

Referensi

• Todd Lammle - CCNA Routing Switching Complete Study Guide 2nd Version
• Wendell Odom - CCENT/CCNA ICND1 100-105 Official Certification Guide
• http://public.csusm.edu/

2 comments:

  1. terimakasih pak untuk ilmu yg telah disampaikan.. semoga bermanfaat untuk kita semua. amiin. ditunggu tulisan bpk yg berikutnya. salam semangat 😃

    ReplyDelete
    Replies
    1. Terima kasih juga Pak Ali, sudah berkunjung ke blog ini.
      Senang sekali jika bermanfaat untuk orang lain.

      Siap, sukses ontuk Anda, Pak.

      Delete

Berkomentarlah dengan bijak