Networking principles involve the transport layer and application layer. The transport layer handles basic communication and reliability, while the application layer provides abstractions like files and services.
The network transfers bits and operates at the application's request, while applications determine what to send, when to send it, where to send it, and the meaning of the bits.
All network applications use a client-server paradigm, where a server waits passively for contact from an active client. A client initiates communication with one server at a time, while a server can handle multiple clients simultaneously. Concurrency allows servers to handle multiple requests without clients waiting.
Remote Procedure Calls (RPC) allow a program to execute a procedure in another address space without needing to know where it is located. RPC uses client and server stubs that conceal the underlying message passing between client and server processes. The client stub packs the procedure call into a message and sends it to the server stub, which unpacks it and executes the procedure before returning any results. This makes remote procedure calls appear as local procedure calls to improve transparency. IDL is used to define interfaces and generate client/server stubs automatically to simplify development of distributed applications using RPC.
Remote Procedure Call (RPC) Server creation semantics & call semanticssvm
Remote procedure contains the Server different semantics this presentation contains the complete idea of the server Creation and call semantics with its working
The STUN protocol allows clients to discover their public IP address and port when they are behind a NAT. It works by having a client send a request to a STUN server, which responds with the client's reflexive transport address as seen by the server. STUN can also be used to check connectivity and maintain NAT bindings over time. It defines a packet format with a header and attributes, as well as request/response and indication transactions. Common usages of STUN include ICE for NAT traversal and SIP outbound for VoIP calls. The document discusses STUN operations, messages, attributes and security considerations.
The document discusses three RPC communication protocols:
1. The R protocol uses asynchronous communication with only request messages and no reply. This improves performance.
2. The RR protocol fits requests and replies into a single packet and caches replies to reduce overhead.
3. The RRA protocol adds acknowledgements to replies to make communication more reliable as it ensures replies are received.
1) RPC (Remote Procedure Call) allows a client to call procedures or functions on a remote server. The client specifies the server address and port to communicate.
2) An RPC system requires three files - an X file defining remote functions, a server C++ file implementing these functions, and a client C++ file to call the functions.
3) The tutorial provides example code of these three files to demonstrate a simple message passing between an RPC client and server. The client can call the "printmessage" function defined on the server to display a message.
RPC allows for remote procedure calls to be made across distributed systems in a similar way to local procedure calls. RPC uses stubs to pack and unpack arguments and results so that the calls appear transparent whether local or remote. RPC messages contain information about the procedure, arguments, and client for execution on the server and returning results. Marshalling converts data to a stream for transmission and decoding on the receiving end. Servers can be stateful, maintaining information across calls, or stateless, requiring all needed information be passed each time.
The document provides an overview of a presentation on developing the OpenFabrics Interfaces libfabric. It discusses design guidelines for libfabric, including optimizing the software path to hardware, being scalable, implementation agnostic, and open source. It then covers libfabric architecture, including modes, capabilities, object model, endpoint types, address vectors, data transfer types, and API bootstrap. It provides examples of how Gasnet usage maps libfabric objects and initialization, address exchange, and using multi-receive buffers. The presentation aims to provide a lightning fast introduction to libfabric version 1.5.
Some notes on https://tools.ietf.org/html/draft-rosenbergjennings-dispatch-ripp-03 I took while reading it.
This draft focuses on one of the aspects of VoIP: peering/trunking.
Remote Procedure Calls (RPC) allow a program to execute a procedure in another address space without needing to know where it is located. RPC uses client and server stubs that conceal the underlying message passing between client and server processes. The client stub packs the procedure call into a message and sends it to the server stub, which unpacks it and executes the procedure before returning any results. This makes remote procedure calls appear as local procedure calls to improve transparency. IDL is used to define interfaces and generate client/server stubs automatically to simplify development of distributed applications using RPC.
Remote Procedure Call (RPC) Server creation semantics & call semanticssvm
Remote procedure contains the Server different semantics this presentation contains the complete idea of the server Creation and call semantics with its working
The STUN protocol allows clients to discover their public IP address and port when they are behind a NAT. It works by having a client send a request to a STUN server, which responds with the client's reflexive transport address as seen by the server. STUN can also be used to check connectivity and maintain NAT bindings over time. It defines a packet format with a header and attributes, as well as request/response and indication transactions. Common usages of STUN include ICE for NAT traversal and SIP outbound for VoIP calls. The document discusses STUN operations, messages, attributes and security considerations.
The document discusses three RPC communication protocols:
1. The R protocol uses asynchronous communication with only request messages and no reply. This improves performance.
2. The RR protocol fits requests and replies into a single packet and caches replies to reduce overhead.
3. The RRA protocol adds acknowledgements to replies to make communication more reliable as it ensures replies are received.
1) RPC (Remote Procedure Call) allows a client to call procedures or functions on a remote server. The client specifies the server address and port to communicate.
2) An RPC system requires three files - an X file defining remote functions, a server C++ file implementing these functions, and a client C++ file to call the functions.
3) The tutorial provides example code of these three files to demonstrate a simple message passing between an RPC client and server. The client can call the "printmessage" function defined on the server to display a message.
RPC allows for remote procedure calls to be made across distributed systems in a similar way to local procedure calls. RPC uses stubs to pack and unpack arguments and results so that the calls appear transparent whether local or remote. RPC messages contain information about the procedure, arguments, and client for execution on the server and returning results. Marshalling converts data to a stream for transmission and decoding on the receiving end. Servers can be stateful, maintaining information across calls, or stateless, requiring all needed information be passed each time.
The document provides an overview of a presentation on developing the OpenFabrics Interfaces libfabric. It discusses design guidelines for libfabric, including optimizing the software path to hardware, being scalable, implementation agnostic, and open source. It then covers libfabric architecture, including modes, capabilities, object model, endpoint types, address vectors, data transfer types, and API bootstrap. It provides examples of how Gasnet usage maps libfabric objects and initialization, address exchange, and using multi-receive buffers. The presentation aims to provide a lightning fast introduction to libfabric version 1.5.
Some notes on https://tools.ietf.org/html/draft-rosenbergjennings-dispatch-ripp-03 I took while reading it.
This draft focuses on one of the aspects of VoIP: peering/trunking.
Remote Procedure Calls (RPC) allow clients and servers to communicate by extending the concept of local procedure calls so that the called procedure need not exist in the same address space. RPC uses message passing and stubs to conceal the underlying communication and make remote calls appear local. The RPC model involves a client, client stub, RPC runtime, server stub, and server. Stubs handle packing arguments, sending requests, and returning results to maintain transparency.
Overview of the Sun Remote Procedure Call (ONC RPC) technology
RPC allows a client application to call procedures in a different address space on the same or on a remote machine (= transfer of control and data to a different address space and process).
This means that RPC extends sockets with remote procedure call semantics. Thus RPC is an early approach for distributed applications.
Different flavors of RPC evolved over time. An early standard was set forth by Sun Microsystems with ONC RPC. It is defined in RFC1057 (protocol) and RFC4506 (XDR - data presentation).
The binder (formerly portmapper) is a central component of the RPC architecture. It is a deamon that serves as a registry for registering server procedures and allows a client to lookup procedures for being called remotely.
RPC defines three different call semantics. Maybe call semantics mean that a request may be lost without further notice by the RPC system. For applications requiring higher quality of service, at-least-once call semantics ensure that the call is successfully executed at least once. However, the call may be duplicated in case of packet loss. Exactly-once call semantics provide assurance that the call is executed at least and at most once.
TCP and UDP are the main protocols used for network programming with sockets. TCP provides reliable connections using three-way handshakes and four-way handshakes for connection establishment and termination. UDP provides simpler datagram transmissions without establishing connections. Sockets provide an interface for applications to communicate over networks, with socket addresses containing IP addresses and ports. HTTP is a widely used request-response protocol that can use various request methods like GET and POST to transfer resources over TCP connections. Unix systems support multiple I/O models including blocking I/O, non-blocking I/O, I/O multiplexing, signal-driven I/O, and asynchronous I/O.
1. Asynchronous Transfer Mode (ATM) is a cell-switching and multiplexing technology that combines the benefits of circuit switching and packet switching. It uses fixed-length cells to carry information across networks.
2. ATM networks are built using ATM switches and end-points. Switches are connected via User-Network Interfaces (UNI) and Network-Network Interfaces (NNI). Common ATM end-points include workstations, routers, and video codecs.
3. ATM provides guaranteed bandwidth through virtual circuits established over packet-switched networks. It is highly scalable and efficient for transmitting voice and video due to its small, fixed-length cells.
This document provides an introduction and overview of Remote Procedure Call (RPC). It discusses what RPC is, why it is used, how RPC operates, how it is implemented in Windows, provides a practical example of implementing RPC, and discusses how RPC is used in QFS. Key points include that RPC allows a process to call a procedure in a different address space, possibly on a different machine, and hides the remote interaction. It operates by marshaling parameters for transmission over the network and making function calls to send the request and receive the response.
RTP is a protocol for transporting real-time multimedia data like audio and video over IP networks. It works with RTCP for feedback on data delivery. RTP packet headers include fields for payload type identification, sequence numbering, timestamps, and SSRC for stream source identification. SIP establishes and manages multimedia sessions and calls over IP, allowing participants to negotiate media encodings and manage calls through actions like adding streams, changing encoding, or inviting others. SIP messages are ASCII text sent over UDP or TCP and it requires message acknowledgment.
This document discusses remote procedure calls (RPC) which allow a client to execute a procedure on a remote server. It describes how RPC works by using stubs on the client and server sides to handle parameter marshalling and network communication. Issues like different machine types, data representation, and pointer passing during RPC are also covered. The document concludes by explaining how dynamic binding allows RPC to work flexibly across different servers through an interface registry and handle lookup.
This document summarizes remote procedure calls (RPC), remote method invocation (RMI), and event-based distributed programming models. It discusses RPC and RMI architectures including client stubs, server skeletons, and dispatchers. Middleware provides location and protocol transparency. Interfaces specify accessible methods. The document also covers a Java RMI case study of a shared whiteboard application that uses callbacks to notify clients of updates.
This document provides an overview of Open Fabric Interfaces (OFI), which are high-performance APIs that allow applications to access fabric hardware with low latency. OFI defines interfaces for control, communication, completion, and data transfer services. It has an object-oriented design with objects like fabrics, domains, endpoints, and memory regions. OFI supports both connected and connectionless communication models and is agnostic to the underlying networking protocols and hardware implementations.
This document provides an overview of socket programming. It discusses what sockets are, which are endpoints for communication between an application and the TCP/IP protocol stack. Sockets are represented by file descriptors that allow applications to read and write data to the network. It then covers protocols like TCP and UDP, the client-server programming paradigm, and the common socket API. TCP provides reliable, in-order connections, while UDP is unreliable but supports broadcasting. Sample code demonstrates how sockets are created and used in both TCP and UDP client-server applications.
This document discusses various web communication protocols used for connectivity of devices over constrained and unconstrained environments. It describes protocols like CoAP, DTLS, JSON and TLV formats that allow small devices with limited resources to communicate securely over the web. CoAP is a specialized web transfer protocol that uses request/response model and supports resource discovery. DTLS provides security services like integrity, authentication and confidentiality for UDP-based applications. JSON and TLV are compact data formats used for message transmission.
The document provides an overview and agenda for the libfabric software interface. It discusses the design guidelines, user requirements, software development strategies, architecture, providers, and getting started with libfabric. The key points are that libfabric provides portable low-level networking interfaces, has an object-oriented design, supports multiple fabric hardware through providers, and gives applications high-level and low-level interfaces to optimize performance.
This document provides an introduction to middleware and web service concepts. It defines middleware as software that connects software components across platforms and networks. The document then discusses key concepts of distributed middleware including serialization, data presentation, distributed garbage collection, localization and discovery, interaction models, wire protocols, service descriptions, target domains, and platform dependence. It also provides a classification of various middleware technologies such as RPC, transaction processing monitors, database access middleware, distributed tuples, distributed object technology, message-oriented middleware, web services, peer-to-peer middleware, and grid middleware. Finally, it compares some concepts across different middleware technologies.
Libfabric is a new application programming interface (API) called OpenFabrics Interfaces (OFI) that was designed to meet the performance and scalability requirements of high-performance computing applications. It provides communication services that are independent of the underlying networking protocols or hardware. The key goals of OFI included improving upon existing APIs, engaging a wide range of user communities to understand requirements, and designing an API that is closely aligned with how applications use networks. OFI consists of the libfabric library that defines the user-space API, as well as provider libraries that implement the API and interface with specific networking hardware.
HHM-2833: Where is My Message?: Using IBM MQ Tools to Work Out What Applicati...Matt Leming
Every MQ infrastructure team member has been asked this question, and most developers who have worked with MQ have asked it:
"Where is my message?" In this session, we look into the tools that MQ provides to find your messages.
We demonstrate how to analyze the MQ recovery log on distributed platforms to find out what happened to your persistent messages,
with the assistance of a new tool. We also look at how to trace the route messages take through your MQ infrastructure, and how to generate
and analyze activity reports showing the behavior of MQ applications.
This document provides an outline for a lecture on JavaScript. It covers an introduction to JavaScript, its capabilities, versions, embedding JavaScript code, and basic topics like variables, data types, and control structures. It also discusses the future of JavaScript and provides some simple examples of JavaScript code.
This document provides an overview of computer and web security concepts that will be covered in an IT security course. The course will cover topics such as encryption, digital signatures, firewalls, viruses, and access control methods. It defines computer security as protecting systems from threats to preserve confidentiality, integrity and availability of information and resources. It discusses the need for security due to increasing computer crimes, vulnerabilities, and risks from networks and systems being interconnected. Common security requirements like secrecy, integrity, authenticity, availability and access control are also introduced.
Remote Procedure Calls (RPC) allow clients and servers to communicate by extending the concept of local procedure calls so that the called procedure need not exist in the same address space. RPC uses message passing and stubs to conceal the underlying communication and make remote calls appear local. The RPC model involves a client, client stub, RPC runtime, server stub, and server. Stubs handle packing arguments, sending requests, and returning results to maintain transparency.
Overview of the Sun Remote Procedure Call (ONC RPC) technology
RPC allows a client application to call procedures in a different address space on the same or on a remote machine (= transfer of control and data to a different address space and process).
This means that RPC extends sockets with remote procedure call semantics. Thus RPC is an early approach for distributed applications.
Different flavors of RPC evolved over time. An early standard was set forth by Sun Microsystems with ONC RPC. It is defined in RFC1057 (protocol) and RFC4506 (XDR - data presentation).
The binder (formerly portmapper) is a central component of the RPC architecture. It is a deamon that serves as a registry for registering server procedures and allows a client to lookup procedures for being called remotely.
RPC defines three different call semantics. Maybe call semantics mean that a request may be lost without further notice by the RPC system. For applications requiring higher quality of service, at-least-once call semantics ensure that the call is successfully executed at least once. However, the call may be duplicated in case of packet loss. Exactly-once call semantics provide assurance that the call is executed at least and at most once.
TCP and UDP are the main protocols used for network programming with sockets. TCP provides reliable connections using three-way handshakes and four-way handshakes for connection establishment and termination. UDP provides simpler datagram transmissions without establishing connections. Sockets provide an interface for applications to communicate over networks, with socket addresses containing IP addresses and ports. HTTP is a widely used request-response protocol that can use various request methods like GET and POST to transfer resources over TCP connections. Unix systems support multiple I/O models including blocking I/O, non-blocking I/O, I/O multiplexing, signal-driven I/O, and asynchronous I/O.
1. Asynchronous Transfer Mode (ATM) is a cell-switching and multiplexing technology that combines the benefits of circuit switching and packet switching. It uses fixed-length cells to carry information across networks.
2. ATM networks are built using ATM switches and end-points. Switches are connected via User-Network Interfaces (UNI) and Network-Network Interfaces (NNI). Common ATM end-points include workstations, routers, and video codecs.
3. ATM provides guaranteed bandwidth through virtual circuits established over packet-switched networks. It is highly scalable and efficient for transmitting voice and video due to its small, fixed-length cells.
This document provides an introduction and overview of Remote Procedure Call (RPC). It discusses what RPC is, why it is used, how RPC operates, how it is implemented in Windows, provides a practical example of implementing RPC, and discusses how RPC is used in QFS. Key points include that RPC allows a process to call a procedure in a different address space, possibly on a different machine, and hides the remote interaction. It operates by marshaling parameters for transmission over the network and making function calls to send the request and receive the response.
RTP is a protocol for transporting real-time multimedia data like audio and video over IP networks. It works with RTCP for feedback on data delivery. RTP packet headers include fields for payload type identification, sequence numbering, timestamps, and SSRC for stream source identification. SIP establishes and manages multimedia sessions and calls over IP, allowing participants to negotiate media encodings and manage calls through actions like adding streams, changing encoding, or inviting others. SIP messages are ASCII text sent over UDP or TCP and it requires message acknowledgment.
This document discusses remote procedure calls (RPC) which allow a client to execute a procedure on a remote server. It describes how RPC works by using stubs on the client and server sides to handle parameter marshalling and network communication. Issues like different machine types, data representation, and pointer passing during RPC are also covered. The document concludes by explaining how dynamic binding allows RPC to work flexibly across different servers through an interface registry and handle lookup.
This document summarizes remote procedure calls (RPC), remote method invocation (RMI), and event-based distributed programming models. It discusses RPC and RMI architectures including client stubs, server skeletons, and dispatchers. Middleware provides location and protocol transparency. Interfaces specify accessible methods. The document also covers a Java RMI case study of a shared whiteboard application that uses callbacks to notify clients of updates.
This document provides an overview of Open Fabric Interfaces (OFI), which are high-performance APIs that allow applications to access fabric hardware with low latency. OFI defines interfaces for control, communication, completion, and data transfer services. It has an object-oriented design with objects like fabrics, domains, endpoints, and memory regions. OFI supports both connected and connectionless communication models and is agnostic to the underlying networking protocols and hardware implementations.
This document provides an overview of socket programming. It discusses what sockets are, which are endpoints for communication between an application and the TCP/IP protocol stack. Sockets are represented by file descriptors that allow applications to read and write data to the network. It then covers protocols like TCP and UDP, the client-server programming paradigm, and the common socket API. TCP provides reliable, in-order connections, while UDP is unreliable but supports broadcasting. Sample code demonstrates how sockets are created and used in both TCP and UDP client-server applications.
This document discusses various web communication protocols used for connectivity of devices over constrained and unconstrained environments. It describes protocols like CoAP, DTLS, JSON and TLV formats that allow small devices with limited resources to communicate securely over the web. CoAP is a specialized web transfer protocol that uses request/response model and supports resource discovery. DTLS provides security services like integrity, authentication and confidentiality for UDP-based applications. JSON and TLV are compact data formats used for message transmission.
The document provides an overview and agenda for the libfabric software interface. It discusses the design guidelines, user requirements, software development strategies, architecture, providers, and getting started with libfabric. The key points are that libfabric provides portable low-level networking interfaces, has an object-oriented design, supports multiple fabric hardware through providers, and gives applications high-level and low-level interfaces to optimize performance.
This document provides an introduction to middleware and web service concepts. It defines middleware as software that connects software components across platforms and networks. The document then discusses key concepts of distributed middleware including serialization, data presentation, distributed garbage collection, localization and discovery, interaction models, wire protocols, service descriptions, target domains, and platform dependence. It also provides a classification of various middleware technologies such as RPC, transaction processing monitors, database access middleware, distributed tuples, distributed object technology, message-oriented middleware, web services, peer-to-peer middleware, and grid middleware. Finally, it compares some concepts across different middleware technologies.
Libfabric is a new application programming interface (API) called OpenFabrics Interfaces (OFI) that was designed to meet the performance and scalability requirements of high-performance computing applications. It provides communication services that are independent of the underlying networking protocols or hardware. The key goals of OFI included improving upon existing APIs, engaging a wide range of user communities to understand requirements, and designing an API that is closely aligned with how applications use networks. OFI consists of the libfabric library that defines the user-space API, as well as provider libraries that implement the API and interface with specific networking hardware.
HHM-2833: Where is My Message?: Using IBM MQ Tools to Work Out What Applicati...Matt Leming
Every MQ infrastructure team member has been asked this question, and most developers who have worked with MQ have asked it:
"Where is my message?" In this session, we look into the tools that MQ provides to find your messages.
We demonstrate how to analyze the MQ recovery log on distributed platforms to find out what happened to your persistent messages,
with the assistance of a new tool. We also look at how to trace the route messages take through your MQ infrastructure, and how to generate
and analyze activity reports showing the behavior of MQ applications.
This document provides an outline for a lecture on JavaScript. It covers an introduction to JavaScript, its capabilities, versions, embedding JavaScript code, and basic topics like variables, data types, and control structures. It also discusses the future of JavaScript and provides some simple examples of JavaScript code.
This document provides an overview of computer and web security concepts that will be covered in an IT security course. The course will cover topics such as encryption, digital signatures, firewalls, viruses, and access control methods. It defines computer security as protecting systems from threats to preserve confidentiality, integrity and availability of information and resources. It discusses the need for security due to increasing computer crimes, vulnerabilities, and risks from networks and systems being interconnected. Common security requirements like secrecy, integrity, authenticity, availability and access control are also introduced.
This document provides an overview of HTML and how to create basic web pages using HTML tags. It discusses using Notepad to write HTML code, basic text formatting tags like headings, paragraphs, and line breaks. It also covers inserting images into pages and creating hypertext links to other pages. The document is from an IT course on HTML, presented by instructor Majid Taghiloo.
The document provides an introduction to key concepts about how the web works. It explains that to use the web, a user needs a computer connected to the internet through a modem, network card, or wireless connection. The computer also requires web browser software and must be logged into the web through a service provider. Once logged in, the computer is assigned an IP address to identify its location. When a user enters a URL to request a web page, their IP address is sent along with the request so the page can be routed back to them.
PHP is a server-side scripting language commonly used for web development. It allows code to be embedded into HTML pages using tags. When a page request is received by the server, it will execute any PHP code, substitute the output into the HTML page, and send the resulting page to the client. PHP supports different data types including scalars like integers, floats and strings, as well as arrays to store multiple values.
The document summarizes key concepts related to internet applications including the domain name system (DNS), electronic mail, and file transfer. DNS allows users to use domain names instead of IP addresses and works using a distributed client-server model. Electronic mail uses addresses in the format of mailbox@computer to identify mailboxes. Messages can include headers, bodies, and attachments encoded using MIME. Mail is transferred between servers using SMTP.
The document discusses client-server architecture and interactions. It defines client-server as a network architecture that separates clients, often applications with a GUI, from servers. Clients can send requests to servers. Common server types include application, file, terminal, and mail servers. The document also discusses properties of clients and servers, browser extensions like plugins and helper applications, client-server sessions, multitier architectures, and common server applications.
The client-server model defines which processes initiate interactions and provide services. In the model, client processes request services from server processes, which provide services and return results. Clients are applications that temporarily access remote services, while servers are dedicated to providing a single service and handle multiple clients simultaneously. The two-tier model places database logic on the server, while the three-tier model separates application and data servers.
The document discusses the basics of clients, servers, and the client-server model used for internet programming and web development. A client is software that communicates with a server to request and display information, while a server distributes information and resources. Websites are collections of web pages that can be accessed through a URL and reside on a server. The client-server model involves a client process requesting a service from a server process running on a remote host according to a specific protocol.
Adding Real-time Features to PHP ApplicationsRonny López
It's possible to introduce real-time features to PHP applications without deep modifications of the current codebase.
Using WAMP you can build distributed systems out of application components which are loosely coupled and communicate in (soft) real-time.
There is no need to learn a whole new language, with the implications it has.
It also opens the door to write reactive, event-based, distributed architectures and to achieve easier scalability by distributing messages to multiple systems.
Ports and sockets allow processes on the same device to communicate over a network. Every TCP connection is uniquely identified by its two endpoints - the source port and destination port. Ports map incoming data to specific processes using port numbers between 0-65535. A socket is the endpoint of a connection and is defined by an IP address and port number combination. Sockets provide an interface for programming networks at the transport layer and allow devices to establish connections to communicate.
chapter-4-networking hjgjjgj did hfhhfhjAmitDeshai
This document provides an overview of networking concepts including client-server computing, networking basics, ports, sockets, TCP, UDP, proxy servers, internet addressing, and Java networking APIs. Some key points:
- A client-server model involves a client machine making requests to a server machine that provides a shared resource. Common server types include web, print, file, and compute servers.
- Network communication uses TCP or UDP protocols over IP addresses and port numbers to direct data between applications on different devices.
- Sockets provide an endpoint for inter-process communication and are identified by an IP address and port number combination.
- Java supports networking through classes like InetAddress, ServerSocket, Socket,
Presentation on Application layer_201.pdfprince2412001
A Network application is an application running on one host and provides a
communication to another application running on a different host.
▪ A network application development is writing programs that run on different
end systems and communicate with each other over the network.
▪ In the Web application there are two different programs that communicate with each other:
✔ Browser program running in the user's host.
✔ Web server program running in the Web server host.
Host
Host
2
Network Applications - Examples
▪ Email
▪ Web
▪ Remote Login
▪ P2P File Sharing
▪ Multi-user Network Games
▪ Streaming Stored Video (YouTube)
▪ Voice Over IP (Skype)
▪ Real-time Video Conference
▪ Social Networking
3
Network Application Architecture
1. Client-Server architecture
2. P2P (Peer to Peer) architecture
4
1. Client-Server Architecture
Client
Server:
✔ Its always-on host.
✔ It has a fixed IP address.
✔ Large cluster of host – Data Centers.
✔ E.g. Web Server
Client:
✔ It communicate with server.
✔ Its not like continuously connected.
✔ May have dynamic IP addresses.
✔ Do not communicate directly with each other.
✔ E.g. PCs, Mobiles
Server
5
2. P2P Architecture
Peer
▪ Peers (end systems) directly communicate.
▪ Get peers request service from other peers, provide service to other peers.
✔ Self Scalability – New peers bring new service capacity, as well as new service demands.
▪ Peers are alternatingly connected and change IP addresses.
✔ Complex management 6
Peer
Peer
Process Communicating
▪ What is Process?
▪ A process is an instance of a program running in a computer.
▪ We can say that process is program under execution.
▪ Within same host, two processes communicate using inter-process communication (IPC).
▪ Process in different hosts communicate by exchanging messages.
▪ Client process: A process that initiates communication.
▪ Server process: A process that waits to be contacted.
Process P1
Process P2
7
Socket
▪ A process sends messages into, and receives messages from; the
network through a software interface called a socket.
▪ A process is similar to a house and its socket is similar to its door.
✔ Sending process passes message out door.
✔ Sending process relies on transport infrastructure on other side of door to deliver message to socket at receiving process.
Process
application
proce ss
transport
network
link
physical
application
proce ss
transport
network
link
physical
socket
controlled by app developer
controlled
by OS
Internet
Socket
8
Transport Services to Applications
▪ Recall that a socket is the interface between the application process and the transport layer protocol.
▪ For develop an application, choose available transport layer protocol.
▪ Pick the protocol with the services that best match the needs of your application.
Web essentials clients, servers and communication – the internet – basic inte...smitha273566
A website is a collection of web pages that can be accessed over the internet. It is hosted on a web server and viewed using web clients like browsers. Websites can be developed using languages like HTML, JavaScript, and PHP. The internet connects computers globally using TCP/IP and allows users to access websites by domain names that resolve to IP addresses. HTTP is the main protocol used to access websites. It establishes connections between clients and servers to request and transfer web pages and other content.
The document discusses the TCP/IP protocol suite and transport layer services. Some key points:
- TCP/IP was originally developed by DARPA and later included in UNIX. It maps to the OSI layers and supports various physical/data link protocols.
- The transport layer provides logical communication between application processes on different hosts. TCP and UDP are the main transport protocols.
- TCP provides reliable, in-order byte streams using connection establishment and acknowledgments. UDP is a simpler connectionless protocol.
- Port numbers and IP addresses are used to multiplex/demultiplex segments between sockets at hosts for processes to communicate.
- TCP uses a three-way handshake to establish reliable connections between
The document is a chapter about the transport layer from an introduction to networks textbook. It discusses the purpose of the transport layer in managing end-to-end data transportation. It describes the TCP and UDP protocols, how they establish connections, ensure reliability, and multiplex communications. TCP provides reliable, ordered data streams using acknowledgments while UDP is simpler but unreliable. Applications like video benefit from UDP's low overhead whereas databases require TCP's reliability.
Module 5 Application and presentation Layer .pptxAASTHAJAJOO
The document discusses the application and presentation layers of the OSI model. It provides details on:
- The application layer protocols like HTTP, FTP, email and how they use the transport layer protocols TCP and UDP.
- The traditional client-server and new peer-to-peer paradigms used at the application layer.
- How the HTTP protocol works for the world wide web including URL structure, static/dynamic web documents, browser and server functions.
- The key components and functioning of specific application layer protocols - FTP for file transfer and email for electronic mail exchange.
Unit 4-Transport Layer Protocols-3.pptxDESTROYER39
The document discusses transport layer protocols. It covers the User Datagram Protocol (UDP), Transmission Control Protocol (TCP), and Stream Control Transmission Protocol (SCTP). For UDP, it describes its connectionless and unreliable nature, datagram format, services, and applications. For TCP, it outlines its connection-oriented and reliable design with features like congestion control, flow control, error checking, and segment structure. It also briefly introduces SCTP and its services.
The document discusses transport layer protocols. It covers User Datagram Protocol (UDP), Transmission Control Protocol (TCP), and Stream Control Transmission Protocol (SCTP). UDP is described as a connectionless protocol that does not provide reliability, flow control, or error checking. TCP is connection-oriented and provides reliable in-order delivery through features like sequencing, acknowledgements, retransmissions, flow control, and congestion control. TCP establishes connections using a three-way handshake and transmits data in segments. SCTP is also described as a reliable transport layer protocol providing some features of both TCP and UDP.
This document provides an overview of application layer protocols in the TCP/IP model. It discusses how the application layer provides services to users through logical connections. It describes standard protocols like HTTP and how nonstandard protocols can also be used. It explains the client-server and peer-to-peer paradigms used by application layer protocols to communicate. It provides details on the World Wide Web architecture and protocols like HTTP that power the web. It discusses web documents like static, dynamic, and active pages and how cookies can be used to maintain state across requests.
This document provides an overview of how clients and servers interact and the features and functions of various server and client software. It discusses how web servers, email servers, FTP clients, Telnet clients, newsgroup clients, and gopher clients work and interact with their respective server software. It covers topics like protocols, interfaces, log files, virtual hosting, access control, and more for different types of client and server applications.
18CS52 VTU Computer Network & Security
MODULE 1-Part 1
Principles of Network Applications: Network Application Architectures, Processes Communicating, Transport Services Available to Applications, Transport Services Provided by the Internet, Application-Layer Protocols. The Web and HTTP: Overview of HTTP, Non-persistent and Persistent Connections, HTTP Message Format, User-Server Interaction: Cookies, Web Caching, The Conditional GET, File Transfer: FTP Commands & Replies, Electronic Mail in the Internet: SMTP, Comparison with HTTP, Mail Message Format, Mail Access Protocols
2. Functionality
• Transport layer and layers below
– B i communication
Basic i ti
– Reliability
• Application layer
– Abstractions
• Files
• Services
• Databases
– Names
2
3. Dichotomy of Duties
• Network
– Transfers bits
– Operates at application s request
application’s
• Applications determine
– What to send
– When to send
– Where to send
– Meaning of bits
3
4. Important Point
Although an internet system provides a
, p
basic communication service, the protocol
software cannot initiate contact with, or
p f , p
accept contact from, a remote computer.
Instead, two application programs must
participate in any communication: one
participate in any communication: one
application initiates communication and
the other accepts it.
the other accepts it.
4
5. How Two Application Programs Make
Contact
• One application
– Begins execution first
g
– Waits passively at prearranged location
• A th application
Another li ti
– Begins execution later
– Actively contacts first program
• Called client‐server interaction
5
6. Client‐Server
Client Server Paradigm
• Used by all network applications
• Passive program called a server
• Active program called a client
6
7. Internet Communication
All network applications use a form of
communication known as the client‐server
paradigm. A server application waits
p
passively for contact, while a client
yf ,
application initiates communication
actively.
7
8. Characteristics of a Client
• Arbitrary application program
• Becomes client temporarily
• Can also perform other computations
• Invoked directly by user
• Runs locally on user’s computer
user s
• Actively initiates contact with a server
• Contacts one server at a time
8
9. Characteristics of a Server
• Special‐purpose, privileged program
• Dedicated to providing one service
• Can handle multiple remote clients simultaneously
• Invoked automatically when system boots
y y
• Executes forever
• Needs powerful computer and operating system
• Waits passively for client contact
• Accepts requests from arbitrary clients
9
10. Terminology
• Server
– An executing program that accepts contact over
gp g p
the network
• Server class computer
Server‐class
– Hardware sufficient to execute a server
• Informally
– Term server often applied to computer
10
11. Direction of Data Flow
• Data can fl
flow
– From client to server only
– From server to client only
– In both directions
• Application protocol determines flow
• Typical scenario
– Client sends request(s)
– Sever sends response(s)
11
13. Clients, Servers,
Clients Servers and Other Protocols
Clients and servers are application programs •
13
14. Server CPU Use
• Facts
– Server operates like other applications
• Uses CPU to execute instructions
• Performs I/O operations
– Waiting for data to arrive over a network does not
require CPU time
• Consequence
– Server program only uses CPU when servicing a
p g y g
request
14
15. Multiple Services
• Can have multiple servers on single computer
• Servers only use processor when handling a
request
• P
Powerful h d
f l hardware required to h dl many
i d handle
services simultaneously
15
16. Illustration of Multiple Servers
• Each server offers one service
• One server can handle multiple clients
16
17. Identifying a Service
• Protocol port number used
l b d
• Each service given unique p number, P
g q port
• Server
– Informs OS it is using port P
– Waits for requests to arrive
• Cli
Client
– Forms request
– Send request to port P on server computer
17
18. The Point About Ports
Transport protocols assign each service a
unique port identifier. A server must specify
unique port identifier A server must specify
the identifier when it begins execution. A
client must specify the identifier when it
client must specify the identifier when it
requests transport protocol software to
contact a server. Protocol software on the
server computer uses the identifier to direct
an incoming request to the correct server.
18
19. In Theory
• Port numbers are merely integers
• Any server could use any port number
19
20. In Practice
• P t l port numbers used as service
Protocol t b d i
identifiers
• Need uniform numbering
– To allow arbitrary client to contact server on
arbitrary machine
– To avoid inventing “directory assistance”
mechanism
• Port numbers
– Uniform throughout Internet
– Set by standards bodies
20
21. Terminology
• Sequential program
– Typical of most programs
yp p g
– Single thread of control
• C
Concurrent program
t
– Multiple threads of control
– Execution proceeds “in parallel”
– More difficult to create
21
22. Servers and Concurrency
• Sequential server
– Also called iterative
– Handles one request at a time
• C
Concurrent server
t
– Can handle multiple requests at a time
– No waiting
22
23. Delay in Servers
• Concurrent server
– Server creates new thread of control to handle each request
– Client only waits for its request to be processed
• Sequential server
– Client waits for all previous requests to be processed as well
as f it request t b processed
for its t to be d
– Unacceptable to user if long request blocks short requests
23
25. Protocol Ports and Concurrent Servers
• Apparent problem
– One port number assigned to each service
p g
– Concurrent server has multiple copies (threads)
running
– Client and server may interact
– Messages sent to server’s port must be delivered
’ b d li d
to correct copy
25
26. Protocol Ports and Concurrent Servers
(continued)
• Solution to problem: use i f
l i bl information about
i b
client as well as server to deliver incoming
packets
• TCP uses four items to identify connection
y
– Server’s IP address
– Server’s protocol port number
Server s
– Client’s IP address
– Client’s protocol port number
Client s
26
27. Demultiplexing in a Concurrent Server
Transport protocols assign an identifier to
Transport protocols assign an identifier to
each client as well as to each service.
Protocol software on the server s machine
Protocol software on the server’s machine
uses the combination of client and server
identifiers to choose the correct copy of a
identifiers to choose the correct copy of a
concurrent server.
27
28. Variations on a Theme
• A server can use
– Connectionless transport (UDP)
– Connection‐oriented transport (TCP)
– Both for a single service
g
• A single server can offer multiple services
– Often used for “trivial” services
trivial
– Server uses multiple port numbers simultaneously
28
29. Variations on a Theme (cont)
• A server can
– Maintain interaction with a client for days or hours
y
– Send a short response and terminate interaction
– Perform I/O on the local computer
– Become a client for another service (potential
cycle problem)
l bl )
29
30. Example of Circularity
• Time server
i
– Returns time of day
• File server
– Allows client to read or write a file
– Calls time server when generating time stamp for
file
• Suppose programmer modifies time server to
log requests to a file
30
31. Interacting with Protocol Software
g
• Client or server uses transport protocols
• Protocol software inside OS
• Applications outside OS
• Mechanism needed to bridge the two
– Called Application Program Interface (API)
31
32. Application Program Interface
• Part of operating system
• Permits application to use protocols
• Defines
– Operations allowed
– Arguments for each operation
g p
32