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

SQL Bagi Pemula

1 tahun yang lalu saya pernah belajar tentang SQL Server 2005 untuk keperluan mengkoneksi database ke program yang saya bangun dgn VB.NET 2005
Pada saat itu saya dituntut harus bisa mengkoneksi data-data karyawan dan customer pada aplikasi restoran
Access adalah contoh kecil aplikasi database yg daya tampungnya tidak sebesar SQL
Begitu juga SQL tidak menampung data sebesar data yang bisa ditampung ORACLE
namun penggunaan ORACLE terlalu besar jika diaplikasikan pada perusahaan kecil dan menengah,maka dari itu SQL adalah software aplikasi database yg tepat digunakan untuk perusahaan yang kecil dan menengah dan lebih dari itu saat ini sql telah digunakan di banyak perusahaan diseluruh dunia













Dan ini adalah pdf-pdf yg membuat anda-anda sekalian mengerti sedikit tentang sql,semoga cukup berguna
1. MENGENAL MICROSOFT SQL SERVER 2000
2. MEMBUAT DATABASE DENGAN MICROSOFT SQL SERVER 2000
3. MENGENAL DAN MEMBUAT TABEL
4. DIAGRAM DATABASE
5. MENGENAL QUERY ANALYZER
6. MENGENAL INDEKS SQL SERVER 2000
7. MENGENAL VIEW
8. MENGENAL PROSEDUR
9. MENGENAL TRIGGER
10. MENGENAL REPLIKASI
11. MENGENAL DATA WAREHOUSING DAN OLAP
12. MENGENAL DATA TRANSFORMATION SERVICES
13. BACKUP DAN RESTORE DATA
14. MENENTUKAN DIREKTORI DAN KEAMANAN DATABASE
15. PEMAKAIAN SQL SERVER 2000 DENGAN MICROSOFT ACCESS

file-file Pdf nya bisa diunduh disini




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