New version page

UB CSE 421 - Socket Abstraction and Interprocess Communication

Documents in this Course
Security

Security

28 pages

Threads

Threads

24 pages

Security

Security

20 pages

Security

Security

52 pages

Security

Security

20 pages

Load more
Upgrade to remove ads

This preview shows page 1-2-22-23 out of 23 pages.

Save
View Full Document
Premium Document
Do you want full access? Go Premium and unlock all 23 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 23 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 23 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 23 pages.
Access to all documents
Download any document
Ad free experience

Upgrade to remove ads
Unformatted text preview:

Socket Abstraction and Interprocess CommunicationTopicsIntroductionPurposes of IPCIPC using socketsWhat are sockets?Sockets and portsInter Process CommunicationSocket NamesSocket typesFunctions : creationFunctions - bindFunctions -bind (contd.)Functions (contd.) - closeFunctions (contd.) - connectFunctions (contd.) -sendingFunctions(contd.) - receivingFunctions (contd.) -listenFunctions (contd.) - acceptFunctions (contd.) - getsocknameSockets used for datagramsSockets used for streamsSockets on Unix01/14/19 B.R 1Socket Abstraction and Interprocess CommunicationB.RamamurthyCSE42101/14/19 B.R 2TopicsPipes (process level)Sockets (OS level)Distributed System Methods(Java’s) Remote Method Invocation (PL Level)Other communication paradigms01/14/19 B.R 3IntroductionTypical applications today consist of many cooperating processes either on the same host or on different hosts. For example, consider a client-server application. How to share (large amounts of ) data? Share files? How to avoid contention? What kind of system support is available? We want a general mechanism that will work for processes irrespective of their location.01/14/19 B.R 4Purposes of IPCData transferSharing dataEvent notificationProcess control01/14/19 B.R 5IPC using socketsWhat if wanted to communicate between processes that have no common ancestor? Ans: socketsIPC for processes that are not necessarily on the same host.Sockets use names to refer to one another. Means of network IO.01/14/19 B.R 6What are sockets? Socket is an abstraction for an end point of communication that can be manipulated with a file descriptor.It is an abstract object from which messages are sent and received.Sockets are created within a communication domain just as files are created within a file system.A communication domain is an abstraction introduced to bundle common properties of processes communicating through sockets. Example: UNIX domain, internet domain.01/14/19 B.R 7Sockets and portsmessageagreed portany portsocketsocketInternet address = 138.37.88.249Internet address = 138.37.94.248other portsclientserver01/14/19 B.R 8Inter Process CommunicationIP address and port number. In IPv4 about 216 ports are available for use by user processes. UDP and TCP abstraction of the above is a socket.Socket is associated with a protocol.IPC is transmitting a message between a socket in one process to a socket in another process.Messages sent to particular IP and port# can be received by the process whose socket is associated with that IP and port#.Processes cannot share ports with other processes within the computer. Can receive messages on diff ports.01/14/19 B.R 9Socket NamesApplications refer to sockets by name.But within the communication domain sockets are referred by addresses.Name to address translation is usually done outside the operating system.01/14/19 B.R 10Socket typesThe format in which an address is specified is according to a domain: AF_UNIX (address format of UNIX) - a path name within the file system,AF_INET (internet format) : network address, port number etc.Communication style: stream , datagram, raw or sequenced packetsStream : reliable, error-free, connection-oriented comm.Datagram: Connectionless, unreliable, message boundaries preserved.01/14/19 B.R 11Functions : creationSocket creation : socket system call creates sockets on demand.sockid = socket (af, type, protocol);where sockid is an int,af - address family , AF_INET, AF_UNIX, AF_AAPLETALK etc.type - communication type: SOCK_STREAM, SOCK_DGRAM, SOCK_RAW etc.protocol - some domains have multiple protocol, use a 0 for your appl.Example: door1 = socket(AF_UNIX, SOCK_DGRAM,0);01/14/19 B.R 12Functions - bindSocket binding: A socket is created without any association to local or destination address. It is possible to bind the socket to a specific host and in it a specific port number.socerr = bind (sockid, localaddr, addrlength)localaddr - a struct of a specific format for each address domain; addrlength - is the length of this struct; obtained usually by sizeof function.01/14/19 B.R 13Functions -bind (contd.)Example: type sockaddr_un defines localaddr format for unix family.its definition, (you don’t have to define it... it is in un.h file - include this file)struct sockaddr_un { short sun_family; char sun_path[108]; };in your program:#define SocName “testsock”sockaddr_un mysoc;mysoc.sun_family = AF_UNIX;strcpy(mysoc.sun_path, SocName);binderr = bind(sockid, &mysoc, sizeof(mysoc));01/14/19 B.R 14Functions (contd.) - closeclose (socid); closes the specified socket. This is done by a process or thread when it no longer needs the socket connection. Premature closing results in “broken pipe” error.When a socket is created it is represented by a special file (‘s’ in the place where d appears for directory files when you ls -l).The name of the file is the name assigned in the socket bind command.01/14/19 B.R 15Functions (contd.) - connectA socket is created in an unconnected state, which means that the socket is not associated with any destination.An application program should call connect to establish a connection before it can transfer data thru’ reliable stream socket. For datagrams connect is not required but recommended.connect ( sockid, destaddr, addlength);Example: if (connect(sock, &server, sizeof(server)) < 0) ...“sendto” command does not need “connect”01/14/19 B.R 16Functions (contd.) -sendingFive different system calls : send, sendto, sendmsg, write, writevsend, write and writev work only with connected sockets. No parameter for destination address. Prior connect should be present for communication. Example : write (sock, DATA, sizeof(DATA));sendto (socket, message, length, flags, destaddr, addlen);flags allow for special processing of messages. Use 0 in your appln.sendmsg is same as sento except that it allows for different message structure.01/14/19 B.R 17Functions(contd.) - receivingFive different calls are available: read, readv, recv, recvfrom, recvmsgread, readv, and recv are for connection-oriented comm.read(socdescriptor, buffer, length); Example: read(sock, buf, 1024);For your application (project) you may use read.For connectionless, datagram-kind : recvfrom(same set of params as sendto); except that message length and addr length return values.01/14/19 B.R 18Functions (contd.) -listenaccept and listen are connection-oriented communication.These are for AF_INET, SOCK_STREAM type of sockets.listen:


View Full Document
Download Socket Abstraction and Interprocess Communication
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Socket Abstraction and Interprocess Communication and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Socket Abstraction and Interprocess Communication 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?