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.
Beberapa peran dan fungsi transport layer antara lain :
- 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.
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.
- Source Port Number : Port number pada device yang menginisiasi koneksi TCP. Biasanya bernilai random diatas 1023.
- Destination Port Number : Port number yang mengidentifikasikan protokol layer atas / aplikasi yang berjalan pada device tujuan.
- Sequence Number : Nomor urut masing-masing segmen.
- Acknowledgment (ACK) : Nomor octet (byte) selanjutnya yang ditunggu oleh penerima.
- 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
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-less berarti 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.
0 komentar:
Posting Komentar