Post on 18-Jan-2016
1
Introduction to Networking Concepts
Chu-Sing YangDepartment of Electrical Engineering
National Cheng Kung University
2
Networking Concepts
• Network Definition
• Protocol Architecture
• Protocol Layers
• Encapsulation/Decapsulation
• Network Abstractions
• Internet Control Message Protocol (ICMP)
Network Definitions
• A network can be defined as two or more computers connected together in such a way that they can share resources.
• The purpose of a network is to share resources.– A file– A folder– A printer– A disk drive– Or just about anything else that exists on a computer.
Network Definitions(cont..)
A network is simply a collection of computers or other hardware devices that are connected together, either physically or logically, using special hardware and software, to allow them to exchange information and cooperate. Networking is the term that describes the processes involved in designing, implementing, upgrading, managing and otherwise working with networks and network technologies.
Advantages of Networking
• Connectivity and Communication • Data Sharing • Hardware Sharing • Internet Access • Internet Access Sharing • Data Security and Management • Performance Enhancement and Balancing • Entertainment
The Disadvantages of Networking
• Network Hardware, Software and Setup Costs • Hardware and Software Management and
Administration Costs • Undesirable Sharing • Illegal or Undesirable Behavior • Data Security Concerns
Fundamental Network Classifications
Local Area Networks (LANs): • A local area network (LAN) is a computer network covering a small geographic area, like a home, office,
or group of buildings Wide Area Networks (WANs): • Wide Area Network (WAN) is a computer network that covers a broad area (i.e., any network whose
communications links cross metropolitan, regional, or national boundaries). Or, less formally, a network that uses routers and public communications links
• The largest and most well-known example of a WAN is the Internet. • WANs are used to connect LANs and other types of networks together, so that users and computers in
one location can communicate with users and computers in other locations
Metropolitan Area Network (MAN):o A metropolitan area network (MAN) is a network that interconnects users with computer resources in a
geographic area or region larger than that covered by even a large local area network (LAN) but smaller than the area covered by a wide area network (WAN). The term is applied to the interconnection of networks in a city into a single larger network (which may then also offer efficient connection to a wide area network). It is also used to mean the interconnection of several local area networks by bridging them with backbone lines. The latter usage is also sometimes referred to as a campus network.
8
neon.tcpip-lab.edu"Neon"
128.143.71.21
argon.tcpip-lab.edu"Argon"128.143.137.144
router137.tcpip-lab.edu"Router137"
128.143.137.1
router71.tcpip-lab.edu"Router71"128.143.71.1
Ethernet NetworkEthernet Network
Router
Sending a packet from Argon to Neon
9
DNS: The IP address of
“neon.tcpip-lab.edu” is 128.143.71.21
ARP: What is the MAC address of 128.143.137.1?
neon.tcpip-lab.edu"Neon"
128.143.71.21
argon.tcpip-lab.edu"Argon"128.143.137.144
router137.tcpip-lab.edu"Router137"
128.143.137.1
router71.tcpip-lab.edu"Router71"128.143.71.1
Ethernet NetworkEthernet Network
Router
Sending a packet from Argon to Neon
DNS: What is the IP address
of “neon.tcpip-lab.edu”?ARP: The MAC address of 128.143.137.1 is 00:e0:f9:23:a8:20
128.143.71.21 is not on my local network.Therefore, I need to send the packet to my
default gateway with address 128.143.137.1
frame
128.143.71.21 is on my local network.Therefore, I can send the packet directly.
ARP: The MAC address of 128.143.137.1 is 00:20:af:03:98:28
ARP: What is the MAC address of 128.143.71.21?
frame
10
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
11
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
Network Operating system
User-level programs
Data Link
Data Link
Media AccessControl (MAC)
Sublayer inLocal AreaNetworks
12
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
13
TCP/IP Suite and OSI Reference Model
ApplicationLayer
ApplicationLayer
PresentationLayer
SessionLayer
TransportLayer
NetworkLayer
(Data) LinkLayer
PhysicalLayer
TransportLayer
NetworkLayer
OSIReference
Model
(Data) LinkLayer
TCP/IP Suite
The TCP/IP protocol stack does not define the lower layers of a complete protocol stack
14
Assignment of Protocols to Layers
NetworkLayer
Routing Protocols
PIM
OSPF
RIP
ApplicationLayer
Data LinkLayer
IP
ARP Ethernet
NetworkInterface
TransportLayer
TCP UDP
SNMPFTP DNSHTTP
ICMP
IGMP
pingapplication Telnet
DHCP
15
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 LayerEntity
N+1 LayerEntity
N+1 Layer ProtocolN+1 Layer
N-1 LayerEntity
N-1 LayerEntity
N-1 Layer ProtocolN-1 Layer
N LayerEntity
N LayerEntity
N Layer ProtocolN Layer
layer N+1/Ninterface
layer N/N-1interface
16
Layered Communications
A layer N+1 entity sees the lower layers only as a service provider
Service Provider
N+1 LayerEntity
N+1 LayerEntity
N+1 Layer Peer Protocol
Request Delivery
IndicateDelivery
17
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
Layer-NEntityN Layer
Layer- N-1Entity
N-1Layer
layer N/N-1service interface
LayerN-1SAP
18
Exchange of Data
• 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
• Scenario: Layer-N at A sends a layer-N PDU to layer-N at B• What actually happens:
– A’s layer-N passes the PDU to one the SAPs at layer-N-1– Layer-N-1 entity at A constructs its own (layer-N-1) PDU which it sends to the
layer-N-1 entity at B– PDU at layer-N-1 = layer-N-1 Header + layer –N PDU
N LayerEntity
PDU(at layer N)
N LayerEntity
A B
19
Exchange of Data
Layer-NEntity
N PDU
Layer- N-1Entity
Layer-N PDU and control data issent to SAP of Layer-N-1
SAPs
control
N PDUcontrol
Header(of layer N-1) N PDU
PDU of Layer-N-1
Layer-NEntity
Layer- N-1Entity
A B
20
Layers in the Example
HTTP
TCP
IP
argon.tcpip-lab.edu
128.143.137.144
Ethernet Ethernet Ethernet
IP
HTTP
TCP
IP
neon.tcpip-lab.edu128.143.71.21
Ethernet
router71.tcpip-lab.edu
128.143.137.100:e0:f9:23:a8:20
router137.tcpip-lab.edu
128.143.71.1
HTTP protocol
TCP protocol
IP protocol
Ethernet
IP protocol
Ethernet
21
Layers in the Example
HTTP
TCP
IP
argon.tcpip-lab.edu
128.143.137.144
Ethernet Ethernet Ethernet
IP
HTTP
TCP
IP
neon.tcpip-lab.edu128.143.71.21
Ethernet
router71.tcpip-lab.edu
128.143.137.100:e0:f9:23:a8:20
router137.tcpip-lab.edu128.143.71.1
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
Send a datagram (which contains a connection request) to 128.143.71.21Send IP datagram to
128.143.71.21
Send the datagram to 128.143.137.1
Send Ethernet frame to 00:e0:f9:23:a8:20
Send Ethernet frame to 00:20:af:03:98:28
Send IP data-gram to 128.143.71.21
Send the datagram to 128.143.7.21
Frame is an IP datagram
Frame is an IP datagram
IP datagram is a TCP segment for port 80
22
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
23
Encapsulation and Demultiplexing
• As data is moving down the protocol stack, each protocol is adding layer-specific control information
HTTP
TCP
IP
Ethernet
User data
User dataHTTP Header
TCP Header
TCP HeaderIP Header
TCP HeaderIP HeaderEthernetHeader
EthernetTrailer
IP datagram
TCP segment
Ethernet frame
User dataHTTP Header
User dataHTTP Header
User dataHTTP Header
24
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 f923 a820 00a0 2471 e444 0800 4500 002c 9d08 4000 8006 8bff 808f 8990 808f 4715 065b 0050 0009 465b 0000 0000 6002 2000 598e 0000 0204 05b4
25
Parsing the information in the frame
version0x4
header length
0x5Type of Service/TOS
0x00total length (in bytes)
0x002cIdentification
0x9d08flags0102
fragment offset00000000000002
cource IP address128.143.137.144
destination IP address128.143.71.21
time-to;ive0x80
protocol0x06
header checksum0x8bff
source port number162710
destination port number8010
sequence number0x0009465b
acknowledgement number0x00000000
header length
0x6unused0000002
flags0000102
window size819210
TCP checksum0x598e
urgent pointer0x0000
maximum segment size146010
option type0x02
option length0x04
destination address00:e0:f9:23:a8:20
source address0:a0:24:71:e4:44
type0x0800
4 bytes
CRC
Ethernetheader
(14 bytes)
IP Header(20 bytes)
TCP Header(24 bytes)
Ethernettrailer
(4 bytes)
26
Encapsulation and Demultiplexing
Application dataTCP HeaderIP HeaderEthernet Header Ethernet Trailer
Ethernet frame
destination address
source address
type
6 bytes
CRC
4 bytes
27
00:e0:f9:23:a8:20
0:a0:24:71:e4:44
0x0800
6 bytes
CRC
4 bytes
Encapsulation and Demultiplexing: Ethernet Header
Application dataTCP HeaderIP HeaderEthernet Header Ethernet Trailer
Ethernet frame
28
Encapsulation and Demultiplexing: IP Header
Application dataTCP HeaderEthernet Header Ethernet Trailer
Ethernet frame
IP Header
DS ECNversion(4 bits)
headerlength
Total Length (in bytes)(16 bits)
Identification (16 bits)flags
(3 bits)Fragment Offset (13 bits)
Source IP address (32 bits)
Destination IP address (32 bits)
TTL Time-to-Live(8 bits)
Protocol(8 bits)
Header Checksum (16 bits)
32 bits
29
Encapsulation and Demultiplexing: IP Header
Application dataTCP HeaderEthernet Header Ethernet Trailer
Ethernet frame
IP Header
0x0 0x00x4 0x5 4410
9d08 0102 00000000000002
128.143.137.144
128.143.71.21
12810 0x06 8bff
32 bits
30
Encapsulation and Demultiplexing: TCP Header
Application dataEthernet Header Ethernet Trailer
Ethernet frame
IP Header TCP Header
Sequence number (32 bits)
Source Port Number Destination Port Number
Acknowledgement number (32 bits)
window sizeheaderlength
0 Flags
TCP checksum urgent pointer
32 bits
length Max. segment sizeoptiontype Option:
maximum segment size
31
Encapsulation and Demultiplexing: TCP Header
Application dataEthernet Header Ethernet Trailer
Ethernet frame
IP Header TCP Header
60783510
162710 8010
010
819210610 0000002 0000102
0x598e 00002
32 bits
410 146010210
32
Encapsulation and Demultiplexing: Application data
Application dataEthernet Header Ethernet Trailer
Ethernet frame
IP Header TCP Header
No Application Data
in this frame
33
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.
HTTP client
TCP client
Argon128.143.137.144
HTTPserver
TCP server
Neon128.143.71.21
IP Network
HTTPserver
TCP server
34
Network View of IP Protocol
128.143.71.21128.143.137.144
Router
128.143.137.0/24Network
128.143.137.1 128.143.71.1
128.143.71.0/24Network
35
Network View of Ethernet
• Ethernet’s view of the network
Argon(128.143.137.144)
Router137(128.143.137.1)
Ethernet Network
36
Internet Control Message Protocol (ICMP)
37
• The IP (Internet Protocol) relies on several other protocols to perform necessary control and routing functions:
• Control functions (ICMP)• Multicast signaling (IGMP)• Setting up routing tables (RIP, OSPF, BGP, PIM, …)
Control
Routing
ICMP IGMP
RIP OSPF BGP PIM
Overview
38
Overview
• The Internet Control Message Protocol (ICMP) is a helper protocol that supports IP with facility for – Error reporting– Simple queries
• ICMP messages are encapsulated as IP datagrams:
IP header ICMP message
IP payload
39
ICMP Message Format
additional informationor
0x00000000
type code checksum
bit # 0 15 23 248 317 16
4 byte header:• Type (1 byte): type of ICMP message• Code (1 byte): subtype of ICMP message• Checksum (2 bytes): similar to IP header checksum. Checksum is
calculated over entire ICMP message
If there is no additional data, there are 4 bytes set to zero. each ICMP messages is at least 8 bytes long
40
ICMP Query Message
ICMP query: • Request sent by host to a router or host• Reply sent back to querying host
Host
ICMP Request
Host or router
ICMP Reply
41
Example of ICMP Queries
Type/Code: Description
8/0 Echo Request
0/0 Echo Reply
13/0 Timestamp Request
14/0 Timestamp Reply
10/0 Router Solicitation
9/0 Router Advertisement The ping command uses Echo Request/ Echo Reply
42
• Ping’s are handled directly by the kernel• Each Ping is translated into an ICMP Echo Request• The Ping’ed host responds with an ICMP Echo Reply
Example of a Query: Echo Request and Reply
Hostor
Router
Hostor
Router
ICMP ECHO REQUESTHost or
router
Host or
router
ICMP ECH
O REPLY
43
Example of a Query: ICMP Timestamp
• A system (host or router) asks another system for the current time.
• Time is measured in milliseconds after midnight UTC (Universal Coordinated Time) of the current day
• Sender sends a request, receiver responds with reply
Type(= 17 or 18)
Code(=0)
Checksum
32-bit sender timestamp
identifier sequence number
32-bit receive timestamp
32-bit transmit timestamp
Sender Sender
ReceiverReceiver
TimestampRequest
TimestampReply
44
ICMP Error message
• ICMP error messages report error conditions • Typically sent when a datagram is discarded• Error message is often passed from ICMP to the
application program
Host
IP datagram
Host or router
ICMP ErrorMessage
IP datagramis discarded
45
ICMP Error message
• ICMP error messages include the complete IP header and the first 8 bytes of the payload (typically: UDP, TCP)
Unused (0x00000000)
IP header ICMP header IP header 8 bytes of payload
ICMP Message
from IP datagram that triggered the error
type code checksum
46
Frequent ICMP Error message
Type Code Description
3 0–15 Destination unreachable
Notification that an IP datagram could not be forwarded and was dropped. The code field contains an explanation.
5 0–3 Redirect Informs about an alternative route for the datagram and should result in a routing table update. The code field explains the reason for the route change.
11 0, 1 Time exceeded
Sent when the TTL field has reached zero (Code 0) or when there is a timeout for the reassembly of segments (Code 1)
12 0, 1 Parameterproblem
Sent when the IP header is invalid (Code 0) or when an IP header option is missing (Code 1)
47
Some subtypes of the “Destination Unreachable”
Code Description Reason for Sending
0 Network Unreachable
No routing table entry is available for the destination network.
1 Host Unreachable
Destination host should be directly reachable, but does not respond to ARP Requests.
2 Protocol Unreachable
The protocol in the protocol field of the IP header is not supported at the destination.
3 Port Unreachable
The transport protocol at the destination host cannot pass the datagram to an application.
4 Fragmentation Needed and DF Bit Set
IP datagram must be fragmented, but the DF bit in the IP header is set.
48
Example: ICMP Port Unreachable
• RFC 792: If, in the destination host, the IP module cannot deliver the datagram because the indicated protocol module or process port is not active, the destination host may send a destination unreachable message to the source host.
• Scenario:
Client Client
Request a serviceat a port 80
Server Server
No process is waiting at port 80
Port
Unreacha
ble