UDP: User Datagram Protocol. UDP: User Datagram Protocol [RFC 768] r “bare bones”, “best effort” transport protocol r connectionless: m no handshaking.

Slides:



Advertisements
Similar presentations
Transport Layer3-1 Transport Overview and UDP. Transport Layer3-2 Goals r Understand transport services m Multiplexing and Demultiplexing m Reliable data.
Advertisements

CPSC 441: Intro, UDP1 Transport Layer Instructor: Carey Williamson Office: ICT Class Location:
EEC-484/584 Computer Networks Lecture 15 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Computer Communication Digital Communication in the Modern World Transport Layer Multiplexing, UDP
Chapter 3: Transport Layer
Transport Layer3-1 Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable data transfer.
Lecture 8 Chapter 3 Transport Layer
CPSC 441: Intro, UDP1 Instructor: Anirban Mahanti Office: ICT Class Location: ICT 121 Lectures: MWF 12:00 – 12:50 Notes.
TCP/IP Sockets in C: Practical Guide for Programmers Michael J. Donahoo Kenneth L. Calvert.
1 Internet transport-layer protocols r reliable, in-order delivery (TCP) m congestion control m flow control m connection setup r unreliable, unordered.
Some slides are in courtesy of J. Kurose and K. Ross Review of Previous Lecture Electronic Mail: SMTP, POP3, IMAP DNS Socket programming with TCP.
3-1 Transport services and protocols r provide logical communication between app processes running on different hosts r transport protocols run in end.
1 Computer Networks Transport Layer Protocols. 2 Application-layer Protocols Application-layer protocols –one “piece” of an app –define messages exchanged.
8-1 Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable data transfer m flow.
Transport Layer Transport Layer. Transport Layer 3-2 Chapter 3 Transport Layer Computer Networking: A Top Down Approach Featuring the Internet,
Previous Lecture r P2P file sharing r Socket programming with TCP r Socket programming with UDP.
IP-UDP-RTP Computer Networking (In Chap 3, 4, 7) 건국대학교 인터넷미디어공학부 임 창 훈.
Review: –What is AS? –What is the routing algorithm in BGP? –How does it work? –Where is “policy” reflected in BGP (policy based routing)? –Give examples.
Data Communications and Computer Networks Chapter 3 CS 3830 Lecture 12 Omar Meqdadi Department of Computer Science and Software Engineering University.
CS 1652 The slides are adapted from the publisher’s material All material copyright J.F Kurose and K.W. Ross, All Rights Reserved Jack Lange.
Network LayerII-1 RSC Part III: Transport Layer 1. Basic Concepts Redes y Servicios de Comunicaciones Universidad Carlos III de Madrid These slides are,
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 All.
Transport Layer and UDP Tahir Azim Ref:
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 Part.
Chapter 3 Transport Layer
1 Writing Network Applications using the TCP/IP Protocol Stack: Socket Programming.
Transport Layer3-1 Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable data transfer.
Transport Layer3-1 Chapter 3 Transport Layer These ppt slides are originally from the Kurose and Ross’s book. But some slides are deleted and added for.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 A.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley,
Transport Layer3-1 Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable.
Transport Layer1 Ram Dantu (compiled from various text books)
1 Transport Layer Lecture 7 Imran Ahmed University of Management & Technology.
Lecture91 Administrative Things r Return homework # 1 r Review some problems in homework # 1 r Questions about grading? Yona r WebCT for CSE245 is working!
The Transport Layer application transport network data link physical application transport network data link physical application transport network data.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 4 th edition. Jim Kurose, Keith Ross Addison-Wesley, July A.
The Pocket Guide to TCP/IP Sockets: C Version Michael J. Donahoo Kenneth L. Calvert.
Transport Layer 3-1 Chapter 3 Outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP.
Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable data transfer.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross Addison-Wesley,
Prof. Younghee Lee 1 1 Computer Networks u Lecture 5: Transport services and protocols Prof. Younghee Lee * Some part of this teaching materials are prepared.
MULTIPLEXING/DEMULTIPLEXING, CONNECTIONLESS TRANSPORT.
CSCI 330 UNIX and Network Programming Unit XIV: User Datagram Protocol.
Transport Layer3-1 Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable.
Application Layer 2-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
Introduction 1-1 source application transport network link physical HtHt HnHn M segment HtHt datagram destination application transport network link physical.
2: Transport Layer 11 Transport Layer 1. 2: Transport Layer 12 Part 2: Transport Layer Chapter goals: r understand principles behind transport layer services:
Spring 2006 CPE : Transport Layer Overview2-1 Special Topics in Computer Engineering The Transport Layer in the Internet: Overview Some of these.
Socket Programming(1/2). Outline  1. Introduction to Network Programming  2. Network Architecture – Client/Server Model  3. TCP Socket Programming.
@Yuan Xue A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their.
CSEN 404 Transport Layer I Amr El Mougy Lamia Al Badrawy.
Chapter 3 Transport Layer
Introduction to Networks
Chapter 3 Transport Layer
Transport Layer Slides are originally from instructor: Carey Williamson at University of Calgary Very minor modification are made Notes derived from “Computer.
Chapter 3 outline 3.1 Transport-layer services
06- Transport Layer Transport Layer.
The Pocket Guide to TCP/IP Sockets: C Version
CS 1652 Jack Lange University of Pittsburgh
Introduction to Networks
Transport Layer Our goals:
September 19th, 2013 CS1652 Jack Lange University of Pittsburgh
Socket Programming in C
Transport Layer Our goals:
Chapter 3 Transport Layer
Chapter 5 Transport Layer Introduction
Chapter 3 Transport Layer
Transport Layer Our goals:
Presentation transcript:

UDP: User Datagram Protocol

UDP: User Datagram Protocol [RFC 768] r “bare bones”, “best effort” transport protocol r connectionless: m no handshaking between UDP sender, receiver before packets start being exchanged m each UDP segment handled independently of others r Just provides multiplexing/demultiplexing Pros: r No connection establishment m No delay to start sending/receiving packets r Simple m no connection state at sender, receiver r Small segment header m Just 8 bytes of header Cons: r “best effort” transport service means, UDP segments may be: m lost m delivered out of order to app r no congestion control: UDP can blast away as fast as desired

UDP more r often used for streaming multimedia apps m loss tolerant m rate sensitive r other UDP uses m DNS m SNMP r reliable transfer over UDP: add reliability at application layer m application-specific error recovery! source port #dest port # 32 bits Application data (message) UDP segment format length checksum Length, in bytes of UDP segment, including header Used for Mux/Demux

UDP Demultiplexing r Create sockets with port numbers: DatagramSocket mySocket1 = new DatagramSocket(6428); DatagramSocket mySocket2 = new DatagramSocket(4567); r UDP socket identified by two-tuple: ( dest IP address, dest port number) r When host receives UDP segment: m checks destination port number in segment m directs UDP segment to socket with that port number r IP datagrams with different source IP addresses and/or source port numbers directed to same socket

UDP Demultiplexing Example Client IP:B P client IP: A P1PP server IP: C SP: 6428 DP: 9157 SP: 9157 DP: 6428 SP: 6428 DP: 5775 SP: 5775 DP: 6428 Source Port (SP) provides “return address”: Identifies the process at the other end of the line DatagramSocket serverSocket = new DatagramSocket(6428);

UDP checksum Sender: r treat segment contents as sequence of 16-bit integers r checksum: addition (1’s complement sum) of segment contents r sender puts checksum value into UDP checksum field Receiver: r compute checksum of received segment r check if computed checksum equals checksum field value: m NO - error detected m YES - no error detected. But maybe errors nonetheless? Reordered bytes r Why checksum at UDP if LL provides error checking? m IP is supposed to run over ANY LL, so UDP does its own error checking Goal: detect “errors” (e.g., flipped bits) in transmitted segment

How to program using the UDP? TCP UDP IP LL PL Socket Layer TCP UDP IP LL PL Socket Layer TCP UDP IP LL PL Socket Layer r Socket Layer: m Programmer’s API to the protocol stack r Typical network app has two pieces: client and server r Server: Passive entity. Provides service to clients m e.g., Web server responds with the requested Web page r Client: initiates contact with server (“speaks first”) m typically requests service from server, e.g., Web Browser

