transport layer - cah4ngon.files.wordpress.com · tugas utama layer ini adalah memecah sebuah data...
TRANSCRIPT
Transport Layer
Tujuan
• Mengirimkan data dari Aplication Layer pada suatu kesatuan ke kesatuan lainnya pada layer yang sama
• Menghubungkan antara lapis protokol Aplication layer dan network layer
Tugas
• Menyusun paket • Membuat koneksi• Pengalamatan• Menyediakan keandalan
Packetizing
Tugas utama layer ini adalah memecah sebuahdata yang berukuran besar menjadi beberapabuah fragmen kecil, agar bisa ditransmisikandengan mudah.
Alasan sebuah data dipecah-pecah menjadifragmen-fragmen adalah :– Batasan besaran jumlah paket kiriman dari protocol.– Jika suatu data dikirim dalam jumlah besar, maka
kemungkinan yang terjadi adalah data tersebutnantinya akan memonopoli media transmisi sampaidata tadi selesai di transmisikan atau dikirim.
Creating A connection
• Orientasi Koneksi dimulai dengan membuat koneksi virtual atau membuat session antara sender dengan receiver
• Connectionless tidak ada koneksi virtual atau session antara sender dengan receiver. Biasa digunakan dalam sistem dimana paket tunggal perlu dikirimkan tanpa harus membuat koneksi dan koneksi
Addressing
• Local Adressing diperlukan alamat client dan server
• Port Number alamat nomor dibatasi dalam 16 bit dalam range 0 s/d 65535 (=2^16).
Addresing Pada Transport LayerAddresing Pada Transport Layer• Transport address berbeda dengan Network Address.• Metode yang digunakan adalah TSAP• 3 jenis identitas :names,addresses dan routes.
- nama dari sumberdaya mana yang dicari,alamat menunjukkan dimana dan rute menujukkan bagaimana mendapatkannya.
• Alamat mengidentifikasi :- Jenis layanan atau aplikasi.- Alamat dari layanan harus diketahui.
• Port Komunikasi:- Layanan :terkait dengan 1 port.- Port Access : Asyncrhonous atau synchronous.
Contoh : 192.169.100.12:80
Reliability
• Layanan tidak handal dirancang dengan tujuan memberikan kecepatan transfer yang maksimal. Muncul masalah : kerusakan paket, hilang, paket diterima tidak sesuai urutan, paket terduplikasi. Contoh TFTP, UDP
• Layanan Handal memberikan jaminan keandalan dalam kendali kerusakan, loss control, order control, duplicate control. Namun lebih lambat dalam pengiriman dan lebih komplek. Contoh : TCP
Damage control
• Error detection• ACK• Time out
Transport Layer ProtocolTransport Layer ProtocolPada Transport layer terdapat dua buah protocol :1. TCP (Transmision Control Protocol)
- Connection Oriented artinya sebelum melakukanpertukaran data, dua pengguna TCP harus melakukanhubungan terlebih dahulu.
- Reliable artinya TCP menerapkan proses deteksikesalahan paket dan transmisi.
- Bit Stream Service paket dikirimkan dan sampai ke tujuansecara berurutan.
2. UDP (User Datagram Protocol)Merupakan protocol yang tidak reliable dan connectionless bagiaplikasi-aplikasi yang tidak memerlukan pengurutan TCP ataupengendalian aliran dan bagi aplikasi-aplikasi yang akan melayanidirinya sendiri. UDP juga digunakan secara luas pada query danclient/server jenis request reply, dimana pengiriman cepat lebihdiutamakan daripada pengiriman yang akurat.(pengiriman percakapanatau video).
IP Adressing
• IP Add must uniq & universally• Mendefinisikan koneksi pada sebuah host atau
sebiah router ke jaringan internet. • IPv4 32 bit = 2^23 = 4.294.967.296• Dinotasikan dengan cara biner , dotted decimal128 = 10000000011 = 000010113 = 0000001131 = 00011111
13
UDP: User Datagram Protocol [RFC 768]
• “best effort” service, segmen UDP dapat megalami:– lost– Dikirimkan tidak terurut
• connectionless:– Tidak ada handshaking
antara pengirim dan penerima UDP
– Setiap segmen UDP ditangani sendiri-sendiri tanpa tergantung pada segmen yang lain
Mengapa UDP?• Tidak perlu pembentukan
koneksi (mengurangi delay)• simple: tidak ada informasi
state baik di pengirim maupun penerima
• Header : pendek• Tidak ada kendali kongesti
14
UDP
• Biasa digunakan untuk aplikasi streaming multimedia– loss tolerant– rate sensitive
• Penggunaan UDP yang lain untuk:– DNS– SNMP
• Bila ingin melakukan reliable transfer menggunakan UDP: tambahkan reliability di layer aplikasi– application-specific error
recover!
source port # dest port #
32 bits
Applicationdata (message)
UDP segment format
length checksumLength, in
bytes of UDPsegment,including
header
15
TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581
• full duplex data:– Aliran data dua arah pada
koneksi yang sama– MSS: maximum segment
size
• connection-oriented:– Ada handshaking sebelum
pertukaran data
• flow controlled:– sender will not overwhelm
receiver
• point-to-point:– Satu pengirim utk satu
penerima
• reliable, in-order byte stream:
• pipelined:– Kendali kongesti dan flow
control TCP menetapkan ukuran window
• Ada buffer di pengirim dan penerima
socketdoor
TCPsend buffer
TCPreceive buffer
socketdoor
segment
applicationwrites data
applicationreads data
16
Struktur segmen TCP
source port # dest port #
32 bits
applicationdata (variable length)
sequence numberacknowledgement number
rcvr window sizeptr urgent datachecksum
FSRPAUheadlen
notused
Options (variable length)
URG: urgent data (generally not used)
ACK: ACK #valid
PSH: push data now(generally not used)
RST, SYN, FIN:connection estab(setup, teardown
commands)
# bytes rcvr willingto accept
countingby bytes of data(not segments!)
Internetchecksum
(as in UDP)
17
TCP : Nomor urut segmen dan ACKsNomor urut segmen:
– Nomor byte pertama pada suatu aliran segmen data
ACKs:– Nomor urut byte
berikutnya yang diharapkan dari sisi yg lain
– cumulative ACKQ: bagaimana receiver
menangani segmen yg tak terurut– Tidak ada dlm spesifikasi
TCP (tergantung pengembang program)
Host A Host B
Usertypes‘C’
host ACKsreceipt of echoed‘C’
host ACKsreceipt of‘C’, echoesback ‘C’
timesimple telnet scenario
18
TCP ACK generation [RFC 1122, RFC 2581]
Event
in-order segment arrival, no gaps,everything else already ACKed
in-order segment arrival, no gaps,one delayed ACK pending
out-of-order segment arrivalhigher-than-expect seq. #gap detected
arrival of segment that partially or completely fills gap
TCP Receiver action
delayed ACK. Wait up to 500msfor next segment. If no next segment,send ACK
immediately send singlecumulative ACK
send duplicate ACK, indicating seq. #of next expected byte
immediate ACK if segment startsat lower end of gap
19
TCP: retransmission scenarios
Host A
losstim
eout
time lost ACK scenario
Host B
X
Host ASeq=92 tim
eout
time premature timeout,cumulative ACKs
Host BSeq=100 tim
eout
20
TCP Flow Controlreceiver: secara eksplisit
memberi tahu pengirim ruang buffer yang masih kosong– RcvWindow field
dalam segmen TCPsender: menjaga agar jumlah
data yang dikirimkan (yg belum di-ACK) lebih kecil drpd RcvWindow terakhir yg diterima
Mencegah pengirim membanjiri penerima dengan data (shg buffer tidak overflow)
flow control
receiver buffering
RcvBuffer = Ukuran buffer TCP Receive
RcvWindow = sisa Buffer space
21
TCP Round Trip Time dan Timeout
Q: cara menetapkan harga TCP timeout?
• Lebih lama dari RTT– RTT bervariasi
• Bila terlalu pendek: premature timeout– Bisa ada retransmisi yg
tdk diperlukan• Bila terlalu lama: reaksi
thdp segmen yg hilang akan lambat
Q: Cara mengestimasi RTT?• SampleRTT: waktu sejak segmen
dikirimkan sampai ACK diterima– ignore retransmissions,
cumulatively ACKed segments• SampleRTT akan bervariasi,
sehingga bila ingin diperoleh hasil yang lebih tepat :– Lakukan beberapa kali pengukuran
22
EstimatedRTT = (1-x)*EstimatedRTT + x*SampleRTT
Harga tipikal x = 0,1
Menetapkan timeout• EstimtedRTT ditambah “safety margin”• large variation in EstimatedRTT -> larger safety margin
Timeout = EstimatedRTT + 4*Deviation
Deviation = (1-x)*Deviation +x*|SampleRTT-EstimatedRTT|
23
TCP Congestion Control• Pengendalian end-to-end (tdk ada bantuan dari jaringan)• Laju transmisi dibatasi oleh congestion window size, Congwin, dari
suatu segmen
Segmen w, masing-masing dengan byte MSS yg dikirimkan dalam satu RTT:
throughput = w * MSSRTT Bytes/sec
Congwin
24
TCP congestion control:
• Ada dua fasa– slow start– congestion avoidance
• Variable yang penting:– Congwin– threshold:
mendefinisikan threshold antara fasa slow start dengan fasa kendali kongesti
• “probing” untuk bandwidth yg dpt digunakan:– ideally: mengirim secepat
mungkin (Congwinsebesar mungkin) tanpa loss
– Naikkan Congwin sampai terjadi loss (congestion)
– Bila terjadi loss: turunkanCongwin, lalu mulai lagi melakukan probing (increasing)
25
TCP Slowstart
• Kenaikan exponential (per RTT) dalam ukuran window (tidak begitu lambat !)
• loss event: timeout (Tahoe TCP) dan/atau bila ada ACK duplikasi (Reno TCP)
initialize: Congwin = 1for (each segment ACKed)
Congwin++until (loss event OR
CongWin > threshold)
Slowstart algorithmHost ARTT
Host B
time
26
TCP Congestion Avoidance
/* slowstart is over */ /* Congwin > threshold */Until (loss event) {every w segments ACKed:
Congwin++}
threshold = Congwin/2Congwin = 1perform slowstart
Congestion avoidance
1
1: TCP Reno skips slowstart (fast recovery) after three duplicate ACKs