* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download ICS 156: Advanced Computer Networks
Piggybacking (Internet access) wikipedia , lookup
Remote Desktop Services wikipedia , lookup
Airborne Networking wikipedia , lookup
Network tap wikipedia , lookup
Multiprotocol Label Switching wikipedia , lookup
Asynchronous Transfer Mode wikipedia , lookup
SIP extensions for the IP Multimedia Subsystem wikipedia , lookup
IEEE 802.1aq wikipedia , lookup
Computer network wikipedia , lookup
Power over Ethernet wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Deep packet inspection wikipedia , lookup
TCP congestion control wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
Citizen Lab wikipedia , lookup
Zero-configuration networking wikipedia , lookup
Point-to-Point Protocol over Ethernet wikipedia , lookup
Real-Time Messaging Protocol wikipedia , lookup
Hypertext Transfer Protocol wikipedia , lookup
UniPro protocol stack wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Introduction & Lab I Lab Equipment & Organization Shlomo Hershkop Columbia University Fall 2006 Announcements Introducing the TA Lab Setup Online Poll Archana Rao maybe one more (depending on enrollment numbers) please take the office hours poll so we can accommodate everyone’s preferences Lab times we need to confirm all lab groups (3/4 members) might switch around some people for spreading out experience need to confirm specific lab times Internet Lab Equipment 4 Cisco 2600 Routers 4 Linux PCs (Intel Celeron 400MHz, 256MB Ram, 40GB disk, cdrom, floppy) 4 Ethernet hubs 2x 5-port Hub 3Com OfficeConnect Dual Speed (10/100) 2x 8-port Hub NETGEAR DS108 Dual monitor, keyboard, mouse 1 KVM switch can accommodate two users at once Cables pretty colors Internet Lab Equipment Linux PCs PCs are labeled as: RackPC1, RackPC2, etc. PCs run Linux (Redhat) Each PC has: a floppy drive, a cdrom drive, 2 usb ports a serial port, 5x 10/100 Mbps Ethernet interface cards (NICs) named eth0 – eth4. Linux PC Cisco Routers Routers are labeled: Router1, Router2, Router3, Router4. Routers run Cisco IOS 12.0 or a later version Each router has: a console port an auxiliary port two 10/100 Mbps Fast Ethernet interfaces Ethernet Hubs Each hub has 4 or more RJ-45 ports Ports can operate at 10 Mbps or 100 Mbps Lab Sequence Core Labs: Lab 1 Introduction to the Internet Lab Lab 2 - Single Segment IP Networks Lab 7 - NAT and DHCP Lab 3 - Static Routing Lab 4 Dynamic Routing Protocols Lab 5 Transport Protocols: UDP and TCP Lab 8 - Domain Name System Lab 9 - SNMP Lab 10 - IP Multicast Advanced Labs: Lab 6 - LAN switching Core Labs Lab 1 – Introduction to the Internet Lab Overview of the Internet Lab equipment; introduction to ethereal and tcpdump. Lab 2 – Single Segment IP Networks Configuring a network interface for IP networking; address resolution with ARP; security problems of common Internet applications. Core Labs (cont.) Lab 3 – Static routing IP forwarding and routing between IP networks; setup a Linux PC and a Cisco router as an IP router; manual configuration of routing tables. Lab 4 – Dynamic Routing Protocols Routing protocols RIP, OSPF and BGP. Lab 5 – Transport Protocols: UDP and TCP Data transmissions with TCP and UDP; TCP connection management; TCP flow control; retransmissions in TCP; TCP congestion control. Advanced Labs Lab 6 - LAN switching LAN switching in Ethernet networks; forwarding of Ethernet frames between LAN switches/bridges; spanning tree protocol for loop free routing between interconnected LANs. Lab 7 - NAT and DHCP Setup of a private network; dynamic assignment of IP addresses with DHCP. Lab 8 – Domain Name System Domain name resolution with DNS; name server hierarchy; setup of a DNS root server. Lab Extra Credit Maybe something to do with wireless Structure of the Labs Each lab has three phases: Pre-laboratory Assignment (Prelab) Lab Session Lab Reports Structure of the Labs (cont.) Pre-laboratory Assignment (Pre-lab) Exercises to be completed in advance of the associated lab session. The pre-labs ask you to acquire background knowledge that is needed during the lab exercises. Each pre-lab has a question sheet that must be completed before the corresponding lab session. The answers to the prelab questions are graded. Structure of the Labs (cont.) Lab Session. Lab exercises that are performed on the equipment of the Internet lab. All lab exercises can be completed without supervision. The time to complete a lab session should be three hours on the average, but may vary. Complete the laboratory activities to the extent that you can. The activities during the lab session are not graded, however, data collected during the lab session are needed to complete a lab report. Floppy disk symbol in the lab manual indicates when you have to collect data. Floppy disk symbol Structure of the Labs (cont.) Lab Reports. After each lab session, you prepare a lab report that summarizes and analyzes the findings from the lab session. A notepad symbol indicates an assignment for the lab report. The lab reports should be submitted as a typewritten document. The lab report is generally due 1 week after the lab session. The lab report is graded. Note: Lab reports should not include irrelevant data Notepad symbol In the Lab: 1. 2. 3. 4. 5. I am trying to get USB keys, in the meantime, either have one of the group members dig one up (no questions asked, or use provided floppies (please don’t offload them on ebay) Reboot Linux PCs Complete exercises as described in the lab manual Take measurements as instructed Save data to floppy disk Additional notes The equipment of the Internet Lab is not connected to the Internet. you can bring in a laptop (best) and connect wired or wirelessly Each lab has an anonymous feedback sheet. The feedback is used to improve the setup and organization of the labs. Since you have administrative (root) privileges on the Internet Lab equipment, exercise caution when modifying the configuration of the Internet Lab equipment. TCP/IP Networking An Example Introductory material. This module illustrates the interactions of the protocols of the TCP/IP protocol suite with the help of an example. The example intents to motivate the study of the TCP/IP protocols. A simple TCP/IP Example A user on host argon.netlab.edu (“Argon”) makes web access to URL http://neon.netlab.edu/index.html. What actually happens in the network? HTTP Request and HTTP response Web server runs an HTTP server program HTTP client Web browser runs an HTTP client program sends an HTTP request to HTTP server HTTP server responds with HTTP response HTTP Request GET /example.html HTTP/1.1 Accept: image/gif, */* Accept-Language: en-us Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 Host: 192.168.123.144 Connection: Keep-Alive HTTP Response HTTP/1.1 200 OK Date: Sat, 25 May 2002 21:10:32 GMT Server: Apache/1.3.19 (Unix) Last-Modified: Sat, 25 May 2002 20:51:33 GMT ETag: "56497-51-3ceff955" Accept-Ranges: bytes Content-Length: 81 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html <HTML> <BODY> <H1>Internet Lab</H1> Click <a href="http://www.netlab.net/index.html">here</a> for the Internet Lab webpage. </BODY> </HTML> • How does the HTTP request get from Argon to Neon ? From HTTP to TCP Argon Neon HTTP client HTTP request / HTTP response HTTP server TCP client TCP connection TCP server To send request, HTTP client program establishes an TCP connection to the HTTP server Neon. The HTTP server at Neon has a TCP server running Resolving hostnames and port numbers Since TCP does not work with hostnames and also would not know how to find the HTTP server program at Neon, two things must happen: 1. The name “neon.netlab.edu” must be translated into a 32-bit IP address. 2. The HTTP server at Neon must be identified by a 16-bit port number. Translating a hostname into an IP address The translation of the hostname neon.netlab.edu into an IP address is done via a database lookup The distributed database used is called the Domain Name System (DNS) All machines on the Internet have an IP address: argon.netlab.edu 128.143.137.144 neon.netlab.edu 128.143.71.21 Finding the port number Note: Most services on the Internet are reachable via well-known ports. E.g. HTTP servers on the Internet can be reached at port number “80”. So: Argon simply knows the port number of the HTTP server at a remote machine. On most Unix systems, the well-known ports are listed in a file with name /etc/services. The well-known port numbers of some of the most popular services are: ftp21 finger 79 telnet 23 http 80 smtp 25 nntp 119 Requesting a TCP Connection The HTTP client at argon.netlab.edu requests the TCP client to establish a connection to port 80 of the machine with address 128.141.71.21 Invoking the IP Protocol The TCP client at Argon sends a request to establish a connection to port 80 at Neon This is done by asking its local IP module to send an IP datagram to 128.143.71.21 (The data portion of the IP datagram contains the request to open a connection) Sending the IP datagram to an IP router Argon (128.143.137.144) can deliver the IP datagram directly to Neon (128.143.71.21), only if it is on the same local network (“subnet”) But Argon and Neon are not on the same local network (Q: How does Argon know this?) So, Argon sends the IP datagram to its default gateway The default gateway is an IP router The default gateway for Argon is Router137.netlab.edu (128.143.137.1). The route from Argon to Neon Note that the gateway has a different name for each of its interfaces. Finding the MAC address of the gateway To send an IP datagram to Router137, Argon puts the IP datagram in an Ethernet frame, and transmits the frame. However, Ethernet uses different addresses, so-called Media Access Control (MAC) addresses (also called: physical address, hardware address). Therefore, Argon must first translate the IP address 128.143.137.1 into a MAC address. The translation of addressed is performed via the Address Resolution Protocol (ARP) Address resolution with ARP Invoking the device driver The IP module at Argon, tells its Ethernet device driver to send an Ethernet frame to address 00:e0:f9:23:a8:20 Sending an Ethernet frame The Ethernet device driver of Argon sends the Ethernet frame to the Ethernet network interface card (NIC) The NIC sends the frame onto the wire Forwarding the IP datagram The IP router receives the Ethernet frame at interface 128.143.137.1, recovers the IP datagram and determines that the IP datagram should be forwarded to the interface with name 128.143.71.1 The IP router determines that it can deliver the IP datagram directly Another lookup of a MAC address The router needs to find the MAC address of Neon. Again, ARP is invoked, to translate the IP address of Neon (128.143.71.21) into the MAC address of neon (00:20:af:03:98:28). Invoking the Device Driver at the Router The IP protocol at Router71, tells its Ethernet device driver to send an Ethernet frame to address 00:20:af:03:98:28 Sending another Ethernet frame The Ethernet device driver of Router71 sends the Ethernet frame to the Ethernet NIC, which transmits the frame onto the wire. Data has arrived at Neon Neon receives the Ethernet frame The payload of the Ethernet frame is an IP datagram which is passed to the IP protocol. The payload of the IP datagram is a TCP segment, which is passed to the TCP server Wrapping up the example Data traverses a sequence of layers Each layer has protocols to handle the packets Next Lecture (Lab 2) Layered architecture of the Internet Protocols at each layer Review of Important Networking Concepts Introductory material using Prof. Liebeherr on-line notes Review of important networking concepts: protocol architecture, protocol layers, encapsulation, demultiplexing, network abstractions. Networking Concepts Layered Architecture to reduce complexity Encapsulation Abstractions Sending a packet from Argon to Neon neon.netlab.edu "Neon" 128.143.71.21 argon.netlab.edu "Argon" 128.143.137.144 router137.netlab.edu "Router137" 128.143.137.1 router71.netlab.edu "Router71" 128.143.71.1 Router Ethernet Network Ethernet Network Sending a packet from Argon to Neon 128.143.71.21 is not on my local network. Therefore, I need to send the packet to my 128.143.71.21 on my local network. default gateway withisaddress 128.143.137.1 DNS: DNS: The is IPisthe address address of Therefore, I can send the packet directly. ARP:What What theIPMAC of“neon.netlab.edu “neon.netlab.edu ””is? of address 128.143.137.1? ARP: TheofMAC address 128.143.71.21 128.143.137.1 is 00:e0:f9:23:a8:20 argon.netlab.edu "Argon" 128.143.137.144 ARP: What is the MAC ARP: TheofMAC address of address 128.143.71.21? neon.netlab.edu 128.143.137.1 is 00:20:af:03:98:28 "Neon" 128.143.71.21 router137.netlab.edu "Router137" 128.143.137.1 router71.netlab.edu "Router71" 128.143.71.1 Router frame Ethernet Network frame Ethernet Network What’s a protocol? human protocols: “what’s the time?” “I have a question” introductions … specific msgs sent … specific actions taken when msgs received, or other events network protocols: machines rather than humans all communication activity in Internet governed by protocols protocols define format, order of msgs sent and received among network entities, and actions taken on msg transmission, receipt What’s a protocol? a human protocol and a computer network protocol: Hi TCP connection req Hi TCP connection response Got the time? Get http://www.awl.com/kurose-ross 2:00 <file> time Q: Other human protocols? Communications Architecture The complexity of the communication task is reduced by using multiple protocol layers: Each protocol is implemented independently Each protocol is responsible for a specific subtask Protocols are grouped in a hierarchy A structured set of protocols is called a communications architecture or protocol suite TCP/IP Protocol Suite The TCP/IP protocol suite is the protocol architecture of the Internet Application User-level programs Transport Operating system Network Data Link The TCP/IP suite has four layers: Application, Transport, Network, and Data Link Layer End systems (hosts) implement all four layers. Data Link Media Access Control (MAC) Sublayer in Local Area Networks Functions of the Layers Data Link Layer: Service: Functions: Network Layer: Service: Functions: Move packets from source host to destination host Routing, addressing Transport Layer: Reliable transfer of frames over a link Media Access Control on a LAN Framing, media access control, error checking Service: Functions: Delivery of data between hosts Connection establishment/termination, error control, flow control Application Layer: Service: HTML Functions: Application specific (delivery of email, retrieval of documents, reliable transfer of file) Application specific TCP/IP Suite and OSI Reference Model The TCP/IP protocol stack does not define the lower layers of a complete protocol stack Application Layer Application Layer Transport Layer Network Layer (Data) Link Layer Presentation Layer Session Layer Transport Layer Network Layer (Data) Link Layer Physical Layer TCP/IP Suite OSI Reference Model Assignment of Protocols to Layers ping application HTTP Telnet FTP TCP DNS SNMP Application Layer Transport Layer UDP Routing Protocols ICMP RIP IP IGMP PIM Network Layer OSPF DHCP ARP Ethernet Network Interface Data Link Layer Layered Communications An entity of a particular layer can only communicate with: 1. a peer layer entity using a common protocol (Peer Protocol) 2. adjacent layers to provide services and to receive services N+1 Layer N+1 Layer Entity N+1 Layer Protocol N+1 Layer Entity N Layer Entity N Layer Protocol N Layer Entity N-1 Layer Entity N-1 Layer Protocol N-1 Layer Entity layer N+1/N interface N Layer layer N/N-1 interface N-1 Layer Service Primitives Communication services are invoked via function calls. The functions are called service primitives N+1 Layer Entity Request Delivery N Layer Entity N+1 Layer Peer Protocol N+1 Layer Entity Indicate Delivery N Layer Entity Service Primitives Recall: A layer N+1 entity sees the lower layers only as a service provider N+1 Layer Entity N+1 Layer Peer Protocol N+1 Layer Entity Indicate Delivery Request Delivery Service Provider Layers in the Example HTTP HTTP protocol HTTP TCP TCP protocol TCP IP Ethernet IP IP protocol Ethernet argon.netlab.edu 128.143.137.144 Ethernet IP protocol Ethernet Ethernet router71.netlab.edu router137.netlab.edu 128.143.137.1 128.143.71.1 00:e0:f9:23:a8:20 IP Ethernet neon.netlab.edu 128.143.71.21 Layers in the Example HTTP TCP IP Frame is an IP datagram Ethernet HTTP Send HTTP Request to neon Establish a connection to 128.143.71.21 at port 80Open TCP connection to 128.143.71.21 port 80 IP datagram is a TCP segment for port 80 IP data-gram to Send a datagram (which contains a connection IPSend Send IP datagram to 128.143.71.21 request) to 128.143.71.21 128.143.71.21 Frame is an IP datagram Send the datagram to 128.143.137.1 Ethernet Ethernet TCP IP Send the datagram Ethernet to 128.143.7.21 argon.netlab.edu neon.tcpip-lab.edu router71.netlab.edu router137.netlab.edu Send Ethernet frame Send Ethernet frame 128.143.71.1 128.143.137.144 128.143.71.21 128.143.137.1 to 00:20:af:03:98:28 to 00:e0:f9:23:a8:20 00:e0:f9:23:a8:20 Layers and Services Service provided by TCP to HTTP: Service provided by IP to TCP: unreliable transmission of IP datagrams across an IP network Service provided by Ethernet to IP: reliable transmission of byte streams over a logical connection transmission of a frame across an Ethernet segment Other services: DNS: translation between domain names and IP addresses ARP: Translation between IP addresses and MAC addresses Encapsulation & Demultiplexing As data is moving down the protocol stack, each protocol is adding layer-specific control information HTTP User data HTTP Header User data HTTP Header User data TCP TCP Header IP TCP segment IP Header Ethernet TCP Header HTTP Header User data IP datagram Ethernet Header IP Header TCP Header HTTP Header Ethernet frame User data Ethernet Trailer Encapsulation & Demultiplexing in our Example Let us look in detail at the Ethernet frame between Argon and the Router, which contains the TCP connection request to Neon. This is the frame in hexadecimal notation. 00e0 4500 8990 0000 05b4 f923 002c 808f 0000 a820 9d08 4715 6002 00a0 4000 065b 2000 2471 8006 0050 598e e444 8bff 0009 0000 0800 808f 465b 0204 Encapsulation & Demultiplexing 6 bytes destination address 4 bytes source address type Ethernet Header CRC IP Header TCP Header Ethernet frame Application data Ethernet Trailer Encapsulation & Demultiplexing: Ethernet Header 6 bytes 00:e0:f9:23:a8:20 4 bytes 0:a0:24:71:e4:44 0x0800 Ethernet Header CRC IP Header TCP Header Ethernet frame Application data Ethernet Trailer Encapsulation & Demultiplexing: IP Header 32 bits version (4 bits) header length DS flags (3 bits) Identification (16 bits) TTL Time-to-Live (8 bits) Total Length (in bytes) (16 bits) ECN Protocol (8 bits) Fragment Offset (13 bits) Header Checksum (16 bits) Source IP address (32 bits) Destination IP address (32 bits) Ethernet Header IP Header TCP Header Ethernet frame Application data Ethernet Trailer Encapsulation & Demultiplexing: IP Header 32 bits 0x4 0x5 0x0 0x0 9d08 12810 4410 0102 00000000000002 0x06 8bff 128.143.137.144 128.143.71.21 Ethernet Header IP Header TCP Header Ethernet frame Application data Ethernet Trailer Encapsulation & Demultiplexing: TCP Header 32 bits Source Port Number Destination Port Number Sequence number (32 bits) Acknowledgement number (32 bits) header length 0 Flags TCP checksum option type length window size urgent pointer Max. segment size Option: maximum segment size Ethernet Header IP Header TCP Header Ethernet frame Application data Ethernet Trailer Encapsulation & Demultiplexing: TCP Header 32 bits 162710 8010 60783510 010 610 0000002 0000102 0x598e 210 Ethernet Header IP Header 819210 00002 410 TCP Header Ethernet frame 146010 Application data Ethernet Trailer Encapsulation & Demultiplexing: Application data Ethernet Header IP Header TCP Header Ethernet frame Application data Ethernet Trailer Different Views of Networking Different Layers of the protocol stack have a different view of the network. This is HTTP’s and Argon Neon TCP’s128.143.137.144 view of the network. 128.143.71.21 HTTP client HTTP server HTTP server TCP client TCP server TCP server IP Network Network View of IP Protocol Network View of Ethernet Ethernet’s view of the network