* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download csci4220-week01 - Computer Science at RPI
Piggybacking (Internet access) wikipedia , lookup
Network tap wikipedia , lookup
Wireless security wikipedia , lookup
Dynamic Host Configuration Protocol wikipedia , lookup
Deep packet inspection wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Airborne Networking wikipedia , lookup
Computer network wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
Remote Desktop Services wikipedia , lookup
Distributed firewall wikipedia , lookup
List of wireless community networks by region wikipedia , lookup
Zero-configuration networking wikipedia , lookup
Peer-to-peer wikipedia , lookup
UniPro protocol stack wikipedia , lookup
Hypertext Transfer Protocol wikipedia , lookup
Internet protocol suite wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Rensselaer Polytechnic Institute CSCI-4220 – Network Programming David Goldschmidt, Ph.D. Early computers were highly centralized Bottleneck Single point of failure Users must physically go to the computer Proliferation of low-cost computers connected via a network helped get past the above disadvantages A computer network is an interconnected collection of autonomous computers and devices Processes communicate with one another across the network Such communication is often transparent to end-users P Q Hierarchical networks: Nodes are not equal Nodes interconnect in a strict pattern Single points of failure exist! Heterarchical networks: Nodes are equal(ish) Nodes connected to produce multiple paths The Internet (1969) is a network that’s Global Decentralized Redundant Made up of many different types of machines Both hierarchical and heterarchical Constantly changing Humungous P Q We use a formal network model to organize and abstract various aspects of computer (and other) networks Effectively hides the (messy) implementation details Defines how communication occurs across the network Often uses a layered approach A layered model divides tasks/responsibilities into pieces that are organized into layers Each piece is “solved” independently Well-defined (and well-documented) interfaces between each layer are critically important Each layer often logically “connects” to the same layer of another instance Use a layered model to design an operating system by dividing it into N levels or layers Layer 0 is the hardware Layer 1 is the kernel Layer N is the top-level user interface (GUI) Each layer uses functions and services of the layer (or layers) beneath it What’s the OSI Reference Model? The International Standards Organization (ISO) proposal for the standardization of the various protocols used in computer networks A seven-layer protocol stack In reality, not all layers are always used.... The Internet uses only four layers: Application Transport Network Physical Each layer on the client side logically communicates with the same layer on the server side Q server client intermediate router P Each layer prepends or appends its information in a header or trailer HTTP Request TCP Hdr | HTTP Request IP Hdr | TCP Hdr | HTTP Request Ethernet Hdr | IP Hdr | TCP Hdr | HTTP Request | Cksum P A protocol is an agreed-upon convention that defines how communication occurs between two (or more?) endpoints All endpoints must “understand” and correctly implement the protocol Protocols must be formally defined, unambiguous, and well-documented Protocols should address error conditions and unexpected scenarios In a layered model, two types of protocols: Interface protocols describe communication between layers (on the same endpoint) Peer-to-peer protocols describe communication between two endpoints at the same layer Q P A server is a process that provides access to a centralized resource or service The term “server” might also refer to the machine on which the server is running Client/server communication: Server waits for incoming requests from clients A client is a process that sends request(s) to a server and (usually) waits for a response Servers typically run 24/7 and are more complex (more interesting) than clients Types of servers: An iterative server handles one request at a time A concurrent server can handle multiple client requests (almost) simultaneously