Beranda > TCP-IP 24 Hours > Transport Layer

Transport Layer

Berkenalan dengan Transport Layer

Pada ulasan tentang Internet Layer dan Subnetting, kita mengenal banyak protokol yang sangat effektif dalam menyediakan keperluan informasi addressing dan routing sehingga data bisa sampai ke tujuan dengan sempurna. Addressing dan routing hanyalah satu bagian dari perjalanan data didalam network. Para developer membutuhkan layer yang lain diatas Internet Layer yang bisa menyediakan fitur-fitur yang dibutuhkan yang tidak terdapat pada Internet Layer. Secara spesifik, para developer TCP/IP menginginkan transport layer untuk menyediakan hal-hal berikut :

  • Sebuah interface untuk network applications : dengan kata lain, menyediakan cara agar aplikasi bisa mengakses network. Desainer ingin bisa mengarahkan data tidak hanya pada komputer tujuan saja, tapi juga pada aplikasi spesifik pada komputer tujuan.
  • Mekanisme multiplexing/demultiplexing. Multiplexing, dalam hal ini, berarti menerima data dari aplikasi-aplikasi dan mesin yang berbeda dan mengarahkan data-data tersebut pada satu aplikasi tertentu yang berjalan pada komputer tujuan. Dengan kata lain, transport layer harus mampu mendukung beberapa aplikasi network secara simultan dan mengatur alur data kepada Internet Layer. Pada komputer penerima, transport layer harus mampu menerima data dari Internet Layer dan mengarahkan data-data tersebut pada beberapa aplikasi yang berbeda. Fitur yang dikenal sebagai demultiplexing ini, memungkinkan sebuah komputer untuk men-support jalannya beberapa aplikasi network secara simultan, seperti web browser, email client, dan file-sharing. Aspek lain dari multiplexing/demultiplexing adalah satu aplikasi tunggal dapat me-maintain koneksi-koneksi dengan lebih dari satu komputer lain secara simultan.
  • Error checking, flow control, dan verification.

Karenanya, Transport layer, menyediakan dua jalur bagi aplikasi network untuk mengakses network, masing-masing dilengkapi dengan fitur-fitur interfacing dan multiplexing/demultiplexing yang dibutuhkan untuk mendukung aplikasi network, namun keduanya memiliki pendekatan jaminan kualitas yang sangat berbeda:

  • Transport Control Protocol (TCP): TCP menyediakan fitur error control dan flow control yang diperluas untuk memastikan data terkirim dengan sempurna. TCP termasuk connection-oriented protocol.
  • User Datagram Protocol (UDP): UDP menyediakan fitur error checking yang sangat remeh dan di desain untuk situasi dimana fitur-fitur tambahan pada TCP tidak diperlukan. UDP termasuk connectionless protocol.

Konsep Transport Layer

Beberapa konsep penting transport layer antara lain :

  • Connection-oriented dan connectionless protocols
  • Ports dan sockets
  • Multiplexing

Connection-Oriented dan Connectionless Protocols

  • Protokol connection-oriented membangun dan me-maintain koneksi antar komputer yang sedang berkomunikasi dan memonitor status koneksi tersebut setelah proses transmisi data. Dengan kata lain, untuk setiap paket data yang dikirimkan kedalam network harus ada acknowledgment yang diterima, dan mesin pengirim merekam status informasi untuk memastikan setiap paket diterima tanpa ada error, mengulang proses transmisi jika diperlukan. Pada akhir proses transmisi, mesin pengirim dan penerima memutuskan koneksi secara formal.
  • Protokol connectionless mengirimkan datagram ke mesin tujuan dengan jalur searah dan tidak memberikan notifikasi pada mesin tujuan sebelum mengirimkan data. Mesin tujuan menerima data dan tidak memberikan konfirmasi pada pengirim tentang status data yang diterimanya.

Ports  dan  Sockets

Transport layer berfungsi sebagai interface antara network applications dengan network dan juga menyediakan metode untuk mengarahkan data-data yang diterima dari network kepada aplikasi-aplikasi tertentu secara spesifik. Dalam sistem TCP/IP, aplikasi-aplikasi bisa mengalamatkan data kepada salah satu modul protokol TCP atau UDP menggunakan nomor port. Port adalah internal address yang berfungsi sebagai jalur kecil dari aplikasi menuju transport layer dan sebaliknya. Misalnya, sebuah klien biasanya melakukan koneksi dengan aplikasi FTP pada server melalui TCP port 21.

