TCP/IP Networking An Example



Similar documents
No. Time Source Destination Protocol Info HTTP GET /ethereal-labs/http-ethereal-file1.html HTTP/1.

Data Communication I

Chapter 3: Review of Important Networking Concepts. Magda El Zarki Dept. of CS UC Irvine

1. When will an IP process drop a datagram? 2. When will an IP process fragment a datagram? 3. When will a TCP process drop a segment?

CHAPTER 0 INTRODUCTION TO TCP/IP

1 Data information is sent onto the network cable using which of the following? A Communication protocol B Data packet

Project #2. CSE 123b Communications Software. HTTP Messages. HTTP Basics. HTTP Request. HTTP Request. Spring Four parts

Network Technologies

Technical Support Information Belkin internal use only

Basic Networking Concepts. 1. Introduction 2. Protocols 3. Protocol Layers 4. Network Interconnection/Internet

Slide 1 Introduction cnds@napier 1 Lecture 6 (Network Layer)

Transport and Network Layer

Connecting to and Setting Up a Network

Introduction to Network Security Lab 1 - Wireshark

CS640: Introduction to Computer Networks. Applications FTP: The File Transfer Protocol

Network-Oriented Software Development. Course: CSc4360/CSc6360 Instructor: Dr. Beyah Sessions: M-W, 3:00 4:40pm Lecture 2

Web. Services. Web Technologies. Today. Web. Technologies. Internet WWW. Protocols TCP/IP HTTP. Apache. Next Time. Lecture # Apache.

BASIC ANALYSIS OF TCP/IP NETWORKS

LESSON Networking Fundamentals. Understand TCP/IP

Application. Transport. Network. Data Link. Physical. Network Layers. Goal

Understanding Layer 2, 3, and 4 Protocols

Network Layers. CSC358 - Introduction to Computer Networks

Network Configuration Settings

TCP/IP Fundamentals. OSI Seven Layer Model & Seminar Outline

First Workshop on Open Source and Internet Technology for Scientific Environment: with case studies from Environmental Monitoring

Cisco Configuring Commonly Used IP ACLs

Modern snoop lab lite version

Chapter 6 Configuring the SSL VPN Tunnel Client and Port Forwarding

Internetworking Microsoft TCP/IP on Microsoft Windows NT 4.0

The OSI and TCP/IP Models. Lesson 2

Dynamic Host Configuration Protocol (DHCP) 02 NAT and DHCP Tópicos Avançados de Redes

Overview of TCP/IP. TCP/IP and Internet

Life of a Packet CS 640,

What communication protocols are used to discover Tesira servers on a network?

Introduction to Analyzer and the ARP protocol

Lecture 2-ter. 2. A communication example Managing a HTTP v1.0 connection. G.Bianchi, G.Neglia, V.Mancuso

UPPER LAYER SWITCHING

Connecting with Computer Science, 2e. Chapter 5 The Internet

Ethernet. Ethernet. Network Devices

Load Balancing. Final Network Exam LSNAT. Sommaire. How works a "traditional" NAT? Un article de Le wiki des TPs RSM.

Firewalls. Chapter 3

Web Browsing Examples. How Web Browsing and HTTP Works

A host-based firewall can be used in addition to a network-based firewall to provide multiple layers of protection.

Internet Working 5 th lecture. Chair of Communication Systems Department of Applied Sciences University of Freiburg 2004

Computer Networks/DV2 Lab

Procedure: You can find the problem sheet on Drive D: of the lab PCs. 1. IP address for this host computer 2. Subnet mask 3. Default gateway address

IP Network Layer. Datagram ID FLAG Fragment Offset. IP Datagrams. IP Addresses. IP Addresses. CSCE 515: Computer Network Programming TCP/IP

Outline Definition of Webserver HTTP Static is no fun Software SSL. Webserver. in a nutshell. Sebastian Hollizeck. June, the 4 th 2013

Internet Packets. Forwarding Datagrams

The Bro Network Intrusion Detection System

Internetworking and IP Address

CS 326e F2002 Lab 1. Basic Network Setup & Ethereal Time: 2 hrs

Configuring Network Address Translation (NAT)

Note! The problem set consists of two parts: Part I: The problem specifications pages Part II: The answer pages

Using IPM to Measure Network Performance

Internet Technologies. World Wide Web (WWW) Proxy Server Network Address Translator (NAT)

UIP1868P User Interface Guide

Virtual Server and DDNS. Virtual Server and DDNS. For BIPAC 741/743GE

IP address format: Dotted decimal notation:

finger, ftp, host, hostname, mesg, rcp, rlogin, rsh, scp, sftp, slogin, ssh, talk, telnet, users, w, walla, who, write,...

DO NOT REPLICATE. Analyze IP. Given a Windows Server 2003 computer, you will use Network Monitor to view and analyze all the fields of IP.

Overview of Computer Networks

Unix System Administration

HTTP. Internet Engineering. Fall Bahador Bakhshi CE & IT Department, Amirkabir University of Technology

Guideline for setting up a functional VPN

Session Hijacking Exploiting TCP, UDP and HTTP Sessions

Hands On Activities: TCP/IP Network Monitoring and Management

Networking Basics for Automation Engineers

Configuring Health Monitoring

Network Security TCP/IP Refresher

Chapter 12 Supporting Network Address Translation (NAT)

EXPLORER. TFT Filter CONFIGURATION

Agenda. Distributed System Structures. Why Distributed Systems? Motivation

TCP/IP Protocol Suite. Marshal Miller Chris Chase

ARP and DNS. ARP entries are cached by network devices to save time, these cached entries make up a table

CompTIA Exam N CompTIA Network+ certification Version: 5.1 [ Total Questions: 1146 ]

VLAN und MPLS, Firewall und NAT,

Homework 3 TCP/IP Network Monitoring and Management

COMP 361 Computer Communications Networks. Fall Semester Midterm Examination

Savvius Insight Initial Configuration

Zarząd (7 osób) F inanse (13 osób) M arketing (7 osób) S przedaż (16 osób) K adry (15 osób)

Application-layer protocols

CSE 127: Computer Security. Network Security. Kirill Levchenko

Firewalls, IDS and IPS

Note! The problem set consists of two parts: Part I: The problem specifications pages Part II: The answer pages

LAN TCP/IP and DHCP Setup

Chapter 5. Data Communication And Internet Technology

How do I get to

Computer Networks/DV2 Lab

8.2 The Internet Protocol

EE984 Laboratory Experiment 2: Protocol Analysis

Basic Network Configuration

World Wide Web. Before WWW

ICS 351: Today's plan

Basic Operation & Management of TCP/IP Networks

Networking Test 4 Study Guide

Transcription:

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. 1 A simple TCP/IP Example A user on host ( Argon ) makes a web access to URL http://neon. tcpip-lab.edu/index.html. ("Argon") neon.tcpip-lab.edu ("Neon") Web request Web page Web client What actually happens in the network? Web server 2 1

HTTP Request and HTTP response Web browser runs an HTTP client program Web server runs an HTTP server program HTTP client sends an HTTP request to HTTP server HTTP server responds with HTTP response Argon HTTP client HTTP request HTTP response Neon HTTP server 3 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 4 2

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.tcpiplab.net/index.html">here</a> for the Internet Lab webpage. </BODY> </HTML> How does the HTTP request get from Argon to Neon? 5 From HTTP to TCP To send request, HTTP client program establishes an TCP connectionto the HTTP server Neon. The HTTP server at Neon has a TCP server running Argon Neon HTTP client HTTP request / HTTP response HTTP server TCP client TCP connection TCP server 6 3

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.tcpip-lab.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. 7 Translating a hostname into an IP address The translation of the hostname neon.tcpip-lab.edu into an IP address is done via a database lookup neon.tcpip-lab.edu HTTP client 128.143.71.21 DNS Server 128.143.136.15 The distributed database used is called the Domain Name System (DNS) All machines on the Internet have an IP address: 128.143.137.144 neon.tcpip-lab.edu 128.143.71.21 8 4

Finding the port number Note: Most services on the Internet are reachable via wellknown ports. E.g. All 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: ftp 21 finger 79 telnet 23 http 80 smtp 25 nntp 119 9 Requesting a TCP Connection The HTTP client at requests the TCP client to establish a connection to port 80 of the machine with address 128.141.71.21 HTTP client Establish a TCP connection to port 80 of 128.143.71.21 TCP client 10 5

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) TCP client IP Send an IP datagram to 128.143.71.21 11 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.tcpip-lab.edu (128.143.137.1). 12 6

The route from Argon to Neon "Argon" 128.143.137.144 neon.tcpip-lab.edu "Neon" 128.143.71.21 router137.tcpip-lab.edu "Router137" 128.143.137.1 router71.tcpip-lab.edu "Router71" 128.143.71.1 Router Ethernet Network Ethernet Network Note that the gateway has a different name for each of its interfaces. 13 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) 14 7

Address resolution with ARP ARP message: What is the MAC address of 128.143.137.1? ARP message: IP address 128.143.137.1 belongs to MAC address 00:e0:f9:23:a8:20 128.143.137.144 00:a0:24:71:e4:44 router137.tcpip-lab.edu 128.143.137.1 00:e0:f9:23:a8:20 15 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 IP module Ethernet Send an Ethernet frame to 00:e0:f9:23:a8:20 16 8

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 IP Datagram for Neon 128.143.137.144 00:a0:24:71:e4:44 router137.tcpip-lab.edu 128.143.137.1 00:e0:f9:23:a8:20 17 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 "Argon" 128.143.137.144 neon.tcpip-lab.edu "Neon" 128.143.71.21 router137.tcpip-lab.edu "Router137" 128.143.137.1 router71.tcpip-lab.edu "Router71" 128.143.71.1 Router Ethernet Network Ethernet Network 18 9

Another lookup of a MAC address The rouer 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). ARP message: What is the MAC address of 128.143.71.21? ARP message: IP address 128.143.71.21 belongs to MAC address 00:20:af:03:98:28 router71.tcpip-lab.edu 128.143.71.1 neon.tcpip-lab.edu 128.143.71.21 00:20:af:03:98:28 19 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 router71.tcpip-lab.edu IP module Ethernet Send a frame to 00:20:af:03:98:28 20 10

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. IP Datagram for Neon router71.tcpip-lab.edu 128.143.71.1 neon.tcpip-lab.edu 128.143.71.21 00:20:af:03:98:28 21 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 Note: Since the TCP segment is a connection request (SYN), the TCP protocol does not pass data to the HTTP program for this packet. Instead, the TCP protocol at neon will respond with a SYN segment to Argon. Neon.cerf.edu HTTP server TCP server IP module Ethernet 22 11

Wrapping-up the example So far, Neon has only obtained a single packet Much more work is required to establish an actual TCP connection and the transfer of the HTTP Request The example was simplified in several ways: No transmission errors The route between Argon and Neon is short (only one IP router) Argon knew how to contact the DNS server (without routing or address resolution). 23 How many packets were really sent? tcpdump: listening on fxp0 16:54:51.340712 128.143.137.144.1555 > 128.143.137.11.53: 1+ A? neon.cs. (25) 16:54:51.341749 128.143.137.11.53 > 128.143.137.144.1555: 1 NXDomain* 0/1/0 (98) (DF) 16:54:51.342539 128.143.137.144.1556 > 128.143.137.11.53: 2+ (41) 16:54:51.343436 128.143.137.11.53 > 128.143.137.144.1556: 2 NXDomain* 0/1/0 (109) (DF) 16:54:51.344147 128.143.137.144.1557 > 128.143.137.11.53: 3+ (38) 16:54:51.345220 128.143.137.11.53 > 128.143.137.144.1557: 3* 1/1/2 (122) (DF) 16:54:51.350996 arp who-has 128.143.137.1 tell 128.143.137.144 16:54:51.351614 arp reply 128.143.137.1 is-at 0:e0:f9:23:a8:20 16:54:51.351712 128.143.137.144.1558 > 128.143.71.21.21: S 607568:607568(0) win 8192 <mss 1460> (DF) 16:54:51.352895 128.143.71.21.80 > 128.143.137.144.1558: S 3964010655:3964010655(0) ack 607569 win 17520 <mss 1460> (DF) 16:54:51.353007 128.143.137.144.1558 > 128.143.71.21.80:. ack 1 win 8760 (DF) 16:54:51.365603 128.143.71.21.80 > 128.143.137.144.1558: P 1:60(59) ack 1 win 17520 (DF) [tos 0x10] 16:54:51.507399 128.143.137.144.1558 > 128.143.71.21.80:. ack 60 win 8701 (DF) 24 12