Notes removed from chapter which will be put into assessment guide
{teacher}
This chapter is under evaluation. It covers one of six topics that students must select two from for the 3.44 Achievement Standard; the other 5 topics have chapters available, so there is still a wide range of choice available. Any feedback would be greatly appreciated. If you also teach your class, please complete the teacher survey here and and your students can do this one http://bit.ly/NCPSurveyStudents.
{teacher end}
{teacher}
See the URL above you? Notice how it says “http://” the p stands for protocol. They’re all around us on the web and this chapter will teach you more.
This chapter supports the "Network communication protocols" option of the NZ achievement standard 3.44.
Currently all material in this chapter is relevant to the standard, although students can choose one or two examples to focus on to meet the requirements of the standard.
Be careful not to confuse this topic with those from the infrastructure standards such as the 2.50 or 2.51 achievement standards. 2.50 ensures a student knows the layers in the TCP/IP networking model and the role of this model in LAN architecture. We approach this from a different perspective, not touching on the OSI model, but mainly acknowledging the existence of a layered model. Similar approaches at level three in 2.50 with WAN architecture. This chapter focuses on the problems and the techniques used to solve them from a computer science perspective. While there is overlap, high achieving submissions will also take this approach.
{teacher end}
{teacher}
Key concepts that are likely to be encountered are: formal communication, structured requests/responses, addressing, packet loss, quality of service, network performance.
Algorithms: (techniques are more relevant to this area than algorithms)
Techniques: packet switching, handshaking, acknowledgement, checksums, redundancy, packet ordering and use of timeouts.
Applications: Protocols that you will investigate are HTTP and IRC, and UDP and TCP. You could also look at DNS, FTP, DHCP, Telnet or SSH. The applications of network communication protocols are easier when you use those from the Application level (rather than the transport or internet), however UDP and TCP are more complex and more interesting.
{teacher end}
Projects - HTTP and IRC
{teacher}
As further guidance as to what students should do, we have made this overall outline of how the project fits the standard. Note that for 3.44 this covers one of the two areas of computer science students have to cover in their report. They must pick one other area of computer science to do a project on as well.
Selected Area: Network Communication Protocols
Key Problems:
The bigger problems are: Reliable, efficient communication suitable to purpose. Abstracted level of communication
Application layer: Transfer of text, video, audio, files. Effective error communication.
Key algorithm/Techniques:
Bigger solutions: A layered network model approach, each level having its role and abstracting it from the level above.
Examples of practical applications: Looking at web traffic with the network inspector/developer tools or using a private IRC channel and using some commands.
Personalised student examples: Each website a student visits should be unique, they should report on unique requests and responses they see. They could talk about different error codes and why they exist in groups (100, 200, 300, 400 and 500). With IRC, a sensible chat session could be recorded and experiences with various commands.
For achieved, it could be expected that a student...
"describing key problems that are addressed in selected areas of computer science"
Describing the problems at the overall level, or on the application layer.
"describing examples of practical applications of selected areas to demonstrate the use of key algorithms and/or techniques from these areas"
Carrying out an activities above
Describing how the activity went
Reporting on the results
Describing at least 2 or 3 samples of the activity
Showing data/results from those runs
Describe one technique that is used in this activity
For merit, it could be expected that a student...
"explaining how key algorithms or techniques are applied in selected areas"
Explaining what factors have to be considered when carrying out the the activity, to ensure a valid result.
Explaining what HTTP or IRC achieves and how it achieves that.
“explaining examples of practical applications of selected areas to demonstrate the use of key algorithms and/or techniques from these areas."
Explaining how the the activity could be used to evaluate a new protocol
Giving examples of the protocol trying to address these issues
For excellence, it could be expected that a student...
"discussing examples of practical applications of selected areas to demonstrate the use of key algorithms and/or techniques from these areas"
Discussing other possible applications of techniques used in HTTP or IRC. This may be difficult and not suitable for excellence level.
"evaluating the effectiveness of algorithms, techniques, or applications from selected areas."
Discussing the various protocols, how they are used and why.
Discussing the differences of HTTP and HTTPS. Discussing IRC vs another chat protocol (telnet, linux’s wall).
{teacher end}
HTTP is the most common protocol yet. We use it every day and you’re using it right now if you're viewing this on the web.
Open up the web inspector (you might have to do this at home if your school doesn't have it available) and have a look at the traffic. You might need to refresh, depending on your browser. We recommend Chrome, which is free to download at https://www.google.com/chrome/browser/.
Bring up the Developer Tools. Find the Network tab. Reload the page. You should now see a slew of request form. Go through and click each one. Have a look at the details you can see under headers.
What is the remote address?
What type of method is it?
What does the status code mean?
What is the path?
What is the response?
What is actually happening here? What part of the page is loading?
Try a one on one conversation with a friend. If they use commands, do you see them? How about the other way around?
{teacher}
TCP and UDP are a lot more complex than the protocols above. However are required to get the depth needed for Excellence and Merit. TCP is a protocol that addresses packet loss, duplication, corruption and delay, UDP does not. Packet reliability is fixed for a chosen set of solutions in TCP, in UDP it is not. Because these solutions takes time, TCP is typically not suitable for real-time communication such as Skype, music or video or online video gaming, but UDP is not suitable for email, text, downloads etc - times where all data has to be present and accounted for.
{teacher}
As further guidance as to what students should do, we have made this overall outline of how the project fits the standard. Note that for 3.44 this covers one of the two areas of computer science students have to cover in their report. They must pick one other area of computer science to do a project on as well.
Selected Area: Network Communication Protocols
Key Problems:
The bigger problems are: Reliable, efficient communication suitable to purpose. Abstracted level of communication
Application layer: Transfer of text, video, audio, files. Effective error communication.
Transport layer: Packet loss, packet corruption, packet delay
Key algorithm/Techniques:
Bigger solutions: A layered network model approach, each level having its role and abstracting it from the level above.
Transport layer: packet switching, handshaking, timeouts, acknowledgements, packet ordering
Examples of practical applications:
Practical applications of TCP are non-realtime applications such as email, web browsing, file transfer and downloading. UDP is more for real time applications such as music and video streaming, online gaming and VoIP and VoLTE. You can’t really see these in practice since they’re are abstracted away, but you can dig into it for a project with some tools. Wireshark, TCP Dump or Windump Note: WinDump and TCPDump spits out your own TCP traffic, so there are no privacy issues there. Traffic can be recreated by adding together TCP packets, so be careful about posting packets online - they may contain sensitive data such as passwords.
Personalised student examples:
Each student experience playing Tablets of Stone or playing Packet Attack should be unique and can be used to illustrate TCP and UDP. Also, using TCPDump or Windump would be a great example, but is a little more difficult. Use the guides we’ve linked to. It’s almost certain students will have to perform these tasks at home.
Projects - TCP and UDP
For achieved, it could be expected that a student...
"describing key problems that are addressed in selected areas of computer science"
Describing the problems at the overall level, or at application or transport layer
"describing examples of practical applications of selected areas to demonstrate the use of key algorithms and/or techniques from these areas"
Carrying out an activity above
Describing how the activity went
Reporting on the results
Describing at least 2 or 3 runs of the activity
Showing any data/results/screenshots/photographs from those runs
Describe one technique that is used in this activity
Questions:
What problems did you encounter when transmitting data across networks? Talk about problems that you encountered at the start of Tablets of Stone (photos are great!)
What solutions did you see in Packet Attack, what attacks did they stop?
For merit, it could be expected that a student...
"explaining how key algorithms or techniques are applied in selected areas"
Explaining what factors have to be considered when carrying out the the activity, to ensure a valid result.
Explaining the details of at least two techniques used by lower level protocols to address reliability or efficiency.
For example, imagine you had to post a 500 page book, using only postcards. What would you use? How would you correct for lost postcards?
Questions:
Explain the use of TCP and UDP in networks today, with example situations. What systems use TCP? Which use UDP?
Explain at least two techniques used by TCP and/or UDP to address the problems above. Show some examples from packet attack (and tablets of stone) that illustrate the concepts.
“explaining examples of practical applications of selected areas to demonstrate the use of key algorithms and/or techniques from these areas."
Giving examples of the protocol trying to address these issues
Explain what headers, footers etc do on a packet, and what is in them
Explain what TCP is used for and what UDP is use for and why (real time vs accuracy)
For excellence, it could be expected that a student...
"discussing examples of practical applications of selected areas to demonstrate the use of key algorithms and/or techniques from these areas"
Discussing other possible applications of techniques used in Packet Attack and Tablets of Stone that display TCP and UDP principles.
"evaluating the effectiveness of algorithms, techniques, or applications from selected areas."
Discussing the various protocols, how they are used and why.
Explaining how the the activity could be used to evaluate a new protocol
Discussing the differences of TCP vs UDP and why they exist and/or their applications. (Effectiveness could be reliability or speed - usually a trade off. Packet size? Content vs Correctness)
In terms of evaluation, students could use a stopwatch to time several runs of Packet Attack or Tablets of Stone and graph the trend of reliability and delivery time with all of TCP in place. For example, they could set up a custom level in packet attack with 5 kills, 10 kills, 20 kills, 50 kills and see if there is a trend. Report on it, discuss why they are seeing it.
Questions:
For systems that require TCP, what might happen to them if TCP did not exist and they had to use UDP?
Discuss the differences between TCP and UDP, why each exists and why you would choose a particular protocol for several scenarios.
{teacher end}
Before writing about Network Communication Protocols, think about the following questions:
Tablets of Stone:
How did your messaging go when you first started?
Did you need numbers on your tablets?
Was it a pain to use up tablet space on numbers and other information?
Did you ever get to reliable communication?
Packet Attack:
What happens if you add too many kills, corrupts and delays? Is there a relationship between this and time taken to transmit the message? Try graphing it
What happens if you turn off all the defenses?
What happens if you have no kills, corrupts and delays?
What happens if you only have delays?
What happens if you kill a packet creature when it tries to get sent the second time?
What other situations can you get the protocol in?
{interactive-inpage packet-attack-level-creator}
{teacher}
Note that the questions cover the report up to merit level, but if students are aiming for Excellence level you will need to make sure they have covered the criteria in the 3.44 standard (there's more information about this in the teacher notes above).
{teacher end}
For a project, using the knowledge you have gained on TCP and UDP, create some custom levels in Packet Attack using the controls just above to create some unique situations that illustrate different aspects of Network Protocols. The following questions will help you to reflect on the issues that you could talk about:
What problems did you encounter when transmitting data across networks? Talk about problems that you encountered at the start of Tablets of Stone (photos of examples from various stages of the activity are a great way to illustrate it!)
Explain the use of TCP and UDP in networks today, with example situations. Which systems use TCP? Which use UDP?
Explain at least two techniques used by TCP and UDP to address the problems above. Show some examples from Packet Attack (and/or Tablets of Stone) that illustrate the concepts.
For systems that require TCP, what might happen to them if TCP did not exist and they had to use UDP?
Discuss the differences between TCP and UDP, why each exists, and why you would choose a particular protocol for several scenarios.
How does the performance of protocols like TCP change as the reliability of the connection varies? You could look at how the speed of getting data through changes if lots of packets need to be re-sent.
For a project, using the knowledge you have gained on TCP and UDP, create some custom levels in Packet Attack using the controls just above to create some unique situations that illustrate different aspects of Network Protocols. The following questions will help you to reflect on the issues that you could talk about:
What problems did you encounter when transmitting data across networks? Talk about problems that you encountered at the start of Tablets of Stone (photos of examples from various stages of the activity are a great way to illustrate it!)
Explain the use of TCP and UDP in networks today, with example situations. Which systems use TCP? Which use UDP?
Explain at least two techniques used by TCP and UDP to address the problems above. Show some examples from Packet Attack (and/or Tablets of Stone) that illustrate the concepts.
For systems that require TCP, what might happen to them if TCP did not exist and they had to use UDP?
Discuss the differences between TCP and UDP, why each exists, and why you would choose a particular protocol for several scenarios.
How does the performance of protocols like TCP change as the reliability of the connection varies? You could look at how the speed of getting data through changes if lots of packets need to be re-sent.
Notes removed from chapter which will be put into assessment guide
{teacher}
This chapter is under evaluation. It covers one of six topics that students must select two from for the 3.44 Achievement Standard; the other 5 topics have chapters available, so there is still a wide range of choice available. Any feedback would be greatly appreciated. If you also teach your class, please complete the teacher survey here and and your students can do this one http://bit.ly/NCPSurveyStudents.
{teacher end}
{teacher}
See the URL above you? Notice how it says “http://” the p stands for protocol. They’re all around us on the web and this chapter will teach you more.
This chapter supports the "Network communication protocols" option of the NZ achievement standard 3.44.
Currently all material in this chapter is relevant to the standard, although students can choose one or two examples to focus on to meet the requirements of the standard.
Be careful not to confuse this topic with those from the infrastructure standards such as the 2.50 or 2.51 achievement standards. 2.50 ensures a student knows the layers in the TCP/IP networking model and the role of this model in LAN architecture. We approach this from a different perspective, not touching on the OSI model, but mainly acknowledging the existence of a layered model. Similar approaches at level three in 2.50 with WAN architecture. This chapter focuses on the problems and the techniques used to solve them from a computer science perspective. While there is overlap, high achieving submissions will also take this approach.
{teacher end}
{teacher}
Key concepts that are likely to be encountered are: formal communication, structured requests/responses, addressing, packet loss, quality of service, network performance.
Algorithms: (techniques are more relevant to this area than algorithms)
Techniques: packet switching, handshaking, acknowledgement, checksums, redundancy, packet ordering and use of timeouts.
Applications: Protocols that you will investigate are HTTP and IRC, and UDP and TCP. You could also look at DNS, FTP, DHCP, Telnet or SSH. The applications of network communication protocols are easier when you use those from the Application level (rather than the transport or internet), however UDP and TCP are more complex and more interesting.
{teacher end}
Projects - HTTP and IRC
{teacher}
As further guidance as to what students should do, we have made this overall outline of how the project fits the standard. Note that for 3.44 this covers one of the two areas of computer science students have to cover in their report. They must pick one other area of computer science to do a project on as well.
Selected Area: Network Communication Protocols
Key Problems:
Key algorithm/Techniques:
Examples of practical applications: Looking at web traffic with the network inspector/developer tools or using a private IRC channel and using some commands.
Personalised student examples: Each website a student visits should be unique, they should report on unique requests and responses they see. They could talk about different error codes and why they exist in groups (100, 200, 300, 400 and 500). With IRC, a sensible chat session could be recorded and experiences with various commands.
For achieved, it could be expected that a student...
"describing key problems that are addressed in selected areas of computer science"
"describing examples of practical applications of selected areas to demonstrate the use of key algorithms and/or techniques from these areas"
For merit, it could be expected that a student...
"explaining how key algorithms or techniques are applied in selected areas"
“explaining examples of practical applications of selected areas to demonstrate the use of key algorithms and/or techniques from these areas."
For excellence, it could be expected that a student...
"discussing examples of practical applications of selected areas to demonstrate the use of key algorithms and/or techniques from these areas"
"evaluating the effectiveness of algorithms, techniques, or applications from selected areas."
{teacher end}
HTTP is the most common protocol yet. We use it every day and you’re using it right now if you're viewing this on the web. Open up the web inspector (you might have to do this at home if your school doesn't have it available) and have a look at the traffic. You might need to refresh, depending on your browser. We recommend Chrome, which is free to download at https://www.google.com/chrome/browser/.
Bring up the Developer Tools. Find the Network tab. Reload the page. You should now see a slew of request form. Go through and click each one. Have a look at the details you can see under headers.
{teacher}
Here’s a quick video from Numb3rs -"how hackers talk when they don’t want to be overheard"
{teacher end}
IRC is a very primitive chat program which is fun to use with your friends.
Go be a hacker, grab a friend and visit freenode and create a channel for you. Now, look at the list of commands you can use and try to use some of them. What response do you get? Does this make sense?
Try a one on one conversation with a friend. If they use commands, do you see them? How about the other way around?
{teacher}
TCP and UDP are a lot more complex than the protocols above. However are required to get the depth needed for Excellence and Merit. TCP is a protocol that addresses packet loss, duplication, corruption and delay, UDP does not. Packet reliability is fixed for a chosen set of solutions in TCP, in UDP it is not. Because these solutions takes time, TCP is typically not suitable for real-time communication such as Skype, music or video or online video gaming, but UDP is not suitable for email, text, downloads etc - times where all data has to be present and accounted for.
{teacher}
As further guidance as to what students should do, we have made this overall outline of how the project fits the standard. Note that for 3.44 this covers one of the two areas of computer science students have to cover in their report. They must pick one other area of computer science to do a project on as well.
Selected Area: Network Communication Protocols
Key Problems:
Key algorithm/Techniques:
Examples of practical applications:
Practical applications of TCP are non-realtime applications such as email, web browsing, file transfer and downloading. UDP is more for real time applications such as music and video streaming, online gaming and VoIP and VoLTE. You can’t really see these in practice since they’re are abstracted away, but you can dig into it for a project with some tools. Wireshark, TCP Dump or Windump Note: WinDump and TCPDump spits out your own TCP traffic, so there are no privacy issues there. Traffic can be recreated by adding together TCP packets, so be careful about posting packets online - they may contain sensitive data such as passwords.
Personalised student examples:
Each student experience playing Tablets of Stone or playing Packet Attack should be unique and can be used to illustrate TCP and UDP. Also, using TCPDump or Windump would be a great example, but is a little more difficult. Use the guides we’ve linked to. It’s almost certain students will have to perform these tasks at home.
Projects - TCP and UDP
For achieved, it could be expected that a student...
"describing key problems that are addressed in selected areas of computer science"
"describing examples of practical applications of selected areas to demonstrate the use of key algorithms and/or techniques from these areas"
Questions:
For merit, it could be expected that a student...
"explaining how key algorithms or techniques are applied in selected areas"
Questions:
“explaining examples of practical applications of selected areas to demonstrate the use of key algorithms and/or techniques from these areas."
For excellence, it could be expected that a student...
"discussing examples of practical applications of selected areas to demonstrate the use of key algorithms and/or techniques from these areas"
"evaluating the effectiveness of algorithms, techniques, or applications from selected areas."
Questions:
{teacher end}
Before writing about Network Communication Protocols, think about the following questions:
Tablets of Stone:
Packet Attack:
{interactive-inpage packet-attack-level-creator}
{teacher}
Note that the questions cover the report up to merit level, but if students are aiming for Excellence level you will need to make sure they have covered the criteria in the 3.44 standard (there's more information about this in the teacher notes above).
{teacher end}
For a project, using the knowledge you have gained on TCP and UDP, create some custom levels in Packet Attack using the controls just above to create some unique situations that illustrate different aspects of Network Protocols. The following questions will help you to reflect on the issues that you could talk about:
For a project, using the knowledge you have gained on TCP and UDP, create some custom levels in Packet Attack using the controls just above to create some unique situations that illustrate different aspects of Network Protocols. The following questions will help you to reflect on the issues that you could talk about: