0% found this document useful (0 votes)
27 views24 pages

Transport Layer

The document discusses transport layer services and protocols. It describes protocols like TCP and UDP, explaining their features such as reliable vs unreliable data transmission, connection-oriented vs connectionless communication, and addressing through port numbers. It also covers TCP and UDP header formats and multiplexing of data across transport layer connections.

Uploaded by

Rian Rorres
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views24 pages

Transport Layer

The document discusses transport layer services and protocols. It describes protocols like TCP and UDP, explaining their features such as reliable vs unreliable data transmission, connection-oriented vs connectionless communication, and addressing through port numbers. It also covers TCP and UDP header formats and multiplexing of data across transport layer connections.

Uploaded by

Rian Rorres
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

Transport Layer

usz
Transport services and protocols

 Menyediakan logical application


transport
network
communication antar proses data link network
physical data link
aplikasi yang berjalan pada host network physical
data link
yang berbeda physical
network
data link
 Protokol transport berjalan di end physical network
data link
systems physical

network
 Layanan layer transport vs layer data link
physical
network :
application
 network layer: transfer data antar transport
network
data link
end systems physical

 transport layer: transfer data


antar proses
• Mengandalkan layanan layer
network
2
Transport-layer protocols

Layanan layer transport pada application


transport
Internet : network
data link network
 reliable, in-order unicast delivery physical data link
network physical
(TCP) data link
physical
 congestion network
data link
 flow control physical network
data link
physical
 connection setup
network
 unreliable (“best-effort”), data link
physical
unordered unicast atau multicast
delivery: UDP application
transport
network
 Layanan yg tidak tersedia: data link
physical
 real-time
 bandwidth guarantees
 reliable multicast

3
Multiplexing/demultiplexing
Demultiplexing: mengirimkan
segmen yang diterima ke
proses layer aplikasi yang sesuai

receiver
P3 P4
application-layer M M
data
application
segment P1 transport P2
header M
M network
application application
segment Ht M transport transport
network
Hn segment network

4
Multiplexing/demultiplexing
Multiplexing:
Mengumpulkan data dari beberapa 32 bits
proses aplikasi, membungkus
data dgn header (header digunakan source port # dest port #
Pada proses demultiplexing)

other header fields


multiplexing/demultiplexing:
 Berdasarkan IP address dan
nomor port pengirim dan
application
penerima
data
(message)

TCP/UDP segment format

5
Multiplexing/demultiplexing: contoh
source port: x Web client
host A dest. port: 23 server B host C

source port:23
dest. port: x
Source IP: C Source IP: C
Dest IP: B Dest IP: B
source port: y source port: x
port use: simple telnet app dest. port: 80 dest. port: 80

Source IP: A
Dest IP: B Web
Web client source port: x server B
host A dest. port: 80
port use: Web server

6
UDP: User Datagram Protocol [RFC 768]
 “best effort” service, segmen
UDP dapat megalami:
Mengapa UDP?
 lost
 Tidak perlu pembentukan
 Dikirimkan tidak terurut
koneksi (mengurangi delay)
 connectionless:
 simple: tidak ada informasi
 Tidak ada handshaking
antara pengirim dan state baik di pengirim maupun
penerima UDP penerima
 Setiap segmen UDP  Header : pendek
ditangani sendiri-sendiri  Tidak ada kendali kongesti
tanpa tergantung pada
segmen yang lain

7
UDP
 Biasa digunakan untuk aplikasi
streaming multimedia 32 bits
 loss tolerant source port # dest port #
Length, in
 rate sensitive
bytes of UDP length checksum
 Penggunaan UDP yang segment,
lain untuk: including
header
 DNS
 SNMP
Application
 Bila ingin melakukan reliable
transfer menggunakan UDP: data
tambahkan reliability di layer (message)
aplikasi
 application-specific error
recover! UDP segment format

8
UDP Header

9
TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581

 point-to-point:
 Satu pengirim utk satu  full duplex data:
penerima  Aliran data dua arah pada

 reliable, in-order byte koneksi yang sama


 MSS: maximum segment
stream:
size
 pipelined:
 connection-oriented:
 Kendali kongesti dan flow
 Ada handshaking sebelum
control TCP menetapkan
pertukaran data
ukuran window
 flow controlled:
 Ada buffer di pengirim dan
 sender will not overwhelm
penerima
application
receiver
application
writes data reads data
socket socket
door door
TCP TCP
send buffer receive buffer
segment

10
Struktur segmen TCP

11
TCP Header

