Computer Networks/DV2 Lab

Size: px
Start display at page:

Download "Computer Networks/DV2 Lab"

Transcription

1 Computer Networks/DV2 Lab Room: BB 219 Additional Information: 1. Practical Training: Network planning and installation of a file server 2. Practical Training: Web server installation and dynamic Web pages 3. Practical Training: Installation and configuration of a Firewall 4. Practical Training: Installation of a VPN for the connection of two networks 5. Practical Training: Programming; Client/Server connection over Sockets 6. Practical Training: Network Monitoring Name: Matriculation No.: Supervisor Signature: Equipment for each group: - 1 Server computer (OS: Windows Server 2016 Standard, virtual machine) - 1 Client computer (OS: Windows 7, virtual machine) - 1 Computer as Router / Gateway (OS: Linux) - 1 Switch and network cables Hint: We are using virtual computers for our client and our server operating system. The Software which is running on our physical computer (so called Host-System) is VMware Workstation 12 Player. It has to be considered that each machine (virtual and physical computer) has a specific IP address. 1. Introduction Communication over sockets is a standard technique usually used for platform independent data exchange between applications. In the context of this practical training we will develop a bi-directional communication between two software applications. We will base our communication on the client-server principle and program the sockets needed for it with the help of the programming language Delphi. 2. Client-Server Model The client-server model is one of the ideas around which network computing revolves. It describes the relationship between two computer programs, service providers (i.e. servers) and service requesters, called clients. Usually clients and servers operate on different hardware. Servers most often feature high-performance central processors, more memory, and larger disk drives than clients. A server stores resources such as files, databases, Web sites, and shares them to clients on the network. Contact: Joachim Zumbrägel BB 320 Tel: 0203/ joachim.zumbraegel@uni-due.de Clients are typically computers with network software applications installed, which request and receive information over the network. Due to the growing global communication industry, however, mobile devices are also frequently used as clients in the global mobile network. A client 1 2

2 does not share any of its resources, but requests a server's content or service function. In some cases a given device can function both as a client and a server for the same application. Furthermore, a device that is a server for one application can simultaneously act as a client for a different application, when requesting services from other servers. It is often the case where several browser clients try and access the same Web page on a Web server at the same time (quasi simultaneously). Figure 2.2 shows two different possibilities for port communication between a server and several client applications. Either each client communicates over a different port with the server or a single port is made available for all clients. Client 1 Port 1 Client X Port Z Request Port N Server providing resources and/or services Response Client N Server Client Y Fig. 2.2: Client-Server communication over several and over one dedicated ports Server Client Devices Fig. 2.1: Client-Server Communication Figure 2.1 illustrates the basic idea of the client-server communication model. The server takes care of services and resources being available to the requesting clients. The clients request and make use of the provided data by the server. The number of clients to the server is unknown, however it could be limited in order to prevent storage capacity deficiency or reduce the processing load, therefore increasing the server s performance. Usually several clients' applications try to access the same service on a single server. Let us take the application of a Web server as an example. Communication over several ports is impractical and uncommon. Rather, it is customary for standardized network services such as FTP, Mail and HTTP to be assigned a fixed port. IANA (Internet Assigned Number Authority) declared that ports from 0 to 1023 are reserved for such services, while dynamic and/or private ports are in the range of to Reserved ports (0-1023) are often targets of hacker attacks, because the services they provide are running under special rights (i.e. Super-User rights under LINUX). 3. Internet Sockets Fundamentals An internet socket is the endpoint of a bidirectional communication flow across a TCP/IP computer network. It is the interface to the network s transport layer (layer 4 in the ISO/OSI model). 3 4

