Transport Layer

Arsitektur Jaringan terdiri atas 7 layer (lapisan) yang mendefinisikan fungsi

Untuk tiap layernya dapat terdiri atas sejumlah protocol yang berbeda, masing-masing menyediakan pelayanan yang sesuai dengan fungsi layer tersebut.




Salah satu  layer dari arsitektur jaringan adalah transport layer(layer ke 4).Lapisan ini berfungsi untuk menangani interaksi antara proses-proses pada node sumber dan node tujuan atau dengan kata lain  layer ini dapat menjamin penerima mendapatkan data seperti yang dikirimkan.

Layanan :
Mirip dengan network layer:
  • Connection Oriented
  • Connectionless
Tetapi:
  • Kode transport dijalankan di mesin user, sedang network layer di router (yang dioperasikan oleh penyedia layanan koneksi) 
  • Transport layer menutupikekurangan di network layer (packet loss, router crash) 
  • Dilakukan pembedaan OSI layer
    • Layer 1-4: Transport Service Provider
    • Layer di atas 4: Transport Service User
     
  • Pembedaan ini sangat mempengaruhi rancangan layer dan menempatkan transport layer di posisi penting, karena membentuk pembatas utama antara provider dan user dari layanan transmisi
    data yang reliable

Transport Service Primitives


  • Server mengeksekusi LISTEN
  • Ketika client ingin berkomunikasi, mengeksekusi CONNECT – mengirim CON REQ TPDU
  • Jika server berada dalam LISTEN, unblock server dan kirim balik CON ACC TPDU
  • Perukaran data dengan SEND dan RECEIVE
  • Ketika koneksi sudah tidak dibutuhkan, eksekusi DISCONNECT – kirim DISC TPDU

TPDU
State Diagram Koneksi




  • Italic: Transisi ( karena kedatangan paket)
  • Solid line: Status client
  • Dashed Line: Status server

Berkeley Socket
Digunakan pada Berkeley UNIX untuk TCP Internet programming

Element:

Elemen Transport Protocol :

• Addressing
• Connection Establishment
• Connection Release
• Flow Control dan Buffering
• Multiplexing
• Crash Recovery

  • Transport protocol mirip data link protocol
  •  Keduanya berurusan dengan error control,sequencing dan flow control
  •  Perbedaan utama karena berbedanya lingkungan operasi protokolnya
  • Pada data link layer, 2 router berkomunikasi langsung lewat sebuah physical layer
  • Pada transport layer, seolah-olah physical layer ini digantikan oleh subnet

Perbedaan :

  • Route: pada transport layer, diperlukan explicit addressing dari destination
  • Connection Establishment:
    • Sangat sederhana jika lewat wire
    • Pada transport layer hal ini lebih rumit
  • Ada kemungkinan tempat penyimpanan sementara di subnet (di wire tidak ada)
  • Buffering dan Flow Control berbeda:
    • Jumlah koneksi yang banyak dan bervariasi
Addressing

TSAP,NSAP dan koneksi transport

TSAP Addresses
  • Stable:
    • Setiap server mendengarkan TSAP yang dikenal
    •  Untuk layanan yang tidak pernah berubah (misal Web Server)
  • Not stable:
    • Untuk user process yang sering berkomunikasi dengan user process lain yang muncul hanya sebentar dan tidak punya TSAP address yang dikenal sebelumnya
    • Skema:
      • Initial:setiap mesin yang menawarkan layanan memiliki special process server sebagai proxy
      • Directory server: ketika sebuah layanan baru dibentuk, harus mendaftarkandirinya ke directory server yang akan memberikan nama layanan dan TSAP

Connection Establishment
  • Cukup dengan mengirimkan CONNECTION REQUEST TPDU ke destination dan menunggu CONNECTION ACCEPTED? TIDAK!
  • Problem:
    • Packet lost
    • Traffic jam (+packet delayed duplication)
  •  Solusi:
    • Gunakan throw-away transport address (dibuat saat diperlukan )
    • Connection identifier, kekurangan: informasi history sangat besar dan akan hilang jika crash
  • Solusi lain:
    • Pembatasan lifetime packet:
      •  Restricted subnet
      • Hop counter
      • Timestamp
    • Jika mesin kehilangan isi memory:
      • Clock-Based (Tomlinson):
        • Tiap host punya time-of-day clock
        • Sejumlah bit (low-order) dari clock dipakai sebagai nomor urut initial
        • Koneksi harus dibentuk sebelumnya
  • Problem: Incorrect Connection Establishment
  •  Solusi: 3-way handshake (Tomlinson)
 
