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