Computer Networks – Applications

Network Applications

Computer networking? There’s an app for that.

A network applications is a program that communicates over a network but runs on end systems, not core network devices. You can’t install skype on a router!

There are 4 distinct architectures for network apps:

  • Client – Server
  • P2P
  • Hybrid of the first 2
  • Common implementation

Client – Server

You have a server that is:

  • An always on host
  • with a permanent IP address
  • and maybe linked to a server farm to allow scaling

and 1 or more clients that:

  • Communicate with the server
  • May connect to it intermittently, ie not 24/7
  • Have dynamic IP address
  • Do not communicate directly


  • There isn’t an always on server
  • The end systems communicate directly
  • Peers change and connect intermittently and change their IP addresses
  • This is very scalable but also hard to manage


Skype is a good example of this.

  • The actual voice communication is P2P
  • But when you come online on skype, you register your IP with the central server so that the server knows where to send your call

IM is mainly the same.

End-point implementation

  • The end-point is a process
  • Communication happens by sending messages which are sent and received via sockets
  • The host runs a lot of applications, so how does it know which one is the destination for incoming data?
  • The end point is a concatenation of:
    • The IP of the host
    • the port number

Quality of Service

Some apps can tolerate small data loss, like audio apps. Others can’t like file transfers.

Some apps can tolerate delay, like file transfers. Others can’t, like VoIP.

Multimedia apps need a minimum amount of throughput to be effective. Apps that don’t have a minimum throughput are said to be ‘elastic’.


  • TCP is connection orientated, meaning setup is required between the client and server
  • It is reliable
  • The flow can be controlled to prevent buffer overflow
  • TCP does NOT give guarantees on minimum throughput, or timing, or security


  • Unreliable transfer
  • Does not provide any of the things listed for TCP
  • But it is much faster
  • VoIP usually uses UDP

Application Protocols

These make the transport service model better by adding precise communication terms. For example, they define the type of message being exchanged, ie REQUEST, POST.

They follow strict rules about syntax and what fields are present. There are two ways of having these protocols:

  • Open standards that allow interoperability, like HTTP
  • Proprietary protocols, like Skype that doesn’t work with other services

Application Data

  • The source and destination of the data must interpret data in the same way
  • Compression is important to make it easier to send. Compressing data makes it take up less space in the cable

Converting Data – Standard approach

  • The source translates the data to a compressed format
  • The destination translates from a compressed format
  • So each end needs to be able to understand 2 translations

Converting Data – ‘Receiver Makes Right’ approach

  • Data is transmitted in an internal format
  • This avoids unnecessary conversion
  • Must be able to understand N translations
  • And must have an explicit description of what is being received

I’ve probably left some stuff out. I just got a new playstation game so that’s why


About Shaun
I'm super cool and I do computer science (unrelated to the coolness)

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: