We think you have liked this presentation. If you wish to download it, please recommend it to your friends in any social system. Share buttons are a little bit lower. Thank you!
Presentation is loading. Please wait.
Published byLamar Horrell
Modified about 1 year ago
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Socket Programming 0
Janice Regan © The socket interface The socket interface is used in application programs to specify the interface between the application program and the transport layer protocol software (TCP, UDP) The form of the interface (API) is not specified in the protocol, it may vary for different OS’s and between different computer languages. The socket interface discussed here is the Python interface which is based on the BSD UNIX socket The Python interface is similar to the BSD UNIX C interface but easier to use.
Janice Regan © IO: FILE vs. NETWORK When reading or writing a file a file descriptor is used to specify the file referred to A file is opened using a particular file descriptor, binding the file or device to that file descriptor Data is read from and/or written to file to read or write need at least three pieces of information File descriptor Buffer (holds data read from file or data being written to the file) Number of bytes to read/write (or size of buffer) File is closed
Janice Regan © NETWORK IO A socket is a communication endpoint, the socket descriptor is an integer describing a particular socket A socket is not automatically bound to a particular IP or port The application programmer can choose when to bind the socket to a IP and port, or to let the OS bind to a IP and port at runtime Two sockets can be connected to form a connection When a connection is made it is assigned a connection identifier When sending or receiving data across a network connection we write or read to a connection identifier
Janice Regan © IO: FILE vs. NETWORK When reading or writing through a socket a connection descriptor is used to specify the particular connection A socket is connected to another socket (communication endpoint) to create a connection A created connection has a connection identifier Data can then be transferred from one endpoint to the other. Once the sockets are connected the connection descriptor can be used like a file descriptor When the data transfer is complete the connection is closed
Janice Regan © Establish connection socket( ) connect( ) accept( ) listen( ) bind( ) socket( ) TCP server TCP client Connection establishment TCP 3-way handshake Well known port Blocks until connection from client
TCP server (Python) for socket import * serverPort = 1200 serverSocket = socket.socket(AF_INET, SOCK_STREAM) serverSocket.bind((‘ ‘,serverPort)) serverSocket.listen(1) print ‘The server is ready to receive’ while 1; connectionSocket.addr = serverSocket.accept() sentence = connetionSocket.recv(1024) capitalizedSentence = sentence.upper() connectionSocket.send(capitalizedSentence) connection Socket.close() : Janice Regan ©
TCP client (Python) from socket import * serverName = ‘servername’ serverPort = 1200 clientSocket = socket.socket( AF_INET, SOCK_STREAM ) clientSocket.connect (serverName,serverPort) clientSocket.send (sentence) modifiedSentence = clientSocket.recv(1024) clientSocket.close; Janice Regan ©
8 TCP Data Transfer: write( ) read( ) close( ) read( ) write( ) Process request close( ) Data (request) Data (reply) End of file notification TCP client TCP server
Janice Regan © UDP Data Transfer sendto( ) recvfrom( ) bind( ) socket( ) sendto( ) socket( ) Data (request) Blocks until connection from client Process request recvfrom( ) UDP client Data (reply) close( )
Janice Regan © The socket method: socket(AF_INET, SOCK_STREAM, PROTOCOL ) The family indicates the family of protocols that will use the socket (AF_INET for IPv4, AF_INET6 for IPv6) The type indicates the particular type of transfer that will be used (SOCK_STREAM for TCP, SOCK_DATAGRAM for UDP, SOCK_RAW for raw data) The protocol indicates the particular protocol to use (usually 0)
Janice Regan © Creating a socket socketfd = socket.socket ( AF_INET, SOCK_STREAM); socket is the socket descriptor for the newly created IPv4 TCP socket This socket is not yet associated with any communication endpoint (IP address, port pair) The socket is an active socket (for use in active connection mode) You can see all the possible values for protocol family, protocol type and protocol in the descriptions of the python interface available online
Janice Regan © The bind function The bind function associates the socket descriptor with a local (same host that the process doing the bind is running on) communication endpoint socketfd.bind( ‘ ‘, serverPort ) ‘ ‘ means all available interfaces, this means the server will accept requests regardless of which of its interfaces the requests arrive on
Janice Regan © local communication endpoints The local port and IP address of the host’s interface can be determined automatically within the sockets software at run time. If a port or IP address is not specified then: An interface to the network will be specified for you (local IP address) An available (ephemeral) port on the host will be chosen to associate with the endpoint Normally servers bind to a specified port, clients allow the OS kernel to choose an interface (the one that can connect to the server) and an ephemeral port
Janice Regan © Specifying Destination Address In the connect function associates the socket descriptor with a destination address [(IP address, port) port pair specifying the destination connection endpoint] For TCP this function initiates the three way handshake. A client normally requests a connection using the connect function. A server normally waits for that connect request. A socket can be connected regardless of whether it has been bound to a local address. If no call has been made to bind the OS kernel will assign the local ephemeral port and select a local IP address
Janice Regan © The connect function socketfd.connect( servername, serverport) The socket address specifies the IP address and port number of the destination connection endpoint
Janice Regan © Waiting for a connection The listen function converts an unconnected socket into a passive socket. When created using socket the socket is an active socket Listen is usually used by a server process. The OS kernel queues requests for connection to the passive socket.
Janice Regan © The listen function socketfd.listen( backlog ) The backlog indicates the maximum number of connections the kernel (OS) should queue for this socket.
Janice Regan © Closing a connection The close functions default results are mark the socket with socket descriptor sockfd as closed For a TCP connection, start the three way handshake to terminate the connection by sending a FIN Prevents further use of the socket by the application Allows any previously queued data to be sent before closing the connection socket.close( )
Janice Regan © The socket interface We have discussed the basics of the socket interface when dealing with a simple iterative server and clients The server will queue connect requests from different clients and deal with them one by one For short requests like sending a single packet this can work well For longer requests that take significant processing time this is not efficient, we would like the server to be able to deal with the requests simultaneously The solution is to use a concurrent server, that makes a copy of itself or child to deal with each client
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Principles of reliable data transfer 0.
Application Layer 2-1 ESERCITAZIONE SOCKET PROGRAMMING.
Chapter 2 Applications and Layered Architectures Sockets.
Elementary TCP Sockets Chapter 4 UNIX Network Programming Vol. 1, Second Ed. Stevens.
Jozef Goetz, Application Layer PART VI Jozef Goetz, Position of application layer The application layer enables the user, whether human.
Discussion 2 - Sockets Programming TCP UDP - Applets HTTP Delay Estimation DNS queries.
1 K. Salah Application Layer Module K. Salah Network layer duties.
Elementary TCP Sockets Unix Network Programming Ch # 4.
2: Application Layer1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
Networks: TCP/IP Socket Calls1 Elementary TCP Sockets Chapter 4 UNIX Network Programming Vol. 1, Second Ed. Stevens.
CS 6401 UNIX Sockets Outline UNIX sockets. CS 6402 Berkeley Sockets Networking protocols are implemented as part of the OS –The networking API exported.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Application Layer PART VI.
CSE/EE 461 Getting Started with Networking. 2 Basic Concepts A PROCESS is an executing program somewhere. –Eg, “./a.out” A MESSAGE contains information.
Socket Programming. Outline of the Talk Basic Concepts Socket Programming in C Socket Programming in Java Socket Programming in Perl Conclusion.
Application Network programming Using Java. Application Layer2-2 Socket programming socket: door between application process and end-end-transport protocol.
The Socket Interface Chapter 22. Introduction This chapter reviews one example of an Application Program Interface (API) which is the interface between.
CSE/EE 461 Getting Started with Networking. Basic Concepts A PROCESS is an executing program somewhere. Eg, “./a.out” A MESSAGE contains information.
CS 6401 Introduction to Computer Networks 09/21/2010 Outline - UNIX sockets - A simple client-server program - Project 1 - LAN bridges and learning.
Server Sockets: A server socket listens on a given port Many different clients may be connecting to that port Ideally, you would like a separate file descriptor.
Socket Programming. Sockets are a protocol independent method of creating a connection between processes. Sockets can be either connection based (TCP:
1 Spring Semester 2008, Dept. of Computer Science, Technion Internet Networking recitation #7 Socket Programming.
Lecture 3 TCP and UDP Sockets CPE 401 / 601 Computer Network Systems slides are modified from Dave Hollinger.
Internet Networking Tutorial 8 Socket Programming.
Chapter 17 Networking Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William Stallings.
ECE 4110 – Internetwork Programming Client-Server Model.
1 Chapter Client-Server Interaction. 2 Functionality Transport layer and layers below Basic communication Reliability Application layer.
Socket The combination of an IP address and a port number. (RFC 793 original TCP specification) The name of the Berkeley-derived application programming.
Client-Server Model Data Communications and Networking (Third Edition) by Behrouz A. Forouzan.
1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture and Protocols Socket Programming Instructor: Dr. Mohamed Hefeeda.
Ｌ 2 － 1 ３（ 1/ ２０） : Java Network Programming. The Socket API The previous contents describe client-server interaction that application programs use when.
The Socket Interface Chapter 21. Application Program Interface (API) Interface used between application programs and TCP/IP protocols Interface used between.
1 Java Socket Support Presentation by: Lijun Yuan Course Number: cs616 Course Name: Software Engineering.
TCP (Transport Control Protocol) is a connection-oriented protocol that provides a reliable flow of data between two computers. TCP/IP Stack Application.
1 Computer Networks An Introduction to Computer Networks University of Tehran Dept. of EE and Computer Engineering By: Dr. Nasser Yazdani Lecture 3: Sockets.
Programming with TCP – I 1. Timeline of a Typical Scenario 2. TCP Server Functions socket() bind() listen() accept() 3. TCP 3–Way Handshaking 4. TCP Client.
1 Dimension of Server Designs r Iterative vs Concurrent r Connection-oriented vs. connectionless r Stateful and stateless m Constrained by application.
1 Generic Transport Service Primitives Listen –notify Transport layer a call is expected Connect –establish Transport layer connection Send (or Write)
Elementary TCP Sockets© Dr. Ayman Abdel-Hamid, CS4254 Spring CS4254 Computer Network Architecture and Programming Dr. Ayman A. Abdel-Hamid Computer.
Sockets CIS 370 Fall 2009, UMassD. Introduction Sockets provide a simple programming interface which is consistent for processes on the same machine.
2: Application Layer1 Chapter 2: Application layer r 2.1 Principles of network applications r 2.2 Web and HTTP r 2.3 FTP r 2.4 Electronic Mail SMTP,
Socket Programming. Basics Socket is an interface between application and network – Application creates a socket – Socket type dictates the style of communication.
1 CMPT 471 Networking II Network Programming © Janice Regan,
1 Socket Interface. 2 Client-Server Architecture The client is the one who speaks first Typical client-server situations Client and server on the same.
Inter-Process Communication 9.1 Unix Sockets You may regard a socket as being a communication endpoint. –For two processes to communicate, both must create.
Chapter 26 Client Server Interaction Communication across a computer network requires a pair of application programs to cooperate. One application on one.
CSCI 330 UNIX and Network Programming Unit XV: Transmission Control Protocol.
CS3771 Today: network programming with sockets Previous class: network structures, protocols Next: network programming Sockets (low-level API) TODAY!
© 2017 SlidePlayer.com Inc. All rights reserved.