Comment by stavros

Comment by stavros a day ago

9 replies

> It's not UDP socket that gets created here, but Datagram socket

A datagram socket is a UDP socket, though. That's what the D stands for.

jmgao a day ago

Wrong way around: UDP sockets are datagram sockets, there are datagram sockets that are not UDP.

Quarrel a day ago

To give a more nuanced reply versus the "you're wrong" ones already here, the difference is that UDP adds send and receive ports, enabling most modern users (& uses) of UDP. Hence, it is the "User" datagram protocol.

(it also adds a checksum, which used to be more important than it is nowadays, but still well worth it imho.)

meindnoch a day ago

Not every cola is Coca-Cola, even though "Cola" stands for cola.

jdndbdbd a day ago

No? Why would you think a datagram socket is UDP?

  • stavros a day ago

    What a reasonable question to be asked today.

    • cstrahan a day ago

      Let me rephrase GP into (I hope) a more useful analogy. — actually, here’s the whole analogous exchange:

      “A rectangle is an equal-sided rectangle (i.e. “square”) though. That’s what the R stands for.”

      “No? Why would you think a rectangle is a square?”

      Just as not all rectangles are squares (squares are a specific subset of rectangles), not all datagram protocols are UDP (UDP is just one particular datagram protocol).

      • stavros 20 hours ago

        The obvious answer is "I didn't know datagrams were a superset of UDP". I don't really understand how "how do you not know this" is a reasonable or useful question to ask.

    • messe a day ago

      What networks are you using without ICMP?

      Presumably you're also using systems that don't support Unix Domain Sockets which can be configured as SOCK_STREAM, SOCK_DGRAM, and even gasp SOCK_SEQPACKET (equivalent to SOCK_DGRAM in this case admittedly).