12
Nama field Ukuran Keterangan
Mengindikasikan sumber protokol lapisan aplikasi yang mengirimkan segmen TCP yang bersangkutan. Gabungan
Source Port 2 byte (16 bit) antara field Source IP Address dalam header IP dan field Source Port dalam field header TCP disebut juga sebagai
socket sumber, yang berarti sebuah alamat global dari mana segmen dikirimkan.
Mengindikasikan tujuan protokol lapisan aplikasi yang menerima segmen TCP yang bersangkutan. Gabungan
Destination Port 2 byte (16 bit) antara field Destination IP Address dalam header IP dan field Destination Port dalam field header TCP disebut juga
sebagai socket tujuan, yang berarti sebuah alamat global ke mana segmen akan dikirimkan.
Mengindikasikan nomor urut dari oktet pertama dari data di dalam sebuah segmen TCP yang hendak dikirimkan.
Sequence Number 4 byte (32 bit)
Field ini harus selalu diset, meskipun tidak ada data (payload) dalam segmen.
Acknowledgment Mengindikasikan nomor urut dari oktet selanjutnya dalam aliran byte yang diharapkan oleh untuk diterima oleh
4 byte (32 bit)
Number pengirim dari si penerima pada pengiriman selanjutnya.

Mengindikasikan di mana data dalam segmen TCP dimulai. Field ini juga dapat berarti ukuran dari header TCP.
Data Offset 4 bit
Seperti halnya field Header Length dalam header IP, field ini merupakan angka dari word 32-bit dalam header TCP.

Reserved 6 bit Direservasikan untuk digunakan pada masa depan. Pengirim segmen TCP akan mengeset bit-bit ini ke dalam nilai 0.

Mengindikasikan flag-flag TCP yang memang ada enam jumlahnya, yang terdiri atas: URG (Urgent), ACK
Flags 6 bit
(Acknowledgment), PSH (Push), RST (Reset), SYN (Synchronize), dan FIN (Finish).
Mengindikasikan jumlah byte yang tersedia yang dimiliki oleh buffer host penerima segmen yang bersangkutan.
Buffer ini disebut sebagai Receive Buffer, digunakan untuk menyimpan byte stream yang datang. Dengan
mengimbuhkan ukuran window ke setiap segmen, penerima segmen TCP memberitahukan kepada pengirim
segmen berapa banyak data yang dapat dikirimkan dan disangga dengan sukses. Hal ini dilakukan agar si pengirim
Window 2 byte (16 bit)
segmen tidak mengirimkan data lebih banyak dibandingkan ukuran Receive Buffer. Jika tidak ada tempat lagi di
dalam Receive buffer, nilai dari field ini adalah 0. Dengan nilai 0, maka si pengirim tidak akan dapat mengirimkan
segmen lagi ke penerima hingga nilai field ini berubah (bukan 0). Tujuan hal ini adalah untuk mengatur lalu lintas
data atau flow control.
Mampu melakukan pengecekan integritas segmen TCP (header-nya dan payload-nya). Nilai field Checksum akan
Checksum 2 byte (16 bit)
diatur ke nilai 0 selama proses kalkulasi checksum.
Urgent Pointer 2 byte (16 bit) Menandakan lokasi data yang dianggap "urgent" dalam segmen.
Berfungsi sebagai penampung beberapa opsi tambahan TCP. Setiap opsi TCP akan memakan ruangan 32 bit,
Options 4 byte (32 bit)
sehingga ukuran header TCP dapat diindikasikan dengan menggunakan field Data offset. 13
Bagaimana koneksi dilakukan?

 Awalnya suatu paket dengan SYN-flag dikirim ke IP tujuan, tujuan akan


memberikan respon dengan suatu ACK(SYN) flag atau suatu paket
dengan RST flag.
 SYN singkatan dari SYN -(synchronisation), yang digunakan untuk
‘memberitahukan' komputer tujuan suatu permintaan melakukan
koneksi, kalau diterima, maka permintaan tersebut akan dijawab
dengan suatu paket ACK(SYN) flag. ACK singkatan dari ACK-
(nowledgement).
 Setelah menerima paket dengan ACK(SYN) flag, komputer mengirim
kembali suatu ACK memberitahukan host lain bahwa koneksi telah
dibuat.
 Hal ini kita sebut sebagai "Three-Way-Handshake". Jika koneksi telah
dibuat dan salah satu host ingin melakukan disconnect, akan dikirim
suatu paket dengan FIN-flag diaktifkan. (FIN singkatan dari FINish).

