Chapter 5 part 1
End-to-End Protocols (Simple Demultiplexer and Reliable Byte Stream) Muhammad Al Makky
Pembahasan Chapter 5 • Memahami layanan demultiplexing (UDP) • Mendiskusikan protokol byte stream (TCP)
Chapter Outline • Simple Demultiplexer (UDP) • Reliable Byte Stream (TCP) – – – –
End-to-End Issues Segment Format Connection Establishment Sliding Window Revisited
Permasalahan • Bagaimana cara mengalihkan layanan pengiriman paket host-to-host ke kanal komunikasi process-to-process
End-to-End Protocols • Properti umum yang disediakan oleh protokol transport – – – – – –
Jaminan pengiriman pesan Mengirim pesan dalam urutan yang sama Mengirim salinan dari setiap pesan Mendukung pesan dengan ukuran besar Mendukung sinkronisasi antara pengirim dan penerima Mengizinkan penerima untuk menjalankan “flow control” ke pengirim – Mendukung proses banyak aplikasi di setiap host
End-to-End Protocols • Keterbatasan di layer network yang akan dioperasikan oleh protokol di layer transport – – – – –
Menghapus pesan Memesan kembali pesan Mengirim salinan pesan Batas pesan dalam ukuran yang terbatas Mengirim pesan setelah terjadi delay di luar kebiasaan
End-to-End Protocols • Tantangan untuk protokol transport – Develop algorithms that turn the less-than-desirable properties of the underlying network into the high level of service required by application programs
Simple Demultiplexer (UDP) • Memperluas layanan pengiriman host-to-host pada lapisan network ke dalam layanan komunikasi process-to-process • Menambahkan tingkatan demultiplexing yang mengizinkan proses-proses banyak aplikasi di setiap host untuk berbagi jaringan
Frame Format User Datagram Protocol (UDP)
Process Address • Pasangan <port, host> kunci demultiplexing untuk protokol UDP • well-known port – https://www.iana.org/assignments/service-names-portnumbers/servicenames-port-numbers.txt
• Terkadang, well-known port digunakan sebagai awal mula komunikasi
Simple Demultiplexer (UDP) • Umumnya, port diimplementasikan oleh antrean pesan • Apabila antrean penuh, pesan diabaikan. Tidak ada mekanisme flow-control dalam UDP • Saat proses aplikasi ingin menerima message, maka berlaku FIFO (first in first out). Apabila antrean kosong, proses diblok hingga pesan kembali tersedia
Antrian pesan dalam UDP
Reliable Byte Stream (TCP) • Berbeda dengan UDP, Transmission Control Protocol (TCP) memberikan layanan – Reliable – Connection oriented – Byte-stream service
• Karakteristik TCP – – – –
Jaminan reliable, pengiriman bytes of stream Full-duplex: setiap koneksi TCP mendukung sepasang byte streams Mendukung mekanisme demultiplexing Flow-control: untuk membatasi berapa banyak data yang dapat ditransmisikan oleh pengirim sehingga tidak melebihi kapasitas penerima – Congestion-control: untuk mengakselerasi seberapa cepat TCP dapat mengirimkan data, menjaga agar jaringan tidak kelebihan beban
End-to-End Issues • Jantungnya TCP adalah algoritma sliding window 1. TCP mendukung koneksi secara logic antara proses yang sedang berjalan dalam 2 (dua) komputer yang berbeda di internet connection establishment 2. Koneksi TCP memiliki waktu RTT yang berbeda-beda. Mekanisme timeout pemicu retransmisi harus adaptive 3. Paket dapat dipesan ulang 4. TCP membutuhkan mekanisme dengan menggunakan setiap koneksi akan mempelajari sumber daya apa yang memungkinkan terjadi koneksi di sisi lainnya 5. TCP membutuhkan mekanisme dengan menggunakan sisi pengirim akan mempelajari kapasitas jaringan
TCP Segment • TCP merupakan byte-oriented protocol, artinya pengirim menuliskan bytes ke dalam koneksi TCP dan penerima membaca bytes dari koneksi TCP • Paket yang dipertukarkan antara TCP disebut segmen
TCP Header • TCP’s demux key is given by the 4tuple < SrcPort, SrcIPAddr, DstPort, DstIPAddr > • The Acknowledgment, SequenceNum, and AdvertisedWindow fields are all involved in TCP’s sliding window algorithm • The SequenceNum field contains the sequence number for the first byte of data carried in that segment. • The Acknowledgment and AdvertisedWindow fields carry information about the flow of data going in the other direction
TCP Header Format
Connection Establishment / Termination in TCP
Timeline for three-way handshake algorithm
State Transition Diagram (STD) dalam TCP
Sliding Window Revisited • Variasi algoritma sliding window dalam TCP, dengan maksud sebagai berikut – (1) Menjamin kehandalan (reliable) pengiriman data – (2) Memastikan data yang dikirimkan sesuai dengan urutan – (3) Menjalankan flow control antara pengirim dan penerima
Sliding Window Revisited
Relationship between TCP send buffer (a) and receive buffer (b). Sender: • LastByteAcked ≤ LastByteSent • LastByteSent ≤ LastByteWritten
Receiver: • LastByteRead < NextByteExpected • NextByteExpected ≤ LastByteRcvd + 1
TCP Flow Control • LastByteRcvd − LastByteRead ≤ MaxRcvBuffer • AdvertisedWindow = MaxRcvBuffer − ((NextByteExpected − 1) − LastByteRead) • LastByteSent − LastByteAcked ≤ AdvertisedWindow • EffectiveWindow = AdvertisedWindow − (LastByteSent − LastByteAcked) • LastByteWritten − LastByteAcked ≤ MaxSendBuffer • If the sending process tries to write y bytes to TCP, but (LastByteWritten − LastByteAcked) + y > MaxSendBuffer then TCP blocks the sending process and does not allow it to generate more data.
UDP • Demultiplexer, Connectionless, sifat dalam pengiriman data memakai antrian (FIFO)
TCP • Flow control, penerima membatasi pengiriman data dari pengirim agar tidak melebihi kapasitas buffer penerima • Congestion control, memastikan pengirim tidak mengirim data melebihi kapasitas media transmisi jaringan • Sliding window