Transport Layer
Transport Layer
usz
Transport services and protocols
network
Layanan layer transport vs layer data link
physical
network :
application
network layer: transfer data antar transport
network
data link
end systems physical
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)
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
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?
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]
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,
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
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
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)
THANKS!!
24