uccser / cs-field-guide

A free online interactive resource/textbook for high school students learning about computer science.
https://www.csfieldguide.org.nz
MIT License
347 stars 74 forks source link

Write assessment guide for network communication protocols #149

Open hai-dee opened 8 years ago

hai-dee commented 8 years ago

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:

  1. 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!)
  2. Explain the use of TCP and UDP in networks today, with example situations. Which systems use TCP? Which use UDP?
  3. 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.
  4. For systems that require TCP, what might happen to them if TCP did not exist and they had to use UDP?
  5. Discuss the differences between TCP and UDP, why each exists, and why you would choose a particular protocol for several scenarios.
  6. 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:

  1. 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!)
  2. Explain the use of TCP and UDP in networks today, with example situations. Which systems use TCP? Which use UDP?
  3. 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.
  4. For systems that require TCP, what might happen to them if TCP did not exist and they had to use UDP?
  5. Discuss the differences between TCP and UDP, why each exists, and why you would choose a particular protocol for several scenarios.
  6. 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.