Computer Networking An Introduction to Computer Networks and Layered Architectures Dr Sandra I. Woolley Contents Introduction to computer networks Layered architectures – OSI and TCP/IP layer models – Overview of TCP/IP – Application protocols and TCP/IP utilities 8P8C (RJ45) network connectors http://www.flickr.com/photos/kluzz/1694878799/ OSI – Open Systems Interconnection TCP/IP - Transmission Control Protocol/Internet Protocol 2 What is a Communication Network? A communication network is a set of equipment and facilities that provides a communication service. Examples of equipment are routers, servers, switches, multiplexers, hubs and modems. A cloud is usually used to represent a computer network. Examples of facilities are copper wires, coaxial cables, optical fiber, ducts, conduits, etc. 3 Network Protocols Communications between computers requires very specific unambiguous rules. A protocol is a set of rules that governs how two or more communicating parties are to interact. For example, – Internet Protocol (IP) – Transmission Control Protocol (TCP) – HyperText Transfer Protocol (HTTP) – Simple Mail Transfer Protocol (SMTP) http://www.flickr.com/photos/kairin/68086104/ 4 Standards Bodies Internet Engineering Task Force – Internet standards development – Request for Comments (RFCs): www.ietf.org International Telecommunications Union – International telecom standards IEEE 802 Committee – Local area and metropolitan area network standards Industry Organizations – MPLS Forum, WiFi Alliance, World Wide Web Consortium 5 Packet vs. Circuit Switching Architectures appear and disappear over time – Telegraph (message switching) – Telephone (circuit switching) – Internet (packet switching) The trend has been toward packet switching – Newer mobile phone technologies use packet switching. – However, large packet flows are easier to manage with circuitlike methods. 6 Computer Network Evolution 1950s: Telegraph technology adapted to computers. 1960s: Dumb terminals access shared host computer. – SABRE airline reservation system 1970s: Computers connect directly to each other. – ARPANET packet switching network – Ethernet local area network – TCP/IP internet protocols 1980s and 1990s: New applications and Internet growth. – Commercialization of Internet – E-mail, file transfer, web, P2P (peer-topeer), . . . – Internet traffic surpasses voice traffic An American Civil War (1861-5) Telegraph Office http://kikoshouse.blogspot.co.uk/2009/01/lincoln-as-first-technology-president.html The Great Eastern which laid the first transatlantic telegraph cables in 1866 and in New York Harbour http://en.wikipedia.org/wiki/SS_Great_Eastern http://en.wikipedia.org/wiki/File:SS_Great_Eastern_in_New_York_Harbor_by_Stacy.jpg 7 ARPANET The Advanced Research Projects Agency Network (ARPANET) of the U.S. Department of Defense was the world's first operational packet switching network, and the progenitor of the global Internet. Previous data communications used circuit switching, where a dedicated circuit is required for the duration of each communication. With packet switching links could be shared and packets routed independently. Heart, F., McKenzie, A., McQuillian, J., and Walden, D., ARPANET Completion Report, Bolt, Beranek and Newman, Burlington, MA, January 4, 1978. 8 Ethernet Local Area Network In 1980s, affordable workstations available. Need for low-cost, high-speed networks – To interconnect local workstations – To access local shared resources (printers, storage, servers) Low cost, high-speed communications with low error rate possible using coaxial cable. Category 5 Ethernet cables http://www.flickr.com/photos/zinkwazi/474203018/ Ethernet is the standard for highspeed wired access to computer networks. 9 Ethernet Medium Access Control Network interface controllers (NICs) connect workstations to a LAN (Local Area Network.) Each NIC has a globally unique address. Frames are broadcast into the shared medium. NICs listen to the medium for frames with their address. Transmitting NICs listen for collisions with other stations, and abort and reschedule retransmissions. Transceivers 10 Internet An internet is a network of networks. The Internet used to always have a capital I to distinguish it from a generic network of networks. Many publications still observe the distinction. Routers (gateways) interconnect different networks. Host computers prepare Internet Protocol (IP) packets and transmit them over their attached network. Routers forward IP packets across networks. IP provides a “best-effort” service. Net 1 08:14 AM Aug. 16, 2004 PT Effective with this sentence, Wired News will no longer capitalize the "I" in internet. At the same time, Web becomes web and Net becomes net. Net 2 Router 11 Internet Addressing and Routing IP uses a hierarchical address space: Network ID + Host ID* IP packets (datagrams) are routed according to the Network ID IP routers use routing tables to direct the transfer of packets. Net 3 G Net 1 G G G Net 2 Net 5 G Net 4 G 12 * “ID” abbreviation for IDentifier Internet Names and IP Addresses Routing is done based on IP addresses. IPv4 has 32-bit addresses. We will consider IPv6 later. Addresses have a dotted-decimal notation. – E.g., 128.100.11.1 Hosts are also identified by name – Easier to remember – Names often have a hierarchical name structure, e.g. www.birmingham.ac.uk Domain Name System (DNS) provides conversion between names and addresses. Domain names can be purchased, for example, from UK2.net. 13 Internet Transport Protocols Host computers run two transport protocols on top of IP to enable process-to-process communications. – User Datagram Protocol (UDP) enables best-effort transfer. – Transmission Control Protocol (TCP) enables reliable transfer. All Internet applications run on TCP or UDP. For example, – TCP: HTTP (web); SMTP (e-mail); FTP (file transfer) – UDP: DNS, RTP (voice & multimedia) Transport Protocol Internet 14 Example in Textbook Study the example in the recommended text that describes what happens when a user clicks on a URL. – Note: DNS domain name service uses UDP, HTTP uses TCP. Also note the use of port numbers; ephemeral port numbers and wellknown port numbers. Browser software uses HyperText Transfer Protocol (HTTP) to send request for document HTTP server waits for requests by listening to a well-known port number (80 for HTTP) HTTP client sends request messages through an “ephemeral port number,” e.g. 1127 HTTP needs a Transmission Control Protocol (TCP) connection between the HTTP client and the HTTP server to transfer messages reliably ACK ACK, TCP Connection Request From: 64.15.247.200 Port 80 To:128.100.11.13 Port 1127 TCP Connection Request From: 128.100.11.13 Port 1127 To: 64.15.247.200 Port 80 15 Layer Models Layers, Services and Protocols The overall communications process between two or more machines connected across one or more networks is very complex. Layering puts similar communication functions into groups that are manageable. Each layer provides a service to the layer above. Each layer operates according to a protocol. 17 The OSI* Reference Model *Open Systems Interconnection Network architecture: – Definition of layers – Design of protocols for each layer By the 1970s every computer vendor had developed its own proprietary layered network architecture. Computers from different vendors could not be networked together. Open Systems Interconnection (OSI) was an international effort by the International Organization for Standardization (ISO) to enable multivendor computer interconnection. 18 The OSI Reference Model Application A Application B 7 Application layer Application layer 6 Presentation layer Presentation layer 6 Session layer Session layer 4 Transport layer Transport layer 3 Network layer Network layer Network layer Network layer 2 Data link layer Data Link layer Data Link layer Data link layer 1 Physical layer Physical layer Physical layer Physical layer Communication network 19 The OSI Layers Application layer : e-mail, file transfer, network management, etc. Presentation layer : independent representation of data. Session layer : dialogue control. Transport layer : end-to-end transfer of data (segments). Error control, flow control, connection set-up and release. Network layer : transfers packets across the network. Logical addressing, packet forwarding and routing. Data link layer : enables communication between network nodes. It has two sublayers*: logical link control (LLC) and medium access control (MAC). Logical link control multiplexes protocols and provides error control and node-to-node communication of frames. Medium access control provides physical addressing and channel access control mechanisms. Physical layer : Transfer of bits over the channel. Set up and release of physical connection. *An IEEE subdivision – e.g. Ethernet standard http://en.wikipedia.org/wiki/File:Osi-model.png 20 Peer-to-Peer Communication Terminology Processes at layer n (any of the 7 layers) are referred to as layer n entities. Layer n+1 entities make use of layer n services below via a software port called the layer service access point (SAP). Entities exchange protocol data units (PDUs). PDUs contain a header (which contains protocol control information) and a service data unit (SDU) (information requiring communication). n-PDUs n entity n entity 21 Layer Services and Encapsulation n+1 entity n+1 entity n-SAP n-SDU n-SDU n-SDU n-SAP H n entity n entity H n-SDU n-PDU The layer n SDU is the layer n + 1 PDU and is encapsulated in the layer n PDU. The service provided by a layer can be connection-oriented or connectionless. 22 Headers and Trailers Application A Application B Data Application layer Presentation layer Session layer sh Transport layer Transport layer th Network layer Physical layer Presentation layer ph Session layer Data link layer Application layer ah Network layer nh dt dh Bits Data link layer Physical layer 23 Segmentation and Reassembly A layer may impose a limit on the size of a data block that it can transfer for implementation or other reasons. Therefore a layer n+1 SDU may be too large to be handled as a single unit by layer n. This can be resolved by segmentation and reassembly. – – (a) Segmentation n-SDU n-PDU (b) Sender side: SDU is segmented into multiple PDUs. Receiver side: SDU is reassembled from sequence of PDUs. n-PDU n-PDU Reassembly n-SDU n-PDU n-PDU n-PDU 24 The Internet and TCP/IP TCP/IP Network Architecture While the OSI standards were being developed the TCP/IP (Transmission Control Protocol/Internet Protocol) network architecture emerged as an alternative. TCP/IP was distributed freely as part of Berkeley UNIX. – Numerous applications were developed at various universities and a market for networking software emerged. – This led to a global Internet and the dominance of the TCP/IP network architecture. – IP provides a connectionless best-effort service for packets of information. 26 TCP/IP Network Architecture Application Layer Transport Layer Internet Layer Network Interface The TCP/IP model does not require strict layering. E.g. Applications can run directly over the internet layer. Application Layer Transport Layer Internet Layer Network Interface 27 How the Layers Work Together (Encapsulation Example) HTTP Request TCP Header contains source & destination port numbers IP Header contains source and destination IP addresses; transport protocol type Ethernet Header contains source & destination MAC addresses; network protocol type Ethernet header TCP header HTTP Request IP header TCP header HTTP Request IP header TCP header HTTP Request FCS* *FCS – Frame Check Sequence 28 TCP/IP Network Architecture The TCP/IP network architecture is a set of protocols that allows communication across multiple diverse networks. It has four layers. The TCP/IP application layer incorporates the functions of the top three OSI layers. Application layer programs (email, file transfer etc.) are intended to run directly over the transport layer. Two basic types of service are offered in the transport layer; – Transmission Control Protocol (TCP) reliable connection-oriented transfer – User Datagram Protocol (UDP) - best-effort connectionless transfer. The internet layer handles the transfer of information across multiple networks (e.g., routing and congestion control). A key aspect of the internet layer is the definition of a globally unique address for machines. The internet layer provides a single service of best effort connectionless packet transfer. The network interface layer enables IP communication across different networks. 29 Internet Protocol Approach IP packets transfer information across Internet Host A IP → router→ router→ router→ Host B IP IP layer in each router determines next hop (router) Network interfaces transfer IP packets across networks Host B Host A Application layer Application layer Router/gateway Transport layer Transport layer Internet layer Internet layer Internet layer Network interface layer Network 1 Network interface layer Network interface layer Network 2 30 TCP/IP Protocols HTTP DNS SMTP TCP RTP UDP Best-effort connectionless packet transfer IP Network Network Network interface 1 interface 2 interface 3 (ICMP, ARP) 31 IP Utilities PING - a simple application to determine if a host is reachable. – Makes use of Internet Control Message Protocol (ICMP) messages. The purpose of ICMP is to inform sending hosts about errors encountered by destination hosts or routers. Traceroute - to determine the route that a packet will take to another host. – Makes use of ICMP and UDP. The sender sends a UDP datagram with TTL =1 (Time to live in hops = 1) and an invalid port no. to the destination host. The first router sets TTL to 0, discards the datagram and sends an ICMP Time Exceeded message to the sender. This identifies the first machine in the route. TTL is incrementally increased until the destination is reached. The destination then returns an ICMP Port Unreachable message to the sender. Netstat - provides information about the network status. Tcpdump - capture and observe packet exchanges in a link. 32 Private Study Recommendations Read chapters 1 and 2 (Section 2.4 on sockets is NOT assessed). Study the “nytimes” example in the text. Experiment with Wireshark (previously “Ethereal”). Experiment with utilities, for example: – ping at command prompt -Type "command" in "Run" box and then "ping" at prompt – instructions will appear) – traceroute – See visual traceroute or 3D traceroute applications at www.snapfiles.com (“tracert” is the command line instruction) – Visit www.mycooltools.com for “VisualRoute and “Myspeed” 33 Thank You