User Datagram Protocol (UDP) UDP [RFC 768] UDP Socket

Total Page:16

File Type:pdf, Size:1020Kb

User Datagram Protocol (UDP) UDP [RFC 768] UDP Socket User Datagram Protocol (UDP) UDP service: • “no frills,” “bare bones” extension of best-effort IP Computer Networks • “best effort” service, UDP segments may be: • lost • delivered out of order to app • connectionless: • no handshaking between UDP sender and receiver Lecture 25: • each UDP segment handled independently of others UDP Socket UDP [RFC 768] UDP Socket 32 bits UDP socket identified by the tuple: src port # dst port # length, in bytes, of <dest IP address, dest port number> UDP segment, length checksum Checksum: (contrast with TCP’s four-tuple!) including header • checksum computed including pseudo IP header (containing src and dst IP When a host receives a UDP segment, it: Application addresses, protocol, data • checks the destination port number and segment length) (message) • computed with all 0’s in the • directs the UDP segment to the socket with that port number checksum field ⇒ IP datagrams with different source IP addresses and/or source • Internet checksum: 1’s port numbers are directed to the same socket complement of 1’s UDP segment format complement sum when checksum is computed at receiver, result is 0 Connectionless Demultiplexing UDP Socket Similar to TCP’s stream sockets, except: P2 P1 P1 P3 • sockets created using SOCK_DGRAM instead of SOCK_STREAM • no need for connection establishment and termination SP: 6428 SP: 6428 DP: 9157 DP: 5775 • no connect-bind, listen, accept handshaking, but server must still always call bind() SP: 9157 SP: 5775 DP: 6428 DP: 6428 • client doesn’t need to call connect() client server client though client may use connect() to tell kernel to IP: A IP:C IP:B “remember” the server’s address and port# SP provides “return address” Data Transmission No Connection No “connection” between sender and receiver • sender explicitly attaches IP address and port# of destination to each packet, by using sendto() instead of send() • send() can still be used if server’s address and port# have been “registered” with kernel using connect() • if receiver uses recvfrom() it can extract IP address and port# of sender from received packet • if these are not needed, recv() may be used instead Transmitted data may be delivered out of order, or not delivered at all Stevens Socket Addresses Data Transmission Somewhere in the socket structure: UDP packets have boundaries, not forming a byte-stream as in TCP, so recv() retrieves one message at a time, i.e., no need to call TCP Server: UDP Server: recv() in a loop • call to recv() returns the whole packet • cannot retrieve only parts of a packet TCP Client: UDP Client: • to inspect a packet call recv() with flags=MSG_PEEK • same for recvfrom() and recvmsg() Stevens Socket Buffers Lab5 Demo When receiver’s socket receive buffer is full, incoming Best-effort netimg with no flow-control and no UDP packets will simply be dropped error-control Learn how to set send and receive buffer sizes If sender’s socket send buffer is smaller than the size of Play with different receive buffer sizes and observe UDP data passed to send(), send() returns -1 and effect of lack of flow control the system global variable errno is set to EMSGSIZE Play with different drop rates and observe effect of The APIs getsockopt() and setsockopt() are used lack of error control to query and set socket options, including the Learn how to send and receive large data buffer SO_RCVBUF and SO_SNDBUF options using gather write (sendmsg()) and scatter read (recvmsg()) Output data is gathered How to Send a Large File Gather Write from multiple buffers Error recovery and correction both require send this i/o vector associating data with sequence number (sqn) sqnsqnsqn7K1K2K3K4K8K5K6K0 reused! How to attach sequence numbers to chunks of data to be sent (assuming 1K segment)? to be sent on network: 0 1K 2K 3K sqn1K sqn1K 4K 5K 6K 7K sqn5K sqn0 sqn5K sqn0 FILE IN MEMORY FILE IN MEMORY sqn7K 8K sqn7K sqn6K sqn8K sqn6K sqn8K sqn2K sqn4K sqn3K sqn2K sqn4K sqn3K Input data is scattered Scatter Read into multiple buffers Out-of-Order Packets receive into here i/o vector receive into here i/o vector sqnsqnsqn1K2K3K4K5K6K7K8K0 reused! sqnsqnsqn2K3K5K6K7K8K4K0 reused! received from network: received from network: sqn1K sqn5K sqn0 sqn5K sqn0 MEMORY BUFFER MEMORY BUFFER sqn7K sqn7K sqn6K sqn8K sqn6K sqn8K sqn2K sqn2K sqn4K sqn3K sqn4K sqn3K TCP can also use sendto(), recvfrom(), sendmsg(), Data Scatter/Gather and recvmsg() Lab5: Sequence Number The socket APIs for scatter-gather I/O are Sequence number is per byte, not per packet recvmsg(sd, msg, flags) and sendmsg(sd, msg, flags) The sequence number attached to a packet is the used to identify sequence number of its first byte destination when sending The sequence number of a byte is its byte offset from the start of image buffer pointer to a sqn vector of This enables out-of-order data to be placed in its pointers to data buffers right position in the image buffer where sender information is stored when receiving [Stevens] Lab5: Interoperability Testing Home firewall may block UDP packets Use “ssh -Y” to test client on CAEN eecs489 hosts if UDP blocked by home firewall • on Windows, use MobaXterm or similar tools that supports X forwarding VNC may have OpenGL compatibility issues and is slower .
Recommended publications
  • DE-CIX Academy Handout
    Networking Basics 04 - User Datagram Protocol (UDP) Wolfgang Tremmel [email protected] DE-CIX Management GmbH | Lindleystr. 12 | 60314 Frankfurt | Germany Phone + 49 69 1730 902 0 | [email protected] | www.de-cix.net Networking Basics DE-CIX Academy 01 - Networks, Packets, and Protocols 02 - Ethernet 02a - VLANs 03 - the Internet Protocol (IP) 03a - IP Addresses, Prefixes, and Routing 03b - Global IP routing 04 - User Datagram Protocol (UDP) 05 - TCP ... Layer Name Internet Model 5 Application IP / Internet Layer 4 Transport • Data units are called "Packets" 3 Internet 2 Link Provides source to destination transport • 1 Physical • For this we need addresses • Examples: • IPv4 • IPv6 Layer Name Internet Model 5 Application Transport Layer 4 Transport 3 Internet 2 Link 1 Physical Layer Name Internet Model 5 Application Transport Layer 4 Transport • May provide flow control, reliability, congestion 3 Internet avoidance 2 Link 1 Physical Layer Name Internet Model 5 Application Transport Layer 4 Transport • May provide flow control, reliability, congestion 3 Internet avoidance 2 Link • Examples: 1 Physical • TCP (flow control, reliability, congestion avoidance) • UDP (none of the above) Layer Name Internet Model 5 Application Transport Layer 4 Transport • May provide flow control, reliability, congestion 3 Internet avoidance 2 Link • Examples: 1 Physical • TCP (flow control, reliability, congestion avoidance) • UDP (none of the above) • Also may contain information about the next layer up Encapsulation Packets inside packets • Encapsulation is like Russian dolls Attribution: Fanghong. derivative work: Greyhood https://commons.wikimedia.org/wiki/File:Matryoshka_transparent.png Encapsulation Packets inside packets • Encapsulation is like Russian dolls • IP Packets have a payload Attribution: Fanghong.
    [Show full text]
  • User Datagram Protocol - Wikipedia, the Free Encyclopedia Página 1 De 6
    User Datagram Protocol - Wikipedia, the free encyclopedia Página 1 de 6 User Datagram Protocol From Wikipedia, the free encyclopedia The five-layer TCP/IP model User Datagram Protocol (UDP) is one of the core 5. Application layer protocols of the Internet protocol suite. Using UDP, programs on networked computers can send short DHCP · DNS · FTP · Gopher · HTTP · messages sometimes known as datagrams (using IMAP4 · IRC · NNTP · XMPP · POP3 · Datagram Sockets) to one another. UDP is sometimes SIP · SMTP · SNMP · SSH · TELNET · called the Universal Datagram Protocol. RPC · RTCP · RTSP · TLS · SDP · UDP does not guarantee reliability or ordering in the SOAP · GTP · STUN · NTP · (more) way that TCP does. Datagrams may arrive out of order, 4. Transport layer appear duplicated, or go missing without notice. TCP · UDP · DCCP · SCTP · RTP · Avoiding the overhead of checking whether every RSVP · IGMP · (more) packet actually arrived makes UDP faster and more 3. Network/Internet layer efficient, at least for applications that do not need IP (IPv4 · IPv6) · OSPF · IS-IS · BGP · guaranteed delivery. Time-sensitive applications often IPsec · ARP · RARP · RIP · ICMP · use UDP because dropped packets are preferable to ICMPv6 · (more) delayed packets. UDP's stateless nature is also useful 2. Data link layer for servers that answer small queries from huge 802.11 · 802.16 · Wi-Fi · WiMAX · numbers of clients. Unlike TCP, UDP supports packet ATM · DTM · Token ring · Ethernet · broadcast (sending to all on local network) and FDDI · Frame Relay · GPRS · EVDO · multicasting (send to all subscribers). HSPA · HDLC · PPP · PPTP · L2TP · ISDN · (more) Common network applications that use UDP include 1.
    [Show full text]
  • Is QUIC a Better Choice Than TCP in the 5G Core Network Service Based Architecture?
    DEGREE PROJECT IN INFORMATION AND COMMUNICATION TECHNOLOGY, SECOND CYCLE, 30 CREDITS STOCKHOLM, SWEDEN 2020 Is QUIC a Better Choice than TCP in the 5G Core Network Service Based Architecture? PETHRUS GÄRDBORN KTH ROYAL INSTITUTE OF TECHNOLOGY SCHOOL OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Is QUIC a Better Choice than TCP in the 5G Core Network Service Based Architecture? PETHRUS GÄRDBORN Master in Communication Systems Date: November 22, 2020 Supervisor at KTH: Marco Chiesa Supervisor at Ericsson: Zaheduzzaman Sarker Examiner: Peter Sjödin School of Electrical Engineering and Computer Science Host company: Ericsson AB Swedish title: Är QUIC ett bättre val än TCP i 5G Core Network Service Based Architecture? iii Abstract The development of the 5G Cellular Network required a new 5G Core Network and has put higher requirements on its protocol stack. For decades, TCP has been the transport protocol of choice on the Internet. In recent years, major Internet players such as Google, Facebook and CloudFlare have opted to use the new QUIC transport protocol. The design assumptions of the Internet (best-effort delivery) differs from those of the Core Network. The aim of this study is to investigate whether QUIC’s benefits on the Internet will translate to the 5G Core Network Service Based Architecture. A testbed was set up to emulate traffic patterns between Network Functions. The results show that QUIC reduces average request latency to half of that of TCP, for a majority of cases, and doubles the throughput even under optimal network conditions with no packet loss and low (20 ms) RTT. Additionally, by measuring request start and end times “on the wire”, without taking into account QUIC’s shorter connection establishment, we believe the results indicate QUIC’s suitability also under the long-lived (standing) connection model.
    [Show full text]
  • RFC 5405 Unicast UDP Usage Guidelines November 2008
    Network Working Group L. Eggert Request for Comments: 5405 Nokia BCP: 145 G. Fairhurst Category: Best Current Practice University of Aberdeen November 2008 Unicast UDP Usage Guidelines for Application Designers Status of This Memo This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements. Distribution of this memo is unlimited. Copyright Notice Copyright (c) 2008 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/ license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Abstract The User Datagram Protocol (UDP) provides a minimal message-passing transport that has no inherent congestion control mechanisms. Because congestion control is critical to the stable operation of the Internet, applications and upper-layer protocols that choose to use UDP as an Internet transport must employ mechanisms to prevent congestion collapse and to establish some degree of fairness with concurrent traffic. This document provides guidelines on the use of UDP for the designers of unicast applications and upper-layer protocols. Congestion control guidelines are a primary focus, but the document also provides guidance on other topics, including message sizes, reliability, checksums, and middlebox traversal. Eggert & Fairhurst Best Current Practice [Page 1] RFC 5405 Unicast UDP Usage Guidelines November 2008 Table of Contents 1. Introduction . 3 2. Terminology . 5 3. UDP Usage Guidelines .
    [Show full text]
  • Internet Protocol Suite
    InternetInternet ProtocolProtocol SuiteSuite Srinidhi Varadarajan InternetInternet ProtocolProtocol Suite:Suite: TransportTransport • TCP: Transmission Control Protocol • Byte stream transfer • Reliable, connection-oriented service • Point-to-point (one-to-one) service only • UDP: User Datagram Protocol • Unreliable (“best effort”) datagram service • Point-to-point, multicast (one-to-many), and • broadcast (one-to-all) InternetInternet ProtocolProtocol Suite:Suite: NetworkNetwork z IP: Internet Protocol – Unreliable service – Performs routing – Supported by routing protocols, • e.g. RIP, IS-IS, • OSPF, IGP, and BGP z ICMP: Internet Control Message Protocol – Used by IP (primarily) to exchange error and control messages with other nodes z IGMP: Internet Group Management Protocol – Used for controlling multicast (one-to-many transmission) for UDP datagrams InternetInternet ProtocolProtocol Suite:Suite: DataData LinkLink z ARP: Address Resolution Protocol – Translates from an IP (network) address to a network interface (hardware) address, e.g. IP address-to-Ethernet address or IP address-to- FDDI address z RARP: Reverse Address Resolution Protocol – Translates from a network interface (hardware) address to an IP (network) address AddressAddress ResolutionResolution ProtocolProtocol (ARP)(ARP) ARP Query What is the Ethernet Address of 130.245.20.2 Ethernet ARP Response IP Source 0A:03:23:65:09:FB IP Destination IP: 130.245.20.1 IP: 130.245.20.2 Ethernet: 0A:03:21:60:09:FA Ethernet: 0A:03:23:65:09:FB z Maps IP addresses to Ethernet Addresses
    [Show full text]
  • User Datagram Protocol (UDP)
    Overview • User datagram protocol (UDP) • Packet checksums • Reliability: sliding window • TCP connection setup • TCP windows, retransmissions, and acknowledgments Transport Protocol Review FTP HTTP NV TFTP TCP UDP IP … NET1 NET2 NETn • Transport protocols sit on top of the network layer (IP) • Can provide: - Application-level multiplexing (“ports”) - Error detection, reliability, etc. UDP – user datagram protocol 0 16 31 SrcPort DstPort Length Checksum Data • Unreliable and unordered datagram service • Adds multiplexing, checksum on whole packet • No flow control, reliability, or order guarantees • Endpoints identified by ports • Checksum aids in error detection Error detection • Transmission errors definitely happen - Cosmic rays, radio interference, etc. - If error probability is 2−30, that’s 1 error per 128 MB! • Some link-layer protocols provide error detection - But UDP/IP must work over many link layers - Not all links on a path may have error detection - Moreover, recall end-to-end argument! Need end-to-end check • UDP detects errors with a checksum - Compute small checksum value, like a hash of the packet - If packet corrupted in transit, checksum likely to be wrong - Similar checksum on IP header, but doesn’t cover payload Checksum algorithms • Good checksum algorithms - Should detect errors that are likely to happen (E.g., should detect any single bit error) - Should be efficient to compute • IP, UDP, and TCP use 1s complement sum: - Set checksum field to 0 - Sum all 16-bit words in pkt - Add any carry bits back in (So 0x8000 +
    [Show full text]
  • User Datagram Protocol UDP Is a Connectionless Transport Layer
    UDP: User Datagram Protocol UDP is a connectionless transport layer (layer 4) protocol in OSI model, which provides a simple and unreliable message service for transaction-oriented services. UDP is basically an interface between IP and upper-layer processes. UDP protocol ports distinguish multiple applications running on a single device from one another. Since many network applications may be running on the same machine, computers need something to make sure the correct software application on the destination computer gets the data packets from the source machine, and some way to make sure replies get routed to the correct application on the source computer. This is accomplished through the use of the UDP "port numbers". For example, if a station wished to use a Domain Name System (DNS) on the station 128.1.123.1, it would address the packet to station 128.1.123.1 and insert destination port number 53 in the UDP header. The source port number identifies the application on the local station that requested domain name server, and all response packets generated by the destination station should be addressed to that port number on the source station. Details of UDP port numbers could be found in the TCP/UDP Port Number document and in the reference. Unlike the TCP , UDP adds no reliability, flow-control, or error-recovery functions to IP. Because of UDP's simplicity, UDP headers contain fewer bytes and consume less network overhead than TCP. UDP is useful in situations where the reliability mechanisms of TCP are not necessary, such as in cases where a higher-layer protocol might provide error and flow control, or real time data transportation is required.
    [Show full text]
  • Nist Sp 800-77 Rev. 1 Guide to Ipsec Vpns
    NIST Special Publication 800-77 Revision 1 Guide to IPsec VPNs Elaine Barker Quynh Dang Sheila Frankel Karen Scarfone Paul Wouters This publication is available free of charge from: https://doi.org/10.6028/NIST.SP.800-77r1 C O M P U T E R S E C U R I T Y NIST Special Publication 800-77 Revision 1 Guide to IPsec VPNs Elaine Barker Quynh Dang Sheila Frankel* Computer Security Division Information Technology Laboratory Karen Scarfone Scarfone Cybersecurity Clifton, VA Paul Wouters Red Hat Toronto, ON, Canada *Former employee; all work for this publication was done while at NIST This publication is available free of charge from: https://doi.org/10.6028/NIST.SP.800-77r1 June 2020 U.S. Department of Commerce Wilbur L. Ross, Jr., Secretary National Institute of Standards and Technology Walter Copan, NIST Director and Under Secretary of Commerce for Standards and Technology Authority This publication has been developed by NIST in accordance with its statutory responsibilities under the Federal Information Security Modernization Act (FISMA) of 2014, 44 U.S.C. § 3551 et seq., Public Law (P.L.) 113-283. NIST is responsible for developing information security standards and guidelines, including minimum requirements for federal information systems, but such standards and guidelines shall not apply to national security systems without the express approval of appropriate federal officials exercising policy authority over such systems. This guideline is consistent with the requirements of the Office of Management and Budget (OMB) Circular A-130. Nothing in this publication should be taken to contradict the standards and guidelines made mandatory and binding on federal agencies by the Secretary of Commerce under statutory authority.
    [Show full text]
  • CHAPTER 02 Quizzes.Pdf
    1 Chapter 2 Quizzes 1 The TCP/IP protocol suite consists of _______ layers. A) two B) three C) five D) six 2 A router is involved in ____________ layers of the TCP/IP protocol suite. A) two B) three C) four D) five 3 A link-layer switch is involved in ______________ layers of the TCP/IP protocol suite. A) two B) three C) four D) five 4 In the TCP/IP protocol suite, which of the following is an application layer protocol? A) The User Datagram Protocol (UDP) B) The Internet Protocol (IP) C) The File Transfer Protocol (FTP) D) The Transmission Control Protocol (TCP) 5 In the TCP/IP protocol suite, which of the following is a transport-layer protocol? A) The Internet Control Message Protocol (ICMP) B) The Internet Protocol (IP) C) The Address Resolution Protocol (ARP) D) The Transmission Control Protocol (TCP) 6 In the TCP/IP protocol suite, which of the following is a network layer protocol? A) The Stream Control Transmission Protocol (SCTP) B) The Secure Shell (SSH) C) The Internet Protocol (IP) D) User Datagram Protocol (UDP) CREATED BY SAHAR SALEM 2 Chapter 2 Quizzes 7 The transport-layer packet in the TCP/IP protocol suite is called _______________. A) a message B) a datagram C) a segment or a user datagram D) a frame 8 In the TCP/IP protocol suite, the ______ layer is responsible for moving frames from one hop (node) to the next. A) physical B) data-link C) transport D) network 9 In the TCP/IP protocol suite, the physical layer is concerned with the movement of _______ over the physical medium.
    [Show full text]
  • Why Are Avaya Phones No Longer Able to Connect Via Ipsec VPN After Code Upgrade on the ASA?
    IPsec FAQ: Why are Avaya phones no longer able to connect via IPsec VPN after code upgrade on the ASA? Contents Introduction Why are Avaya phones no longer able to connect via IPSEC VPN after code upgrade on the Cisco Adaptive Security Appliance (ASA)? Introduction This document describes a problem encountered when Avaya is deployed on a system in which the phones use the built-in Internet Protocol Security (IPsec) client. Why are Avaya phones no longer able to connect via IPSEC VPN after code upgrade on the Cisco Adaptive Security Appliance (ASA)? In order to understand this problem, you need to understand how Network Address Translation traversal (NAT-T) and NAT discovery (NAT-D) works. The NAT-D process is comprised of these steps: 1. Detects one or more NAT devices between IPsec hosts. 2. Identifies if the peer supports NAT-T. 3. Negotiates the use of User Datagram Protocol (UDP) encapsulation of IPsec packets through NAT devices in the Internet Key Exchange (IKE). NAT-D sends the hashes of the IP addresses and ports of both IKE peers from each end to the other. If both ends calculate those hashes and produce the same results, they know there is no NAT between. The hashes are sent as a series of NAT-D payloads. Each payload contains one hash. In the case of multiple hashes, multiple NAT-D payloads are sent. Normally, there are only two NAT-D payloads. The NAT-D payloads are included in the third and fourth packets of the Main Mode, and in the second and third packets of the Aggressive Mode.
    [Show full text]
  • Keyed User Datagram Protocol: Concepts and Operation of an Almost Reliable Connectionless Transport Protocol
    Received September 20, 2018, accepted November 16, 2018, date of publication February 7, 2019, date of current version February 20, 2019. Digital Object Identifier 10.1109/ACCESS.2018.2886707 Keyed User Datagram Protocol: Concepts and Operation of an Almost Reliable Connectionless Transport Protocol NUNO M. GARCIA 1,2, FÁBIO GIL1,3, BÁRBARA MATOS1,4, COULIBALY YAHAYA5, (Member, IEEE), NUNO POMBO1,2, (Member, IEEE), AND ROSSITZA IVANOVA GOLEVA6 1Departamento de Informática, Faculdade de Engenharia, Universidade da Beira Interior, 6200-001 Covilhã, Portugal 2Instituto de Telecomunicações, 6200-001 Covilhã, Portugal 3ECATI, Universidade Lusófona de Humanidades e Tecnologias, 1749-024 Lisbon, Portugal 4Department of Artificial Intelligence and Systems Engineering, Faculty of Computer Science and Information Technology, Riga Technical University, LV-1658 R¯ıga, Latvia 5Université de Ségou, Ségou, Mali 6Department of Informatics, New Bulgarian University, 1618 Sofia, Bulgaria Corresponding author: Nuno M. Garcia ([email protected]) This work was supported by Grant FCT UID/EEA/50008/2013. ABSTRACT Departing from the well-known problem of the excessive overhead and latency of connection oriented protocols, this paper describes a new almost reliable connectionless protocol that uses user datagram protocol (UDP) segment format and is UDP compatible. The problem is presented and described, the motivation, the possible areas of interest and the concept and base operation modes for the protocol named keyed UDP are presented (here called KUDP). Also, discussed are some of the possible manners in which the KUDP can be used, addressing potential problems related with current networking technologies. As UDP is a connectionless protocol, and KUDP allows for some degree of detection of loss and re-ordering of segments received out-of-sequence, we also present a proposal for a stream reconstruction algorithm.
    [Show full text]
  • Tunneling DOWNLOAD
    Tunneling Tunneling is a way of creating a direct connection between two devices across a network, allowing them to communicate as if they were the only two devices around. The tunnel enables these two devices to communicate over the network without understanding TCP/IP or Ethernet. “That sounds like RealPort®,” you say. Well, not quite. RealPort only works if one of the devices is a computer that supports TCP/IP, like Windows or Linux. If neither device is a computer and neither device supports TCP/IP, then you need to tunnel. Tunneling is a way of wrapping up bundles of information on the way into the network and unwrapping them again on the way out. Think of the postal service as a network through which you want to send a letter. Since you know how to use the postal service, you stuff the letter in an envelope, address it, and throw it into the network (or your mailbox). The lucky recipient receives the letter and opens it reading what you’ve just written. That is normal networking. Both the sender and recipient of the letter understand how to send and receive letters through the postal service or network. Now, imagine you’ve never sent any mail and have no idea how to do so, and neither does the recipient. You might find someone else who knows how to use the postal service and hand them the letter. That person wraps up the letter in an envelope and sends it for you. Someone else receives the letter, unwraps it and hands it to your friend.
    [Show full text]