transport layer udptcp

58
ET5044 – T2N – Telematics Lab. ITB 1 TRANSPORT LAYER TRANSPORT LAYER UDP UDP TCP TCP

Upload: zainuddin-kurnia

Post on 28-Jan-2015

140 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

1

TRANSPORT LAYERTRANSPORT LAYERUDPUDPTCPTCP

Page 2: TRANSPORT LAYER UDPTCP

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

Page 3: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

3

Page 4: TRANSPORT LAYER UDPTCP

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

Page 5: TRANSPORT LAYER UDPTCP

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

Page 6: TRANSPORT LAYER UDPTCP

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

Page 7: TRANSPORT LAYER UDPTCP

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

Page 8: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

8

Nomor Port

Page 9: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

9

Page 10: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

10

Alokasi nomor port

Page 11: TRANSPORT LAYER UDPTCP

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

Page 12: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

12

Socket Address

Page 13: TRANSPORT LAYER UDPTCP

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

. . .

Page 14: TRANSPORT LAYER UDPTCP

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

Page 15: TRANSPORT LAYER UDPTCP

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

Page 16: TRANSPORT LAYER UDPTCP

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

Page 17: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

17

Format datagram UDP yang dilengkapi pseudo-header

Page 18: TRANSPORT LAYER UDPTCP

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

Page 19: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

19

UDP encapsulation & decapsulation

Page 20: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

20

Transmission Control Protocol(TCP)

Page 21: TRANSPORT LAYER UDPTCP

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

Page 22: TRANSPORT LAYER UDPTCP

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

Page 23: TRANSPORT LAYER UDPTCP

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

Page 24: TRANSPORT LAYER UDPTCP

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

Page 25: TRANSPORT LAYER UDPTCP

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

Page 26: TRANSPORT LAYER UDPTCP

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

Page 27: TRANSPORT LAYER UDPTCP

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)

Page 28: TRANSPORT LAYER UDPTCP

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

Page 29: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

29

Tiga macam kondisi paket dalam protokol sliding window

SuccessfullyTransmitted(received and

acknowledged)

BeingTransmitted

Not YetTransmitted

Page 30: TRANSPORT LAYER UDPTCP

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

Page 31: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

31

Page 32: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

32

Page 33: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

33

Sliding window with pointer

Page 34: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

34

Window management

Page 35: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

35

Corrupted segments

Page 36: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

36

Lost segment

Page 37: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

37

Lost acknowledgment

Page 38: TRANSPORT LAYER UDPTCP

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

Page 39: TRANSPORT LAYER UDPTCP

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

Page 40: TRANSPORT LAYER UDPTCP

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

Page 41: TRANSPORT LAYER UDPTCP

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

Page 42: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

42

Sent and

ACKed

Sent & Not

Yet ACKed

To be Sent Not Yet

Generated

(waiting for

window slide)

Pointers

Page 43: TRANSPORT LAYER UDPTCP

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

Page 44: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

44

Format segmen TCP

Details later……

Page 45: TRANSPORT LAYER UDPTCP

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

Page 46: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

46

Congestion Control

•Next Time

Page 47: TRANSPORT LAYER UDPTCP

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

Page 48: TRANSPORT LAYER UDPTCP

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

Page 49: TRANSPORT LAYER UDPTCP

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)

Page 50: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

50

Page 51: TRANSPORT LAYER UDPTCP

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

Page 52: TRANSPORT LAYER UDPTCP

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

Page 53: TRANSPORT LAYER UDPTCP

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

Page 54: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

54

Page 55: TRANSPORT LAYER UDPTCP

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.

Page 56: TRANSPORT LAYER UDPTCP

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

Page 57: TRANSPORT LAYER UDPTCP

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

Page 58: TRANSPORT LAYER UDPTCP

ET5044 – T2N – Telematics Lab. ITB

58

• Port number assignment dapat dilihat di : http://www.iana.org/assignments/port-numbers