Sixth edition: what’s new? Chapter 1: access nets ISP ecosystem packet switching vs. circuit...

16

Transcript of Sixth edition: what’s new? Chapter 1: access nets ISP ecosystem packet switching vs. circuit...

Page 1: Sixth edition: what’s new? Chapter 1:  access nets  ISP ecosystem  packet switching vs. circuit switching Chapter 2:  socket programming with Python.
Page 2: Sixth edition: what’s new? Chapter 1:  access nets  ISP ecosystem  packet switching vs. circuit switching Chapter 2:  socket programming with Python.

Sixth edition: what’s new?Chapter 1: access nets ISP ecosystem packet switching

vs. circuit switchingChapter 2: socket

programming with Python

Chapter 3: TCP splitting rdt streamliningChapter 4: router architectures BGP sidebars

Chapter 5: reorganized,

streamlined DOCSIS cable

network case study data center

networkingChapter 6: cellular and 4GChapter 7: adaptive streaming

video CDNs, Google Netflix, YouTube,

Kankan

Page 3: Sixth edition: what’s new? Chapter 1:  access nets  ISP ecosystem  packet switching vs. circuit switching Chapter 2:  socket programming with Python.

Supplementary materialsHomework problems: many new and revised improved solution

manualPowerpoint 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

Wireshark labs: revised and

improvedJava applets: some improvementsInteractive HW

problems: totally new!

gaia.cs.umass.edu/kurose/test

Video notes: totally new

Page 4: Sixth edition: what’s new? Chapter 1:  access nets  ISP ecosystem  packet switching vs. circuit switching Chapter 2:  socket programming with Python.

Socket programming: Java vs Python

Python and Java explicitly expose socketsPython: no streams less house keeping code much shorter much easier to explain to

programming novicesPython: access to raw sockets ICMP pinger

Page 5: Sixth edition: what’s new? Chapter 1:  access nets  ISP ecosystem  packet switching vs. circuit switching Chapter 2:  socket programming with Python.

Python UDP client

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()

include socket library

create UDP socket

get user input

send user input to server thru UDP socket

print out received string and close socket

read reply from socket

Page 6: Sixth edition: what’s new? Chapter 1:  access nets  ISP ecosystem  packet switching vs. circuit switching Chapter 2:  socket programming with Python.

outT

oSer

ver

to network from network

inFr

omS

erve

r

inFr

omU

ser

keyboard monitor

Process

clientSocket

inputstream

inputstream

outputstream

TCPsocket

Client

process

client TCP socket

Java stream jargon

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.

Page 7: Sixth edition: what’s new? Chapter 1:  access nets  ISP ecosystem  packet switching vs. circuit switching Chapter 2:  socket programming with Python.

Java UDP client: first half

import java.io.*; import java.net.*; class UDPClient { public static void main(String args[]) throws Exception { BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); DatagramSocket clientSocket = new DatagramSocket(); InetAddress IPAddress = InetAddress.getByName("hostname"); byte[] sendData = new byte[1024]; byte[] receiveData = new byte[1024]; String sentence = inFromUser.readLine();

sendData = sentence.getBytes();

Need to talkabout streams

Need to createplace holders

Need to talkAbout OOP

Need to dotype conversion

Page 8: Sixth edition: what’s new? Chapter 1:  access nets  ISP ecosystem  packet switching vs. circuit switching Chapter 2:  socket programming with Python.

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

Java UDP client: second half

Page 9: Sixth edition: what’s new? Chapter 1:  access nets  ISP ecosystem  packet switching vs. circuit switching Chapter 2:  socket programming with Python.

Network Layer 4-9

4.1 introduction4.2 virtual circuit and datagram networks4.3 what’s inside a router4.4 IP: Internet Protocol4.5 routing algorithms

link state, DV, hierarchical4.6 routing in the Internet

RIP, OSPF, BGP4.7 broadcast and multicast routing

Chapter 4: changes

high-seed switching

fabric

routing processor

router input ports router output ports

forwarding tables computed,

pushed to input ports

“match plus action”

Page 10: Sixth edition: what’s new? Chapter 1:  access nets  ISP ecosystem  packet switching vs. circuit switching Chapter 2:  socket programming with Python.

Link Layer 5-10

Chapter 5: changes5.1 introduction,

services5.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

Load balancer

B

1 2 3 4 5 6 7 8

AC

Border router

Access router

Internet

Page 11: Sixth edition: what’s new? Chapter 1:  access nets  ISP ecosystem  packet switching vs. circuit switching Chapter 2:  socket programming with Python.

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, Kankan7.3& 7.4 VoIP Skype expanded7.5 Network support Streamlined

Page 12: Sixth edition: what’s new? Chapter 1:  access nets  ISP ecosystem  packet switching vs. circuit switching Chapter 2:  socket programming with Python.

Netflix case study

CDNs

Amazon Cloud: movieingestion, version creation,CDN upload, manifest filedistribution, and Web pages

Netflix registrationand payment servers

Manifestfile

Video chunks(DASH)

Registrationand payment

Upload versions to CDNs

Client

Page 13: Sixth edition: what’s new? Chapter 1:  access nets  ISP ecosystem  packet switching vs. circuit switching Chapter 2:  socket programming with Python.

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

Interactive end-of-chapter exercises

Page 14: Sixth edition: what’s new? Chapter 1:  access nets  ISP ecosystem  packet switching vs. circuit switching Chapter 2:  socket programming with Python.

Interactive end-of-chapter exercises

Page 15: Sixth edition: what’s new? Chapter 1:  access nets  ISP ecosystem  packet switching vs. circuit switching Chapter 2:  socket programming with Python.

Interactive end-of-chapter exercises

Page 16: Sixth edition: what’s new? Chapter 1:  access nets  ISP ecosystem  packet switching vs. circuit switching Chapter 2:  socket programming with Python.

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