An Introduction to Internetworking

Slides:



Advertisements
Similar presentations
CCNA – Network Fundamentals
Advertisements

Chapter 7: Transport Layer
Advanced Java Programming: programming of distributed application using TCP/IP Santiago, Aug Nelson Baloian,
Content Introduction TCP Clients Iterative TCP Servers Concurent TCP Servers UDP Multicasting
Advanced Java Programming: programming of distributed application using TCP/IP Tokyo, Jan. Feb Nelson Baloian, Roberto Konow.
Universidad de Chile - Tupper 2007, Santiago - Fono: Fax: Módulo 9: Desarrollo de Aplicaciones.
1 Java Networking – Part I CS , Spring 2008/9.
Java Socket Support Presentation by: Lijun Yuan Course Number: cs616.
An Introduction to Internetworking. Why distributed systems - Share resources (devices & CPU) - Communicate people (by transmitting data)
Administrativo Clases 2 veces a la semana : –Ma – Vi 12:00 Sin Clase auxiliar.
An Introduction to Internetworking. Algorithm for client-server communication with UDP (connectionless) A SERVER A CLIENT Create a server-socket (listener)and.
Programming for information communication systems Programming of distributed application over TCP/IP networks Yerevan, Sept.- Oct Nelson Baloian,
Lecture slides prepared for “Business Data Communications”, 7/e, by William Stallings and Tom Case, Chapter 8 “TCP/IP”.
TRANSPORT LAYER T.Najah Al-Subaie Kingdom of Saudi Arabia Prince Norah bint Abdul Rahman University College of Computer Since and Information System NET331.
The Transport Layer.
Chapter 17 Networking Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William Stallings.
Lecture 2 TCP/IP Protocol Suite Reference: TCP/IP Protocol Suite, 4 th Edition (chapter 2) 1.
TCP/IP: Basics1 User Datagram Protocol (UDP) Another protocol at transport layer is UDP. It is Connectionless protocol i.e. no need to establish & terminate.
1 7-Oct-15 OSI transport layer CCNA Exploration Semester 1 Chapter 4.
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 26.
1 Networking Chapter Distributed Capabilities Communications architectures –Software that supports a group of networked computers Network operating.
Chapter 15 – Part 2 Networks The Internal Operating System The Architecture of Computer Hardware and Systems Software: An Information Technology Approach.
The InetAddress Class A class for storing and managing internet addresses (both as IP numbers and as names). The are no constructors but “class factory”
Networking Basics CCNA 1 Chapter 11.
Individual Project 1 Sarah Pritchard. Fran, a customer of your company, would like to visit your company’s website from her home computer… How does your.
1. Layered Architecture of Communication Networks: TCP/IP Model
1 Network Communications A Brief Introduction. 2 Network Communications.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco Public 1 OSI transport layer CCNA Exploration Semester 1 – Chapter 4.
SOCKET PROGRAMMING Presented By : Divya Sharma.
Application Layer Functionality and Protocols Abdul Hadi Alaidi
Chapter 7: Transport Layer
Chapter 5 Network and Transport Layers
The Transport Layer Implementation Services Functions Protocols
Last Class: Introduction
Chapter 3 Internet Applications and Network Programming
The OSI Model and the TCP/IP Protocol Suite
MCA – 405 Elective –I (A) Java Programming & Technology
Transport Layer.
Introduction and Overview of Network and Telecommunications (contd.)
CMPT 371 Data Communications and Networking
Understand the OSI Model Part 2
TCP Transport layer Er. Vikram Dhiman LPU.
NET323 D: Network Protocols
Client-Server Interaction
Congestion Control, Internet transport protocols: udp
The OSI Model and the TCP/IP Protocol Suite
Packet Sniffing.
Sarah Diesburg Operating Systems COP 4610
Packet Switching To improve the efficiency of transferring information over a shared communication line, messages are divided into fixed-sized, numbered.
I. Basic Network Concepts
NET323 D: Network Protocols
Process-to-Process Delivery:
Communication Networks NETW 501
Chapter 15 – Part 2 Networks The Internal Operating System
Andy Wang Operating Systems COP 4610 / CGS 5765
TCP and UDP Layer 3 of the TCP/IP protocol stack. Transport layer
Networking Theory (part 2)
PART 5 Transport Layer.
Computer Networks Topic :User datagram protocol Transmission Control Protocol -Hemashree S( )
An Introduction to Internetworking
Administrativo Clases 1 vez a la semana : Sin Ayudantia
The OSI Model and the TCP/IP Protocol Suite
Process-to-Process Delivery: UDP, TCP
Server-Client communication without connection
Computer Networks Protocols
Tokyo, Feb Nelson Baloian, Teaching assistant: Roberto Konow
Transport Layer 9/22/2019.
Exceptions and networking
Network programming Lecture 1 Prepared by: Dr. Osama Mokhtar.
Networking Theory (part 2)
Presentation transcript:

An Introduction to Internetworking Design and Prog. of Distributed Systems

Why distributed systems - Share resources (devices & CPU) - Communicate people (by transmitting data)

We know already how computers communicate but...

... how do programs communicate? They need to establish a protocol ! - Who send the data first - What kind of data - How to react to the data

Remember this ?

The client-server paradigm (do you remember the WEB ?) answer The web server program request THE INTERNET Web resources answer request The web client program

1- The server opens a channel and starts listening to requests. A SERVER ? 1 THE INTERNET Web resources A CLIENT

2- A client who knows it, sends a request and waits for the answer A SERVER 2 THE INTERNET Web resources 2 A CLIENT

3- The server, analyses the request and answers properly according to the protocol A SERVER 3 THE INTERNET Web resources 3 This may involve the reading of a file A CLIENT

The channel which server and client use to communicate is called SOCKET When a server wants to start listening it must create a socket bound to a port. The port is specified with a number. www.thisserver.jp 4444 A SERVER 1 3333 A SERVER 2 A SERVER 3 5555 If a client wants to communicate with server 1 should try to communicate with computer www.thisserver.jp through port 4444

Internet : two different ways to deliver a message to another application Applications’ programmers decide on this according to their needs The UDP: User Defined Package: like writing a letter TCP or UDP

UDP: communication with datagrams DATAGRAM: an independent, self-contained message sent over the internet whose arrival, arrival time and content are not guaranteed (like regular mail in some countries....) Once a server is listening, the client should create a datagram with the server’s address, port number and, the message www.waseda1.jp www.waseda2.jp A SERVER A CLIENT ? 4444 www.waseda1.jp 4444 message

Sending datagrams with UDP protocol Then it should open a socket and send the datagram to the internet. The “routing algorithm” will find the way to the target computer www.waseda2.jp www.waseda1.jp A SERVER A CLIENT ? 3333 4444

Sending datagrams with UDP protocol Before the datagram leaves the client, it receives the address of the originating computer and the socket number www.waseda2.jp www.waseda1.jp A SERVER A CLIENT ! 3333 4444

Sending datagrams with UDP protocol After the datagram is sent, the client computer may start hearing at the port created for sending the datagram if an answer from the server is expected www.waseda2.jp www.waseda1.jp A SERVER ? A CLIENT 3333 4444

Sending datagrams with UDP protocol The server can extract the client’s address and port number to create another datagram with the answer www.waseda2.jp www.waseda1.jp A SERVER ? A CLIENT 3333 4444 answer

Sending datagrams with UDP protocol Finally is sends the datagram with the answer to the “client”. When a datagram is sent there is no guarantee that it will arrive to the destination. If you want reliable communication you should provide a checking mechanism, or use ... www.waseda2.jp www.waseda1.jp A SERVER ? A CLIENT 3333 4444

TCP: communication with data flow With TCP a communication channel between both computers is built and a reliable communication is established between both computers. This allows to send a data flow rather tan datagrams. www.waseda2.jp www.waseda1.jp A SERVER A CLIENT ? 3333 4444

TCP: communication with data flow After the client contacts the server, a reliable channel is established. After this, client and server may begin sending data through this channel. The other should be reading this data: They need a protocol !!!! www.waseda2.jp www.waseda1.jp bla bla A SERVER bla A CLIENT bla 3333 4444

TCP: How is reliability achieved ? The internet itself works only with the datagram paradigm. Internet frames are may “get lost” (destroyed): For every frame delivered carrying a part of the data flow there is a confirmation! Sending bla bla bla Sending 1st bla Ack 1st bla Sending 2nd bla Ack 2nd bla Sending 3rd bla Ack 3rd bla

What if a message get lost ? The server waits a certain amount of time. If it does not receive any confirmation it sends the message again. Sending 1st bla Sending bla bla bla Ack 1st bla Sending 2nd bla LOST !!! Sending 2nd bla again No confirmation !!! Ack 2nd bla

When do programmers should use UDP or TCP ? - TCP generates 6 times more traffic than UDP - It is also slower to send and receive the messages UDP TCP - Reliable - Complete - Valid in a certain period of time - No need of speed - not complete - fast - valid in a very short period of time

Mark with a + the applications that need TCP and with a = the applications that can use UDP Video conference E-Mail Web server and client Stock values every 5 seconds Temperature every second

The Multicast paradigm PROG2 PROG1 PROG2 PROG2

How do we implement this video-conference ? (why the problems) A firewall in the Chilean router does not let multicast packages go in for security reasons Rat, vic Rat, vic Rat, vic Router in chile Rat, vic A Tunnel makes computers in Accessnova and Waseda look like being in the same local network

Attending more than a client: The sequential server A SERVER A CLIENT 4444 A CLIENT

During the conversation the server is not listening at the port 444 A CLIENT A SERVER A CLIENT 4444 A CLIENT

Only after the server is ready with the first client it can listen to the port 444 again A CLIENT A SERVER A CLIENT 4444 A CLIENT

The service may be to transfer a file The service may be to transfer a file. The user at the client should first send the filename A CLIENT A SERVER A CLIENT 4444 A CLIENT

What if the server has to wait too much for a client to type in a file name ? A SERVER Timeout A CLIENT 4444 A CLIENT

Concurrent Servers: there are separate processes to attend the port and to transfer the file A CLIENT A SERVER 4444 A CLIENT A CLIENT

After the client contacts the server, the server creates another process to attend the client and keeps listening to the port 4444 for another A CLIENT A SERVER 4444 A CLIENT A CLIENT

While the new process is serving the first client, the second client can contact the server at the port 4444 A CLIENT A SERVER 4444 A CLIENT A CLIENT

And the server creates another process A CLIENT A SERVER 4444 A CLIENT A CLIENT

Now the third client contacts the server A CLIENT A SERVER 4444 A CLIENT A CLIENT

And a third slave process or thread is created A CLIENT A SERVER 4444 A CLIENT A CLIENT

Every layer has the illusion to be talking to the correspondent one in the other application A CLIENT A SERVER The UDP: User Defined Package: like writing a letter Read write sequence 4444 UDP or TCP communication A CLIENT Internet frames and addresses A CLIENT electric pulses

There are now a lot of resources between the application and transport layer which make distributed programming much easier Libraries for distributed programming (middleware) RPC, CORBA, RMI

For example, the RMI mechanism in JAVA (similar to CORBA) Other applications use and share this object (data) Creates and publishes a Remote Object