PO181U: Things to study for Midterm 1
Week 1 : The Internet
- Reading chapter 1 section 1.3. You should be able to explain in writing and with diagrams as appropriate
- Network Layers (Generically, and Internet architecture)
- Encapsulation
- Sockets
Week 2 : Internet Protocols
- Reading chapter 2, section 2.5. You should be able to explain these with diagrams. Understand issues, assumptions for reliable operating, and basic performance model
- Stop and wait
- Alternating bit (i.e. single bit sequence number)
- Sliding window. You do not need to be able to recreate sequence number algorithm/implementation).
- Reading chapter 5, sections 5.1,5.2
- UDP – explain header format (if given diagram), explain how ports are used.
- TCP – explain assumptions, header format (if given diagram), basics of three-way handshake algorithm (at the level of figure 130)
Week 3 : Internetworking
- Reading chapter 3, section 3.1
- Datagrams, packet switching; you do not need to study virtual circuit switching or source routing
- Reading chapter 3, section 3.3
- How protocol layers are used to connect hosts, routers.
- You do not need to study the IP header other than src/dest/length fields
- You do not need to study fragmentation
- Global addresses – concept of classes, format (e.g. 171.69.210.245), and basic datagram forwarding.
- Classless routing (but not subnetting). Understand the format (e.g. 171.69.210.0/24)
- You do not need to study ARP, DHCP, ICMP, Virtual networks and tunnels
- Reading chapter 3, section 3.4
- CIDR routing table
- Network as a graph
- Distance vector – given a table like 16, compute (by hand) a routing table for a Node
- You do not need to study RIP and OSPF
- Reading chapter 4, section 4.1
- routing areas
- autonomous systems
- You do not need to study BGP, but should be able so say what it is
Weeks 3 and 4 : IOT Protocols
- Reading Redbook chapter 1
- Basic concepts of MQTT
- Built on TCP
- Publish/subscribe vs pull and push (http)
- Explain the roles of brokers/publishers/subscribers
- Explain topics and subscriptions
- Slides (MQTT)
- Basic protocol (connect/connect ack, subscribe (topic)/subscribe ack, publish(topic,data)
- Topics – syntax and wild cards
- Slides (COAP)
- Basic concepts
- built on UDP
- modelled after HTTP, but IoT devices are servers
Week 5 : C
- Language concepts
- variables and scope (static, dynamic)
- modules (.c files)
- Memory representation
- Arrays, pointers
- Structures, Unions
- Big/little endian
- Role of C preprocessor and header files
- definitions vs declarations
Week 6 : Make
- Compilation stages (cpp, compiler, assembler, linker)
- Problem that make solves
- dependency/production rules (what they are)
- Dependency graphs: Be able to translate between Make dependence rules and dependency graphs.
- How make determines what to build/rebuild
- You do not need to know detailed syntax of Makefiles such as predefined rules, builtin variables, etc. You do need to be able to read/write dependency rules.
Week 6 : Microcontrollers
- How is a microcontroller different than a desktop processor
- What is memory mapped I/O ?
- How are I/O devices described in C ?
Week 7 : You do not need to study material after lecture 12
Lab Concepts
- Node Red:
- Flows
- what are flows ?
- given various nodes, explain their function
- Mosquitto:
- what are mosquitto_pub and mosquitto_sub and what arguments do they take ?
- what security techniques did you use with Flespi ?