
In order for a process running on one host to send packets to a process running on another host, the receiving process needs to have an address with:.Q: does the IP address of a host, on which a process runs, suffice for identifying the process?Ī: no, many processes can be running on one host To receive messages, process must have identifier.It is also referred to as the Application Programming Interface (API) between the application and the network, since the socket is the programming interface with which network applications are built.A socket is the interface between the application layer and the transport layer within a host OS.A process sends messages into, and receives messages from, the network through an OS-defined software interface called a socket.Any message sent from one process to another must go through the underlying network.Server process: process that waits to be contactedĪside: applications with P2P architectures have both client processes and server processes

The process that waits to be contacted to begin the session is nominally the server.Ĭlient process: process that initiates communication.Process that initiates the communication (that is, initially contacts the other process at the beginning of the session) is nominally, if not substantially, labeled as the client.A receiving process receives these messages and possibly responds by sending messages back.A sending process creates and sends messages into the network.Processes on two different end systems communicate with each other by exchanging messages across the computer network.When processes are running on the same end system, they can communicate with each other with inter-process communication (IPC).A process is assigned by OS to a program that is running within an end system.It's not actually programs, but processes that communicate with each other.This is a hint of the next layer, transport What are some other pros/cons of p2p architectures?.If p2p works well, why has it not become the norm?.Peers often exchange IP addresses (or overlay addresses, e.g., onion, garlic routing and crypto addresses).cost effective, since they normally don't require significant server infrastructure and server bandwidth (in contrast with clients-server designs with data centers).self-scalability: each peer adds service capacity to the system by distributing files to other peers.peers request service from other peers, provide service in return to other peers.The peers are not owned by the service provider, but are instead desktops and laptops controlled by users, with most of the peers residing in homes, universities, and offices.direct communication between pairs of intermittently connected hosts, called peers.minimal (or no) reliance on dedicated servers in data centers.do not usually communicate directly with each other (unless hybrid client-server/p2p with p2p).may have dynamic IP addresses (or dynamically changing overlay addresses).When a Web server receives a request for an object from a client host, it responds by sending the requested object to the client host.Web server services requests from browsers running on client hosts.overlay/hash address of some kind in the case of IP-anonymizing networks.


Instant messaging and P2P file sharing, the two killer applications introduced at the end of the millennium.the World Wide Web, encompassing Web surfing, search, and electronic commerce.text email, remote access to computers, file transfers, and newsgroups.Classic text-based applications that became popular in the 1970s and 1980s:.Overview, HTTP, email, FTP, DNS, P2P, Multimedia (CDN, P2P), Socket programming intro.
