transport layer udptcp
DESCRIPTION
TRANSCRIPT
ET5044 – T2N – Telematics Lab. ITB
1
TRANSPORT LAYERTRANSPORT LAYERUDPUDPTCPTCP
ET5044 – T2N – Telematics Lab. ITB
2
• Transport layer menyediakan logical
communication antara proses aplikasi yang berjalan pada host yang berbeda
• Protokol transport berjalan di ultimate sender dan ultimate receiver
• Perbedaan antara transport dan network layer :– network layer: data transfer between
end systems
– transport layer: data transfer between processes
• relies on, enhances, network layer services
application
transportnetworkdata linkphysical
application
transportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
logical end-end transport
ET5044 – T2N – Telematics Lab. ITB
3
ET5044 – T2N – Telematics Lab. ITB
4
Transport Layer Protocol• User Datagram Protocol (UDP) : unreliable (“best-effort”),
unordered unicast or multicast delivery• Transmission Control Protocol (TCP) : reliable, in-order unicast
delivery– congestion control– flow control– connection setup
• Layer transport tidak menyediakan layanan : – real-time– bandwidth guarantees– reliable multicast
• Proses-proses aplikasi yang berjalan di suatu host, diidentifikasi oleh port
ET5044 – T2N – Telematics Lab. ITB
5
Multiplexing/Demultiplexing• Demultiplexing: Proses memberikan segment yang
diterima ke proses aplikasi yang sesuai– Iingat : segment adalah protocol data unit (PDU) yang
dipertukarkan antar layer transport
applicationtransportnetwork
MP2
applicationtransportnetwork
receiver
HtHnsegment
segment Mapplicationtransportnetwork
P1M
M MP3 P4
segmentheader
application-layerdata
ET5044 – T2N – Telematics Lab. ITB
6
• Multiplexing : mengumpulkan data dari beberapa proses aplikasi lalu membungkusnya (enveloping) dengan menambahkan header (yang nanti akan digunakan pada proses demultiplexing)
• Multiplexing/demultiplexing dilakukan berdasarkan nomor port pengirim dan penerima, serta IP address– Nomor port dari source dan destination dalam setiap
segment
ET5044 – T2N – Telematics Lab. ITB
7
User Datagram Protocol (UDP)• Connectionless, unreliable delivery service menggunakan
protokol IP sebagai pengangkut message• Tidak ada pengiriman acknowledgments (ACKs)• Aplikasi yang menggunakan UDP harus mampu menangani
seluruh masalah yang muncul untuk menjamin transfer data yang andal. Masalah yang harus dihadapi:– Duplicate messages– Lost messages– Delayed and Out-of-Order delivery
• UDP bagus untuk delay-sensitive traffic seperti video dan voice
ET5044 – T2N – Telematics Lab. ITB
8
Nomor Port
ET5044 – T2N – Telematics Lab. ITB
9
ET5044 – T2N – Telematics Lab. ITB
10
Alokasi nomor port
ET5044 – T2N – Telematics Lab. ITB
11
• Well Known Ports (0-1023) di-assigned oleh IANA dan sebagian besar sistem dan hanya digunakan oleh proses sistem (atau root) atau oleh program yang dijalankan oleh privileged users
• Registered Port Numbers (1024-49151) : ada di dalam daftar IANA dan sebagian besar sistem dan dapat digunakan oleh proses user atau program biasa
• Nomor port ini digunakan juga oleh TCP• Lebih lengkap dapat dilihat di :
http://www.iana.org/assignments/port-numbers
ET5044 – T2N – Telematics Lab. ITB
12
Socket Address
ET5044 – T2N – Telematics Lab. ITB
13
Format message UDP• UDP messages (disebut user datagrams) memiliki dua
bagian yang berbeda yaitu :– UDP Headers– UDP Data area
• Header selalu berukuran tetap yaitu 4 octets, yang antara lain berisi informasi port dari source dan destination0 16 31
UDP SOURCE PORT UDP DESTINATION PORT
UDP MESSAGE LENGTH UDP CHECKSUM
DATA
. . .
ET5044 – T2N – Telematics Lab. ITB
14
• SOURCE PORT (16-bits):– Optional; bila tidak digunakan harus berisi nol– Bila digunakan, berisi UDP protocol port number yang menyatakan kemana
jawaban harus ditujukan• DESTINATION PORT (16-bits):
– Nomor port yang diperlukan untuk proses demultiplexing• MESSAGE LENGTH (16-bits):
– Panjang message yang dinyatakan dalam oktet (meliputi header dan data).• Panjang Minimum = 8 (hanya header).
• CHECKSUM (16-bits):– Optional; diset 0 bila tidak digunakan (bisa dibuat nol bila pengiriman
message dilakukan pada LAN (reliable network))– Karena IP tidak menghitung checksum untuk bagian data, maka checksum
untuk UDP perlu dihitung
ET5044 – T2N – Telematics Lab. ITB
15
UDP Pseudo-Header• Digunakan untuk keperluan verifikasi bahwa datagram UDP telah
sampai ke tujuan yang benar – Header UDP hanya menggunakan nomor port, jadi mesin penerima tidak
bisa memverifikasi apakah UDP datagram yang diterima betul-betul ditujukan untuknya (perlu informasi IP address)
• Checksum dihitung setelah terlebih dahulu menambahkan pseudo-header, dan padding(jika diperlukan) . Perhitungan cheksum meliputi pseudo-header, UDP-header, dan data area– Pseudo-header dan padding sendiri tidak ikut dikirimkan (jadi hanya untuk
keperluan perhitungan checksum
• Format UDP Pseudo-header :0 168 31
PADDING PROTOCOL UDP LENGTH
DESTINATION IP ADDRESS
SOURCE IP ADDRESS
ET5044 – T2N – Telematics Lab. ITB
16
• Source IP address (4-octets).• Destination IP address (4-octets).• Padding field filled with zeros (1-octet).• Protocol Type (1-octet), UDP = 17• UDP Length (2-octets)
• Length of the UDP datagram without the pseudo-header
ET5044 – T2N – Telematics Lab. ITB
17
Format datagram UDP yang dilengkapi pseudo-header
ET5044 – T2N – Telematics Lab. ITB
18
• Proses verifikasi yang dilakukan penerima :– Meng-ekstrak Source IP address, Destination IP
address, dan Protocol Type dari datagram IP– Membuat pseudo header dan padding (jika
diperlukan)– Menghitung checksum yang mencakup keseluruhan
pseudo-header, UDP-header, dan data area
ET5044 – T2N – Telematics Lab. ITB
19
UDP encapsulation & decapsulation
ET5044 – T2N – Telematics Lab. ITB
20
Transmission Control Protocol(TCP)
ET5044 – T2N – Telematics Lab. ITB
21
• TCP adalah suatu protokol transport yang independent, general purpose, dan menyediakan reliable-delivery– Independent dan general purpose : tidak terbatas
untuk TCP/IP protocol suite, melainkan bisa digunakan oleh sistem lain
ET5044 – T2N – Telematics Lab. ITB
22
Properties of Reliable Delivery Service• Interface antara program aplikasi dengan TCP/IP
reliable delivery dapat dikarakteristikan oleh 5 faktor :– Stream Orientation - data is considered as a bitstream
divided into bytes– Buffered Transfer – mekanisme transport mem- buffer data
aplikasi sampai suatu saat ukuran datagram yang cukup besar tercapai, lalu menggunakan mekanisme PUSH untuk transfer data
– Virtual Circuit Connection – aplikasi melihat layanan transport yang disediakan sebagai suatu dedicated hardware circuit
– Unstructured Stream – aplikasi harus mengerti isi dari stream– Full-Duplex Connection – transmisi dua arah pada saat yang
bersamaan; tetapi bisa juga half-duplex
ET5044 – T2N – Telematics Lab. ITB
23
Providing Reliability
• Mengirimkan positive acknowledgments (ACKs) bersamaan dengan retransmisi adalah tekni dasar untuk menyediakan reliable transfer
• Sebuah timer dijalankan pada saat transmisi dilakukan dan jika timer expires maka message dikirimkan ulang
ET5044 – T2N – Telematics Lab. ITB
24
Events AtSender Site
Network Messages Events AtReceiver Site
Send Packet 1
Receive ACK 1Send Packet 2
Receive ACK 2
Receive Packet 1Send ACK 1
Receive Packet 2Send ACK 2
ET5044 – T2N – Telematics Lab. ITB
25
• Untuk mencegah kebingungan (confusion) bila ada ACK yang terdelay atau terduplikasi, positive ACK menggunakan nomor urut ACK untuk meng-acknowledge setiap paket yang diterima
• Nomor urut ini bisa unique untuk masing-masing pihak dan dibentuk pada saat connection setup
ET5044 – T2N – Telematics Lab. ITB
26
Send Packet 1Start Timer
Retransmit Packet 1Start Timer
Receive ACK 1Cancel Timer
Receive Packet 1Send ACK 1
Packet should arriveACK should be sentACK would normally
arrive at this time
Timer Expires
Packet lost
Events AtSender Site
Network Messages Events AtReceiver Site
ET5044 – T2N – Telematics Lab. ITB
27
Skema Retransmisi
• Stop and Wait protocols (pada contoh sebelumnya) : tidak efisien
• Go-Back-N protocols : semua paket dikirim ulang bila ada satu paket yang salah
• Selective Retransmission protocols : hanya mengirim ulang paket yang salah menggunakan ACKs dan NAKs (ini yang digunakan TCP)
ET5044 – T2N – Telematics Lab. ITB
28
Sliding Window Protocol• Digunakan pada TCP agar stream transmisi efisien
– Memungkinkan pengiriman lebih dari satu paket sekaligus tanpa harus menunggu ACK dulu
• Dapat merekam jumlah paket yang sudah di-acknowledged maupun yang belum di-acknowledged
• Seluruh paket yang jumlahnya sesuai dengan ukuran window akan dikirimkan sekaligus sehingga ukuran window akan mengecil; ukuran window akan membesar bila sudah diterima ACK
• Kinerja sliding window dipengaruhi ukuran window dan kecepatan proses paket di tujuan
ET5044 – T2N – Telematics Lab. ITB
29
Tiga macam kondisi paket dalam protokol sliding window
SuccessfullyTransmitted(received and
acknowledged)
BeingTransmitted
Not YetTransmitted
ET5044 – T2N – Telematics Lab. ITB
30
Events AtSender Site Network Messages
Events AtReceiver Site
Send Packet 1
Receive ACK 1
Receive ACK 2
Receive Packet 1Send ACK 1
Receive Packet 2Send ACK 2
Send Packet 2
Send Packet 3
Receive ACK 3
Receive Packet 3Send ACK 3
ET5044 – T2N – Telematics Lab. ITB
31
ET5044 – T2N – Telematics Lab. ITB
32
ET5044 – T2N – Telematics Lab. ITB
33
Sliding window with pointer
ET5044 – T2N – Telematics Lab. ITB
34
Window management
ET5044 – T2N – Telematics Lab. ITB
35
Corrupted segments
ET5044 – T2N – Telematics Lab. ITB
36
Lost segment
ET5044 – T2N – Telematics Lab. ITB
37
Lost acknowledgment
ET5044 – T2N – Telematics Lab. ITB
38
TCP mendefinisikan :• Format data dan acknowledgments.• Prosedur bagi host untuk menjamin transmisi
yang reliable• Pembentukan dan pemutusan koneksi• Cara membedakan bermacam tujuan di dalam
suatu mesin tertentu
ET5044 – T2N – Telematics Lab. ITB
39
Connections, Ports, dan Endpoints• Tidak seperti UDP, TCP menggunakan port untuk
menghubungi satu buah objek dengan cara tertentu• TCP menggunakan “koneksi” sebagai abstraksi
fundamental• Koneksi diidentifikasi oleh sepasang endpoints• Endpoints terdiri dari sepasang integer dari (HOST,
PORT), dimana:– HOST adalah IP address dari host– PORT adalah port protokol TCP pada host tersebut
ET5044 – T2N – Telematics Lab. ITB
40
Connections, Ports, dan Endpoints (cont)
• Contoh:– MIT (18.26.0.36, 1069) to– Purdue (128.10.2.3, 25)– CMU (128.2.254.139, 1184) to– Purdue (128.10.2.3, 25)
• Nomor port TCP dapat digunakan secara bersama oleh sejumlah koneksi di dalam suatu mesin yang sama karena setiap koneksi dinyatakan oleh sepasang end points
ET5044 – T2N – Telematics Lab. ITB
41
Passive dan Active Opens• Passive Open – fungsi yang dilakukan oleh program
aplikasi untuk memberi tahu sistem operasi bahwa dia dapat menerima koneksi
• Active Open - fungsi yang dilakukan oleh program aplikasi untuk memberi tahu sistem operasi bahwa dia ingin melakukan koneksi
• Unit pengiriman pada TCP adalah segment• Idealnya, setiap segment dikirimkan menggunakan satu
buah IP datagram• TCP menggunakan suatu bentuk sliding window untuk
menjamin efisiensi transmisi dan menangani flow control• TCP beroperasi pada level oktet dan menggunakan tiga
pointer untuk setiap koneksi
ET5044 – T2N – Telematics Lab. ITB
42
Sent and
ACKed
Sent & Not
Yet ACKed
To be Sent Not Yet
Generated
(waiting for
window slide)
Pointers
ET5044 – T2N – Telematics Lab. ITB
43
Window advertisement
• Disertakan dalam setiap ACK, menyatakan jumlah byte yang masih dapat dan siap diterima oleh penerima
• TCP menggunakan window advertisement untuk melakukan end-to-end flow control, tetapi tidak dapat secara eksplisit mengatasi kongesti
ET5044 – T2N – Telematics Lab. ITB
44
Format segmen TCP
Details later……
ET5044 – T2N – Telematics Lab. ITB
45
Adaptive Retransmission
• TCP mengakomodasi delay pada internet yang bervariasi dengan menggunakan adaptive retransmission algorithm yang memantau kinerja koneksi dan menyesuaikan timer
• Sample Round Trip Time:– Dihitung dari selang waktu antara pengiriman
segmen sampai diperoleh ACK
ET5044 – T2N – Telematics Lab. ITB
46
Congestion Control
•Next Time
ET5044 – T2N – Telematics Lab. ITB
47
Pembentukan koneksi TCP• TCP menggunakan three-way handshake untuk
membentuk dan memutuskan koneksi(menggunakan ACKs dan piggybacking)
• SYN:– Bit-bit Synchronization dikirimkan dalam segments 1
dan 2 dari handshake• ACK:
– Bit-bit Acknowledgment dikirimkan dalam segments 2 dan 3 dari handshake
ET5044 – T2N – Telematics Lab. ITB
48
Events At Site 1A
Network Messages Events At Site 2B
• SendSYN seq=x
• ReceiveSYNACK segment
• Send ACK y+1
• Receive SYN segment• Send
SYN seq=y,ACK x+1
• Receive ACK segment
ET5044 – T2N – Telematics Lab. ITB
49
• A sends: (SYN, seq. # octet X)• B records: (sequence # octet X)
• B sends: (SYN, ACK X+1, seq. # octet Y)
• A records: (sequence # octet Y)
• A sends: (ACK Y+1)• B receives: (ACK Y+1)
ET5044 – T2N – Telematics Lab. ITB
50
ET5044 – T2N – Telematics Lab. ITB
51
• Koneksi full-duplex dapat dibentuk dalam beberapa macam urutan:– Passive wait (A), Active initiate (B).– Active initiate (A), Passive wait (B).– Simultaneous active initiation (A & B).
• TCP mengabaikan request tambahan untuk koneksi yang sama yang sudah dibentuk
ET5044 – T2N – Telematics Lab. ITB
52
Menutup koneksi TCP• TCP menggunakan modified three-way handshake (four-way
handshaking) untuk menutup koneksi secara halus• Setelah mengirimkan data yang tersisa, salah satu pihak akan
mencoba menutup setengah koneksi dengan mengirimkan segmen dengan bit FIN diset
• FIN di-acknowledged dan koneksi diputus setengah (menunggu pemutusan dari pihak lain)
• FIN pertama hanya di-acknowledged• FIN kedua dikirimkan bersama redundant ACK untuk FIN pertama• Mesin yang pertama memutuskan koneksi akan mengirimkan
ACK terakhir yang memutuskan koneksi
ET5044 – T2N – Telematics Lab. ITB
53
(application closes connection)
• Send FIN seq=x
•ReceiveACK segment
• ReceiveFINACK segment
• Send ACK y + 1
• Receive FIN segment(inform application)• Send ACK x + 1
• Receive ACK segment
(app. closes connection)• Send
FIN seq=yACK x +1
Events At Site 1A
Network Messages Events At Site 2B
ET5044 – T2N – Telematics Lab. ITB
54
ET5044 – T2N – Telematics Lab. ITB
55
TCP connection reset
• Jika sebuah segment dikirimkan dengan field CODE yang bit RST dio-set (initiating a connection termination):– Pihak lain akan segera membatalkan koneksi
• An instantaneous abort frees all buffer space allocated for that connection and ceases the full-duplex communication.
ET5044 – T2N – Telematics Lab. ITB
56
Memaksa pengiriman dengan PUSH
• Push (PSH bit)– Dikirimkan pada segmen yang memerlukan
pengiriman segera– Contoh kasus : interactive users (keystroke: usually
used after each one).– Cara untuk segera mengirimkan informasi tanpa
harus disimpan di buffer
ET5044 – T2N – Telematics Lab. ITB
57
Reserved Port Numbers
• Ports less than 256 (integer number) are used for well-known ports.
• Usually ports less than 1023 are used, but only ports less than 256 are standard.
• Meskipun port UDP dan TCP independent satu sama lain, nomor port yang sama dapat digunakan untuk mengakses layanan yang tersedia bagi kedua protokol
ET5044 – T2N – Telematics Lab. ITB
58
• Port number assignment dapat dilihat di : http://www.iana.org/assignments/port-numbers