1 / 28

Dr. John P. Abraham Professor University of Texas Pan American

This chapter covers the paradigm that applications follow when communicating over the internet, including stream-oriented and message-oriented communication. It also explains the differences between stream and message transport, connection-oriented communication, and client-server model of interaction.

kinner
Download Presentation

Dr. John P. Abraham Professor University of Texas Pan American

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Dr. John P. AbrahamProfessorUniversity of Texas Pan American Internet Applications and Network Programming

  2. Chapter Covers • Paradigm that applications follow when communicating over the internet • Socket application programming interface – Socket API

  3. 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

  4. 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.

  5. 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.

  6. Connection-oriented communication • Similar to a telephone call. • Establish connection, talk, terminate connection • See algorithm on page 30.

  7. 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

  8. 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

  9. 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.

  10. 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.

  11. 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.

  12. 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.

  13. Network Programming and the Socket API

  14. SOCKETS PRIMER By Dr. John P. Abraham University of Texas Pan American

  15. 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

  16. 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

  17. TCP or UDP THE TRANSPORT PROTOCOL CAN USE EITHER TCP OR UDP PROGRAMMER NEEDS TO SPECIFY WHICH IS BEING USED

  18. 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

  19. 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

  20. 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.

  21. SOME WELL KNOWN PORTS

  22. Winsock properties

  23. Winsock Methods

  24. 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

  25. 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

  26. 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 data-gram based. • The most widely used protocol TCP is used for stream-based communication and UDP is used for data-grams based applications.  .

  27. 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.

More Related