Socket Creation FamilyType Protocol TCP PF_INET SOCK_STREAMIPPROTO_TCP UDPSOCK_DGRAMIPPROTO_UDP r mySock = socket(family, type, protocol); r UDP/TCP/IP-specific sockets r Socket reference m File (socket) descriptor in UNIX m Socket handle in WinSock

UDP Client/Server Interaction Client 1. Create a UDP socket 2. Communicate (send/receive messages) 3. When done, close the socket Server 1. Create a UDP socket 2. Assign a port to socket 3. Communicate (receive/send messages) 4. When done, close the socket Server starts by getting ready to receive client messages…

UDP Client/Server Interaction Client 1. Create a UDP socket 2. Communicate (send/receive messages) 3. When done, close the socket Server 1. Create a UDP socket 2. Assign a port to socket 3. Communicate (receive/send messages) 4. When done, close the socket /* Create socket for incoming messages */ if ((servSock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) Error("socket() failed");

UDP Client/Server Interaction Client 1. Create a UDP socket 2. Communicate (send/receive messages) 3. When done, close the socket Server 1. Create a UDP socket 2. Assign a port to socket 3. Communicate (receive/send messages) 4. When done, close the socket ServAddr.sin_family = PF_INET; /* Internet address family */ ServAddr.sin_addr.s_addr = htonl(INADDR_ANY); /* Any incoming interface */ ServAddr.sin_port = htons(20000); /* Local port */ if (bind(servSock, (struct sockaddr *) &ServAddr, sizeof(ServAddr)) < 0) Error("bind() failed");

Specifying Addresses r struct sockaddr { unsigned short sa_family;/* Address family (e.g., PF_INET) */ char sa_data[14]; /* Protocol-specific address information */ }; r struct sockaddr_in { unsigned short sin_family;/* Internet protocol (PF_INET) */ unsigned short sin_port; /* Port (16-bits) */ struct in_addr sin_addr; /* Internet address (32-bits) */ char sin_zero[8]; /* Not used */ }; struct in_addr { unsigned long s_addr; /* Internet address (32-bits) */ }; Generic IP Specific

UDP Client/Server Interaction Client 1. Create a UDP socket 2. Communicate (send/receive messages) 3. When done, close the socket Server 1. Create a UDP socket 2. Assign a port to socket 3. Communicate (receive/send messages) 4. When done, close the socket struct sockaddr_in peer; int peerSize = sizeof(peer); char buffer[65536]; recvfrom(servSock, buffer, 65536, 0, (struct sockaddr *)&peer, &peerSize);

UDP Client/Server Interaction Client 1. Create a UDP socket 2. Communicate (send/receive messages) 3. When done, close the socket Server 1. Create a UDP socket 2. Assign a port to socket 3. Communicate (receive/send messages) 4. When done, close the socket Server is now blocked waiting for a message from a client

UDP Client/Server Interaction Client 1. Create a UDP socket 2. Communicate (send/receive messages) 3. When done, close the socket Server 1. Create a UDP socket 2. Assign a port to socket 3. Communicate (receive/send messages) 4. When done, close the socket Later, a client decides to talk to the server…

UDP Client/Server Interaction Client 1. Create a UDP socket 2. Communicate (send/receive messages) 3. When done, close the socket Server 1. Create a UDP socket 2. Assign a port to socket 3. Communicate (receive/send messages) 4. When done, close the socket /* Create socket for outgoing messages */ if ((clientSock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) Error("socket() failed");

UDP Client/Server Interaction Client 1. Create a UDP socket 2. Communicate (send/receive messages) 3. When done, close the socket Server 1. Create a UDP socket 2. Assign a port to socket 3. Communicate (receive/send messages) 4. When done, close the socket // Initialize server’s address and port struct sockaddr_in server; server.sin_family = AF_INET; server.sin_addr.s_addr = inet_addr(“ ”); server.sin_port = htons(20000); // Send it to the server sendto(clientSock, buffer, msgSize, 0, (struct sockaddr *)&server, sizeof(server));

UDP Client/Server Interaction Client 1. Create a UDP socket 2. Communicate (send/receive messages) 3. When done, close the socket Server 1. Create a UDP socket 2. Assign a port to socket 3. Communicate (receive/send messages) 4. When done, close the socket close(clientSock);close(serverSock);