fall 2005csi 4118 – university of ottawa1 computer networks & protocols (csi 4118) fall 2005...

Post on 17-Jan-2016

228 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 1

Computer Networks & PROTOCOLS

(CSI 4118)

FALL 2005

Professor Robert L. Probert

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 2

Part I

Introduction

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 3

Topic and Scope

Computer networks and internets: an overview of concepts, terminology, and technologies that form the basis for digital communication in private corporate networks and the global Internet.

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 4

You Will Learn

Internets and Internetworking Motivation and concept Internet Protocol (IP) datagram format and addressing Internet routers and routing Address binding (ARP) Internet control messages (ICMP) User Datagram Protocol (UDP) Transmission Control Protocol (TCP) Protocol ports and demultiplexing

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 5

You Will Learn (continued)

Some network applications! Client-server paradigm Domain name system (DNS) File transfer (FTP) Remote login (TELNET) Email transfer (SMTP) Web technologies and protocols

HTTP, PHP, CGI, Java Security Voice over IP, …

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 6

Background Required

Ability to program in Java, ability to read C code Knowledge of low-level programming constructs

Pointers Bit fields in structures

Familiarity with basic tools Text editor Compiler / linker / loader

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 7

Background Required (continued)

Basic knowledge of operating systems Terminology Functionality Processes and concurrent processing

CSI 3103/3503

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 8

Motivation for Networking

Information access Interaction among cooperative application

programs Resource sharing

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 9

The Internet conceptthe illusion of a single network that TCP/IP software provides to users and applications

User’scomputers

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 10

The Internet conceptthe underlying physical structure in which a computer attaches to one physical network and routers interconnect the networks

Net 3

Net 1 Net 2

Net 5

Net 4

Net 1

router

Physical net

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 11

Figure 2.1

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 12

Figure 2.2

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 13

Figure 2.3

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 14

Figure 2.4

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 15

Figure 2.5

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 16

Figure 2.6

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 17

Practical Examples

Email File transfer / access Web browsing Remote login / execution

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 18

What is a Network?

Transmission hardware (media) [Ch. 4] Special-purpose hardware devices [Ch. 9, 10]

Interconnect transmission media Control transmission Run protocol software

Protocol software [Ch. 16 and following] Encodes and formats data Detects and corrects problems

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 19

What does a Network Do?

Provides communication that is Reliable Fair Efficient [15.14] From one application to another

(allows arbitrary applications to communicate via Network (Distributed) Programming)

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 20

What Does a Network Do?

Reliable Fair Efficient

Delay Throughput

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 21

Delay and Throughput Delay

Propagation Delay Switching Delay Access Delay Queuing Delay

Throughput Rate of Data Transmission How many bits can enter (or leave) network in fixed unit of time Effective Throughput Capacity Congestion Degree of Utilization

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 22

What Does a Network Do? (continued)

Automatically detects and corrects Data corruption e,g., CRC [7.9, 7.10] Data loss Duplication Out-of-order delivery e.g., sequencing [16.10]

Automatically finds optimal path from source to destination, routing [Ch. 13]

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 23

Network (Distributed) Programming [Ch. 3]

Network allows arbitrary applications to communicate

Programmer does not need to understand network technologies

Network facilities are accessed through an Application Program Interface

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 24

Basic Paradigm for Pairwise Internet Communication

Establish contact Exchange data (bi-directional) Terminate contact

Note: NO data processing by the network

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 25

Establishing Contact

Performed by pair of applications One application waits for contact (called

server) Other application initiates contact (called

client)

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 26

Identifying a Waiting Application

Conceptually two items specified Computer Application on that computer

Terminology Computer identified by domain name Application identified by program name

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 27

Representations and Translations

Humans use names such as computer: www.netbook.cs.purdue.edu application: ftp

Network protocols require binary values Library routines exist to translate from names

to numbers

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 28

Example API

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 29

Simplified API

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 30

Simplified API (Cont’d)

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 31

Simplified API (Cont’d)

The Await_Contact Function

connection await_contact(appnum a)

The argument specifies a number that identifies the server application

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 32

Simplified API (Cont’d)

The Make_Contact Function

connection make_contact(computer c, appnum a)

The client uses the return value, which is of type connection, to transfer data

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 33

Simplified API (Cont’d)

The appname_to_appnum Function

appnum appname_to appnum(char *a)

Clients and servers both use appname_to_appnum to translate from a human-readable name for a service to an internal binary value

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 34

Simplified API (Cont’d)

The Cname_to_comp Function

computer cname_to_comp(char *c)

Clients call cname_to_comp convert from a human-readable computer name to the internal binary value

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 35

Simplified API (Cont’d)

