Application Layer and Socket Programming

Application Layer and Socket Programming

Hakim Weatherspoon

Associate Professor, Dept of Computer Science CS 5413: High Performance Systems and Networking

February 3, 2017

Slides used and adapted judiciously from Computer Networking, A Top-Down Approach

Administrivia

? Project Teams: due by Monday ? Lab1 due today

? Next week ? Lab2 done in class next Friday (Feb 10) ? HW1: Single threaded TCP proxy handed out next week

? Done in groups

? Project Teams due Monday (Feb 6), Project Ideas due following Monday (Feb 13)

? Review chapter 3 from the book, Transport Layer

? We will also briefly discuss data center topologies

? Check website for updated schedule

Big Picture

How do we understand and optimize the (datacenter) systems and network at scale?

Internet

...

...

...

...

...

... ... ... ...

Goals for Today

? Application Layer

? Example network applications ? conceptual, implementation aspects of network application

protocols ? client-server paradigm ? transport-layer service models

? Socket Programming

? Client-Server Example

? Backup Slides

? Web Caching ? DNS (Domain Name System)

Some network apps

? e-mail ? web ? text messaging ? remote login ? P2P file sharing ? multi-user network games ? streaming stored video

(YouTube, Hulu, Netflix)

? voice over IP (e.g., Skype) ? real-time video

conferencing ? social networking ? search ?... ?...

Creating a network app

write programs that:

application transport network data link physical

? run on (different) end systems

? communicate over network

? e.g., web server software

communicates with browser

software

no need to write software for network-core devices

? network-core devices do not run user applications

? applications on end systems allows for rapid app development, propagation

application transport network data link physical

application transport network data link physical

Client-Server Architecture

client/server

server:

? always-on host ? permanent IP address ? data centers for scaling

clients:

? communicate with server ? may be intermittently

connected ? may have dynamic IP addresses ? do not communicate directly

with each other

Network Applications

Communicating Processes

process: program running within a host

? within same host, two processes communicate using inter-process communication (defined by OS)

? processes in different hosts communicate by exchanging messages

clients, servers client process: process

that initiates communication

server process: process

that waits to be contacted

aside: applications with P2P architectures have client processes & server processes

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download