Connection Release
Ada 2 style untuk melepaskan koneksi: 
  • Asimetrik:
    • Saat satu pihak menutup, koneksi terputus
    • Kasar/mendadak dan mungkin menyebabkan data loss (data belum sampai lengkap , sudah putus)
  • Simetrik:
    • Menganggap koneksi sebagai 2 koneksi searah dan harus dilepaskan secara terpisah
    • Host bisa masih menerima data setelah host tsb mengirim DISCONNECT TPDU

Situasi lain:
  • Protokol: Saya sudah selesai, anda sudah juga? Jika jawaban = Ya. Koneksi bisa diputus (?)
  • Problem:
    • Problem 2 pasukan tentara:
      •  Berapa yang diperlukan: 2,3,4 atau lebih handshake protocol?
      • Ganti disconnect dengan “serang”. Jika tidak ada yang disconnect jike belum yakin yang lain siap disconnect juga,maka tidak akan pernah disconnect
3-way protocol
  • Untuk kasus 2 pasukan, berapapun tidak akan cukup, karena tidak akan pernah yakin
  • Kasus disconnection tidak sekritis perang
  • 3-way dianggap cukup dengan tambahan timeout




4 skenario:
(a) Normal
(b) Final ACK hilang
(c) Respons hilang
(d) Respons dan DR berikutnya hilang

Flow Control dan Buffering
  • Transport vs. Datalink layer:
    •  Sama: skema sliding window atau yang lain diperlukan untuk setiap koneksi untuk menjaga transmitter yang cepat tidak overrun receiver lambat
    • Beda: sebuah router biasanyapunya line sedikit, sedang host mungkin banyak (relatif). Perbedaan ini menyebabkan tidak bisa dilakukannyapenerapan strategi buffering di datalink kepada transport layer
  • Jika network unreliable, sender harus mem-buffer semua TPDU yang dikirimkan.
  • Jika network reliable, buffer bisa di receiver saja
  • Masalah: penentuan ukuran buffer (vs. TPDU)
  

Ukuran Buffer 

Buffering
  • Pilihan optimal antara buffer sender dan buffer receiver ditentukan jenis koneksi
    • Low bandwidth, bursty (interactive terminal) ->buffer sender
    • High bandwidth, file transfer -> buffer receiver
  • Alokasi buffer di receiver bisa dilakukan secara dinamis berdasar permintaan sender dengan TPDU terpisah untuk request buffer
Flow Control
  • Walaupun masalah buffer (diasumsikan) tidak ada (unlimited buffer), masih terdapat masalah bottleneck yaitu carrying capacity dari subnet
  • Flow control pada sender harus berbasis pada kapasitas subnet
  • Belsnes mengusulkan skema flow control dengan sliding windows. Ukuran windows dinamis sesuai kapasitas subnet
 Multiplexing
  • Digunakan untuk mengoptimalkan penggunaan koneksi
  • Ada 2 macam:
    • Upward Multiplexing: sejumlah koneksi transport berbeda ke dalam sebuah koneksi network
    • Downward Multiplexing: sebuah koneksi transport mendistribusikan lalu lintas data ke sejumlah koenksi network, misal untuk meningkatkan bandwidth
 

