Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Objectives Understand the Open Systems Interconnection network reference model, often used to characterize network protocols and services, and how it relates to TCP/IP’s own internal networking model • Understand TCP/IP’s origins, history, and design goals • Define the terms involved and explain how TCP/IP protocols, sockets, and parts are identified What Is TCP/IP? • The large collection of networking protocols and services called TCP/IP denotes far more than the combination of the two key protocols that gives this collection its name • These protocols deserve an initial introduction: Transmission Control Protocol, or TCP, handles reliable delivery for messages of arbitrary size, and defines a robust delivery mechanism for all kinds of data across a network • The Internet Protocol, or IP, manages the routing of network transmissions from sender to receiver, along with issues related to network and computer addresses, and much more The Origins and History of TCP/IP • In 1969, an obscure arm of the United States Department of Defense (DoD), known as the Advanced Research Projects Agency (ARPA), funded an academic research project for a special type of long-haul network, called a packetswitched network • In a packet-switched network, individual chunks of data (called packets) can take any usable path between the sender and receiver • The network built as a result of this project is known as the ARPANET TCP/IP’s Design Goals • The design of the ARPANET and protocols that evolved to support it were based on the following government needs: – A desire to withstand a potential nuclear strike – A desire to permit different kinds of computer systems to easily communicate with one another – A need to interconnect systems across long distances A TCP/IP Chronology • In 1983, the Defense Communications Agency (DCA), now known as the Defense Information Systems Agency, or DISA) took over operation of the ARPANET from DARPA (Defense Research Projects Agency, a.k.a. ARPA) • The Internet and TCP/IP enjoyed a series of events and firsts that ultimately resulted in the global Internet as we know it today A TCP/IP Chronology • Here are some additional highlights of that history: – 1986: The National Science Foundation (NFS) launches a long-haul, high-speed network, known as NSFNET, that creates a network backbone running at 56 Kbps. NSF also imposed a set of policies, known as the Acceptable Use Policies (AUPs) – 1987: Number of hosts on the Internet breaks 10,000 – 1989: Number of hosts on the Internet breaks 100,000 – 1990: McGill University releases the Archie protocol and service, based on TCP/IP A TCP/IP Chronology – 1990: ARPANET ceases doing business under that name, and commercial, academic, government, and communications company operations begin supporting the Internet as a cooperative venture Work begins in earnest on the Hypertext Transfer Protocol (HTTP) and the notion of the Worldwide Web is born at Centre European Researche Nucleaire (CERN) – 1991: The Commercial Internet Exchange (CIX), a consortium of Internet operators, system providers, and other commercial operations with Internet interests, is formed A TCP/IP Chronology – 1991: Thinking Machines Corporation releases the Wide Area Information Service (WAIS), a TCP/IPbased protocol and service University of Minnesota releases Gopher, a TCP/IP-based protocol that not only allows searching of text-based archives and other data types online, but also links all such archives together into a single virtual information universe known as “Gopherspace” – 1992: The Internet Society (ISOC) is chartered A TCP/IP Chronology – 1993: The Internet Network Information Center (InterNIC) is chartered to manage domain names – 1994: U.S. Senate and House of Representatives establish information servers on the Internet – 1995: Netscape launches Netscape Navigator and begins the commercialization of the Web – 1996: Microsoft launches Internet Explorer Web browser, even though Netscape dominates the Web browser marketplace OSI Network Reference Model Overview • This model is a network reference model, but is formally known as the International Standards Organization Open Systems Interconnection network reference model, sometimes called the ISO/OSI network reference model • Governed by ISO standard 7498, the ISO/OSI network reference model, or reference model was developed as part of an international standards initiative in the 1980s that was supposed to usher in a new and improved suite of protocols specifically designed to replace TCP/IP Models Break Networking into Layers • The reference model’s value lies in its ability to break a big technical problem into a series of interconnected and interrelated sub-problems, and then solve each sub-problem individually • Computer scientists call this approach divide and conquer • A divide and conquer approach permits concerns related to networking hardware to be completely separated from those related to networking software Models Break Networking into Layers – Different expertise is needed to implement the solutions necessary for the networking functions or tasks handled at each layer – The layers in a network implementation work together to create a general solution to the general problem known as networking – Network protocols usually map into one or more layers of the reference model – TCP/IP itself is designed around a layered model for networking The ISO/OSI Network Reference Model • The reference model described in OSI Standard 7498 breaks network communication into seven layers, as follows (named from the top down, as illustrated in Figure 1-1 How Protocol Layers Behave • Layers in the reference model exist to provide services to the layer above (where applicable), and to deliver data to (for outbound traffic) or accept data from (for inbound traffic) the layer below • For each layer in a model that is implemented in code (you learn why this is important when we discuss how the layered model for TCP/IP differs from the reference model in the section titled “The TCP/IP Networking Model”), the software handles packages of data that are sometimes called protocol data units (PDUs) How Protocol Layers Behave • PDUs are often generically described as packets irrespective of the layer in the model addressed • PDUs typically include “envelope information” in the form of specific headers and trailers • The reference model, as shown in Figure 1-1, looks something like a layer cake as it presents a stack of named layers from which the model is built How Protocol Layers Behave • Because this stack-like structure so accurately depicts how many networking protocol suites are implemented— including TCP/IP—it is common to talk about the components of hardware and software that map into this model as a protocol stack when implemented on a specific computer • On a Windows computer, the network interface card (NIC), the driver that permits the operating system to “talk” to the NIC, and the various software components that make up TCP/IP’s other layers, may be called a protocol stack, or more accurately, the TCP/IP protocol stack for that machine Physical Layer • The Physical layer includes the physical transmission medium (cables or wireless media) that any network must use to send and receive the signals that constitute the physical expression of networked communications • A simplistic view of the Physical layer is that it concerns itself with the networking hardware and the connections that permit that hardware to access some networking medium Physical Layer • This layer also coordinates the sending and receiving of signals across the networking medium, and determines what kinds of cables, connectors, and network interfaces must be used to access a specific area on a network • The Physical layer manages communications with the network medium going down the protocol stack, and handles conversion of outgoing data from the bits that computers use into the signals that networks use Data Link Layer • The Data Link layer is situated between the Physical layer and the Network layer in the reference model • Its job is to enable reliable transmission of data through the Physical layer at the sending end, and to check such reliability and up reception at the receiving end • The Data Link layer also manages point-to-point transmission across the networking medium, from one computer to another on a single logical or physical cable segment • The Data Link layer manages local area network (LAN) connections between the machines to which those interfaces are attached Data Link Layer • The Data Link layer can also control the pace at which data is transmitted from sender to receiver—a process called media flow control that responds to local congestion conditions and helps keep the network medium from becoming swamped by local traffic • The Data Link layer requests data transfers to occur when outgoing PDUs are ready to be transmitted, and also handles accepting and constructing incoming PDUs for incoming data • Data Link layer PDUs are called frames or data frames Network Layer • The Network layer is where notions of network location are addressed, and where the intricacies involved in directing a PDU from sender to receiver are handled • The Network layer handles the logical addresses associated with individual machines on a network • The Network layer also uses that addressing information to determine how to send a PDU from a sender to a receiver when the source and destination for traffic do not reside on the same physical segment on a network Network Layer • The Network layer also embodies the notion of multiple simultaneous connections between different IP addresses, so that numerous applications can maintain network connections at the same time • The Network layer is also sensitive to delays associated with routes, and can manage how much traffic is sent across them, while it is forwarding data from a sender to a receiver • This process is called congestion control, and helps networks avoid being overrun when high levels of activity occur from time to time Transport Layer • The Transport layer’s name is highly evocative of its function: this layer’s job is to ensure reliable end-to-end transmission of PDUs from sender to receiver • The Transport layer often includes end-to-end error-detection and error-recovery data • Such data is usually packaged as a part of the trailers for Transport layer PDUs, where special values called checksums are calculated before and after data delivery Transport Layer • The amount of data that may be sent from sender to receiver is arbitrary in size, but the containers for such data that can transport it from end to end have a fixed maximum size (called the MTU, for maximum transmission unit), the Transport layer also handles the activities known as segmentation and reassembly • Segmentation involves cutting up a big message into a numbered sequence of chunks, called segments, in which each chunk represents the maximum data payload that the network media can carry between sender and receiver Transport Layer • In equally simple terms, reassembly describes the process whereby the chunks as sent are put back into their original order and used to re-create the data in the form it took before it was segmented for transmission • The Transport layer is equipped to request retransmission of all erroneous or missing PDUs when reassembly is underway, so that it can guarantee reliable delivery of data from sender to receiver • The PDUs used at the Transport layer are called segments, or data segments Session Layer • The Session layer is where ongoing communications between a sender and a receiver, somewhat like a telephone conversation, are set up, maintained, and then terminated, or torn down, as needed • The Session layer includes mechanisms to maintain reliable ongoing conversations, called checkpoints Session Layer • Checkpoints define the last point up to which successful communications are known to have occurred, and define the last known point to which a conversation must be rolled back for missing or damaged elements to be replayed to recover from the effects of missing or damaged data • The Session layer’s primary job is to support communications between two networked parties, in which a sequence of messages or PDUs is typically exchanged Presentation Layer • The Presentation layer manages the way data is presented to the network (on its way down the protocol stack), and to a specific machine/application combination (on its way up the protocol stack) • The Presentation layer can also supply special datahandling functions for applications, including protocol conversions (when applications use protocols distinct from those used for networked communications, as may be the case for e-commerce, database, or other transactionoriented services), data encryption (for outgoing messages), decryption (for incoming ones), data compression (for outgoing messages), or expansion (for incoming ones) Application Layer • The Application layer defines an interface that applications can use to request network services, rather than referring directly to applications themselves • The Application layer defines a set of access controls over the network, in the sense that it determines what kinds of things applications can ask the network to carry or deliver, and what kind of activities the network can support The TCP/IP Networking Model • Figure 1-2 shows the layers identified for the native TCP/IP model, and maps its layers to those of the reference model • That’s because some functions associated with the Session layer and the Presentation layer for the OSI reference model appear in the TCP/IP Application layer, while some aspects of the Session layer from the OSI reference model appear in the TCP/IP Transport layer as well • The Transport model for both layers maps together quite well OSI Reference Model and TCP/IP Networking Model Layers TCP/IP Network Access Layer • The TCP/IP Network Access layer is sometimes called the Network Interface layer • It’s the layer wherein LAN technologies, such as Ethernet, token ring, and wireless media and devices, come into play • It’s also the layer in which WAN and connectionmanagement protocols, such as Serial Line Internet Protocol (SLIP), Point-to-Point Protocol (PPP), and X.25, come into play TCP/IP Network Access Layer • At the Network Access layer, the Institute for Electrical and Electronic Engineers (IEEE) standards for networking apply • These include the IEEE 802 family of standards, which features the following components of interest, among others: – 802.1 Internetworking – 802.2 Logical Link Control – 802.2 Media Access Control – 802.3 CSMA/CD: CSMA/CD stands for Carrier Sense Multiple Access with Collision Detection – 802.5 Token Ring TCP/IP Network Access Layer Protocols • The most important TCP/IP Network Access layer protocols include SLIP and PPP • PPP is a more modern serial line protocol, which is widely used for Internet and private TCP/IP network connections • PPP is protocol neutral, and may be used to simultaneously ferry a range of protocols across a single serial line connection TCP/IP Network Access Layer Protocols • The Windows implementation of PPP supports all the major Windows protocols—namely, TCP/IP, Internetwork Packet Exchange Sequenced Packet Exchange (IPX/SPX), and NetBIDS Enhanced User Interface (NetBEUI), along with tunneling protocols, such as Point-to-Point Tunneling Protocol (PPTP), and other Virtual Private Network (VPN) protocols—across a single connection • Other implementations add support for numerous other protocols—including AppleTalk and Systems Network Architecture (SNA)—to this mix TCP/IP Internet Layer Functions • The Internet layer handles three primary tasks for TCP/IP: 1. MTU fragmentation 2. Addressing 3. Routing Internet Layer Protocols • The primary protocols that function at the TCP/IP Internet layer include the following: – – – – – – – – – Internet Protocol (IP) Internet Control Message Protocol (ICMP) Packet Internetwork Groper(PING) Address Resolution Protocol (ARP) Reverse ARP (RARP) Bootstrap Protocol (BOOTP) Routing Information Protocol (RIP) Open Shortest Path First (OSPF) Border Gateway Protocol (BGP) TCP/IP Transport Layer Functions • Devices that operate on the Internet are generically identified as hosts, so the TCP/IP Transport layer is also sometimes called the host-to-host layer because this layer involves moving data from one host to another TCP/IP Transport Layer Protocols • There are two TCP/IP Transport layer protocols: the Transmission Control Protocol (TCP) and the User Datagram Protocol (UDP) • These two transport protocols come in two flavors: connection-oriented and connectionless, whereby TCP is connectionoriented, and UDP is connectionless TCP/IP Application Layer • The TCP/IP Application layer is also known as the Process layer because this is where the protocol stack interfaces with applications or processes on a host machine • File Transfer Protocol (FTP), Telnet, etc. represent specific TCP/IP-based protocols, and also define services for file transfer, terminal emulation, etc. • The best-known TCP/IP-based services use TCP as transports, rather than UDP • But some services (Network File System, NFS) often use USP for transport TCP/IP Application Layer • TCP/IP services depend on two elements to operate: 1. In UNIX terminology, a special “listener process,” called a daemon, operates on a server to handle incoming user requests for specific services 2. Each TCP/IP service has an associated port address that uses a 16-bit number to identify a specific process or service. Addresses in the range from 0 to 1024 are often called well-known port addresses and associate a specific port address with a specific service TCP/IP Application Layer • Any daemon or listener process essentially hangs around, listening for attempts to connect on the well-known port address (or addresses) associated with its services • A well-known port address can often be changed as a configuration option, which is why you sometimes see Web Uniform Resource Locators, or URLs, that specify a different port address at the end of the domain name portion of the string TCP/IP Protocols, Services, Sockets, and Ports • TCP/IP’s inclusion in the version of UNIX known as 4.2BSD was a milestone in its history • This inclusion exposed the worldwide research and academic communities to the joys and sorrows of working with TCP/IP • Combining the various sources of outgoing data into a single output data stream is called multiplexing; breaking up an incoming data stream so that separate portions may be delivered to the correct applications is called demultiplexing TCP/IP Protocols, Services, Sockets, and Ports • To help make this job easier, TCP/IP uses protocol numbers to identify distinct protocols, and those protocols use port numbers to identify specific Application layer protocols and services • Numerous port numbers are reserved to identify well-known protocols TCP/IP Protocol Numbers • Well-known protocols (also called well-known services in some contexts) assign a series of numbers to represent a sizable collection of TCP/IP-based network services, such as file transfer (FTP), terminal emulation (Telnet), and email (SMTP, POP3, and IMAP) • In an IP datagram header, the protocol number appears as its 10th byte • This 8-bit value indicates which Transport layer protocol should accept delivery of incoming data TCP/IP Protocol Numbers TCP/IP Port Numbers • After IP passes incoming data to TCP or UDP at the Transport layer, the protocol must perform its duties, then pass that data to its intended application process • TCP/IP application processes are sometimes called network services and are identified by port numbers • The source port number identifies the process that sent the data, and the destination port number identifies the process that is to receive that data TCP/IP Port Numbers • The source port number identifies the process that sent the data, and the destination port number identifies the process that is to receive that data • All port addresses below 1024 represent wellknown services, and there are many so-called registered ports associated with specific application services in the range from 1024 through 65,535 TCP/IP Sockets • Well-known or registered ports represent preassigned port numbers that have specific associations to particular network services • After a client or server uses a well-known port address to establish communications, the connection established (called a session) is invariably handed to a temporary pair of socket addresses that provides the sending and receiving port addresses for further communications between sender and receiver • The combination of a particular IP address and a dynamically assigned port address is called a socket address (or socket) Data Encapsulation in TCP/IP • At each layer in the TCP/IP protocol stack—the Network Access, Internet, Transport, and Application layers (where TCP/IP’s many application protocols and services, each represented by one or more well-known port numbers, operate)—outgoing data is packaged and identified for delivery to the layer underneath • Thus, each PDU has its own particular opening component called a header (or packet header) that identifies the protocol in use, the sender and intended recipient, and other information Data Encapsulation in TCP/IP • Likewise, many PDUs also include a characteristic closing component called a trailer (or packet trailer) that provides a data integrity checks for the data portion of the PDU, known as the payload • The enclosure of a payload between a header and an (optional) trailer is what defines the mechanism known as encapsulation, where data from an upper layer gets manipulated and then enclosed with a header (and, possibly, a trailer) before being passed to the layer below, or across the networking medium for delivery elsewhere Summary • TCP/IP was designed with the following goals in mind: 1. To support multiple, packet-switched pathways through the network so that transmissions can survive all conceivable failures 2. To permit dissimilar computer systems to easily exchange data 3. To offer robust, reliable delivery services for both short- and long-haul communications 4. To provide comprehensive network access with global scope. Although it’s been revised and changed since its initial implementation, TCP/IP’s ongoing success derives in no small part from meeting those goals