CSCE 515: Computer Network Programming - PowerPoint PPT Presentation

About This Presentation
Title:

CSCE 515: Computer Network Programming

Description:

Understand the basic principles of computer networks. Network basic ... Java Network Programming, by Merlin Hughes, Michael Shoffner, Derek Hamner, ... – PowerPoint PPT presentation

Number of Views:279
Avg rating:3.0/5.0
Slides: 38
Provided by: vero249
Learn more at: https://www.cse.sc.edu
Category:

less

Transcript and Presenter's Notes

Title: CSCE 515: Computer Network Programming


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

2
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

3
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 wyxu_at_cse.sc.edu
  • Office Hours MW 400pm-500pm or by appointment
  • Office SWGN 3A54
  • Prerequisites CSCE 311 Operating Systems

4
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
  • CSCE515-001_at_lists.cse.sc.edu

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

6
Grading
  • 0 Homework (1-2)
  • QA
  • 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 lt 59

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

8
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!

9
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 programs design
  • Documentations must not contain
  • Your code in words
  • After spending the whole weekend and today at my
    girlfriends 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.

10
Grading
  • Horner code
  • All submitted work should be yours!  
  • NO sharing of code
  • Do not copy code from Internet
  • Discussion is encouraged

11
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 dont 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.

12
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!

13
Lectures need your help!
  • Ask questions
  • Correct Wenyuan! Extra credit!
  • Make suggestions!
  • Read something interesting and relevant to this
    course? Announce it in class!

14
Introduction
15
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.

16
Why network?
  • Sharing resources
  • Resources become available regardless of the
    users 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

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

18
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

19
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

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

21
Some terms
  • LAN
  • WAN
  • MAN

22
LAN - Local Area Network
  • connects computers that are physically close
    together ( lt 1 mile).
  • high speed
  • multi-access
  • Technologies
  • Ethernet 10 Mbps, 100Mbps
  • Token Ring 16 Mbps
  • FDDI 100 Mbps

23
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

24
MAN - Metropolitan Area Network
  • Larger than a LAN and smaller than a WAN
  • - example campus-wide network
  • - multi-access network
  • Technologies
  • coaxial cable
  • microwave

25
Network Protocols
26
Whats a protocol?
  • a human protocol and a computer network protocol

TCP connection req.
Hi
Hi
protocols define format, order of msgs sent and
received among network entities, and actions
taken on msg transmission, receipt
27
Organization of air travel
Although this course is about network programming
(and not about networking in general), an
understanding of a complete network model is
essential.
28
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

29
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
arriving airport
Departing airport
intermediate air traffic sites
30
Protocol Stack ISO OSI Model
Header encapsulation and stripping
Data
TH
NH
TH
ISO the International Standards
Organization OSI Open Systems Interconnection
Reference Model (1984)
31
Communicating between End Hosts
interface
32
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

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

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

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

36
Sample questions
  • Difference?
  • Subnet, a network, WAN
  • Protocols vs. interface

37
Assignment Next time
  • Reading
  • How NOT to go about a programming assignment
  • TI Ch.1
  • Next Lecture
  • OSI model
  • Data link layer
Write a Comment
User Comments (0)
About PowerShow.com