Recall the TCPIP Internet Architecture

  Understanding the Stack Recall the TCP/IP Internet Architecture

  End-to-End Protocols

FTP HTTP NV RTP

  (Week 12) 20,21 80 4444

TCP UDP

  6 17 IP Jaringan Komputer

  …

NET NET NET

  1 2 n Fakultas Ilmu Komputer Universitas Indonesia Semester Genap 2003/2004 Versi: 1 Versi 1

  2 Basic Transport-layer Function End-to-end Communication 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: end-to-end implementation Transport-layer Service Model Internet Transport-layer Protocols Transport layer: logical communication between UDP: connectionless application end-point point. multiplexing/demultiplexing multiplexing/demultiplexing error detection

  Additional services: TCP: connection oriented reliable data transfer (guaranteed arrival, no error, in- multiplexing/demultiplexing order) reliable data transfer flow control (keep sender from overrunning receiver): good for myself flow control congestion control (keep sender from overrunning congestion control network): good for everybody services not available: delay guarantees Versi 1 bandwidth guarantees Versi 1

  5

  6 How multiplexing/demultiplexing works? 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. using port numbers each IP datagram has source IP address, destination IP

  Port number vs. socket address each IP datagram carries a transport-layer segment socket (true destination attached to app. end-point) each segment has source, destination port number port number (a mechanism to identify socket) port number??

  Analogy PABX system vs Internet: dest. IP address for routing to the host; IP addresses and

  ≈ Internet address Phone no port numbers for going to appropriate socket in the dest. host.

  ≈ Port no Extension 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 16 31

  10 Versi 1 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 reliable data transfer, flow control, congestion control …

9 Versi 1

  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

  Simple: no connection state at sender, receiver 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 multimedia apps End-to-End Protocols TCP Overview

  Underlying best-effort network (IP service): Connection-oriented Full duplex

  drop messages

  Byte-stream Flow control: keep sender from

  re-orders messages

  overrunning receiver

  app writes Bytes delivers duplicate copies of a given message TCP sends segments Congestion control: keep limits messages to some finite size

  sender from overrunning

  app reads Bytes delivers messages after an arbitrarily long delay

  network Common end-to-end services:

  guarantee message delivery Application process Application process deliver messages in the same order they are sent Write Read deliver at most one copy of each message … … Bytes Bytes support arbitrarily large messages TCP TCP support synchronization Send buffer Receive buffer allow the receiver to flow control the sender support multiple application processes on each host Versi 1 Segment Segment Segment Transmit segments Versi 1

  13

  14 Simple Reliability: send/ACK Reliable Data Transfer Sender Receiver Sender Receiver

  Our goal: end-to-end solution to achieve reliable Frame Frame data transfer Ti T T m e eout eout im ACK im ACK What is reliable data transfer?

  Frame guaranteed arrival T im eout ACK no error in order delivery (a) (c) duplication

  Why is it difficult? end-to-end solution has no control of underlying Sender Receiver Sender Receiver communication channel, which can be error-prone

  Frame Frame and lossy T im T ACK eout im eout

  Where is it used in computer networks? Frame reliable data link service on top of unreliable physical

  Frame eout im layer T im eout ACK T ACK reliable transport service on top of unreliable IP (b) (d) duplication Stop-and-Wait Bandwidth & Latency (Review)

  Problem: Overhead ACK: min. 1 RTT, sender Kinerja jaringan diukur dalam dua kategori: stop Bandwidth (throughput): jumlah bits yang dapat di- transfer dalam satu periode waktu

  Example

  • Misalkan: 1 Mbits/detik => 1 Mbps, berarti dapat mengirimkan data Mak. bit yang dapat dikirimkan: BW x latency.

  1 juta bit setiap detik;

  BW = Bandwidth

  • Bandwidth 1 Mbps, diperlukan waktu 1 mikro-detik untuk mengirimkan 1 bit.

  ≈ 8KB

