FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Computer Networks & PROTOCOLS (CSI 4118) FALL 2005 Professor Robert L. Probert.

Slides:



Advertisements
Similar presentations
CSC383 Computer Networks Dr. Allen M. Johnson, Jr.
Advertisements

Socket Programming By Ratnakar Kamath. What Is a Socket? Server has a socket bound to a specific port number. Client makes a connection request. Server.
COP 4930 Computer Network Projects Summer C 2004 Prof. Roy B. Levow Lecture 1.
Alogrithm Analysis 實踐資管 Wang-Jiunn Cheng 2004 PART II Signals, Media, and Data Transmission.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Application Layer – Lecture.
2: Application Layer 1 Socket programming Socket API r introduced in BSD4.1 UNIX, 1981 r explicitly created, used, released by apps r client/server paradigm.
Socket Programming.
1 Creating a network app Write programs that  run on different end systems and  communicate over a network.  e.g., Web: Web server software communicates.
1 Java Networking – Part I CS , Spring 2008/9.
CSCI 4550/8556 Computer Networks Comer, Chapter 3: Network Programming and Applications.
1 Overview r Socket programming with TCP r Socket programming with UDP r Building a Web server.
System Programming Practical session 10 Java sockets.
COMP1681 / SE15 Introduction to Programming
Java sockets. From waiting.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego „Networking”
© Lethbridge/Laganière 2001 Chap. 3: Basing Development on Reusable Technology 1 Let’s get started. Let’s start by selecting an architecture from among.
2: Application Layer1 Socket Programming. 2: Application Layer2 Socket-programming using TCP Socket: a door between application process and end- end-transport.
© 2007 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.1 Computer Networks and Internets with Internet Applications, 4e By Douglas.
CEG3185 Tutorial 4 Prepared by Zhenxia Zhang Revised by Jiying Zhao (2015w)
Process-to-Process Delivery:
1 Computer Networks and Internets Spring 2005 Assistant Professor JainShing Liu.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
CS4273: Distributed System Technologies and Programming I Lecture 5: Java Socket Programming.
1 Ch 3. Network Programming. 2 Network Programming (1)  Network allows arbitrary applications to communicate E.g., client-server computing such as WEB.
TCP/IP protocols Communication over Internet is mostly TCP/IP (Transmission Control Protocol over Internet Protocol) TCP/IP "stack" is software which allows.
2: Application Layer1 Socket programming Socket API r introduced in BSD4.1 UNIX, 1981 r explicitly created, used, released by apps r client/server paradigm.
70-291: MCSE Guide to Managing a Microsoft Windows Server 2003 Network Chapter 3: TCP/IP Architecture.
NET0183 Networks and Communications Lecture 31 The Socket API 8/25/20091 NET0183 Networks and Communications by Dr Andy Brooks Lecture powerpoints from.
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
1 Computer Networks DA Chapter 1-3 Introduction.
 Socket  The combination of an IP address and a port number. (RFC 793 original TCP specification)  The name of the Berkeley-derived application programming.
