BAB II DASAR TEORI 2.1
Teknologi TCP/IP Teknologi TCP/IP adalah hasil penelitian dan pengembangan protocol
yang dilaksanakan dan dibiayai oleh Defense Advanced Research Project Agency (DARPA). Paket TCP/IP terdiri dari sekumpulan protocol yang distandarisasi oleh Internet Architecture Board (IAB) [1]. Keunggulan TCP/IP adalah sebagai berikut [1] : 1. Open protocol standard, yaitu tersedia secara bebas dan dikembangkan independen terhadap komputer hardware ataupun sistem operasi apapun. Karena didukung secara meluas, TCP/IP sangat ideal untuk menyatukan bermacam hardware dan software, walaupun tidak berkomunikasi lewat internet. 2.
Independen dari physical network hardware. Ini menyebabkan TCP/IP dapat mengintegrasikan bermacam network, baik melalui ethernet, token ring, dial-up, X.25/AX.25 dan media transmisi fisik lainnya.
3. Skema pengalamatan yang umum menyebabkan device yang menggunakan TCP/IP dapat menghubungi alamat device yang lain di seluruh network, bahkan Internet sekalipun.
4. High level protocol standar, yang dapat melayani user secara luas.
Arsitektur TCP/IP terdiri dari 5 lapisan / layer seperti ditunjukan pada Gambar 2.1. Lapisan terdiri dari application layer, transport layer, internet layer, network access layer, physical layer.
5 Universitas Sumatera Utara
Gambar 2.1 Arsitektur TCP Physical
Layer
(lapisan
fisik)
merupakan
lapisan
terbawah
yang mendefinisikan besaran fisik seperti media komunikasi, tegangan dan arus. Lapisan
ini
dapat
pada jaringan
yang
bervariasi
bersangkutan.
bergantung TCP
pada
media
bersifat
fleksibel
komunikasi sehingga
dapat mengintegralkan berbagai jaringan dengan media fisik yang berbeda-beda. Network
Access Layer mempunyai fungsi yang mirip dengan
data
link layer pada OSI. Lapisan ini mengatur penyaluran data frame pada media fisik yang digunakan secara handal. Lapisan ini biasanya memberikan servis untuk deteksi dan koreksi kesalahan dari data yang ditransmisikan. Beberapa contoh protocol yang digunakan pada lapisan ini adalah X.25 jaringan publik, Ethernet untuk ja ringan Etehernet, AX.25 untuk jaringan Paket Radio. Internet
Layer mendefinisikan bagaimana hubungan dapat terjadi
antara dua pihak yang berada pada jaringan yang berbeda seperti network layer pada OSI. Pada jaringan internet yang terdiri atas puluhan juta host dan ratusan ribu jaringan lokal, lapisan ini bertugas untuk menjamin agar suatu paket yang dikirimkan dapat menemukan tujuannya. Oleh karena itu, 6 Universitas Sumatera Utara
lapisan ini memiliki peranan penting terutama dalam mewujudkan internet working yang meliputi wilayah luas (world wide Internet). Transport Layer mendefinisikan cara-cara untuk melakukan pengiriman data antara end to end host secara handal. Lapisan ini menjamin bahwa informasi yang diterima pada sisi penerima adal ah sama dengan informasi yang dikirimkan pada pengirim. Application Layer merupakan lapisan terakhir dalam arsitektur TCP yang berfungsi
mendefinisikan
aplikasi-aplikasi
jaringan. Karena itu, terdapat banyak protocol
yang
dijalankan
pada
pada lapisan ini, sesuai
dengan banyaknya aplikasi TCP yang dapat dijalankan. Contohnya adalah Simple Mail Transfer Protocol (SMTP) untuk pengiriman e-mail, File Transfer Protocol (FTP) untuk transfer file, Hyper Text Transfer Protocol (HTTP) untuk aplikasi web, Network News Transfer Protocol (NNTP) untuk distribusi news group dan lain-lain.
2.2
Transmission Control Protocol TCP merupakan layanan layer transport yang berorientasi reliable. TCP
mentransmisikan data dalam bentuk segmen. Satu segment terdiri dari beberapa paket internet protocol (IP). Setiap segment memerlukan pemberitahuan jika data telah
diterima
oleh
terminal
yang
dituju.
Pemberitahuan
ini
disebut
acknowledgment (ACK), jika ACK tidak diterima maka terminal pengirim akan mengirim ulang data. Jika ACK memberikan informasi bahwa sebagian paket IP hilang, maka terminal pengirim akan mengirim ulang.
7 Universitas Sumatera Utara
TCP umumnya digunakan ketika protocol lapisan aplikasi membutuhkan layanan transfer data yang bersifat andal, yang layanan tersebut tidak dimiliki oleh protocol lapisan aplikasi tersebut. Contoh dari protocol yang menggunakan TCP adalah HTTP dan FTP. TCP memiliki beberap karakteristik sebagai berikut [2]: 1. 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. 2. 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 fullduplex, 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. 3. 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 protocol 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. 8 Universitas Sumatera Utara
4. 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 protocol lapisan aplikasi (dalam DARPA Reference Model), yang harus menerjemahkan byte stream TCP ke dalam "bahasa" yang ia pahami. 5. 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. 6. Melakukan segmentasi terhadap data yang datang dari lapisan aplikasi (dalam DARPA Reference Model) 7. 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.
9 Universitas Sumatera Utara
TCP menyediakan layanan komunikasi pada tingkat menengah antara program aplikasi dan Internet Protocol (IP). Artinya, ketika sebuah program aplikasi keinginan untuk mengirim potongan besar data di Internet menggunakan IP, bukannya melanggar data menjadi potongan-potongan IP dan mengeluarkan serangkaian IP permintaan, perangkat lunak dapat mengeluarkan permintaan tunggal untuk TCP dan membiarkan TCP menangani rincian IP.
IP bekerja dengan bertukar potongan informasi yang disebut paket. Sebuah paket adalah urutan byte dan terdiri dari sebuah header yang diikuti oleh tubuh. Header menjelaskan sumber, tujuan dan kontrol informasi paket. Paket berisi data IP transmisi. Karena kemacetan jaringan, lalu lintas load balancing, atau perilaku jaringan tak terduga lainnya, paket IP bisa hilang, digandakan, atau dikirim rusak. TCP mendeteksi masalah ini, permintaan pengiriman ulang data yang hilang, menata kembali out-of-order data, dan bahkan membantu meminimalkan kepadatan jaringan untuk mengurangi terjadinya masalah lain. TCP digunakan secara luas oleh banyak aplikasi yang paling populer di Internet, termasuk World Wide Web (WWW), E-mail, File Transfer Protocol, Secure Shell, peer-topeer file sharing, dan beberapa aplikasi media streaming. TCP dioptimalkan untuk pengiriman akurat daripada pengiriman tepat waktu, dan karena itu, TCP kadangkadang menimbulkan keterlambatan yang relatif panjang (pada urutan detik) sambil menunggu pesan out-of-order atau transmisi ulang pesan yang hilang. Hal ini tidak terlalu cocok untuk aplikasi real-time seperti Voice over IP. Untuk aplikasi tersebut, protocol seperti Real-time Transport Protocol (RTP) berjalan di atas User Datagram Protocol (UDP) biasanya direkomendasikan sebagai gantinya[3]. 10 Universitas Sumatera Utara
TCP adalah layanan pengiriman aliran handal yang menjamin bahwa semua byte yang diterima akan sama dengan byte yang dikirim dan dalam urutan yang benar. Sejak transfer paket lebih banyak jaringan tidak dapat diandalkan, teknik yang dikenal sebagai pengakuan positif dengan transmisi digunakan untuk menjamin kehandalan paket transfer. Teknik dasar ini membutuhkan penerima untuk merespon dengan pesan pengakuan seperti menerima data. Pengirim menyimpan catatan setiap paket yang dikirimkannya. Pengirim juga menjaga timer dari saat paket itu dikirim, dan mentransmisikan kembali paket jika timer berakhir sebelum pesan telah diakui. Timer diperlukan dalam kasus sebuah paket akan hilang atau rusak. Sementara IP menangani pengiriman aktual dari data, TCP melacak unit individu transmisi data, yang disebut segmen, bahwa pesan dibagi menjadi untuk routing yang efisien melalui jaringan. Sebagai contoh, ketika file HTML dikirimkan dari server web, lapisan software TCP server yang membagi urutan oktet dari file ke dalam segmen dan ke depan mereka secara individu ke lapisan perangkat lunak IP (Internet Layer). Setiap segmen TCP menjadi paket IP dengan menambahkan header yang meliputi (antara data lain) alamat IP tujuan. Ketika program klien pada komputer tujuan menerima mereka, lapisan TCP (Transport Layer) menyusun
kembali
segmen
individu
dan
memastikan
mereka
benar
memerintahkan dan bebas dari kesalahan karena aliran mereka untuk sebuah aplikasi [3].
11 Universitas Sumatera Utara
2.3
Fitur TCP Koneksi end-to-end sebenarnya meluas melalui lapisan TCP untuk aplikasi
yang menggunakan layanan jaringan. Aplikasi yang paling umum seperti HTTP (layanan Web) dan File Transfer Protocol (FTP) menggunakan port yang handal, sehingga klien dapat terhubung untuk mengakses layanan tertentu tanpa harus melakukan query pada port apa bahwa layanan sedang berjalan. Sebagai contoh, Web browser secara otomatis terhubung dengan port 80, FTP menggunakan port 21, dan Gopher menggunakan port 70. Sebuah sesi khas melibatkan pengiriman paket dari sumber alamat IP dan port ke alamat IP tujuan dan port. Port kombinasi dan IP address disebut socket. Anda dapat menganggap soket sebagai akhir dari sambungan. Jika sambungan seperti sirkuit atau kawat, maka soket adalah ujung kawat itu, seperti telepon ada di akhir rangkaian suara.
2.4
TCP Segmen Segmen TCP adalah paket informasi bahwa TCP menggunakan untuk
bertukar data dengan rekan-rekan (TCP berjalan pada host lain). Segmen adalah apa yang akan dikemas menjadi sebuah datagram IP dan ditransmisikan melalui jaringan. Lihat "Jaringan Arsitektur" untuk penjelasan tentang bagaimana informasi dipertukarkan antara lapisan protocol. Segmen memiliki header 20-byte dan bidang data variabel panjang. Bidang segmen TCP. Perlu diketahui bahwa salah satu stasiun dapat mengirimkan segmen yang berisi hanya informasi header dan tidak ada data untuk menyediakan sistem lain dengan informasi kontrol sesi, seperti pengakuan bahwa segmen diterima. Ditunjukan pada Gambar 2.2. 12 Universitas Sumatera Utara
Gambar 2.2 TCP Segmen
Source and Destination Ports
Berisi nomor port dari soket di
sumber dan tujuan sisi sambungan.
Sequence Number. Bidang ini berisi nomor urut untuk penerima, yang merupakan nomor urut yang mengidentifikasi data dalam segmen dan tempatnya dalam aliran data yang telah dikirim. Penerima dapat menggunakan nomor urut untuk menyusun ulang paket yang telah tiba rusak atau untuk menentukan bahwa segmen yang hilang. Bidang ini digunakan oleh algoritma sliding window.
Acknowledgment Number. Bidang ini digunakan oleh penerima untuk menunjukkan kepada pengirim dalam pesan kembali bahwa mereka telah menerima paket yang dikirim sebelumnya. Jumlah dalam bidang ini sebenarnya adalah nomor urut untuk segmen berikutnya bahwa penerima mengharapkan. Angka itu dihitung dengan incrementing nilai di bidang Sequence Number. Bidang ini 13
Universitas Sumatera Utara
digunakan oleh algoritma sliding window-. Lihat "Aliran-Control Mekanisme" untuk keterangan.
TCP header Menentukan panjang header.
ACK (acknowledgment) Jika ACK diset ke 1, ini menunjukkan bahwa segmen adalah bagian dari percakapan yang sedang berlangsung dan jumlah di bidang Pengakuan Nomor berlaku. Jika bendera ini diatur ke 0 dan SYN diatur ke 1, segmen adalah permintaan untuk membuat sambungan.
Sliding Window Size Menunjukkan berapa banyak ruang tersedia dalam buffer penerima. Bidang ini digunakan oleh penerima untuk menginformasikan pengirim yang dibutuhkan untuk mempercepat atau memperlambat transmisinya. Jika penerima ingin pengirim untuk menghentikan transmisi sama sekali, dapat kembali segmen dengan 0.
Checksum. Menyediakan nilai pengecekan error untuk memastikan integritas segmen.
14 Universitas Sumatera Utara