1.5Mbps link x 45ms latency = 67.5Kb

  Latency (delay): berapa lama waktu yang diperlukan

  1KB Byte setiap 90ms => 1/16 utilisasi BW (link) Sender Receiver untuk mengirimkan “message” dari satu ujung (end) ke

  Length = latency

  bandw ujung lainnya.

  Ukuran latency adalah satuan waktu. •

  idt

  Misalkan: latency untuk jaringan JKT – SBY: 20 milidetik (one- • h way). Capacity = bandwidth X latency

  Pengukuran lain Round-Trip Time (RTT): latency message bolak • Versi 1 balik (two way). Versi 1

  17

  18 Example: Latency Network (Review) Example: Latency Network (Review) Kemungkinan output link sedang digunakan, maka paket harus antri A B

  (queued) di dalam buffer => delay antrian R2

  Source Destination

  R1 R3 TRANSP 1 R4 TRANSP1 Host A Q 2 TRANSP 2 Host A

  R1 PROP 1 TRANSP2

  “Store-and-Forward” at each Router TRANSP 3 R2

  R1 PROP1 TRANSP 3 PROP 2 TRANSP 4 R3 R2 PROP2 TRANSP 4 PROP 3 Host B R3 PROP3 PROP 4 Host B PROP 4 = + + TRANSP PROP Q Actual end to end latency ( ) i i i

  ∑ i

  • Minimum end to end latency = ( TRANSP PROP )

  i ii

  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.

  Hitung waktu transfer 1000 KB file, asumsi *RTT=100ms, ukuran paket 1KB data, dan diperlukan 2 RTT untuk handshaking awal.

  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 dikirim secara kontinyu (tidak terputus)

  • Gunakan rumus latency dan perhitungkan semua faktor yang memberikan kontribusi terjadinya delay dari sender ke recei>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
  • Latency = [handshaking] + waktu propagasi [paket 1, one way] +
  • Latency = [2 * RTT] + [RTT/2] + [BesarData/Bandwidth]
  • Latency = [200ms] + [50 ms] + [1000KB/1.5Mbps]
  • Latency = [handshaking] + waktu propagasi [paket 1, one way] +

  6

  • Latency = 5.71 s + [999 * RTT]
  • Latency = [200ms] + [50 ms] + [(1000*1024*8)/(1.5 * 10
  • >Latency = 105.61 sec
  • *Catatan: Di sini RTT = propagation delay

  • Latency = 0.25 s + 5.46 s = 5.71 second
  • *Catatan: Di sini RTT = propagation delay

21 Versi 1

  Acknowledgment

  31

  16

  10

  4

  Options (variable) Data Checksum SrcPort DstPort

  HdrLen Flags UrgPtr AdvertisedWindow SequenceNum

  ) s]

  …… Segment Format

  Sender Receiver Ti m e

  waktu transmisi + [total delay overhead menunggu]

  waktu transmisi

  22 Versi 1 E.g. : Exercise 1.5 (Page 61) - Review

  Sliding Window Allow multiple outstanding (un-ACKed) Bytes Upper bound on un-ACKed Bytes, called window

  Segment 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

  • AC K, Se quen ceNu m =

  pseudo header + TCP header + data Sender

  Data (SequenceNum) Acknowledgment + AdvertisedWindow

  Receiver

  26 Versi 1 Connection Establishment and Termination

  Active participant (client)

  Passive participant (server)

  SYN, Se quenceN um = x

  SYN

  y ,

  ACK, Ack nowledgm ent = y + 1

  Ackn owle dgm ent = x + 1

  Three way handshake Flow Control – Credit Allocation [STAL00] Stalling W., Data and Computer Communications 6 th ed, Prentice-Hall:2000, § 17.1

25 Versi 1

  1 segment = 200 octets Initial W = 7 segments (1400 octets) Sending and Receiving Perspectives 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, § 6.5.9.

29 Versi 1

  30 Versi 1 Receiver vs Network Capacity

  (a) A fast network feeding a low-capacity receiver (b) A slow network feeding a high capacity network 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 window.

  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. Bagaimana jika congestion window mencapai receiver window?

  34 Versi 1 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. Jika terjadi timeout, threshold diperkecil menjadi ½ dr congestion window terakhir. Kembali ke langkah 1.

33 Versi 1

  Slow Start & Threshold Dalam suatu koneksi TCP, ES tujuan dpt mengubah ukuran receiver window. Lihat slide 31.

  ICMP Source quench akan dilaporkan ke TCP & dianggap sbg timeout.

  Timer management sangat penting & ditentukan secara statistik.

  E.g. Slow Start & Threshold