This junction is critical for several reasons. In terms of
functionality, any function designed at this junction is
specific to the application and therefore very diverse while
it has to have performance similar to the network layer. In
terms of semantic-gap, the network layer has no
information about application messages and so cannot route
them differently.