Anda di halaman 1dari 27

Transport Layer

Transmission Control Protocol (TCP),


dan User Datagram Protocol (UDP)

Hendrawan
hend@telecom.ee.itb.ac.id

1
Outline
 Transport Layer
 TCP Protocol
 Karakteristik TCP
 Set up koneksi TCP
 Segmen TCP
 Sequence Numbers TCP
 Sliding Window TCP
 Timeout dan Retransmisi
 (Congestion Control and Avoidance)
 UDP Protocol
2
Transport Layer
 Untuk apa transport layer?
 Karakteristik apa yang dimilikinya?
 Pengiriman handal (reliable)
 Error control
 Flow Control

3
Review Transport Layer

4
Review Transport Layer

5
Layering: Model OSI
layer-to-layer communication
Application Application
7 7
Presentation Presentation
6 6
Session Session
5 5
Peer-layer communication
Transport Transport
4 Router Router 4
Network Network Network Network
3 3
Link Link Link Link
2 2
Physical Physical Physical Physical
1 1

6
Layering: Contoh FTP
Application
FTP Application
Presentation ASCII/Binary

Session
TCP Transport
Transport
Network IP Network
Link
Ethernet Link
Physical

Model 7-layer OSI Model 4-layer Internet


7
Karakteristik TCP
 TCP adalah connection-oriented.
 3-way handshake digunakan utk setup koneksi
 TCP menyediakan layanan stream-of-bytes
 TCP adalah handal (reliable):
 Acknowledgement indikasi pengiriman data.
 Checksums digunakan utk deteksi data terkorupsi.
 Nomor urut (sequence number) mendeteksi kehilangan, atau ketidak
urutan data.
 Data terkorupsi diretransmisikan setelah timeout.
 Data yg tdk terurut diurutkan kembali.
 (Window-based) Flow control mencegah penerima over-run.
 TCP menggunakan congestion control utk menggunakan
bersama (share) kapasitas jaringan diantara user.

8
TCP adalah Connection-Oriented

(Active) (Passive) (Active) (Passive)


Client Server Client Server
Syn Fin

Syn + Ack (Data +) Ack

Ack
Fin

Ack

Connection Setup Connection Close/Teardown


3-way handshake 2 x 2-way handshake

9
10
TCP Mendukung Layanan
“stream of bytes”

Byte 80
Byte 3
Byte 2
Byte 1
Byte 0
Byte 80
Byte 3
Byte 2
Byte 1
Byte 0

Host A

Host B
…diemulasikan menggunakan
“segments” TCP
Host A
Byte 0
Byte 1
Byte 2
Byte 3

Byte 80

Segment dikirim jika:


TCP Data 1. Segment penuh (MSS bytes),
2. Tdk penuh, tetapi times out, atau
3. Dg aplikasi “Pushed”

TCP Data
Host B
Byte 0
Byte 1
Byte 2
Byte 3

Byte 80

11
Format Segmen TCP
IP Data
TCP Data TCP Hdr IP Hdr

0 15 31
Src port Dst port

Sequence #
Src/dst port numbers
Ack Sequence # dan IP addresses secara
TCP Header Flags unik mengidentifikasi socket
HLEN RSVD
Window Size
SYN
URG

PSH
RST
ACK

FIN

4 6
dan Data + IP
Addresses Checksum Urg Pointer

(TCP Options)

TCP Data

12
Sequence Numbers
Host A
ISN (initial sequence number)

Sequence number TCP


= byte pertama TCP Data HDR
Ack sequence number
= byte berikut yg
diharapkan

TCP
TCP Data HDR
Host B

13
Initial Sequence Numbers
(Active) (Passive)
Client Server
Syn +ISNA

Syn + Ack +ISNB

Ack

Connection Setup
3-way handshake

14
TCP Sliding Window
 Berapa besar data pengirim TCP mempunyai
segment outstanding di jaringan?
 Berapa besar data sebaiknya TCP
retransmit jika terjadi suatu error? Hanya
secara selektif mengulang data yg hilang?
 Bagaimana pengirim TCP mencegah
membanjiri (over-running) buffer
penerima?

15
TCP Sliding Window
Window Size

Data ACK’d Outstanding Data OK Data not OK


Un-ack’d data to send to send yet

 Window bermakna utk pengirim/sender.


 Ukuran window saat ini diberikan/“advertised” oleh penerima
(umumnya 4k – 8k Bytes saat connection set-up).
 Retransmisi pd TCP adalah “Go Back N”

16
TCP Sliding Window
Round-trip time
Round-trip time
Window Size Window Size Window Size
???
Host A

Host B
ACK ACK ACK
(1) RTT > Window size (2) RTT = Window size

17
Contoh : Sliding Window

18
Contoh Mekanisme Alokasi Credit TCP

19
TCP: Retransmisi dan Timeout
Round-trip time (RTT) Retransmission TimeOut (RTO)

Guard
Band

Host A
Estimated RTT

Data1 Data2

ACK ACK
Host B

TCP menggunkan nilai waktu timeout utk retransmisi yg adaptif:


Kongesti RTT berubah
Perubahan pd Routing
cukup sering

20
TCP: Retransmisi dan Timeout
Memilih RTO adalah penting:
 Memilih nilai terlalu besar  akan menunggu terlalu lama utk
retransmisi suatu paket,
 Memilih nilai terlalu besar  secara tidak perlu retransmisi
paket

Algoritma original utk memilih RTO:


1. EstimatedRTTk=  EstimatedRTTk-1 + (1 - ) SampleRTT
2. RTO = 2 * EstimatedRTT
Ditentukan
secara empiris

Karakteristik dari algoritma original:


 Variance diasumsikan tetap.
 Tetapi dlm kenyataan, variance meningkat sejalan dg
peningkatan kongesti. 21
TCP: Retransmisi dan Timeout
 Akan ada suatu distribusi RTT  Antrian router meningkat jika ada trafik
tertentu (tdk diketahui) lebih, sampai menjadi tdk stabil unstable.
 mencoba estimasi RTO utk  Dg meningkatnya beban, variance delay
meminimumkan probabilitas kesalahan meningkat secara cepat.
timeout.

Average Queueing Delay


Probability

Variance
grows rapidly
with load

variance

mean RTT Load


(Amount of traffic
arriving to router)
22
TCP: Retransmisi dan Timeout

Algoritma yg lebih baru mencakup estimasi variance RTT:


Sama spt
 Difference = SampleRTT - EstimatedRTT
sblmnya
k-1 + (*Difference)
 EstimatedRTT = EstimatedRTT
k
 Deviation = Deviation + *( |Difference| - Deviation )

 RTO =  * EstimatedRTT +  * Deviation


1
4

23
TCP: Retransmisi dan Timeout
Karn’s Algorithm
Host A Host B Host A Host B

Retransmisi Retransmisi

Sampel RTT Sampel RTT


Salah Salah

Problem:
Bagaimana kita dp estimasi RTT jika paket-paket diretransmisi?
Solusi:
Pd retransmisi, jangan update estimated RTT (dan double RTO).

24
User Datagram Protocol (UDP)
Karakteristik

 UDP adalah connectionless datagram service.


 Tidak ada pembangunan koneksi: paket-paket dp muncul setiap
saat
 Paket UDP adalah self-contained.
 UDP tdk handal (unreliable):
 Tdk ada acknowledgement utk indikasi pengiriman data.
 Checksums utk header, dan hanya optional utk data.
 Tdk ada mekanisme utk deteksi kehilangan atau ketidak urutan
paket-paket.
 Tdk ada mekanisme utk retransmisi automatis.
 Tdk ada mekanisme utk flow control, dan krnnya bisa
membanjiri penerima.

25
User-Datagram Protocol (UDP)
A1 A2 B1 B2

App App App App

OS

UDP

Spt TCP, UDP


IP menggunakan nomor
port demultiplex
paket-paket
26
User-Datagram Protocol (UDP)
Format Paket

SRC port DST port


By default, hanya
utk header. checksum length

DATA

 Kenapa kita punya UDP?


 Digunakan oleh aplikasi yg tdk memerlukan pengiriman handal,
atau
 Aplikasi memp. kebutuhan khusus sendiri, spt streaming real-
time audio/video.

27

Anda mungkin juga menyukai