├── COPYRIGHT ├── README ├── bin ├── announce_rss.rb ├── bibparse.rb ├── datereplace.rb └── mklectures.rb ├── ex ├── dga-744 │ ├── Makefile │ ├── announcements.srhtml │ ├── announcements.txt │ ├── assignments.srhtml │ ├── bodyhead.srhtml │ ├── class.bib │ ├── exams.srhtml │ ├── index.srhtml │ ├── lectures.txt │ ├── pagebottom.srhtml │ ├── pagehead.srhtml │ ├── project.srhtml │ ├── readinglist.head │ ├── readinglist.tail │ ├── style.css │ ├── syllabus.head │ └── syllabus.tail ├── dga-849 │ ├── bodyhead.srhtml │ ├── class.bib │ ├── index.srhtml │ ├── lectures.txt │ ├── pagebottom.srhtml │ ├── pagehead.srhtml │ ├── readinglist.head │ ├── readinglist.tail │ ├── style.css │ ├── syllabus.head │ └── syllabus.tail └── feamster-7260 │ ├── class.bib │ ├── lectures.txt │ ├── readinglist.head │ ├── readinglist.tail │ ├── style.css │ ├── syllabus.head │ └── syllabus.tail ├── include ├── doctype.html └── weblib.rb └── www └── Makefile /COPYRIGHT: -------------------------------------------------------------------------------- 1 | This software is licensed under the Apache License, version 2.0. 2 | 3 | Copyright (C) 2005-2012 David G. Andersen 4 | 5 | For a copy of the Apache License, please see http://www.apache.org/licenses/LICENSE-2.0 6 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | Course web page software. 2 | Authors: Dave Andersen, Nick Feamster 3 | 4 | This program generates the framework for the undergrad and grad networks 5 | courses that Dave and Nick teach. It produces a syllabus from a simple 6 | text file describing the lectures, produces announcements and RSS feeds 7 | of the announcements, links to papers, etc. 8 | 9 | To use: 10 | 11 | look at one of the example directories. 12 | Type make 13 | Copy to your own course directory and adjust the COURSE= 14 | pointer in the makefile appropriately 15 | 16 | Edit lectures.txt 17 | Edit announcements.txt 18 | Edit class.bib 19 | Edit index.srhtml to customize the main page to your desires 20 | Edit syllabus.head and syllabus.tail to customize per your class 21 | ** note: Do not edit syllabus.srhtml or .html directly; it will be 22 | overwritten ** 23 | make 24 | 25 | You can customize things more by editing the other files. Almost all 26 | stylistic things (presentation, layout, etc) are controlled by style.css 27 | -------------------------------------------------------------------------------- /bin/announce_rss.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require 'yaml' 4 | require 'rss/2.0' 5 | require 'rss/maker' 6 | require 'rss/content' 7 | 8 | ## Ugly hack to get content stuff with RSS 2.0 9 | module RSS 10 | class RDF 11 | class Item; include ContentModel; end 12 | end 13 | end 14 | 15 | @ann = YAML::load_file("announcements.txt") 16 | @conf = YAML::load_file("lectures.txt") 17 | 18 | rss = RSS::Maker.make("2.0") do |maker| 19 | maker.channel.title = "#{@conf["CLASS_SHORT"]} Announcements" 20 | maker.channel.description = "Announcements feed for the #{@conf["CLASS"]} course" 21 | maker.channel.link = @conf["COURSE_URL"] 22 | maker.encoding = "UTF-8" 23 | 24 | @ann.each { |a| 25 | item = maker.items.new_item 26 | item.link = "#{@conf["COURSE_URL"]}/announcements.html" 27 | item.title = a["T"] 28 | item.date = Time.parse(a["D"]) 29 | item.description = a["C"] 30 | } 31 | maker.items.do_sort = true 32 | maker.items.max_size = 100 33 | end 34 | 35 | File.open("rss2.xml", "w+") do |f| 36 | f.print rss 37 | end 38 | -------------------------------------------------------------------------------- /bin/bibparse.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | class BibParse 4 | def initialize(bf) 5 | @bibfile = bf 6 | 7 | @entries = Hash.new 8 | @crossrefs = Hash.new 9 | @readinglist = Hash.new 10 | @readinglistbytype = Hash.new 11 | @strs = Hash.new 12 | 13 | parse 14 | end 15 | 16 | def cleanup(val) 17 | val.gsub(/\"/, "").gsub(/[\{\}]/, "").sub(/,\s*$/, "") 18 | end 19 | 20 | 21 | def parse 22 | 23 | bibent = nil 24 | ref = nil 25 | 26 | IO.foreach("#{@bibfile}") { |l| 27 | 28 | if (l =~ /\@(.*)\{\s*(.*?)\s*,/) 29 | type = $1 30 | ref = $2 31 | 32 | bibent = Hash.new 33 | bibent["type"] = type 34 | 35 | elsif (l =~ /@string\{(.*)\}/i) 36 | strdef = $1 37 | if (strdef =~ /(\w+)\s*\=\s*(.*)/) 38 | strname = $1 39 | strval = $2 40 | val = cleanup(strval) 41 | @strs[strname] = val 42 | end 43 | 44 | elsif (l =~ /\s*(\w+)\s*\=\s*(.*)/) 45 | key = $1 46 | val = $2 47 | 48 | val.gsub!(/\"/, "") 49 | val.gsub!(/[\{\}]/, "") 50 | val.sub!(/,\s*$/, "") 51 | if (@strs[val]) 52 | val = @strs[val] 53 | end 54 | 55 | bibent["#{key}"] = val 56 | 57 | elsif (l =~ /^\}/) 58 | 59 | if (bibent["type"] == "proceedings") 60 | @crossrefs[ref] = bibent 61 | else 62 | @entries[ref] = bibent 63 | end 64 | end 65 | } 66 | end 67 | 68 | 69 | def printHTML(ref, out) 70 | 71 | r = @entries[ref] 72 | 73 | out.puts "#{r["author"]}
" 74 | out.puts "#{r["title"]}
" 75 | 76 | 77 | if (r["crossref"] && r["crossref"].length > 0) 78 | cr = @crossrefs[r["crossref"]] 79 | else 80 | cr = r 81 | end 82 | 83 | if (cr["booktitle"] || cr["journal"]) 84 | 85 | title = cr["booktitle"]?cr["booktitle"]:cr["journal"] 86 | mon = cr["month"] ? cr["month"].capitalize : "" 87 | year = cr["year"] || "" 88 | out.print "In #{title}, #{mon} #{year}" 89 | out.print ", pages #{cr["pages"]}" if cr["pages"] 90 | out.print "
\n" 91 | end 92 | 93 | 94 | # if r["url"] 95 | # out.puts "Link
" 96 | # end 97 | 98 | end 99 | 100 | 101 | def setURL(ref,url) 102 | if (!@entries[ref]) 103 | $stderr.puts "URL for undefined reading list entry #{ref}. Creating." 104 | $stderr.puts "Create an entry in class.bib to suppress this warning" 105 | @entries[ref] = Hash.new 106 | end 107 | @entries[ref]["url"] = url 108 | end 109 | 110 | def addToList(ref, lecent, type=nil) 111 | if (!@readinglist[lecent] || @readinglist[lecent].size <= 0) 112 | @readinglist[lecent] = Array.new 113 | end 114 | @readinglist[lecent] << ref 115 | 116 | end 117 | 118 | 119 | def printReadingList(filename, head=nil, tail=nil) 120 | 121 | out = File.new(filename, "w+") 122 | 123 | out.print IO.read(head) if head 124 | 125 | out.puts "" 144 | 145 | now = Time.new 146 | out.puts "

Last Updated #{now}

