[^1]: Quick likbez on how Unix and TCP make the whole thing work:
- In (a), the operating system allows H to take over P, i.e. it
- keeps a note somewhere that H's user process takes some sort of
- ownership over P. In (b), the listen system call is called, which
- puts P's TCP socket into the "listening" state, as specced in [RFC
- 793][rfc-793].
+ In (a), the operating system binds a socket S owned by H to P,
+ i.e. it keeps a note somewhere that subsequent connections to P
+ will be assigned to S and that H *may* accept said connections. In
+ (b), H signals its availability to receive connections by
+ performing the listen system call; this puts S into the
+ "listening" state, as specified in [RFC 793][rfc-793].
At this point, whenever a TCP client wants to initiate a
connection, it needs to go through the SYN-SYN+ACK-ACK three-way
handshake hula hoop; so the client sends his SYN, and then in
order for communication to move forward, the server must send his
SYN+ACK, which only happens in the accept phase, i.e. (c). Then
- the accept function returns a socket for the new connection, and
- only then can actual HTTP communication start.
+ the accept function returns a new socket S' for the new
+ connection, and only then can actual HTTP communication start.
I won't even go into the details of why this is retarded, it's
- been beaten to death in [the logs][tcp]. Either way, if the
- Republic wants to keep speaking with the heathen world, we're
- stuck using and possibly maintaining this pile of shit.
+ been beaten to death in [the logs][tcp]. Either way, there's no
+ way around this pile of shit for nodes talking to the heathen WWW.
[cl-www]: /posts/y05/090-tmsr-work-ii.html#selection-108.0-108.17
[m7-work]: /posts/y05/094-tmsr-work-iii.html