Sejarah Awal
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.
Tidak ada komentar:
Posting Komentar