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

Post on 30-Apr-2019

224 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

top related