4 - UTRGV Faculty Web

Download Report

Transcript 4 - UTRGV Faculty Web

Dr. John P. Abraham
Professor
University of Texas Pan American
Internet Applications and
Network Programming
Chapter Covers
 Paradigm that applications follow
when communicating over the
internet
 Socket application programming
interface – Socket API
Two basic Internet Communication
Pardigms
 Stream oriented
 Message Oriented
 Differentiate between the two
 See p 28. fig 3.1
 1 to 1 vs many to many comm
 Sequence of individual bytes vs.
sequence of packets
 Arbitrary length vs. max limit to 64k
 Most applications vs. multimedia
 Tcp vs. udp
Stream transport in the Internet
 Sequence of bytes that flows from one application
program to another.
 Browser uses the stream service.
 browser requests to the webserver, which responds
by sending the page.
 Stream mechanism transfers a sequence of bytes
without attaching meaning or inserting boundaries.
The sending application may send one byte or a block
of bytes.
 Although it delivers all bytes in sequence, the steram
paradigm does not guarantee that the chunks of
bytes passed to a receiving application correspond to
the chunks of bytes transferred by the sending
application.
Message Transport in the Internet
 The network accepts and delivers messages
 The network never delivers part of the
message nor joins multiple messages
together.
 Messages can be 1 to 1, 1 to many, or
many to 1 (application on many computers
can send messages to a given application).
 Messages can be lost, duplicated or
delivered out of order. It is up to the
programmer to ensure that the application
operates correctly.
Connection-oriented
communication
 Similar to a telephone call.
 Establish connection, talk, terminate
connection
 See algorithm on page 30.
Client Server Model of Interation
 How can a pair of applications that run on
two different computers coordinate?
 One application known as the server starts first
and awaits contact from any computer.
 The other application known as the client starts
second and initiate the connection. Must know
which server to contact.
 When the client terminates, the server waits for
another connection.
 See figure 3.2 p.30
Characteristics of clients and
servers
 Client – user invokes, application program
through the underlying OS initiates contact
with a server
 Can access multiple services as needed.
Keeps track of various connections through
ports.
 Server – handles multiple remote sessions
simultaneously, therefore needs a powerful
machine.
 Waits passively for contact from remote
clients
Server application model
 Server application starts first
 Does not need to know which client will
contact it
 Waits passively and arbitrarily long for
contact from a client
 Communicates with a client by both
sending and receiving data
 Stays running after servicing one client,
and waits of another.
Requires a server class machine. It can
accept many connections.
Client application model
 Starts after the server has started
 Must know which server to contact
 Initiate contact and then sends and
receives data
 May terminate after interacting with
the server
Any computer can be a client. It can do
other tasks such as computation.
Server Identification and
Memutliplexing
 A client sends request to a server, the server
sends response to the client.
 The internet protocols divide identification
into two parts: an identifier for the computer
(IP address) on which the server runs and
the identifier for a particular service (protocol
port number – 16bits such as 80 for web and
25 for email) on the computer.
 The DNS is used to convert the computer
name to an IP address.
 Server uses threading to accept concurrent
requests.
Circular Dependencies Among
servers
 A server can become a client for a
different server (think of 3 tier
systems).
 Programmers must be careful to avoid
circular references.
Network Programming and the
Socket API
SOCKETS PRIMER
By
Dr. John P. Abraham
University of Texas Pan
American
CLIENT/SERVER
Server side
Client side
Request and Reply
The client and server communicate
with each other through something
called Berkley socket or winsock
 Socket API is a de facto standard for
Internet communication




SOCKET
APPLICATION PROGRAMMER’S INTERFACE
(API) TO THE NETWORK (TRANSPORT
LAYER)
The socket API is integrated with I/O
When an application creates a socket to use
for Internet communication, the OS
returns a small integer descriptor that
identifies the socket
The application then passes the descriptor as
an argument when it calls functions to
perform an operation on the socket
TCP or UDP
 THE TRANSPORT PROTOCOL CAN
USE EITHER TCP OR UDP
 PROGRAMMER NEEDS TO SPECIFY
WHICH IS BEING USED
ADDRESSING
 An application must specify address
of the remote computer, the protocol
port number and whether the
application will act as a client or
server.
 SENDER AND RECEIVER MUST KNOW
EACH OTHER’S ADDRESS AND PORT.
 IP ADDRESS OR NAME OF HOSTS
 PORT NUMBER
Summary of socket functions
 See page 37 figure 3.7
 This is an important figure
 I have given some properties and
methods two slides later
PORT NUMBER
 THERRE ARE 65535 TOTAL PORTS
(16 BIT UNSIGNED)
 PORTS BELOW 1024 ARE CALLED
WELL KNOWN PORTS.
 YOU SHOULD STAY AWAY FROM THE
WELL KNOWN PORTS WHEN YOU WRITE
APPLICATIONS UNLESS YOU ARE
PROGRAMMING FOR A STANDARD
SERVICE.
SOME WELL KNOWN PORTS
SERVICE
PORT
HTTP
80
POP3
110
SMTP
25
TELNET
23
FTP
21,20
FINGER
79
LOCAL LOOPS
0
Winsock properties
Bytes
Received
Returns the number (long integer) of bytes
currently in the receive buffer. Read-only.
LocalHost
Name
Returns the name of the local host. Read
only (Available at run time).
Local IP
Returns IP assigned to the local machine.
You may use the name of the machine.
Local Port
Returns the local port number. You may set
the port number with this property. Long
integer.
Protocol
Either TCP or UDP. You can set this.
Remote Port
Set what port the remote program is using.
Winsock Methods
Accept
Server accepts requests for connection from
the client.
The listen must be running.
Close
Terminates a connection.
Get Data
Retrieves current block of data from the buffer
places in a variable. Removes from the queue.
Peek Data
Same as get Data. Does not remove data
from the queue.
Listen
Server side. Waits for a connection from
client.
Send Data
Dispatches data to remote computer.
Connect
Requests a connection to the remote computer
Socket calls in a client and
server
 Client
 Socketconnectsendrcv (repeat
sendrcv)close
 Server
 Socketbindlistenacceptrcvsend
(repeat send and rcv)close
 Following are some description about
these functions
Read and write with sockets
 You can use read and write instead of
recv and send with some os.
 The only way to learn it is to do some
programming
C# (.NET)
 The .NET framework provides two
namespaces, System.Net and
System.Net.Sockets for socket
programming.
 The communication can be either
connection oriented or connectionless. They
can also be either stream oriented or datagram based.
 The most widely used protocol TCP is used
for stream-based communication and UDP
is used for data-grams based applications.
.
Discovering IP address
 System.Net contains the Dns class.
 Dns class can be used to query
information about various things
including the IP addresses
 Dns.GetHostByName can be used to
return DNS host name of the local
machine.