Segmen TCP
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)).
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 fieldSource 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.
|