* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Using Protocols in Computer Networks A.L. Hassan Harith
Survey
Document related concepts
Piggybacking (Internet access) wikipedia , lookup
Distributed firewall wikipedia , lookup
Computer security wikipedia , lookup
Network tap wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Computer network wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
Airborne Networking wikipedia , lookup
Deep packet inspection wikipedia , lookup
Zero-configuration networking wikipedia , lookup
Communication protocol wikipedia , lookup
UniPro protocol stack wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Transcript
Using Protocols in Computer Networks A Seminar Presented to: Computer Techniques Engineering Department Al-Turath University College Prepared by: A.L. Hassan Harith Tuesday, March 28, 2017 1. Introduction: The purpose of a computer communications network is to allow moving information from one point to another inside the network. The information could be stored on a device, such as a personal computer in the network; it could be generated live outside the network, such as speech, or could be generated by a process on another piece of information, such as automatic sales transactions at the end of a business day. The device does not necessarily have to be a computer; it could be a hard disk, a camera or even a printer on the network. Due to a large variety of information to be moved, and due to the fact that each type of information has its own conditions for intelligibility, the computer network has evolved into a highly complex system. Specialized knowledge from many areas of science and engineering goes into the design of networks. It is practically impossible for a single area of science or engineering to be entirely responsible for the design of all the components. 2. Main Components of computer Network: A computer network is composed of a number of independent components. Three main components are: 1. The Computer System 2. The Communications System 3. The Networking System A. The Computer System: Computer systems are stand-alone systems, along with peripheral devices, capable of performing information input, output, storage and processing. The study and design of computer systems is the job of computer scientists and engineers. Computer systems usually consist of hardware (processor, memory, storage devices and input and output devices), system software for user interface and resource management, such as operating system and special purpose software such as programming languages, database management system, text-processing systems etc. Developments in microchip have led to the utilization of processor technology in everyday appliances, making all networkable devices operating like a computer system. Examples of computer systems are: personal computers, notebook computers, and data acquisition systems. 1 B. The Communication System: The communications systems provide a vehicle of carrying information from one point to another by conditioning it appropriately. The conditioning may include changing the actual shape of the information, or even adding to and removing parts of it. Example of changing the actual shape of the information is in speech communication devices that take speech signal in the form of mechanical energy and generate an equivalent electrical signal suitable for transmission media. An example of adding to the information is error control coding in which extra information is added in order to combat errors that might have entered the information during its movement inside the network. Example of removing information is data compression in which the size of the information is reduced yet preserving the amount of intelligence it represents. The challenges in designing a communications system relate to the efficient usage of available network resources (bandwidth, etc.), reliable communication in the wake of channel noise, and special purpose requirements owing to applications that generate information or are the users of the information (e.g., security) or other conditions (e.g., wireless, underwater). A device known as MODEM (Modulator/demodulator) is an example of a communications system. In designing a MODEM for telephone line, the main challenge comes in utilizing the limited telephone bandwidth to transfer information at a maximum possible rate. The job of communication system design lies with the communications engineer. A communications engineer has to study the characteristics of information, the channel and the environment in order to design a system to meet specified performance criteria. C. The Networking System: Networking systems provide the capability of efficient use of transmission and switching resources and provide with the rules that govern communication among computer systems and software programs. The design of networking systems is the job of the network engineer. A network engineer has to study the characteristics of the communication systems (designed by communications engineer) and computer systems (designed by computer scientist and engineers) to devise mechanisms of physical and logical interconnection of various computer systems via the communications systems. Some of the challenges faced by a network engineer include the efficient use of communications link (using, for example, multiplexing), study of the characteristics of the information to be exchanged and its peculiar requirements of timing and bandwidth. Networks are designed to share communications 2 resources and network engineer designs switching mechanisms for this purpose. Because of link sharing, security of information becomes very critical in networking systems. In this way, solving one problem raises another. The area of network engineering started as a conglomerate of computer science and communications engineering. However, it has fully grown into a field of knowledge by itself. Sometimes it means different things to different types of people involved - users, providers, and designers. 3. Standardization: Standardization of networks and their components works just like standardization of anything else: doors, nails, papers, pens and all. The purpose is also the same, namely, to make the vendors of related products know what ‘dimensions’ the hardware and software should have. Through the process of standardization of networking hardware and software, it is possible for the vendor to design equipment without consulting the network provider – such consultation is done during the standardization process. Standards for networks encourage competition among vendors by allowing enhanced services. They provide user with the chance to shop around every time a new need of software, hardware or service arises. Most of all, it allows for interoperability, the capability of the equipment by one vendor to interact with the equipment designed by another vendor. Once we understand the necessity of standardization, we can look into how the job of a computer network can be broken down into functions that could be standardized. In essence, the communication has to be broken into well-defined functions so that each function can be standardized. However, due to the diverse nature of the data to be communicated, it may not be a simple task to break the needs into same parts for all type of data. Let’s take two examples in the next section: voice and file transfer. Example 1 - Communication of Voice In a voice communications network, such as the public switched telecommunications network (PSTN), the following is an important sequence of events in order for the voice to carry over the network. Key: type_of_signal (process/function) next_type_of_signal 3 Speech (Microphone) Electrical Signal (Analog/Digital Conversion) Digital Bit stream (Data Compression) Shorter Bit stream (Channel Coding) Longer bit Stream (Multiplexing/Synchronization) Transmission Capable bit stream (Switching) Routing {Opposite functions starting with multiplexing} Speech at the receiving end. Example 2 - File Transfer File transfer may require several or even all of the above functions and procedures, but that may not be sufficient. In fact, there is an entirely different way of looking at the file transfer owing to the following chief differences between a file and speech contents: 1) The file contents are data-specific in their original form. There is no analog signal to be approximated into a digital signal. The bit stream is rigorously defined. 2) If something is not clearly understood in speech communication, recipient guesses or requests to repeat the sentence. In file transfer, the recipient is not a human being, but another file. Therefore a mechanism is needed to have equivalence of requesting a repeat or guessing a correct bit or string of bits. 3) An error can amount to a big loss depending upon where it occurs. 4) A big file in transit could cause network congestion. 5) There are issues such as which type of software program (called application program) will be used to process / look at the file contents and what format and language will be used by that application program. So, here is an approximate breakdown of the procedure for file transfer. Large File Language/format comparison with recipient Break up into manageable slices Sequencing ǀ and information integrity embedded in each chunk Routing Combat channel/ Link problem physical Transmission. 4. Network Protocol Architecture In addition to classifying a network as LAN, MAN or WAN, there is a structured terminology to describe and identify various parts of the hardware and software making up a computer communication network. Three most important terms of this terminology are protocols, standards and network architecture. 4 4.1. Protocols Protocols are rules of communication. It is through protocols that computers can exchange information. Just like humans obey certain rules of communications, so must the computers. Computers are specific about rules and cannot guess like humans. They have protocols as part of their software or hardware interaction and can’t change that unless the software or hardware is changed or modified. 4.2. Standards Standards are the protocols that have gone through a standardization process. They are documented by some agency or organization so that a large number of vendors can get those documents and design systems based on the same protocols. This takes care of the interoperability issue and helps both vendors and users. Examples of standardization agencies are; the Internet Society, International Organization for Standardization (ISO), Institute of Electrical and Electronic Engineers (IEEE) and American National Standards Institute (ANSI), European Telecommunications Standards Institute (ETSI) and International Telecommunications Union (ITU). 4.3. Protocol Architecture Every computer and network needs a large number of protocols in order to complete data communications. The number of protocols can easily grow into several hundreds for a network. Besides, protocols take many different forms, from software to hardware, manufactured and designed by many companies. Different networks may have entirely different sets of protocols for every function of communications. Therefore, it may be helpful to classify protocols in groups in order to streamline a network layout. Automatically, this will help all sections of role players, user, provider and designer. A set of protocols specific to a network is sometimes called a protocol suite. When a subset of a protocol suite could be grouped together to perform functions that can be related to each other in communication terms, such a subset is often called a layer or level. 4.3.1. A Protocol Layer A protocol layer is a set of protocols that perform a common (larger) function. Usually, a protocol layer consists a number of protocols. The concept of layering helps arrange the protocol suite as a set of layers. Then the job of defining a computer network is really taken in the following steps: 1. Define protocols in each layer. 2. Define all the layers needed. 3. Define interaction among layers in the same computer. 5 4. Define interaction among layers on different computers, intermediate and end stations. By specifying the above guidelines, all the network communication can be defined as a set of protocol layers. Such a set of protocol layers is called as the network architecture. In essence, a network architecture or protocol architecture is the set of layers and associated protocol specifications that can achieve complete communications among two or more computers connected via a network. 5. Example of a Protocol Architecture Example architecture, and by far the most attractive (at least academically) in networking books, is the Open System Interconnection (OSI) reference model. This model was recommended by International Organization for Standardization for open system interconnection (OSI). 5.1. Open System The term open system in OSI refers to the fact that the computer systems using OSI architecture will be open to communications to all systems designed by any vendor as long as they implement the same protocol architecture. Thus the specifications of the computer or hardware or operating systems play no role in interoperability of all the computers using the OSI architecture. The OSI reference model (OSI-RM) breaks communications into seven layers. Each layer has a well-defined scope of its functions clearly identifiable from other layers. User information enters one layer at a time. Only one layer is responsible of actually sending the bit stream on the channel. Layers on the same computer can communicate only with the adjacent layers. Layers on different computers can communicate only with their peer layers. With these rules set aside, the user has the flexibility of shopping around for different layers and adding equipment from many vendors to an existing network. 5. The OSI Reference Model One of the greatest functions of the OSI specifications is to assist in data transfer between a UNIX host and a PC or a Mac. The OSI isn’t a physical model, though. Rather, it’s a set of guidelines that application developers can use to create and implement applications that run on a network. It also provides a framework for creating and implementing networking standards, devices, and internetworking schemes. The OSI has seven different layers, divided into two groups. The top three layers define how the applications within the end stations will communicate with each 6 other and with users. The bottom four layers define how data is transmitted end-toend. The upper three layers makes you understand that the user interfaces with the computer at the Application layer, and also that the upper layers are responsible for applications communicating between hosts. Remember that none of the upper layers knows anything about networking or network addresses. That’s the responsibility of the four bottom layers. In the lower four layers it can be seen that it defines how data is transferred through a physical wire or through switches and routers. These bottom layers also determine how to rebuild a data stream from a transmitting host to a destination host’s application. Network devices that operate at all seven layers of the OSI model include: Network management stations (NMS) Web and application servers Gateways (not default gateways) Network hosts The OSI reference model has seven layers: Application layer (layer 7) Presentation layer (layer 6) Session layer (layer 5) Transport layer (layer 4) Network layer (layer 3) Data Link layer (layer 2) Physical layer (layer 1) Figure below shows the functions defined at each layer of the OSI model. 7 Layer Functions 6. TCP/IP Reference Model The TCP/IP protocol suite was developed prior to the OSI model. Therefore, the layers in the TCP/IP protocol suite do not exactly match those in the OSI model. The original TCP/IP protocol suite was defined as having four layers: host-tonetwork, internet, transport, and application. However, when TCP/IP is compared to OSI, we can say that the host-to-network layer is equivalent to the combination of the physical and data link layers. The internet layer is equivalent to the network layer, and the application layer is roughly doing the job of the session, presentation, and application layers with the transport layer in TCP/IP taking care of part of the duties of the session layer. We assume that the TCP/IP protocol suite is made of five layers: physical, data link, network, transport, and application. The first four layers provide physical standards, network interfaces, internetworking, and transport functions that correspond to the first four layers of the OSI model. The three topmost layers in the OSI model, however, are represented in TCP/IP by a single layer called the application layer. 8 TCP/IP and OSI Model TCP/IP is a hierarchical protocol made up of interactive modules, each of which provides a specific functionality; however, the modules are not necessarily interdependent. Whereas the OSI model specifies which functions belong to each of its layers, the layers of the TCP/IP protocol suite contain relatively independent protocols that can be mixed and matched depending on the needs of the system. The term hierarchical means that each upper-level protocol is supported by one or more lower-level protocols. At the transport layer, TCP/IP defines three protocols: Transmission Control Protocol (TCP), User Datagram Protocol (UDP), and Stream Control Transmission Protocol (SCTP). At the network layer, the main protocol defined by TCP/IP is the Internetworking Protocol (IP); there are also some other protocols that support data movement in this layer. 7. Peer-to-Peer Processes At the physical layer, communication is direct: In the following Figure, device A sends a stream of bits to device B (through intermediate nodes). At the higher layers, however, communication must move down through the layers on device A, over to device B, and then back up through the layers. Each layer in the sending device adds its own information to the message it receives from the layer just above it and passes the whole package to the layer just below it. 9 At layer I the entire package is converted to a form that can be transmitted to the receiving device. At the receiving machine, the message is unwrapped layer by layer, with each process receiving and removing the data meant for it. For example, layer 2 removes the data meant for it, and then passes the rest to layer 3. Layer 3 then removes the data meant for it and passes the rest to layer 4, and so on. 8. Protocol examples Layer three: Routed Protocols: Protocols used to support data traffic are called routed protocols; examples of routed protocols are IP and IPX. Routing Protocols: Protocols that send route update packets are called routing protocols; examples of some common routing protocols are RIP, EIGRP, and OSPF. Layer Four: TCP: Transmission Control Protocol, the Internet’s transport-layer, connection-oriented and reliable transport protocol. It was specifically 10 designed to provide a reliable end-to-end byte stream over an unreliable internetwork. Each machine supporting TCP has a TCP transport entity, either a library procedure, a user process, or most commonly part of the kernel. In all cases, it manages TCP streams and interfaces to the IP layer. A TCP entity accepts user data streams from local processes, breaks them up into pieces not exceeding 64 KB, and sends each piece as a separate IP datagram. When datagrams containing TCP data arrive at a machine, they are given to the TCP entity, which reconstructs the original byte streams. TCP service is obtained by both the sender and the receiver creating end points, called sockets. Each socket has a socket number (address) consisting of the IP address of the host and a 16-bit number local to that host, called a port. For TCP service to be obtained, a connection must be explicitly established between a socket on one machine and a socket on another machine. A socket may be used for multiple connections at the same time. In other words, two or more connections may terminate at the same socket. Connections are identified by the socket identifiers at both ends that is, (socket1, socket2). No virtual circuit numbers or other identifiers are used. Port numbers below 1024 are reserved for standard services that can usually only be started by privileged users (e.g., root in UNIX systems). Some Assigned port 11 UDP: User Datagram Protocol, The Internet protocol suite supports a connectionless transport protocol called UDP (User Datagram Protocol). UDP provides a way for applications to send encapsulated IP datagrams without having to establish a connection. UDP transmits segments consisting of an 8-byte header followed by the payload. The two ports serve to identify the endpoints within the source and destination machines. When a UDP packet arrives, its payload is handed to the process attached to the destination port. Think of ports as mailboxes that applications can rent to receive packets. In fact, the main value of UDP over just using raw IP is the addition of the source and destination ports. Without the port fields, the transport layer would not know what to do with each incoming packet. With them, it delivers the embedded segment to the correct application. Layer Seven: HTTP, SMTP and POP3 (Post Office Protocol, version 3). HTTP: The protocol that is used to transport all information between Web servers and clients, it is HTTP (HyperText Transfer Protocol). HTTP is a simple request-response protocol that normally runs over TCP. It specifies what messages clients may send to servers and what responses they get back in return. The request and response headers are given in ASCII, just like in SMTP. HTTP is an application layer protocol because it runs on top of TCP and is closely associated with the Web. However, in another sense HTTP is becoming more like a transport protocol that provides a way for processes to communicate content across the boundaries of different networks. These processes do not have to be a Web browser and Web server. A media player could use HTTP to talk to a server and request album information. Antivirus software could use HTTP to download the latest updates. Developers could use HTTP to fetch project files. Consumer electronics products like digital photo frames often use an embedded HTTP server as an interface to the outside world. Machine-tomachine communication increasingly runs over HTTP. SMTP and POP3: Within the Internet, email is delivered by having the sending computer establish a TCP connection to port 25 of the receiving computer. Listening to this port is a mail server that speaks SMTP (Simple Mail Transfer Protocol). This server accepts incoming connections, subject to 12 some security checks, and accepts messages for delivery. If a message cannot be delivered, an error report containing the first part of the undeliverable message is returned to the sender. The first and the second stages of mail delivery use SMTP. However, SMTP is not involved in the third stage because SMTP is a push protocol; it pushes the message from the client to the server. In other words, the direction of the bulk: data (messages) is from the client to the server. On the other hand, the third stage needs a pull protocol; the client must pull messages from the server. The direction of the bulk data is from the server to the client. The third stage uses a message access agent. Currently two message access protocols are available: Post Office Protocol, version 3 (POP3) and Internet Mail Access Protocol, version 4 (IMAP4). 9. Examples on Security Protocols SSL (Secure Sockets Layer): (Secure Sockets Layer), some companies got the idea of using it for financial transactions, such as purchasing merchandise by credit card, online banking, and electronic stock trading. These applications created a demand for secure connections. In 1995, Netscape Communications Corp., the then-dominant browser vendor, responded by introducing a security package called SSL (Secure Sockets Layer) to meet this demand. This software and its protocol are now widely used, for example, by Firefox, Safari, and Internet Explorer The positioning of SSL in the usual protocol stack is a new layer interposed between the application layer and the transport layer, accepting requests from the browser and sending them down to TCP for transmission to the server. Once the secure connection has been established, SSL’s main job is handling compression and encryption. When HTTP is used over SSL, it is called HTTPS (Secure HTTP), even though it is the standard HTTP protocol. Sometimes it is available at a new port (443) instead of port 80. 13 IPSec: (IPSecurity): IPSecurity (IPSec) is a collection of protocols designed by the Internet Engineering Task Force (IETF) to provide security for a packet at the network level. IPSec helps to create authenticated and confidential packets for the IP layer. In the IPsec’s transport mode, two hosts first establish an IPsec session between themselves. (Thus IPsec is connection-oriented!) With the session in place, all TCP and UDP segments sent between the two hosts enjoy the security services provided by IPsec. On the sending side, the transport layer passes a segment to IPsec. IPsec then encrypts the segment, appends additional security fields to the segment, and encapsulates the resulting payload in an ordinary IP datagram. The sending host then sends the datagram into the Internet, which transports it to the destination host. There, IPsec decrypts the segment and passes the unencrypted segment to the transport layer. 14