Component 9 – Networking and Health Information Exchange Unit 1-1 ISO Open Systems Interconnection (OSI) This material was developed by Duke University,
1 Version 3.0 Module 11 TCP Application and Transport.
-1- Georgia State UniversitySensorweb Research Laboratory CSC4220/6220 Computer Networks Dr. WenZhan Song Associate Professor, Computer Science.
Vassil Roussev 2 A socket is the basic remote communication abstraction provided by the OS to processes. controlled by operating system.
Socket Programming Lee, Sooyong
TCP/IP Transport and Application (Topic 6)
RGEC MEERUT(IWT CS703) 1 Java Networking RGEC Meerut.
Practicum: - Client-Server Computing in Java Fundamental Data Structures and Algorithms Margaret Reid-Miller 13 April 2004.
Dr. John P. Abraham Professor University of Texas Pan American Internet Applications and Network Programming.
CCNA 1 v3.0 Module 11 TCP/IP Transport and Application Layers.
CS390- Unix Programming Environment CS 390 Unix Programming Environment Java Socket Programming.
2: Application Layer1 Chapter 2: Application layer r 2.1 Principles of network applications r 2.2 Web and HTTP r 2.3 FTP r 2.4 Electronic Mail  SMTP,
VII. Sockets. 1. What is a Socket? A socket is one end-point of a two-way communication link between two programs running on the network. Socket classes.
TCP/IP (Transmission Control Protocol / Internet Protocol)
Part 4: Network Applications Client-server interaction, example applications.
By Vivek Dimri. Basic Concepts on Networking IP Address – Protocol – Ports – The Client/Server Paradigm – Sockets The Java Networking Package – The InetAddress.
Internet Applications (Cont’d) Basic Internet Applications – World Wide Web (WWW) Browser Architecture Static Documents Dynamic Documents Active Documents.
CSI 3125, Preliminaries, page 1 Networking. CSI 3125, Preliminaries, page 2 Networking A network represents interconnection of computers that is capable.
TCP/IP Protocol Stack IP Device Drivers TCPUDP Application Sockets (Gate to network) TCP: –Establish connection –Maintain connection during the communication.
1 Computer Networks and Internets. 2 Internet Growth.
Prepared by Dr. Jiying Zhao University of Ottawa Canada.
UNIT-6. Basics of Networking TCP/IP Sockets Simple Client Server program Multiple clients Sending file from Server to Client Parallel search server.
1 COMP 431 Internet Services & Protocols Client/Server Computing & Socket Programming Jasleen Kaur February 2, 2016.
1 Lecture 9: Network programming. 2 Manipulating URLs URL is an acronym for Uniform Resource Locator and is a reference (an address) to a resource on.
SOCKET PROGRAMMING WITH JAVA By Collin Donaldson.
1 Network Communications A Brief Introduction. 2 Network Communications.
Advance Computer Programming Networking Basics – explores the java.net package which provides support for networking. – Also Called “programming for the.
Lecture 4 : Network Architectures (cont..) 1. 2 Summary of OSI Layers.
Network Programming. These days almost all devices.
MCA – 405 Elective –I (A) Java Programming & Technology
CSI 4118 – UNIVERSITY OF OTTAWA
„Networking”.
Multimedia and Networks
Process-to-Process Delivery:
CSI 4118 – UNIVERSITY OF OTTAWA
1 TRANSMISSION CONTROL PROTOCOL / INTERNET PROTOCOL (TCP/IP) K. PALANIVEL Systems Analyst, Computer Centre Pondicherry University, Puducherry –
Computer Networks DA2402.
Process-to-Process Delivery: UDP, TCP
Exceptions and networking
Presentation transcript:

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Computer Networks & PROTOCOLS (CSI 4118) FALL 2005 Professor Robert L. Probert

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA2 Part I Introduction

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.

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

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) transfer (SMTP) Web technologies and protocols HTTP, PHP, CGI, Java Security Voice over IP, …

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

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA7 Background Required (continued) Basic knowledge of operating systems Terminology Functionality Processes and concurrent processing CSI 3103/3503

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA8 Motivation for Networking Information access Interaction among cooperative application programs Resource sharing

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

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

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA11 Figure 2.1

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA12 Figure 2.2

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA13 Figure 2.3

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA14 Figure 2.4

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA15 Figure 2.5

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA16 Figure 2.6

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA17 Practical Examples File transfer / access Web browsing Remote login / execution

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

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)

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA20 What Does a Network Do? Reliable Fair Efficient Delay Throughput

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

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]

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

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

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)

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

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA27 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 2005CSI 4118 – UNIVERSITY OF OTTAWA28 Example API

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA29 Simplified API

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA30 Simplified API (Cont’d)

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

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

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

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

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

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

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

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA38 Simplified API (Cont’d)

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA39

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 User on another computer runs echoclient X 22000

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA41 Example Code Using API: Echoserver

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

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 User on another computer runs chatclient X 25000

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA44 Example Application: Web Server User on computer X runs webserver User on another computer runs browser and enters URL:

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA45 Example Code Using API: Webserver

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA46 Webserver (2 of 6)

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA47 Webserver (3 of 6)

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA48 Webserver (4 of 6)

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA49 Webserver (5 of 6)

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA50 Webserver (6 of 6)

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.

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA52 Example API in Java (v1.3+)

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.

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) { }

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

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) {}

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

FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA58 (3) Test Run 1.Compile EchoServer.java and EchoClient.java. 2.Start server program: java EchoServer localhost Start client program: java EchoClient 4118 Then type in something at prompt to see what will happen.

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

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