OSI Transport Layer
Secara umum, fungsi layer ini
adalah:
1)
Memungkinkan aplikasi berkomunikasi melalui
jaringan bersamaan pada suatu perangkat.
2)
Menjamin (bila dibutuhkan) reliabilitas data
yang diterima dan diterima oleh aplikasi yang tepat berurutan.
3)
Menangani mekanisme error.
Tugas Transport Layer
1)
Melakukan “tracking” komunikasi individual antar
aplikasi sumber dan tujuan.
2)
Segmentasi data.
3)
Penyusunan (reassembling) segmen menjadi data
aplikasi.
4)
Mengidentifikasikan aplikasi yang digunakan.
Tugas Transport Layer
1. “Tracking”
Setiap
host mungkin memiliki berbagai aplikasi yang memanfaatkan jaringan. Tiap
aplikasi ini akan berkomunikasi dengan aplikasi lain atau host lain. Tugas
layer 4 adalah mempertahankan berbagai jalur komunikasi diantara aplikasi ini.
2. Segmentasi dan Reassembly
Setiap
aplikasi membuat stream data untuk dikirim, data ini harus dipecah
(disegmentasi) agar bisa dikirim melalui media. (Ingat metode packet
switching). Membutuhkan enkapsulasi berupa header transport yang berisi informasi
untuk identifikasi potongan. Saat diterima, tugas layer 4 adalah menyusun ulang
potongan tersebut dan mengirimkannya ke aplikasi yang tepat.
3. Identifikasi aplikasi
Transport
layer dapat mengetahui aplikasi pengguna data yang tepat dengan cara memberikan
identifier khusus. Pada protokol TCP/IP, identifier ini disebut nomor port
(port number). Dengan bantuan layer transport, aplikasi yang memanfaatkan
jaringan tidak perlu mengetahui detail operasi jaringan, seperti : jenis host,
tipe media, jalur pengiriman dan ukuran jaringan. Layer dibawah transport juga
tidak mengetahui ada berbagai aplikasi yang mengirimkan data. Tanggung jawab
layer dibawah hanya mengirimkan data ke tujuan.
4. Conversation control
Berikut
adalah tugas tambahan pada layer 4
1)
Establishing a session
Menjamin
aplikasi siap menerima data dengan cara membuka session dan melakukan manajemen
session.
2)
Reliable delivery
Ada
banyak hal yang mempengaruhi keutuhan data dan transmisinya, layer 4
bertanggung jawab menjamin setiap potongan (segmen) mencapai tujuan dan bila
diperlukan melakukan transmisi ulang.
3)
Same order delivery
Karena
jalur yang ditempuh dapat berbeda-beda, maka layer 4 harus menjamin bahwa
segmen-segmen tersebut dapat disusun ulang dalam urutan yang tepat.
4)
Flow control
Jaringan
memiliki sumber daya terbatas (seperti memory/bandwidth), beberapa jenis protokol
layer 4 dapat mengurangi kecepatan kirim bila kondisi kelebihan beban
terdeteksi. Hal ini mengurangi kemungkinan hilangnya segmen data karena kondisi
jaringan yang penuh.
Protokol
Karena
kebutuhan aplikasi berbeda, detail kerja protokol pada layer ini bisa berbeda.
Secara umum ada dua protokol pada layer ini : TCP dan UDP.
Menjamin
Reliablitias
Untuk
menjamin reliabilitas data yang dikirim, layer 4 harus melakukan operasi
berikut:
1)
Tracking transmitted data.
2)
Acknowledging received data.
3)
Retransmitting any unacknowledged data.
Untuk melakukan manajemen
tersebut, digunakan informasi yang terdapat pada header layer 4, dan pengiriman
control data melalui jaringan. Hal ini
merupakan beban tambahan bagi bandwidth jaringan, dan tidak selalu dibutuhkan.
Perbedaan aplikasi dan
pemanfaatan data membedakan metode penjaminan reliablitas pengiriman. Ada dua
jenis utama, yaitu:
1)
Reliable – ada acknowledgement – pengiriman data
ulang – pengiriman berurut.
2)
Cepat – beban kecil – tidak perlu acknowledgment
– tidak perlu resent – pengiriman tidak berurut.
Jenis pertama cocok untuk data
sensitive yang harus lengkap seperti data transaksi, email, web dan sebagainya.
Jenis kedua cocok untuk data yang bersifat streaming seperti VoIP dan
streaming.
Protokol Layer 4
Ada 2 protokol
umum pada layer 4 yaitu:
1.
TCP (Transmission Control Protocol)
2.
UDP (User Datagram Protocol)
TCP (Transmission Control Protocol)
TCP (Transmission Control
Protocol) adalah protokol berorientasi koneksi (connection oriented protocol),
dinyatakan pada RFC 793. Menambah overhead tambahan untuk fungsionalitas.
Fungsinya
berupa:
1)
Same order delivery.
2)
Reliable delivery.
3)
Flow control.
Tiap segmen TCP berukuran 20
byte overhead pada data enkapsulasi. Aplikasi yang menggunakan adalah:
1)
Web browsers
2)
Email
3)
File transfers
Header TCP
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 number, 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
octet 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, octet pertama dalam aliran byte (byte
stream) dalam koneksi adalah ISN + 1.
|
Acknowledgement number
|
4 byte (32 bit)
|
Mengindikasikan nomor urut dari octet selanjutnya
dalam aliran byte yang diharapkan
untuk diterima oleh pengirim dari si penerima pada pengiriman
selanjutnya. Acknowledgement number sangat dipentingkan bagi segmen-segmen
TCP dengan flag ACK diser ke nilai 1.
|
Data offset
|
4 bit
|
Mengindikasikan di mana data dalam
segmen TCP dimulai. Field ini juga dapat berarti ukuran dari header TCP.
Sperti halnya field Header Length dalam header IP, field ini merupakan angka
dari word 32 bit dalam header TCP. Untuk sebuah segmen TCP terkecil (dimana
tidak ada opsi TCP tambahan), field ini diatur ke nilai 0x5, yang berarti
data dalam segmen TCP dimulai dari octet 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
(acknowledgement), 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 (headernya dan payloadnya). 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.
|
UDP (User Datagram Protocol)
UDP (User Datagram Protocol)
adalah protokol sederhana yang tidak berorientasi koneksi (connectionless
protocol), dinyatakan pada RFC 768. Keuntungannya adalah overhead yang rendah.
Tiap potongan data dari UDP disebut datagram. Dikirim dengan metode usaha
terbaik (best effort). Aplikasi yang menggunakan UDP : Domain Name System
(DNS), Video Streaming, Voice over IP (VoIP).
Header UDP
Field
|
Panjang
|
Keterangan
|
Source port
|
16 bit (2 byte)
|
Digunakan untuk
mengidentifikasikan sumber protokol lapisan aplikasi yang mengirimkan pesan
UDP yang bersangkutan. Penggunaan field ini adalah opsional, dan jika tidak
digunakan, akan diset ke angka 0. Beberapa protokol lapisan aplikasi dapat
menggunakan nilai field ini dari pesan UDP yang masuk sebagai nilai field
port tujuan (Destination Port, lihat baris selanjutnya) sebagai balasan untuk
pesan tersebut.
|
Destination Port
|
16 bit (2 byte)
|
Digunakan untuk mengidentifikasikan tujuan protokol
lapisan aplikasi yang menjadi tujuan pesan UDP yang bersangkutan. Dengan
menggunakan kombinasi antara alamat IP dengan nilai dari field ini untuk
membuat sebuah alamat yang signifikan untuk mengidentifikasikan proses yang
berjalan dalam sebuah host tertentu yang dituju oleh pesan UDP yang bersangkutan.
|
Length
|
16 bit (2 byte)
|
Digunakan untuk mengindikasikan
panjang pesan UDP (pesan UDP ditambah dengan header UDP) dalam satuan byte.
Ukuran paling kecil adalah 8 byte (ukuran header UDP, ketika tidak ada isi
pesan UDP), dan ukuran paling besar adalah 65515 bytes (65535 [216]
-20 [ukuran header protokol IP]). Panjang maksimum actual dari pesan UDP akan
disesuaikan dengan menggunakan nilai Maximum Transmission Unit (MTU) dari
saluran di mana pesan UDP dikirimkan. Field ini bersifat redundan
(terulang-ulang). Panjang pesan UDP dapat dihitung dari field Length dalam
header UDP dan field IP Header Length dalam header IP.
|
Checksum
|
16 bit (2 byte)
|
Berisi informasi pengecekan integritas dari pesan
UDP yang dikirimkan (header UDP dan pesan UDP). Penggunaan field ini adalah
opsional. Jika tidak digunakan, field ini akan bernilai 0.
|
Port Addressing
Untuk mengetahui aplikasi mana
yang menggunakan, tiap segmen atau datagram dilengkapi dengan nomor port.
Server memiliki static port number yang telah ditentukan, misalnya, port untuk
web server ialah 80. Client akan menggunakan alamat port yang dinamis acak.
Contoh, jika sebuah client
dengan IP 192.168.5.5 membuka browser dan mengakses halaman pada IP
192.168.5.100. Browser akan memilih nomor port secara dinamis (di luar port
standar), yang dipakai sebagai host tersebut. Misalnya 49152. Segmen akan dikirim
ke alamat 192.168.5.100:80. Sedangkan balasan dari server akan berupa segmen
dengan tujuan 192.168.5.5:49152.
Berikut adalah pembagian jatah
nomor port oleh IANA (Internet Assigned Numbers Authority).
1)
Well known ports (numbers 0 – 1023) – Reservasi
oleh aplikasi dan layanan umum seperti web server, email, telnet dan
sebagainya.
2)
Registered ports (numbers 1024 to 49151) – Untuk
proses user atau aplikasi, umumnya berupa aplikasi individual yang diinstall
pada host, juga dapat digunakan secara dinamis.
3)
Diynamic or private ports (numbers 49152 to
65535) – juga disebut sebagai Ephemeral ports. Umumnya digunakan secara dinamis
oleh aplikasi client.
Data
port number yang distandarisasi saat ini dapat dilihat pada http://www.iana.org/assignments/port-numbers
Contoh TCP
Contoh UDP
Contoh TCP dan UDP
Tool
Untuk
memonitor koneksi dan port yang digunakan, dapat digunakan aplikasi netstat. Dapat
diketahui protokol, alamat local, tujuan, port dan status koneksi.
Segmentasi
dan Reassembly
Membagi
data aplikasi menjadi segment atau datagram, menjamin data tersebut dikirim dalam
batasan (kemampuan) media, dan data dari aplikasi berbeda dapat dimultiplex
menggunakan media yang sama.
Pada
dasarnya UDP tidak memberikan nomor pengurutan, sehingga sebuah datagram dapat
sampai pada urutan yang berbeda-beda. Hal ini harus diantisipasi oleh aplikasi
yang menggunakan.
sumber : Cisco Fundamental 1, Joko Christian, M.Kom
Tidak ada komentar:
Posting Komentar