Wednesday, May 7, 2008

Network Protocol Stack Overview

The following diagram serves as reference.  One communication path is illustrated between the end-point E1 and E2. The communication traffic enters intermediate system A, is physically transmitted over to System B.

Interface "P"
This interface handles the "peer-to-peer" relationship between systems. In a communication system, the high-level semantic for this interface follows:

forward( traffic unit )

Where traffic unit (TU) represents the unit to forward to the end-point(s). On a packet network layer, the usual traffic unit is the packet (of course :-) whilst on an optical network layer the traffic unit will be an octet.

Interface "C"
This interface handles the "client-server" relationship between network protocol layers in a system. In a communication system, the high-level semantic for this interface follows:

forward( traffic unit, destination address, QOS )

The parameter destination address can either be explicit or implicit: this depends on the network layer in question. The parameter QOS (Quality Of Service) too can either be explicit or implicit depending the network layer technology.

Peer-To-Peer relationship
 The peer-to-peer relationship exists between separate (distinct) instantiations belonging to the same network protocol layer e.g. protocol sub-system N of system A and protocol sub-system N of system B. Physical proximity between sub-systems does not change the role of this interface.
Systems exchanging traffic through peer-to-peer relationships do so through a common address space. E.g. Internet Protocol. 

Client-Server relationship
The client-server relationship exists between a pair of network protocol layers. This relationship is characterize by a fundamental premise: the server-side of the relationship does not expose client-specific state i.e. the server must be designed to be "client-agnostic".
The client-side "adapts" the traffic it must send by mapping the desired destination address to the address space semantics of the server-side. The same logic is applied to the QOS parameter.


Wednesday, April 23, 2008

MindMeister online mind-mapping tool

I came across a truly wonderful tool yesterday night: MindMeister.

Example:



Have you found a better solution for online mindmapping? Let me know!

Friday, April 11, 2008

Eggs are to Pythons as Pears are to PHP.

With the advent of Google AppEngine, I am starting to look into Python programming because, let's face it, PHP support on AppEngine might be a long way off (feature requests).

It would appear that a good way of distributing Python Modules is through eggs which, from what I can understand, offer similar functionality as PEAR packages.

PythonEggs documentation can be found here.

MediaWiki extensions: 10's of them

For MediaWiki fans, I have made 10's of extensions readily available through either tarballs or PEAR.

For bug reports and features requests, please use the trac here. My user page on MediaWiki.org is available here.

Have fun!

Thursday, April 10, 2008

PHP on Google AppEngine

For all the PHP fans out there, please vote for bringing PHP to Google's AppEngine. Use the official issue tracker here. Just star the issue and please do not insert inbox spamming comments (like "+1") in comments.