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.
Networking Concepts
Protocol Architecture Protocol Layers Encapsulation Network Abstractions
Sending a packet from Argon to Neon
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 is on my local network. default gateway with address 128.143.137.1 DNS: DNS: What The IP isis the address IP address of Therefore, I can send the packet directly. ARP: What the MAC
ofneon.tcpip-lab.edu neon.tcpip-lab.edu is ? of address ofMAC 128.143.137.1? ARP: The address 128.143.71.21 is 00:e0:f9:23:a8:20 128.143.137.1 ARP: What is the MAC ARP: The address of address ofMAC 128.143.71.21? 128.143.137.1 is 00:20:af:03:98:28
frame
frame
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 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.
Application Transport
User-level programs
Network Data Link
Operating system
Data Link Media Access Control (MAC)
Sublayer in Local Area Networks
Functions of the Layers
Data Link Layer: Service: Reliable transfer of frames over a link Media Access Control on a LAN Functions: Framing, media access control, error checking Network Layer: Service: Move packets from source host to destination host Functions: Routing, addressing Transport Layer: Service: Delivery of data between hosts Functions: Connection establishment/termination, error control, flow control Application Layer: Service: Application specific (delivery of email, retrieval of HTML documents, reliable transfer of file) Functions: Application specific
TCP/IP Suite and OSI Reference Model
Application Layer
The TCP/IP protocol stack does not define the lower layers of a complete protocol stack
Application Layer
Presentation
Layer Session Layer
Transport Layer Network Layer (Data) Link Layer
Transport Layer Network Layer (Data) Link Layer Physical Layer
TCP/IP Suite
OSI Reference Model
8
Assignment of Protocols to Layers
ping application
HTTP
Telnet
FTP
DNS
SNMP
Application Layer
TCP
UDP
Transport Layer
Routing Protocols
ICMP
RIP Network Layer
IGMP
IP
PIM
DHCP
OSPF
ARP
Ethernet
Data Link Layer
Network Interface
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 layer N+1/N interface N Layer layer N/N-1 interface 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
10
Service Primitives
Communication services are invoked via function calls. The functions are called service primitives
N+1 Layer Peer Protocol
N+1 Layer Entity
N+1 Layer Entity
Request Delivery
Indicate Delivery
N Layer Entity
N Layer Entity
11
Service Primitives
Recall: A layer N+1 entity sees the lower layers only as a service provider
N+1 Layer Peer Protocol
N+1 Layer Entity
N+1 Layer Entity
Request Delivery
Indicate Delivery
Service Provider
12
Service Access Points
A service user accesses services of the service provider at Service Access Points (SAPs) A SAP has an address that uniquely identifies where the service can be accessed
N Layer
layer N/N-1 service interface
Layer-N Entity Layer N-1 SAP Layer- N-1 Entity
13
N-1 Layer
Exchange of Data
Assume a layer-N entity at A wants to send data to a layer-N peer entity to B
The unit of data send between peer entities is called a Protocol Data Unit (PDU) For now, let us think of a PDU as a single packet
N Layer Entity
PDU
(at layer N)
N Layer Entity
What actually happens: Layer N passes the PDU to one of As SAPs at layer N-1 The layer N-1 entity (at A) then constructs its own PDU which it sends to the layer N-1 entity at B Note: PDU at layer N-1 = Header + PDU at layer N
14
Exchange of Data
A
Layer-N Entity
control When passed to the SAP, the PDU is called a Service Data Unit (SDU) (Layer-N PDU = Layer- N-1 SDU) SAPs
B
Layer-N Entity
N PDU
Layer- N-1 Entity
Header control
(of layer N-1)
Layer- N-1 Entity N PDU
N PDU
PDU of Layer-N-1
15
Layers in the Example
16
Layers in the Example
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 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 Send the datagram
Frame is an IP datagram
to 128.143.7.21
Send Ethernet frame to 00:e0:f9:23:a8:20 Send Ethernet frame to 00:20:af:03:98:28
17
Layers and Services
Service provided by TCP to HTTP: reliable transmission of data over a logical connection Service provided by IP to TCP: unreliable transmission of IP datagrams across an IP network Service provided by Ethernet to IP: 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
18
Encapsulation and Demultiplexing
As data is moving down the protocol stack, each protocol is adding layer-specific control information
User data
HTTP
HTTP Header User data
TCP
TCP Header HTTP Header User data
IP
IP Header TCP Header
TCP segment
HTTP Header User data
Ethernet
Ethernet Header IP Header
IP datagram
TCP Header HTTP Header User data Ethernet Trailer
Ethernet frame
19
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
20
10
Encapsulation and Demultiplexing
6 bytes destination address source address type
4 bytes
CRC
Ethernet Header
IP Header
TCP Header
Application data
Ethernet Trailer
Ethernet frame
21
Encapsulation and Demultiplexing: Ethernet Header
6 bytes 00:e0:f9:23:a8:20 0:a0:24:71:e4:44 0x0800
4 bytes
CRC
Ethernet Header
IP Header
TCP Header
Application data
Ethernet Trailer
Ethernet frame
22
11
Encapsulation and Demultiplexing: IP Header
32 bits
version (4 bits) header length DS ECN flags (3 bits) Total Length (in bytes) (16 bits) Fragment Offset (13 bits) Header Checksum (16 bits)
Identification (16 bits) TTL Time-to-Live (8 bits) Protocol (8 bits)
Source IP address (32 bits) Destination IP address (32 bits)
Ethernet Header
IP Header
TCP Header
Application data
Ethernet Trailer
Ethernet frame
23
Encapsulation and Demultiplexing: IP Header
32 bits
0x4 0x5 9d08 12810 0x06 128.143.137.144 128.143.71.21 0x0 0x0 0102 44 10 0000000000000 2 8bff
Ethernet Header
IP Header
TCP Header
Application data
Ethernet Trailer
Ethernet frame
24
12
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
window size urgent pointer Max. segment size
TCP checksum
option type
length
Option: maximum segment size
Ethernet Trailer
Ethernet Header
IP Header
TCP Header Ethernet frame
Application data
25
Encapsulation and Demultiplexing: TCP Header
32 bits
16271 0 80 10
60783510 010
6 10 000000 2 000010 2
819210 00002
0x598e 210 410
146010
Ethernet Header
IP Header
TCP Header
Application data
Ethernet Trailer
Ethernet frame
26
13
Encapsulation and Demultiplexing: Application data
No Application Data in this frame
Ethernet Header
IP Header
TCP Header Ethernet frame
Application data
Ethernet Trailer
27
Different Views of Networking
Different Layers of the protocol stack have a different view of the network. This is HTTPs and TCPs view of the network.
Argon 128.143.137.144 HTTP client HTTP server Neon 128.143.71.21 HTTP server
TCP client
TCP server
TCP server
IP Network
28
14
Network View of IP Protocol
128.143.137.144
128.143.71.21
128.143.137.1
128.143.71.1
Router
128.143.137.0/24 Network
128.143.71.0/24 Network
29
Network View of Ethernet
Ethernets view of the network
Argon (128.143.137.144) Router137 (128.143.137.1)
Ethernet Network
30
15