UDP: User Datagram Protocol [RFC 768 no frills ""bare bones' Internet transport Why is there a UDP? rotoco o no connection 0" best effort"service, UDP establishment(which can segments may be add delay o lost g simple: no connection state o delivered out of order at sender receiver to app o small segment header( 8 g connectionless Bytes) o no handshaking between o no congestion control: UDP UDP sender receiver can blast away as fast as o each UDP segment desired handled independently of others
Comp 361, Spring 2005 3: Transport Layer 16 UDP: User Datagram Protocol [RFC 768] “no frills,” “bare bones” Internet transport protocol “best effort” service, UDP segments may be: lost delivered out of order to app connectionless: no handshaking between UDP sender, receiver each UDP segment handled independently of others Why is there a UDP? no connection establishment (which can add delay) simple: no connection state at sender, receiver small segment header (8 Bytes) no congestion control: UDP can blast away as fast as desired
UDP: more o offen used for streaming multimedia apps 32 bits o loss tolerant Length source port dest port o rate sensitive bytes of UDP length checksum 口 other UDP uses segment including (why? ) eader o DNS: small delay O SNMP: stressful cond Application g reliable transfer over UDP data add reliability at message application layer o application-specific UDP segment format error recover
Comp 361, Spring 2005 3: Transport Layer 17 UDP: more often used for streaming multimedia apps loss tolerant rate sensitive other UDP uses (why?): DNS: small delay SNMP: stressful cond. reliable transfer over UDP: add reliability at application layer application-specific error recover! source port # dest port # 32 bits Application data (message) UDP segment format length checksum Length, in bytes of UDP segment, including header
UDP checksum Goal: detect " errors"(e., flipped bits)in transmitted segment Receiver Sender 口 compute checksum of o treat segment contents received segment as sequence of 16-bit o check if computed checksum Integers equals checksum field value o checksum: addition(1s o NO-error detected complement sum)of O yES- no error detected But maybe errors segment contents nonetheless? More later 口 sender puts checksum o Receiver may choose to value into udp checksum discard segment or send a field warning to app in case error
Comp 361, Spring 2005 3: Transport Layer 18 UDP checksum Sender: treat segment contents as sequence of 16-bit integers checksum: addition (1’ s complement sum) of segment contents sender puts checksum value into UDP checksum field Receiver: compute checksum of received segment check if computed checksum equals checksum field value: NO - error detected YES - no error detected. But maybe errors nonetheless? More later .. Receiver may choose to discard segment or send a warning to app in case error Goal: detect “errors” (e.g.,flipped bits) in transmitted segment
Chapter 3 outline 口31 Transport-ayer d3.5 Connection-oriented services transport: TCP 03.2 Multiplexing and o segment structure demultiplexing o reliable data transfer 03. 3 Connectionless flow control transport: UDP o connection management O 3.4 Principles of 口36 Principles of reliable data transfer congestion control 口3.7 TCP congestion contro
Comp 361, Spring 2005 3: Transport Layer 19 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles of reliable data transfer 3.5 Connection-oriented transport: TCP segment structure reliable data transfer flow control connection management 3.6 Principles of congestion control 3.7 TCP congestion control
Principles of reliable data transfer o important in app. transport, link layers o top-10 list of important networking topics COO sending recelver process process data data Reliable channel rat send()↓四 a ata deliver_data( reliable data reliable data transfer protocol transfer protocol (sending side) (receiving side uand0四[wxt- dt rcv Unreliable channe (a) provided service (b) service implementation o characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt
Comp 361, Spring 2005 3: Transport Layer 20 Principles of Reliable data transfer important in app., transport, link layers top-10 list of important networking topics! characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)