The InetAddress Class - PowerPoint PPT Presentation

About This Presentation
Title:

The InetAddress Class

Description:

2- A client who knows it, sends a request and waits for the answer. A SERVER. Web. resources ... The server waits a certain amount of time. ... – PowerPoint PPT presentation

Number of Views:349
Avg rating:3.0/5.0
Slides: 31
Provided by: nelsonb4
Category:

less

Transcript and Presenter's Notes

Title: The InetAddress Class


1
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
  • InetAddress n InetAddress.getLocalHost()
  • InetAddress n InetAddress.getByName(nombre)
  • The most important methods
  • String nombre n.getHostName()
  • String direccion n.getHostAddress()
  • See the example InetExample.java Names.java

2
Why distributed systems
  • - Share resources
  • - Communicate people
  • Performance, scalability
  • Fault tolerant systems

3
We know already how computers communicate but...
4
... how do programs communicate?
PROG1
PROG2
They need to establish a protocol ! - Who send
the data first - What kind of data - How to
react to the data
5
Every layer has the illusion of talking to the
same one located at the other host
A CLIENT
The UDP User Defined Package like writing a
letter
Read write sequence
A SERVER
4444
UDP or TCP communication
A CLIENT
Internet frames and addresses
A CLIENT
electric pulses
6
Decisions when Developing a Distributed System
  • Which service from the transport layer are we
    going to use (TCP, UDP, or a middleware)
  • Software architecture replicated, centralized
  • Communications architecture centralized,
    networked
  • Server design concurrent, iterative, stateless,
    with state
  • Etc

7
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
8
Nowadays there is a lot of middleware which make
distributed programming much easier
Libraries for distributed programming (middleware)
RPC, CORBA, RMI
9
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
10
1- The server opens a channel and starts
listening to requests.
A SERVER
?
1
THE INTERNET
Web resources
A CLIENT
11
2- A client who knows it, sends a request and
waits for the answer
A SERVER
2
THE INTERNET
Web resources
2
A CLIENT
12
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
13
Why Client/Server ?
  • It is a communication protocol model
    (listener/caller)
  • TCP/IP does not provide any mechanism which would
    start running a program in a computer when a
    message arrives. A program must be executing
    BEFORE the message arrives in order to establish
    a communication (daemons).
  • Is there really no other mean to communicate ?
  • Multicasting (but the sender does not know who is
    receiving and in this case there is no dialogue)
  • What are the protocol ports of a server machine ?
  • It is a virtual address inside the machine at a
    server listening to client requirements asking
    for a certain service. In most Unix machines
    there are well known ports which are associated
    to a server program providing a service trough a
    protocol. Port number and protocol should be well
    known.

14
Protocols for Communication
  • Parameterized client applications
  • Generalizing the application scope. For example
    Unix telnet can be used for requesting other
    services try telnet host 7, telnet host 13 y
    telnet host 80)
  • When designing client applications include
    parameters to fully specify machine and port to
    which the application should communicate trough
    its implemented protocol.
  • Servers with or without Connection
  • The modalities connectionless style and
    connection-oriented style depend on the protocol
    type we use for connecting to a certain machine.
    In the TCP/IP world we have the TCP (connection
    oriented) and UDP (without connection) protocols

15
TCP or UDP Protocol decision at the transport
level
  • What does it means for the programmer/designer
  • By choosing one or the other protocol for
    establishing a connection between machines the
    programmer/designer decides about the reliability
    and speed of the communication.
  • TCP provides high reliability data are only sent
    if the communication was established. An
    underlying protocol is responsible for
    retranslating, ordering, eliminating duplicate
    packages
  • UDP reflects just what the internet does with the
    packages best effort delivery, no checking.
  • Also the programming style is quite different
  • With TCP the data is sent a flow (of bytes, in
    principle) which can be written, read as if they
    were stored in a file.
  • With UDP the programmer must assemble the package
    and send it to the internet without knowing if it
    will arrive its pretended destination

16
When to use one or another
  • Considerations
  • TCP imposes a much higher load to the network
    than UDP (almost 6 times)
  • We can expect high package loss when the
    information travels trough many routers.
  • Inside a LAN UDP communications may be reliable
    is there is not much traffic. Although with some
    congestion we can expect some packages to be lost
    inside the LAN
  • In general, it is recommended especially for
    beginners (but also to skilled programmers) to
    use only TCP to develop distributed applications.
    Not only it is more reliable but the programming
    style is also simpler. UDP is normally used if
    the application needs to implement hardware
    supported broadcasting or multicasting, or if the
    application cannot tolerate the overload of TCP

17
The channel which server and client use to
communicate (either int TCP or UDP) 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
18
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 servers address, port
number and, the message
www.waseda1.jp
www.waseda2.jp
A SERVER
A CLIENT
?
4444
www.waseda1.jp
4444
message
19
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
20
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
21
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
22
Sending datagrams with UDP protocol
The server can extract the clients address and
port number to create another datagram with the
answer
www.waseda2.jp
www.waseda1.jp
A SERVER
A CLIENT
?
3333
4444
answer
23
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
24
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
25
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
A CLIENT
bla
bla
3333
4444
26
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
27
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
28
The Window for improving efficiency
The transmitter will handle a set of not
acknowledged packets
Sending 1st bla
Sending 2nd bla
Sending 3rd bla
Ack 1st bla
Ack 2nd bla
Ack 3rd bla
29
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 info
  • - fast
  • - valid in a very short period of time
  • history not important

30
Mark with a the applications to use TCP and
with a those to use UDP
Video conference
E-Mail
Web server and client
Stock values every 5 seconds
Temperature every second
Write a Comment
User Comments (0)
About PowerShow.com