" 147 | 148 | out.print IO.read(tail) if tail 149 | 150 | end 151 | end 152 | 153 | if $0 == __FILE__ 154 | bp = BibParse.new("./class.bib") 155 | bp.setURL("Infranet", "http://foo/") 156 | 157 | 158 | # add some test entries 159 | lecent = Hash.new 160 | lecent["date"] = "10/17" 161 | lecent["T"] = "Anonymity" 162 | bp.addToList("Infranet",lecent) 163 | 164 | lecent = Hash.new 165 | lecent["date"] = "10/18" 166 | lecent["T"] = "Management" 167 | bp.addToList("rcc",lecent) 168 | 169 | 170 | bp.printReadingList("readinglist.srhtml", 171 | "readinglist.head", 172 | "readinglist.tail") 173 | end 174 | -------------------------------------------------------------------------------- /bin/datereplace.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/ruby 2 | 3 | now = Time.new 4 | system("cp #{ARGV[0]} #{ARGV[0]}.tmp") 5 | f = File.new(ARGV[0], "w+") 6 | IO.foreach("#{ARGV[0]}.tmp") { |l| 7 | l.gsub!(/Updated .*$/, 8 | sprintf("Updated %s", now.to_s)) 9 | f.print l 10 | } 11 | system("rm #{ARGV[0]}.tmp") 12 | -------------------------------------------------------------------------------- /bin/mklectures.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | ## 4 | # Convert a flat text file of lectures to HTML and output a schedule ical file 5 | ## 6 | 7 | $LOAD_PATH << File.dirname(__FILE__) 8 | 9 | require 'time' 10 | require 'bibparse' 11 | require 'yaml' 12 | 13 | LECTUREFILE = 'lectures.txt' 14 | BIBFILE = "./class.bib" 15 | SLIDETYPES = ["pdf", "ps", "html", "ppt", "key", "odp", "mp3", "mov", "txt"] 16 | SIZETYPES = ["mp3", "mov"] 17 | SLIDEDIR = "lectures" 18 | 19 | class LecPrinter 20 | 21 | def initialize(lecfile, bibparse=nil) 22 | @lecfile = lecfile 23 | @bp = bibparse 24 | @start_time = nil 25 | @end_time = nil 26 | @year = nil 27 | @instructor = nil 28 | @term = nil 29 | @summary = nil 30 | @class_name = nil 31 | 32 | readlecs(lecfile) 33 | end 34 | 35 | 36 | def print_ical 37 | out = File.new("#{@class_short}.ics", "w+") 38 | out.puts %Q{ 39 | BEGIN:VCALENDAR 40 | VERSION:2.0 41 | X-WR-CALNAME:#{@conf["CLASS_SHORT"].to_s.downcase} 42 | X-WR-TIMEZONE:US/Eastern 43 | CALSCALE:GREGORIAN 44 | }.gsub(/^\s*/, '') 45 | 46 | @lectures.each { |l| 47 | next if l["type"] != "lecture" 48 | class_summary = @conf['CLASS_SHORT'] + ' (' +l["T"] + ' - ' + l["I"] + ')' 49 | class_desc = class_summary + ' ' 50 | if l["R"] != nil 51 | class_desc += ' Readings: ' + l["R"].to_s + ' ' 52 | end 53 | if l["N"] != nil 54 | class_desc += ' Notes: ' + l["N"] 55 | end 56 | out.puts %Q{ 57 | BEGIN:VEVENT 58 | DTSTART;TZID=US/Eastern:#{l['stime'].strftime("%Y%m%dT%H%M00")} 59 | DTEND;TZID=US/Eastern:#{l['etime'].strftime("%Y%m%dT%H%M00")} 60 | SUMMARY:#{class_summary} 61 | DESCRIPTION:#{class_desc} 62 | END:VEVENT 63 | }.gsub(/^\s*/, '') 64 | } 65 | 66 | out.puts "END:VCALENDAR" 67 | end 68 | 69 | def print_html 70 | print IO.read("syllabus.head") 71 | puts "" 72 | 73 | rowcount = 0 74 | @lectures.each { |l| 75 | 76 | ltype = l["type"] 77 | 78 | if (l["type"] == "lecture") 79 | # allow a wash on alternating rows 80 | if (@conf["ALTERNATE"] == 'row') 81 | if ((rowcount & 1) == 1) 82 | ltype += " alt" 83 | end 84 | rowcount += 1 85 | elsif (@conf["ALTERNATE"] == 'week') 86 | weeknum = l['stime'].strftime("%U") 87 | if ((weeknum.to_i & 1) == 1) 88 | ltype += " alt" 89 | end 90 | end 91 | end 92 | 93 | puts "" 94 | 95 | if (l["type"] == "lechead") 96 | 97 | puts %Q{ #{l["T"]}} 98 | puts ""; 99 | next 100 | end 101 | 102 | if (@conf["SHOW_LECNUM"]) 103 | if l["type"] == "lecture" 104 | puts " #{l["lecnum"]}" 105 | else 106 | puts " " 107 | end 108 | end 109 | puts " #{l["date"]}" 110 | 111 | if (@conf["SHOW_INSTRUCTOR"]) 112 | puts " #{l["I"]}" 113 | end 114 | 115 | tspan = "" 116 | if (l["TSPAN"]) 117 | tspan = " colspan=\"#{l["TSPAN"]}\"" 118 | end 119 | puts " #{l["T"]}
" 120 | 121 | if (l["S"]) 122 | SLIDETYPES.each { |ext| 123 | filename = SLIDEDIR + "/" + l["S"] + "." + ext 124 | if (FileTest.exists?(filename)) 125 | size = "" 126 | if (SIZETYPES.include?(ext)) 127 | bytes = FileTest.size(filename) 128 | size = sprintf(" (%.1f MB) ", bytes.to_f/(1024.0*1024.0)) 129 | end 130 | 131 | print "[#{ext}#{size}] " 132 | end 133 | } 134 | end 135 | 136 | if (l["V"] && l["V"].to_s.length > 0) 137 | vcount = 1 138 | l["V"].to_s.split.each { |v| 139 | print "[Video #{vcount}] " 140 | vcount += 1 141 | } 142 | end 143 | 144 | puts " " 145 | 146 | # Notes 147 | if (!l["TSPAN"] || l["TSPAN"].to_i <= 1) 148 | if (l["N"] =~ /Due/i && @conf["HIGHLIGHT_DUE"]) 149 | puts " #{l["N"]}" 150 | else 151 | puts " #{l["N"]}" 152 | end 153 | end 154 | 155 | if (!l["TSPAN"] || l["TSPAN"].to_i <= 2) 156 | # Readings 157 | print " #{l["R"]} " 158 | 159 | # Links for Readings 160 | if (l["RL"] && l["RL"].length > 0) 161 | rlcount = 1 162 | 163 | 164 | l["RL"].split.each { |rl| 165 | ref = rl.split('::') 166 | print "#{ref[0]} " 167 | } 168 | end 169 | 170 | # Bibtex-Based Links for Readings 171 | first = true 172 | if (l["RB"] && l["RB"].length > 0) 173 | l["RB"].split.each { |rb| 174 | ref = rb.split('::') 175 | url = ref[1] 176 | if (url !~ /^http/) 177 | url = @readingbase.to_s + "/" + url.to_s 178 | end 179 | @bp.setURL(ref[0],url) 180 | # add to the reading list 181 | @bp.addToList(ref[0], l) 182 | prettyref = ref[0].gsub("_", " ") 183 | if (!first) 184 | print ", " 185 | end 186 | first = false 187 | print "#{prettyref}" 188 | } 189 | end 190 | puts " " 191 | end 192 | 193 | puts "" 194 | } 195 | 196 | puts "" 197 | 198 | print IO.read("syllabus.tail") 199 | end 200 | 201 | def readlecs(lecfile) 202 | @conf = YAML::load_file(lecfile) 203 | 204 | @year = @conf['YEAR'] 205 | @summary = @conf['SUMMARY'] 206 | @class_name = @conf['CLASS'] 207 | @class_short = @conf['CLASS_SHORT'] + '-' + 208 | @conf['TERM'] + @conf['YEAR'].to_s 209 | @instructor = @conf['INSTRUCTOR'] 210 | @videobase = @conf['VIDEOBASE'] 211 | @readingbase = @conf['READINGBASE'] 212 | @start_time = @conf['START_TIME'] 213 | @end_time = @conf['END_TIME'] 214 | 215 | lecnum = 1 216 | 217 | @lectures = Array.new 218 | @conf['LECTURES'].each { |l| 219 | 220 | if (l.class == String) 221 | lec = Hash.new 222 | lec["type"] = "lechead" 223 | lec["T"] = l.dup 224 | else 225 | 226 | key = l.keys[0] 227 | if (l[key] != nil) 228 | lec = l[key].dup 229 | else 230 | lec = Hash.new 231 | end 232 | 233 | lec["type"] ||= "lecture" 234 | 235 | if (lec["type"] == "lecture") 236 | lec["lecnum"] = lecnum 237 | lecnum = lecnum + 1 238 | end 239 | 240 | lec["year"] = @year 241 | m, d, y = key.split("/") # obtuse. we store in hash keyed by date 242 | lec["day"] = d 243 | lec["month"] = m 244 | if (y) 245 | lec["year"] = y 246 | end 247 | lec["START"] ||= @start_time 248 | lec["END"] ||= @end_time 249 | lec["I"] ||= @instructor 250 | 251 | shour, smin = lec["START"].split(":") 252 | ehour, emin = lec["END"].split(":") 253 | lec["stime"] = Time.local(lec["year"].to_i, lec["month"].to_i, lec["day"].to_i, 254 | shour.to_i, smin.to_i, 0) 255 | lec["etime"] = Time.local(lec["year"].to_i, lec["month"].to_i, lec["day"].to_i, 256 | ehour.to_i, emin.to_i, 0) 257 | lec["date"] = lec["stime"].strftime("%a %m/%d") 258 | end 259 | 260 | @lectures.push(lec) 261 | } 262 | end 263 | end 264 | 265 | bp = nil 266 | if (FileTest.exists?(BIBFILE)) 267 | bp = BibParse.new(BIBFILE) 268 | end 269 | lp = LecPrinter.new(LECTUREFILE, bp) 270 | 271 | lp.print_html 272 | lp.print_ical 273 | 274 | if (bp) 275 | bp.printReadingList("readinglist.html", 276 | "readinglist.head", 277 | "readinglist.tail") 278 | end 279 | -------------------------------------------------------------------------------- /ex/dga-744/Makefile: -------------------------------------------------------------------------------- 1 | # Note: if you cannot write directly to AFS, you need to speciy 2 | # the AFSHOST environment variable (include a semi-colon at the end) 3 | # e.g. AFSHOST=tye.coda.cs.cmu.edu: 4 | PUBDIR=/afs/cs.cmu.edu/project/dot-1/public_html_15-744/S07 5 | COURSE = ../../ 6 | WEBLIB = "${COURSE}/include/weblib.rb" 7 | RDEPS = pagehead.srhtml bodyhead.srhtml Makefile 8 | CBIN = "${COURSE}/bin" 9 | ASSIGN=ps_theory1.ps ps_theory2.pdf ps_theory1_soln.pdf ps_tools1.pdf \ 10 | ps_tools1_soln.pdf midterm_soln.pdf ps2 ps_tools2.pdf ps_theory2_soln.pdf 11 | GENPAGES = index.html syllabus.html assignments.html exams.html announcements.html project.html readinglist.html rss2.xml 12 | PUB = $(GENPAGES) $(ASSIGN) 15-744-Spring2007.ics style.css xml.gif dave-ns-notes.ps midterm2004_solutions.pdf 13 | 14 | #all: publish 15 | all: local 16 | 17 | publish: local 18 | @echo publishing HTML docs using env. variable AFSHOST = $(AFSHOST) 19 | @echo Note: you must put a semi-colon at the end. e.g., AFSHOST=tye.code.cs.cmu.edu: 20 | rsync -avz $(PUB) $(AFSHOST)$(PUBDIR) 21 | 22 | local: $(GENPAGES) 23 | 24 | index.html announcements.html: announcements.txt 25 | 26 | rss2.xml: announcements.txt lectures.txt 27 | ${CBIN}/announce_rss.rb 28 | 29 | syllabus.srhtml: lectures.txt syllabus.head syllabus.tail 30 | if [ ! -d lectures/ ]; then ln -s ../lectures ./; fi 31 | ${CBIN}/mklectures.rb > syllabus.srhtml 32 | 33 | clean: 34 | rm -f $(GENPAGES) syllabus.srhtml readinglist.srhtml *.ics 35 | 36 | .SUFFIXES: .html .srhtml 37 | 38 | .srhtml.html: ${RDEPS} 39 | erb -T 2 -r ${WEBLIB} $< > $@ 40 | 41 | -------------------------------------------------------------------------------- /ex/dga-744/announcements.srhtml: -------------------------------------------------------------------------------- 1 | <%= pagetop("15-744 Announcements") %> 2 | 3 | <% 4 | require 'yaml' 5 | @ann = YAML::load(File.open("announcements.txt")) 6 | %> 7 | 8 |

Announcements will be posted here.

9 | 10 | 18 | 19 | <%= pagebottom() %> 20 | -------------------------------------------------------------------------------- /ex/dga-744/announcements.txt: -------------------------------------------------------------------------------- 1 | - 2 | D: 5/01 3 | T: Projects due 05/14 4 | C: Project writeups are due 05/14 to make sure we have a few days to grade them before CSD black friday. Please disregard the earlier due date of 05/09. 5 | 6 | - 7 | D: 4/16 8 | T: Tools homework 2 update 9 | C: If you haven't done part of of hw2 yet, we suggest pinging the host eep.lcs.mit.edu instead of www.cs.cmu.edu. www.cs seems to have a per-host IP ID counter, so it worked in the tests we ran from a single machine, but doesn't work when pinging from two hosts. 10 | 11 | - 12 | D: 4/9 13 | T: Tools homework 2 online 14 | C: The second tools homework is now online. Note that scriptroute does not want to compile on andrew linux machines. Use either your own or a CS linux machine if you have problems. 15 | 16 | - 17 | D: 4/1 18 | T: Syllabus updated 19 | C: The rest of the semester is filled in. 20 | 21 | - 22 | D: 3/19 23 | T: midterm and ps2 solutions 24 | C: Midterm and problem set 2 solutions have been posted. 25 | (If you have not already, you can pick up your HWs and midterms from 26 | Jeff.) 27 | - 28 | D: 3/18 29 | T: scheduling project meetings 30 | C: Please contact Barbara Gardillo, the course secretary, with the times your 31 | group can meet next Wednesday (bag AT cs DOT cmu DOT edu). 32 | - 33 | D: 2/26 34 | T: syllabus updated 35 | C: The mobility lecture was moved to after spring break and the Best of Broadcast lecture inserted. 36 | 37 | - 38 | D: 2/21 39 | T: ps1 solutions annoted with points 40 | C: Also, Q7 and Q9 had typos. Fixed now. 41 | 42 | - 43 | D: 2/15 44 | T: Bug fixed in ps1 solutions 45 | C: The solution for TCP Tahoe was buggy. It's fixed. 46 | 47 | - 48 | D: 2/14 49 | T: Problem Set 2 is available 50 | C: Check the assignments link. 51 | - 52 | D: 2/14 53 | T: ns Tutorial Recitation 54 | C: Jeff will hold a short tutorial on ns this Friday at 3:00-4:30PM 55 | in WeH 5409. 56 | - 57 | D: 2/13 58 | T: Link for CSZ'92 fixed 59 | C: The CSZ'92 postscript was buggy. The link now points to a verified good PDF. 60 | 61 | - 62 | D: 2/7 63 | T: Project proposals due 2/14. 64 | C: The project proposals are due a week from today. 65 | 66 | - 67 | D: 2/2 68 | T: RED paper link updated 69 | C: The paper link for RED has been updated. The postscript was buggy; the newly linked PDF is happy. 70 | 71 | - 72 | D: 2/1 73 | T: Office hour time selection on discussion site 74 | C: Now that the class membership is a bit more stable, there's a post on the discussion site where people should express their preferences for office hour slots, if you have any. We'll have the actual hours established by Monday. 75 | 76 | - 77 | D: 1/30 78 | T: Problem set 1 small change 79 | C: In section E, please draw the THREE RTTs following the loss, not just one. The problem set has been updated. 80 | 81 | - 82 | D: 1/29 83 | T: Problem set 1 available 84 | C: The first theory problem set is now online. 85 | 86 | - 87 | D: 1/28 88 | T: 'Reading for Monday: Just a subset of GR' 89 | C: For Monday, you do NOT need to read all of GR yet. We\'ll be returning to this paper a bit later. For monday, please read the intro, section 2, skim over 6, and read the conclusion. 90 | 91 | - 92 | D: 1/26 93 | T: Announcements RSS feed now available 94 | C: You can now subscribe to the 15-744 announcements as an RSS feed. 95 | 96 | - 97 | D: 1/22 98 | T: Fundamentals Review Recitation 99 | C: The recitation for reviewing network fundamentals will be this Friday, 1/26 from 3-4:30PM in room WeH 4615A. The slides are available here, and more can be found on last fall's 15-441 page. 100 | 101 | -------------------------------------------------------------------------------- /ex/dga-744/assignments.srhtml: -------------------------------------------------------------------------------- 1 | <%= pagetop("15-744 Assignments") %> 2 | 3 |

There will be two programming projects and four written 4 | homework assignments.

5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 42 | 43 | 44 | 45 | 46 | 47 |
TopicAssignedDueOther InfoSolutions
Theory 1: Congestion, Queueing, Dynamics, BGP01/29/200702/07/2007Solutions
Tools of the Trade 1: Simulation with ns-2 and Routing Table Analysis02/14/200703/05/2007Solutions
Theory 2: DNS, DHTs, Multihoming, and Ad-Hoc Wireless Networks03/26/200704/04/2007Solutions
Tools of the Trade 2: 41 | Network measurement with scriptroute and ruby04/09/200704/18/2007
48 | 49 | 50 |

All homework is to be done individually.

51 | 52 | <%= pagebottom() %> 53 | -------------------------------------------------------------------------------- /ex/dga-744/bodyhead.srhtml: -------------------------------------------------------------------------------- 1 | 2 |

<%= @page.title %>

3 |
4 | 12 |
13 | 14 | -------------------------------------------------------------------------------- /ex/dga-744/class.bib: -------------------------------------------------------------------------------- 1 | @article{Saltzer84, 2 | author = "Saltzer, J. and Reed, D. and Clark, D.", 3 | title = "{End-to-end Arguments in System Design}", 4 | journal = TOCS, 5 | volume = 2, 6 | pages = {277--288}, 7 | month = nov, 8 | year = 1984, 9 | basefilename="saltzer-e2e", 10 | inpage="15-849f05", 11 | category="Background" 12 | } 13 | 14 | @inproceedings{Design, 15 | author = "Clark, D.", 16 | title = "{The Design Philosophy of the DARPA Internet Protocols}", 17 | crossref = "sigcomm1988", 18 | pages = "109--114" 19 | } 20 | 21 | @inproceedings{Architecture, 22 | author = "Clark, D. and Tennenhouse, D.", 23 | title = "{Architectural Consideration for a New Generation of Protocols}", 24 | crossref = "sigcomm1990", 25 | pages = "200--208" 26 | } 27 | 28 | 29 | @InProceedings{OSPF-Monitor, 30 | author = {Aman Shaikh and Albert Greenberg}, 31 | title = "{{OSPF} Monitoring: Architecture, Design, and Deployment Experience}", 32 | crossref = "nsdi2004", 33 | pages = {57--70} 34 | } 35 | 36 | 37 | @Article{Stability, 38 | author = {Lixin Gao and Jennifer Rexford}, 39 | title = {Stable {I}nternet routing without global coordination}, 40 | journal = TON, 41 | year = 2001, 42 | pages = {681--692}, 43 | month = dec, 44 | } 45 | 46 | 47 | @inproceedings{rcc, 48 | author = {Nick Feamster and Hari Balakrishnan}, 49 | title = "{Detecting BGP Configuration Faults with Static Analysis}", 50 | crossref = "nsdi2005", 51 | pages = {43--56} 52 | } 53 | 54 | @article{Huston:BGPSec, 55 | author = {Geoff Huston}, 56 | title = {Securing Inter-Domain Routing}, 57 | journal = {The ISP Column}, 58 | year = {2005}, 59 | month = mar, 60 | note = {\url{http://www.potaroo.net/ispcol/2005-03/route-sec-2-ispcol.pdf}}, 61 | } 62 | 63 | @inproceedings{Akella, 64 | title = "Multihoming Performance Benefits: An Experimental Evaluation of Practical Enterprise Strategies", 65 | author = "Aditya Akella and Srinivasan Seshan and Anees Shaikh", 66 | crossref = "usenix2004" 67 | } 68 | 69 | 70 | 71 | @inproceedings{RON, 72 | author = "David G. Andersen and Hari Balakrishnan and M. Frans Kaashoek and Robert Morris", 73 | title = "{Resilient Overlay Networks}", 74 | crossref = "sosp2001", 75 | pages = {131--145}, 76 | } 77 | 78 | @inproceedings{Infranet, 79 | author = {Nick Feamster and Magdalena Balazinska and Greg Harfst and Hari Balakrishnan and David Karger}, 80 | title = "{Infranet: Circumventing Web Censorship and Surveillance}", 81 | crossref = "usenixsec2002" 82 | } 83 | 84 | 85 | 86 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 87 | 88 | @proceedings{sigcomm1988, 89 | booktitle = SIGCOMM, 90 | address = "{Stanford, CA}", 91 | month = Aug, 92 | year = 1988 93 | } 94 | 95 | @proceedings{sigcomm1990, 96 | booktitle = SIGCOMM, 97 | address = "{Philadelphia, PA}", 98 | month = sep, 99 | year = 1990 100 | } 101 | 102 | @proceedings{usenix2004, 103 | booktitle = USENIXTECH, 104 | address = {Boston, MA}, 105 | month = jun, 106 | year = 2004 107 | } 108 | 109 | @proceedings{nsdi2005, 110 | booktitle = {Proc. 2nd Symposium on Networked Systems Design and Implementation (NSDI)}, 111 | address = {Boston, MA}, 112 | month = may, 113 | year = 2005 114 | } 115 | 116 | 117 | @proceedings{usenixsec2002, 118 | booktitle = "{Proc. 11th USENIX Security Symposium}", 119 | address = "{San Francisco, CA}", 120 | month = aug, 121 | year = 2002 122 | } 123 | 124 | @proceedings{sosp2001, 125 | booktitle = "{Proc. 18th ACM Symposium on Operating Systems Principles (SOSP)}", 126 | address = "{Banff, Canada}", 127 | month = oct, 128 | year = 2001 129 | } 130 | 131 | @proceedings{nsdi2004, 132 | booktitle = {Proc. First Symposium on Networked Systems Design and Implementation (NSDI)}, 133 | address = {San Francisco, CA}, 134 | month = mar, 135 | year = 2004 136 | } 137 | -------------------------------------------------------------------------------- /ex/dga-744/exams.srhtml: -------------------------------------------------------------------------------- 1 | <%= pagetop("15-744 Exams") %> 2 | 3 |

Midterm 1. Sample exam from 2004

4 | 5 |

Midterm 1 solutions.

6 | 7 | <%= pagebottom() %> 8 | -------------------------------------------------------------------------------- /ex/dga-744/index.srhtml: -------------------------------------------------------------------------------- 1 | <%= pagetop("15-744, Spring 2007: Computer Networks") %> 2 | 3 |
4 |
5 |

Latest Announcements

6 | <% 7 | require 'yaml' 8 | @ann = YAML::load(File.open("announcements.txt")) 9 | %> 10 | 11 |
12 | 13 | <% @ann[0..1].each { |a| %> 14 |
<%= a["D"] %>: <%= a["T"] %>
15 |
<%= a["C"] %>
16 | <% } %> 17 | 18 |
19 | 20 |

See all announcements 21 | RSS 2.0 feed 22 |

23 |
24 |
25 |

Overview

26 |

27 | 15-744 is a graduate course in computer networks. The goals are: 28 |

    29 |
  • To understand the state of the art in network protocols, network architecture, and networked systems.
  • 30 |
  • To understand how to engage in networking research.
  • 31 |
  • To investigate novel ideas in networking through a semester-long research project.
  • 32 |
33 |

34 |

35 | The past few years have seen a remarkable growth in the global 36 | network infrastructure. The Internet has grown from a research 37 | curiosity to something we all take for granted. 38 |

39 |

40 | How does this network infrastructure work? What are the design principles 41 | upon which it is based, and how are those principles applied in practice? 42 | How can we make the Internet work better today? We will examine these 43 | issues and more during the course. 44 |

45 | 46 |

47 | This course assumes a basic familiarity with networking concepts. 48 | The course will consist of a reading/lecture/discussion component 49 | and a project component. The class will cover approximately 50 50 | research papers on various aspects of computer networking. These 51 | papers will introduce students to the basic design principles on 52 | which today's networks are based. In addition, these papers will 53 | cover recent proposals to improve network performance, functionality 54 | and scalability. Specific topics that will be covered include: 55 | LAN/WAN technologies, congestion/flow control, traffic analysis, 56 | routing, internetworking, multicast, security, and quality of 57 | service. Students are expected to read papers before the class and 58 | participate in the discussion during the class. 59 |

60 | 61 | 62 |
    63 |
  • Lecture time: MW 15:00 - 16:20
  • 64 |
  • Units: 12
  • 65 |
  • Location: Wean Hall 4623
  • 66 |
  • Paper Discussion Page - please login and create an account.
  • 67 |
68 |
69 | 70 | 71 |
72 |
73 | 74 |
75 |

Course Staff

76 | 77 |

Teaching Assistants

78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 |
NameEmailOfficeTelOffice Hours
Jeff PangWeH 7203268-3621Thu 2-3PM (or by appointment)
89 | 90 |

Instructor

91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 |
NameEmailOfficeTelHours
David AndersenWeH 8206268-3064Tues 11:00 - 11:59am
101 | 102 |

Course Secretary

103 |

104 | Barbara Grandillo, , Wean Hall 8018, Tel: 268-7550 105 |

106 |
107 | 108 |
109 |

Course Policies

110 | 111 |

Collaboration

112 | 113 |

Students are encouraged to talk to each other, to the course staff, 114 | or to anyone else about any of the assignments. 115 | Assistance must be limited to discussion of the problem and 116 | sketching general approaches to a solution. Each student must write 117 | out his or her own solutions to the homework. 118 |

119 | 120 |

Late Policy

121 | 122 | 133 | 134 | <%= pagebottom() %> 135 | -------------------------------------------------------------------------------- /ex/dga-744/lectures.txt: -------------------------------------------------------------------------------- 1 | # This file defines the lectures for the class. The syllabus is 2 | # automatically generated from this file. 3 | 4 | # Date: [Lecture type] 5 | # blank: normal lecture 6 | # noclass [explanation text] 7 | # exam [exam name] 8 | # I: Instructor (overrides the global INSTRUCTOR) 9 | # T: Title 10 | # S: slides ref (looks in lectures/.{ppt,pdf,ps,html} 11 | # V: Video list (links to coursecast) 12 | # R: Readings (copied verbatim) 13 | # N: Notes (copied verbatim) 14 | 15 | CLASS: 15-744 Computer Networks 16 | CLASS_SHORT: 15-744 17 | YEAR: 2007 18 | TERM: Spring 19 | INSTRUCTOR: DGA 20 | LOCATION: WeH 4623 21 | START_TIME: '15:00' 22 | END_TIME: '16:20' 23 | COURSE_URL: http://www.cs.cmu.edu/~dga/15-744/S07/ 24 | READINGBASE: http://www.cs.cmu.edu/~dga/15-744/S07/papers/ 25 | SHOW_LECNUM: no 26 | SHOW_INSTRUCTOR: no 27 | ALTERNATE: row 28 | HEADSPAN: 4 29 | 30 | LECTURES: 31 | 32 | - 01/15: 33 | T: Martin Luther King Jr. Day 34 | type: noclass 35 | 36 | - 'Part 1: Internetworking' 37 | 38 | - 1/17: 39 | T: 'Intro: History and context and packet switching.' 40 | S: 01-intro 41 | 42 | - 01/22: 43 | T: 'Internetworking: Architectural principles, names, addresses' 44 | RB: Design::darpa-internet.pdf 45 | S: 02-design 46 | 47 | - 01/24: 48 | T: A best effort world, placement of function (reliability, security, etc.) 49 | RB: Saltzer84::saltzer-e2e.pdf Architecture::alf.pdf 50 | S: 03-besteffort 51 | N: | 52 | Read the End-to-End Arguments paper (Saltzer84)
if you 53 | haven't seen it before. 54 | 55 | - 01/26: 56 | T: Recitation - background material review (Jeff) 57 | type: recitation 58 | N: Wean 4615A, 3:00 - 4:30pm. 59 | S: r01-review 60 | 61 | - 01/29: 62 | T: Interdomain Routing 63 | RB: GR::gao-rexford.pdf 64 | N: Only read sections 1, 3, skim 6, and 7 of GR for today 65 | S: 04-interdomain 66 | 67 | - 'Part 2: Resource Management' 68 | 69 | - 01/31: 70 | T: End-to-End Congestion Control 71 | RB: CJ89::chiujain.pdf VJ88::congavoid.pdf 72 | S: 05-congctl 73 | N: For more examples of Reno/NewReno/etc., see the ppt slides from 744 in 2004 74 | 75 | - 02/05: 76 | T: No lecture. Meetings about projects. 77 | 78 | - 02/07: 79 | T: Router congestion control 80 | RB: RED::red.pdf XCP::xcp.pdf 81 | S: 06-router-cong 82 | 83 | - 02/12: 84 | T: Fair Queueing 85 | RB: WFQ::fq.pdf CSFQ::csfq.pdf 86 | S: 07-fairqueue 87 | 88 | - 02/14: 89 | T: Quality of Service 90 | RB: She95::beyondbesteffort.pdf CSZ92::csz.pdf 91 | N: Project proposals due 92 | S: 08-qos 93 | 94 | - 02/16: 95 | T: ns-2 and tools (Jeff) 96 | type: recitation 97 | N: Wean Hall 5409, 3:00-4:30PM 98 | 99 | - 02/19: 100 | T: Router Design 101 | S: 09-bfr 102 | RB: MGR::50gb.ps iSLIP::islip-ton.pdf 103 | N: 'Optional reading: D+97 (the "Lulea" algorithm)' 104 | 105 | - 'Part 3: Wireless' 106 | 107 | - 02/21: 108 | T: Wireless Networks overview and architectures 109 | RB: Macaw::macaw.pdf 110 | S: 10-wireless1 111 | 112 | - 02/26: 113 | T: Wireless Networks in the real world 114 | RB: Chaotic::http://www.cs.cmu.edu/afs/cs/project/cmcl/archive/2005/mobicomchaotic.pdf 115 | S: 11-wireless2 116 | 117 | - 02/28: 118 | T: Quiz 1 119 | type: exam 120 | 121 | - 03/05: 122 | T: Routing in ad-hoc networks 123 | S: 12-adhoc 124 | RB: ETX::decouto-etx2003.pdf MANET1::broch-mobicom98.ps MANET2::royer-adhoc1999.pdf 125 | N: 'Second MANET reading is mostly to flesh out the picture
Related: Roofnet Publications (In particular, Mobicom2005, Sigcomm2005, Sigcomm2004 papers)' 126 | 127 | - 03/07: 128 | T: Making the Best of Broadcast 129 | RB: ExOR::biswas-exor2005.pdf XorsInTheAir::xor.pdf 130 | N: 'ExOR SIGCOMM talk Slides: ppt, PDF.' 131 | S: 13-broadcast 132 | 133 | - 03/12: 134 | T: Spring Break 135 | type: noclass 136 | 137 | - 03/14: 138 | T: Spring Break 139 | type: noclass 140 | 141 | - 03/19: 142 | T: Mobility 143 | S: 14-mobility 144 | RB: MobileIP::ieee-mobileip98.pdf TCPMigrate::snoeren-e2emobility.pdf 145 | 146 | - 'Part 4: Applications, Naming, and Overlays' 147 | 148 | - 03/21: 149 | T: Overlay Networks 1 150 | RB: RON::http://www.cs.cmu.edu/~dga/papers/ron-sosp2001.pdf GIA::p407-chawathe.pdf 151 | N: 'No slides. An overview of overlay networks and 15-441 notes on p2p.' 152 | 153 | - 03/26: 154 | T: Distributed Hash Tables 155 | RB: DHTSurvey::p43-balakrishnan.pdf Chord::p12-stoica.pdf 156 | S: 16-dht 157 | N: 'See also DHT Geometry Comparison paper.' 158 | 159 | - 03/28: 160 | T: No class - project meetings 161 | 162 | - 04/02: 163 | T: DNS and the Web 164 | RB: DNS::dns.pdf Coral::coral-nsdi04.pdf 165 | S: 17-dnsweb 166 | N: 'Mike Freedman, the author of Coral, will be giving a job talk here on Monday the 9th, if people are interested.
For more DNS, see DNS Performance and the Effectiveness of Caching' 167 | 168 | - 04/04: 169 | T: What's in a name? Names, identifiers, and network architecture 170 | RB: DOA::doa-osdi04.pdf i3::i3-sigcomm02.pdf 171 | S: 18-naming 172 | 173 | - 'Part 5: Measurement, Mining, (and Multicast...)' 174 | 175 | - 04/09: 176 | T: Measurement 177 | RB: Paxson:Measurement::meas-strategies-imc04.pdf 178 | S: 19-measurement 179 | 180 | # dga is at NSDI on 4/11 181 | - 04/11: 182 | T: 'Guest Lecture - Christos Faloutsos: Data Mining Tools for Large Graphs' 183 | N: Networks are filled with interesting graphs - the Web, the AS graph, the router topology, etc. This lecture will examine some techniques for analyzing them to extract meaningful information. 184 | RB: RatioRules::http://www.cs.cmu.edu/%7Echristos/PUBLICATIONS/ratioRules.pdf TrafficBehavior::http://www.cs.cmu.edu/%7Echristos/PUBLICATIONS/performance02.pdf 185 | S: 20-mining 186 | 187 | 188 | - 04/16: 189 | T: Multicast 190 | N: Presented by Jeff 191 | RB: SRM::srm.ps 192 | S: 21-multicast 193 | 194 | - 'Part 6: Security' 195 | 196 | - 04/18: 197 | T: 'Security: DDoS and Traceback' 198 | RB: Traceback::p1-snoeren.pdf TVA::paper-YanWet.pdf 199 | S: 22-ddos 200 | 201 | - 04/23: 202 | T: 'Security: Worms' 203 | RB: OwningTheInternet::http://www.icir.org/vern/papers/cdc-usenix-sec02/ Fingerprinting::fingerprinting-osdi04.pdf 204 | 205 | - 04/25: 206 | T: Second In-Class Exam 207 | type: exam 208 | 209 | - 04/30: 210 | T: Project Presentations 1 211 | 212 | 213 | - 05/02: 214 | T: Project Presentations 2 215 | 216 | - 05/14: 217 | T: Project writeups due 218 | type: exam 219 | 220 | -------------------------------------------------------------------------------- /ex/dga-744/pagebottom.srhtml: -------------------------------------------------------------------------------- 1 |
2 |

Last updated: <%= Time.now %> 3 | [validate xhtml]

4 | 5 | 6 | -------------------------------------------------------------------------------- /ex/dga-744/pagehead.srhtml: -------------------------------------------------------------------------------- 1 | <%= inc("doctype.html") %> 2 | 3 | 4 | <%= @page.title %> 5 | 6 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /ex/dga-744/project.srhtml: -------------------------------------------------------------------------------- 1 | <%= pagetop("15-744 Semester Project") %> 2 | 3 |

Projects should be done in groups of three. 4 |

5 |
    6 |
  • Project proposals are due on 02/14. These should be a few pages 7 | that succinctly describe what you plan to work on, a rough timeline, 8 | and a bit of the related work in the area. 9 |
  • 10 |
  • Project writeups are due 5/14 at 5pm. 11 |
  • 12 |
13 | 14 |

Project Presentation Schedule

15 | <% groups = [ 16 | ["Offline Web Caching", "Mon"], 17 | ["Wireless Caching in DOT", "Mon"], 18 | ["Claytronics Robustness", "Mon"], 19 | ["Path Cost Service", "Wed"], 20 | ["ACL Minimization", "Wed"], 21 | ["Joost Analysis", "Wed"], 22 | ["Mateus et al.", "Wed"] 23 | ] %> 24 | 25 | 26 | <% groups.each { |g| %> 27 | 28 | <% } %> 29 |
Group/TopicDay
<%= g[0] %><%= g[1] %>
30 | 31 | 32 | 33 |

Project Management

34 | 35 | 38 | 39 |

40 | You should strongly consider using either 41 | Subversion or 42 | CVS 43 | to perform source code control for your project and the paper 44 | you write describing it. I suggest Subversion. 45 |

46 | 47 |

I also strongly suggest writing your course project report using 48 | LaTeX. 50 | It is the de-facto tool in which most CS research papers are written. 51 | While it has a bit of start up cost, it's much easier to 52 | collaboratively write complex research papers using LaTeX than using 53 | word.

54 | 55 |

Writing Papers

56 | 57 | 58 | 66 | 67 | 68 |

Simulation

69 | 70 |

The most popular network simulators are ns-2 and Opnet. 73 | ns-2 is free, and CSD has some licenses for Opnet.

74 | 84 | 85 |

Testbeds and Emulation

86 |

Emulab

87 |

Emulab is a network emulation environment 88 | at the University of Utah. It provides racks of machines and programmable 89 | switches that can be configured to form mostly-arbitrary network topologies, 90 | with controllable delay and loss between nodes. It's a great way to test 91 | real programs in repeatable conditions or at scales that you can't get on 92 | your own. 93 |

94 | Emulab also provides a set of wireless nodes that you can control, 95 | located around their building. They also have an experimental mobile 96 | robot testbed that could make for fun projects (the robots are designed 97 | to move computers and radios around so that you can do repeatable experiments 98 | involving mobility). 99 |

100 | 105 | 106 |

The RON Testbed

107 | The RON testbed is a 37-node distributed Internet testbed. The nodes 108 | are mostly US centric, but some are located around the globe. 109 | The machines can be used for network measurements or for evaluating 110 | your projects. They're managed through Emulab. 111 | The RON testbed is similar to, but smaller than... 112 | 113 |

Planetlab

114 | PlanetLab is a large-scale, 115 | distributed collection of machines that can be used for experiments 116 | and measurements. It has about 594 nodes scattered over 282 sites. 117 | The machines run something linux-ish that you can login to and 118 | run programs, and there exist a variety of utilities for automatically 119 | distributing software to the nodes, running programs, and so on. 120 |

121 | You must sign up to use a PlanetLab account. Please only sign up if 122 | you're going to use the account, since it imposes some management 123 | overhead on people not involved with the course. 124 | 125 |

Wireless Nodes

126 |

127 | 128 | Dave and some of the other faculty have a handful of various wireless 129 | nodes, cards, old laptops, etc., available that you may be able to use 130 | for your projects. 131 |

132 | 133 |

moteLab

134 |

135 | moteLab is a wireless sensor 136 | network deployed in the CS building at Harvard. It has 30 sensor 137 | motes that users can upload system images to, collect data from, etc. 138 | To use moteLab, you'll need to send them an email (listed on their 139 | web page). Please CC: dga on the mail. 140 |

141 | 142 |

MistLab

143 |

144 | Mistlab 145 | is a wireless testbed with 60 Mica2/Cricket nodes 146 | (sensor boards, much like the motes in moteLab) distributed over the 147 | 9th floor in the Stata center at 148 | MIT's Computer Science and AI Lab. For access, see their web 149 | page and send them an email, and please CC: dga on the mail. 150 |

151 | 152 |

Routing

153 | 158 | 159 |

Measurement

160 |
    161 |
  • Scriptroute (note: runs well on planetlab and the RON testbed)
  • 162 |
163 | 164 |

Analysis

165 |
    166 |
  • Books: Raj Jain, the Art of Computer Systems Performance Analysis - a very good overview of lots of mathetmatical techniques and queueing bits, aimed at a systems audience
  • 167 |
168 | 169 | 170 | <%= pagebottom() %> 171 | -------------------------------------------------------------------------------- /ex/dga-744/readinglist.head: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | Reading List 9 | 10 | 11 | 12 | 13 |
14 |

15-744s07 Reading List

15 | 16 | 17 |
18 | -------------------------------------------------------------------------------- /ex/dga-744/readinglist.tail: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 |

6 | Home 7 | Reading 8 | Syllabus 9 | validate 10 |

11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /ex/dga-744/style.css: -------------------------------------------------------------------------------- 1 | body, html { 2 | color: #000; 3 | background: #fff; 4 | } 5 | 6 | a:link { 7 | background: inherit; 8 | color: #00f; 9 | text-decoration: underline; 10 | } 11 | 12 | a:visited { 13 | background: inherit; 14 | color: #400860; 15 | text-decoration: underline; 16 | } 17 | 18 | h1 { 19 | color: maroon; 20 | background: white; 21 | border-bottom: solid 0.05em maroon; 22 | padding: 0; 23 | margin: 0; 24 | font-style: normal; 25 | font-weight: normal; 26 | } 27 | 28 | p.lastupdated { 29 | font-size: 70%; 30 | font-style: italic; 31 | margin-bottom: 0; 32 | } 33 | 34 | p.contact { 35 | margin-top: 0; 36 | font-size: 70%; 37 | } 38 | 39 | #topnavbar ul { 40 | width: 100%; 41 | float: left; 42 | 43 | margin: 0; 44 | padding: 0; 45 | 46 | text-align: center; 47 | white-space: nowrap; 48 | color: #000; 49 | font-family: Arial, Helvetica, sans-serif; 50 | background-color: white; 51 | border-bottom: solid 2px maroon; 52 | clear: right; 53 | margin-bottom: .5em; 54 | } 55 | 56 | #topnavbar ul li { 57 | display: inline; 58 | padding-left: 0; 59 | padding-right: 0; 60 | } 61 | 62 | #topnavbar ul li a { 63 | padding: 3px 10px; 64 | text-decoration: none; 65 | color: #000; 66 | background-color: white; 67 | float: left; 68 | border-right: 1px solid black; 69 | } 70 | 71 | #topnavbar ul li a:hover { 72 | background-color: maroon; 73 | color: white; 74 | } 75 | 76 | #topnavbar div { 77 | clear: both; 78 | } 79 | 80 | div#news { 81 | width: 30%; 82 | float: right; 83 | margin-left: 2em; 84 | padding-left: 1em; 85 | background-color: #fcc; 86 | margin-bottom: 0.5em; 87 | border: 1px solid maroon; 88 | } 89 | 90 | dl.idealist dt { 91 | font-weight: bold; 92 | } 93 | 94 | dl.idealist dt { 95 | margin-top: 0.5em; 96 | } 97 | 98 | dl.newslist { 99 | margin: 0; 100 | padding: 0; 101 | } 102 | 103 | dl.newslist dt { 104 | // display: inline; 105 | padding-left: 0; 106 | color: #000055; 107 | font-weight: bold; 108 | margin-bottom: 0.2em; 109 | } 110 | 111 | dl.newslist dd { 112 | padding-bottom: 1em; 113 | margin-bottom: 0; 114 | margin-left: 1em; 115 | padding-left: 0; 116 | margin-right: 1em; 117 | } 118 | 119 | div#news p { 120 | margin-top: 0; 121 | padding-top: 0; 122 | } 123 | 124 | #announcements p { 125 | color: maroon; 126 | } 127 | 128 | #announcements h1 { 129 | color: #ffffff; 130 | text-align: center; 131 | font-size: 110%; 132 | text-decoration: underline; 133 | } 134 | 135 | /* The alternating announcement colors */ 136 | #announcements p.one { color: #ff0000; } 137 | #announcements p.two { color: #00ff00; } 138 | #announcements p.three { color: #3333ff; } 139 | 140 | .announce_date { font-weight: bold; } 141 | 142 | table.people { 143 | margin-left: 10px; 144 | padding: 2px; 145 | border-collapse: collapse; 146 | border: none; 147 | } 148 | 149 | table.people th { 150 | font-weight: bold; 151 | text-align: center; 152 | border: 0; 153 | border-bottom: solid 2px; 154 | } 155 | table.people td { 156 | border: none; 157 | border-bottom: 1px solid #888; 158 | padding-right: 1em; 159 | padding-left: 1em; 160 | } 161 | 162 | table.assignments { 163 | width: 98%; 164 | margin-left: 1%; 165 | margin-right: 1%; 166 | border-collapse: collapse; 167 | } 168 | 169 | table.assignments th { 170 | background: maroon; 171 | color: white; 172 | } 173 | 174 | table.assignments tr,td,th { 175 | padding: 3px; 176 | border-width: 1px; 177 | border-style: solid; 178 | border-color: black; 179 | border-spacing: 0px; 180 | } 181 | 182 | table.schedule th { 183 | background: maroon; 184 | color: white; 185 | } 186 | 187 | table.schedule { 188 | width: 98%; 189 | margin-left: 1%; 190 | margin-right: 1%; 191 | border-collapse: collapse; 192 | } 193 | 194 | table.Schedule tr,th,td { 195 | padding: 3px; 196 | border-width: 1px; 197 | border-spacing: 0px; 198 | border-style: solid; 199 | border-color: black; 200 | } 201 | 202 | /* Presentation: No underlines on links in schedule unless you're 203 | * moving the mouse over it. */ 204 | 205 | table.schedule tr.lecture { background: white; } 206 | table.schedule tr.lecture.alt { background: #ddd; } 207 | table.schedule tr.noclass { background: lime; } 208 | table.schedule tr.exam { background: yellow; } 209 | table.schedule tr.recitation { background: #ccf; } 210 | table.schedule tr.recitation.alt { background: #ccf; } 211 | table.schedule tr.lechead { font-weight: bold; text-align: center; } 212 | 213 | div#textbooks { 214 | position: relative; 215 | vertical-align: top; 216 | float: left; 217 | width: 45%; 218 | padding-left: 1em; 219 | padding-right: 1em; 220 | margin-right: 1em; 221 | } 222 | 223 | div#Grading { 224 | position: relative; 225 | vertical-align: top; 226 | float: right; 227 | padding-left: 0; 228 | padding-right: 1em; 229 | width: 45%; 230 | } 231 | 232 | #Schedule h2 { text-align: center; } 233 | 234 | div#Schedule { 235 | border-top: 1px solid maroon; 236 | clear: both; 237 | margin-top: 5em; 238 | float: none; 239 | width: 100%; 240 | } 241 | 242 | div#prerequisites, div#staff, div#policies, div#resources { 243 | clear: left; 244 | border-top: 1px solid maroon; 245 | } 246 | 247 | ul.announcements li { 248 | padding-top: 0.5em; 249 | } 250 | 251 | span.email { 252 | font-family: Courier, monospace; 253 | font-size: 85%; 254 | } 255 | 256 | div.clear { 257 | clear: both; 258 | } 259 | 260 | -------------------------------------------------------------------------------- /ex/dga-744/syllabus.head: -------------------------------------------------------------------------------- 1 | <%= pagetop("15-744: Computer Networks Syllabus") %> 2 | 3 | 5 | 6 |
7 |

Textbooks

8 |

There are no official texts for the course. As background, we suggest 9 | several texts:

10 |
    11 |
  • Computer Networks: A Systems Approach, third edition, by 12 | Larry Peterson and Bruce Davie. 13 | It is available in the CMU Bookstore. Covers background networking 14 | material that we assume students will already be familiar with.
  • 15 |
  • Computer Networking: A Top-Down Approach Featuring the Internet, 3rd edition, by James F. Kurose and Keith W. Ross. Covers similar material 16 | to Peterson and Davie.
  • 17 |
  • TCP/IP Illustrated, Volume 1: The Protocols by 18 | W. Richard Stevens.
  • 19 |
  • Unix Network Programming: 20 | Networking APIs: Sockets and XTI (Volume 1) by W. Richard Stevens.
  • 21 |
  • Advanced Programming in the Unix Environment by W. Richard Stevens, Addison-Wesley, 1993.
  • 22 |
23 | 24 |
25 | 26 |
27 |

Grading

28 |

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

29 |
    30 |
  • 40% Project
  • 31 |
  • 30% Quizzes
  • 32 |
  • 25% Homework
  • 33 |
  • 5% Class Participation
  • 34 |
35 | 36 |

The quizzes will be in-class, one near midterm and one near the end of the 37 | semester.

38 | 39 |

40 | The project in 15-744 is an open-ended research project, done in 41 | groups of two. The project requires a proposal, a project status 42 | report, and a final report (both written and presented). 43 |

44 | 45 |

There will be a few problem sets assigned during the term that will constitute 25% of your grade. Problem sets will be a mix of theory and hands-on 46 | programming assignments.

47 | 48 |
49 | 50 |
51 |

Schedule

52 |

Also available as an ical file 53 | that you can subscribe to.

54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /ex/dga-744/syllabus.tail: -------------------------------------------------------------------------------- 1 | 2 | 3 | <%= pagebottom() %> 4 | -------------------------------------------------------------------------------- /ex/dga-849/bodyhead.srhtml: -------------------------------------------------------------------------------- 1 | 2 |

<%= @page.title %>

3 | -------------------------------------------------------------------------------- /ex/dga-849/class.bib: -------------------------------------------------------------------------------- 1 | 2 | % Journal names don't really crossref well. Define common ones here: 3 | @string{JSAC="IEEE Journal on Selected Areas in Communications (J-SAC)"} 4 | @string{JACM="Journal of the {ACM}"} 5 | @string{CCR="{ACM} Computer Communications Review"} 6 | @string{IEEEPROC="{Proc. of the IEEE}"} 7 | @string{IEEECOMM="{IEEE Communications Magazine}"} 8 | @string{IEEECOMP="{IEEE Computer}"} 9 | @string{IEEEPERS="{IEEE} Personal Communications"} 10 | @string{IEEENET="{IEEE Network}"} 11 | @string{MICRO={"IEEE Micro"}} 12 | @string{CACM="{Communications of the ACM}"} 13 | @string{TOC="{IEEE Transactions on Communications}"} 14 | @string{TON="{IEEE/ACM Transactions on Networking}"} 15 | @string{TOCS="{ACM Transactions on Computer Systems}"} 16 | @string{TOMEDIA="{IEEE Transactions on Multimedia}"} 17 | @string{OSREVIEW="{Operating Systems Review}"} 18 | @string{MCCR="{Mobile Computing and Communications Review}"} 19 | @string{CNISDN="{Computer Networks and ISDN Systems}"} 20 | 21 | % Other random things that show up all the time: 22 | @string{IETFSHORT = "IETF"} 23 | @string{MIT = "{Massachusetts Institute of Technology}"} 24 | 25 | %% 26 | % Entries 27 | %% 28 | 29 | @inproceedings{Agarwal:hotnets2005, 30 | title = "{SureMail}: Notification Overlay for Email Reliability", 31 | author = "Sharad Agarwal and Venkata N. PAdmanabhan and Dilip A. Joseph", 32 | crossref = "hotnets2005", 33 | inpage = "15-849f05", 34 | category = "security", 35 | basefilename="agarwal-hotnets2005" 36 | } 37 | 38 | @inproceedings{aguilera2003, 39 | author = "Marcos K. Aguilera and Minwen Ji and Mark Lillibridge and John {MacCormick} and Erwin Oertli and David G. Andersen and Mike Burrows and Timothy Mann and Chandramohan Thekkath", 40 | title = "{Block-Level Security for Network-Attached Disks}", 41 | crossref = "fast2003", 42 | inpage = "dga", 43 | basefilename="snapdragon-fast2003" 44 | } 45 | 46 | @inproceedings{Akella:sigcomm2004, 47 | title = "A Comparison of Overlay Routing and Multihoming Route Control", 48 | author = "Aditya Akella and Jeff Pang and Bruce Maggs and Srinivasan Seshan and Anees Shaikh", 49 | crossref = "sigcomm2004", 50 | basefilename = "akella-sigcomm2004", 51 | inpage = "15-849f05", 52 | category = "Internet Availability" 53 | } 54 | 55 | @inproceedings{Andersen01, 56 | author = "David G. Andersen and Hari Balakrishnan and M. Frans Kaashoek and Robert Morris", 57 | title = "{Resilient Overlay Networks}", 58 | crossref = "sosp2001", 59 | pages = {131--145}, 60 | inpage = "dga,15-849f05", 61 | basefilename = "ron-sosp2001", 62 | category = "Internet Availability" 63 | } 64 | 65 | 66 | @inproceedings{Andersen:nsdi2005, 67 | author = "David G. Andersen and Hari Balakrishnan and M. Frans Kaashoek and Rohit Rao", 68 | title = "Improving {W}eb Availability for Clients with {MONET}", 69 | crossref = "nsdi2005", 70 | inpage = "dga,15-849f05", 71 | basefilename = "monet-nsdi2005", 72 | category = "multihoming" 73 | } 74 | 75 | @inproceedings{Balakrishnan96a, 76 | author = "Balakrishnan, H. and Padmanabhan, V. N. and Seshan, S. and Katz, R.H.", 77 | title = "A Comparison of Mechanisms for Improving {TCP} 78 | Performance over Wireless Links", 79 | crossref = "sigcomm1996", 80 | basefilename = "balakrishnan-wireless1997", 81 | category = "wireless", 82 | inpage = "15-849f05" 83 | } 84 | 85 | 86 | @inproceedings{Ballani:hotnets2005, 87 | title = "Off by Default!", 88 | author = "Hitesh Ballani and Yatin Chawathe and Sylvia Ratnasamy and Timothy Roscoe and Scott Shenker", 89 | crossref = "hotnets2005", 90 | inpage = "15-849f05", 91 | category = "security", 92 | basefilename="ballani-hotnets2005" 93 | } 94 | 95 | @inproceedings{Bhagwat:hotnets2003, 96 | author = "Pravin Bhagwat and Bhaskaran Raman and Dheeraj Sanghi", 97 | title = "Turning 802.11 Inside-Out", 98 | crossref = "hotnets2003", 99 | inpage = "15-849f05", 100 | basefilename = "bhagwat-hotnets2003", 101 | category = "wireless", 102 | } 103 | 104 | @inproceedings{Bharghavan94, 105 | author = "Bharghavan, V. and Demers, A. and Shenker, S. and Zhang, L.", 106 | title = "{MACAW: A Media-Access Protocol for Packet Radio}", 107 | crossref = "sigcomm1994", 108 | basefilename = "macaw", 109 | inpage = "15-849f05", 110 | category = "wireless" 111 | } 112 | 113 | 114 | @inproceedings{Bicket:mobicom2005, 115 | author = "John Bicket and Daniel Aguayo and Sanjit Biswas and Robert Moris", 116 | title = "Architecture and Evaluation of an Unplanned 802.11b Mesh Network", 117 | crossref = "mobicom2005", 118 | inpage = "15-849f05", 119 | basefilename = "roofnet-mobicom2005", 120 | category = "wireless" 121 | } 122 | 123 | @inproceedings{Biswas:sigcomm2004, 124 | title = "Link-level Measurements from an 802.11b Mesh Network", 125 | author = "Daniel Aguayo and John Bicket and Sanjit Biswas and Glenn Judd and 126 | Robert Morris", 127 | crossref = "sigcomm2004", 128 | inpage="15-849f05", 129 | category="wireless", 130 | basefilename="roofnet-sigcomm" 131 | } 132 | 133 | 134 | @inproceedings{Biswas:sigcomm2005, 135 | title = "{ExOR:} Opportunistic Multi-Hop Routing for Wireless Networks", 136 | author = "Sanjit Biswas and Robert Morris", 137 | crossref = "sigcomm2005", 138 | inpage = "15-849f05", 139 | category = "Wireless", 140 | basefilename = "biswas-exor2005" 141 | } 142 | 143 | @inproceedings{Clark88b, 144 | author = "Clark, D.", 145 | title = "{The Design Philosophy of the DARPA Internet Protocols}", 146 | crossref = "sigcomm1988", 147 | pages = "109--114", 148 | basefilename = "clark88design", 149 | category="Background", 150 | inpage="15-849f05" 151 | } 152 | @inproceedings{DeCouto:etx2003, 153 | author = "Douglas S. J. De Couto and Daniel Aguayo and John Bicket and Robert Morris", 154 | title = "A High-Throughput Path Metric for Multi-Hop Wireless Routing", 155 | crossref = "mobicom2003", 156 | basefilename = "decouto-etx2003", 157 | category = "adhoc", 158 | inpage = "15-849f05" 159 | } 160 | 161 | @inproceedings{Draves:sigcomm2004, 162 | author = "Richard Draves and Jitendra Padhye and Brian Zill", 163 | title = "Comparison of Routing Metrics for Static Multi-Hop Wireless Networks", 164 | crossref = "sigcomm2004", 165 | inpage = "15-849f05", 166 | category = "adhoc", 167 | basefilename = "draves-sigcomm2004" 168 | } 169 | 170 | @article{Eddy:ccr2004, 171 | title = "New Techniques for Making Transport Protocols Robust to Corruption-based Loss", 172 | author = "Wesley Eddy and Shawn Osterman and Mark Allman", 173 | journal = CCR, 174 | number = 34, 175 | volume = 5, 176 | month = oct, 177 | year = 2005, 178 | basefilename = "eddy-tcploss", 179 | inpage = "15-849f05", 180 | category = "wireless" 181 | } 182 | 183 | @inproceedings{Flinn99, 184 | title = "{Energy-aware adaptation for mobile applications}", 185 | author = {Flinn, J. and Satyanarayanan, M.}, 186 | crossref = "sosp1999", 187 | inpage = "15-849f05", 188 | basefilename="flinn-sosp1999", 189 | category = "power" 190 | } 191 | 192 | 193 | @inproceedings{Gummadi2004, 194 | title = "Improving the Reliability of {I}nternet Paths with One-hop Source Routing", 195 | author = "Krishna P. Gummadi and Harsha V. Madhyastha and Steven D. Gribble and Henry M. Levy and David Wetherall", 196 | crossref = "osdi2004", 197 | basefilename = "gummadi-sosr2004", 198 | inpage = "15-849f05", 199 | category = "Internet Availability" 200 | } 201 | 202 | 203 | @inproceedings{Gummadi2003, 204 | author = "Krishna P. Gummadi and R makrishnaGummadi and Steven D. Gribble and Sylvia Ratnasamy and Scott Shenker and Ion Stoica", 205 | title = "The Impact of {DHT} Routing Geometry on Resilience and Proximity", 206 | crossref = "sigcomm2003", 207 | basefilename = "gummadi-sigcomm2003", 208 | inpage = "15-849f05", 209 | category = "p2p" 210 | } 211 | 212 | @inproceedings{Handley:hotnets2005, 213 | author = "Mark Handley and Adam Greenhalgh", 214 | title = "The Case for Pushing {DNS}", 215 | crossref = "hotnets2005", 216 | inpage = "15-849f05", 217 | basefilename = "handley-hotnets2005", 218 | category = "dns" 219 | } 220 | 221 | @inproceedings{Intanagonwiwat2000, 222 | author = "Chalermek Intanagonwiwat and Ramesh Govindan and Deborah Estrin", 223 | crossref = "mobicom2000", 224 | title = "Directed diffusion: A scalable and robust communication paradigm for sensor networks", 225 | inpage = "15-849f05", 226 | category="sensor", 227 | basefilename="diffusion2000" 228 | } 229 | 230 | @inproceedings{Jain:sigcomm2004, 231 | title = "{Routing in a Delay Tolerant Network}", 232 | author = "Sushant Jain and Kevin Fall and Rabin Patra", 233 | crossref = "sigcomm2004", 234 | inpage = "15-849f05", 235 | basefilename="jain-dtn2004", 236 | category = "Delay Tolerant Networking", 237 | } 238 | 239 | @inproceedings{Jain:sigcomm2005, 240 | title = "Using redundancy to cope with failures in a {D}elay {T}olerant {N}etwork", 241 | author = "Sushant Jain and Mike Demmer and Rabin Patra and Kevin Fall", 242 | crossref = "sigcomm2005", 243 | basefilename = "jain-dtn2005", 244 | category = "Delay Tolerant Networking", 245 | inpage = "15-849f05" 246 | } 247 | 248 | @inproceedings{Joseph95, 249 | author = "Joseph, A. D. and deLespinasse, A. F. and Tauber, J. A. and 250 | Gifford, D. K. and Kaashoek, M. F.", 251 | title = "Rover: A Toolkit for Mobile Information Access", 252 | crossref = "sosp1995", 253 | basefilename = "rover-sosp95", 254 | category = "unknown", 255 | inpage = "15-849f05", 256 | } 257 | 258 | @inproceedings{Karp:gpsr2000, 259 | title = "{GPSR}: Greedy Perimeter Stateless Routing for Wireless Networks", 260 | author = "Brad Karp and H. T. Kung", 261 | crossref = "mobicom2000", 262 | pages = "243--254", 263 | } 264 | 265 | 266 | @article{Saltzer84, 267 | author = "Saltzer, J. and Reed, D. and Clark, D.", 268 | title = "{End-to-end Arguments in System Design}", 269 | journal = TOCS, 270 | volume = 2, 271 | pages = {277--288}, 272 | month = nov, 273 | year = 1984, 274 | } 275 | 276 | 277 | % PROCEEDINGS - shared definitions for conferences, journals, 278 | % No normal entries should occur below this section. Proceedings 279 | % definitions must occur _after_ they are referenced. Please 280 | % define them in order of booktitle, address, month, year 281 | 282 | @proceedings{asplos1996, 283 | booktitle="Proc. 7th International Conf. on Architectural Support for Programming Languages and Operating Systems ({ASPLOS})", 284 | address="Cambridge, {MA}", 285 | month=oct, year=1996 286 | } 287 | 288 | @proceedings{asplos1998, 289 | booktitle="Proc. 8th International Conf. on Architectural Support for Programming Languages and Operating Systems ({ASPLOS})", 290 | address="San Jose, {CA}", 291 | month=oct, year=1998 292 | } 293 | 294 | @proceedings{fast2002, 295 | booktitle = "{Proc. USENIX Conference on File and Storage Technologies (FAST)}", 296 | address = "Monterey, {CA}", 297 | month = jan, year = 2002 298 | } 299 | 300 | @proceedings{fast2003, 301 | booktitle = "{Proc. 2nd USENIX Conference on File and Storage Technologies}", 302 | year = 2003, 303 | month = mar 304 | } 305 | 306 | @proceedings{fast2004, 307 | booktitle = "{Proc. 3rd USENIX Conference on File and Storage Technologies}", 308 | address = "San Francisco, {CA}", 309 | year = 2004, 310 | month = mar 311 | } 312 | 313 | 314 | @string{FDNA="{ACM SIGCOMM Workshop on Future Directions in Network Architecture}"} 315 | 316 | @proceedings{fdna2003, 317 | booktitle = FDNA, address = "{Karlsruhe, Germany}", 318 | month = aug, year = 2003 319 | } 320 | 321 | @proceedings{fdna2004, 322 | booktitle = FDNA, address = "{Portland, OR}", 323 | month = sep, year = 2004 324 | } 325 | 326 | @proceedings{globecom1992, 327 | booktitle="Proc. {IEEE} Conference on Global Communications ({GlobeCom})", 328 | address="{Orlando, FL}", 329 | month=dec, year=1992 330 | } 331 | 332 | @proceedings{globecom1993, 333 | booktitle="Proc. {IEEE} Conference on Global Communications ({GlobeCom})", 334 | address="{Houston, TX}", 335 | month=dec, year=1993 336 | } 337 | 338 | @proceedings{globecom-mini1998, 339 | booktitle="Proc. 3rd Global {I}nternet Mini-Conference in conjunction with {IEEE} Globecom", 340 | address="Sydney, Australia", 341 | month=nov, year=1998 342 | } 343 | 344 | @proceedings{globecom1999, 345 | booktitle="Proc. {IEEE} Conference on Global Communications ({GlobeCom})", 346 | address="{Rio de Janiero, Brazil}", 347 | month=dec, year=1999 348 | } 349 | 350 | @proceedings{globecom2003, 351 | booktitle="Proc. {IEEE} Conference on Global Communications ({GlobeCom})", 352 | address="San Francisco, {CA}", 353 | month=dec, year=2003 354 | } 355 | 356 | @proceedings{hotos1995, 357 | booktitle = "{Proc. Fifth IEEE Workshop on Hot Topics in Operating Systems}", 358 | month = May, year = 1995 359 | } 360 | 361 | @proceedings{hotos1999, 362 | booktitle = "{Proc. 7th Workshop on Hot Topics in Operating 363 | Systems (HotOS VII)}", 364 | address = {Rio Rico, AZ}, 365 | month = mar, year = 1999 366 | } 367 | 368 | @proceedings{hotos2001, 369 | booktitle = "{Proc. HotOS VIII}", 370 | address = "{Schloss-Elmau, Germany}", 371 | month = may, year = 2001 372 | } 373 | 374 | @proceedings{hotos2003, 375 | booktitle = "{Proc. HotOS IX}", 376 | address = "{Lihue, Hawaii}", 377 | month = may, year = 2003 378 | } 379 | 380 | @proceedings{hotnets2002, 381 | booktitle = {Proc. 1st ACM Workshop on Hot Topics in Networks (Hotnets-I)}, 382 | address = {Princeton, {NJ}}, 383 | month = oct, year = 2002 384 | } 385 | 386 | @proceedings{hotnets2003, 387 | booktitle = {Proc. 2nd ACM Workshop on Hot Topics in Networks (Hotnets-II)}, 388 | address = {Cambridge, MA}, 389 | month = nov, year = 2003 390 | } 391 | 392 | @proceedings{hotnets2004, 393 | booktitle = {Proc. 3nd ACM Workshop on Hot Topics in Networks (Hotnets-III)}, 394 | address = {San Diego, CA}, 395 | month = nov, year = 2004 396 | } 397 | 398 | @proceedings{hotnets2005, 399 | booktitle = {Proc. 4th ACM Workshop on Hot Topics in Networks (Hotnets-IV)}, 400 | address = {College Park, {MD}}, 401 | month = nov, year = 2005 402 | } 403 | 404 | @proceedings{icnp2001, 405 | booktitle = "{IEEE} International Conference on Network Protocols ({ICNP})", 406 | address = "{Riverside, CA}", 407 | month = nov, year = 2001 408 | } 409 | 410 | @proceedings{icdcs1993, 411 | booktitle = "{Proc. 13th Intl. Conf on Distributed Computing Systems}", 412 | address = "Pittsburgh, {PA}", 413 | month = may, year = 1993 414 | } 415 | 416 | @proceedings{icdcs1995, 417 | booktitle = "{Proc. 15th Intl. Conf on Distributed Computing Systems}", 418 | address = "{Vancouver, BC, Canada}", 419 | month = may, year = 1995 420 | } 421 | 422 | @proceedings{icdcs2002, 423 | booktitle = "{Proc. 22nd Intl. Conf on Distributed Computing Systems}", 424 | address = "{Vienna, Austria}", 425 | month = jul, year = 2002 426 | } 427 | 428 | @proceedings{icdcs2003, 429 | booktitle = "{Proc. 23rd Intl. Conf on Distributed Computing Systems}", 430 | address = "{Providence, RI}", 431 | month = may, year = 2003 432 | } 433 | 434 | @proceedings{icnp2002, 435 | booktitle = "{IEEE} International Conference on Network Protocols ({ICNP})", 436 | address = "{Paris, France}", 437 | month = nov, year = 2002 438 | } 439 | 440 | @proceedings{imw2001, 441 | booktitle = "Proc. {ACM SIGCOMM} {I}nternet Measurement Workshop", 442 | address = "San Fransisco, {CA}", 443 | month=nov, year=2001 444 | } 445 | 446 | @proceedings{imw2002, 447 | booktitle = "Proc. {ACM SIGCOMM} {I}nternet Measurement Workshop", 448 | address = "{Marseille, France}", 449 | month=nov, year=2002 450 | } 451 | 452 | @proceedings{imc2003, 453 | booktitle = "Proc. {ACM SIGCOMM} {I}nternet Measurement Conference", 454 | address = {Miami, FL}, 455 | month = oct, year = 2003 456 | } 457 | 458 | @proceedings{imc2004, 459 | booktitle = "Proc. {ACM SIGCOMM} {I}nternet Measurement Conference", 460 | address = {Taormina, Sicily, Italy}, 461 | month = oct, year = 2004 462 | } 463 | 464 | @proceedings{imc2005, 465 | booktitle = "{Proc. {ACM SIGCOMM} Internet Measurement Conference}", 466 | address = {New Orleans, LA}, 467 | month = oct, year = 2005 468 | } 469 | 470 | @string{INFOCOM="Proc. {IEEE INFOCOM}"} 471 | @proceedings{infocom1993, 472 | booktitle = INFOCOM, address = "{San Francisco, CA}", 473 | month = mar, year = 1993 474 | } 475 | 476 | @proceedings{infocom1995, 477 | booktitle = INFOCOM, address = "{Boston, MA}", 478 | month = apr, year = 1995 479 | } 480 | 481 | @proceedings{infocom1997, 482 | booktitle = INFOCOM, address = "{Kobe, Japan}", 483 | month = Apr, year = 1997 484 | } 485 | 486 | @proceedings{infocom1998, 487 | booktitle = INFOCOM, address = "{San Francisco, CA}", 488 | month = Mar, year = 1998 489 | } 490 | 491 | @proceedings{infocom1999, 492 | booktitle = INFOCOM, address = {New York, NY}, 493 | month = Mar, year = 1999 494 | } 495 | 496 | @proceedings{infocom2000, 497 | booktitle = INFOCOM, address = {Tel-Aviv, Israel}, 498 | month = Mar, year = 2000 499 | } 500 | 501 | @proceedings{infocom2001, 502 | booktitle = INFOCOM, address = "{Anchorage, AK}", 503 | month = Apr, year = 2001 504 | } 505 | 506 | @proceedings{infocom2002, 507 | booktitle = INFOCOM, address = "{New York, NY}", 508 | month = jun, year = 2002 509 | } 510 | 511 | @proceedings{infocom2003, 512 | booktitle = INFOCOM, address = "{San Francisco, CA}", 513 | month = apr, year = 2003 514 | } 515 | 516 | @proceedings{infocom2004, 517 | booktitle = INFOCOM, address = "{Hong Kong}", 518 | month = mar, year = 2004 519 | } 520 | 521 | @proceedings{infocom2005, 522 | booktitle = INFOCOM, address = "Miami, {FL}", 523 | month = mar, year = 2005 524 | } 525 | 526 | @proceedings{ipdps2001, 527 | booktitle = "Proc. 16th IEEE-CS/ACM International Parallel and Distributed Processing Symposium (IPDPS)", 528 | location = "San Francisco, {CA}", 529 | month = apr, year = 2001 530 | } 531 | 532 | @proceedings{iptps2002, 533 | booktitle = "{Proc. 1st International Workshop on Peer-to-Peer Systems (IPTPS)}", 534 | address = "Cambridge, {MA}", 535 | month = mar, year = 2002 536 | } 537 | 538 | @proceedings{iptps2003, 539 | booktitle = "{Proc. 2nd International Workshop on Peer-to-Peer Systems (IPTPS)}", 540 | address = "Berkeley, {CA}", 541 | month = feb, year = 2003 542 | } 543 | 544 | @proceedings{mobicom1996, 545 | booktitle = "{Proc. ACM MOBICOM}", 546 | address = {White Plains, NY}, 547 | month = nov, year = 1996 548 | } 549 | 550 | @proceedings{mobicom1997, 551 | booktitle = "{Proc. ACM MOBICOM}", 552 | address = "{Budapest, Hungary}", 553 | month = Sep, year = 1997 554 | } 555 | 556 | @proceedings{mobicom1998, 557 | booktitle = "{Proc. ACM/IEEE MOBICOM}", 558 | address = "Dallas, {TX}", 559 | month = oct, year = 1998 560 | } 561 | 562 | @proceedings{mobicom1999, 563 | booktitle = "{Proc. ACM/IEEE MOBICOM}", 564 | address = "Seattle, {WA}", 565 | month = aug, year = 1999 566 | } 567 | 568 | @proceedings{mobicom2000, 569 | booktitle = "Proc.\ {ACM} Mobicom", 570 | address = "Boston, {MA}", 571 | month = aug, year = 2000 572 | } 573 | 574 | @proceedings{mobicom2001, 575 | booktitle = "Proc.\ {ACM} Mobicom", 576 | address = {Rome, Italy}, 577 | month = jul, year = 2001 578 | } 579 | 580 | @proceedings{mobicom2002, 581 | booktitle = "Proc.\ {ACM} Mobicom", 582 | address = {Atlanta, GA}, 583 | month = sep, year = 2002 584 | } 585 | 586 | @proceedings{mobicom2003, 587 | booktitle = "Proc.\ {ACM} Mobicom", 588 | address = "San Diego, {CA}", 589 | month = sep, year = 2003 590 | } 591 | 592 | @proceedings{mobicom2005, 593 | booktitle = "Proc.\ {ACM} Mobicom", 594 | address = "Cologne, Germany", 595 | month = sep, year = 2005 596 | } 597 | 598 | @proceedings{mobisys2003, 599 | booktitle = "Proc. {ACM} {MOBISYS}", 600 | address = "San Francisco, {CA}", 601 | month = may, year = 2003 602 | } 603 | 604 | @proceedings{mobisys2004, 605 | booktitle = "Proc. {ACM} {MOBISYS}", 606 | address = "Boston, {MA}", 607 | month = jun, year = 2004 608 | } 609 | 610 | @proceedings{mobisys2005, 611 | booktitle = "Proc. {ACM} {MOBISYS}", 612 | address = "Seattle, {WA}", 613 | month = jun, year = 2005 614 | } 615 | 616 | @proceedings{nsdi2004, 617 | booktitle = {Proc. First Symposium on Networked Systems Design and Implementation (NSDI)}, 618 | address = {San Francisco, CA}, 619 | month = mar, year = 2004 620 | } 621 | 622 | @proceedings{nsdi2005, 623 | booktitle = {Proc. 2nd Symposium on Networked Systems Design and Implementation (NSDI)}, 624 | address = {Boston, MA}, 625 | month = may, year = 2005 626 | } 627 | 628 | @proceedings{openarch2002, 629 | booktitle ="{Proc. 5th International Conference on Open Architectures and Network Programming (OPENARCH)}", 630 | address = "New York, {NY}", 631 | month = jun, year = 2002 632 | } 633 | 634 | 635 | @proceedings{osdi1994, 636 | booktitle = "Proc\. 1st {USENIX OSDI}", 637 | address = "Monterey, {CA}", 638 | month = nov, year = 1994 639 | } 640 | 641 | @proceedings{osdi2000, 642 | booktitle = "Proc.\ 4th {USENIX OSDI}", 643 | address = {San Diego, CA}, 644 | month = nov, year = 2000 645 | } 646 | 647 | @proceedings{osdi2002, 648 | booktitle = "Proc.\ 5th {USENIX OSDI}", 649 | address = {Boston, MA}, 650 | month = dec, year = 2002 651 | } 652 | 653 | @proceedings{osdi2004, 654 | booktitle = "Proc.\ 6th {USENIX OSDI}", 655 | address = "San Francisco, {CA}", 656 | month = dec, year = 2004 657 | } 658 | 659 | @proceedings{pam2000, 660 | booktitle = "Passive \& Active Measurement (PAM)", 661 | month = apr, year = 2000 662 | } 663 | 664 | @proceedings{pam2002, 665 | booktitle = "Passive \& Active Measurement (PAM)", 666 | address = "Fort Collins, {CO}", 667 | month = mar, year = 2004 668 | } 669 | 670 | @proceedings{pimrc1995, 671 | booktitle = "{Proc. Sixth IEEE International Symposium on Personal, Indoor, and Mobile Radio Communications (PIMRC)}", 672 | address = {Toronto, Ont., Canada}, 673 | day = {27-29}, 674 | month = sep, year = 1995 675 | } 676 | 677 | @string{SIGCOMM="{Proc.\ ACM SIGCOMM}"} 678 | 679 | @proceedings{sigcomm1986, 680 | booktitle = SIGCOMM, address = "{Stowe, VT}", 681 | month = Sep, year = 1986 682 | } 683 | 684 | @proceedings{sigcomm1988, 685 | booktitle = SIGCOMM, address = "{Stanford, CA}", 686 | month = Aug, year = 1988 687 | } 688 | 689 | @proceedings{sigcomm1989, 690 | booktitle = SIGCOMM, address = "{Austin, TX}", 691 | month = sep, year = 1989 692 | } 693 | 694 | @proceedings{sigcomm1990, 695 | booktitle = SIGCOMM, address = "{Philadelphia, PA}", 696 | month = sep, year = 1990 697 | } 698 | 699 | @proceedings{sigcomm1991, 700 | booktitle = SIGCOMM, address = "{Zurich, Switzerland}", 701 | month = sep, year = 1991 702 | } 703 | 704 | @proceedings{sigcomm1992, 705 | booktitle = SIGCOMM, address = "{Baltimore, MD}", 706 | month = aug, year = 1992 707 | } 708 | 709 | @proceedings{sigcomm1993, 710 | booktitle = SIGCOMM, address = {San Francisco, CA}, 711 | month = sep, year = 1993 712 | } 713 | 714 | @proceedings{sigcomm1994, 715 | booktitle = SIGCOMM, address = "{London, England}", 716 | month = aug, year = 1994 717 | } 718 | 719 | @proceedings{sigcomm1995, 720 | booktitle = SIGCOMM, address = {Cambridge, MA}, 721 | month = Sep, year = 1995 722 | } 723 | 724 | @proceedings{sigcomm1996, 725 | booktitle = SIGCOMM, address = {Stanford, CA}, 726 | month = aug, year=1996 727 | } 728 | 729 | @proceedings{sigcomm1997, 730 | booktitle = SIGCOMM, address = {Cannes, France}, 731 | month = Sep, year=1997 732 | } 733 | 734 | @proceedings{sigcomm1998, 735 | booktitle = SIGCOMM, address = "Vancouver, British Columbia, Canada", 736 | month = sep, year = 1998 737 | } 738 | 739 | @proceedings{sigcomm1999, 740 | booktitle = SIGCOMM, address = "Cambridge, {MA}", 741 | month = sep, year = 1999 742 | } 743 | 744 | @proceedings{sigcomm2000, 745 | booktitle = SIGCOMM, address = {Stockholm, Sweden}, 746 | month = Sep, year=2000 747 | } 748 | 749 | @proceedings{sigcomm2001, 750 | booktitle = SIGCOMM, address = "San Diego, {CA}", 751 | month=aug, year=2001 752 | } 753 | 754 | @proceedings{sigcomm2002, 755 | booktitle = SIGCOMM, address = "Pittsburgh, {PA}", 756 | month=aug, year=2002 757 | } 758 | 759 | @proceedings{sigcomm2003, 760 | booktitle = SIGCOMM, address="Karlsruhe, Germany", 761 | month = aug, year = 2003 762 | } 763 | 764 | @proceedings{sigcomm2004, 765 | booktitle = SIGCOMM, address="Portland, {OR}", 766 | month = aug, year = 2004 767 | } 768 | 769 | @proceedings{sigcomm2005, 770 | booktitle = SIGCOMM, address="Philladelphia, {PA}", 771 | month = aug, year = 2005 772 | } 773 | 774 | @string{SIGMETRICS="{Proc. ACM SIGMETRICS}"} 775 | 776 | @proceedings{sigmetrics1990, 777 | booktitle = SIGMETRICS, address = "Boulder, {CO}", 778 | month = may, year = 1990 779 | } 780 | 781 | @proceedings{sigmetrics1996, 782 | booktitle = SIGMETRICS, address = "Philadelphia, {PA}", 783 | month = may, year = 1996 784 | } 785 | 786 | @proceedings{sigmetrics1997, 787 | booktitle = SIGMETRICS, address = "Seattle, {WA}", 788 | month = jun, year = 1997 789 | } 790 | 791 | @proceedings{sigmetrics1998, 792 | booktitle = SIGMETRICS, address = "{Madison, WI}", 793 | month = jun, year = 1998 794 | } 795 | 796 | @proceedings{sigmetrics2000, 797 | booktitle = SIGMETRICS, address = {Santa Clara, CA}, 798 | month = jun, year = 2000 799 | } 800 | 801 | @proceedings{sigmetrics2003, 802 | booktitle = SIGMETRICS, address = {San Diego, CA}, 803 | month = jun, year = 2003 804 | } 805 | 806 | @proceedings{sigmetrics2004, 807 | booktitle = SIGMETRICS, address = {New York, NY}, 808 | month = jun, year = 2004 809 | } 810 | 811 | @proceedings{sosp1985, 812 | booktitle = "{Proc. 10th ACM Symposium on Operating System Principles (SOSP)}", 813 | address = "{Orcas Island, WA}", 814 | month = dec, year = 1985 815 | } 816 | 817 | @proceedings{sosp1993, 818 | booktitle = "{Proc. 14th ACM Symposium on Operating System Principles (SOSP)}", 819 | address = "Asheville, {NC}", 820 | month = dec, year = 1993 821 | } 822 | 823 | @proceedings{sosp1995, 824 | booktitle = "{Proc. 15th ACM Symposium on Operating Systems Principles (SOSP)}", 825 | address="Copper Mountain, {CO}", 826 | month = dec, year = 1995 827 | } 828 | 829 | @proceedings{sosp1997, 830 | booktitle = "{Proc. 16th ACM Symposium on Operating Systems Principles (SOSP)}", 831 | address = {Saint-Mal{\^o}, France}, 832 | month = oct, year = 1997 833 | } 834 | 835 | @proceedings{sosp1999, 836 | booktitle = "{Proc. 17th ACM Symposium on Operating Systems Principles (SOSP)}", 837 | address = {Kiawah Island, SC}, 838 | month = dec, year = 1999 839 | } 840 | 841 | @proceedings{sosp2001, 842 | booktitle = "{Proc. 18th ACM Symposium on Operating Systems Principles (SOSP)}", 843 | address = "{Banff, Canada}", 844 | month = oct, year = 2001 845 | } 846 | 847 | @proceedings{sosp2003, 848 | booktitle = "{Proc. 19th ACM Symposium on Operating Systems Principles (SOSP)}", 849 | address = "{Lake George, NY}", 850 | month = oct, year = 2003 851 | } 852 | 853 | @proceedings{sosp2005, 854 | booktitle = "{Proc. 20th ACM Symposium on Operating Systems Principles (SOSP)}", 855 | address = "{Brighton, UK}", 856 | month = oct, year = 2003 857 | } 858 | 859 | @string{SP="{Proc. IEEE Symposium on Security and Privacy}"} 860 | @string{OAK="{Oakland, CA}"} 861 | 862 | @proceedings{sp1984, booktitle = SP, address = OAK, year = 1984, month = may } 863 | @proceedings{sp1997, booktitle = SP, address = OAK, year = 1997 } 864 | @proceedings{sp1998, booktitle = SP, address = OAK, year = 1999 } 865 | @proceedings{sp1999, booktitle = SP, address = OAK, year = 1999 } 866 | @proceedings{sp2000, booktitle = SP, address = OAK, year = 2000 } 867 | @proceedings{sp2001, booktitle = SP, address = OAK, year = 2001 } 868 | @proceedings{sp2002, booktitle = SP, address = OAK, year = 2002 } 869 | @proceedings{sp2003, booktitle = SP, address = OAK, year = 2003 } 870 | @proceedings{sp2004, booktitle = SP, address = OAK, year = 2004 } 871 | @proceedings{sp2005, booktitle = SP, address = OAK, year = 2004, month = may } 872 | 873 | @proceedings{spie-itcom2001, 874 | booktitle="{Proc. SPIE ITCom}", 875 | address="Denver, {CO}", 876 | month=aug, 877 | year= 2001 878 | } 879 | 880 | @proceedings{spie-itcom2002, 881 | booktitle="{Proc. SPIE ITCom}", 882 | address="Boston, {MA}", 883 | month=aug, 884 | year= 2002 885 | } 886 | 887 | @proceedings{usenix-w1988, 888 | booktitle = "Proc. Winter {USENIX} Conference", 889 | address = "Dallas, {TX}", 890 | month = jan, year = 1998 891 | } 892 | 893 | @proceedings{usenix-w1993, 894 | booktitle = "Proc. Winter {USENIX} Conference", 895 | address = "San Diego, {CA}", 896 | month = jan, year = 1993 897 | } 898 | 899 | @proceedings{usenix-s1993, 900 | booktitle = "Proc. Summer {USENIX} Conference", 901 | address = "{Cincinnati, OH}", 902 | month = jun, year = 1993 903 | } 904 | 905 | @proceedings{usenix-w1994, 906 | booktitle = "Proc. Winter {USENIX} Conference", 907 | address = "San Francisco, {CA}", 908 | month = jan, year = 1994 909 | } 910 | 911 | @string{USENIXTECH="{Proc.\ USENIX Annual Technical Conference}"} 912 | @proceedings{usenix1996, 913 | booktitle = USENIXTECH, address = {San Diego, CA}, 914 | month = jan, year = 1996 915 | } 916 | 917 | @proceedings{usenix1997, 918 | booktitle = USENIXTECH, address = "Anaheim, {CA}", 919 | month = jan, year = 1997 920 | } 921 | 922 | @proceedings{usenix1999, 923 | booktitle = USENIXTECH, address="{Monterey, {CA}}", 924 | month = jun, year = 1999 925 | } 926 | 927 | @proceedings{usenix2000, 928 | booktitle = USENIXTECH, address = {San Diego, CA}, 929 | month = jun, year = 2000 930 | } 931 | 932 | @proceedings{usenix2003, 933 | booktitle = USENIXTECH, address = {San Antonio, {TX}}, 934 | month = jun, year = 2003 935 | } 936 | 937 | @proceedings{usenix2004, 938 | booktitle = USENIXTECH, address = {Boston, MA}, 939 | month = jun, year = 2004 940 | } 941 | 942 | @proceedings{usenixsec1999, 943 | booktitle = "{Proc. 8th USENIX Security Symposium}", 944 | address = "{Washington, DC}", 945 | month = aug, year = 1999 946 | } 947 | 948 | @proceedings{usenixsec2000, 949 | booktitle = "{Proc. 9th USENIX Security Symposium}", 950 | address = "{Denver, CO}", 951 | month = aug, year = 2000 952 | } 953 | 954 | @proceedings{usenixsec2001, 955 | booktitle = "{Proc. 10th USENIX Security Symposium}", 956 | address = "{Washington, DC}", 957 | month = aug, year = 2001 958 | } 959 | 960 | @proceedings{usenixsec2002, 961 | booktitle = "{Proc. 11th USENIX Security Symposium}", 962 | address = "{San Francisco, CA}", 963 | month = aug, year = 2002 964 | } 965 | 966 | @proceedings{usenixsec2003, 967 | booktitle = "{Proc. 12th USENIX Security Symposium}", 968 | address = "{Washington, DC}", 969 | month = aug, year = 2003 970 | } 971 | 972 | @proceedings{usenixsec2004, 973 | booktitle = "{Proc. 13th USENIX Security Symposium}", 974 | address = "{San Diego, CA}", 975 | month = aug, year = 2004 976 | } 977 | 978 | @proceedings{usits1997, 979 | booktitle = "{Proc. 1st USENIX Symposium on Internet Technologies 980 | and Systems (USITS)}", 981 | address = {Monterey, CA}, 982 | month = dec, year = 1997 983 | } 984 | 985 | @proceedings{usits1999, 986 | booktitle = "{Proc. 2nd USENIX Symposium on Internet Technologies 987 | and Systems (USITS)}", 988 | address = {Boulder, CO}, 989 | month = oct, year = 1999 990 | } 991 | 992 | @proceedings{usits2001, 993 | booktitle = "{Proc. 3nd USENIX Symposium on Internet Technologies 994 | and Systems (USITS)}", 995 | address = "San Francisco, {CA}", 996 | month = mar, year = 2001 997 | } 998 | 999 | @proceedings{usits2003, 1000 | booktitle = "{Proc. 4th USENIX Symposium on Internet Technologies 1001 | and Systems (USITS)}", 1002 | address = "Seattle, Washington", 1003 | month = mar, year = 2003 1004 | } 1005 | 1006 | @proceedings{worlds2005, 1007 | booktitle = "Proc. Workshop on Real, Large Distributed Systems (WORLDS)", 1008 | address = "San Francisco, {CA}", 1009 | month = dec, year = 2005 1010 | } 1011 | 1012 | @proceedings{wwwc-1, 1013 | booktitle = "{Proc. First International World Wide Web Conference}", 1014 | address = {Geneva, Switzerland}, 1015 | month = May, year = 1994 1016 | } 1017 | 1018 | @proceedings{wwwc-2, 1019 | booktitle = "{Proc. Second International World Wide Web Conference}", 1020 | address = "{Chicago, IL}", 1021 | month = oct, year = 1994 1022 | } 1023 | 1024 | @proceedings{wwwc-4, 1025 | booktitle = "{Proc. Fourth International World Wide Web Conference}", 1026 | address = {Boston, MA}, 1027 | month = Dec, year = 1995 1028 | } 1029 | 1030 | @proceedings{wwwc-5, 1031 | booktitle = "{Proc. Fifth International World Wide Web Conference}", 1032 | address = {Paris, France}, 1033 | month = May, year = 1996 1034 | } 1035 | 1036 | @proceedings{wwwc-12, 1037 | booktitle = "{Proc. Twelfth International World Wide Web Conference}", 1038 | address = {Budapest, Hungary}, 1039 | month = May, year = 2003 1040 | } 1041 | -------------------------------------------------------------------------------- /ex/dga-849/index.srhtml: -------------------------------------------------------------------------------- 1 | <%= pagetop("15-849, Fall 2005: Networking in Challenging Environments") %> 2 | 3 |
    4 |
  • Instructor: David Andersen
  • 5 |
  • Time: MW 1:30 - 2:50
  • 6 |
  • Location: Wean Hall 5409
  • 7 |
  • Units: 12
  • 8 |
  • Enrollment is limited to a maximum of 16 students.
  • 9 |
  • The class is open to SCS Ph.D. students. 10 | Others may be admitted by permission of the instructor.
  • 11 |
12 | 13 |

14 | This class is a reading and project-based class examining and 15 | developing techniques for effective networking in the face of numerous 16 | challenges: high packet loss, frequent interruptions, mobility, high 17 | latency, and unpredictable conditions. These environments are present 18 | in a variety of modern-day environments: wireless and satellite 19 | connectivity, mobile users, ad-hoc networks, and in underserved 20 | rural areas and developing nations. The class will first examine how 21 | traditional protocols perform (or under-perform) in these environments. 22 | Next, it will examine techniques such as the use of store and forward 23 | routing, multipath forwarding and encoding methods to provide effective 24 | service. 25 |

26 | 27 |

Syllabus

28 |
    29 |
  • Reading List
  • 30 |
  • (Note that the syllabus is still tentative...)
  • 31 |
32 | 33 |

Projects

34 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /ex/dga-849/lectures.txt: -------------------------------------------------------------------------------- 1 | # This file defines the lectures for the class. The syllabus is 2 | # automatically generated from this file. 3 | 4 | # Date: [Lecture type] 5 | # blank: normal lecture 6 | # noclass [explanation text] 7 | # exam [exam name] 8 | # I: Instructor (overrides the global INSTRUCTOR) 9 | # T: Title 10 | # S: slides ref (looks in lectures/.{ppt,pdf,ps,html} 11 | # V: Video list (links to coursecast) 12 | # R: Readings (copied verbatim) 13 | # N: Notes (copied verbatim) 14 | 15 | CLASS: 15-849D Networking in Challenging Environments 16 | CLASS_SHORT: 15-849D 17 | YEAR: 2005 18 | TERM: Fall 19 | INSTRUCTOR: DGA 20 | VIDEOBASE: http://ilserver.sp.cs.cmu.edu/view.pl?id=VIDEOID 21 | LOCATION: WeH 5409 22 | START_TIME: '13:30' 23 | END_TIME: '14:50' 24 | READINGBASE: http://www-2.cs.cmu.edu/~dga/15-849/papers/ 25 | SHOW_LECNUM: no 26 | SHOW_INSTRUCTOR: yes 27 | 28 | LECTURES: 29 | - 9/12: 30 | T: 'Introduction: Internet Architecture, Scenarios' 31 | N: Please read these papers before class. 32 | RB: Saltzer84::Saltzer84.pdf 33 | S: 01-assumptions 34 | 35 | - 09/14: 36 | T: 802.11 37 | N: 'See Stalings ch14 for more details.
Bg: How WiFi Works. GameSpy 802.11 Primer.
Fundamentals of Wireless from Randy Katz''s 1996 course.
This class may spill over.' 38 | RL: macaw bhagwat-hotnets2003 39 | S: 02-wireless 40 | 41 | - 9/19: 42 | T: Ad Hoc and Community Wireless 1 43 | RL: roofnet-mobicom2005 vandrunen-freenix2003 44 | N: 1st round presentation sign-ups due 45 | I: danwent svp 46 | 47 | - 09/21: 48 | T: Sensor Networks Scenarios 49 | RL: gdi-ewsn04 zebranet-mobisys04 50 | I: runting, asangpet 51 | 52 | - 09/26: 53 | T: TCP over Wireless 54 | RL: balakrishnan-wireless1997 eddy-tcploss 55 | I: Austin Mckinley, Amit Malani 56 | 57 | - 09/28: 58 | T: Ad Hoc Routing Protocols 59 | RL: royer-adhoc1999 karp-gpsr2000 60 | I: Vitaliy Gleyzer, Shravan Rayanchu 61 | 62 | - 10/03: 63 | T: Ad Hoc 2 64 | RL: decouto-etx2003 draves-sigcomm2004 65 | I: Abhijit Deshmukh, Sai Vinyak 66 | 67 | - 10/05: 68 | T: Mobility and IP 69 | RL: snoeren-e2emobility ieee-mobileip98 70 | I: james.hendricks mdunlop 71 | 72 | - 10/10: 73 | T: Mobility 2 74 | RL: maltz-msocks1998 zhuang-mobility2003 75 | I: Shishir Moudgal, Akshay Kawale 76 | N: Project proposals due 77 | 78 | - 10/12: 79 | T: 'Store and Forward 1: FidoNet and UUCP' 80 | R: 'Store and Forward Intro
Pathalias UUCP paper (read for UUCP info, skim details of mapping).
Wikipedia FidoNet Article, A FidoNet Primer.
Further reading: FidoNet Technical Standard Rev16.' 81 | 82 | - 10/17: 83 | T: 'Store and Forward 2: The Modern Days' 84 | RL: jain-dtn2004 nain-wiopt03 85 | N: Project reviews due 86 | I: Rahul Mangharam 87 | 88 | - 10/19: 89 | T: 'Disconnected Operation: filesystems' 90 | RL: kistler-coda1992 speculator-sosp2005 91 | N: ' Suggested background for speculator: bluefs
' 92 | I: Akshay Kawale, Shishir Moudgal 93 | 94 | - 10/24: 95 | I: 'Srini Seshan
Students: Rahul, Akkarit Sangpetch' 96 | T: 'Sensor Networks: Solutions' 97 | RL: diffusion2000 madden-osdi2002 ght-wsna2002 98 | N: dga out of town this week. 99 | 100 | - 10/26: 101 | T: Multiple Radios / Antennas 102 | N: 'Lecture background: MIMO' 103 | RL: miu-mobicom2005 biswas-exor2005 104 | I: ' Peter Steenkiste, guest lecturer.
Students: Austin McKinley, Runting Shi' 105 | 106 | - 10/31: 107 | T: Internet Availability 108 | RL: ron-sosp2001 gummadi-sosr2004 109 | I: amit jvh 110 | 111 | - 11/02: 112 | T: Multihoming 113 | RL: akella-sigcomm2004 monet-nsdi2005 114 | I: danwent svp 115 | 116 | - 11/07: 117 | T: Project Progress Reviews 118 | N: Mid-semester project status presentations. 8 minutes per group. See project logistics for details. 119 | type: exam 120 | 121 | - 11/09: 122 | T: Peer to Peer 123 | RL: gummadi-sigcomm2003 li-infocom2005 124 | N: This lecture assumes some basic familiarity with DHTs. Background would include the original Chord paper (from the project iris web site). 125 | I: Ginger Perng 126 | 127 | - 11/14: 128 | T: 'Availability: Denial of Service 1' 129 | RL: staniford-usenixsec2002 Singh-osdi2004 130 | I: Ginger Perng, Matt Dunlop 131 | 132 | - 11/16: 133 | T: 'Availability: Denial of Service 2' 134 | RL: Snoeren-traceback02 Yang-sigcomm2005 135 | I: Sharan R., Vitaliy G. 136 | 137 | - 11/21: 138 | T: Best of HotNets 2005 139 | I: Sai Vinyak, Abhijit Deshmukh 140 | RL: ballani-hotnets2005 handley-hotnets2005 agarwal-hotnets2005 141 | 142 | - 11/23: 143 | type: noclass 144 | T: Thanksgiving Holiday 145 | N: Gobble gobble 146 | 147 | - 11/28: 148 | T: 'Local research: Car networking @ CMU' 149 | I: Rahul Mangharam 150 | 151 | - 11/30: 152 | T: Energy 153 | RL: flinn-sosp1999 krashinsky-mobicom2002 154 | 155 | - 12/05: 156 | I: class 157 | T: Project presentations. 158 | type: exam 159 | 160 | - 12/07: 161 | I: class 162 | T: Last day of class. Project presentations. 163 | type: exam 164 | 165 | - 12/12: 166 | I: 'n/a' 167 | T: 'Project writeups due by 3pm in Dave''s admin''s office (Wean 8018)' 168 | type: exam 169 | -------------------------------------------------------------------------------- /ex/dga-849/pagebottom.srhtml: -------------------------------------------------------------------------------- 1 |
2 |

Last updated: <%= Time.now %> 3 | [validate xhtml]

4 | 5 | 6 | -------------------------------------------------------------------------------- /ex/dga-849/pagehead.srhtml: -------------------------------------------------------------------------------- 1 | <%= inc("doctype.html") %> 2 | 3 | 4 | <%= @page.title %> 5 | 6 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /ex/dga-849/readinglist.head: -------------------------------------------------------------------------------- 1 | <%= pagehead("Reading List") %> 2 | 3 | 4 |
5 |

CS 7260 Reading List

6 | 7 | 8 |
9 | -------------------------------------------------------------------------------- /ex/dga-849/readinglist.tail: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 |

6 | Home 7 | Reading 8 | Syllabus 9 |

10 | 11 | <%= pagebottom() %> 12 | -------------------------------------------------------------------------------- /ex/dga-849/style.css: -------------------------------------------------------------------------------- 1 | body, html { 2 | color: #000000; 3 | background: #ffffff; 4 | } 5 | 6 | a:link { 7 | background: #ffffff; 8 | color: #0000ff; 9 | text-decoration: underline; 10 | } 11 | 12 | a:visited { 13 | background: #ffffff; 14 | color: #400860; 15 | text-decoration: underline; 16 | } 17 | 18 | h1 { 19 | color: maroon; 20 | background: white; 21 | border-bottom: solid 0.05em maroon; 22 | padding: .1em; 23 | margin: 0; 24 | margin-bottom: .1em; 25 | font-style: normal; 26 | font-weight: normal; 27 | 28 | } 29 | 30 | p.lastupdated { 31 | font-size: 70%; 32 | font-style: italic; 33 | margin-bottom: 0; 34 | } 35 | 36 | p.contact { 37 | margin-top: 0; 38 | font-size: 70%; 39 | } 40 | 41 | body#announcements { 42 | background: black; 43 | font-face: Arial; 44 | } 45 | 46 | #announcements p { 47 | color: maroon; 48 | } 49 | 50 | #announcements h1 { 51 | color: #ffffff; 52 | text-align: center; 53 | font-size: 110%; 54 | text-decoration: underline; 55 | } 56 | 57 | /* The alternating announcement colors */ 58 | #announcements p.one { color: #ff0000; } 59 | #announcements p.two { color: #00ff00; } 60 | #announcements p.three { color: #3333ff; } 61 | 62 | .announce_date { font-weight: bold; } 63 | 64 | .contents { 65 | background: #800000; 66 | color: #ffffff; 67 | } 68 | 69 | .contents ul { 70 | list-style-type: none; 71 | font-size: 110%; 72 | margin-left: 0; 73 | padding-left: 0; 74 | margin-bottom: 0.5em; 75 | } 76 | 77 | .contents ul a:link { color: #ffff00; text-decoration: underline;} 78 | .contents ul a:visited { color: #ffff00; text-decoration: underline; } 79 | 80 | .contents ul ul { 81 | font-size: 90%; 82 | padding-left: 0.5em; 83 | } 84 | 85 | 86 | #Schedule th { 87 | background: maroon; 88 | color: white; 89 | } 90 | 91 | #Schedule table { 92 | //width: 90%; 93 | //margin-left: 5%; 94 | //margin-right: 5%; 95 | width: 98%; 96 | margin-left: 1%; 97 | margin-right: 1%; 98 | } 99 | 100 | #Schedule table,tr,th,td { 101 | padding: 3px; 102 | border-width: 1px; 103 | border-spacing: 0px; 104 | border-collapse: collapse; 105 | } 106 | #Schedule tr,td { 107 | border-width: 1px; 108 | border-style: solid; 109 | border-color: black; 110 | } 111 | 112 | /* Presentation: No underlines on links in schedule unless you're 113 | * moving the mouse over it. */ 114 | 115 | #Schedule tr.lecture { background: white; } 116 | #Schedule tr.noclass { background: lime; } 117 | #Schedule tr.exam { background: yellow; } 118 | 119 | #Readings { 120 | } 121 | 122 | #textbooks { 123 | } 124 | 125 | #syllint { position: relative; } 126 | #syllabus { position: relative; } 127 | div#textbooks { position: relative; width: 100%; } 128 | 129 | div#pregrade { 130 | position: relative; 131 | border: 1px solid maroon; 132 | } 133 | 134 | div#Prerequisites { 135 | position: relative; 136 | vertical-align: top; 137 | float: left; 138 | width: 45%; 139 | height: 99%; 140 | text-width: 95%; 141 | padding-left: 1em; 142 | padding-right: 1em; 143 | border-right: 1px solid maroon; 144 | margin-right: 1em; 145 | } 146 | div#Grading { 147 | position: relative; 148 | vertical-align: top; 149 | float: right; 150 | padding-left: 0; 151 | padding-right: 1em; 152 | width: 45%; 153 | height: 99%; 154 | } 155 | 156 | #Schedule h2 { text-align: center; } 157 | 158 | div#Schedule { 159 | border-top: 1px solid maroon; 160 | clear: both; 161 | margin-top: 5em; 162 | float: none; 163 | width: 100%; 164 | } 165 | 166 | dl.idealist dt { 167 | margin-top: 1em; 168 | font-size: 110%; 169 | } 170 | -------------------------------------------------------------------------------- /ex/dga-849/syllabus.head: -------------------------------------------------------------------------------- 1 | <%= pagehead("Syllabus") %> 2 | 3 | 4 |
5 |

15-849 Syllabus: Networking in Challenging Environments

6 |
7 |

Textbooks

8 | 9 |

There are no required textbooks for the course. If you don't feel 10 | like you're up on the background for the course, a few texts you might 11 | want to use are:

12 | 13 |
    14 |
  • General networking: Computer Networks: A Systems Approach, third edition, by 15 | Larry Peterson and Bruce Davie. The library has a few copies of 16 | this book.
  • 17 | 18 |
  • Wireless: Wireless Communications & 19 | Networks by William Stallings, 1st Ed., Prentice Hall, 2002. 20 | This book focuses more on physical and lower layer issues, and 21 | provides a reasonable background for those subjects.
  • 22 |
23 | 24 |

Some good references for the programming and protocols side of things are: 25 |

26 | 27 |
    28 |
  • TCP/IP Illustrated, Volume 1: The Protocols by 29 | W. Richard Stevens.
  • 30 |
  • Unix Network Programming: 31 | Networking APIs: Sockets and XTI (Volume 1) by W. Richard Stevens.
  • 32 |
33 | 34 |

Finally, if you're not already familiar with them, this course 35 | would be a grand time to start familiarizing yourself with 36 | Subversion or 37 | CVS and with 38 | LaTeX.

39 |
40 | 41 |
42 |
43 |

Prerequisites

44 |

45 | This class is appropriate for first-year graduate students with a strong 46 | background in networks, or for students who have taken the graduate 47 | networking class or equivalent. We will assume familiarity with the 48 | general operation of routing protocols, TCP, and application protocols 49 | such as HTTP. 50 |

51 |
52 | 53 |
54 |

Grading

55 |

56 | Grading will be based on participation, paper presentations, and a 57 | semester-long project. 58 |

59 |
    60 |
  • 30% discussion leading (3 x 10%).
  • 61 |
  • 10% participation / attendance
  • 62 |
  • 60% project
  • 63 |
64 |
65 |
66 | 67 |
68 |

Schedule

69 |

Also available as an ical file that you can subscribe to.

70 |

Papers will not be handed out in class. Please print the readings 71 | and read them before class. After the first week, we will have 72 | signups for students to present the papers.

73 | 74 |
DateTopicsNotesReadings
75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /ex/dga-849/syllabus.tail: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <%= pagebottom() %> 5 | -------------------------------------------------------------------------------- /ex/feamster-7260/class.bib: -------------------------------------------------------------------------------- 1 | 2 | 3 | @inproceedings{Design, 4 | author = "Clark, D.", 5 | title = "{The Design Philosophy of the DARPA Internet Protocols}", 6 | crossref = "sigcomm1988", 7 | pages = "109--114" 8 | } 9 | 10 | @inproceedings{Architecture, 11 | author = "Clark, D. and Tennenhouse, D.", 12 | title = "{Architectural Consideration for a New Generation of Protocols}", 13 | crossref = "sigcomm1990", 14 | pages = "200--208" 15 | } 16 | 17 | 18 | @InProceedings{OSPF-Monitor, 19 | author = {Aman Shaikh and Albert Greenberg}, 20 | title = "{{OSPF} Monitoring: Architecture, Design, and Deployment Experience}", 21 | crossref = "nsdi2004", 22 | pages = {57--70} 23 | } 24 | 25 | 26 | @Article{Stability, 27 | author = {Lixin Gao and Jennifer Rexford}, 28 | title = {Stable {I}nternet routing without global coordination}, 29 | journal = TON, 30 | year = 2001, 31 | pages = {681--692}, 32 | month = dec, 33 | } 34 | 35 | 36 | @inproceedings{rcc, 37 | author = {Nick Feamster and Hari Balakrishnan}, 38 | title = "{Detecting BGP Configuration Faults with Static Analysis}", 39 | crossref = "nsdi2005", 40 | pages = {43--56} 41 | } 42 | 43 | @article{Huston:BGPSec, 44 | author = {Geoff Huston}, 45 | title = {Securing Inter-Domain Routing}, 46 | journal = {The ISP Column}, 47 | year = {2005}, 48 | month = mar, 49 | note = {\url{http://www.potaroo.net/ispcol/2005-03/route-sec-2-ispcol.pdf}}, 50 | } 51 | 52 | @inproceedings{Akella, 53 | title = "Multihoming Performance Benefits: An Experimental Evaluation of Practical Enterprise Strategies", 54 | author = "Aditya Akella and Srinivasan Seshan and Anees Shaikh", 55 | crossref = "usenix2004" 56 | } 57 | 58 | 59 | 60 | @inproceedings{RON, 61 | author = "David G. Andersen and Hari Balakrishnan and M. Frans Kaashoek and Robert Morris", 62 | title = "{Resilient Overlay Networks}", 63 | crossref = "sosp2001", 64 | pages = {131--145}, 65 | } 66 | 67 | @inproceedings{Infranet, 68 | author = {Nick Feamster and Magdalena Balazinska and Greg Harfst and Hari Balakrishnan and David Karger}, 69 | title = "{Infranet: Circumventing Web Censorship and Surveillance}", 70 | crossref = "usenixsec2002" 71 | } 72 | 73 | 74 | 75 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 76 | 77 | @proceedings{sigcomm1988, 78 | booktitle = SIGCOMM, 79 | address = "{Stanford, CA}", 80 | month = Aug, 81 | year = 1988 82 | } 83 | 84 | @proceedings{sigcomm1990, 85 | booktitle = SIGCOMM, 86 | address = "{Philadelphia, PA}", 87 | month = sep, 88 | year = 1990 89 | } 90 | 91 | @proceedings{usenix2004, 92 | booktitle = USENIXTECH, 93 | address = {Boston, MA}, 94 | month = jun, 95 | year = 2004 96 | } 97 | 98 | @proceedings{nsdi2005, 99 | booktitle = {Proc. 2nd Symposium on Networked Systems Design and Implementation (NSDI)}, 100 | address = {Boston, MA}, 101 | month = may, 102 | year = 2005 103 | } 104 | 105 | 106 | @proceedings{usenixsec2002, 107 | booktitle = "{Proc. 11th USENIX Security Symposium}", 108 | address = "{San Francisco, CA}", 109 | month = aug, 110 | year = 2002 111 | } 112 | 113 | @proceedings{sosp2001, 114 | booktitle = "{Proc. 18th ACM Symposium on Operating Systems Principles (SOSP)}", 115 | address = "{Banff, Canada}", 116 | month = oct, 117 | year = 2001 118 | } 119 | 120 | @proceedings{nsdi2004, 121 | booktitle = {Proc. First Symposium on Networked Systems Design and Implementation (NSDI)}, 122 | address = {San Francisco, CA}, 123 | month = mar, 124 | year = 2004 125 | } 126 | -------------------------------------------------------------------------------- /ex/feamster-7260/lectures.txt: -------------------------------------------------------------------------------- 1 | # This file defines the lectures for the class. The syllabus is 2 | # automatically generated from this file. 3 | 4 | # Date: [Lecture type] 5 | # blank: normal lecture 6 | # noclass [explanation text] 7 | # exam [exam name] 8 | # I: Instructor (overrides the global INSTRUCTOR) 9 | # T: Title 10 | # S: slides ref (looks in lectures/.{ppt,pdf,ps,html} 11 | # V: Video list (links to coursecast) 12 | # R: Readings (copied verbatim) 13 | # N: Notes (copied verbatim) 14 | # A: Topic Area (generates a heading) 15 | # RB: BibTeX ref::URL 16 | 17 | CLASS: 'CS 7260: Internetworking Architectures and Protocols' 18 | CLASS_SHORT: CS7260 19 | SUMMARY: CS 7260 20 | YEAR: 2006 21 | TERM: Spring 22 | INSTRUCTOR: Nick Feamster 23 | LOCATION: Howey (Physics) S107 24 | START_TIME: '15:05' 25 | END_TIME: '16:25' 26 | READINGBASE: http://www.cc.gatech.edu/~feamster/classes/CS7260-SP06/papers 27 | SHOW_LECNUM: yes 28 | SHOW_INSTRUCTOR: no 29 | HIGHLIGHT_DUE: yes 30 | HEADSPAN: 5 31 | 32 | LECTURES: 33 | 34 | - 1/9: 35 | T: Course Overview and Introduction 36 | RB: Design::darpa-internet.pdf 37 | N: PlanetLab, EmuLab 38 | 39 | - 'Internetworking: Addressing, Naming, Routing, and Forwarding' 40 | 41 | - 1/11: 42 | T: 'Names: DNS' 43 | 44 | - 1/16: 45 | type: noclass 46 | T: School Holiday 47 | 48 | - 1/18: 49 | T: 'Addresses: Allocation, Exhaustion, IPv6, and NAT' 50 | N: PS1 Assigned 51 | 52 | - 1/23: 53 | T: Bridges and Intradomain Routing 54 | N: Project Groups Due 55 | RB: OSPF-Monitor::http://www.usenix.org/events/nsdi04/tech/full_papers/shaikh/shaikh.pdf 56 | 57 | - 1/25: 58 | T: Interdomain Routing 59 | RB: Stability::http://www.cs.princeton.edu/%7Ejrex/papers/sigmetrics00.pdf 60 | N: XORP, Click 61 | 62 | - 1/30: 63 | T: 'Management: Fault Detection and Troubleshooting ' 64 | RB: rcc::http://www.usenix.org/events/nsdi05/tech/feamster.html 65 | 66 | - 2/1: 67 | T: Multihoming and Source-Controlled Routing 68 | N: PS1 Due 69 | 70 | - 2/6: 71 | T: Routing Security 72 | N: Project Proposals Due
PS2 Assigned 73 | RB: Huston:BGPSec::http://www.potaroo.net/ispcol/2005-03/route-sec-2-ispcol.pdf 74 | 75 | - 2/8: 76 | T: 'Measurement I: Routing and Forwarding' 77 | N: Routeviews, Datapository
Abilene Observatory 78 | 79 | - 2/13: 80 | T: 'Measurement II: Traffic' 81 | 82 | - 2/15: 83 | T: 'Routing Services: MPLS, VPNs' 84 | 85 | - 2/20: 86 | T: Anomaly Detection and DoS Prevention 87 | N: PS2 Due 88 | - 2/22: 89 | type: exam 90 | T: Quiz 1 91 | N: PS3 Assigned 92 | 93 | - 'Above the Network Layer: Services, Applications, and Threats' 94 | 95 | - 2/27: 96 | T: 'Voice and Video over Networks: Coding and Transport' 97 | 98 | - 3/1: 99 | T: 'Spam, Botnets, and Worms' 100 | N: MailAvenger 101 | 102 | - 3/6: 103 | T: 'Routing Overlays: RON, SOSR' 104 | N: PS3 Due 105 | RB: RON::http://nms.lcs.mit.edu/papers/ron-sosp2001.pdf 106 | 107 | - 3/8: 108 | T: 'Content Overlays: Chord, Bittorrent' 109 | 110 | - 3/13: 111 | T: Privacy and Anonymity 112 | RB: Infranet::http://www.usenix.org/publications/library/proceedings/sec02/feamster.html 113 | 114 | - 3/15: 115 | T: 'Searching the Web: PageRank, Spamming and Defenses, etc.' 116 | 117 | - 3/20: 118 | type: noclass 119 | T: Spring Break 120 | 121 | - 3/22: 122 | type: noclass 123 | T: Spring Break 124 | 125 | - 3/27: 126 | type: presentations 127 | T: Project Progress Mini-Presentations 128 | N: Interim Report Due 129 | 130 | 131 | - 'Below the Network Layer: Wireless, Optics, etc.' 132 | 133 | - 3/29: 134 | T: 'Router Design: IP Lookup, Switching, and Buffering' 135 | 136 | - 4/3: 137 | T: Layer-2 and Optics 138 | 139 | - 4/5: 140 | T: Network Coding 141 | 142 | - 4/10: 143 | T: Wireless Networks I 144 | 145 | - 4/12: 146 | T: Wireless Networks II 147 | 148 | - 4/17: 149 | type: exam 150 | T: Quiz 2 151 | 152 | - 4/19: 153 | T: 'New Directions: Networking and Economics' 154 | 155 | - 4/24: 156 | type: presentations 157 | T: Project Presentations 158 | 159 | - 4/26: 160 | type: presentations 161 | T: Project Presentations 162 | 163 | - 4/28: 164 | type: presentations 165 | T: Project Writeups Due 166 | N: Due 5pm EST, 215 GCATT 167 | -------------------------------------------------------------------------------- /ex/feamster-7260/readinglist.head: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | Reading List 9 | 10 | 11 | 12 | 13 |
14 |

CS 7260 Reading List

15 | 16 | 17 |
18 | -------------------------------------------------------------------------------- /ex/feamster-7260/readinglist.tail: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 |

6 | Home 7 | Reading 8 | Syllabus 9 | validate 10 |

11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /ex/feamster-7260/style.css: -------------------------------------------------------------------------------- 1 | body, html { 2 | color: #000000; 3 | background: #ffffff; 4 | } 5 | 6 | a { 7 | text-decoration: none ; 8 | color: #991133 ; 9 | background: #ffffff; 10 | } 11 | 12 | a:hover { 13 | text-decoration: underline 14 | } 15 | 16 | a:visited { 17 | background: #ffffff; 18 | color: #408860; 19 | } 20 | 21 | h1 { 22 | color: black; 23 | background: white; 24 | border-bottom: solid 0.05em black; 25 | padding: .1em; 26 | margin: 0; 27 | margin-bottom: .1em; 28 | font-style: normal; 29 | font-weight: normal; 30 | 31 | } 32 | 33 | h2 { 34 | font-size: 145% ; 35 | font-weight: bold ; 36 | color: #000000 ; 37 | color-grey: #bbbbbb 38 | } 39 | 40 | ul.nobullets { 41 | list-style-type: none 42 | } 43 | 44 | p.lastupdated { 45 | font-size: 70%; 46 | font-style: italic; 47 | margin-bottom: 0; 48 | } 49 | 50 | p.contact { 51 | margin-top: 0; 52 | font-size: 70%; 53 | } 54 | 55 | p.footnote { 56 | margin-top: 0; 57 | font-size: 70%; 58 | } 59 | 60 | 61 | body#announcements { 62 | background: black; 63 | font-face: Arial; 64 | } 65 | 66 | #announcements p { 67 | color: maroon; 68 | } 69 | 70 | #announcements h1 { 71 | color: #ffffff; 72 | text-align: center; 73 | font-size: 110%; 74 | text-decoration: underline; 75 | } 76 | 77 | /* The alternating announcement colors */ 78 | #announcements p.one { color: #ff0000; } 79 | #announcements p.two { color: #00ff00; } 80 | #announcements p.three { color: #3333ff; } 81 | 82 | .announce_date { font-weight: bold; } 83 | 84 | .contents { 85 | background: #800000; 86 | color: #ffffff; 87 | } 88 | 89 | .contents ul { 90 | list-style-type: none; 91 | font-size: 110%; 92 | margin-left: 0; 93 | padding-left: 0; 94 | margin-bottom: 0.5em; 95 | } 96 | 97 | .contents ul a:link { color: #ffff00; text-decoration: underline;} 98 | .contents ul a:visited { color: #ffff00; text-decoration: underline; } 99 | 100 | .contents ul ul { 101 | font-size: 90%; 102 | padding-left: 0.5em; 103 | } 104 | 105 | 106 | #Schedule th { 107 | background: darkblue; 108 | color: white; 109 | font-weight: bold; 110 | } 111 | 112 | #Schedule table { 113 | width: 98%; 114 | margin-left: 1%; 115 | margin-right: 1%; 116 | } 117 | 118 | #Schedule table,tr,th,td { 119 | padding: 3px; 120 | border-width: 1px; 121 | border-spacing: 0px; 122 | border-collapse: collapse; 123 | } 124 | #Schedule tr,td { 125 | border-width: 1px; 126 | border-style: solid; 127 | border-color: black; 128 | } 129 | 130 | /* Presentation: No underlines on links in schedule unless you're 131 | * moving the mouse over it. */ 132 | 133 | #Schedule tr.lecture { background: white; } 134 | #Schedule tr.noclass { background: lightgrey; } 135 | #Schedule tr.exam { background: pink; } 136 | #Schedule tr.presentations { background: lightblue; } 137 | #Schedule td.lechead { 138 | border-top: solid 0.25em blue; 139 | border-bottom: solid 0.25em blue; 140 | text-align: center; 141 | background: white; 142 | color: black; 143 | font-face: Arial, Helvetica, sans-serif; 144 | font-weight: bold; 145 | font-style: italic; 146 | } 147 | 148 | #Schedule td.due { 149 | background: #ffeeaa; 150 | font-weight: bold; 151 | } 152 | 153 | 154 | #Readings { 155 | } 156 | 157 | #textbooks { 158 | } 159 | 160 | 161 | div#objectives { 162 | position: relative; 163 | width: 100%; 164 | border-bottom: 1px solid darkblue; 165 | } 166 | 167 | 168 | div#textbooks { 169 | position: relative; 170 | width: 100%; 171 | } 172 | 173 | div#pregrade { 174 | position: relative; 175 | border: 1px solid darkblue; 176 | } 177 | 178 | div#Prerequisites { 179 | position: relative; 180 | vertical-align: top; 181 | float: left; 182 | width: 45%; 183 | height: 99%; 184 | text-width: 95%; 185 | padding-left: 1em; 186 | padding-right: 1em; 187 | margin-right: 1em; 188 | } 189 | div#Grading { 190 | position: relative; 191 | vertical-align: top; 192 | float: right; 193 | padding-left: 1em; 194 | border-left: 1px solid darkblue; 195 | padding-right: 1em; 196 | width: 45%; 197 | height: 99%; 198 | } 199 | 200 | 201 | 202 | div.term { 203 | text-align: left; 204 | padding-left: 0.1em; 205 | color: red; 206 | font-size: 150%; 207 | font-weight: normal; 208 | } 209 | 210 | div.boxleft { 211 | position: relative; 212 | vertical-align: top; 213 | float: left; 214 | width: 45%; 215 | height: 99%; 216 | text-width: 90%; 217 | padding-left: 1em; 218 | padding-right: 1em; 219 | margin-right: 1em; 220 | } 221 | div.boxright { 222 | position: relative; 223 | vertical-align: top; 224 | float: right; 225 | padding-left: 1em; 226 | padding-right: 1em; 227 | width: 45%; 228 | height: 99%; 229 | } 230 | div.boxboth { 231 | position: relative; 232 | vertical-align: top; 233 | float: left; 234 | width: 90%; 235 | height: 99%; 236 | text-width: 90%; 237 | padding-left: 1em; 238 | padding-right: 1em; 239 | margin-right: 1em; 240 | } 241 | div.footerbox { 242 | position: relative; 243 | vertical-align: top; 244 | float: left; 245 | width: 90%; 246 | height: 99%; 247 | text-width: 90%; 248 | padding-left: 1em; 249 | padding-right: 1em; 250 | margin-right: 1em; 251 | border-top: 1px solid black; 252 | } 253 | 254 | 255 | 256 | 257 | 258 | 259 | #Schedule h2 { text-align: center; } 260 | 261 | div#Schedule { 262 | border-top: 1px solid darkblue; 263 | clear: both; 264 | margin-top: 5em; 265 | float: none; 266 | width: 100%; 267 | } 268 | 269 | dl.idealist dt { 270 | margin-top: 1em; 271 | font-size: 110%; 272 | } 273 | -------------------------------------------------------------------------------- /ex/feamster-7260/syllabus.head: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | Syllabus 9 | 10 | 11 | 12 | 13 |
14 |

CS 7260: Internetworking Architectures and Protocols

15 | 16 | 17 |
18 |

Objectives

19 | 20 |

21 | This project-based course will explore research topics in 22 | computer networking, prmarily at the IP layer and above. You will 23 | gain exposure to burgeoning areas of computer networking and learn how 24 | to use the tools commonly used for networking research today. 25 |

26 | 27 |
28 | 29 | 30 |
31 |

Textbooks

32 | 33 |

You will be expected to read 2-3 papers a week. (Reading List).
34 | 35 | There are no required textbooks for the course.

36 | 37 |
38 | 39 |
40 |

Prerequisites

41 |

This class is appropriate for graduate students with 42 | previous background in networking. Although it is listed as an official 43 | prerequisite, CS 6250 will be helpful, but is not 44 | required. Some familiarity with both network programming and 45 | scripting languages (e.g., Perl, Ruby) will be helpful.

46 |
47 | 48 |
49 |

Grading

50 |

51 | Grading will be based on three problem sets, two quizzes, and a 52 | semester-long project with a presentation and writeup. 53 |

54 |
    55 |
  • 5% Participation
  • 56 |
  • 15% Problem Sets
  • 57 |
  • 30% Quizzes
  • 58 |
  • 50% project
  • 59 |
60 |
61 |
62 | 63 |
64 |

Schedule

65 |

Papers will not be handed out in class. Please print the readings 66 | and read them before class.

67 | 68 |
DateInstructorTopicsNotesReadings
69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /ex/feamster-7260/syllabus.tail: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

5 | Home 6 | Reading 7 | Syllabus 8 | validate 9 |

10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /include/doctype.html: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /include/weblib.rb: -------------------------------------------------------------------------------- 1 | # A thing to note about this: ERB works by building up output 2 | # strings. For this file, pretend that you're a functional programmer: 3 | # Anything that the function returns will be interpolated into 4 | # the HTML. 5 | 6 | require 'erb' 7 | require 'ostruct' 8 | 9 | $INC = File.dirname(__FILE__) 10 | $PDIR = nil 11 | if ($INC =~ /www-include/) 12 | $LOAD_PATH << (File.dirname(__FILE__) + "/../include/") 13 | else 14 | $LOAD_PATH << (File.dirname(__FILE__) + "/../../www/") 15 | end 16 | 17 | begin 18 | if (ARGF && ARGF.file && ARGF.file.path) 19 | $PDIR = File.dirname(ARGF.file.path) 20 | end 21 | rescue 22 | end 23 | 24 | 25 | def pagehead(title) 26 | page = OpenStruct.new 27 | page.title = title 28 | 29 | HTMLenv.new(page).libinc("pagehead.srhtml") 30 | end 31 | 32 | class HTMLenv 33 | 34 | def initialize(page = nil) 35 | @page = page || OpenStruct.new 36 | end 37 | 38 | def inc(file) 39 | fl = [$INC] 40 | fl.push($PDIR) if $PDIR 41 | if ($INC =~ /www-include/) 42 | fl.push($INC + "/../www/") 43 | end 44 | fl.push($PDIR + "/../../www/") if $PDIR 45 | fl.each { |dir| 46 | if (File.exist?(dir + "/" + file)) 47 | return IO.read(dir + "/" + file) 48 | end 49 | } 50 | throw "Could not find #{file}" 51 | end 52 | 53 | def libinc(file) 54 | b = binding 55 | ERB.new(inc(file).untaint, $SAFE, "%<>", "_estr").result b 56 | end 57 | 58 | end 59 | 60 | def inc(file) 61 | HTMLenv.new().inc(file) 62 | end 63 | 64 | def libinc(file) 65 | HTMLenv.new().libinc(file) 66 | end 67 | 68 | def bodytop(title) 69 | page = OpenStruct.new 70 | page.title = title 71 | 72 | HTMLenv.new(page).libinc("bodyhead.srhtml") 73 | end 74 | 75 | def pagetop(title) 76 | pagehead(title) + bodytop(title) 77 | end 78 | 79 | def pagebottom 80 | libinc("pagebottom.srhtml") 81 | end 82 | -------------------------------------------------------------------------------- /www/Makefile: -------------------------------------------------------------------------------- 1 | #PUBHOST=rigel.cc.gatech.edu 2 | #PUBDIR=www/classes/CS7260-SP06 3 | RDEPS= ../include/weblib.rb 4 | SRCS = index.html syllabus.html readinglist.html 5 | 6 | #all: publish 7 | all: local 8 | 9 | publish: local 10 | scp $(SRCS) Makefile $(PUBHOST):$(PUBDIR) 11 | 12 | local: $(SRCS) 13 | 14 | # Readinglist is generated by mklectures now 15 | #readinglist.srhtml: class.bib readinglist.head readinglist.tail 16 | # ../bin/bibparse.rb 17 | 18 | syllabus.srhtml: lectures.txt syllabus.head syllabus.tail 19 | ../bin/mklectures.rb > syllabus.srhtml 20 | 21 | index.html: index.srhtml 22 | erb -T 2 -r ../include/weblib.rb index.srhtml > index.html 23 | 24 | syllabus.html: syllabus.srhtml 25 | erb -T 2 -r ../include/weblib.rb syllabus.srhtml > syllabus.html 26 | 27 | readinglist.html: readinglist.srhtml 28 | erb -T 2 -r ../include/weblib.rb readinglist.srhtml > readinglist.html 29 | 30 | clean: 31 | rm -f $(SRCS) syllabus.srhtml 32 | 33 | SUFFIXES: .html .srhtml 34 | 35 | .srhtml.html: ${RDEPS} 36 | erb -T 2 $< > $@ 37 | 38 | --------------------------------------------------------------------------------
LectureDateTopicsNotes/ResourcesPreparation