port-number
Dengan memperhatikan lebih teliti, metode transport layer untuk pengalamatan data-data dari network pada aplikasi spesifik menunjukkan bahwa data-data TCP dan UDP sebenarnya dialamatkan kepada apa yang dikenal sebagai socket. Socket adalah sebuah address yang dibentuk dari gabungan IP address dan angka port. Misalnya socket 111.121.131.141.21 menunjukkan port 21 pada komputer dengan IP address 111.121.131.141.

socket

Contoh berikut menunjukkan bagaimana komputer mengakses aplikasi pada mesin tujuan melewatu socket:

  1. Komputer A menginisiasi koneksi dengan aplikasi pada komputer B melalui sebuah well-known port. Well-known port adalah nomor port yang sudah di assign pada aplikasi tertentu oleh ICANN dan menjadi standard. Well-known port tersebut digabungkan dengan IP address menjadi socket tujuan untuk komputer A. request yang dilakukan oleh komputer A juga mencantumkan data yang menunjukkan alamat socket yang bisa digunakan oleh komputer B untuk menjawab request komputer A.
  2. Komputer B menerima request dari komputer A melalui well-known port dan memberikan respond yang ditujukan pada socket komputer A. Socket ini menjadi address tujuan untuk data yang dikirimkan dari aplikasi komputer B untuk aplikasi kokmputer A.

Multiplexing/Demultiplexing

Sistem pengalamatan socket ini memungkinkan TCP dan UDP menjalankan tugas penting yang lain: multiplexing and demultiplexing. Sudah disebutkan sebelumnya, multiplexing adalah membundel input dari beberapa sumber menjadi satu output tunggal, sedangkan demultiplexing adalah menerima input dari satu sumber dan mengirimkannya pada beberapa output.

multiplex-demultiplex

Multiplexing/demultiplexing memungkinkan level bawah TCP/IP stack untuk memproses data tanpa memperhatikan aplikasi yang mana yang menginisiasi data tersebut. Semua yang berhubungan dengan aplikasi diselesaikan pada transport layer, dan data ditransfer dari dan ke internet layer sebagai satu entitas tunggal.

socket-application

Memahami TCP dan UDP

TCP: Connection-Oriented Transport Protocol

TCP mempunyai beberapa fitur penting lain yang perlu diperhatikan :

  • Stream-oriented processing: TCP memproses data dalam bentuk stream. Dengan kata lain, TCP dapat menerima data dalam bentuk 1 byte sebagai ganti block data yang belum diformat. TCP memformat data menjadi segment-segment yang akan diserahkan pada Internet layer.
  • Resequencing: Menyusun kembali data-data yang datang secara acak sesuai dengan urutan aslinya.
  • Flow control: fitur flow control ini memastikan data yang ditransmisikan tidak membanjiri mesin penerima melebihi kemampuannya menerima data dalam satu waktu.
  • Precedence and security: Banyak software yang mengimplementasikan TCP, namun sedikit yang menyediakan fitur ini.
  • Graceful close: TCP selalu menutup koneksi nya secara formal sebagaimana saat membentuk koneksi.

Pembahasan tentang TCP ini juga menunjukkan bahwa sebuah protokol lebih dari sekedar format data; ia adalah keseluruhan sistem proses interaksi dan desain prosedur untuk mencapai tujuan yang diinginkan.

Point penting lain yang perlu kita ketahui adalah, router tidak berhubungan dengan informasi-informasi pada transport layer. Router Cuma menyerahkan data dari transport layer dalam bentuk IP datagram. Informasi Kontrol dan verifikasi  yang di encode dalam segment TCP ditujukan semata-mata untuk software TCP pada mesin tujuan. Hal ini mempercepat routing internetwork karena router tidak ikut berpartisipasi pada proses-proses TCP.

router-and-tcp

Format Data TCP Data

Format TCP header seperti yang ditunjukkan oleh gambar dibawah ini.

tcp-data-format

Koneksi TCP

TCP mendukung dua tipe status open :

  • Passive open: Proses aplikasi (server) tertentu memberitahukan TCP bahwa aplikasi tersebut sudah siap menerima datangnya rekues koneksi melalui TCP port. Karena itu, jalur dari TCP menuju aplikasi dibuka sebagai antisipasi datangnya rekues koneksi.
  • Active open: Sebuah aplikasi (client) merekues TCP untuk menginisiasi koneksi dengan komputer lain yang berada pada status passive open.

Klien adalah komputer yang melakukan rekues atau menerima servis dari komputer lain dalam network.

Server adalah komputer yang menawarkan servis pada komputer lain dalam network.

Menjalin Koneksi

