COS$461:$Computer$Networks$Spring$2009$(MW$1:30‐2:50$in$CS$105)$Mike$Freedman$Teaching$Assistants:$WyaI$Lloyd$and$Jeff$Terrace$hIp://www.cs.princeton.edu/courses/archive/spr09/cos461/$1Goals$for$Today’s$Class$• COS$461$overview$– Goals$of$the$course$– Structure$of$the$course$– Learning$the$material$– Programming$assignments$– Course$grading$– Academic$policies$• Key$concepts$in$data$networking$– Protocols$– Layering$– Resource$allocaWon$$– Naming$2What$You$Learn$in$This$Course$• Skill:$network$programming$– Socket$programming$– Designing$and$implemenWng$protocols$• Knowledge:$how$the$Internet$works$– IP$protocol$suite$– Internet$architecture$– ApplicaWons$(Web,$DNS,$P2P,$…)$• Insight:$key$concepts$in$networking$– Protocols$– Layering$– Resource$allocaWon$– Naming$3Structure$of$the$Course$(1st$Half)$• Start$at$the$top$– Sockets:$how$applicaWons$view$the$Internet$– Protocols:$essenWal$elements$of$a$protocol$• Then$study$the$“narrow$waist”$of$IP$– IP$best‐effort$packet‐delivery$service$– IP$addressing$and$packet$forwarding$• And$how$to$build$on$top$of$the$narrow$waist$– Transport$protocols$(TCP,$UDP)$– Domain$Name$System$(DNS)$– Glue$(ARP,$DHCP,$ICMP)$– End‐system$security$and$privacy$(NAT,$firewalls)$• Looking$underneath$IP$– Link$technologies$(Ethernet)$4Structure$of$the$Course$(2nd$Half)$• And$how$to$get$the$traffic$from$here$to$there$– Internet$rouWng$architecture$(the$“inter”$in$Internet)$– Intradomain$and$interdomain$rouWng$protocols$• Building$applicaWons$– DNS$and$HTTP$– Content‐distribuWon$networks$– Peer‐to‐peer$and$distributed$hash$tables$– P2P$ApplicaWons:$BitTorrent,$etc.$– MulWmedia$streaming$• Other$approaching$to$building$networks$– Delay$/disrupWon$tolerant$networks$– MulWcast,$anycast,$…$5Learning$the$Material:$People$• Lecture$(Prof.$Mike$Freedman)$– When:$MW$1:30‐2:50$in$Computer$Science$105$– Slides$available$online$at$course$Web$site$– Office$hours$(room$208)$by$appointment$– Email:$$mfreed+cos461$at$cs.princeton.edu$• Teaching$Assistants$$– WyaI$Lloyd$• Office$hours:$Mon$3‐4pm,$Tue$4‐5pm$(CS$003)$• E‐mail:$wlloyd+cos461$at$cs.princeton.edu$$– Jeff$Terrace$• Office$hours:$Wed$3‐4pm,$Thu$1‐2pm$(CS$001B)$• E‐mail:$jterrace+cos461$at$cs.princeton.edu$• Main$email:$$cos461‐staff$at$lists.cs.princeton.edu$6Learning$the$Material:$Mailing$List$• Mailing$list$– If$you’re$enrolled,$you$should$be$on$it$– E‐mail:$cos461$at$lists.cs.princeton.edu$– Sign$up:$$hIps://lists.cs.princeton.edu/mailman/lisWnfo/cos461$• Read$oien$– Good$place$to$ask$quesWons$– But$do$not$post$your$code$$• Reply,$too$– Good$place$to$answer$quesWons$(parWcipaWon!)$7Learning$the$Material:$Books$• Required$textbook$– Computer-Networks:-A-Systems-Approach-(4th-edi:on),$by$Peterson$and$Davie$[Okay$to$use$the$3rd$ediWon]$– Mostly$covers$the$material$in$the$first$half$of$the$class$• Books$on$reserve$– Networking$text$books$• Computer-Networking:-A-Top‐Down-Approach-Featuring-the-Internet-(3rd-edi:on),$by$Kurose$and$Ross$$• Computer-Networks-(4th-edi:on),$by$Tanenbaum$– Network$programming$references$• TCP/IP-Illustrated,-Volume-1:-The-Protocols,$by$Stevens$• Unix-Network-Programming,-Volume-1:-The-Sockets-Networking-API-(3rd-Edi:on),$by$Stevens,$Fenner,$&$Rudolf$• Online$resources$– E.g.$on$socket$programming$8Grading$and$Schedule$• Assignments$(10%$each)$– 95%$3$hours,$75%$two$day$late,$50%$two$days$late$– One$free$late$day$during$semester$• Two$exams$(40%$total)$– Midterm$exam$in$week$six$(20%)$– Final$exam$during$exam$period$(20%)$• Class$parWcipaWon$(10%)$– In$lecture$– On$the$listserv$9Programming$Assignments$• Five$assignments$(with$target$due$dates)$– IntroducWon$to$sockets$(Sun$Feb$15)$– HTTP$proxy$(Sun$Mar$8)$– IP$router$(Sun$Apr$12)$– Firewall$(Sun$Apr$26)$– Reliable$transport$(Tue$May$12)$–$no$late$accepted$• Last$three:$Stanford$Virtual$Network$System$– Constructs$virtual$network$topologies$that$integrate$directly$into$physical$networks$– Traffic$forwarded$to$your$program,$running$in$user$space$– hIp://yuba.stanford.edu/vns/$10FaciliWes$for$Programming$• Computer$cluster$in$Friend$Center$010$– Friend$Center$010$computers$– Machines:$labpc‐XX.cs.princeton.edu$for$XX$of$01$to$30$– Why:$common$environment,$and$access$to$lab$TAs$• Accessing$your$account$– If$you$are$enrolled,$you$have$a$labpc$account$– Using$your$OIT$login$and$password$• Logging$in$to$the$machines$remotely$– SSH$to$portal.cs.princeton.edu,$and$then$to$FC$010$– Need$a$CS$account,$if$you$don’t$have$one$already$– hIps://csguide.cs.princeton.edu/requests/account$– Request$a$“class$account”$11FaciliWes$for$Programming$• Other$opWon:$your$own$PC$(not$recommended)$– Running$GNU$tools$on$Linux,$or$– Running$GNU$tools$on$Windows,$or$– Running$a$standard$C$development$environment$– Development$environment$not$supported$by$TAs$• Sug gesWon:$test$access$this$week$– Logging$in$to$the$FC$010$cluster$– WriWng$and$running$“Hello$World”$in$C$• Submiung$assignments$– Using$Blackboard$– More$details$coming$soon!$12Graduate$Students:$Two$Choices$• Pick$one$of$two$opWons$– Do$the$five$programming$assignments$– Or,$first$two$assignments,$plus$research$project$• Research$projects$– Networking‐related$research$problem$– Must$have$a$systems-programming$component$– Write‐up$of$project$due$on$Dean’s$Date$–
View Full Document