37
CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

  • View
    224

  • Download
    2

Embed Size (px)

Citation preview

Page 1: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE 515:Computer Network ProgrammingWenyuan Xu

Department of Computer Science and EngineeringUniversity of South Carolina

Page 2: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Course Goal: Understand the basic principles of computer networks

Network basic Basic design principles in network protocols Internet protocols Wireless network protocols

Study the programming aspects of computer networks Socket programming Inter-process communication

 Understand how network research is done How to determine what is important What are the trend

Page 3: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Administrative Course website:

http://www.cse.sc.edu/~wyxu/515Fall08/csce515.html Announcements Homework Assignments Lecture Notes Links to required/recommended readings

How to reach me: Email: [email protected] Office Hours: MW 4:00pm-5:00pm or by appointment Office: SWGN 3A54

Prerequisites: CSCE 311 Operating Systems

Page 4: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Textbook Required:

Unix Network Programming, The Sockets Networking API, Volumes 1, by W Richard Stevens, Bill Fenner, Andrew M. Rudoff, published by Addison-Wesley (UNP)

Optional: TCP/IP Illustrated Volumes 1, by W. Richard Stevens, published b

y Addison-Wesley, 1994 (TI).

Java Network Programming, by Merlin Hughes, Michael Shoffner, Derek Hamner, Maria Winslow, Conrad Hughes, published Manning Publications

Mailing list: [email protected]

Page 5: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Tentative topics OSI and TCP/IP Network models TCP/IP Socket programming The Internet and Internet protocol Web programming Other network programming

Page 6: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Grading 0% Homework (1-2)

Q&A

50% Computer Projects (4 – three in C, one in Java)

20% Midterm

30% Final: closed book, and comprehensive.

Grading scale: A : 90 — 100 B+ : 87 — 89 B : 80 — 86 C+ : 77 — 79 C : 70 — 76 D : 60 — 69 F <= 59

Page 7: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Homework & projects Programming Environments

Unix workstation lab.: 1D39 (Sun + Linux) 1D45 (Linux)

All students should have an account on Computer Science and Engineering Department Unix workstations

All grading will be done on CSE Linux!

Submission should be via Drop Box Make sure you understand how to submit (practice first)!

Directions for submission will be posted on the course home page with the first assignment.

Page 8: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Project grading It is expected that everyone is a good programmer Comment your code! Your code should be readable, structured! 25% of the grade depends on the quality of the code.

Is the code easy to understand? Is it easy to make a small change of the functionality? Can code handle unexpected input, exceptions?

Programs must come with a makefile

Java programs must come with a shell script that starts them: Sets CLASSPATH to the right value Remember that I will try your programs in a directory with a different nam

e than you!

Page 9: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Project grading 25% of the grade depends on documentation Documentations must contain:

Your name and student number How to use your programs Which program does what, which parameters are needed, screen

shots A description of your program’s design

Documentations must not contain: Your code in words “After spending the whole weekend and today at my girlfriend’s ho

use trying to solve the exercises for the Network Programming course which are due today, I must confess that I did not succeed in solving them all”.

Page 10: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Grading Horner code:

All submitted work should be yours!  

NO sharing of code

Do not copy code from Internet

Discussion is encouraged

Page 11: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Email Policies Make sure you put your course (CSCE515)  in the subject of the

message.

Remember that it is not my emergency if you need help at the

last minute. I may check my messages in time to help you make a deadline, but this may not necessarily be the case.

Ask specific question instead of general question. Bad example: “I don’t know why it does not work?” In general, I will answer quick questions sooner than one that will take a

long time to answer

In general I will monitor and respond to email during office hours, but in-person students will take precedence.

Page 12: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Your Best Strategy Come to every lecture

Read articles related to network protocols and network programming

Do not wait till last minute to prepare for exam or work on project

Enjoy the fun!

Page 13: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Lectures need your help! Ask questions

Correct Wenyuan! *Extra credit!

Make suggestions!

Read something interesting and relevant to this course? Announce it in class!

Page 14: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

Introduction

Page 15: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

What is network? The term network can refer to any interconnected group or system.

A computer network is composed of multiple computers connected together using a telecommunication system.

“…communication system for connecting end-systems”

End-systems a.k.a. “hosts” PCs, workstations dedicated computers network components

Interconnection may be any medium capable of communicating information: Copper wire Lasers (optical fiber) Radio /Satellite link Cable (coax)

Example: Ethernet.

Page 16: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Why network? Sharing resources

Resources become available regardless of the user’s physical location (server based, peer2peer)

Load Sharing/utilization Jobs processed on least crowed machine Resource can be shared

High reliability Alternative source of supply (multiple copies)

Computer as a communication tools

Page 17: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Wide variety of types of networks Circuit switched

dedicated circuit per call performance (guaranteed) call setup required telephone system

