160 likes | 173 Views
Chapter 1: access nets ISP ecosystem packet switching vs. circuit switching Chapter 2: socket programming with Python Chapter 3: TCP splitting rdt streamlining Chapter 4: router architectures BGP sidebars. Sixth edition: what’s new?. Chapter 5: reorganized, streamlined
E N D
Chapter 1: access nets ISP ecosystem packet switching vs. circuit switching Chapter 2: socket programming with Python Chapter 3: TCP splitting rdt streamlining Chapter 4: router architectures BGP sidebars Sixth edition: what’s new? Chapter 5: • reorganized, streamlined • DOCSIS cable network case study • data center networking Chapter 6: • cellular and 4G Chapter 7: • adaptive streaming video • CDNs, Google • Netflix, YouTube, Kankan
Homework problems: many new and revised improved solution manual Powerpoint slides: revised and extended gaia.cs.umass.edu/kurose-ross-ppt-6e Python socket labs: web server UDP pinger SMTP mail client multi-threaded web proxy ICMP pinger video streaming Supplementary materials Wireshark labs: • revised and improved Java applets: • some improvements Interactive HW problems: • totally new! • gaia.cs.umass.edu/kurose/test Video notes: • totally new
Python and Java explicitly expose sockets Python: no streams less house keeping code much shorter much easier to explain to programming novices Python: access to raw sockets ICMP pinger Socket programming: Java vs Python
Python UDP client include socket library from socket import * serverName = ‘hostname’ serverPort = 12000 clientSocket = socket(socket.AF_INET, socket.SOCK_DGRAM) message = raw_input(’Input lowercase sentence:’) clientSocket.sendto(message,(serverName, serverPort)) modifiedMessage, serverAddress = clientSocket.recvfrom(2048) print modifiedMessage clientSocket.close() create UDP socket get user input send user input to server thru UDP socket read reply from socket print out received string and close socket
A stream is a sequence of characters that flow into or out of a process. An input stream is attached to some input source for the process, e.g., keyboard or socket. An output stream is attached to an output source, e.g., monitor or socket. Java stream jargon Client process client TCP socket
Java UDP client: first half import java.io.*; import java.net.*; class UDPClient { public static void main(String args[]) throws Exception { BufferedReaderinFromUser = new BufferedReader(new InputStreamReader(System.in)); DatagramSocketclientSocket = new DatagramSocket(); InetAddressIPAddress = InetAddress.getByName("hostname"); byte[] sendData = new byte[1024]; byte[] receiveData = new byte[1024]; String sentence = inFromUser.readLine(); sendData = sentence.getBytes(); Need to talk About OOP Need to talk about streams Need to create place holders Need to dotype conversion
Java UDP client: second half DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876); clientSocket.send(sendPacket); DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); clientSocket.receive(receivePacket); String modifiedSentence = new String(receivePacket.getData()); System.out.println("FROM SERVER:" + modifiedSentence); clientSocket.close(); } } Place holder Additional lines
4.1 introduction 4.2 virtual circuit and datagram networks 4.3 what’s inside a router 4.4 IP: Internet Protocol 4.5 routing algorithms link state, DV, hierarchical 4.6 routing in the Internet RIP, OSPF, BGP 4.7 broadcast and multicast routing Chapter 4: changes forwarding tables computed, pushed to input ports routing processor high-seed switching fabric router output ports router input ports “match plus action” Network Layer
5.1 introduction, services 5.2 error detection, correction 5.3 multiple access protocols DOCSIS case study 5.4 LANs: addressing, ARP, Ethernet, switches, VLANS 5.5 link virtualization: MPLS 5.6 data center networking 5.7 a day in the life of a web request Chapter 5: changes Internet Border router Load balancer Access router B A C 7 6 5 4 8 3 2 1 Link Layer
Chapter 7: Multimedia Networking 7.1 Multimedia Apps • 7.1.1 Properties of video • 7.1.2 Properties of audio • 7.1.3 Types of apps • Streaming stored video • Conversational VoIP • Streaming live video 7.2 Streaming video • 7.2.1 UDP streaming • 7.2.2 HTTP streaming • Simple fluid analysis • 7.2.3 Adaptive streaming & DASH 7.2.4 CDNs • Enter deep; Bring home • DNS: intercept requests • Server selection strategies • Geographically closest, real-time measurements, IP anycast 7.2.5 Case Studies • Google, Netflix, YouTube, Kankan 7.3& 7.4 VoIP • Skype expanded 7.5 Network support • Streamlined
Netflix case study Netflix registrationand payment servers Amazon Cloud: movieingestion, version creation,CDN upload, manifest filedistribution, and Web pages Upload versions to CDNs CDNs Manifestfile Registrationand payment Video chunks(DASH) Client
Interactive end-of-chapter exercises • need: large set of problems/exercises that • students can solve (and obtain answers) • professors can generate (with solutions) for quizzes, tests • many important exercises lend have structure that allow many variations of exercise to be generated: • Quantitative comparison of packet switching and circuit wwitching • End-to-end delay • Internet checksum • TCP RTT and timeout • TCP congestion window evolution • Dijkstra's Link State algorithm • Link Layer (and network layer) addressing, forwarding • check out: http://gaia.cs.umass.edu/kurose/test
VideoNotes: selected pre-recorded on-line video/audio/ppt (e.g., Camtasia) segments: walkthrough, discussion of selected topics (e.g., BGP basics, a day day in the life of an HTTP request) walking through, solving sample problems demonstrations (e.g., traceroute, Wireshark) Video Notes