A-level Computing 2009/AQA/Computer Components, The Stored Program Concept and the Internet/Structure of the Internet/Packet switching



 Packet switching is the method by which the internet works, it features delivery of packets of data between devices over a shared network. For example the school web server sending you a webpage over the internet or you sending an email to a friend. To get from one device to another the data packets will have to travel through network adapters, switches, routers and other network nodes. The route taken by each packet might vary and at times there might be a lot of data travelling through these nodes meaning packets will be queued. This will result in varying times it takes to send data from one device to another depending on the traffic load in the network.



If you play computer games online you might have heard the term latency (or lag), this is the time taken to send data from one device to another. The higher the latency (time taken to send data), the less responsive your game will be. People with very low latency tend to do better at games as their machines will be more responsive.

To see the time it takes to send a message using packet switching you can use the  command to time how long it takes to send data to another device, in this case we have used the   to ping the www.example.com server: PING www.example.com (192.0.43.10) 56(84) bytes of data. 64 bytes from 43-10.any.icann.org (192.0.43.10): icmp_seq=1 ttl=250 time=80.5 ms 64 bytes from 43-10.any.icann.org (192.0.43.10): icmp_seq=2 ttl=250 time=180.1 ms 64 bytes from 43-10.any.icann.org (192.0.43.10): icmp_seq=3 ttl=250 time=80.3 ms 64 bytes from 43-10.any.icann.org (192.0.43.10): icmp_seq=4 ttl=250 time=80.3 ms 64 bytes from 43-10.any.icann.org (192.0.43.10): icmp_seq=5 ttl=250 time=80.4 ms As you can see the same data is being sent to the same location in all 5 attempts, but the second attempt met traffic on the way and took much longer. However, at 180.1 milliseconds you probably wouldn't notice.
 * 1) ping -c 5 www.example.com

As packet switching doesn't define a set route for data to be sent by, any disruption in the network can be circumnavigated by re-routing:

The  command is used to map the route from one machine to another on the internet showing all the intermediate nodes, in this case, the message took ten steps to get there. The code above shows a trace from a home network to the www.google.com website. You can see that the 4th hop got lost and the data had to be re-routed.
 * 1) tracert www.google.com

Tracing route to www.l.google.com [209.85.147.99] over a maximum of 30 hops:

1   62 ms    99 ms    99 ms  bebox.config [192.168.1.254] 2   53 ms    19 ms    18 ms  87-194-56-8.bethere.co.uk [87.194.56.8] 3    *        *       83 ms  10.1.2.177 4    *        *        *     Request timed out. 5   20 ms    17 ms    17 ms  64.233.175.25 6   20 ms    38 ms    19 ms  209.85.253.92 7   26 ms    56 ms    23 ms  66.249.95.173 8   45 ms    24 ms    24 ms  72.14.236.191 9   33 ms    35 ms    35 ms  216.239.46.221 10   27 ms    22 ms    22 ms  bru01m01-in-f99.1e100.net [209.85.147.99]

Trace complete. If you want to try this at home there are different commands used on different operating systems:
 * Windows - tracert
 * Linux - tracepath or traceroute
 * Mac - traceroute

Packet switching steps

 * 1) Data split into chunks (packets)
 * 2) Each packet has a from address, to address and payload (data chunk)
 * 3) If data requires multiple chunks then the order of each packet is noted
 * 4) Packets sent onto the network, moving from router to router taking different paths (set by the router). Each packet's journey time can therefore differ.
 * 5) Once packets arrive they are re-ordered
 * 6) Message sent from recipient to sender indicating that the message has been received
 * 7) If no confirmation message, sender transmits data again