Jaringan Komputer
Fakultas Ilmu KomputerEnd-to-End Protocols
Understanding the Stack
Recall the TCP/IP Internet Architecture
…
FTP HTTP NV RTP
TCP UDP
IP
NET1 NET2 NETn
6 17
80
Basic Transport-layer Function
Network layer: end-to-end logical
communication between hosts
Transport layer (rely on network layer): logical
communication between application-level comm.
end-points
Multiple application-level end-points can reside in one host
Application-level end-points can be a Web browser/server,
a FTP client/server, etc
Transport-layer Service Model
Transport layer: logical communication between
application end-point point.
multiplexing/demultiplexing
Additional services:
reliable data transfer (guaranteed arrival, no error,
in-order)
flow control (keep sender from overrunning receiver):
good for myself
congestion control (keep sender from overrunning
network): good for everybody
Internet Transport-layer Protocols
UDP: connectionless
multiplexing/demultiplexing
error detection
TCP: connection oriented
multiplexing/demultiplexing
reliable data transfer
flow control
congestion control
services not available:
delay guarantees
How multiplexing/demultiplexing works?
using port numbers
each IP datagram has source IP address, destination IP address
each IP datagram carries a transport-layer segment each segment has source, destination port number port number??
dest. IP address for routing to the host; IP addresses and
port numbers for going to appropriate socket in the dest.
host.
Port Numbers
Each port number is a 16-bit number, ranging from 0
to 65535.
Port numbers ranging from 0 to 1023 are called
well-known port numbers and are restricted.
Port number vs. socket
socket (true destination attached to app. end-point)
port number (a mechanism to identify socket)
Analogy PABX system vs Internet:
Phone no
≈ Internet address
Extension no
≈ Port no
Simple Demultiplexor (UDP)
Unreliable and unordered datagram service
Adds multiplexing
No flow control
Endpoints identified by ports
servers have well-known ports see /etc/services on Unix
Header format
Optional checksum
pseudo header + UDP header + data
Pseudo header consists of:
Protocol no (6 for TCP, 17 for UDP) Source IP Destination IP Length field SrcPort DstPort Checksum Length Data 0 16 31
UDP: User Datagram Protocol
What is a connection?
a group of segments between the same pair of comm. endpoints allow for shared resources, provide services more efficiently
UDP is connectionless:
each UDP segment handled independently of others
UDP does
multiplexing/demultiplexing simple error detection
UDP does not do
What is good about UDP?
TCP features may not be needed by some
applications, such as?
Less overhead:
no connection establishment (which can add delay)
small segment header
no congestion control: UDP can blast away as fast as
desired
UDP: more
Often used for streaming
multimedia apps
loss tolerant rate sensitive
In general, UDP is also
used when TCP features
are not important
What if you want a subset
of features in TCP?
implemented at application-level
flow control and error recovery in many
End-to-End Protocols
Underlying best-effort network (IP service):
drop messages
re-orders messages
delivers duplicate copies of a given message limits messages to some finite size
delivers messages after an arbitrarily long delay
Common end-to-end services:
guarantee message delivery
deliver messages in the same order they are sent deliver at most one copy of each message
support arbitrarily large messages support synchronization
allow the receiver to flow control the sender
TCP Overview
Connection-oriented Byte-stream
app writes Bytes
TCP sends segments app reads Bytes
Application process Write Bytes TCP
Send buffer
Segment Segment Segment Transmit segments Application process Read Bytes TCP Receive buffer … … … Full duplex
Flow control: keep sender from overrunning receiver
Congestion control: keep sender from overrunning network
Reliable Data Transfer
Our goal: end-to-end solution to achieve reliable
data transfer
What is reliable data transfer?
guaranteed arrival
no error
in order delivery
Why is it difficult?
end-to-end solution has no control of underlying
communication channel, which can be error-prone
and lossy
Where is it used in computer networks?
reliable data link service on top of unreliable physical
layer
Simple Reliability: send/ACK
Sender Receiver Frame ACK T imeout Ti m e Sender Receiver Frame ACK T imeout Frame ACK T imeout Sender Receiver Frame ACK T imeout Frame ACK T imeout Sender Receiver Frame T imeout Frame ACK T imeout (a) (c) duplicationStop-and-Wait
Problem: Overhead ACK: min. 1 RTT, sender
stop
Example
Mak. bit yang dapat dikirimkan: BW x latency.
BW = Bandwidth
1.5Mbps link x 45ms latency = 67.5Kb ≈ 8KB
1KB Byte setiap 90ms => 1/16 utilisasi BW (link)
Sender Receiver
bandwidth Length = latency
Bandwidth & Latency (Review)
Kinerja jaringan diukur dalam dua kategori:
Bandwidth
(throughput): jumlah bits yang dapat
di-transfer dalam satu periode waktu
• Misalkan: 1 Mbits/detik => 1 Mbps, berarti dapat mengirimkan data 1 juta bit setiap detik;
• Bandwidth 1 Mbps, diperlukan waktu 1 mikro-detik untuk mengirimkan 1 bit.
Latency
(delay): berapa lama waktu yang diperlukan
untuk mengirimkan “message” dari satu ujung (end) ke
ujung lainnya.
• Ukuran latency adalah satuan waktu.
• Misalkan: latency untuk jaringan JKT – SBY: 20 milidetik (one-way).
• Pengukuran lain Round-Trip Time (RTT): latency message bolak balik (two way).
Example: Latency Network (Review)
Host A
Host B
R1 R2 R3 A R1 R2 R4 R3 B TRANSP1 TRANSP2 TRANSP3 TRANSP4 PROP1 PROP2 PROP3 PROP4 Source Destination“Store-and-Forward” at each Router
(
TRANSP PROP
i i)
=
∑
+
Example: Latency Network (Review)
Host A
Host B
R1 R2 R3 TRANSP1 TRANSP2 TRANSP3 TRANSP4 PROP1 PROP2 PROP3 PROP4(
i i i)
iTRANSP PROP Q
=
∑
+
+
Actual end to end latency
Q2
Kemungkinan output link sedang digunakan, maka paket harus antri (queued) di dalam buffer => delay antrian
E.g. : Exercise 1.5 (Page 61) - Review
Hitung waktu transfer 1000 KB file, asumsi *RTT=100ms,
ukuran paket 1KB data, dan diperlukan 2 RTT untuk
handshaking awal.
a)
Badwidth 1.5 Mbps, dan paket data dikirimsecara kontinyu
(tidak terputus)
- Gunakan rumus latency dan perhitungkan semua faktor yang
memberikan kontribusi terjadinya delay dari sender ke receiver.
- Latency = [handshaking] + waktu propagasi [paket 1, one way] +
waktu transmisi
- Latency = [2 * RTT] + [RTT/2] + [BesarData/Bandwidth] - Latency = [200ms] + [50 ms] + [1000KB/1.5Mbps]
- Latency = [200ms] + [50 ms] + [(1000*1024*8)/(1.5 * 106) s] - Latency = 0.25 s + 5.46 s = 5.71 second
E.g. : Exercise 1.5 (Page 61) - Review
Hitung waktu transfer 1000 KB file, asumsi *RTT=100ms,
ukuran paket 1KB data, dan diperlukan 2 RTT untuk
handshaking awal.
b) Badwidth 1.5 Mbps, dan paket data tidak dikirim secara
kontinyu, tapi setiap satu paket dikirimkan sender harus
menunggu 1 RTT, kemudian mengirim paket berikutnya.
- Dengan cara ini terdapat overhead 1 RTT pada paket kedua, ketiga,
dst sampai paket ke-1000; paket pertama tidak perlu menunggu sehingga total delay dari 1000 paket tsb adalah 999 RTT.
- Latency = [handshaking] + waktu propagasi [paket 1, one way] +
waktu transmisi + [total delay overhead menunggu]
- Latency = 5.71 s + [999 * RTT] - Latency = 105.61 second.
Sliding Window
Allow multiple outstanding (un-ACKed) Bytes
Upper bound on un-ACKed Bytes, called window
Sender Receiver
T
ime
Segment Format
Options (variable) Data Checksum SrcPort DstPort HdrLen 0 Flags UrgPtr AdvertisedWindow SequenceNum Acknowledgment 0 4 10 16 31Segment Format (cont)
Each connection identified with 4-tuple:
(SrcPort, SrcIPAddr, DsrPort, DstIPAddr)
Sliding window + flow control
acknowledgment, SequenceNum, AdvertisedWinow
Flags
SYN, FIN, RESET, PUSH, URG, ACK
Checksum
pseudo header + TCP header + data
Sender
Data (SequenceNum)
Acknowledgment + AdvertisedWindow
Connection Establishment and Termination
Active participant (client) Passive participant (server) SYN, Se quenceNum = x SYN + ACK , Sequence Num = y, ACK, Ackn owledgment = y + 1 Acknowledg ment = x + 1Flow Control – Credit Allocation
[STAL00] Stalling W., Data and Computer Communications 6th ed, Prentice-Hall:2000, § 17.1
1 segment = 200 octets
TCP Congestion Control
Yang lebih berperan mengendalikan
kemacetan adl lapisan transport (transport
layer).
Kemacetan dpt dikendalikan jika data rate
dikurangi, dan hal tsb merupakan porsi tugas
lapisan transport.
[TAN03] Tanenbaum, A.S., Computer
Networks 4
th
ed. Prentice-Hall: 2003,
Masalah & Penyelesaiannya
Masalah:
Apakah TCP congestion control cukup jika hanya
mengandalkan ukuran jendela (window size) yg
ditentukan oleh End System (ES) tujuan? Lihat
slide 31.
Bagaimana dgn internal congestion pd slide
sebelum ini?
Penyelesaiannya:
Selain receiver window, perlu juga congestion
Effective Window Size
Ukuran jendela yg aman menurut ES asal.
Min(receiver window size, congestion
window size).
Jika ES tujuan menyanggupi ukuran
jendela 8KB, tetapi ES asal mengetahui
kapasitas jaringan hanya 4KB -> ES asal
memilih jendela berukuran 4KB.
Jika ES tujuan menyanggupi ukuran
jendela 8KB, dan ES asal mengetahui
kapasitas jaringan 32 KB -> ES asal
memilih jendela berukuran 8KB.
Slow Start & Threshold
Mekanisme yg dilakukan ES asal utk
memperkirakan kapasitas jaringan.
Slow start (Jacobson 1988):
Congestion window bertambah besar secara
eksponensial, sampai terjadi timeout atau
receiver window tercapai.
Penambahan congestion window terjadi jika ES
asal menerima ACK dr segmen yg telah
dikirimkan sebelum timeout.
Algoritma Slow Start & Threshold
1.
Congestion window diberi nilai 1 segmen.
2.
Dilakukan slow start sampai congestion
window mencapai threshold (pertambahan
secara ekponesial).
3.
Kemudian congestion window bertambah
secara linier, hingga mencapai receiver window
atau terjadi timeout.
4.