Crash Recovery
  • Crash bisa terjadi pada host dan router.
  • Jika transport entity berada sepenuhnya dalam host, recovery dari network dan router crash bisa langsung
    • Jika network layer menyediakan layanan conectionless (datagram), kehilangan TPDU adalah hal yang biasa
    • Jika network layer menyediakan layanan connectionoriented, VC yang hilang ditangani dengan membuat VC baru dan probing ke remote transport entity manayang sudah diterima manayang belum. Yang belum akan diretransmisi
  • Masalah utama pada host (server) crash.Diinginkan jangan sampai mengganggu pekerjaan user (client), berkaitan dengan status sebelum crash.
    • Solusi naïve: Server minta host lain menanyakan ke client statusnya apakah :
      • S1: one TPDU outstanding -> retransmit recent TPDU
      • S0: no TPDU outstanding
    • Ada 2 operasi: write TPDU dan send ack yang saling terpisah yang bisa menyebabkan recovery gagal
  • Dari sisi server ada 2 kemungkinan: ACK first atau Write first
  • Dari sisi client ada 4 kemungkinan: selalu retransmit TPDU terakhir, tidak pernah retransmit, retramsnit jika status S0,retransmit jika status S1.
  • Ada 8 kombinasi tetapi ada beberapa yang menyebabkan protocol fail
  • Secara umum, recovery untuk crash di layer N hanya bisa dilakukan di layer N+1
  • Dengan syarat bahwa layer N+1 memiliki informasi yang cukup untuk melakukan recovery
  • Misal: Transport layer bisa recover crash di network jika kedua pihak yang berkomunikasi tahu di mana terjadinya crash
Transport Protocol Sederhana
  • Sebuah contoh transport layer sederhana untuk pembahasan lebih detil
  • Primitif Layanan yang dibahas adalah untuk connection-oriented
  • Mirip dengan TCP namun lebih sederhana
 Contoh Service Primitives
  • 5 primitives: CONNECT, LISTEN, DISCONNECT,SEND dan RECEIVE
  • Setiap primitive berkaitan dengan sebuah library procedure yang mengeksekusinya
    • Parameter untuk primitives dan library adalah sb:
    • Connum= LISTEN(local)
    • Connum= CONNECT(local, remote)
    • Status = SEND(connum, buffer, bytes)
    • Status = RECEIVE(connum, buffer, bytes)
    • Status = DISCONNECT(connum)
Primitives
  • LISTEN: memberitakan keinginan caller(procedure call) untuk menerima request koneksi ke local TSAP tertentu
  • CONNECT: mencoba establish transport connection antara local TSAP dan remote TSAP (di sisi seberang). Jika sukses connum > 0 menandakan identifier koneksi. Jika gagal connum < 0 menandakan sebab kegagalan. Misalremote TSAP sudah terkoneksi dengan TSAP lain.
  • SEND: mengirim isi buffer sebagai message dalam transport connection connum. Kemungkinan error/kegagalan dikembalikan dalam status, misalnya: no connection, illegal buffer address, atau negative count.
  • RECEIVE: keinginan caller menerima data.
  • DISCONNECT: teminate transport connection yang diindikasikan dengan connum. Jika berhasil status = 0. Kemungkinan error: connum tidak valid
Contoh Transport Entity
  • Menggunakan layanan connection-oriented yang reliable (dari layer network)
  • Fokus pada masalah transport yang tidak muncul di layer bawah
    • Connection establishment
    • Connection release
    • Credit management
  • Transport entity bisa merupakan bagian dari SO host, atau bisa berupa paket library yang dijalankan di dalam user address space
  • Interface ke layer network melalui procedure to_net dan from_net
  • Memiliki 6 parameter:
    • Connection identifier
    • Bit Q (control message)
    • Bit M (more data following)
    •  Packet type
    • Pointer ke data
    • Ukuran data (jumlah bye)
Contoh Transport Entity
  • Setiap koneksiakan berada di salah satu dari 7 status sbb:
    • IDLE: tidak adakoneksi
    • WAITING: sudah eksekusi CONNECT dan CALL REQUEST telah dikirim
    • QUEUED: CALL REQUEST telah tiba, belum ada LISTEN
    • ESTABLISHED: koneksi terbentuk
    •  SENDING: user menunggu untuk mengirim paket
    • RECEIVING: Sebuah RECEIVE telah dilakukan
    • DISCONNECTING: Sebuah DISCONNECT telah dilakukan lokal
  •  Perubahan status terjadi karena 3 sebab:
    • Eksekusi sebuah primitif
    • Packet datang
    • Time expires
  • Type procedure:
    • Callable by user program
    • Spontaneus triggered by external events: packet_arrival, clock
 Gambaran Grafis


