Wireless Networking



Overview

This course introduces fundamental concepts of wireless networks. Lectures provides an introduction to the wireless physical and MAC layer, presented in a way that is accessible for students with only a computer systems background, discuss wireless MAC mechanisms, and describe commonly used wireless data communication standards and applications. Topics include OSI, wireless challenges, 802.11 MAC, MIMO, Adhoc and mesh, vehicular wireless, Internet and DTN, cellular, PAN, sensor networks. RFID and localization.

The goal is for students to learn the unique challenges in wireless networking, gain an understanding of wireless technologies at the physical, MAC, and higher layers and get experience in working with wireless networks.Evaluation is based on 4 quizzes, 2 projects, one mid-term exam and one final exam.

  • Instructors: Peter Steenkiste
  • Lecture time: 7/18~7/29 8:00 - 11:00am
  • Location: Room 305, No. 3 Teaching Building(三教305)

Prerequisites

This course assumes you have taken an “Introduction to Computer Systems” course(For example based on the O’Hallaron and Bryant book). We will also build on basic networking and signals but the course includes introductory material on these topics.

For programming experience, you need to have knowledge in C/C++ programming for the project.

Course Staff

Instructors

NameEmailOffice
Peter Steenkiste

Teaching Assistants

NameEmailOffice
Jing Wang     Science Building No.5 517

Course Secretary

NameEmailOffice
Chenren Xu Science Building No.5 515S

Course Policies

Collaboration

You must complete individual assignments and tests by yourself. And you must collaborate with your partner in the team-based project.

It is acceptable and encouraged to help fellow students with generic problems(e.g. where to find documentation, use of tools...).

Everyone of you need to provide proper credit when reusing material.

Academic Integrity

The Peking University Policy on Integrity applies. We will strictly follow university policy on reporting cases of cheating.

Textbooks

The required textbooks for the course are 移动互联网导论, 王新兵, 清华大学出版社, 2015 or Wireless Communication Networks and Systems, by Corry Beard and William Stallings, Pearson, 2015.
These will not cover all the material in the book, but slides are detailed.

For background material on networks, you can use Computer Networking: A Top-Down Approach, Jim Kurose and Keith Ross, Addison Wesley, and Computer Networks, Andrew Tanenbaum and David Wetherall, Prentice Hall.

Grading

Your final grade for the course will be based on the following weights for the individual assignments:

  • 20% 3 Quizzes
  • 10% Project 1
  • 20% + 10% Project 2
  • 20% Midterm
  • 30% Final Exam

Project 1 is individual and project 2 is team-based. In project 2 you need to implement an ad hoc routing protocol. You need to deal with the unpredictable nature of wireless links and with mobility.

Schedule (dates and topics are subject to change)

Date Instructor Topics Notes
Mon 07/18 PS Introduction
OSI, wireless challenges
Phy Layer 1

Handouts: L1-IntroductionL2-ChallengesL3-Phy
Tue 07/19 PS Phy Layer 2
Phy Layer 3
Phy Layer 4 & Project1 Review

Handouts: L4-PhyL5-PhyL6-Phy
Wed 07/20 PS Phy Layer 5 & Quiz 1
Phy Layer 6
Phy Layer 7
Handouts: L7-PhyL8-PhyL9-Phy
For Project 1: lab1-handoutsignalTest Script
Thu 07/21 PS LAN 1: MAC
LAN 2: Aloha
LAN 3: 802.11 MAC
Handouts: L10-MACL11-LANL12-LAN
Fri 07/22 PS LAN 4: 802.11 MAC & Quiz 2
LAN 5: Mesh, Ad hoc
LAN 6: Mesh, Ad hoc & Project 2 Review
Handouts: L13-LANL14-AdHocL15-AdHoc
For Project 2: lab2-handoutStarting Codes
Mon 07/25 PS Midterm
LAN 7: 802.11 Mgt
802.11*
Handouts: L17-802.11 MgtL18-802.11*
Tue 07/26 PS MIMO
Wi-Fi Mgt
Wireless and the Internet
Handouts: L19-MIMOL20-WiFi-mgtL21-Internet
Readings: Intro to MIMO-802.11 with Multiple Antennas for Dummies
and Grey area vehicular-Experimental Study on the Impact of Obstructions in Vehicular Ad Hoc Networks
Wed 07/27 PS Internet, DTN
Cellular 1
Cellular 2
Handouts: L22-InternetL23-CellularL24-Cellular
Readings: DTN-A Delay-Tolerant Network Architecture for Challenged Internets
Thu 07/28 PS Cellular 3 & Quiz 3
Cellular 4
PAN : 802.15
Handouts: L25-CellularL26-CellularL27-PAN
Fri 07/29 PS Sensor Networks
RFID
Localization
There will be the final exam tonight from 18:30 to 20:30, in 理教407
Handouts: L28-SensorL29-RFIDL30-Localization

Assignments

Assignment Assigned Due Notes
Quiz 1 2016/07/20
Project 1 2016/07/19 2016/07/22
Quiz 2 2016/07/22
Quiz 3 2016/07/28
Midterm 2016/07/25 In class
Project 2 2016/07/22

There will be two programming projects and four quizzes in class.

All quizzes and the first project is to be done individually. The second project will be done in groups. This is an opportunity to experience the joys and frustrations of working with others. It's a skill you only get better at with practice.

In the 04833120 course, you will be expected to learn and practice good software engineering, as well as demonstrate mastery of the networking concepts. Both partners in a project group will need to fully understand the project and your solution in order to do well on those exam questions relating to the projects. For example, a typical question might be: "When you implemented X, you came across a particular situation Y that required some care. Explain why this simple solution Z doesn't work and describe how you solved it." We'll pick questions such that it will take some effort to figure out Y. If you didn't take the time to work the problem yourself and just relied on your partner, you won't have enough time during the test to figure it out. Be careful, the insights you'll need will come only from actually solving the problem as opposed to just seeing the solution.

Notes on the Programming Projects

A key objective of 04833120 is to provide a significant experience with system programming, where you must write programs that are robust and that must integrate with a large, installed software base. Oftentimes, these programs are the ones that other people will build upon or use as tools. Systems programming is very different from the application program development you have done in earlier courses:

  • It is typically done in a low-level language, such as C, to ensure close control over system resources.
  • Especially with server code, it must be designed to run indefinitely. It must reliably handle every possible error condition, and it must manage resources such as memory with care.
  • It must be secure. Connecting a system to a network makes it vulnerable to malicious attacks initiated anywhere in the world. Poorly designed or implemented network software provides a common entrypoint for attack. System software must be invulnerable to flaws such as string overflows or malformed incoming messages. (This point bears repeating: Any system software must stringently check input it receives from the network or from the user. Do not trust either one! They're often out to get you.)
  • The interfaces to other parts of the system are generally specified by documented protocols.
  • Networking software typically involves concurrency, both within individual machines (multiple processes or threads) as well as among the different network components.
  • An important part of systems programming is to be able to work in teams, we projects 2 is a team project. Also, you need to use version control (git for the project) to manage the shared code base.

We'll go into more detail about each of these points during the recitation sections. But keep in mind: the programming assignments in 04833120 are larger and more open-ended than in other courses. Doing a good job on the project requires more than just producing code that runs: it should have a good overall organization, be well implemented and documented, and be thoroughly tested.

Original Link

This is the image of the orginal website by the course instructors, and if you want to get more original info, please visit :

http://soar.pku.edu.cn/WirelessNet/Summer16/index.html