Review1

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 ?