CPEG514 Advanced Computer Networks Atef Abu Salim University of Nizwa Spring 2013/2014
Today s Class Topics Course Syllabus Computer Networks LANs and WANs The Internet Protocols, Layers and Interfaces Reference Models Addressing
Course Overview See Syllabus Course Notes (PowerPoint): Course notes available on edwwave. It is your responsibility to download and print a copy of the slides before coming to class.
Course Goals, Cont. What do you want to get out of this course? E-mail: atef@unizwa.edu.om
The Client-Server Model Client Machine Client Process Server Machine Server Process Network Request Reply
Networks Communication between semi-autonomous computers Attached to host system by an adapter
LANs and WANs Local Area Networks High Data Access Rate (100 Mbps 10 Gbps) Limited Geographic Boundaries Data delivery via broadcast (traditional) or switching (modern switched LANs) Wide Area Networks Lower Data Access Rate (56 Kbps 155 Mbps) No Geographic Limits Data delivery via routing
LAN Example
WAN Example
What is the Internet? a collection of networks (Autonomous Systems) using the Internet Protocol (IP). Each Autonomous System (AS), typically owned by an Internet Service Provider (ISP), consists of a collection of IP routers that may be regional, national or international in scope.
Internet today Figure 1.1
ISP Interconnection ISPs can interconnect their networks via: Public Peering Points called Network Access Points (NAPs) or Metropolitan Area Exchanges (MAEs) Private Peering arrangements (direct communications circuits between ISP networks).
Who Makes Money? End Users and Businesses pay ISPs to provide IP routing services. Regional ISPs pay National ISPs to get inter-isp routing (peering) at NAPs ISPs pay telecommunications carriers for leased data circuits to interconnect their IP routers
Who runs the Internet? Decentralized, distributed, chaotic growth Standards: International Standards Organization (ISO), Internet Engineering Task Force (IETF), W3C, etc. Names, Numbers: Internet Corporation for Assigned Names and Numbers (ICANN) Operational coordination: IEPG (Internet Engineering Planning Group) Network: ISPs (Internet Service Providers), NAPs, MAEs Cabling: Telephone companies Content: millions of companies, universities & individuals
Protocols Protocols: a set of rules governing the format (syntax), meaning (semantics) and timing of the information that are exchanged among peer entities within a layer. Protocol Data Unit (PDU): Header Data
Protocol Architectures Protocol architecture: The structure of components, their interfaces, and the principles and guidelines governing their design and evolution. Layered Architecture: - Decomposes complicated processes in simpler functions - Creates discrete modules which are almost independent except for the interfaces between them Application Transport Network Access Application Protocol Transport Protocol Network Access Protocol Communication Network Application Transport Network Access
Protocol Layering Layered Models standardize Functions performed by each layer The protocol (headers, procedures, timing) followed by peer layers on different hosts The interfaces between adjacent layers on the same host (standard function calls to request services up or down the stack). Protocols do not standardize implementation (O.S., hardware/software platform, etc.)
Protocol Layering
ISO OSI Model (ISO = International Standard Organization, OSI = Open Systems Interconnection) Also data compression and encryption Synchronization mechanism for inserting check points Dialog control halfduplex or full-duplex Packets Frames End-to-end Error and Flow Control Error and Flow Control over a single link Bits
Figure 2-2 OSI Layers
The OSI Model Net1 Net2 Net3 Host 1 Router Router Host 2. Layer 7 Application Application Protocol Application Unit Exchanged APDU 6 Presentation Presentation Protocol Presentation PPDU 5 Session Session Protocol Session SPDU 4 Transport Transport Protocol Communications Subnet Boundary Transport TPDU 3 Network Network Network Network Packet 2 DL1 DL1 DL2 DL2 DL3 DL3 Frame 1 PH1 PH1 PH2 PH2 PH3 PH3 Bit Host A Host B
Protocol Headers Each sending protocol layer entity (software or hardware) may add a protocol header to the data message as it passes down the stack. (Layer 2 also adds trailer) This header encapsulates the control information needed by the protocol peer entity that removes and acts upon the header information at the receiving end.
Figure 2-3
TCP/IP Model
TCP/IP Model vs. OSI Model Network Access
Web Browsing Stack My computer is running the following protocols: - Application Layer = HTTP (Netscape) - Transport Layer = TCP - Network Layer = IP - Data Link Layer = Ethernet - Physical Layer = Ethernet
WinNT OS A Layering Example WinNT PC running Netscape Linux Server running Apache User clicks http://www.depaul.edu Netscape Software (Application Layer) Create GET Request in HTTP format Receive and Process GET Request Apache Software (Application Layer) TCP Software (Transport Layer) IP Software (Network Layer) Ethernet Driver (DL) Ethernet Card (PHYS) Add TCP Header Add IP Header Add Ethernet Header & Trailer Remove TCP Header Remove IP Header Remove Ethernet Header & Trailer TCP Software (Transport Layer) IP Software (Network Layer) Ethernet Driver (DL) Ethernet Card (PHYS) LINUX OS Ethernet Trailer HTTP Request TCP Header IP Header Ethernet Header
Application Layer Protocol: HTTP HTTP implemented in browser software HTTP Protocol Example: Client: File Request Client sends request message in format: GET <file name> Server: Response to GET request Server message format: HTTP/1.0 200 MIME-Version: 1.0 Server: CERN/3.0 Content-Type: text/html Content-Length: 8247 <file contents>
Application Layer Interfaces: HTTP Interfaces: Interface to user is keyboard or mouse clicks. Interface to Transport Layer (TCP) interface is WINSOCK function calls which are read, write functions to pass data from and to the TCP software.
Transport Layer Protocol: TCP -TCP software is implemented by Operating System (i.e.,windows 2000/XP, Linux, UNIX) Data from Application Layer: assembled into segments Adds TCP header (seq#, ACK bits, etc) Starts timer Calls IP_SEND primitive data to IP layer Wait for TCP ACK or timeout Data from IP Layer: Check data for errors Create TCP ACK message Pass received data up to Application Layer
Network Layer Protocol: IP - IP software is implemented by Operating System (i.e.,windows 2000/XP, Linux, UNIX) Data from Transport Layer: Adds IP header (source IP address, dest IP address, etc.) Pass data to Ethernet driver software (Data Link Layer) Data from Data Link Layer: Check IP header to verify that destination address is correct Remove IP header Pass data up to TCP software
Data Link Protocol: Ethernet -Ethernet Medium Access Control (MAC) protocol is implemented by the Ethernet Network Card (NIC) and driver software Data from IP Layer: Adds Ethernet header (source MAC addr, dest MAC addr, etc.) Wait until network is quiet (CSMA) Pass data to Ethernet PHY hardware for transmission If PHY indicates COLLISION, back-off and try again later. Data from Ethernet PHY hardware: Check Ethernet header to verify that destination address matches this network card hardware Remove Ethernet header Pass data up to IP software
Physical Layer Protocol: Ethernet -Ethernet Physical (PHY) protocol is implemented by the Ethernet Network Card (NIC) hardware; Data from Ethernet MAC Layer: For each bit, generate appropriate voltages on network cable using Manchester coding standard If COLLISION detected, notify MAC layer Arriving data signals on Ethernet wire : Decode each received signal as 0 or 1 Store each bit into a buffer When network is quiet, pass the received data up to the Ethernet MAC Layer
Client Send 1. User types "http://www.unizwa.edu.om/test.html. 2. IE/Netscape (L5) determines IP address for "www.unizwa.edu.om/test.html" and requests TCP connection to server. 3. IE/Netscape (L5) passes "GET test.html HTTP/1.0" to TCP (L4). 4. TCP (L4) adds TCP header and passes to IP (L3). 5. IP (L3) adds IP header and passes to Ethernet driver. 6. Ethernet driver adds Ethernet header and trailer and passes data onto physical Ethernet card for transmission. 7. Ethernet card transmits data frame.
Server Receive 1. Server Ethernet card (L1) picks up data frame, passes to Ethernet driver. 2. Ethernet driver (L2) removes Ethernet header, passes to IP software. 3. IP software (L3) verifies IP destination address, removes IP header, passes to TCP software. 4. TCP (L4) checks for errors, sends a TCP ACK back to client, passes data up to Apache server (L5). 5. Apache server examines GET request, reads file off disk, generates response message.
Figure 2-15 SCTP
Addressing Physical/MAC Address- unique address of NIC. support for multicast and broadcast physical addresses. a 48-bit address. Internet Address- IP number of computer. Physical addresses cannot be tracked by all routers, so networks are hierarchically organized by IP address. The IP address resolves into a physical address. It is 32 bits. No two computers can have the same IP address. Port Address- Identifies the process on the host computer. Since most computers run several applications at a time (email, web, etc), getting the data to the computer is not enough. The data has to get to the correct process (software) on the computer. Other address: domain name (maps to IP address).
Figure 2-17 Relationship of layers and addresses in TCP/IP Example: web browser implementing HTTP Interface. Eg. WINSOCK on PCs Eg. TCP port 80 for web server Implemented in TCP, UDP and SCTP software. HTTP uses TCP. TCP UDP SCTP Eg. 140.192.33.37 (32- bit) Implemented in IP software Eg. Ethernet Medium Access Control (MAC) implemented in NIC card (Network Interface Card) and driver software Eg. Ethernet address (48-bit) Eg. Ethernet PHY layer. Implemented in NIC card
Layer 2 MAC Addresses Carried in Layer 2 header (Ethernet, etc.) Associated with LAN card hardware -- burned into LAN card during manufacturing Determines which card on same LAN will copy (receive) the broadcast data frame. 6 bytes 2-bit control field 22-bit manufacturer ID 24-bit serial number Identifies some destination device on the same subnet (i.e. same LAN). Cannot identify destination device across any router. It is a local address.
Figure 2-18 Physical Addresses
Layer 3 IP Addresses Carried in Internet Protocol header Identifies a particular host (computer), which may be on any subnet or network. It is a global address. 4 bytes split into IP Network IP Host Stored by operating system. Assigned by: ICANN/IANA or ISP (Network part) Local network manager (Host part)
Figure 2-19 IP Addresses Note: We commonly uses names such as www.cs.depaul.edu (called Domain Names). To translate from names to IP addresses, needs to use DNS (Domain Name Service) implemented at the Application level.
Layer 4 TCP Ports Carried in TCP header Identifies a particular user/server process 2 byte port codes Well-Known Port Numbers assigned by ICANN / IANA and stored in services file Examples: HTTP = port 80 File Transfer (FTP) = port 21 E-mail (SMTP) = port 25 Remote login (Telnet) = port 23
Figure 2-20 Port addresses P
Addressing Example Dest. IP Addr = 140.192.81.6 Dest. Port = 80 Dest. Eth Addr = 3b:ac:55:6d:e1:25 Ethernet Trailer GET DEFAULT.HTM HTTP/1.0 TCP Header IP Header Ethernet Header Browser Web Server
Figure 4.1 Dotted Decimal Notation Figure 4.6 Classful IP Addresses Class A: Large networks Class B: Medium networks Class C: Small networks Hostid with all 0 s or all 1 s are special.
Figure 4.5 00000000 0 0 01111111 1 1 10000000 0 0 10111111 1 1 11000000 0 0 11011111 1 1
Figure 4.12 Multihomed devices
Figure 4.13 Network addresses: Network ID + All 0 s hostid is commonly referred to as a network address
Figure 4.14 Direct broadcast address
Figure 4.15 limited broadcast address
Figure 4.16 this host on this network address Provide initial configuration information
Figure 4.17 Specific host on this network
Figure 4.18 Loopback address
Private Networks 10.0.0.0-10.255.255.255 172.16.0.0-172.31.255.255 192.168.0.0-192.168.255.255 Note: the above addresses should not be used on the Internet. Private addresses Network Address Translation (NAT) Global IP addresses