Computer Science 78
resources

There are a number of useful links for networking and programming resources on this page. 

Feel free to send me addition URLs to link in.

Networking Reources

History, IETF, etc.

A Brief History of the Internet

Internet Engineering Task Force (IETF) Sets protocols and publishes Requests for Comment (RFCs)

http://en.wikipedia.org/wiki/Internet

Transport Protocols

RFC 793 (rfc793) - Transmission Control Protocol (TCP)

RFC 768 (rfc768) - User Datagram Protocol (UDP)

RTP: A Transport Protocol for Real-Time Applications

IP Protocols

Internet Protocol (IP)

Internet Control Message Protocol (ICMP)

Routing Protocols

OSPF Version 2

RFC 1771 (rfc1771) - A Border Gateway Protocol 4 (BGP-4)

RFC 2453 (rfc2453) - Routing Information Protocol (RIP) Version 2

Some Applications we'll look at:

Hypertext Transfer Protocol -- HTTP/1.1

RFC821 - Simple Mail Transfer Protocol (SMTP)

Post Office Protocol - Version 3

Internet Message Access Protocol, Version 4rev1 (IMAP4rev1)

Plumbing:

RFC 1035 (rfc1035) - Domain names - implementation and specification

Link layer:

http://en.wikipedia.org/wiki/Data_link_layer

Wi-Fi - aka IEEE 802.11

The IEEE 802.11 Specification

Papers we will read:

Bram Cohen's Incentives Build Robustness in BitTorrent

David Clark's The design philosophy of the  DARPA internet protocol

Tools we'll use:

Wireshark for packet sniffing

Traceroute

Programming Resources

Linux books/links

These books two available online to Dartmouth Students

Linux in a Nutshell, 5th edition (currently not available)

The book I really wanted to list here Running Linux, 5th edition does not seem to be available on Safari Books yet. I've not used this book but looks useful. It includes many advanced issues we will not cover but it could be a useful reference. Let me know.

Linux System Programming

Unix commands on the web

X and C

PuTTY/Cygwin Tutorial

Sudikoff Lab 101 tour

A Tutorial on Pointers and Arrays in C, by Ted Jensen

The Wikipedia entry for the C programming language

The USENET discussion Why is C good?

C Programming Notes, by Steve Summit (Experimental College, University of Washington)
    Introductory C Programming, chapters 1-14
    Intermediate C Programming, chapters 15-25

A list of POSIX Library Functions

To obtain further details about any function listed here, on the Sudikoff lab computers type     man functionname

GNU make

cvs

Editors

I recommend, emacs or vi or vim - up to you.

I use Aquamacs Emac on my mac

I also like gvim

or just type vi or emacs at the command line.

Some tutorials:

Emacs Tutorial

vim Tutorial

vi tutorial

Socket Programming:

Socket programming