Agar acknowledgement bisa dijalankan, mesin-mesin harus saling mensinkronkan nomor urut (sequence number) mereka terlebih dahulu. Proses sinkronisasi inilah yang dikenal sebagai three-way handshake. Tiga langkah dalam three-way handshake seperti berikut:

  1. Komputer A mengirim segment data dengan
    SYN = 1; ACK = 0
    Sequence Number = X , dimana X adalah initial sequence number (ISN) komputer A
  2. Komputer B menerima segment dari komputer A dan mengembalikan segment dengan
    SYN=1;ACK=1
    Sequence number = Y, dimana Y adalah ISN dari komputer B
    Acknowledgment number = M+1, dimana M adalah nilai sequence number yang terakhir diterima dari komputer A.
  3. Komputer A mengirimkan segment pada komputer B yang berupa acknowledge atas ISN dari komputer B.
    SYN = 0; ACK=1
    Sequence number = sequence number selanjutnya (M+1)
    acknowledgment number = N +1, dimana N adalah nilai sequence number terakhir yang diterima dari komputer B.

Setelah three-way handshake, koneksi terjalin, dan modul-modul TCP mengirim dan menerima data menggunakan sequence dan acknowledgment.

TCP Flow Control

Field window pada TCP header berfungsi untuk mekanisme flow control koneksi. Tujuan dari field window tersebut adalah memastikan komputer pengirim tidak mengirim data terlalu banyak dan terlalu cepat yang bisa menyebabkan hilangnya data pada komputer penerima karena tidak terproses. Metode flow control yang digunakan TCP ini biasa disebut sliding window.

Closing a Connection

Saat tiba memutuskan koneksi, komputer yang menginginkan pemutusan koneksi, komputer A, menempatkan segment pada antrian dengan variable FIN di isi dengan angkat 1. Aplikasi kemudian memasuki status fin-wait. Dalam status fin-wait, software TCP komputer A tetap menerima segment dan memproses segment yang sudah berada pada antrian, tetapi tidak ada tambahan data yang diterima dari aplikasi. Ketika komputer B menerima segment FIN, ia akan memberikan acknowledgment, mengirimkan segment yang tersisa, dan membertahukan aplikasi lokal bahwa segment FIN telah diterima. Komputer B kemudian mengirimkan segment FIN ke komputer A, komputer A memberikan acknowledgment, dan koneksi dihentikan..

UDP: Connectionless Transport Protocol

UDP jauh lebih sederhana dibandingkan dengan TCP, UDP tidak menyediakan fungsi-fungsi seperti yang disebutkan diatas. Namun, ada beberapa hal yang perlu diperhatikan tentang UDP ini.

Pertama, walaupun UDP dikatakan tidak punya kemampuan error-checking, faktanya, UDP mampu melakukan error-checking sederhana. Jadi akan lebih benar jika menyebut UDP sebagai protokol yang memiliki fungsi error-checking yang terbatas.

Kedua, UDP tidak menawarkan resequencing (pengurutan kembali) data seperti pada TCP.

Kemudian, UDP tidak melakukan transmisi ulang jika ada data yang korup atau hilang, tidak mengurutkan datagram yang diterima, tidak mengeliminasi duplikasi datagram, tidak memberikan acknowledgmnet atas segment yang diterima, juga tidak menjalin dan memutus koneksi. UDP pada dasarnya adalah mekanisme yang dibuat untuk aplikasi yang ingin mentransfer data tanpa kelebihan-kelebihan yang ditawarkan TCP.

udp-header

Karena UDP header yang sebenarnya tidak menyertakan IP address sumber dan tujuan, maka mungkin saja, datagram disampaikan pada komputer yang tidak dituju. Bagian data yang digunakan untuk kalkulasi checksum adalah sebuah string yang diextract dari IP header yang dikenal sebagai pseudo-heder. Pseudo-header inilah yang menyediakan informasi IP address tujuan sehingga komputer penerima bisa menentukan apakah datagram UDP tersebut salah kirim atau tidak.

Firewalls

Firewall adalah sistem yang melindungi jaringan lokal dari serangan-serangan dari user-user tidak berkepentingan yang berusaha mengakses LAN dari internet. Firewalls melaksanakan beberapa fungsi. Namun, fitur dasar dari firewall bersinggungan dengan pembahasan kita diatas.

Fitur tersebut adalah kemampuan firewall untuk mem-block akses pada port-port TCP dan UDP tertentu. Kata firewall kadang-kadang digunakan sebagai sebuah usaha untuk menutup akses pada port.

  1. Belum ada komentar.
  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: