-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Comp. Sci. Networking Course
Networking Course Overview
Below you can find the ordered content of the topic, in a linear progression
The linear progression of content aims to cover all content, course by course, workout by workout as follows:
- first course is the only core one, denoted by its manifest
- the next course is denoted by the first item of the next array in each course manifest
- each course has its order of workouts designated by the sections field in the same aforementioned manifest
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | what-is-a-computer-network | ✅ | 👶 introduction | ❌ | ❌ | ✅ | ❌ | ❌ |
2 | what-is-a-packet | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
3 | what-is-protocol | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
4 | types-of-networks | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
5 | network-models | ✅ | 🦑 deep 💪 workout |
❌ | ✅ | ❌ | ❌ | ❌ |
6 | network-models-tcp-ip | ✅ | 🦑 deep 💪 workout |
❌ | ✅ | ❌ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | what-is-an-ip-address | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
2 | what-is-a-port | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
3 | what-are-tcp-and-udp | ✅ | 🦑 deep 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
4 | application-layer | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
5 | extended-terminologies | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
Exercises:
Game:
3. metrics
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | important-networking-metrics | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
2 | what-are-latency-and-ping | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
3 | what-is-packet-loss | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
4 | what-is-jitter | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
5 | differences-between-bandwidth-and-throughput | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
4. tools
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | tools-to-interact-with-networks | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
2 | network-statistics-tools | ✅ | 🦑 deep 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
3 | dns-lookup | ✅ | 🦑 deep 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
4 | network-interfaces-tools | ✅ | 🦑 deep 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
5 | test-connectivity | ✅ | 🦑 deep 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
Exercises:
Game:
name | type | aspects | standards | done |
---|---|---|---|---|
networking-quiz | fillTheGap | 🦑 deep 💪 workout |
❌ | ❌ |
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | what-is-http | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
2 | what-is-an-url | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
3 | what-are-status-codes | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
4 | verbs-in-http | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
5 | https | ✅ | 🦑 deep 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | http-request | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
2 | a-request-example | ✅ | 🦑 deep | ❌ | ✅ | ✅ | ❌ | ❌ |
3 | http-response | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
4 | a-response-example | ✅ | 🦑 deep | ❌ | ✅ | ✅ | ❌ | ❌ |
5 | http-pipelining | ✅ | 🦑 deep | ❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | informational-status-codes | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
2 | successful-status-codes | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
3 | redirection-status-codes | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
4 | client-error-status-codes | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
5 | server-error-status-codes | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
✅ - At least one insight covers this
❌ - Nothing covers this
🛠️ - This standard has no objectives yet
- ❌ Use a tool like netstat to monitor a LAN's traffic
- ❌ Use a tool to monitor a VPC's traffic
- ❌ Monitor and graph the HTTP traffic coming into a web server
- ❌ Use an agent to monitor incoming and outgoing traffic on network nodes, eg collectd
- ❌ Interpret metrics from a network analyzer, eg Wireshark
- ❌ Collect and analyze incoming and outgoing traffic for anomalies
- ❌ Identify the abstract network components according to the OSI model
- ❌ Identify and describe concrete components of a network given a real network diagram according to the OSI model
- ❌ Describe the role of each component in the OSI model
- ❌ Describe the role of each component in a real network diagram
- ❌ Analyze network addresses
- ❌ Identify the components of an HTTP Request
- ❌ Identify the components of an HTTP Response
- ❌ Attach headers to an HTTP Request
- ❌ Attach a body to an HTTP Request using POST, PUT, and PATCH methods
- ❌ Make an assembled HTTP Request to a given URI
- ❌ Receive an incoming HTTP request and use it to serve an HTTP Response
- ❌ Attach headers to an HTTP Response
- ❌ Attach a body to an HTTP Response
- ❌ Use common HTTP Status Codes to communicate about the status of the response
- ❌ Identify common request and header pairs, such as Accept and Content-Type, and their respective contracts
- ❌ Identify common request headers and use them to modify the response before it is sent
- ❌ Identify common response headers and use them to make decisions about the response after it is received
- ❌ Use HTTP Cookies to persist data across requests between a server and a client
- ❌ Distinguish between network protocols
- ❌ Distinguish network protocols by layer of the OSI Model
- ❌ Distinguish between open network protocols and their secure counterparts
- ❌ Analyze the contents of a TCP Packet
- ❌ Distinguish TCP and UDP handshake protocols
- ❌ Identify an HTTP Request
- ❌ Analyze the contents of an HTTP Request
- ❌ Identify an HTTP Response
- ❌ Analyze the contents of an HTTP Response
- ❌ Identify a URI
- ❌ Analyze the contents of a URI
- ❌ Identify an SMTP command
- ❌ Analyze the contents of an SMTP command
- ❌ Distinguish the WebSocket protocol from the HTTP Protocol and describe the differences
- ❌ Distinguish between open network protocols and their secure counterparts
- ❌ Distinguish secure traffic from insecure traffic using a packet sniffing tool, eg wireshark
- ❌ Distinguish TCP and UDP handshake protocols from TLS handshake protocols
- ✅ Describe the purpose of DNS.
- ✅ Identify and distinguish between the components of the DNS hierarchy and their responsibilities
- ✅ Distinguish between DNS record types
- ❌ Use tools to analyze DNS queries
- ❌ Accurately configure DNS records
- ❌ Make DNS queries using
dig
. - ✅ Identify the sections of a DNS query and resource record.
Given the insights are tagged with aspects, we can filter over the linear content progression and create learning sub-paths.
These sub-path progressions will most likely not cover all content, but they will ensure and enforce an unified learning experience, tailor for the user wish.
For example, a user might be interested in new additions and updates of a language, rather than introduction lessions. Note that these sub-paths don't take games into consideration
If you are being introduced to the topic for the first time
Insights:
- what-is-a-computer-network
- what-is-a-packet
- what-is-protocol
- types-of-networks
- what-is-an-ip-address
- what-is-a-port
- application-layer
- extended-terminologies
- important-networking-metrics
- what-are-latency-and-ping
- what-is-packet-loss
- what-is-jitter
- differences-between-bandwidth-and-throughput
- tools-to-interact-with-networks
- what-is-http
- what-is-an-url
- what-are-status-codes
- verbs-in-http
- http-request
- http-response
- informational-status-codes
- successful-status-codes
- redirection-status-codes
- client-error-status-codes
- server-error-status-codes
Theory put into practice/that’s how you achieve X points
Insights:
- types-of-networks
- network-models
- network-models-tcp-ip
- what-are-tcp-and-udp
- application-layer
- extended-terminologies
- what-are-latency-and-ping
- what-is-packet-loss
- what-is-jitter
- differences-between-bandwidth-and-throughput
- tools-to-interact-with-networks
- network-statistics-tools
- dns-lookup
- network-interfaces-tools
- test-connectivity
- what-is-http
- what-are-status-codes
- verbs-in-http
- https
- successful-status-codes
- server-error-status-codes
Prerequisite knowledge consisting of 2 or more 👶/💪 workouts
Insights:
- network-models
- network-models-tcp-ip
- what-are-tcp-and-udp
- network-statistics-tools
- dns-lookup
- network-interfaces-tools
- test-connectivity
- https
- a-request-example
- a-response-example
- http-pipelining
Recently added/gained traction feature
Stories, obscure details that don’t specifically relate to a learning objective
✅ All content has been tagged with aspects.
Want to contribute to this wiki? Go right ahead! If it has to do with how the Enki software ecosystem works, or editorial guidelines for how to write, let us handle that. Anything else, edit away!
Curriculum Format:
- Topic Documentation
- Course Documentation
- Workout Documentation
- Insight Documentation
- Glossary Documentation
Contributor Resources:
Curriculum overview:
Topic pages: