Review of Important Networking Concepts Introductory material. This module uses the example from the previous module to review important networking concepts: protocol architecture, protocol layers, encapsulation, demultiplexing, network abstractions. 1 Sending a packet from Argon to Neon neon.tcpip-lab.edu "Neon" 128.143.71.21 255.255.255.0 argon.tcpip-lab.edu "Argon" 128.143.137.144 255.255.255.0 "Router137" 128.143.137.1 255.255.255.0 Ethernet Network Router "Router71" 128.143.71.1 255.255.255.0 Ethernet Network 2 Sending a packet128.143.71.21 from Argon to Neon 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.tcpip-lab.edu “neon.tcpip-lab.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.tcpip-lab.edu "Argon" 128.143.137.144 255.255.255.0 "Router137" 128.143.137.1 255.255.255.0 frame Ethernet Network ARP: What is the MAC ARP: TheofMAC address of neon.tcpip-lab.edu address 128.143.71.21? "Neon" 128.143.137.1 is 00:20:af:03:98:28 128.143.71.21 255.255.255.0 Router "Router71" 128.143.71.1 255.255.255.0 frame Ethernet Network 3 TCP/IP Protocol Architecture • The TCP/IP protocol architecture is the protocol architecture of the Internet Application User-level programs Transport • The TCP/IP suite has four layers: Application, Transport, Network, and Data Link Layer • End systems (hosts) implement all four layers. Gateways (Routers) only have the bottom two layers. Operating system Network Data Link Data Link Media Access Control (MAC) Sublayer in Local Area Networks 4 TCP/IP Suite and OSI Reference Model A p p lica tio n L a ye r The TCP/IP protocol stack does not define the lower layers of a complete protocol stack A p p lica tio n L a ye r P re s e n ta tio n L a ye r S e ssio n L a ye r T ra n sp o rt L a ye r T ra n sp o rt L a ye r N e tw o rk L a ye r N e tw o rk L a ye r (D a ta ) L in k L a ye r (D a ta ) L in k L a ye r P h ysica l L a ye r T C P /IP S u ite OSI R e fe re n c e M od el 5 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 6 Layered Communications • An entity of a particular layer can only communicate with: 1. a remote entity a the same layer using a common protocol 2. adjacent entities at the local system via service interfaces N + 1 L a ye r N +1 Layer E n tity N + 1 L a ye r P ro to co l N +1 Layer E n tity N Layer E n tity N L a ye r P ro to co l N Layer E n tity N -1 L a y e r E n tity N -1 L a ye r P ro to co l N -1 L a y e r E n tity la ye r N + 1 /N in te rfa ce N L a ye r la ye r N /N -1 in te rfa ce N -1 L a ye r 7 Layers in the Example HTTP HTTP protocol HTTP TCP TCP protocol TCP IP Ethernet IP IP protocol Ethernet argon.tcpiplab.edu 128.143.137.144 Ethernet 128.143.137.1 00:e0:f9:23:a8:20 IP protocol Ethernet 128.143.71.1 Ethernet IP Ethernet neon.tcpip-lab.edu 128.143.71.21 00:20:af:03:98:28 8 Layers in the Example HTTP TCP IP Frame is an IP datagram Ethernet 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 Send IP data-gram to Send a datagram (which contains a connection Send IP datagram to IP 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 argon.tcpip128.143.137.1 Send Ethernet frame lab.edu 00:e0:f9:23:a8:20 to 00:e0:f9:23:a8:20 128.143.137.144 Ethernet HTTP TCP IP Send the datagram Ethernet to 128.143.7.21 neon.tcpip-lab.edu 128.143.71.1 Send Ethernet frame 128.143.71.210 to 00:20:af:03:98:28 0:20:af:03:98:28 9 Encapsulation and Demultiplexing • As data is moving down the protocol stack, each protocol adds layer-specific control information User data HTTP 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 User data Ethernet frame 10 Encapsulation and 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 9d08 0050 0204 f923 a820 00a0 2471 e444 0800 4500 002c 4000 8006 8bff 808f 8990 808f 4715 065b 0009 465b 0000 0000 6002 2000 598e 0000 05b4 11 Parsing the information in the frame 4 bytes destination address 00:e0:f9:23:a8:20 Ethernet header (14 bytes) source address 0:a0:24:71:e4:44 type 0x0800 version 0x4 IP Header (20 bytes) Type of Service/TOS 0x5 0x00 Identification 0x9d08 header length time-to;ive 0x80 flags 0102 protocol 0x06 cource IP address 128.143.137.144 destination IP address 128.143.71.21 source port number 162710 TCP Header (24 bytes) 0x6 header checksum 0x8bff destination port number 8010 sequence number 0x0009465b acknowledgement number 0x00000000 flags 0000102 unused 0000002 TCP checksum 0x598e option type option length 0x02 0x04 header length total length (in bytes) 0x002c fragment offset 00000000000002 window size 819210 urgent pointer 0x0000 maximum segment size 146010 12 Encapsulation and Demultiplexing 6 bytes destination address source address type Ethernet Header IP Header TCP Header Application data Ethernet frame 13 Encapsulation and Demultiplexing: Ethernet Header 6 bytes 00:e0:f9:23:a8:20 0:a0:24:71:e4:44 0x0800 Ethernet Header IP Header TCP Header Application data Ethernet frame 14 Encapsulation and Demultiplexing: IP Header 32 bits version (4 bits) header length DS Identification (16 bits) TTL Time-to-Live (8 bits) Protocol (8 bits) Total Length (in bytes) (16 bits) ECN flags (3 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 Application data Ethernet frame 15 Encapsulation and 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 Application data Ethernet frame 16 Encapsulation and 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 Ethernet Header IP Header length TCP Header window size urgent pointer Max. segment size Option: maximum segment size Application data Ethernet frame 17 Encapsulation and Demultiplexing: TCP Header 32 bits 162710 8010 60783510 010 610 0000002 0000102 0x598e 210 Ethernet Header IP Header 819210 00002 410 TCP Header 146010 Application data Ethernet frame 18 Encapsulation and Demultiplexing: TCP Header 32 bits 162710 8010 60783510 010 610 0000002 0000102 0x598e 210 Ethernet Header IP Header 819210 00002 410 TCP Header 146010 Application data Ethernet frame 19 Encapsulation and Demultiplexing: Application data No Application Data in this frame Ethernet Header IP Header TCP Header Application data Ethernet frame 20 Different Views of Networking • Different Layers of the protocol stack have a different view of the network. This is HTTP’s and TCP’s view of the network. Argon 128.143.137.144 Neon 128.143.71.21 HTTP client HTTP server HTTP server TCP client TCP server TCP server IP Network 21 Network View of IP Protocol 22 Network View of Ethernet • Ethernet’s view of the network 23