Download presentation
Presentation is loading. Please wait.
1
CSI 4118 – UNIVERSITY OF OTTAWA
Introduction Computer Networks & Protocols Dr. R.L. Probert, SITE, University of Ottawa FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
2
CSI 4118 – UNIVERSITY OF OTTAWA
Part I Introduction FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
3
CSI 4118 – UNIVERSITY OF OTTAWA
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 2003 CSI 4118 – UNIVERSITY OF OTTAWA
4
CSI 4118 – UNIVERSITY OF OTTAWA
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 2003 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) transfer (SMTP) Web technologies and protocols HTTP, CGI, Java Security Voice over IP, … FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
6
CSI 4118 – UNIVERSITY OF OTTAWA
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 2003 CSI 4118 – UNIVERSITY OF OTTAWA
7
Background Required (continued)
Basic knowledge of operating systems Terminology Functionality Processes and concurrent processing CSI 3103/3503 FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
8
Motivation for Networking
Information access Interaction among cooperative application programs Resource sharing FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
9
CSI 4118 – UNIVERSITY OF OTTAWA
The Internet Concept The illusion of a single network that TCP/IP software provides to users and applications User’s computers FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
10
CSI 4118 – UNIVERSITY OF OTTAWA
The Internet Concept The underlying physical structure in which a computer attaches to one physical network and routers interconnect the networks Net 2 Net 1 Net 1 Net 4 Net 3 Net 5 Router Physical net FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
11
CSI 4118 – UNIVERSITY OF OTTAWA
Figure 2.1 FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
12
CSI 4118 – UNIVERSITY OF OTTAWA
Figure 2.2 FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
13
CSI 4118 – UNIVERSITY OF OTTAWA
Figure 2.3 FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
14
CSI 4118 – UNIVERSITY OF OTTAWA
Figure 2.4 FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
15
CSI 4118 – UNIVERSITY OF OTTAWA
Figure 2.5 FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
16
CSI 4118 – UNIVERSITY OF OTTAWA
Figure 2.6 FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
17
CSI 4118 – UNIVERSITY OF OTTAWA
Practical Examples File transfer / access Web browsing Remote login / execution FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
18
CSI 4118 – UNIVERSITY OF OTTAWA
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 2003 CSI 4118 – UNIVERSITY OF OTTAWA
19
CSI 4118 – UNIVERSITY OF OTTAWA
What does a Network Do? Provides communication which is: Reliable Fair Efficient [15.14] Allows communication between applications (Allows arbitrary applications to communicate via Network (Distributed) Programming) FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
20
CSI 4118 – UNIVERSITY OF OTTAWA
Network Efficiency 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 2003 CSI 4118 – UNIVERSITY OF OTTAWA
21
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 2003 CSI 4118 – UNIVERSITY OF OTTAWA
22
Network (Distributed) Programming [Ch. 3]
Networks allow arbitrary applications to communicate Programmer does not need to understand network technologies Network facilities are accessed through an Application Program Interface (API) FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
23
Basic Paradigm for Pairwise Internet Communication
Establish contact Exchange data (bi-directional) Terminate contact Note: NO data processing by the network FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
24
CSI 4118 – UNIVERSITY OF OTTAWA
Establishing Contact Performed by pair of applications One application waits for contact (called server) Other application initiates contact (called client) FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
25
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 2003 CSI 4118 – UNIVERSITY OF OTTAWA
26
Representations and Translations
Humans use names such as computer: application: ftp Network protocols require binary values Library routines exist to translate from names to numbers FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
27
CSI 4118 – UNIVERSITY OF OTTAWA
Example API FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
28
CSI 4118 – UNIVERSITY OF OTTAWA
Simplified API FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
29
Simplified API (Cont’d)
FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
30
Simplified API (Cont’d)
The Await_Contact Function connection await_contact(appnum a) The argument specifies a number that identifies the server application FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
31
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 2003 CSI 4118 – UNIVERSITY OF OTTAWA
32
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 2003 CSI 4118 – UNIVERSITY OF OTTAWA
33
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 2003 CSI 4118 – UNIVERSITY OF OTTAWA
34
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 2003 CSI 4118 – UNIVERSITY OF OTTAWA
35
Simplified API (Cont’d)
The Recv And Recvln Functions 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 2003 CSI 4118 – UNIVERSITY OF OTTAWA
36
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 2003 CSI 4118 – UNIVERSITY OF OTTAWA
37
Simplified API (Cont’d)
FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
38
CSI 4118 – UNIVERSITY OF OTTAWA
Conceptual Client-Server Map FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
39
CSI 4118 – UNIVERSITY OF OTTAWA
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 2003 CSI 4118 – UNIVERSITY OF OTTAWA
40
Example Code Using API: Echoserver
FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
41
CSI 4118 – UNIVERSITY OF OTTAWA
Echoserver (Cont’d) Actually works on the Internet API calls replace conventional I/O No networking knowledge required FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
42
CSI 4118 – UNIVERSITY OF OTTAWA
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 2003 CSI 4118 – UNIVERSITY OF OTTAWA
43
Example Application: Web Server
User on computer X runs webserver 27000 User on another computer runs browser and enters URL: FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
44
Example Code Using API: Webserver
FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
45
CSI 4118 – UNIVERSITY OF OTTAWA
Webserver (2 of 6) FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
46
CSI 4118 – UNIVERSITY OF OTTAWA
Webserver (3 of 6) FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
47
CSI 4118 – UNIVERSITY OF OTTAWA
Webserver (4 of 6) FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
48
CSI 4118 – UNIVERSITY OF OTTAWA
Webserver (5 of 6) FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
49
CSI 4118 – UNIVERSITY OF OTTAWA
Webserver (6 of 6) FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
50
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 2003 CSI 4118 – UNIVERSITY OF OTTAWA
51
Example API in Java (v1.3+)
FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
52
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) { } FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
53
CSI 4118 – UNIVERSITY OF OTTAWA
EchoServer.java (2 of 2) 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 2003 CSI 4118 – UNIVERSITY OF OTTAWA
54
CSI 4118 – UNIVERSITY OF OTTAWA
(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) {} FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
55
(2) EchoClient.java (2 of 2)
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 2003 CSI 4118 – UNIVERSITY OF OTTAWA
56
CSI 4118 – UNIVERSITY OF OTTAWA
(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 2003 CSI 4118 – UNIVERSITY OF OTTAWA
57
CSI 4118 – UNIVERSITY OF OTTAWA
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 Will be hard work FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
58
CSI 4118 – UNIVERSITY OF OTTAWA
Summary (continued) Computer networks Deliver data from source to destination Automatically find optimal paths Handle problems that occur FALL 2003 CSI 4118 – UNIVERSITY OF OTTAWA
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.