Internet merupakan jaringan komputer yang dibentuk oleh
Departemen Pertahanan Amerika Serikat di tahun 1969, melalui proyek ARPA yang
disebut ARPANET (Advanced Research Project Agency Network), di mana mereka
mendemonstrasikan bagaimana dengan hardware dan software komputer yang berbasis
UNIX, kita bisa melakukan komunikasi dalam jarak yang tidak terhingga melalui
saluran telepon. Proyek ARPANET merancang bentuk jaringan, kehandalan, seberapa
besar informasi dapat dipindahkan, dan akhirnya semua standar yang mereka
tentukan menjadi cikal bakal pembangunan protokol baru yang sekarang dikenal
sebagai TCP/IP (Transmission Control Protocol/Internet Protocol).
protokol adalah himpunan aturan-aturan main yang mengatur
komunikasi data.Protokol mendefinisikan apa yang dikomunikasikan bagaimana dan
kapan terjadinya komunikasi. Atau himpunan2 yg memungkinkan komputer satu dapat
berhubungan dengan komputer lain.
element2 penting dalam protokol:
element2 penting dalam protokol:
Syntax mengacu pada struktur atau format data, yang mana dalam
urutan tampilannyamemiliki makna tersendiri. Sebagai contoh, sebuah protokol
sederhana akan memiliki urutan pada delapan bit pertama adalah alamat pengirim,
delapan bit kedua adalah alamat penerima dan bit stream sisanya merupakan
informasinya sendiri.
Semantics mengacu pada maksud setiap section bit. Dengan kata
lain adalah bagaimana bit-bit tersebut terpola untuk dapat diterjemahkan.
Timing mengacu pada 2 karakteristik yakni kapan data harus
dikirim dan seberapacepat data tersebut dikirim. Sebagai contoh, jika pengirim
memproduksi data sebesar 100 Megabits per detik (Mbps) namun penerima hanya
mampu mengolah data pada kecepatan 1 Mbps, maka transmisi data akan menjadi
overload pada sisi penerima dan akibatnya banyak data yang akan hilang atau
musnah.
jenis2 protokol:
TCP/IP
IPX/SPX
AppleTalk
NET
BIOS
DECNET
POINT TO POINT PROTOCOL
SNA
SNMP
SLIP
Tujuan awal
dibangunnya proyek itu adalah untuk keperluan militer. Pada saat itu Departemen
Pertahanan Amerika Serikat (US Department of Defense) membuat sistem jaringan
komputer yang tersebar dengan menghubungkan komputer di daerah-daerah vital
untuk mengatasi masalah bila terjadi serangan nuklir dan untuk menghindari
terjadinya informasi terpusat, yang apabila terjadi perang dapat mudah
dihancurkan.
Pada mulanya ARPANET hanya menghubungkan 4 situs saja yaitu
Stanford Research Institute, University of California, Santa Barbara,
University of Utah, di mana mereka membentuk satu jaringan terpadu di tahun
1969, dan secara umum ARPANET diperkenalkan pada bulan Oktober 1972. Tidak lama
kemudian proyek ini berkembang pesat di seluruh daerah, dan semua universitas
di negara tersebut ingin bergabung, sehingga membuat ARPANET kesulitan untuk
mengaturnya.
Oleh sebab itu ARPANET dipecah manjadi dua, yaitu
"MILNET" untuk keperluan militer dan "ARPANET" baru yang
lebih kecil untuk keperluan non-militer seperti, universitas-universitas.
Gabungan kedua jaringan akhirnya dikenal dengan nama DARPA Internet, yang
kemudian disederhanakan menjadi Internet.
Daftar kejadian penting
Tahun Kejadian
1957
Uni Sovyet (sekarang Rusia) meluncurkan wahana luar angkasa,
Sputnik.
1958
Sebagai buntut dari "kekalahan" Amerika Serikat dalam meluncurkan
wahana luar angkasa, dibentuklah sebuah badan di dalam Departemen Pertahanan
Amerika Serikat, Advanced Research Projects Agency (ARPA), yang bertujuan agar
Amerika Serikat mampu meningkatkan ilmu pengetahuan dan teknologi negara
tersebut. Salah satu sasarannya adalah teknologi komputer.
1962
J.C.R. Licklider menulis sebuah tulisan mengenai sebuah visi di
mana komputer-komputer dapat saling dihubungkan antara satu dengan lainnya
secara global agar setiap komputer tersebut mampu menawarkan akses terhadap
program dan juga data. Di tahun ini juga RAND Corporation memulai riset
terhadap ide ini (jaringan komputer terdistribusi), yang ditujukan untuk tujuan
militer.
Awal 1960-an Teori mengenai packet-switching dapat
diimplementasikan dalam dunia nyata.
Pertengahan 1960-an ARPA mengembangkan ARPANET untuk
mempromosikan "Cooperative Networking of Time-sharing Computers",
dengan hanya empat buah host komputer yang dapat dihubungkan hingga tahun 1969,
yakni Stanford Research Institute, University of California, Los Angeles,
University of California, Santa Barbara, dan University of Utah.
1965
Istilah "Hypertext" dikeluarkan oleh Ted Nelson.
1968
Jaringan Tymnet dibuat.
1971
Anggota jaringan ARPANET bertambah menjadi 23 buah node
komputer, yang terdiri atas komputer-komputer untuk riset milik pemerintah
Amerika Serikat dan universitas.
1972
Sebuah kelompok kerja yang disebut dengan International Network
Working Group (INWG) dibuat untuk meningkatkan teknologi jaringan komputer dan
juga membuat standar-standar untuk jaringan komputer, termasuk di antaranya
adalah Internet. Pembicara pertama dari organisasi ini adalah Vint Cerf, yang
kemudian disebut sebagai "Bapak Internet"
1972-1974
Beberapa layanan basis data komersial seperti Dialog, SDC Orbit,
Lexis, The New York Times DataBank, dan lainnya, mendaftarkan dirinya ke
ARPANET melalui jaringan dial-up.
1973
ARPANET ke luar Amerika Serikat: pada tahun ini, anggota ARPANET
bertambah lagi dengan masuknya beberapa universitas di luar Amerika Serikat
yakni University College of London dari Inggris dan Royal Radar Establishment
di Norwegia.
1974
Vint Cerf dan Bob Kahn mempublikasikan spesifikasi detail
protokol Transmission Control Protocol (TCP) dalam artikel "A Protocol for
Packet Network Interconnection".
1974
Bolt, Beranet & Newman (BBN), pontraktor untuk ARPANET,
membuka sebuah versi komersial dari ARPANET yang mereka sebut sebagai Telenet,
yang merupakan layanan paket data publik pertama.
1977
Sudah ada 111 buah komputer yang telah terhubung ke ARPANET.
1978
Protokol TCP dipecah menjadi dua bagian, yakni Transmission
Control Protocol dan Internet Protocol (TCP/IP).
1979
Grup diskusi Usenet pertama dibuat oleh Tom Truscott, Jim Ellis
dan Steve Bellovin, alumni dari Duke University dan University of North Carolina
Amerika Serikat. Setelah itu, penggunaan Usenet pun meningkat secara drastis.
Di tahun ini pula, emoticon diusulkan oleh Kevin McKenzie.
Awal 1980-an Komputer pribadi (PC) mewabah, dan menjadi bagian
dari banyak hidup manusia.
Tahun ini tercatat ARPANET telah memiliki anggota hingga 213
host yang terhubung.
Layanan BITNET (Because It's Time Network) dimulai, dengan
menyediakan layanan e-mail, mailing list, dan juga File Transfer Protocol
(FTP).
CSNET (Computer Science Network) pun dibangun pada tahun ini
oleh para ilmuwan dan pakar pada bidang ilmu komputer dari Purdue University,
University of Washington, RAND Corporation, dan BBN, dengan dukungan dari
National Science Foundation (NSF). Jaringan ini menyediakan layanan e-mail dan
beberapa layanan lainnya kepada para ilmuwan tersebut tanpa harus mengakses
ARPANET.
1982 Istilah "Internet" pertama kali digunakan, dan
TCP/IP diadopsi sebagai protokol universal untuk jaringan tersebut.
Name server mulai dikembangkan, sehingga mengizinkan para
pengguna agar dapat terhubung kepada sebuah host tanpa harus mengetahui jalur
pasti menuju host tersebut.
Tahun ini tercatat ada lebih dari 1000 buah host yang tergabung
ke Internet.
1986 Diperkenalkan sistem nama domain, yang sekarang dikenal
dengan DNS(Domain Name System)yang berfungsi untuk menyeragamkan sistem
pemberian nama alamat di jaringan komputer.
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.
Segmen TCP
Segmen-segmen TCP akan dikirimkan sebagai datagram-datagram IP
(datagram merupakan satuan protocol data unit pada lapisan internetwork).
Sebuah segmen TCP terdiri atas sebuah header dan segmen data (payload), yang
dienkapsulasi dengan menggunakan header IP dari protokol IP.
Proses enkapsulasi data protokol TCP/IP: Data aplikasi + header
TCP + header IP + header network interface (Ethernet, Token Ring, dll) +
trailer network interface
Sebuah segmen dapat berukuran hingga 65495 byte: 216-(ukuran
header IP terkecil (20 byte)+ukuran header TCP terkecil (20 byte)). Datagram IP
tersebut akan dienkapsulasi lagi dengan menggunakan header protokol network
interface (lapisan pertama dalam DARPA Reference Model) menjadi frame lapisan
Network Interface. Gambar berikut mengilustrasikan data yang dikirimkan ke
sebuah host.
Di dalam header IP dari sebuah segmen TCP, field Source IP
Address diatur menjadi alamat unicast dari sebuah antarmuka host yang
mengirimkan segmen TCP yang bersangkutan. Sementara itu, field Destination IP
Address juga akan diatur menjadi alamat unicast dari sebuah antarmuka host
tertentu yang dituju. Hal ini dikarenakan, protokol TCP hanya mendukung
transmisi one-to-one.
Header TCP
Ukuran dari header TCP adalah bervariasi, yang terdiri atas
beberapa field yang ditunjukkan dalam gambar dan tabel berikut. Ukuran TCP
header paling kecil (ketika tidak ada tambahan opsi TCP) adalah 20 byte.
Format header TCP, dilengkapi dengan ukuran setiap field-nya
Nama field Ukuran Keterangan
Source Port 2 byte (16 bit) Mengindikasikan sumber protokol
lapisan aplikasi yang mengirimkan segmen TCP yang bersangkutan. Gabungan antara
field Source IP Address dalam header IP dan field Source Port dalam field
header TCP disebut juga sebagai socket sumber, yang berarti sebuah alamat
global dari mana segmen dikirimkan. Lihat juga Port TCP.
Destination Port 2 byte (16 bit) Mengindikasikan tujuan protokol
lapisan aplikasi yang menerima segmen TCP yang bersangkutan. Gabungan antara
field Destination IP Address dalam header IP dan field Destination Port dalam
field header TCP disebut juga sebagai socket tujuan, yang berarti sebuah alamat
global ke mana segmen akan dikirimkan.
Sequence Number 4 byte (32 bit) Mengindikasikan nomor urut dari
oktet pertama dari data di dalam sebuah segmen TCP yang hendak dikirimkan.
Field ini harus selalu diset, meskipun tidak ada data (payload) dalam segmen.
Ketika memulai sebuah sesi koneksi TCP, segmen dengan flag SYN
(Synchronization) diset ke nilai 1, field ini akan berisi nilai Initial
Sequence Number (ISN). Hal ini berarti, oktet pertama dalam aliran byte (byte
stream) dalam koneksi adalah ISN+1.
Acknowledgment Number 4 byte (32 bit) Mengindikasikan nomor urut
dari oktet selanjutnya dalam aliran byte yang diharapkan oleh untuk diterima
oleh pengirim dari si penerima pada pengiriman selanjutnya. Acknowledgment
number sangat dipentingkan bagi segmen-segmen TCP dengan flag ACK diset ke nilai
1.
Data Offset 4 bit Mengindikasikan di mana data dalam segmen TCP
dimulai. Field ini juga dapat berarti ukuran dari header TCP. Seperti halnya
field Header Length dalam header IP, field ini merupakan angka dari word 32-bit
dalam header TCP. Untuk sebuah segmen TCP terkecil (di mana tidak ada opsi TCP
tambahan), field ini diatur ke nilai 0x5, yang berarti data dalam segmen TCP
dimulai dari oktet ke 20 dilihat dari permulaan segmen TCP. Jika field Data
Offset diset ke nilai maksimumnya (24=16) yakni 15, header TCP dengan ukuran
terbesar dapat memiliki panjang hingga 60 byte.
Reserved 6 bit Direservasikan untuk digunakan pada masa depan.
Pengirim segmen TCP akan mengeset bit-bit ini ke dalam nilai 0.
Flags 6 bit Mengindikasikan flag-flag TCP yang memang ada enam
jumlahnya, yang terdiri atas: URG (Urgent), ACK (Acknowledgment), PSH (Push),
RST (Reset), SYN (Synchronize), dan FIN (Finish).
Window 2 byte (16 bit) Mengindikasikan jumlah byte yang tersedia
yang dimiliki oleh buffer host penerima segmen yang bersangkutan. Buffer ini
disebut sebagai Receive Buffer, digunakan untuk menyimpan byte stream yang
datang. Dengan mengimbuhkan ukuran window ke setiap segmen, penerima segmen TCP
memberitahukan kepada pengirim segmen berapa banyak data yang dapat dikirimkan
dan disangga dengan sukses. Hal ini dilakukan agar si pengirim segmen tidak
mengirimkan data lebih banyak dibandingkan ukuran Receive Buffer. Jika tidak
ada tempat lagi di dalam Receive buffer, nilai dari field ini adalah 0. Dengan
nilai 0, maka si pengirim tidak akan dapat mengirimkan segmen lagi ke penerima
hingga nilai field ini berubah (bukan 0). Tujuan hal ini adalah untuk mengatur
lalu lintas data atau flow control.
Checksum 2 byte (16 bit) Mampu melakukan pengecekan integritas
segmen TCP (header-nya dan payload-nya). Nilai field Checksum akan diatur ke
nilai 0 selama proses kalkulasi checksum.
Urgent Pointer 2 byte (16 bit) Menandakan lokasi data yang
dianggap "urgent" dalam segmen.
Options 4 byte (32 bit) Berfungsi sebagai penampung beberapa
opsi tambahan TCP. Setiap opsi TCP akan memakan ruangan 32 bit, sehingga ukuran
header TCP dapat diindikasikan dengan menggunakan field Data offset.
Port TCP
Port TCP mampu mengindikasikan sebuah lokasi tertentu untuk
menyampaikan segmen-segmen TCP yang dikirimkan yang diidentifikasi dengan TCP
Port Number. Nomor-nomor di bawah angka 1024 merupakan port yang umum digunakan
dan ditetapkan oleh IANA (Internet Assigned Number Authority). Tabel berikut
ini menyebutkan beberapa port TCP yang telah umum digunakan.
Nomor port TCP Keterangan
20 File Transfer Protocol/FTP (digunakan untuk saluran data)
21 File Transfer Protocol/FTP (digunakan untuk saluran kontrol)
25 Simple Mail Transfer Protocol/SMTP yang digunakan untuk
mengirim e-mail
23 Telnet
80 Hypertext Transfer Protocol/HTTP yang digunakan untuk World
Wide Web.
110 Post Office Protocol 3/POP3 yang digunakan untuk menerima
e-mail.
139 NetBIOS over TCP session service
Port TCP merupakan hal yang berbeda dibandingkan dengan port
UDP, meskipun mereka memiliki nomor port yang sama. Port TCP merepresentasikan
satu sisi dari sebuah koneksi TCP untuk protokol lapisan aplikasi, sementara
port UDP merepresentasikan sebuah antrean pesan UDP untuk protokol lapisan
aplikasi. Selain itu, protokol lapisan aplikasi yang menggunakan port TCP dan
port UDP dalam nomor yang sama juga tidak harus sama. Sebagai contoh protokol
Extended Filename Server (EFS) menggunakan port TCP dengan nomor 520, dan
protokol Routing Information Protocol (RIP) menggunakan port UDP juga dengan
nomor 520. Jelas, dua protokol tersebut sangatlah berbeda! Karenanya, untuk
menyebutkan sebuah nomor port, sebutkan juga jenis port yang digunakannya,
karena hal tersebut mampu membingungkan (ambigu).
TCP Flag
Sebuah segmen TCP dapat memiliki flag (tanda-tanda) khusus yang
mengindikasikan segmen yang bersangkutan, seperti yang disebutkan dalam tabel
berikut:
Struktur flag-flag TCP
Nama flag Keterangan
URG Mengindikasikan bahwa beberapa bagian dari segmen TCP
mengandung data yang sangat penting, dan field Urgent Pointer dalam header TCP
harus digunakan untuk menentukan lokasi di mana data penting tersebut berada
dalam segmen.
ACK Mengindikasikan field Acknowledgment mengandung oktet
selanjutnya yang diharapkan dalam koneksi. Flag ini selalu diset, kecuali pada
segmen pertama pada pembuatan sesi koneksi TCP.
PSH Mengindikasikan bahwa isi dari TCP Receive buffer harus
diserahkan kepada protokol lapisan aplikasi. Data dalam receive buffer harus
berisi sebuah blok data yang berurutan (kontigu), dilihat dari ujung paling
kiri dari buffer. Dengan kata lain, sebuah segmen yang memiliki flag PSH diset
ke nilai 1, tidak bolah ada satu byte pun data yang hilang dari aliran byte
segmen tersebut; data tidak dapat diberikan kepada protokol lapisan aplikasi
hingga segmen yang hilang tersebut datang. Normalnya, TCP Receive buffer akan
dikosongkan (dengan kata lain, isi dari buffer akan diteruskan kepada protokol
lapisan aplikasi) ketika buffer tersebut berisi data yang kontigu atau ketika
dalam "proses perawatan". Flag PSH ini dapat mengubah hal seperti
itu, dan membuat akan TCP segera mengosongkan TCP Receive buffer. Flag PSH
umumnya digunakan dalam protokol lapisan aplikasi yang bersifat interaktif,
seperti halnya Telnet, karena setiap penekanan tombol dalam sesi terminal
virtual akan dikirimkan dengan sebuah flag PSH diset ke nilai 1. Contoh dari
penggunaan lainnya dari flag ini adalah pada segmen terakhir dari berkas yang
ditransfer dengan menggunakan protokol FTP. Segmen yang dikirimkan dengan flag
PSH aktif tidak harus segera di-acknowledge oleh penerima.
RST Mengindikasikan bahwa koneksi yang dibuat akan digagalkan.
Untuk sebuah koneksi TCP yang sedang berjalan (aktif), sebuah segmen dengan
flag RST diset ke nilai 1 akan dikirimkan sebagai respons terhadap sebuah
segmen TCP yang diterima yang ternyata segmen tersebut bukan yang diminta,
sehingga koneksi pun menjadi gagal. Pengiriman segmen dengan flag RST diset ke
nilai 1 untuk sebuah koneksi aktif akan menutup koneksi secara paksa, sehingga
data yang disimpan dalam buffer akan dibuang (dihilangkan). Untuk sebuah
koneksi TCP yang sedang dibuat, segmen dengan flag RST aktif akan dikirimkan
sebagai respons terhadap request pembuatan koneksi untuk mencegah percobaan
pembuatan koneksi.
SYN Mengindikasikan bahwa segmen TCP yang bersangkutan
mengandung Initial Sequence Number (ISN). Selama proses pembuatan sesi koneksi
TCP, TCP akan mengirimkan sebuah segmen dengan flag SYN diset ke nilai 1. Setiap
host TCP lainnya akan memberikan jawaban (acknowledgment) dari segmen dengan
flag SYN tersebut dengan menganggap bahwa segmen tersebut merupakan sekumpulan
byte dari data. Field Acknowledgment Number dari sebuah segmen SYN diatur ke
nilai ISN + 1.
FIN Menandakan bahwa pengirim segmen TCP telah selesai dalam
mengirimkan data dalam sebuah koneksi TCP. Ketika sebuah koneksi TCP akhirnya
dihentikan (akibat sudah tidak ada data yang dikirimkan lagi), setiap host TCP
akan mengirimkan sebuah segmen TCP dengan flag FIN diset ke nilai 1. Sebuah
host TCP tidak akan mengirimkan segmen dengan flag FIN hingga semua data yang
dikirimkannya telah diterima dengan baik (menerima paket acknowledgment) oleh
penerima. Setiap host akan menganggap sebuah segmen TCP dengan flag FIN sebagai
sekumpulan byte dari data. Ketika dua host TCP telah mengirimkan segmen TCP
dengan flag FIN dan menerima acknowledgment dari segmen tersebut, maka koneksi
TCP pun akan dihentikan.
TCP Three-way handshake
Tidak ada komentar:
Posting Komentar