Professional Documents
Culture Documents
Hendrawan
hend@telecom.ee.itb.ac.id
1
Orientasi
• Transport layer protocol adalah protokol end-to-end
• Hanya diimplementasikan pada host
2
Transport Protocols
3
Transport Protocol pada Internet
• Internet men-support dua transport protocol
4
UDP – User Datagram Protocol
5
UDP – User Datagram Protocol
6
Format UDP
7
Port Number
• UDP (dan TCP) menggunakan port number utk identifikasi aplikasi
• Address global unik pd transport layer (utk UDP dan TCP) adalah
suatu tuple <IP address, port number>
• Ada 65.535 UDP port per host
8
TCP - Transmission Control Protocol
9
Topik-Topik TCP
10
Apakah Flow/Congestion/Error Control?
11
Overview
12
Connection-Oriented Reliable Byte Stream
13
Connection-Oriented Reliable Byte Stream
14
Connection-Oriented Reliable Byte Stream
15
Transmission Control Protocol (TCP)
16
TCP Streams
Application Application
segments
Transmitter Receiver
Send buffer Receive buffer
ACKs
17
TCP Header Overhead
Data
20 bytes of TCP
TCP header Header
20 bytes of IP
IP header Header
18
Format TCP
• Segment TCP memp. header 20 byte dg byte data 0
19
TCP Segment Header
Options
20
Field-Field Header
21
Field-Field Header
• Flags
– URG flag digunakan untuk menginformasikan TCP user
tujuan data urgent datang
– PSH (push) flag mengindikasikan source user meminta
segmentasi pada akhir penyerahan data saat ini dan
transmisi semua segment pada buffer pengirim (sampai
dengan termasuk segment saat ini)
• juga memaksa receiving TCP process untuk secara
segera meneruskan segment saat ini dan juga yang
lainnya pada buffer penerima ke user tujuan
22
Field-Field Header fields
• Checksum
– diaplikasikan ke seluruh segment dan ‘pseudoheader’
• pseudoheader mencakup beberapa field dari IP header:
source dan destination IP address, protocol, segment
length
• memberikan proteksi terhadap kesalahan pengiriman
oleh IP--mis., corruption of destination IP address
0 8 16 31
Source IP address
Destination IP address
00000000 Protocol=6 TCP segment length
23
State TCP dalam Normal Connection
Lifetime
24
Sequence numbers
Host A Host B
SYN, Seq_
no = n
A c k_ no = n +1
no = n , ACK,
_
SYN, Seq
Seq_no
= n+1,
ACK, A
ck_no
= n+1
25
TCP Flow Control
26
Sliding Window Flow Control
27
Sliding Window: “window closes”
28
Sliding Window: “window opens”
30
Managemen Window dlm TCP
• Interpreatsi adalah:
– Saya siap menerima data baru dg
SeqNo = AckNo, AckNo+1, ….., AckNo+win-1
• Penerima dp meng-Ack data tanpa membuka window
• Penerima dp mengubah ukuran window tanpa meng-Ack data
31
Contoh : Sliding Window
32
Contoh Mekanisme Alokasi Credit TCP
33
Error Control pd TCP
34
Retransmission Timer TCP
• Retransmission Timer
– Setting Retransmission Timer sangat penting utk efisiensi
– Timeout terlalu kecil Menyebabkan retransmisi yg tdk
perlu
– Timeout terlalu besar Menunggu cukup lama sebelum
suatu retransmisi dp dilakukan
– Masalahnya delay dlm jaringan tidak tetap
– Karenanya Retransmission Timer harus adaptive
35
Pengukuran Round Trip Time
36
Adaptive Retransmission Timer
• End-to-end round-trip delay pada internet lebih variable daripada round-
trip delay pada link point-to-point
– timeout tidak efektif
• jika terlalu besar, memberikan respons lambat terhadap
kehilangan segment
• jika terlalu kecil, menyebabkan retransmisi yang tidak perlu
– hampir semua TCP mengimplementasikan adaptive timeout
didasarkan pada estimasi round-trip delay saat ini
• Kesulitan dalam estimasi round-trip delay
– receiving TCP process tidak perlu mengeluarkan ack dg segera
– jika segment telah mengalami retransmisi, tidak bisa tahu apakah ack
merujuk ke transmisi original atau retransmisi
– kondisi trafik internet dapat berubah secara tiba-tiba
37
Pengukuran Round Trip Time
• Retransmission timer di-set ke harga Retransmission Timeout (RTO)
• RTO dikalkulasi berdasarkan pengukuran RTT
• Pengukuran RTT di-’haluskan’ dg estimator srtt dan rttvar :
38
Algoritma Karn
Algoritma Karn:
Jangan update srtt pd segment yg telah
diretransmisi.
Tiap saat TCP retransmit, diset
39
TCP Congestion Control
• Tujuan: membatasi jumlah total data memasuki internet ke
jumlah yang dapat dimuat
• Self-clocking mechanism
– setelah perioda startup, segment rate pengirim akan
matches dengan arrival rate dari acks
• sesuai dengan minimum link rate koneksi atau rate
dimana tujuan dapat memproses byte-byte yang tiba,
mana yang lebih kecil
– network bottlenecks dapat disebabkan karena
batasan fisik pada bandwidth atau disebakan karena
kongesti
40
TCP
Segment
Pacing
41
TCP Congestion Control
• dimana
– flow control window diberikan oleh penerima
– congestion window di-adjust berdasarkan feedback dari
jaringan
42
TCP Congestion Control
43
Slow Start
• Harga initial:
• cwnd = MSS bytes (= 1 segment)
• Setiap sebuah Ack diterima, congestion window
dinaikan dg MSS byte
• cwnd = cwnd + MSS
– Jika Ack meng-acknowledge 2 segment, cwnd tetap dinaikan
hanya dg MSS byte (= 1 segment)
– Bahkan jika Ack meng-acknowledge suatu segment lebih kecil
drpd MSS byte, cwnd dinaikan dg MSS byte
• Apakah slow start naik secara perlahan? Not really
Kenyataannya kenaikan cwnd dp eksponensial
44
Contoh Slow Start
45
Updating CWND
• New connection
– start with cwnd = 1
– each time ack received, cwnd = cwnd + 1
– cwnd grows exponentially until pipe is filled
• Response to timeout (congestion) congestion avoidance
– set slow-start threshold: ssthresh = cwnd / 2
– set cwnd = 1 and follow slow-start until cwnd = ssthresh
• cwnd is increased by 1 for every ack received
– once cwnd reaches ssthresh, increase cwnd by 1 for each
round-trip time
• results in linear growth
46
Slow Start
&
Congestion
Avoidance
47
Contoh Slow Start/ Congestion Avoidance
48
Ilustrasi Slow Start & Congestion Avoidance
49
Respons thd Congestion
50
Fast Retransmit
• Fast retransmit
– jika segment diterima tidak berurutan, penerima segera
mengirimkan ack untuk segment terakhir yang urut yang
diterima
– jika pengirim menerima 3 duplikasi acks untuk segment yang
sama, segera retransmisi tanpa menunggu timeout.
51
Fast Retransmits
segment 1
cwnd = 1
ACK 2
cwnd = 2 segment 2
segment 3
ACK 3
ACK 4
cwnd = 4 segment 4
segment 5
segment 6
segment 7
ACK 4
3 duplicate
ACK 4
ACKs
ACK 4
52
Fast Recovery:
Setelah Fast Retransmit
• ssthresh = cwnd / 2
• cwnd = ssthresh
– drpd setting cwnd ke 1, turunkan cwnd setengahnya
(multiplicative decrease)
• utk tiap dup ack tiba
– dupack++
– MaxWindow = min(cwnd + dupack, AdvWin)
– indikasi paket meninggalkan jaringan, shg mugkin bisa utk
mengirim lebih lagi
• menerima ack utk data batu (diluar initial dup ack)
– dupack = 0
– exit fast recovery
• Tetapi jika RTO expires (terjadi) lakukan cwnd = 1
53
Fast Retransmit dan Fast Recovery
cwnd
AI/MD
Slow Start
Fast retransmit
Time