The Send Function

int send (connection con, char *buffer, int length, int flags)

Both clients and servers use send to transfer data across the network

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 36

Simplified API (Cont’d)

The Recv And Recvln Function

int recv (connection con, char *buffer, int length, int flags)

Both clients and servers use recv to access data that arrives across the network

int recvln (connection con, char *buffer, int length)

Recvln repeatedly calls recv until an entire line of test has been received

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 37

Simplified API (Cont’d)

The Send_eof Function

int send_eof (connection con)

Both the client and server must use send_eof after sending data to inform the other side that no further transmission will occur

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 38

Simplified API (Cont’d)

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 39

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 40

Example #1: Echo

Useful for network testing Server returns exact copy of data sent User on computer X runs

echoserver 22000 User on another computer runs

echoclient X 22000

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 41

Example Code Using API: Echoserver

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 42

Echoserver (2 of 2)

Actually works on the Internet API calls replace conventional I/O No networking knowledge required

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 43

Example #2: Chat

Miniature version of Internet chat service Allows two users to communicate User on computer X runs

chatserver 25000 User on another computer runs

chatclient X 25000

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 44

Example Application: Web Server

User on computer X runs

webserver 27000 User on another computer runs browser and

enters URL:

http://X:27000/index.html

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 45

Example Code Using API: Webserver

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 46

Webserver (2 of 6)

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 47

Webserver (3 of 6)

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 48

Webserver (4 of 6)

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 49

Webserver (5 of 6)

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 50

Webserver (6 of 6)

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 51

Network Programming in Java

The java.net package provides two classes--Socket and ServerSocket--that implement the client side of the connection and the server side of the connection, respectively.

java.io package also has to be used together with socket API.

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 52

Example API in Java (v1.3+)

Method Class Meaning Socket (String host, int port) java.net.Socket Used by client to create a socket

to connect to the specified server host and port

ServerSocket (int port) java.net.ServerSocket Used by server to create a socket on a specified port

accept java.net.ServerSocket Used by server to accept connection from client

println java.io.PrintWriter java.io.PrintStream

Used by either client or server to send data

readLine java.io.BufferedReader Used by either client or server to receive data

close java.net.Socket

Used by client to close this socket

close java.net.ServerSocket Used by server to close this socket

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 53

The steps for programming in Java:

1. Open a socket. 2. Open an input stream and output stream to the

socket. 3. Read from and write to the stream according to

the server's protocol. 4. Close the streams. 5. Close the socket.

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 54

Example Code Using Java API:(1) EchoServer.javaimport java.io.*;import java.net.*;public class EchoServer {    public static void main(String args[]) { // declare a server socket and a client socket for the server ServerSocket echoServer = null;

String line; BufferedReader br; PrintStream os; Socket clientSocket = null;

// open a server socket on a specfic port. args[0] is the port

number try {

echoServer = new ServerSocket(Integer.parseInt(args[0]));

} catch (IOException e) { }

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 55

try { // open a socket to listen and accept connections from

client

clientSocket = echoServer.accept();

br = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

os = new PrintStream(clientSocket.getOutputStream());

// once receiving data from client, echo it back to the client.

while (true) {

line = br.readLine();

os.println(line);

} } catch (IOException e) { }

}//EchoServer.java

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 56

(2) EchoClient.javaimport java.io.*;import java.net.*;

public class EchoClient {

public static void main(String[] args) throws IOException { Socket echoSocket = null; PrintWriter out = null; BufferedReader in = null;

//open a socket to a specified host and port.

try { // args[0] is host address, args[1] is port number

echoSocket = new Socket(args[0], Integer.parseInt(args[1]));

out = new PrintWriter(echoSocket.getOutputStream(), true);

in = new BufferedReader(new InputStreamReader( echoSocket.getInputStream()));

} catch (Exception e) {}

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 57

BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));

String userInput;

//send user's input to server, and retrieve what the server sends back. while ((userInput = stdIn.readLine()) != null) {

out.println(userInput);System.out.println("echo: " + in.readLine());

}

//close everything gracefully out.close(); in.close(); stdIn.close(); echoSocket.close(); } }//EchoClient.java

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 58

(3) Test Run 1. Compile EchoServer.java and EchoClient.java.

2. Start server program: java EchoServer localhost 4118

3. Start client program: java EchoClient 4118 Then type in something at prompt to see what

will happen.

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 59

Summary

Studying networks is important because The world is interconnected Applications now operate in a distributed

environment This course

Covers networking and internetworking Explains the mystery of applications Will be hard work

FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 60

Summary (continued)

Computer Internetworks Deliver data from source to destination Automatically find optimal paths Handle problems that occur

We will review how

top related