It’s just data

Symmetrical and asymmetrical system design

Sean McGrath: We have a symmetric channel (a socket). On top of that we have an asymmetrical protocol (such as HTTP). On top of that, we have asymmetric software such as e-mail pollers and RSS aggregators that re-create the symmetric channel we had in the first instance but never utilized.

Also of interest is the fact that this approach recreates symmetric in a resource intensive fashion - by polling asymmetric connections.

I tied this illustration in with the conversation about transactions from the other day.

See "The Network is not the Computer".

Posted by Patrick Logan at

Pingback from TIG's Corner


But a socket is layered on top of the TCP which is symmetrical, which is again layered on top of IP which is asymmetrical, which is most likely layered on top of Ethernet, which is again asymmetrical.

"It's no use young man, it's turtles all the way down."

Posted by joe at

Joe, the problem with that theory is that IP is symmetrical and Ethernet is also symmetrical.

That's not to say that there aren't some useful asymmetrical protocols involved.  DHCP and DNS to name two.

I guess the moral of the story is that asymmetrical protocols are OK as 'top' layers, but serve as lousy foundations to build upon.  But people will anyway.

Posted by Sam Ruby at

Hmmm, guess I misunderstood the use of the terms 'symmetrical' and 'asymmetrical' here. IP, for example, just tries to get a packet from A to B. To quote RFC 791:

"The internet protocol is specifically limited in scope to provide the functions necessary to deliver a package of bits (an internet datagram) from a source to a destination over an interconnected system of networks. There are no mechanisms to augment end-to-end data reliability, flow control, sequencing, or other services commonly found in host-to-host protocols."

Posted by joe at

Joe, certainly IP is defined to be unreliable.  It also is implemented without the concept of a master or central server.  The mechanism that A uses to send to B is the same as the mechanism that B uses to send to A.

With HTTP and SMTP, the mechanisms you use to send a request is quite different from the mechanisms you use to receive a response.

So I view IP and unreliable and symmetrical.  HTTP attempts to be reliable and asymmetrical, but effectively it is both unreliable and asymmetrical as there are no macro level retries built in over and above the retries that TCP gives you.

Posted by Sam Ruby at

Add your comment