[ih] Socket API [was History of Naming on The Internet - is it still relevant?]
Brian E Carpenter
brian.e.carpenter at gmail.com
Thu Aug 14 14:11:06 PDT 2025
IMHO there's another elephant in the room, which is how the o/s and the programming language handle asynchronous operations. The socket API assumes a certain model because, I suppose, that's the way that fitted best into early BSD Unix and classical C. It's a POSIX standard to this day, of course. It takes a fair amount of hammering and bending to map it onto other languages, operating systems, and asynchronous models.
(I encountered this in depth while working on the GRASP API [1], even though the socket itself is well hidden from that API.)
Also, the socket API is conceptually flawed when sending from a host with multiple IP addresses to a host with multiple IP addresses. Of course, unique DNS names don't help with this at all. This is a complex topic partly explained by [2] with some thinking about mitigation at [3]. And a monster hack exists for a subset of cases [4].
In other words this isn't history, it's an ongoing problem weighed down by at least ten billion copies of running code. It will be seriously hard to significantly change the socket API.
[1] https://www.rfc-editor.org/rfc/rfc8991
[2] https://datatracker.ietf.org/doc/draft-ietf-6man-rfc6724-update/
[3] https://github.com/becarpenter/getapr
[4] https://www.rfc-editor.org/rfc/rfc8305
Regards/Ngā mihi
Brian Carpenter
On 15-Aug-25 04:45, touch--- via Internet-history wrote:
> Agreed.
>
> FWIW, I don’t see how using a file system abstraction vs socket abstraction changes the fact that IPv4-isms can be “baked into” either abstraction and can also be abstracted away - but it’s impossible to abstract away something you don’t know will vary (or how it will vary).
>
> Joe
>
> —
> Dr. Joe Touch, temporal epistemologist
> www.strayalpha.com
>
>> On Aug 14, 2025, at 7:27 AM, Dave Crocker via Internet-history <internet-history at elists.isoc.org> wrote:
>>
>> On 8/14/2025 7:19 AM, Craig Partridge via Internet-history wrote:
>>> Was the socket API too low level -- sure and many folks have written
>>> wrappers on top of it.
>>
>> This seems to be a universal architectural point: Define a set of primitives and then define a layer above for optimized uses, according various scenarios.
>>
>> Even user interfaces can benefit from this approach, with an 'expert' interface offering lots of control over details, versus a 'basic' interface that is simplified for average users.
>>
>>
>> d/
>>
>> --
>> Dave Crocker
>>
>> Brandenburg InternetWorking
>> bbiw.net
>> bluesky: @dcrocker.bsky.social
>> mast: @dcrocker at mastodon.social
>>
>> --
>> Internet-history mailing list
>> Internet-history at elists.isoc.org
>> https://elists.isoc.org/mailman/listinfo/internet-history
>> -
>> Unsubscribe: https://app.smartsheet.com/b/form/9b6ef0621638436ab0a9b23cb0668b0b?The%20list%20to%20be%20unsubscribed%20from=Internet-history
>
More information about the Internet-history
mailing list