CSCE 515: Computer Network Programming

Download Report

Transcript CSCE 515: Computer Network Programming

CSCE 515:
Computer Network
Programming
Wenyuan Xu
Department of Computer Science and Engineering
University of South Carolina
Course Goal:

Understand the basic principles of computer networks





Study the programming aspects of computer networks



Network basic
Basic design principles in network protocols
Internet protocols
Wireless network protocols
Socket programming
Inter-process communication
Understand how network research is done


How to determine what is important
What are the trend
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
 Office: SWGN 3A54

or by appointment
Prerequisites: CSCE 311 Operating Systems
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
by 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]
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

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
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.
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
name than you!
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,
screenshots
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
house 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”.
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
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.
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!
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!
CSCE515 – Computer Network Programming – 2008 Fall
Introduction
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”




Interconnection may be any medium capable of communicating information:





PCs, workstations
dedicated computers
network components
Copper wire
Lasers (optical fiber)
Radio /Satellite link
Cable (coax)
Example: Ethernet.
CSCE515 – Computer Network Programming – 2008 Fall
Why network?

Sharing resources


Load Sharing/utilization



Jobs processed on least crowed machine
Resource can be shared
High reliability


Resources become available regardless of the user’s physical
location (server based, peer2peer)
Alternative source of supply (multiple copies)
Computer as a communication tools
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:
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)
 data
CSCE515 – Computer Network Programming – 2008 Fall
What is Internet?

What is internet?


Network of networks
What is the Internet?


local ISP
A global internet based on IP protocol
regional ISP
Internet applications:








Email
File transfer
Newsgroup
File sharing
Resource distribution
World wide web
Video conference
Gaming
company
network
CSCE515 – Computer Network Programming – 2008 Fall
Emerging networks

Embedded networks

Every physical object is connected




Sensor networks
Physical space is instrumented and connected




Open/close your garage via network
Know which milk can is about to expire
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
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

CSCE515 – Computer Network Programming – 2008 Fall
Some terms
LAN
 WAN
 MAN

CSCE515 – Computer Network Programming – 2008 Fall
LAN - Local Area Network

connects computers that are physically
close together ( < 1 mile).
 high
speed
 multi-access

Technologies:
 Ethernet
10 Mbps, 100Mbps
 Token Ring 16 Mbps
 FDDI
100 Mbps
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
lines
 Satellite communications
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
CSCE515 – Computer Network Programming – 2008 Fall
Network Protocols
What’s a protocol?

a human protocol and a
computer network protocol:
Hi
TCP connection
req.
Hi
TCP connection
reply.
Got the
time?
Get http://gaia.cs.umass.edu/index.htm
<file>
2:00
time
protocols define format, order of msgs sent and received among
network entities, and actions taken on msg transmission, receipt
CSCE515 – Computer Network Programming – 2008 Fall
Organization of air travel
ticket (purchase)
ticket (complain)
baggage (check)
baggage (claim)
gates (load)
gates (unload)
runway takeoff
runway landing
airplane routing
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.
CSCE515 – Computer Network Programming – 2008 Fall
Organization of air travel: a different view
ticket (purchase)
ticket (complain)
baggage (check)
baggage (claim)
gates (load)
gates (unload)
runway takeoff
runway landing
airplane routing
airplane routing
airplane routing
Layers: each layer implements a service
 via its own internal-layer actions
 relying on services provided by layer below
CSCE515 – Computer Network Programming – 2008 Fall
ticket (purchase)
ticket (complain)
baggage (check)
baggage (claim)
gates (load)
gates (unload)
runway takeoff
runway landing
airplane routing
airplane routing
intermediate air traffic sites
airplane routing
airplane routing
airplane routing
CSCE515 – Computer Network Programming – 2008 Fall
arriving airport
Departing airport
Distributed implementation of layer functionality
Protocol Stack: ISO OSI Model
Data
Application
Presentation
Session
Transport
AH
Header
encapsulation
and stripping
Data
PH AH
Data
SH PH AH
Data
TH SH PH AH
Data
Network
NH TH SH PH AH
Data link
DH NH TH SH PH AH
Physical
Data
Data
DH DH NH TH SH PH AH
DT
Data
DT
ISO: the International Standards Organization
OSI: Open Systems Interconnection Reference Model (1984)
CSCE515 – Computer Network Programming – 2008 Fall
Communicating between End Hosts
Host
Application
Presentation
Session
Transport
Host
Application Protocol
Presentation Protocol
Session Protocol
Transport Protocol
Application
Presentation
Session
Transport
Network
Network
Network
Data link
Data link
Data link
Physical
Physical
Physical
Router
CSCE515 – Computer Network Programming – 2008 Fall
interface
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


Each layer builds on services provided by lower layers


Thus each layer is like a module and can be developed independently
Thus no need to worry about details of lower layers -- transparent to this
layer
Major Advantages:


Code Reuse
Eases maintenance, updating of system
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.
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.
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.
CSCE515 – Computer Network Programming – 2008 Fall
Sample questions:

Difference?
 Subnet,
a network, WAN
 Protocols vs. interface
CSCE515 – Computer Network Programming – 2008 Fall
Assignment & Next time

Reading:
 How
NOT to go about a programming
assignment
 TI Ch.1

Next Lecture:
 OSI
model
 Data link layer
CSCE515 – Computer Network Programming – 2008 Fall