Download presentation
Presentation is loading. Please wait.
Published byNoah Powers Modified over 9 years ago
1
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Computer Networks & PROTOCOLS (CSI 4118) FALL 2005 Professor Robert L. Probert
2
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA2 Part I Introduction
3
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA3 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.
4
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA4 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
5
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA5 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, …
6
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA6 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
7
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA7 Background Required (continued) Basic knowledge of operating systems Terminology Functionality Processes and concurrent processing CSI 3103/3503
8
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA8 Motivation for Networking Information access Interaction among cooperative application programs Resource sharing
9
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA9 The Internet concept the illusion of a single network that TCP/IP software provides to users and applications User’s computers
10
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA10 The Internet concept the 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
11
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA11 Figure 2.1
12
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA12 Figure 2.2
13
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA13 Figure 2.3
14
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA14 Figure 2.4
15
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA15 Figure 2.5
16
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA16 Figure 2.6
17
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA17 Practical Examples Email File transfer / access Web browsing Remote login / execution
18
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA18 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
19
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA19 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)
20
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA20 What Does a Network Do? Reliable Fair Efficient Delay Throughput
21
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA21 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
22
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA22 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]
23
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA23 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
24
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA24 Basic Paradigm for Pairwise Internet Communication Establish contact Exchange data (bi-directional) Terminate contact Note: NO data processing by the network
25
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA25 Establishing Contact Performed by pair of applications One application waits for contact (called server) Other application initiates contact (called client)
26
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA26 Identifying a Waiting Application Conceptually two items specified Computer Application on that computer Terminology Computer identified by domain name Application identified by program name
27
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA27 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
28
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA28 Example API
29
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA29 Simplified API
30
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA30 Simplified API (Cont’d)
31
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA31 Simplified API (Cont’d) The Await_Contact Function connection await_contact(appnum a) The argument specifies a number that identifies the server application
32
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA32 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
33
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA33 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
34
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA34 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
35
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA35 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
36
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA36 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
37
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA37 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
38
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA38 Simplified API (Cont’d)
39
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA39
40
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA40 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
41
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA41 Example Code Using API: Echoserver
42
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA42 Echoserver (2 of 2) Actually works on the Internet API calls replace conventional I/O No networking knowledge required
43
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA43 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
44
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA44 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
45
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA45 Example Code Using API: Webserver
46
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA46 Webserver (2 of 6)
47
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA47 Webserver (3 of 6)
48
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA48 Webserver (4 of 6)
49
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA49 Webserver (5 of 6)
50
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA50 Webserver (6 of 6)
51
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA51 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.
52
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA52 Example API in Java (v1.3+)
53
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA53 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.
54
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA54 Example Code Using Java API: (1) EchoServer.java import 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) { }
55
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA55 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
56
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA56 (2) EchoClient.java import 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) {}
57
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA57 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
58
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA58 (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.
59
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA59 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
60
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA60 Summary (continued) Computer Internetworks Deliver data from source to destination Automatically find optimal paths Handle problems that occur We will review how
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.