Packet switched: data sent thru net in discrete “chunks” user A, B packets share network resources resources used as needed store and forward: packets move one hop at a time The Internet (TCP/IP)

Page 18: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

What is Internet? What is internet?

Network of networks What is the Internet?

A global internet based on IP protocol Internet applications:

Email File transfer Newsgroup File sharing Resource distribution World wide web Video conference Gaming

local ISP

regional ISP

companynetwork

Page 19: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Emerging networks Embedded networks

Every physical object is connected Open/close your garage via network Know which milk can is about to expire

Sensor networks Physical space is instrumented and connected

Detect presence of people in a room and set temperature accordingly

Know exactly how many cars on Route 26

Disposable networks One time use network

Disaster recovery, smart dust

Page 20: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Characteristics Lots of them (density) Cheap unreliable elements Run on batteries Location becomes a key attribute Information sensing around users

Page 21: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Some terms LAN WAN MAN

Page 22: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

LAN - Local Area Network connects computers that are physically

close together ( < 1 mile).high speedmulti-access

Technologies:Ethernet 10 Mbps, 100MbpsToken Ring16 MbpsFDDI 100 Mbps

Page 23: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

WAN - Wide Area Network connects computers that are physically far

apart. “long-haul network”. typically slower than a LAN. typically less reliable than a LAN.point-to-point

Technologies: telephone linesSatellite communications

Page 24: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

MAN - Metropolitan Area Network Larger than a LAN and smaller than a WAN

- example: campus-wide network

- multi-access network Technologies:

coaxial cable microwave

Page 25: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

Network Protocols

Page 26: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

What’s a protocol? a human protocol and a

computer network protocol:

Hi

Hi

Got thetime?

2:00

TCP connection req.

TCP connectionreply.

Get http://gaia.cs.umass.edu/index.htm

<file>

timeprotocols define format, order of msgs sent and received among ne

twork entities, and actions taken on msg transmission, receipt

Page 27: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Organization of air travelticket (purchase)

baggage (check)

gates (load)

runway takeoff

airplane routing

ticket (complain)

baggage (claim)

gates (unload)

runway landing

airplane routing

airplane routing

Although this course is about network programming

(and not about networking in general), an understanding

of a complete network model is essential.

Page 28: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Organization of air travel: a different view

Layers: each layer implements a service via its own internal-layer actions relying on services provided by layer below

ticket (purchase)

baggage (check)

gates (load)

runway takeoff

airplane routing

ticket (complain)

baggage (claim)

gates (unload)

runway landing

airplane routing

airplane routing

Page 29: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Distributed implementation of layer functionality

ticket (purchase)

baggage (check)

gates (load)

runway takeoff

airplane routing

ticket (complain)

baggage (claim)

gates (unload)

runway landing

airplane routing

airplane routing

Dep

art

ing

air

port

arr

ivin

g

air

port

intermediate air traffic sites

airplane routing airplane routing

Page 30: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Protocol Stack: ISO OSI Model

Application

Presentation

Session

Transport

Network

Data link

Physical

ISO: the International Standards OrganizationOSI: Open Systems Interconnection Reference Model (1984)

Header encapsulation and stripping

Data

DataAHPH

TH

NH

SH DataAHPH

SH DataAHPH

TH SH DataAHPH

DH DTNH TH SH DataAHPH

DH DH DTNH TH SH DataAHPH

DataAH

Page 31: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Communicating between End Hosts

Application

Presentation

Session

Transport

Network

Data link

Physical

Application

Presentation

Session

Transport

Network

Data link

Physical

Network

Data link

Physical

Host Host

Router

Application Protocol

Presentation Protocol

Session Protocol

Transport Protocol

interface

Page 32: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Why layering? Divide a task into pieces and then solve each piece independently (or

nearly so).

Establishing a well defined interface between layers makes porting easier.

Functions of each layer are independent of functions of other layers Thus each layer is like a module and can be developed independently

Each layer builds on services provided by lower layers Thus no need to worry about details of lower layers -- transparent to this

layer

Major Advantages: Code Reuse Eases maintenance, updating of system

Page 33: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Programs & Processes A program is an executable file.

A process or task is an instance of a program that is being executed.

A single program can generate multiple processes.

Page 34: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Client - Server A server is a process - not a machine !

A server waits for a request from a client.

A client is a process that sends a request to an existing server and (usually) waits for a reply.

Page 35: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Client - Server Examples

Server returns the time-of-day.

Server returns a document.

Server prints a file for client.

Server does a disk read or write.

Server records a transaction.

Page 36: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Sample questions: Difference?

Subnet, a network, WANProtocols vs. interface

Page 37: CSCE 515: Computer Network Programming Wenyuan Xu Department of Computer Science and Engineering University of South Carolina

CSCE515 – Computer Network Programming – 2008 Fall

Assignment & Next time Reading:

How NOT to go about a programming assignment

TI Ch.1

Next Lecture:OSI modelData link layer