UDP (User Datagram Protocol)
  • Protokol Connectionless Internet dalam transport layer
  • UDP pada dasarnya hanya IP dengan tambahan header singkat
  • UDP memungkinkan aplikasi mengirim IP datagram yang dienkapsulasi dan dikirim tanpa perlu establish conection
  •  UDP mengirim segmen-segmen data berisi header 8 byte diikuti payload 
  • Header UDP
  

  • UDP tidak melakukan flow control, error control, atau retransmisi jika menerima bad segment. Semuanya tergantung user process.
  • UDP hanya menyediakan interface ke protokol IP dengan tambahan demultiplexing banyak proses yang menggunakan port.
  • UDP useful untuk situasi client-server (short request replied by short answer)
  • Aplikasi: DNS (IP address lookup)
 RPC (Remote Procedure Call)
  • Memungkinkan program memanggil procedure yang berada di remote host(s)
  • Saat proses di M1 call procedure di M2,proses tersebut di-suspend dan eksekusi procedure dilakukan di M2
    • Informasi bisa ditransport dari caller ke callee dalam parameter dan bisa dikembalikan sebagai procedure result
    • Tidak ada message passing yang visible bagi programmer
  •  Ide: membuat sebuah RPC terlihat sebagai local
    • Dalam bentuk paling sederhana, untuk memanggil remote procedure, program client memiliki library yang disebut client stub yang mewakili server procedure di address space client
    • Server juga memiliki server stub yang membuat seolah-olah call dari client adalah local
 
  •  Problem:
    • Passing parameter tidak mungkin dilakukan karena client dan server berada di address space yang berbeda
    • Tidak ada cara menspesifikasikan ukuran array
    • Tidak selalu dapat mendeduksitype parameter (baik dari spesifikasiformal maupun dari code)
    • Penggunaan variabel global
  • Solusi:
    • Perlu dilakukan pembatasan (restriksi)
 RTP(Real Time Transport Protocol)
  • Digunakan pada aplikasi multimedia real-time:
    • Internet Radio
    • Internet Telephony
    • Music on demand
    • Videoconferencing
    • Video on demand
  • RFC 1889
  • Fungsi utama RTP adalah multiplex sejumlah data stream real-time ke dalam satu stream paket UDP
  • Stream USP bisa unicasting atau multicasting
  

(a) posisi RTP dalam protocol stack
(b) packet nesting

