170 likes | 249 Views
Rensselaer Polytechnic Institute CSCI-4220 – Network Programming David Goldschmidt, Ph.D. Computer Networking {week 1 }. Networks. Early computers were highly centralized Bottleneck Single point of failure Users must physically go to the computer
E N D
Rensselaer Polytechnic Institute CSCI-4220 – Network Programming David Goldschmidt, Ph.D. Computer Networking{week 1}
Networks • Early computers were highly centralized • Bottleneck • Single point of failure • Users must physically goto the computer • Proliferation of low-cost computers connected via a network helpedget past the above disadvantages what advantages do computer networks provide us?
Q P Computer networks • A computer network is an interconnected collection of autonomous computers and devices • Processes communicatewith one another acrossthe network • Such communication isoften transparent toend-users
Types of networks • Hierarchical networks: • Nodes are not equal • Nodes interconnect ina strict pattern • Single points of failure exist! • Heterarchical networks: • Nodes are equal(ish) • Nodes connected to produce multiple paths
Are you connected? • 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 how many machines are on the Internet?
Q P Interprocess communication
Network models • 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 occursacross the network • Often uses a layered approach
Layered models • 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 why? what advantages do layered models provide us?
Layering • Use a layered model to design an operating system by dividing it into Nlevels or layers • Layer 0 is the hardware • Layer 1 is the kernel • Layer N is the top-leveluser interface (GUI) • Each layer uses functionsand services of the layer(or layers) beneath it
Open Systems Interconnection (OSI) Reference Model • What’s the OSI Reference Model? • The International StandardsOrganization (ISO) proposalfor the standardization ofthe various protocols usedin computer networks • A seven-layer protocol stack
Open Systems Interconnection (OSI) Reference Model • In reality, notall layers arealways used.... • The Internet uses only four layers: • Application • Transport • Network • Physical
Q P Internet traffic (jam) • Each layer on the client side logically communicates with the same layer onthe server side server client intermediate router interfaces exist between layers
P Internet messages • 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
Protocols • A protocol is an agreed-upon convention that defines how communication occurs between two (or more?) endpoints • All endpoints must “understand” andcorrectly implement the protocol • Protocols must be formally defined, unambiguous, and well-documented • Protocols should address error conditionsand unexpected scenarios
Q P Layered model protocols • 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
Clients and servers • A server is a process that provides accessto 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 what are some examples of client/server comunication?
Servers • 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 how are concurrent servers implemented?