3 When a client connects to a server, a new internet socket is created on each end. Each socket is mapped by the OS to a communicating application process. Both sockets would deliver incoming data packets to the appropriate application process, based on a combination of local and remote IP addresses and port numbers. An Internet socket is characterized by a unique combination of: Protocol (used to establish the communication) Local socket address (Local IP address and port number) Remote socket address (Remote IP address and port number) A socket address is the combination of an IP address and a port into a single identity. When several clients connect to a server concurrently, the server creates one socket for each client, and these sockets share the same local socket address (the server's socket address). However, each of these sockets is considered different by the server's OS, since the remote socket address defined by each client is different. The client s operating system manages the source port and makes sure the built socket address is unique. Therefore, neither the user nor the programmer has to take care about the socket address when a client connects to a server, because unique dedicated sockets are created for each connection. Within the operating system and the application that created a socket, the socket is referred to by a unique integer number called socket number. Communicating local and remote sockets are called socket pairs. Each socket pair is describes by 5 elements (on both local and remote sides), which make it unique. These five parameters are: Protocol (used in the communication) Source IP address Local Socket Address Source port Destination IP Address Remote Socket Address Destination port The following parameters (3 for source and 3 for destination) define one endpoint of the socket pair connection: [Protocol; Local Address; Local port] together with [Protocol; Remote Address; Remote port]. When each application process defines its own endpoint, a connection is established by use of the socket functions. With a connected socket structure, data exchange is feasible. Activating Port 1. Listening on port Creating new connection 2. Assignment of a new Socket 3. Communication over Socket # 1 Communication over Socket # 2 Communication over Socket # N Fig 3.1: Server communication over single port Figure 3.1 illustrates the server communication with clients over a single dedicated port. First the server activates a port (step 1). Then if the client wants to exchange data with the server, a new socket is created and 5 6

4 assigned to that connection (step 2). Another connection could be subsequently established on that port. Communication is now accomplished through the assigned socket (step 3). There are two different types of sockets. The choice of the socket type automatically specifies the kind of data exchange: Stream sockets are connection-oriented and reliable. Connection-oriented implies that a fixed connection is established, between the two application processes involved (similar to a dedicated line), over which data can flow in both directions. The created connection remains until one of the application processes ends it. Data is transported over the connection in the form of a continuous byte stream. Reliable, because the arrival of data sent over a stream socket to a certain destination is guaranteed. Moreover, the data should arrive in the same order it was sent. Stream sockets are often called TCP sockets. Datagram Sockets are connectionless and not reliable. Connectionless, because no fixed connection between the two application processes involved is established. Data is sent in the form of packets. Since no connection to the destination socket exists, its address must be explicitly indicated. Not reliable suggests that only sending the packet is guaranteed, but not that it will actually reach its destination. Datagram sockets are often called UDP sockets. 4. Socket programming under Windows Any operating system nowadays, provides protocols and the operating software required for them to realize data transfer over different networks. Therefore, the software developer does not have to create the commanding software for the internet protocols, when he wants to write an application transmitting data over the Internet. Software development is not limited to a certain platform or operating system. The source code of an application could be compiled under different operating systems. This applies to Internet applications, as well. For example, the company Netscape developed an Internet browser that works for both the Unix/Linux operating systems, Mac OS and the Microsoft Windows OS. Access to the commanding software for the internet protocols for UNIX is made possible through the BSD Socket API (Berkeley Software Distribution Socket Application Programming Interface). Applications do not access the actual protocol software rather the transmitted data is handed over to the socket, which forms an interface to the Internet. This uniform programming interface gives the software developer the protocol functions independent of the implemented protocol stack. To access an internet application the socket uniform interface comes into play instead of assigned protocol stacks like TCP/IP or SPX/IPX. When Microsoft equipped its operating system Windows with Internet access functions, the BSD Socket API was included, so that Internet applications could be easily imported to the Windows platform. This API was extended to comprise Windows specific functions and is called WinSock API, or simply WinSock. To this date there are two WinSock specifications: Version 1.x, a 16-Bit implementation for Windows 3.11, Windows 95,Windows NT 3.51,Windows NT 4. Version 2.x, a 32-Bit implementation for Windows NT/2000/XP and as an update for Windows 95/98 Both versions are placed against each other in Figure 4.1. It shows the Windows Open Service Architecture (WOSA) and clarifies the interfaces of the WinSock architecture. The WinSock 2 API is an interface for upper applications. It provides application developers with a uniform specification, therefore allowing programmers to develop applications without specific knowledge of the underlying network protocols. The interface to the protocol software is called WinSock 2 SPI (Service Provider Interface). The file "ws2_32.dll" offers the application interface under the Windows OS. Below the protocol software, the hardware driver API is located. It allows access to the hardware driver and the network. 7 8

5 Since the Windows APIs are written in the "C" programming language, the Visual Component LIBRARY (VCL) will be used for socket development under Delphi. The VCL encapsulates the WinSock functions. Because of that socket encapsulation, programming socket applications with Delphi is much simpler than with classical "C" programming. WinSock 1.1 API Protocol Stack API WinSock 1.1 Application Anwendung winsock.dll (16 bit) wsock32.dll (32 bit) WinSock 2 Application Anwendung ws2_32.dll (32 bit) WinSock 2 API WinSock 2 SPI 5. Socket programming with Delphi Delphi is a powerful visual programming environment. It allows development of fastidious applications for the MS Windows operating systems. Its syntax is similar to the programming language Pascal. Since most of you have little or no experience with the Delphi programming language, we will give you a small introduction before the actual tasks of this practical training. As previously mentioned Delphi encapsulates the WinSock functions. It has predefined components (TClientSocket, TServerSocket), which contain the functionality of a client socket and a server socket. The way to handle such components is not complex. Delphi is based on the principle of a working surface called form, on which different type of graphic and non-graphic components can be placed. The components are selected from register cards and placed via left mouse-click on the form. Protocol Protokollsoftware e.g. z.b. TCP/IP Hardware Driver API Hardware Driver, Packet Driver Hardware Interface Network (Hardware) Interface Network Netzwerk Fig. 4.1: WinSock Architecture Form Internet register card ClientSocket Component Fig. 5.1: Delphi interface ServerSocket Component This procedure applies to all components. Moreover, each of them has a variety of characteristics, which can be manipulated during the development time. Another aspect of these components is the events connected to them. 9 10

6 For example, a switching surface possesses the event OnClick. That is, if a button is clicked at run time, the procedure assigned to the OnClick event of this switching surface is called in. Figure 5.2 shows the form of our example code, which is used to explain the general working process of the client-server communication. Apart from the components - Client socket and Server socket, the form contains a Verbinden and Listen buttons. Server Open a socket (socket) Name the socket (bind) Client Open a socket (socket) Listen for incoming client connections (listen) Connect to sever (connect) Fig. 5.2: Form of our example code Individual steps are described through the source code. In order to make the methods, procedures and characteristics of the socket communication available, we have to select the Server socket and Client socket components from the register card Internet and place them on the form. Figure 5.3 describes the sequence of the client-server socket communication. First a receiving port must be open on the server side. Opening the server socket with Delphi is accomplished as follows: At first we create a button on the form and name it Listen. By clicking on that button the procedure ListenClick, which assigns and activates a port for the server socket component, is called in. Because each Server socket component can administrate only one port, a separate component must be created on the form for each port. Accept client connections (accept) Send / Receive Data (send / receive) Close connection (close) Send / Receive Data (send / receive) Close connection (close) Fig. 5.3: Sequence of client-server socket communication 11 12

7 procedure TForm1.ListenClick(Sender: TObject); ServerSocket.Port := 1111; ServerSocket.Open; Afterwards a connection between client and server can be established. For the client application we place a button on the form named Verbinden, which calls in the procedure VerbindenClick if the button is pressed. In this procedure the client socket can be configured with required data. procedure TForm1.VerbindenClick(Sender: TObject); ClientSocket1.Address := ; ClientSocket1.Port := 1111; ClientSocket1.Open; After the creation of a new socket on the server side (in response to a Client s connection request), the Client socket confirms the connection to the new server socket; for this purpose the event OnConnect and therefore the function ClientSocket1Connect is called in on the client socket. By use of this function we can send data to the server (here we send the test message "Hallo"), Procedure TForm1.ClientSocket1Connect(Sender: ClientSocket1.Socket.SendText( Hallo ); Since the socket is used as a parameter for the connection handed over, the following procedure has the same effect: procedure TForm1.ClientSocket1Connect(Sender: Socket.SendText( Hallo ); (1) (3) (2) (3) This way of writing code has the advantage that the event procedures can be used by several components, since the instructions do not depend on the component s name. More explanation will be given during the practical training. If the data sent by the client socket reaches the server socket, the event "OnClientRead" and therefore the function "ServerSocket1ClientRead" of the server socket component occurs. procedure TForm1.ServerSocket1ClientRead(Sender: var EmpfangenerText : string; EmpfangenerText := ServerSocket1.Socket. Connections[0].ReceiveText; The variable EmpfangerText contains the text received by the server socket and could be used for further processing. Even here the function ServerSocket1ClientRead receives as parameter the socket, which triggers the event. For that reason the following function has the same effect: procedure TForm1.ServerSocket1ClientRead(Sender: var EmpfangenerText : string; EmpfangenerText := Socket.ReceiveText; This way of writing code has the advantage that the server component is not limited to a connection and can process several clients. If the client socket writes onto the socket connection, the event OnWrite occurs. If all data is transferred to the server, the socket can be closed. procedure TForm1.ClientSocket1Write(Sender: ClientSocket1.Close; (5) (4) (4) 13 14

8 The instructions in the procedure can be formulated as follows: procedure TForm1.ClientSocket1Write(Sender: Socket.Close; (5) 6. Exercises Before we concern ourselves with the actual tasks, we will first look at two sample applications created with Delphi. Proceed as follows: Start Delphi on the server and the client (Start Programs Borland Delphi 7 Delphi 7) After Delphi loads navigate to File Open On the server navigate to and open the project located in: D:\netlab\P5\Server\server.dpr On the client navigate to and open the project located in: D:\netlab\P5\Client\client.dpr Press the F9 key. The following windows should appear on the client and server machines respectively. 1. Try to establish a connection between the two sample applications. Consider the order, in which the applications should be run and also mind the attributes you should input. Remark: Before we carry on with the actual tasks, the Delphi programming environment and the sample programs will be described, which should help you in the solutions of the upcoming tasks. 2. Extend the client application in such a way, that it sends automatically the string "Client Request" immediately after the connection to the server is established. 3. Extend the server application in such a way, that it sends automatically the string Server answer back to the client application when it receives the string "Client Request" from it. 4. Further extend the server application in such a way, that it accepts and keeps connections ONLY from your client computer. All other clients should receive the string "Service not available" as answer upon connection try-out and should not be able to communicate further with the server application

9 Notes: Literature: W.Richard Stevens: Unix Network Programming V (Volume 1), Prentice-Hall, shows how to program sockets in C. 17

Network Programming. Introduction to Sockets. Dr. Thaier Hayajneh. Process Layer. Network Layer. Berkeley API

Network Programming. Introduction to Sockets. Dr. Thaier Hayajneh. Process Layer. Network Layer. Berkeley API Network Programming Outline Definitions Dr. Thaier Hayajneh Computer Engineering Department Berkeley API Socket definition and types Introduction to Sockets 1 2 Process Process Process Layer TCP SCTP UDP

More information

Computer Networks/DV2 Lab

Computer Networks/DV2 Lab Computer Networks/DV2 Lab Room: BB 219 Additional Information: http://www.fb9dv.uni-duisburg.de/ti/en/education/teaching/ss18/netlab 1. Practical Training: Network planning and installation of a file server

More information

Computer Networks Lab

Computer Networks Lab Computer Networks Lab Room: BB 219 Additional Information: http://ti.uni-due.de/ti/en/education/teaching/ss18/netlab 1. Practical Training: Network planning and installation of a file server 2. Practical

More information

Socket Programming. Sungkyunkwan University. Hyunseung Choo Copyright Networking Laboratory

Socket Programming. Sungkyunkwan University. Hyunseung Choo Copyright Networking Laboratory Socket Programming Sungkyunkwan University Hyunseung Choo choo@skku.edu Copyright 2000-2019 Networking Laboratory Contents Goals Client-Server mechanism Introduction to socket Programming with socket on

More information

JAVA SOCKET PROGRAMMING

JAVA SOCKET PROGRAMMING JAVA SOCKET PROGRAMMING WHAT IS A SOCKET? Socket The combination of an IP address and a port number. (RFC 793 original TCP specification) The name of the Berkeley-derived application programming interfaces

More information

Computer Communication Networks Socket Programming

Computer Communication Networks Socket Programming Computer Communication Networks Socket Programming ICEN/ICSI 416 Fall 2018 Prof. Aveek Dutta 1 Application Programming Interface Interface exported by the network Since most network protocols are implemented

More information

IEMS 5780 / IERG 4080 Building and Deploying Scalable Machine Learning Services

IEMS 5780 / IERG 4080 Building and Deploying Scalable Machine Learning Services IEMS 5780 / IERG 4080 Building and Deploying Scalable Machine Learning Services Lecture 7 - Network Programming Albert Au Yeung 18th October, 2018 1 / 48 Computer Networking 2 / 48 Data Communication Exchange

More information

Presentation Services. Presentation Services: Motivation

Presentation Services. Presentation Services: Motivation Presentation Services need for a presentation services ASN.1 declaring data type encoding data types implementation issues reading: Tannenbaum 7.3.2 Presentation Services: Motivation Question: suppose

More information

Computer Network Lab, SS Fachgebiet Technische Informatik, Joachim Zumbrägel. Overview. Sockets. Sockets in C.

Computer Network Lab, SS Fachgebiet Technische Informatik, Joachim Zumbrägel. Overview. Sockets. Sockets in C. Computer Network Lab 2016 Fachgebiet Technische Informatik, Joachim Zumbrägel Overview Sockets Sockets in C Sockets in Delphi 1 Inter process communication There are two possibilities when two processes

More information

Introduction to Computer Networks. CS 166: Introduction to Computer Systems Security

Introduction to Computer Networks. CS 166: Introduction to Computer Systems Security Introduction to Computer Networks CS 166: Introduction to Computer Systems Security Network Communication Communication in modern networks is characterized by the following fundamental principles Packet

More information

We will cover in this order: 2.1, 2.7, 2.5, 2.4, 2.2

We will cover in this order: 2.1, 2.7, 2.5, 2.4, 2.2 CSE 422 Notes, Set 2 These slides contain materials provided with the text: Computer Networking: A Top Down Approach,5 th edition, by Jim Kurose and Keith Ross, Addison-Wesley, April 2009. Additional figures

More information

C18: Network Fundamentals and Reliable Sockets

C18: Network Fundamentals and Reliable Sockets CISC 3120 C18: Network Fundamentals and Reliable Sockets Hui Chen Department of Computer & Information Science CUNY Brooklyn College 4/16/2018 CUNY Brooklyn College 1 Outline Networking fundamentals Network

More information

IT 341: Introduction to System

IT 341: Introduction to System IT 341: Introduction to System Administration Private IP Addresses and the Internet Using IP Addresses to Communicate Over the Internet Network Address Translation Private IP Addresses and the Internet

More information

Unix Network Programming

Unix Network Programming Unix Network Programming Remote Communication Dr Hamed Vahdat-Nejad Network Applications Types: Client Server Exampels: A web browser (client) Ap communicating with a Web server An FTP client Fetching

More information

C19: User Datagram and Multicast

C19: User Datagram and Multicast CISC 3120 C19: User Datagram and Multicast Hui Chen Department of Computer & Information Science CUNY Brooklyn College 4/18/2018 CUNY Brooklyn College 1 Outline Recap Network fundamentals IPv4, IPv6 addresses

More information

Transport Layer. The transport layer is responsible for the delivery of a message from one process to another. RSManiaol

Transport Layer. The transport layer is responsible for the delivery of a message from one process to another. RSManiaol Transport Layer Transport Layer The transport layer is responsible for the delivery of a message from one process to another Types of Data Deliveries Client/Server Paradigm An application program on the

More information

A Study on Intrusion Detection Techniques in a TCP/IP Environment

A Study on Intrusion Detection Techniques in a TCP/IP Environment A Study on Intrusion Detection Techniques in a TCP/IP Environment C. A. Voglis and S. A. Paschos Department of Computer Science University of Ioannina GREECE Abstract: The TCP/IP protocol suite is the

More information

Lecture 2. Outline. Layering and Protocols. Network Architecture. Layering and Protocols. Layering and Protocols. Chapter 1 - Foundation

Lecture 2. Outline. Layering and Protocols. Network Architecture. Layering and Protocols. Layering and Protocols. Chapter 1 - Foundation Lecture 2 Outline Wireshark Project 1 posted, due in a week Lab from a different textbook Work through the lab and answer questions at the end Chapter 1 - Foundation 1.1 Applications 1.2 Requirements 1.3

More information

Application Programming Interfaces

Application Programming Interfaces Application Programming Interfaces The TCP/IP protocol suite provides only the protocols that can be used by processes to communicate across a network. Though standarized, how these protocols are implemented

More information

OBJECT ORIENTED PROGRAMMING

OBJECT ORIENTED PROGRAMMING 1 OBJECT ORIENTED PROGRAMMING Lecture 14 Networking Basics Outline 2 Networking Basics Socket IP Address DNS Client/Server Networking Class & Interface URL Demonstrating URL Networking 3 Java is practically

More information

TCP and Concurrency. The third assignment at DA

TCP and Concurrency. The third assignment at DA TCP and Concurrency The third assignment at DA2402 2009-03-05 Jonas Lundberg/Ola Flygt adapted to Java by Marcus Edvinsson maintained by Marcus Edvinsson Matematiska och systemtekniska institutionen, MSI

More information

Context. Distributed Systems: Sockets Programming. Alberto Bosio, Associate Professor UM Microelectronic Departement

Context. Distributed Systems: Sockets Programming. Alberto Bosio, Associate Professor UM Microelectronic Departement Distributed Systems: Sockets Programming Alberto Bosio, Associate Professor UM Microelectronic Departement bosio@lirmm.fr Context Computer Network hosts, routers, communication channels Hosts run applications

More information

Outline. Inter-Process Communication. IPC across machines: Problems. CSCI 4061 Introduction to Operating Systems

Outline. Inter-Process Communication. IPC across machines: Problems. CSCI 4061 Introduction to Operating Systems Outline CSCI 4061 Introduction to Operating Systems ing Overview Layering and Protocols TCP/IP Protocol Family Client-Server Model Instructor: Abhishek Chandra 2 Inter-Process Communication Intra-node:

More information

Joseph Faber Wonderful Talking Machine (1845)

Joseph Faber Wonderful Talking Machine (1845) Joseph Faber Wonderful Talking Machine (1845) Connected World Human-to-Human communication Human-Machine interaction Machine-to-Machine communication (M2M) Internet-of-Things (IOT) Internet of Things How

More information

Lab - Using Wireshark to Examine a UDP DNS Capture

Lab - Using Wireshark to Examine a UDP DNS Capture Topology Objectives Part 1: Record a PC s IP Configuration Information Part 2: Use Wireshark to Capture DNS Queries and Responses Part 3: Analyze Captured DNS or UDP Packets Background / Scenario If you

More information

BITS-Pilani Hyderabad Campus

BITS-Pilani Hyderabad Campus BITS-Pilani Hyderabad Campus CS C461/IS C461/CS F303/ IS F303 (Computer Networks) Laboratory 4 Aim: To give an introduction to Socket Programming in TCP and UDP. TCP Socket Programming: A socket is the

More information

Avaya Port Matrix: Avaya Proprietary Use pursuant to the terms of your signed agreement or Avaya policy.

Avaya Port Matrix: Avaya Proprietary Use pursuant to the terms of your signed agreement or Avaya policy. Avaya Matrix: Release 3.0 Issue 2 April 2016 April 2016 Avaya Matrix: 3.0 1 ALL INFORMATION IS BELIEVED TO BE CORRECT AT THE TIME OF PUBLICATION AND IS PROVIDED "AS IS". AVAYA INC. DISCLAIMS ALL WARRANTIES,

More information

Lab - Using Wireshark to Examine a UDP DNS Capture

Lab - Using Wireshark to Examine a UDP DNS Capture Topology Objectives Part 1: Record a PC s IP Configuration Information Part 2: Use Wireshark to Capture DNS Queries and Responses Part 3: Analyze Captured DNS or UDP Packets Background / Scenario If you

More information

Significance of TCP/IP Model Divya Shree Assistant Professor (Resource Person), Department of computer science and engineering, UIET, MDU, Rohtak

Significance of TCP/IP Model Divya Shree Assistant Professor (Resource Person), Department of computer science and engineering, UIET, MDU, Rohtak Significance of TCP/IP Model Divya Shree Assistant Professor (Resource Person), Department of computer science and engineering, UIET, MDU, Rohtak Abstract: TCP/IP (Transmission Control Protocol/Internet

More information

CSE 461 Connections. David Wetherall

CSE 461 Connections. David Wetherall CSE 461 Connections David Wetherall djw@cs.washington.edu Connections Focus How do we (reliably) connect processes? This is the transport layer Topics Naming processes TCP / UDP Connection setup / teardown

More information

03 The Internet Model and TCP/IP

03 The Internet Model and TCP/IP SE 4C03 Winter 2003 03 The Internet Model and TCP/IP Instructor: W. M. Farmer Revised: 16 January 2003 1 The OSI Model In 1977 the International Standards Organization (ISO) offered the Open Systems Interconnection

More information

Transport Layer (TCP/UDP)

Transport Layer (TCP/UDP) Transport Layer (TCP/UDP) Where we are in the Course Moving on up to the Transport Layer! Application Transport Network Link Physical CSE 461 University of Washington 2 Recall Transport layer provides

More information

Introduction to the TCP/IP protocol suite

Introduction to the TCP/IP protocol suite Introduction to the TCP/IP protocol suite slide 1 TCP/IP has been around for longer than the ISO OSI 7 layer model the ISO OSI 7 layer model is useful as a reference model for explaining the function of

More information

ISO OSI 7 Layer model and the TCP/IP protocol stack. Introduction to the TCP/IP protocol suite. Networking Glossary

ISO OSI 7 Layer model and the TCP/IP protocol stack. Introduction to the TCP/IP protocol suite. Networking Glossary slide Introduction to the TCP/IP protocol suite slide 2 ISO OSI 7 Layer model and the TCP/IP protocol stack TCP/IP has been around for longer than the ISO OSI 7layer model there is not an exact match between

More information

UNIX Sockets. Developed for the Azera Group By: Joseph D. Fournier B.Sc.E.E., M.Sc.E.E.

UNIX Sockets. Developed for the Azera Group By: Joseph D. Fournier B.Sc.E.E., M.Sc.E.E. UNIX Sockets Developed for the Azera Group By: Joseph D. Fournier B.Sc.E.E., M.Sc.E.E. Socket and Process Communication application layer User Process Socket transport layer (TCP/UDP) network layer (IP)

More information

COMMUNICATION PROTOCOLS: REMOTE PROCEDURE CALL (RPC)

COMMUNICATION PROTOCOLS: REMOTE PROCEDURE CALL (RPC) COMMUNICATION PROTOCOLS: REMOTE PROCEDURE CALL (RPC) 1 2 CONVENTIONAL PROCEDURE CALL (a) (b) Parameter passing in a local procedure call: the stack before the call to read. The stack while the called procedure

More information

Business Data Networks and Security 10th Edition by Panko Test Bank

Business Data Networks and Security 10th Edition by Panko Test Bank Business Data Networks and Security 10th Edition by Panko Test Bank Chapter 2 Network Standards 1) Internet standards are published as. A) RFCs B) IETFs C) TCP/IPs D) Internet Protocols Question: 1a Objective:

More information

A Technical Overview of the Lucent Managed Firewall

A Technical Overview of the Lucent Managed Firewall Lucent Managed Version 2.0 A Technical Overview of the Lucent Managed This document provides a technical overview of the Lucent Managed architecture. Key technical features and potential application scenarios

More information

ECE 650 Systems Programming & Engineering. Spring 2018

ECE 650 Systems Programming & Engineering. Spring 2018 ECE 650 Systems Programming & Engineering Spring 2018 Programming with Network Sockets Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) Sockets We ve looked at shared memory vs.

More information

History of TCP/IP and Internet (continued) TCP/IP. History of TCP/IP and Internet. History of TCP/IP and Internet

History of TCP/IP and Internet (continued) TCP/IP. History of TCP/IP and Internet. History of TCP/IP and Internet History of TCP/IP and Internet (continued) slide 3 TCP/IP slide 1 DARPA was the main funding agency for packet-switched research in the USA DOD began working on the Internet in the mid 1970s design a protocol

More information

4. The transport layer

4. The transport layer 4.1 The port number One of the most important information contained in the header of a segment are the destination and the source port numbers. The port numbers are necessary to identify the application

More information

Homework 4 assignment for ECE374 Posted: 04/06/15 Due: 04/13/15

Homework 4 assignment for ECE374 Posted: 04/06/15 Due: 04/13/15 ECE374: Homework 4 1 Homework 4 assignment for ECE374 Posted: 04/06/15 Due: 04/13/15 Note: In all written assignments, please show as much of your work as you can. Even if you get a wrong answer, you can

More information

Defining Networks with the OSI Model. Module 2

Defining Networks with the OSI Model. Module 2 Defining Networks with the OSI Model Module 2 Objectives Skills Concepts Objective Domain Description Objective Domain Number Understanding OSI Basics Defining the Communications Subnetwork Defining the

More information

Communication in Distributed Systems: Sockets Programming. Operating Systems

Communication in Distributed Systems: Sockets Programming. Operating Systems Communication in Distributed Systems: Sockets Programming Operating Systems TCP/IP layers Layers Message Application Transport Internet Network interface Messages (UDP) or Streams (TCP) UDP or TCP packets

More information

Computer Networks. General Course Information. Addressing and Routing. Computer Networks 9/8/2009. Basic Building Blocks for Computer Networks

Computer Networks. General Course Information. Addressing and Routing. Computer Networks 9/8/2009. Basic Building Blocks for Computer Networks Outline: Computer Networks Introduction General course information. Some basic concepts for computer s. Network programming. General Course Information Course Web page http://www.cs.rochester.edu/~kshen/csc257-fall2009

More information

Networks and distributed computing

Networks and distributed computing Networks and distributed computing Abstractions provided for networks network card has fixed MAC address -> deliver message to computer on LAN -> machine-to-machine communication -> unordered messages

More information

Measuring MPLS overhead

Measuring MPLS overhead Measuring MPLS overhead A. Pescapè +*, S. P. Romano +, M. Esposito +*, S. Avallone +, G. Ventre +* * ITEM - Laboratorio Nazionale CINI per l Informatica e la Telematica Multimediali Via Diocleziano, 328

More information

A Client-Server Exchange

A Client-Server Exchange Socket programming A Client-Server Exchange A server process and one or more client processes Server manages some resource. Server provides service by manipulating resource for clients. 1. Client sends

More information

Network Protocols - Revision

Network Protocols - Revision Network Protocols - Revision Luke Anderson luke@lukeanderson.com.au 18 th May 2018 University Of Sydney Overview 1. The Layers 1.1 OSI Model 1.2 Layer 1: Physical 1.3 Layer 2: Data Link MAC Addresses 1.4

More information

Figure 1: Graphical representation of a client-server application

Figure 1: Graphical representation of a client-server application CS/EE 145a : Networking Lab #1 http://www.its.caltech.edu/ eecs145/ Due: October 24, 2007 1 Introduction The development of network-based software has been around for many years. Since its conception,

More information

(Refer Slide Time: 1:09)

(Refer Slide Time: 1:09) Computer Networks Prof. S. Ghosh Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecturer # 30 UDP and Client Server Good day, today we will start our discussion

More information

CPEG514 Advanced Computer Networks. Atef Abu Salim University of Nizwa Spring 2013/2014

CPEG514 Advanced Computer Networks. Atef Abu Salim University of Nizwa Spring 2013/2014 CPEG514 Advanced Computer Networks Atef Abu Salim University of Nizwa Spring 2013/2014 Today s Class Topics Course Syllabus Computer Networks LANs and WANs The Internet Protocols, Layers and Interfaces

More information

Different Layers Lecture 21

Different Layers Lecture 21 Different Layers Lecture 21 10/17/2003 Jian Ren 1 The Transport Layer 10/17/2003 Jian Ren 2 Transport Services and Protocols Provide logical communication between app processes running on different hosts

More information

Lecture 2-ter. 2. A communication example Managing a HTTP v1.0 connection. Managing a HTTP request. transport session. Step 1 - opening transport

Lecture 2-ter. 2. A communication example Managing a HTTP v1.0 connection. Managing a HTTP request. transport session. Step 1 - opening transport Lecture 2-ter. 2 A communication example Managing a HTTP v1.0 connection Managing a HTTP request User digits URL and press return (or clicks ). What happens (HTTP 1.0): 1. opens a TCP transport session

More information

Client-Server Interaction and Network Applications

Client-Server Interaction and Network Applications CPSC 360 Network Programming Client-Server Interaction and Network Applications Michele Weigle Department of Computer Science Clemson University mweigle@cs.clemson.edu January 21, 2005 http://www.cs.clemson.edu/~mweigle/courses/cpsc360

More information

EE 610 Part 2: Encapsulation and network utilities

EE 610 Part 2: Encapsulation and network utilities EE 610 Part 2: Encapsulation and network utilities Objective: After this experiment, the students should be able to: i. Understand the format of standard frames and packet headers. Overview: The Open Systems

More information

CPS221 Lecture: Layered Network Architecture

CPS221 Lecture: Layered Network Architecture CPS221 Lecture: Layered Network Architecture Objectives last revised 9/8/14 1. To discuss the OSI layered architecture model 2. To discuss the specific implementation of this model in TCP/IP Materials:

More information

User Datagram Protocol UDP

User Datagram Protocol UDP 59 User Datagram Protocol UDP Aleksander Malinowski Bradley University Bogdan M. Wilamowski Auburn University 59.1 Introduction... 59-1 59.2 Protocol Operation... 59-1 UDP Datagram Port Number Assignments

More information

Transport Layer. Chapter 3: Transport Layer

Transport Layer. Chapter 3: Transport Layer Transport Layer EECS 3214 Slides courtesy of J.F Kurose and K.W. Ross, All Rights Reserved 29-Jan-18 1-1 Chapter 3: Transport Layer our goals: understand principles behind layer services: multiplexing,

More information

EECS122 Communications Networks Socket Programming. Jörn Altmann

EECS122 Communications Networks Socket Programming. Jörn Altmann EECS122 Communications Networks Socket Programming Jörn Altmann Questions that will be Addressed During the Lecture What mechanisms are available for a programmer who writes network applications? How to

More information

System Programming. Introduction to computer networks

System Programming. Introduction to computer networks Content : by Dr. B. Boufama School of Computer Science University of Windsor Instructor: Dr. A. Habed adlane@cs.uwindsor.ca http://cs.uwindsor.ca/ adlane/60-256 Content Content 1 Introduction to Computer

More information

CSCD 330 Network Programming Spring 2018

CSCD 330 Network Programming Spring 2018 CSCD 330 Network Programming Spring 2018 Lecture 6 Application Layer Socket Programming in Java Reading for Java Client/Server see Relevant Links Some Material in these slides from J.F Kurose and K.W.

More information

What is a Network? TCP / IP. The ISO OSI Model. Protocols. The TCP/IP Protocol Suite. The TCP/IP Protocol Suite. Computer network.

What is a Network? TCP / IP. The ISO OSI Model. Protocols. The TCP/IP Protocol Suite. The TCP/IP Protocol Suite. Computer network. What is a Network? TCP / IP Computer network a set of computers using common protocols to communicate over connecting transmission media. Protocol a formal description of message formats and the rules

More information

TCP/IP THE TCP/IP ARCHITECTURE

TCP/IP THE TCP/IP ARCHITECTURE TCP/IP-1 The Internet Protocol (IP) enables communications across a vast and heterogeneous collection of networks that are based on different technologies. Any host computer that is connected to the Internet

More information

CS 351 Design of Large Programs Java and Socket Communication

CS 351 Design of Large Programs Java and Socket Communication CS 351 Design of Large Programs Java and Socket Communication Instructor: Joel Castellanos e-mail: joel@unm.edu 4/6/2017 Transmission Control Protocol The Transmission Control Protocol (TCP) is one of

More information

CCNA 1 Chapter 7 v5.0 Exam Answers 2013

CCNA 1 Chapter 7 v5.0 Exam Answers 2013 CCNA 1 Chapter 7 v5.0 Exam Answers 2013 1 A PC is downloading a large file from a server. The TCP window is 1000 bytes. The server is sending the file using 100-byte segments. How many segments will the

More information

SOCKET. Valerio Di Valerio

SOCKET. Valerio Di Valerio SOCKET Valerio Di Valerio The Problem! Communication between computers connected to a network Network Network applications! A set of processes distributed over a network that communicate via messages!

More information

3.2 COMMUNICATION AND INTERNET TECHNOLOGIES

3.2 COMMUNICATION AND INTERNET TECHNOLOGIES 3.2 COMMUNICATION AND INTERNET TECHNOLOGIES 3.2.1 PROTOCOLS PROTOCOL Protocol a set of rules governing the way that devices communicate with each other. With networks and the Internet, we need to allow

More information

Chapter 6. The Protocol TCP/IP. Introduction to Protocols

Chapter 6. The Protocol TCP/IP. Introduction to Protocols Chapter 6 The Protocol TCP/IP 1 Introduction to Protocols A protocol is a set of rules that governs the communications between computers on a network. These rules include guidelines that regulate the following

More information

Lab 1: Packet Sniffing and Wireshark

Lab 1: Packet Sniffing and Wireshark Lab 1: Packet Sniffing and Wireshark Fengwei Zhang Wayne State University Course: Cyber Security Practice 1 Packet Sniffer Packet sniffer is a basic tool for observing network packet exchanges in a computer

More information

UNIT 5 MANAGING COMPUTER NETWORKS LEVEL 3 NETWORK PROTOCOLS

UNIT 5 MANAGING COMPUTER NETWORKS LEVEL 3 NETWORK PROTOCOLS UNIT 5 MANAGING COMPUTER NETWORKS LEVEL 3 NETWORK PROTOCOLS NETWORK PROTOCOLS A network manager needs to be aware of a number of different protocols, especially those that exist in the Application Layer

More information

19: Networking. Networking Hardware. Mark Handley

19: Networking. Networking Hardware. Mark Handley 19: Networking Mark Handley Networking Hardware Lots of different hardware: Modem byte at a time, FDDI, SONET packet at a time ATM (including some DSL) 53-byte cell at a time Reality is that most networking

More information

Chapter 11. User Datagram Protocol (UDP)

Chapter 11. User Datagram Protocol (UDP) Chapter 11 User Datagram Protocol (UDP) Outline Process-to-process communication User datagram Checksum UDP operation Use of UDP UDP package Figure 11-1 Position of UDP in the TCP/IP Protocol Suite The

More information

CS164 Final Exam Winter 2013

CS164 Final Exam Winter 2013 CS164 Final Exam Winter 2013 Name: Last 4 digits of Student ID: Problem 1. State whether each of the following statements is true or false. (Two points for each correct answer, 1 point for each incorrect

More information

A set of processes distributed over a network that communicate via messages. Processes communicate via services offered by the operating system

A set of processes distributed over a network that communicate via messages. Processes communicate via services offered by the operating system SOCKET Network applications A set of processes distributed over a network that communicate via messages Ex: Browser Web, BitTorrent, ecc Processes communicate via services offered by the operating system

More information

OSI and TCP/IP Models

OSI and TCP/IP Models EECS 3214 Department of Electrical Engineering & Computer Science York University 18-01-08 12:12 1 OSI and / Models 2 1 / Encapsula5on (Packet) (Frame) 3 / Model and Example Protocols A list of protocols

More information

The Fundamentals. Port Assignments. Common Protocols. Data Encapsulation. Protocol Communication. Tevfik Ko!ar

The Fundamentals. Port Assignments. Common Protocols. Data Encapsulation. Protocol Communication. Tevfik Ko!ar CSC 4304 - Systems Programming Fall 2008 Lecture - XXII Network Programming Tevfik Ko!ar Louisiana State University December 2 nd, 2008 1 The Fundamentals The Computer Systems Research Group (CSRG) at

More information

Internet Architecture

Internet Architecture Internet Architecture Lecture 3: How TCP/IP Works & Understanding the Internet's Software Structure Assistant Teacher Samraa Adnan Al-Asadi 1 How TCP/IP Works Packet: A piece of data broken down into pieces

More information

JAVA Network API. 2 - Connection-Oriented vs. Connectionless Communication

JAVA Network API. 2 - Connection-Oriented vs. Connectionless Communication JAVA Network API To be discussed 1 - java.net... 1 2 - Connection-Oriented vs. Connectionless Communication... 1 3 - Connectionless:... 1 4 - Networking Protocols... 2 5 - Sockets... 2 6 - Multicast Addressing...

More information

b) Diverse forms of physical connection - all sorts of wired connections, wireless connections, fiber optics, etc.

b) Diverse forms of physical connection - all sorts of wired connections, wireless connections, fiber optics, etc. Objectives CPS221 Lecture: Layered Network Architecture last revised 6/22/10 1. To discuss the OSI layered architecture model 2. To discuss the specific implementation of this model in TCP/IP Materials:

More information

Avaya Port Matrix: Avaya Aura Appliance Virtualization Platform 7.0

Avaya Port Matrix: Avaya Aura Appliance Virtualization Platform 7.0 Avaya Port Matrix: Avaya Aura Appliance Virtualization Platform 7.0 Issue 1.0 August 24, 2015 August 2015 Avaya Port Matrix: Avaya Aura Appliance Virtualization Platform 7.0 1 ALL INFORMATION IS BELIEVED

More information

Advanced Java Programming. Networking

Advanced Java Programming. Networking Advanced Java Programming Networking Eran Werner and Ohad Barzilay Tel-Aviv University Advanced Java Programming, Spring 2006 1 Overview of networking Advanced Java Programming, Spring 2006 2 TCP/IP protocol

More information

Transport Layer. Gursharan Singh Tatla. Upendra Sharma. 1

Transport Layer. Gursharan Singh Tatla.   Upendra Sharma. 1 Transport Layer Gursharan Singh Tatla mailme@gursharansingh.in Upendra Sharma 1 Introduction The transport layer is the fourth layer from the bottom in the OSI reference model. It is responsible for message

More information

OSI Transport Layer. Network Fundamentals Chapter 4. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

OSI Transport Layer. Network Fundamentals Chapter 4. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1 OSI Transport Layer Network Fundamentals Chapter 4 Version 4.0 1 Transport Layer Role and Services Transport layer is responsible for overall end-to-end transfer of application data 2 Transport Layer Role

More information

4.0.1 CHAPTER INTRODUCTION

4.0.1 CHAPTER INTRODUCTION 4.0.1 CHAPTER INTRODUCTION Data networks and the Internet support the human network by supplying seamless, reliable communication between people - both locally and around the globe. On a single device,

More information

CS 326: Operating Systems. Networking. Lecture 17

CS 326: Operating Systems. Networking. Lecture 17 CS 326: Operating Systems Networking Lecture 17 Today s Schedule Project 3 Overview, Q&A Networking Basics Messaging 4/23/18 CS 326: Operating Systems 2 Today s Schedule Project 3 Overview, Q&A Networking

More information

Operating Systems. 16. Networking. Paul Krzyzanowski. Rutgers University. Spring /6/ Paul Krzyzanowski

Operating Systems. 16. Networking. Paul Krzyzanowski. Rutgers University. Spring /6/ Paul Krzyzanowski Operating Systems 16. Networking Paul Krzyzanowski Rutgers University Spring 2015 1 Local Area Network (LAN) LAN = communications network Small area (building, set of buildings) Same, sometimes shared,

More information

Introduction to Sockets 9/25/14

Introduction to Sockets 9/25/14 Introduction to Sockets 9/25/14 81 Remote communication Inter-process communication is at the heart of all distributed systems Using the network protocol stack on a node is the only way to communicate

More information

Chapter 6. What happens at the Transport Layer? Services provided Transport protocols UDP TCP Flow control Congestion control

Chapter 6. What happens at the Transport Layer? Services provided Transport protocols UDP TCP Flow control Congestion control Chapter 6 What happens at the Transport Layer? Services provided Transport protocols UDP TCP Flow control Congestion control OSI Model Hybrid Model Software outside the operating system Software inside

More information

Sockets 15H2. Inshik Song

Sockets 15H2. Inshik Song Sockets 15H2 Inshik Song Internet CAU www server (www.cau.ac.kr) Your web browser (Internet Explorer/Safari) Sockets 2 How do we find the server? Every computer on the Internet has an Internet address.

More information

Application Note. Providing Secure Remote Access to Industrial Control Systems Using McAfee Firewall Enterprise (Sidewinder )

Application Note. Providing Secure Remote Access to Industrial Control Systems Using McAfee Firewall Enterprise (Sidewinder ) Application Note Providing Secure Remote Access to Industrial Control Systems Using McAfee Firewall Enterprise (Sidewinder ) This document describes how to configure McAfee Firewall Enterprise to provide

More information

CyberP3i Course Module Series

CyberP3i Course Module Series CyberP3i Course Module Series Spring 2017 Designer: Dr. Lixin Wang, Associate Professor Firewall Configuration Firewall Configuration Learning Objectives 1. Be familiar with firewalls and types of firewalls

More information

UNIT 1 TCP/IP PROGRAMMING CONCEPTS

UNIT 1 TCP/IP PROGRAMMING CONCEPTS UNIT 1 TCP/IP PROGRAMMING CONCEPTS TCP/IP Programming Concepts Structure Page Nos. 1.0 Introduction 5 1.1 Objectives 5 1.2 Client Server Communication 6 1.2.1 Designing Client/Server Programs 7 1.2.2 Socket

More information

Continuous Real Time Data Transfer with UDP/IP

Continuous Real Time Data Transfer with UDP/IP Continuous Real Time Data Transfer with UDP/IP 1 Emil Farkas and 2 Iuliu Szekely 1 Wiener Strasse 27 Leopoldsdorf I. M., A-2285, Austria, farkas_emil@yahoo.com 2 Transilvania University of Brasov, Eroilor

More information

Application Rules - Allows the users to add or modify or remove Custom ruleset for firewall settings.

Application Rules - Allows the users to add or modify or remove Custom ruleset for firewall settings. Application Rules - Allows the users to add or modify or remove Custom ruleset for firewall settings. Step [1]: Go to Endpoint Manager> CONFIGURATION TEMPLATES > Profiles Step [2]: Click Create icon and

More information

Networking and socket communica2on

Networking and socket communica2on Networking and socket communica2on CSCI 136: Fundamentals of Computer Science II Keith Vertanen Copyright 2014 Networking basics Overview Difference between: clients and servers Addressing IP addresses,

More information

Distributed Systems. 02. Networking. Paul Krzyzanowski. Rutgers University. Fall 2017

Distributed Systems. 02. Networking. Paul Krzyzanowski. Rutgers University. Fall 2017 Distributed Systems 02. Networking Paul Krzyzanowski Rutgers University Fall 2017 1 Inter-computer communication Without shared memory, computers need to communicate Direct link Direct links aren't practical

More information

PART IV. Internetworking Using TCP/IP

PART IV. Internetworking Using TCP/IP PART IV Internetworking Using TCP/IP Internet architecture, addressing, binding, encapsulation, and protocols in the TCP/IP suite Chapters 20 Internetworking: Concepts, Architecture, and Protocols 21 IP:

More information

QUIZ: Longest Matching Prefix

QUIZ: Longest Matching Prefix QUIZ: Longest Matching Prefix A router has the following routing table: 10.50.42.0 /24 Send out on interface Z 10.50.20.0 /24 Send out on interface A 10.50.24.0 /22 Send out on interface B 10.50.20.0 /22

More information

The Client Server Model and Software Design

The Client Server Model and Software Design The Client Server Model and Software Design Prof. Chuan-Ming Liu Computer Science and Information Engineering National Taipei University of Technology Taipei, TAIWAN MCSE Lab, NTUT, TAIWAN 1 Introduction

More information