Tentang Transport Layer
Transport Layer memindahkan data
antar-aplikasi antar-device dalam network. Transport Layer menyiapkan
Application Data untuk dikirim kedalam network dan menyiapkan Network Data
untuk di proses oleh aplikasi.
- Komunikasi
end-to-end logik : Setiap host bisa saja
memiliki lebih dari 1 aplikasi yang memanfaatkan network untuk proses
komunikasi. Setiap aplikasi tersebut bisa saja berkomunikasi dengan satu
atau lebih aplikasi pada host lain.
- Segmenting :
Layer transport bertanggung jawab untuk melakukan segmentasi data yang
diterima dari layer atas (layer application). Setiap pecahan data hasil
segmentasi akan di enkapsulasi dengan header yang berisi
informasi-informasi layer transport seperti, nomor urut (sequence) dan
juga port address pengirim dan penerima.
- Reassembling
data: Pada sisi penerima, transport layer
memanfaatkan informasi yang ada pada header layer transport untuk menyusun
ulang segmen-segmen data menjadi data yang utuh sebelum diberikan
ke layer atas (application).
- Identifikasi
aplikasi (port-addresssing) : Agar data dapat disampaikan pada
aplikasi yang tepat, layer transport harus mengidentifikasi target
aplikasi yang dituju. Layer transport. Untuk itu layer transport
memberikan identifier/addressing untuk aplikasi (service/layanan) yang
disebut dengan port number.
- Multiplexing/Demultiplexing:
Hal ini memungkinkan layer bawah (network) untuk memproses data tanpa memperhatikan aplikasi mana yang menginisiasi data tersebut, dan hanya focus pada mesin (host) yang dituju.
- Reliable
Delivery : Banyak hal yang bisa
menyebabkan data korup atau hilang dalam proses. pengiriman, transport
layer dapat memastikan penerima mendapatkan data tersebut dengan mengirim
ulang data yang hilang.
- Sequencing :
Banyaknya rute untuk mencapai tujuan dapat menyebabkan data diterima tidak
berurutan, transport layer dapat menyusun ulang data secara benar dengan
adanya penomoran dan sequencing.
- Flow
control : Memori komputer atau
bandwidth network tidak tak terbatas, transport layer bisa meminta
aplikasi pengirim untuk mengurangi kecepatan pengiriman data. Hal ini
dapat mengurangi hilangnya data dan proses pengiriman ulang.
Beberapa aplikasi memerlukan requirement pengiriman data yang berbeda,
karena itulah dibuat beberapa protokol transport yang berbeda untuk memenuhi requirement
tersebut. 2 protokol paling terkenal adalah TCP dan UDP.
Port Addressing
Ada beberapa jenis port addressing :
- Well-known:
- Antara 0 – 1023
- Disediakan untuk aplikasi dan servis
yang sudah umum digunakan
- Contoh : http (80), ftp (21), smtp
(25) dan lain-lain
- Registered:
- Antara 1024 – 49151
- Disediakan untuk aplikasi/servis
yang tidak umum
- Bisa juga digunakan secara dinamis
sebagai source port di sisi client.
- Dynamic:
- Antara 49152 – 65535
- Digunakan secara dinamis sebagai
source port di sisi client.
Beberapa aplikasi, seperti DNS dan SNMP,
memanfaatkan kedua protokol TCP dan UDP. Assignment port-address yang
lebih lengkap bisa dicek di link berikut
Gunakan perintah netstat untuk mengetahui koneksi yang
terjadi pada host
C:\Users\akhmadkun>netstat
-na
TCP
Reliability TCP dijalankan dengan
membangun komunikasi connection-oriented sebelum transaksi data. Selain itu
juga dengan acknowledgement, pengirim tahu bahwa data telah sampai
ke tujuan jika menerima ack dari penerima. Jika tidak ada ack yang
diterima maka pengirim berasumsi bahwa data yang dikirim tadi tidak sampai ke
tujuan dan akan melakukan transmisi ulang data tersebut. Namun ack ini
menyebabkan traffic network berlebih untuk pengirimannya dan juga
retransmisinya.
Field-field yang ada pada header TCP seperti pada gambar dibawah ini
dapat memungkinkan terjadinya komunikasi reliable dan communication-oriented.
1.
Source Port Number :
Port number pada device yang menginisiasi koneksi TCP. Biasanya bernilai random
diatas 1023.
2.
Destination Port Number :
Port number yang mengidentifikasikan protokol layer atas / aplikasi yang
berjalan pada device tujuan.
3.
Sequence Number :
Nomor urut masing-masing segmen.
4.
Acknowledgment (ACK)
: Nomor octet (byte) selanjutnya yang ditunggu oleh penerima.
5.
Window Size :
Menunjukkan berapa banyak byte yang bisa dikirimkan sebelum menunggu datangnya
acknowledgment dari penerima.
Komunikasi klien-server
Pada komunikasi TCP, setiap servis akan di assign (default/manual) dengan
sebuah port number. Dua atau lebih aplikasi servis tidak boleh menggunakan port
yang sama. Ketika sebuah port telah di assign ke sebuah aplikasi server, maka
port itu disebut open pada sisi server.
Salah satu metode untuk meningkatkan security adalah dengan membatasi
akses hanya pada port yang digunakan oleh servis saja.
TCP 3-way Handshake
Sebelum transaksi data via TCP, 2 host harus menjalin
koneksi. Client menginisiasi komunikasi dengan server. Hal ini untuk
menunjukkan bahwa :
- Ada
tidaknya mesin tujuan
- Apakah
mesin tujuan menjalankan aplikasi yang direquest pada port tujuan.
- Client
ingin menjalin komunikasi pada port tujuan.
TCP Termination
Dalam komunikasi TCP, hal ini digunakan untuk menutup
koneksi yang telah terjalin sebelumnya. Dibutuhkan two-way handshake untuk
menutup satu arah session. Karenanya untuk menutup 2 arah session
(client-server dan server client) dibutuhkan 4 kali pertukaran data.
TCP Acknowledgement
Salah satu fitur protokol TCP adalah memastikan sampainya data ke
penerima. Layanan TCP pada sisi penerima akan mengirimkan paket acknowledgement kepada
pengirim data untuk memberi tahu bahwa data telah diterima.
Sequence number
dan acknowledgement number digunakan bersamaan untuk
mengkonfirmasi diterimanya sebuah segmen data. Sequence number
mengindikasikan jumlah byte relatif yang telah dikirim dalam satu session.
Sedangkan acknowledgement number mengindikasikan byte
berikutnya yang ditunggu oleh penerima, disebut juga expectational
acknowledgement.
TCP Flow Control
Flow control membantu
reliability proses transmisi dengan cara menyesuaikan kecepatan efektif untuk
aliran data antara 2 mesin. Ketika pengirim (source) diberi tahu bahwa
sejumlah data telah diterima, maka source dapat meningkatkan jumlah data untuk
session tersebut.
Window size adalah
salah satu field header TCP yang menentukan jumlah data yang dapat dikirimkan
oleh source tanpa harus menunggu adanya acknowledgement dari penerima. TCP akan
memilih kecepatan transmisi data semaksimal mungkin yang dapat di dukung oleh
network dan device dan proses retransmisi bisa dikurangi seminimal mungkin.
Salah satu metode flow control adalah dengan menggunakan dynamic
window size. Caranya adalah dengan mengubah-ubah nilai window size pada
header TCP.
Host penerima mengirim nilai window size yang bisa ditampung dalam satu
session kepada pengirim. Ketika penerima ingin menurunkan kecepatan komunikasi
karena terbatasnya buffer memori atau hal lain, maka dia akan mengirim nilai
window size yang lebih kecil.
Setelah beberapa kali transmisi tanpa ada data yang hilang atau buffer
memori berlebih, penerima perlahan menaikkan nilai window size sehingga
mengurangi jumlah acknowledgement yang harus dikirimkan. Nilai window size akan
terus naik sampai ada data yang hilang atau alasan lain.
UDP
Protokol UDP menyediakan fungsi-fungsi layer transport namun jauh lebih
sederhana daripada TCP. Protokol UDP memiliki overhead yang lebih rendah
daripada TCP karena bersifat connectionless dan tidak
menyediakan fitur-fitur retransmission, sequencing, dan
mekanisme flow control. Connection-lessberarti UDP
tidak menjalin koneksi sebelum mengirim data seperti yang dilakukan TCP, yang
berarti data akan langsung dikirimkan begitu saja
Namun hal ini bukan berarti UDP benar-benar “unreliable”, hanya saja
fungsi-fungsi yang disediakan TCP tidak ada di UDP, dan jika diperlukan harus
di implementasikan pada layer lain.
PDU untuk protokol UDP biasa disebut datagram, meskipun kadang disebut
juga dengan segment. Beberapa datagram (atau segmen untuk TCP)
kadang mengambil jalur yang berbeda untuk sampai ke tujuan. Hal itu dapat
menyebabkan datagram-datagram yang diterima dalam kondisi tidak berurutan.
Berbeda dengan komunikasi TCP, tidak ada proses sequencing pada komunikasi UDP.
datagram yang hilang tidak akan dikirim ulang.
Biasanya aplikasi yang menggunakan protokol UDP adalah yang memerlukan
delay serendah mungkin dan bisa mentoleransi hilangnya beberapa data.
Contoh aplikasi : DNS, SNMP, DHCP, RIP, TFTP, online games, VOIP.
Karena fitur yang disediakan tidak sekompleks TCP, header UDP jadi jauh
lebih sederhana daripada TCP. Overhead juga lebih kecil karena header yang
digunakan untuk enkapsulasi jadi lebih kecil.
Komunikasi klien-server
Seperti halnya aplikasi TCP, aplikasi UDP juga
mendapat alokasi Well Known dan Registered port number. Komunikasi
client/server diinisiasi oleh aplikasi client. Client akan memilih nomor port
dynamic secara random dan menggunakannya sebagai source port.
Karena connection-less, maka segera
setelah data siap dikirimkan, UDP akan membentuk datagram dan menyerahkannya ke
layer network.
Komentar
Posting Komentar