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,
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 bervariasi bergantung pada media komunikasi
pada jaringan yang bersangkutan. TCP bersifat fleksibel 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
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 yang dijalankan pada
jaringan. Karena itu, terdapat banyak protocol 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
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
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.
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
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
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-to-peer file sharing, dan beberapa aplikasi media streaming. TCP dioptimalkan untuk pengiriman akurat daripada pengiriman tepat waktu, dan karena itu, TCP
kadang-kadang 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
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
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
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
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