TCP
  • Untuk aplikasi internet umumnya diperlukan delivery yang reliable dan terurut – digunakan TCP
  • TCP dirancang spesifik untuk menyediakan byte stream yang reliable di atas internetwork yang unreliable
  • TCP dirancang untuk bisa beradaptasidengan berbagai properti internetwork dan robust terhadap bermacam failure
  • Tiap mesin yang mendukung TCP memiliki transport entity berupa:
    • Library procedure
    • User process
    • Bagian dari kernel OS
  • Entity mengelola stream TCP dan interface dengan layer IP
  • Entity menerima user data stream dari local process, memecah menjadi potongan-potongan lebih kecil dari 64KB (1460B jika menggunakan ethernet) dan mengirim masing-masing potongan lewat IP
 TCP Entity
  • Ketika paket IP berisi TCP data tiba di mesin tujuan, diberikan ke TCP entity yang kemudian merekonstruksi byte stream
  • TCP bisa berarti:
    • TCP transport entity (software)
    • TCP protocol (aturan/rules)
 Model Layanan TCP
  • Layanan TCP didapatkan sender dan receiver dengan membentuk end-point yang disebut socket
  • Tiap socket punya nomor (address) berisi IP address host dan 16-bit nomor port (lokal)
  • Port adalah nama TCP untuk TSAP
  • Koneksi harus terbentuk antara socket di mesin pengirim dan penerima
  • Socket bisa digunakan untuk multiple connection bersamaan. 2 atau lebih koneksi bisa berujung di soket yang sama
  • Koneksi diidentifikasi berdasarkan indentifier socket di kedua ujung. Tidak ada nomor VC atau identifier lain yang digunakan
  • Semua koneksi TCP adalah full-duplex dan pointto Point-to-point
  • TCP tidak mendukung Muticasting atau Broadcasting
  • Koneksi TCP adalah byte stream, bukan message stream.
    • Jika pengirim menulis 4 x 512 bite ke TCP stream, data ini bisa dideliver sebagai 4 x 512, 2 x 1024, atau sebuah 2048, atau yang lain.
    • Penerima tidak bisa mendeteksi besar unit penulisan data
 Protokol TCP
  • Setiap byte dalam koneksi TCP memiliki nomor urut 32 bit
  • TCP entity mempertukarkan data dalam bentuk segmen. Segmen TCP berisi fixed 20-byte header (+optional) diikuti data
  • 2 limit pembatasan ukuran segmen:
    • Segmen termasuk header harus cukup di IP payload (65.515 byte = 65.535 - 20)
    • Setiap network punyaMaximum Transfer Unit (MTU) dan setiap segmen harus cukup di MTU. Pada prakteknya MTU umumnya 1500 bytes (Ethernet payload)
  •  Protokol yang dipakai TCP pada dasarnya adalah sliding window
    • Ketika sender transmit segmen, timer dinyalakan
    • Ketika segmen tiba di tujuan, penerima mengirim balik segmen (dengan data jika ada) berisi juga nomor ack (sama dengan nomor urut berikutnya yang ditunggu, increment 1
    • Jika timer terlewatisebelum ack diterima, sender retransmit segmen
  

TCP Connection Establishment
  • Menggunakan 3-way handshake
  • Untuk membentuk koneksi, satu pihak akan pasif menunggu koneksi dengan LISTEN dan ACCEPT, tanpa menentukan siapapun
  • Sisi lain mengeksekusi CONNECT beserta IP address dan port yang ingin dikoneksi, max TCP segment size, dan data optional lain (misal password)
  • Primitive CONNECT mengirim segmen TCP dengan SYN=on dan ACK=off dan menunggu respon
  • Di destination, TCP entity memeriksa apakah ada proses yang sudah LISTEN ke port dimaksud.
    • Jika tidak dikirim jawaban dengan RST=on untuk menolak koneksi
    • Jika ada proses listen, proses diberi TCP segmen.Proses bisa menolak atau menerima koneksi. Jika diterima, segmen ACK dikirimkan
 
                      (a) Normal              (b) Call collision

TCP Connection Release
  • Setiap koneksisimplex dilepaskan secara independen
  • Untuk melepaskan koneksi, sembarang pihak bisa mengirim segmen TCP dengan bit FIN=1, yang berarti tidakada data lagi yang ingin dikirimkan
  • Ketika FIN di-ack, koneksi arah tersebut terputus. Data masih bisa mengalir di arah yang lain. Ketika kedua arah telah diputus, maka koneksi baru dilepaskan
  • Normalnya, 4 segmen TCP diperlukan untuk melepaskan koneksi. Satu FIN dan satu ACK untuk masing-masing arah
  • Untuk mengindari problem 2 pasukan,digunakan timer
 Manajemen Koneksi TCP



Refrensi:


Desain Rumah real estate design collection
  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

2 komentar:

Rrdewiratnasari mengatakan...

Refrensi
http://kur2003.if.itb.ac.id/file/K6_IF3291_ID.pdf

http://www.cs.ru.nl/~ths/a3/html/h6/h6.html

http://translate.google.co.id/translate?hl=id&sl=en&u=http://en.wikipedia.org/wiki/Transport_Layer&ei=m87KTOfxNoqovQPx67zlDw&sa=X&oi=translate&ct=result&resnum=1&ved=0CB8Q7gEwAA&prev=/search%3Fq%3Dtransport%2Blayer%26hl%3Did%26client%3Dfirefox-a%26hs%3DFGV%26sa%3DG%26rls%3Dorg.mozilla:en-US:official%26channel%3Ds%26prmd%3Db

Rrdewiratnasari mengatakan...

http://translate.google.co.id/translate?hl=id&sl=en&u=http://en.wikipedia.org/wiki/Transport_Layer&ei=m87KTOfxNoqovQPx67zlDw&sa=X&oi=translate&ct=result&resnum=1&ved=0CB8Q7gEwAA&prev=/search%3Fq%3Dtransport%2Blayer%26hl%3Did%26client%3Dfirefox-a%26hs%3DFGV%26sa%3DG%26rls%3Dorg.mozilla:en-US:official%26channel%3Ds%26prmd%3Db

http://kur2003.if.itb.ac.id/file/K6_IF3291_ID.pdf

http://www.cs.ru.nl/~ths/a3/html/h6/h6.html

Posting Komentar