UDP:User Datagram Protocol [RFC 7681 ÷“no frills,”“pare bones” UDP use: Internet transport streaming multimedia protocol apps (loss tolerant, "best effort"service, rate sensitive) UDP segments may be: DNS lost SNMP delivered out-of-order reliable transfer over to app UDP: connectionless: add reliability at no handshaking between UDP application layer sender,receiver application-specific ■each UDP segment error recovery! handled independently of others Transport Layer 3-16
Transport Layer 3-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 UDP use: streaming multimedia apps (loss tolerant, rate sensitive) DNS SNMP reliable transfer over UDP: add reliability at application layer application-specific error recovery!
UDP:segment header length,in bytes of 32 bits UDP segment, source port dest port including header length* checksum why is there a UDP? no connection application establishment (which data can add delay) (payload) simple:no connection state at sender,receiver small header size UDP segment format no congestion control: UDP can blast away as fast as desired Transport Layer 3-17
Transport Layer 3-17 UDP: segment header source port # dest port # 32 bits application data (payload) UDP segment format length checksum length, in bytes of UDP segment, including header no connection establishment (which can add delay) simple: no connection state at sender, receiver small header size no congestion control: UDP can blast away as fast as desired why is there a UDP?
UDP checksum Goal:detect“errors”(e.g,flipped bits)in transmitted segment sender: receiver: treat segment compute checksum of contents,including received segment header fields,as sequence of 16-bit 冬 check if computed integers checksum equals checksum field value: checksum:addition (one's complement ■NO-error detected sum)of segment YES -no error contents detected.But maybe sender puts checksum errors nonetheless? value into UDP More later.... checksum field Transport Layer 3-18
Transport Layer 3-18 UDP checksum sender: treat segment contents, including header fields, as sequence of 16-bit integers checksum: addition (one’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 …. Goal: detect “errors” (e.g., flipped bits) in transmitted segment
Internet checksum:example example:add two 16-bit integers 1110011001100110 1101010101010101 wraparound ①1011101110111011 sum 1011101110111100 checksum 0100010001000011 Note:when adding numbers,a carryout from the most significant bit needs to be added to the result Transport Layer 3-19
Transport Layer 3-19 Internet checksum: example example: add two 16-bit integers 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 wraparound sum checksum Note: when adding numbers, a carryout from the most significant bit needs to be added to the result
Chapter 3 outline 3.1 transport-layer 3.5 connection-oriented services transport:TCP 3.2 multiplexing and segment structure demultiplexing reliable data transfer 3.3 connectionless ■flow control transport:UDP connection 3.4 principles of management reliable data 3.6 principles of transfer congestion control 3.7 TCP congestion control Transport Layer 3-20
Transport Layer 3-20 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