transport layer - cah4ngon.files.wordpress.com · tugas utama layer ini adalah memecah sebuah data...

26
Transport Layer

Upload: truongduong

Post on 30-Apr-2019

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

Transport Layer

Page 2: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

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

Page 3: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

Tugas

• Menyusun paket • Membuat koneksi• Pengalamatan• Menyediakan keandalan

Page 4: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

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.

Page 5: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

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

Page 6: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

Addressing

• Local Adressing diperlukan alamat client dan server

• Port Number alamat nomor dibatasi dalam 16 bit dalam range 0 s/d 65535 (=2^16).

Page 7: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

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

Page 8: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

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

Page 9: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

Damage control

• Error detection• ACK• Time out

Page 10: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan
Page 11: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

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).

Page 12: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

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

Page 13: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

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

Page 14: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

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

Page 15: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

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

Page 16: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

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)

Page 17: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

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

Page 18: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

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

Page 19: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

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

Page 20: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

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

Page 21: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

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

Page 22: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

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|

Page 23: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

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

Page 24: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

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)

Page 25: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

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

Page 26: Transport Layer - cah4ngon.files.wordpress.com · Tugas utama layer ini adalah memecah sebuah data yang berukuran besar menjadi beberapa ... aplikasi-aplikasi yang tidak memerlukan

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