14
TCP Three-way  Proses pembuatan koneksi TCP disebut juga dengan
"Three-way Handshake". Tujuan metode ini adalah
agar dapat melakukan sinkronisasi terhadap nomor
Handshake urut dan nomor acknowledgement yang dikirimkan
oleh kedua pihak dan saling bertukar ukuran TCP
Window. Prosesnya dapat digambarkan sebagai
berikut:
 Host pertama (yang ingin membuat koneksi) akan
mengirimkan sebuah segmen TCP dengan flag SYN
diaktifkan kepada host kedua (yang hendak diajak
untuk berkomunikasi).
 Host kedua akan meresponsnya dengan
mengirimkan segmen dengan ACK dan juga SYN
kepada host pertama.
 Host pertama selanjutnya akan mulai saling
bertukar data dengan host kedua.
 TCP menggunakan proses jabat tangan yang sama
untuk mengakhiri koneksi yang dibuat. Hal ini
menjamin dua host yang sedang terkoneksi tersebut
TCP Three Way Handshake telah menyelesaikan proses transmisi data dan
(SYN,SYN-ACK,ACK) semua data yang ditransmisikan telah diterima
dengan baik. Itulah sebabnya, mengapa TCP disebut
dengan koneksi yang reliable..
15
TCP ACK generation [RFC 1122, RFC 2581]

Event TCP Receiver action


in-order segment arrival, delayed ACK. Wait up to 500ms
no gaps, for next segment. If no next segment,
everything else already ACKed send ACK

in-order segment arrival, immediately send single


no gaps, cumulative ACK
one delayed ACK pending

out-of-order segment arrival send duplicate ACK, indicating seq. #


higher-than-expect seq. # of next expected byte
gap detected

arrival of segment that immediate ACK if segment starts


partially or completely fills gap at lower end of gap

16
TCP Flow Control
flow control receiver: secara eksplisit
Mencegah pengirim memberi tahu pengirim
membanjiri penerima ruang buffer yang masih
dengan data (shg kosong
buffer tidak overflow)  RcvWindow field
dalam segmen TCP
RcvBuffer = Ukuran buffer TCP Receive sender: menjaga agar jumlah
RcvWindow = sisa Buffer space data yang dikirimkan (yg
belum di-ACK) lebih kecil
drpd RcvWindow
terakhir yg diterima

receiver buffering
17
TCP Round Trip Time dan Timeout
Q: cara menetapkan Q: Cara mengestimasi RTT?
harga TCP timeout?  SampleRTT: waktu sejak segmen
 Lebih lama dari RTT dikirimkan sampai ACK diterima
 RTT bervariasi  ignore retransmissions,

 Bila terlalu pendek:


cumulatively ACKed segments
premature timeout  SampleRTT akan bervariasi,
 Bisa ada retransmisi yg
sehingga bila ingin diperoleh hasil
tdk diperlukan yang lebih tepat :
 Lakukan beberapa kali
 Bila terlalu lama: reaksi
thdp segmen yg hilang pengukuran
akan lambat

18
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|

19
TCP Congestion Control
 Pengendalian end-to-end (tdk ada bantuan dari jaringan)
 Laju transmisi dibatasi oleh congestion window size, Congwin, dari
suatu segmen

Congwin

 Segmen w, masing-masing dengan byte MSS yg


dikirimkan dalam satu RTT:
w * MSS
throughput = Bytes/sec
RTT

20
TCP congestion control:
 “probing” untuk  Ada dua fasa
bandwidth yg dpt  slow start
digunakan:  congestion avoidance
 ideally: mengirim secepat
mungkin (Congwin  Variable yang penting:
sebesar mungkin) tanpa loss  Congwin
 Naikkan Congwin sampai  threshold:
terjadi loss (congestion) mendefinisikan threshold
 Bila terjadi loss: turunkan antara fasa slow start
Congwin, lalu mulai lagi dengan fasa kendali
melakukan probing kongesti
(increasing)

21
TCP Slowstart
Host A Host B
Slowstart algorithm

RTT
initialize: Congwin = 1
for (each segment ACKed)
Congwin++
until (loss event OR
CongWin > threshold)

 Kenaikan exponential (per RTT)


dalam ukuran window (tidak
begitu lambat !) time
 loss event: timeout (Tahoe
TCP) dan/atau bila ada ACK
duplikasi (Reno TCP)
22
TCP Congestion Avoidance
Congestion avoidance
/* slowstart is over */
/* Congwin > threshold */
Until (loss event) {
every w segments ACKed:
Congwin++
}
threshold = Congwin/2
Congwin = 1
1
perform slowstart

1: TCP Reno skips slowstart (fast


recovery) after three duplicate ACKs
23
USZ

THANKS!!

24

You might also like