Subject: Re: How the internet works? Tue May 05 11:30:18 1998 >One of my responsibilities here is educating IBMers into the whys and >wherefores of the net. My next presentation is going to be on 'How the >internet works.' I know how DNS works thanks to Mike Stone's excellent >series of posts last year (which I still have on file) but can anyone >point me to other resources that can help me explain TCP/IP, nodes and >all the other arcania that make up the net. oy.. that dredges up memories i thought i'd successfully repressed. a couple years ago, i was involved as technical consultant for a company which was trying to develop a junior-high level introduction to the technologies which make the 'net work. i spent a very long time trying to explain things like the differences between packet-switched and circuit-switched communication systems in terms simple enough for a school board to understand. the curriculum never went anywhere, and the information i wrote for them is proprietary, but i'll be happy to drill down into memory and walk you through stuff. there's a bunch of information, though.. the 'net is completely sensible and logical if you look at it piecewise, it's just that there are a zillion pieces to the blasted thing. how long do you have 'til the presentation, and what level of detail do you want? by way of giving you an index to hang information from, let me start with the OSI network model, which is the central mythology of the 'net. i call it that because the model describes the way the 'net is /supposed/ to work, but is more theoretical than practical. the actual technologies that make the 'net work violate the model occasionally, when necessary and/or convenient. there are seven layers to the OSI model, each describing a specific set of operations which need to be done in order for internet communication to work. those operations are grouped into (more or less) logically connected sets, each of which defines /what/ a given piece of hardware or software is supposed to do, but not /how/ it's supposed to do it. the layers of the OSI model are: NAME RESPONSIBLE FOR -------------------------------------------- 7 application information services 6 presentation data portability 5 session persistent connections 4 transport guaranteed delivery 3 network identifying machines 2 data link transmitting data 1 physical twiddling bits and the basic idea is that each layer relies on the services provided by the layers below it. the hardest thing to undesrtand (and certainly to explain) about the OSI model is that it acts as a meta-protocol which coordinates network technologies.. the "what to do, not how to do it" idea. every specific technology used in building the 'net has its own standard, and defines its own protocol.. for the sake of clarity, i'll call them "operational protocols". the layers of the OSI model mark the boundaries between operational protocols, and tell them how to communicate with each other. to be a bit more precise, each layer of the model defines a set of responsibilities which must be met by any operational protocol in that layer, and an interface which allows that protocol to communicate with any protocol in the next layer up or down. the practical result is that all the protocols within a given layer can be used interchangeably, and one protocol can be replaced by another without anyone above it or below it needing to care. to a large degree, the stability and flexibility of the 'net is the direct result of that multi-layer interchangability. it's what allows a web browser to connect to the 'net without caring whether your connection runs through a modem or an ethernet card. a very abbreviated set of descriptions for each layer would be: 1 physical layer this is the hardware layer where electrical pulses are translated into bits. what's the nominal voltage of a signal traveling through a phone line, and what frequencies does a V.32 bis modem use to represent bit patterns? somebody has to define them, and this is where they do it. 2 data link layer once you have a modem, you need some way to tell if it's getting data or line noise. data link protocols, like SLIP or PPP, provide some very basic error-checking which allow a computer to tell the one from the other. 3 network layer a network is connected with physical devices using data link protocols, but each type of device has its own way of identifying itself.. modems use 'phone numbers, ethernet cards have 48-bit ID numbers burned into their ROM, etc. network protocols like IP (the Internet Protocol) provide a generic address space for networked devices, independent of any physical connection's requirements. the network layer also defines device-independent communication and routing protocols, allowing any two computers in a network to talk to each other, regardless of the type of connection they use, or whether they have to relay messages through other machines along the way. 4 transport layer the network layer defines a system which makes it possible for any two computers in a network to communicate with each other, but doesn't guarantee that the data will actually get there. that responsibility belongs to the transport layer. TCP (the Transmission Control Protocol) is one of several transport-layer protocols that provide the error-checking and bookkeeping necessary to guarantee reliable, accurate delivery of information. 5 session layer the transport layer can simulate a continuous, reliable stream of data flowing between one computer and another, but the machines still need some way to identify that stream of data as, say, Bernice's chat session. from this level up, all the protocols are generally implemented within the same piece of software.. a telnet client, for instance.. but you'll see references in the documentation to things like 'session-level code' etc. 6 presentation layer in the kingdom of Lilliput, half the people crack their breakfast egg starting at the big end, and the other half start at the little end. the big-endians hate the little-endians, and vice versa. in some computers, bytes are stored from the lowest address going upwards, and on others they're stored in the highest address going downwards. on a little-endian system, the bit-sequence: 0000 0001 0000 0000 would be identified as the integer 1. on a big-endian system, it would be called 256. on a Cray, it's something completely bizarre. the representation layer is a set of machine-independent standards which organize data. the ASCII and Unicode standards are 8-bit and 16-bit represntations of characters, respectively. on a more web-based line, the JPEG and GIF standards are popular, but independent, representation standards for graphics. the whole Y2K problem is, in fact, the result of a weak representation standard getting 'way too popular. 7 application layer this is where we get into the specific protocols which make a given type of information service work. a web browser sends the HTTP message 'GET http://www.yawp.com/ HTTP/1.0' to a server, which identifies it as a file request, searches for an index file and goes through the whole litany of file identification and transmission.