CS176B: Winter '08

Network Computing 

News

  • Googlegroup now open for new members
  • Discussion sections start on the second week of classes January 14/16.
  • First lecture: Monday January 7th, 8AM

General Information

    Lectures: Mon/Wed, 8AM--9:15AM, NH 1105
    Professor: Ben Zhao, ravenben at cs.ucsb.edu
    TAs: Skand Gupta and Camilla Fiorese
    Sections: Mon 4PM-4:50PM at 387-104 or Wed 4PM-4:50PM at GIRV 1116
    Office Hours:
    • Ben: Mon 9:30-11AM, 1123 HFH
    • Skand: Tues 1:15-3:15PM
    • Camilla: Wed 9:15-11:15AM

    Class Email List: cs176b-w08 Google Group
    Prerequisites: CS176A

Introduction

Network-based applications provide the services that make up our daily interactions with the Internet possible.  Network applications permeate all facets of our lives today, spanning the gamut from online-grading at UCSB, to file-sharing networks, to UPS package tracking and online information repositories like GoogleEarth.  Even though using these network services is becoming easier, the development of network applications is still a complex activity that requires careful design and deep knowledge of the mechanisms underlying remote interaction.

This class presents the fundamental mechanisms and the protocols that are used in network-based applications. The class covers the basics of distributed programming and presents the principal application protocols used in the Internet today.  Our class goal is to provide students with the tools and the knowledge needed to develop scalable, efficient and secure network-based applications.

Here is a rough list of some of the topics we'll cover in lecture. As we go along, certain topics will get cut, and others will be added on:
  • UNIX, C, TCP/IP, and the real world
    • autoconf, automake, and libtool
    • tcpdump, libpcap, libnet, netcat
    • Security caveats
  • Client-server programming
    • Socket programming
    • RPC programming
  • Data formats and data translation
    • XDR
    • MIME
    • HTML, CSS, XML, XSL and XSLT
    • SOAP
  • Secure communication
    • SSL, TLS
    • X-Mime, Signed/Encrypted XML
    • OpenPGP
  • Infrastructure services
    • Naming: DNS and extensions
    • Routing protocols: RIP, OSPF, BGP
  • Application protocols
    • HTTP, URI/URLs
    • SMTP
    • SSH
    • FTP
    • SNMP
  • Web-based Applications
    • The Apache web server
    • Server-side scripting (PHP, Perl)
    • Client-side scripting (JavaScript)
    • Web access to databases (MySQL)
  • Advanced topics
    • Peer-to-peer networks
    • Anonymous communication

Textbooks
Internetworking with TCP/IP, Vol. III: Client-Server Programming and Applications (Linux/Posix Sockets Version), by Douglas E. Comer and David L. Stevens, Prentice Hall, 2001.

Class Quizzes
Class participation is a critical part of your evaluation in the course.  This means coming to class and actively learning the material.  To encourage (on-time) attendance to each class, I will be scheduling a sequence of 5-7 short quizzes throughout the quarter. These quizzes are scheduled more or less randomly, and generally include a single straight-forward question on material from the previous lecture.  Missing a lecture day when a quiz is announced means a zero score on the quiz.  Note that I am more likely to announce a quiz on a day when I see fewer students showing up at lecture. 

Grading Policy

Your quarter grade will be derived from 3 homework assignments, class quizzes, a midterm exam, and a final.