TCP/IP merupakan dasar dari segalanya, tanpa mempelajari TCP/PI kemungkinan kita tidak dapat melakah maju di dunia pehackingan. Dengan kata lain, TCP/IP merupakan awal dari segalanya. Banyak orang yg menyepelekan pentingnya mempelajari TCP/IP, mereka mengaku dirinya "hacker" tetapi tidak mengerti sama sekali apa itu TCP/IP. Merasa hacker hanya apabila bisa mencrash ataupun menjebol server, tetapi sebetulnya bukan itulah maksud dari segala itu. Hacker itu adalah orang yg haus akan pengetahuan, bukan haus akan penghancuran. Untuk menjadi hacker dibutuhkan kerja keras, semangat, motivasi yg tinggi serta pemahaman seluk-beluk internet itu sendiri, tanpa hal-hal tersebut mustahil anda dapat menjadi seorang hacker yang tangguh.Tulisan ini didedikasikan terutama untuk member Kecoak Elektronik dan siapa saja yang ingin mempelajari TCP/IP, bukan untuk mereka yang hanya ingin mencari jalan pintas menjadi hacker sejati. Bagi anda yg memang udah profhacking mungkin tulisan ini tidak penting, karena memang tulisan ini hanyalah pengantar belaka dan bukan merupakan referensi yg sempurna (dan jauh dari sempurna) oleh karenanya hanya dikhususkan bagi mereka yg pendatang baru (newbies).
1. Apa itu TCP/IP ?TCP/IP adalah salah satu jenis protokol* yg memungkinkan kumpulan komputer untuk berkomunikasi dan bertukar data didalam suatu network (jaringan).
**************************************************************************** Merupakan himpunan aturan yg memungkinkan komputer untuk berhubungan antara satu dengan yg lain, biasanya berupa bentuk / waktu / barisan / pemeriksaan error saat transmisi data.
*****************************************************************************
2. Apa yg membuat TCP/IP menjadi penting ?
Karena TCP/IP merupakan protokol yg telah diterapkan pada hampir semua perangkat keras dan sistem operasi. Tidak ada rangkaian protokol lain yg tersedia pada semua sistem berikut ini :
a. Novel Netware.b. Mainframe IBM.
c. Sistem digital VMS.
d. Server Microsoft Windows NT
e. Workstation UNIX, LinuX, FreeBSD
f. Personal komputer DOS.
3. Bagaimana awalnya keberadaan TCP/IP ?
Konsep TCP/IP berawal dari kebutuhan DoD (Departement of Defense) AS akan suatu komunikasi di antara berbagai variasi komputer yg telah ada. Komputer-komputer DoD ini seringkali harus berhubungan antara satu organisasi peneliti dg organisasi peneliti lainnya, dan harus tetap berhubungan sehingga pertahanan negara tetap berjalan selama terjadi bencana, seperti ledakan nuklir. Oleh karenanya pada tahun 1969 dimulailah penelitian terhadap serangkaian protokol TCP/IP. Di antara tujuan-tujuan penelitian ini adalah sebagai berikut :
1. Terciptanya protokol-protokol umum, DoD memerlukan suatu protokol yg dapat ditentukan untuk semua jaringan.
2. Meningkatkan efisiensi komunikasi data.
3. Dapat dipadukan dengan teknologi WAN (Wide Area Network) yg telah ada.
4. Mudah dikonfigurasikan.
Tahun 1968 DoD ARPAnet (Advanced Reseach Project Agency) memulai penelitian yg kemudian menjadi cikal bakal packet switching . Packet switching inilah yg memungkinkan komunikasi antara lapisan network (dibahas nanti) dimana data dijalankan dan disalurkan melalui jaringan dalam bentuk unit-unit kecil yg disebut packet*. Tiap-tiap packet ini membawa informasi alamatnya masing-masing yg ditangani dengan khusus oleh jaringan tersebut dan tidak tergantung dengan paket-paket lain.Jaringan yg dikembangkan ini, yg menggunakan ARPAnet sebagai tulang punggungnya, menjadi terkenal sebagai internet.Protokol-protokol TCP/IP dikembangkan lebih lanjut pada awal 1980 dan menjadi protokol-protokol standar untuk ARPAnet pada tahun 1983. Protokol-protokol ini mengalami peningkatan popularitas di komunitas pemakai ketika TCP/IP digabungkan menjadi versi 4.2 dari BSD (Berkeley Standard Distribution) UNIX. Versi ini digunakan secara luas pada institusi penelitian dan pendidikan dan digunakan sebagai dasar dari beberapa penerapan UNIX komersial, termasuk SunOS dari Sun dan Ultrix dari Digital. Karena BSD UNIX mendirikan hubungan antara TCP/IP dan sistem operasi UNIX, banyak implementasi UNIX sekarang menggabungkan TCP/IP.
************************************************************************
Unit informasi yg mana jaringan berkomunikasi. Tiap-tiap paket berisi identitas (header) station pengirim dan penerima, informasi error- control, permintaan suatu layanan dalam lapisan network, informasi bagaimana menangani permintaan dan sembarang data penting yg harus ditransfer.
************************************************************************
4. Layanan apa saja yg diberikan oleh TCP/IP ?
Berikut ini adalah layanan "tradisional" yg dilakukan TCP/IP :
a. Pengiriman file (file transfer). File Transfer Protokol (FTP) memungkinkan pengguna komputer yg satu untuk dapat mengirim ataupun menerima file ke komputer jaringan. Karena masalah keamanan data, maka FTP seringkali memerlukan nama pengguna (user name) dan password, meskipun banyak juga FTP yg dapat diakses melalui anonymous, alias tidak berpassword. (lihat RFC 959 untuk spesifikasi FTP)b. Remote login. Network terminal Protokol (telnet) memungkinkan pengguna komputer dapat melakukan log in ke dalam suatu komputer didalam suatu jaringan. Jadi hal ini berarti bahwa pengguna menggunakan komputernya sebagai perpanjangan tangan dari komputer jaringan tersebut.( lihat RFC 854 dan 855 untuk spesifikasi telnet lebih lanjut)c. Computer mail. Digunakan untuk menerapkan sistem elektronik mail. (lihat RFC 821 dan 822)
d. Network File System (NFS). Pelayanan akses file-file jarak jauh yg memungkinkan klien-klien untuk mengakses file-file pada komputer jaringan jarak jauh walaupun file tersebut disimpan secara lokal. (lihat RFC 1001 dan 1002 untuk keterangan lebih lanjut)
e. remote execution. Memungkinkan pengguna komputer untuk menjalankan suatu program didalam komputer yg berbeda. Biasanya berguna jika pengguna menggunakan komputer yg terbatas, sedangkan ia memerlukan sumber yg banyak dalam suatu system komputer. Ada beberapa jenis remote execution, ada yg berupa perintah-perintah dasar saja, yaitu yg dapat dijalankan dalam system komputer yg sama dan ada pula yg menggunakan "prosedure remote call system", yg memungkinkan program untuk memanggil subroutine yg akan dijalankan di system komputer yg berbeda. (sebagai contoh dalam Berkeley UNIX ada perintah "rsh" dan "rexec")f. name servers. Nama database alamat yg digunakan pada internet (lihat RFC 822 dan 823 yg menjelaskan mengenai penggunaan protokol name server yg bertujuan untuk menentukan nama host di internet.)
************************************************************************
RFC (Request For Comments) adalah merupakan standar yg digunakan dalam internet, meskipun ada juga isinya yg merupakan bahan diskusi ataupun omong kosong belaka. Diterbitkan oleh IAB (Internet Activities Board) yg merupakan komite independen para peneliti dan profesional yg mengerti teknis, kondisi dan evolusi sistem internet. Sebuah surat yg mengikuti nomor RFC menunjukan status RFC:
S: standard, standar resmi bagi internet DS: Draft standard, protokol tahap akhir sebelum disetujui sebagai standar PS: Proposed Standard, protokol pertimbangan untuk standar masa depan.
I: Informational, berisikan bahan-bahan diskusi yg sifatnya informasi
E: Experimental, protokol dalam tahap percobaan tetapi bukan pada jalur standar.
H: Historic, protokol-protokol yg telah digantikan atau tidak lagi dipertimbankan utk standarisasi.
************************************************************************
5. Bagaimanakah bentuk arsitektur dari TCP/IP itu ?
---------------------------------------------------
Dikarenakan TCP/IP adalah serangkaian protokol di mana setiap protokol melakukan sebagian dari keseluruhan tugas komunikasi jaringan, maka tentulah implementasinya tak lepas dari arsitektur jaringan itu sendiri. Arsitektur rangkaian protokol TCP/IP mendifinisikan berbagai cara agar TCP/IP dapat saling menyesuaikan.
Karena TCP/IP merupakan salah satu lapisan protokol OSI * (Open System Interconnections), berarti bahwa hierarki TCP/IP merujuk kepada 7 lapisan OSI tersebut. Berikut adalah model referensi OSI 7 lapisan, yg mana setiap lapisan menyediakan tipe khusus pelayanan jaringan:
Peer process
|Application layer |<-----------------> | Application layer |
|Presentation layer |<-----------------> | Presentation layer|
|Session layer |<-----------------> | Session layer |
|Transport layer |<-----------------> | Transport layer |
|Network layer |<-----------------> | Network layer |
|Data link layer |<-----------------> | Data link layer |
|Physical layer |<-----------------> | Physical layer |
Tiga lapisan teratas biasa dikenal sebagai "upper lever protocol" sedangkan empat lapisan terbawah dikenal sebagai "lower level protocol". Tiap lapisan berdiri sendiri tetapi fungsi dari masing-masing lapisan bergantung dari keberhasilan operasi layer sebelumnya. Sebuah lapisan pengirim hanya perlu berhubungan dengan lapisan yang sama di penerima (jadi misalnya lapisan data link penerima hanya berhubungan dengan data link pengirim) selain dengan satu layer di atas atau dibawahnya (misalnya lapisan network berhubungan dengan lapisan transport diatasnya atau dengan lapisan data link dibawahnya).
Model dengan menggunakan lapisan ini merupakan sebuah konsep yg penting karena suatu fungsi yg rumit yg berkaitan dengan komunikasi dapat dipecahkan menjadi sejumlah unit yg lebih kecil. Tiap lapisan bertugas memberikan layanan tertentu pada lapisan diatasnya dan juga melindungi lapisan diatasnya dari rincian cara pemberian layanan tersebut. Tiap lapisan harus transparan sehingga modifikasi yg dilakukan atasnya tidak akan menyebabkan perubahan pada lapisan yang lain. Lapisan menjalankan perannya dalam pengalihan data dengan mengikuti peraturan yang berlaku untuknya dan hanya berkomunikasi dengan lapisan yang setingkat. Akibatnya sebuah layer pada satu sistem tertentu hanya akan berhubungan dengan lapisan yang sama dari sistem yang lain. Proses ini dikenal sebagai "Peer process". Dalam keadaan sebenarnya tidak ada data yang langsung dialihkan antar lapisan yang sama dari dua sistem yang berbeda ini. Lapisan atas akan memberikan data dan kendali ke lapisan dibawahnya sampai lapisan yang terendah dicapai. Antara dua lapisan yang berdekatan terdapat "interface" (antarmuka). Interface ini mendifinisikan operasi dan layanan yang diberikan olehnya ke lapisan lebih atas. Tiap lapisan harus melaksanakan sekumpulan fungsi khusus yang dipahami dengan sempurna. Himpunan lapisan dan protokol dikenal sebagai "arsitektur jaringan".
Pengendalian komunikasi dalam bentuk lapisan menambah overhead karena tiap lapisan berkomunikasi dengan lawannya melalui "header". Walaupun rumit tetapi fungsi tiap lapisan dapat dibuat dalam bentuk modul sehingga kerumitan dapat ditanggulangi dengan mudah. Disini kita tidak akan membahas model OSI secara mendalam secara keseluruhannya, karena protokol TCP/IP tidak mengikuti benar model referensi OSI tersebut. Walaupun demikian, TCP/IP model akan terlihat seperti ini :
Sekarang mari kita bahas keempat lapisan tersebut.
a. Network Access Lapisan ini hanya menggambarkan bagaimana data dikodekan menjadi sinyal- sinyal dan karakteristik antarmuka tambahan media.
b. Internet layer/ network layer Untuk mengirimkan pesan pada suatu internetwork (suatu jaringan yang mengandung beberapa segmen jaringan), tiap jaringan harus secara unik diidentifikasi oleh alamat jaringan. Ketika jaringan menerima suatu pesan dari lapisan yang lebih atas, lapisan network akan menambahkan header pada pesan yang termasuk alamat asal dan tujuan jaringan. Kombinasi dari data dan lapisan network disebut "paket". Informasi alamat jaringan digunakan untuk mengirimkan pesan ke jaringan yang benar, setelah pesan tersebut sampai pada jaringan yg benar, lapisan data link dapat menggunakan alamat node untuk mengirimkan pesan ke node tertentu.
meneruskan paket ke jaringan yang benar disebut "routing" dan peralatan yang meneruskan paket adalah "routers". Suatu antar jaringan mempunyai dua tipe node :
- "End nodes", menyediakan pelayanan kepada pemakai. End nodes menggunakan lapisan network utk menambah informasi alamat jaringan kepada paket, tetapi tidak melakukan routing. End nodes kadang-kadang disebut "end system" (istilah OSI) atau "host" (istilah TCP/IP)- Router memasukan mekanisme khusus untuk melakukan routing. Karena routing merupakan tugas yg kompleks, router biasanya merupakan peralatan tersendiri yg tidak menyediakan pelayanan kepada pengguna akhir. Router kadang-kadang disebut "intermediate system" (istilah OSI) atau "gateway" (istilah TCP/IP).
Selain itu juga lapisan ini bertanggung jawab untuk pengiriman data melalui antar jaringan. Protokol lapisan intenet yang utama adalah internet protokol, IP (RFC 791, lihat juga RFC 919, 922,950). IP menggunakan protokol-protokol lain untuk tugas-tugas khusus internet. ICMP(dibahas nanti) digunakan untuk mengirimkan pesan-pesan ke lapisan host ke host. Adapun fungsi IP :
1. Pengalamatan
2. Fragmentasi datagram pada antar jaringan
3. Pengiriman datagram pada antar jaringan
c. Transport layer /host to host
Salah satu tanggung jawab lapisan transport adalah membagi pesan-pesan menjadi fragment- fragment yang cocok dengan pembatasan ukuran yg dibentuk oleh jaringan. Pada sisi penerima, lapisan transport menggabungkan kembali fragment untuk mengembalikan pesan aslinya, sehingga dapat diketahui bahwa lapisan transport memerlukan proses khusus pada satu komputer ke proses yg bersesuaian pada komputer tujuan. Hal ini dikenal sebagai Service Access Point (SAP) ID kepada setiap paket (berlaku pada model OSI, istilah TCP/IP untuk SAP ini disebut port *).
Mengenali pesan-pesan dari beberapa proses sedemikian rupa sehingga pesan tersebut dikirimkan melalui media jaringan yg sama disebut multiplexing. Prosedur mengembalikan pesan dan mengarahkannya pada proses yg benar disebut demultiplexing. Tanggung javab lapisan transport yg paling berat dalam hal pengiriman pesan adalah mendeteksi kesalahan dalam pengiriman data tersebut. Ada dua kategori umum deteksi kesalahan dapat dilakukan oleh lapisan transport :
a. Reliable delivery
Berarti kesalahan tidak dapat terjadi, tetapi kesalahan akan dideteksi jika terjadi. Pemulihan kesalahan dilakukan dengan jalan memberitahukan lapisan atas bahwa kesalahan telah terjadi dan meminta pengirimna kembali paket yg kesalahannya terdeteksi.
b. Unreliable delivery
Bukan berarti kesalahan mungkin terjadi, tetapi menunjukkan bahwa lapisan transport tidak memeriksa kesalahan tersebut. Karena pemeriksaan kesalahan memerlukan waktu dan mengurangi penampilan jaringan. Biasanya kategori ini digunakan jika setiap paket mengandung pesan yg lengkap, sedangkan reliable delivery, jika mengandung banyak paket. Unreliable delivery, sering disebut datagram delivery dan paket- paket bebas yg dikerimkan dengan cara ini sering disebut datagram. Karena proses lapisan atas (application layer) memiliki kebutuhan yg bervariasi, terdapat dua protokol lapisan transport /host to host, TCP dan UDP. TCP adalah protokol yg handal. Protokol ini berusaha secara seksama untuk mengirimkan data ke tujuan, memeriksa kesalahan, mengirimkan data ulang bila diperlukan dan mengirimkan error ke lapisan ats hanya bila TCP tidak berhasil mengadakan komunikasi (dibahas nanti).
Tetapi perlu dicatat bahwa kehandalan TCP tercapai dengan mengorbankan bandwidth jaringan yg besar. UDP (User Datagram Protocol) disisi lain adalah protokol yg tidak handal. Protokol ini hanya semampunya saja mengirimkan data. UDP tidak akan berusaha untuk mengembalikan datagram yg hilang dan proses pada lapisan atas harus bertanggung jawab untuk mendeteksi data yg hilang atau rusak dan mengirimkan ulang data tersebut bila dibutuhkan.
c. Application layer
Lapisan inilah biasa disebut lapisan akhir (front end) atau bisa disebut user program. Lapisan inilah yg menjadi alasan keberadaan lapisan sebelumnya. Lapisan sebelumnya hanya bertugas mengirimkan pesan yg ditujukan utk lapisan ini. Di lapisan ini dapat ditemukan program yg menyediakan pelayanan jaringan, seperti mail server (email program), file transfer server (FTP program), remote terminal.
******************************************************************************
Token Ring merupakan teknologi LAN data link yg didefinisikan oleh IEEE 802.4 dimana sistem dihubungkan satu sama lain dengan menggunakan segmen kabel twisted-pair point-to-point untuk membentuk suatu struktur ring. Sebuah sistem diijinkan untuk mengirim hanya bila sistem tersebut memiliki token (data unit khsusus yg digunakan bersama-sama) yg akan dilewatkan dari satu sistem ke sistem lain sekitar ring.
===============================================================================
komputer port adalah tempat adalah tempat dimana informasi masuk dan keluar. Di PC contohnya monitor sebagai keluaran informasi, keyboard dan mouse sebagai masukan informasi. Tetapi dalam istilah internet, port berbentuk virtual (software) bukan berbentuk fisik seperti RS232 serial port (utk koneksi modem).
************************************************************************
6. Bagaimana TCP dan IP bekerja ?
Seperti yg telah dikemukakan diatas TCP/IP hanyalah merupakan suatu lapisan protokol (penghubung) antara satu komputer dg yg lainnya dalam network, meskipun ke dua komputer tersebut memiliki OS yg berbeda. Untuk mengerti lebih jauh marilah kita tinjau pengiriman sebuah email.Dalam pengiriman email ada beberapa prinsip dasar yg harus dilakukan. Pertama, mencakup hal-hal umum berupa siapa yg mengirim email, siapa yg menerima email tersebut serta isi dari email tersebut. Kedua, bagaimana cara agar email tersebut sampai pada tujuannya.Dari konsep ini kita dapat mengetahui bahwa pengirim email memerlukan "perantara" yg memungkinkan emailnya sampai ke tujuan (seperti layaknya pak pos). Dan ini adalah tugas dari TCP/IP. Antara TCP dan IP ada pembagian tugas masing-masing.
TCP merupakan connection-oriented, yg berarti bahwa kedua komputer yg ikut serta dalam pertukaran data harus melakukan hubungan terlebih dulu sebelum pertukaran data ( dalam hal ini email) berlangsung. Selain itu TCP juga bertanggung jawab untuk menyakinkan bahwa email tersebut sampai ke tujuan, memeriksa kesalahan dan mengirimkan error ke lapisan atas hanya bila TCP tidak berhasil melakukan hubungan (hal inilah yg membuat TCP sukar untuk dikelabuhi). Jika isi email tersebut terlalu besar untuk satu datagram * , TCP akan membaginya kedalam beberapa datagram. IP bertanggung jawab setelah hubungan berlangsung, tugasnya adalah untuk meroute data packet . didalam network. IP hanya bertugas sebagai kurir dari TCP dalam penyampaian datagram dan "tidak bertanggung jawab" jika data tersebut tidak sampai dengan utuh (hal ini disebabkan IP tidak memiliki informasi mengenai isi data yg dikirimkan) maka IP akan mengirimkan pesan kesalahan ICMP*. Jika hal ini terjadi maka IP hanya akan memberikan pesan kesalahan (error message) kembali ke sumber data. Karena IP "hanya" mengirimkan data "tanpa" mengetahui mana data yg akan disusun berikutnya menyebabkan IP mudah untuk dimodifikasi daerah "sumber dan tujuan" datagram. Hal inilah penyebab banyak paket hilang sebelum sampai kembali ke sumber awalnya. (jelas ! sumber dan tujuannya sudah dimodifikasi)
Kalimat Datagram dan paket sering dipertukarkan penggunaanya. Secara teknis, datagram adalah kalimat yg digunakan jika kita hendak menggambarkan TCP/IP. Datagram adalah unit dari data, yg tercakup dalam protokol.
************************************************************************
ICPM adalah kependekan dari Internet Control Message Protocol yg bertugas memberikan pesan dalam IP. Berikut adalah beberapa pesan potensial sering timbul (lengkapnya lihat RFC 792):
a. Destination unreachable, terjadi jika host,jaringan,port atau protokol tertentu tidak dapat dijangkau.
b. Time exceded, dimana datagram tidak bisa dikirim karena time to live habis.
c. Parameter problem, terjadi kesalahan parameter dan letak oktert dimana kesalahan terdeteksi.
d. Source quench, terjadi karena router/host tujuan membuang datagram karena batasan ruang buffer atau karena datagram tidak dapat diproses.e. Redirect, pesan ini memberi saran kepada host asal datagram mengenai router yang lebih tepat untuk menerima datagram tsb.
f. Echo request dan echo reply message, pesan ini saling mempertukarkan data antara host.
Selain RFC 792 ada juga RFC 1256 yg isinya berupa ICMP router discovery message dan merupakan perluasan dari ICMP, terutama membahas mengenai kemampuan bagi host untuk menempatkan rute ke gateway.
************************************************************************
7. Bagaimanakah bentuk format header protokol UDP,TCP,IP ?
1. UDP
UDP memberikan alternatif transport untuk proses yg tidak membutuhkan pengiriman yg handal. Seperti yg telah dibahas sebelumnya, UDP merupakan protokol yg tidak handal, karena tidak menjamin pengiriman data atau perlindungan duplikasi. UDP tidak mengurus masalah penerimaan aliran data dan pembuatan segmen yg sesuai untuk IP.Akibatnya, UDP adalah protokol sederhana yg berjalan dengan kemampuan jauh dibawah TCP. Header UDP tidak mengandung banyak informasi, berikut bentuk headernya :
Source port, adalah port asal dimana system mengirimkan datagram. Destination port, adalah port tujuan pada host penerima. Length, berisikan panjang datagram dan termasuk data. Checksum, bersifat optional yg berfungsi utk meyakinkan bahwa data tidak akan mengalami rusak (korup)
2. TCP
------
Seperti yg telah dibahas sebelumnya, TCP merupakan protokol yg handal dan bertanggung jawab untuk mengirimkan aliran data ke tujuannya secara handal dan berurutan. Untuk me- mastikan diterimanya data, TCP menggunakan nomor urutan segmen dan acknowlegement (jawaban). Misalkan anda ingin mengirim file berbentuk seperti berikut :
-------------------------------------------------------------
TCP kemudian akan memecah pesan itu menjadi beberapa datagram (untuk melakukan hal ini, TCP tidak mengetahui berapa besar datagram yg bisa ditampung jaringan. Biasanya, TCP akan memberitahukan besarnya datagram yg bisa dibuat, kemudian mengambil nilai yg terkecil darinya, untuk memudahkan).
---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
TCP kemudian akan meletakan header di depan setiap datagram tersebut. Header ini biasanya terdiri dari 20 oktet, tetapi yg terpenting adalah oktet ini berisikan sumber dan tujuan nomor port (port number) dan nomor urut (sequence number). Nomor port digunakan untuk menjaga data dari banyaknya data yg lalu lalang. Misalkan ada 3 orang yg mengirim file. TCP anda akan mengalokasikan nomor port 1000, 1001, dan 1002 untuk transfer file. Ketika datagram dikirim, nomor port ini menjadi sumber port (source port) number untuk masing-masing jenis transfer. Yg perlu diperhatikan yaitu bahwa TCP perlu mengetahui juga port yg dapat digunakan oleh tujuan (dilakukan diawal hubungan). Port ini diletakan pada daerah tujuan port (destination port). Tentu saja jika ada datagram yg kembali, maka source dan destination portnya akan terbalik, dan sejak itu port anda menjadi destination port dan port tujuan menjadi source port.
Setiap datagram mempunyai nomor urut (sequence number) masing-masing yg berguna agar datagram tersebut dapat tersusun pada urutan yg benar dan agar tidak ada datagram yg hilang. TCP tidak memberi nomor datagram, tetapi pada oktetnya. Jadi jika ada 500 oktet data dalam setiap datagram, datagram yg pertama mungkin akan bernomor urut 0, kedua 500, ketiga 1000, selanjutnya 1500 dan eterusnya. Kemudian semua susunan oktet didalam datagram akan diperiksa keadaannya benar atau salah, dan biasa disebut dg checksum. Hasilnya kemudian diletakan ke header TCP. Yg perlu diperhatikan ialah bahwa checksum ini dilakukan di kedua komputer yg melakukan hubungan. Jika nilai keberadaan susunan oktet antara satu checksum dg checksum yg lain tidak sama, maka sesuatu yg tidak diinginkan akan terjadi pada datagram tersebut, yaitu gagalnya koneksi (lihat bahasan sebelumnya). Jadi inilah bentuk datagram tersebut:
Jika kita misalkan TCP header sebagai T, maka seluruh file akan berbentuk sebagai berikut :
T---- T---- T---- T---- T---- T---- T---- T---- T---- T---- T----
Ada beberapa bagian dari header yg belum kita bahas. Biasanya bagian header ini terlibat sewaktu hubungan berlangsung.
- Seperti 'acknowledgement number' misalnya, yg bertugas untuk menunggu jawaban apakah datagram yg dikirim sudah sampai atau belum. Jika tidak ada jawaban (acknowledgement) dalam batas waktu tertentu, maka data akan dikirim lagi. - Window berfungsi untuk mengontrol berapa banyak data yg bisa singgah dalam satu waktu. Jika Window sudah terisi, ia akan segera langsung mengirim data tersebut dan tidak akan menunggu data yg terlambat, karena akan menyebabkan hubungan menjadi lambat.- Urgent pointer menunjukan nomor urutan oktet menyusul data yg mendesak. Urgent pointer adalah bilangan positif berisi posisi dari nomor urutan pada segmen. Reserved selalu berisi nol. Dicadangkan untuk penggunaan mendatang.- Control bit (disamping kanan reserved, baca dari atas ke bawah). Ada enam kontrol bit :
a. URG, Saat di set 1 ruang urgent pointer memiliki makna, set 0 diabaikan.
b. ACK saat di set ruang acknowledgement number memiliki arti.
c. PSH, memulai fungsi push.
d. RST, memaksa hubungan di reset.
e. SYN, melakukan sinkronisasi nomor urutan untuk hubungan. Bila diset maka hubungan di buka.
f. FIN, hubungan tidak ada lagi.
3. IP
-----
TCP akan mengirim setiap datagram ke IP dan meminta IP untuk mengirimkannya ke tujuan (tentu saja dg cara mengirimkan IP alamat tujuan). Inilah tugas IP sebenarnya. IP tidak peduli apa isi dari datagram, atau isi dari TCP header. Tugas IP sangat sederhana, yaitu hanya mengantarkan datagram tersebut sampai tujuan (lihat bahasan sebelumnya). Jika IP melewati suatu gateway, maka ia kemudian akan menambahkan header miliknya. Hal yg penting dari header ini adalah source address dan Destination address, protocol number dan checksum. source address adalah alamat asal datagram. Destination address adalah alamat tujuan datagram (ini penting agar gateway mengetahui ke mana datagram akan pergi). Protocol number meminta IP tujuan untuk mengirim datagram ke TCP. Karena meskipun jalannya IP menggunakan TCP, tetapi ada juga protokol tertentu yg dapat menggunakan IP, jadi kita harus memastikan IP menggunakan protokol apa untuk mengirim datagram tersebut. Akhirnya, checksum akan meminta IP tujuan untuk meyakinkan bahwa header tidak mengalami kerusakan. Yang perlu dicatat yaitu bahwa TCP dan IP menggunakan checksum yang berbeda. Berikut inilah tampilan header IP :
Jika kita misalkan IP header sebagai I, maka file sekarang akan berbentuk :
IT---- IT---- IT---- IT----- IT----- IT----- IT----- IT----
Selanjutnya berikut ringkasan mengenai bagian header yg belum dibahas :
a. Total length, merupakan panjang keseluruhan datagram dalam oktet, termasuk header dan data IP.
b. Identification, digunakan untuk membantu proses penggabungan kembali pecahan-pecahan dari sebuah datagram.
c. Flag,berisi tiga kontrol flag.
- bit 0, dicadangkan, harus 0.
- Bit 1, tidak boleh pecah.
- Bit 2, masih ada fragment lagi.
d. Fragment offset, menunjukan posisi fragment di dalam datagram.
e. Time to live, menunjukan batas waktu maksimal bagi sebuah datagram
untuk berada pada jaringan.f. Option, lihat RFC 791.