例外(exception)とは何か

Download Report

Transcript 例外(exception)とは何か

Lecture 10
Datagram Fragmentation, ICMP & IPv6
• IP Datagram Encapsulation
• Network Maximum Transmission Unit (MTU)
• IP Datagram Fragmentation
• ICMP (Internet Control Message Protocol)
- Error Report Mechanism
- Information Query Mechanism
- ICMP Message format and Transmission
- ping and traceroute Utilities
• IPv6
- IPv6 Features
- IPv6 Header and Format
- IPv6 Address
Lecture 10
Internet Transmission Paradigm
IP D
Source
host
Routing
Table
--------## ***
…………
IP D
IP D
router
network
Routing
Table
--------## ***
…………
IP D
router
network
Routing
Table
--------## ***
…………
IP D
router
network
Routing
Table
--------## ***
…………
network
Destination
host
Routing
Table
--------## ***
…………
• Source host
- Forms datagram with destination address
- Sends to nearest router
• Intermediate routers
- Forward datagram to next router
• Final router
- Delivers to destination host
Note: Datagram must be passed to network interface & sent across physical network.
Network hardware does not recognize IP datagram format and IP address !!
How is datagram transmitted across physical network ??
 Address Resolution (ARP) and Encapsulation !!
Lecture 10
IP Datagram Encapsulation
IP Datagram/Packet
IP Data Area
IP Header
Encapsulated into a frame/packet in lower layer
Frame Header
Frame Data
Hardware Network Frame/Packet
• Entire datagram treated like data encapsulated in a frame for transmission
• Frame type (0800 for Ethernet)
identifies contents as IP datagram
• Frame destination address gives next hop
Ethernet Frame
• Next hop Frame/Hardware Address is obtained by address resolution protocol (ARP)
• IP address will not be changed while frame address is different in different network
Lecture 10
Encapsulation Across Multiple Hops
Animation
• Each router extracts datagram, discard frame,
determines next hop via ARP, encapsulates datagram in outgoing frame
• Frame headers may differ depended upon network types
• Datagram survives in entire trip, but frame only survives one hop
Lecture 10
Maximum Transmission Unit (MTU)
• Every hardware technology specification includes the definition of the
maximum size of the frame data area - called maximum transmission unit (MTU)
• IP datagrams can be larger than most hardware MTUs
- IP: (216 – 1) bytes = 64K bytes
- Ethernet: 1500 bytes
- Token ring: 4464 bytes
- FDDI: 4352 bytes
- X.25: 576 bytes
Ethernet Frame
- PPP: 296 bytes (Point-to-Point Protocol)
• Any datagram encapsulated in a hardware frame must be smaller than the
MTU for that hardware
• An internet may have networks with different MTUs
Lecture 10
Datagram Fragmentation
• Fragmentation: a technique to limit datagram size to smallest MTU of any network
• IP uses fragmentation – split datagrams into pieces to fit in network with small MTU
• Router detects datagram larger than network MTU
- Splits into pieces called fragments
- Each piece smaller than output network MTU
• Each fragment has datagram header and is sent separately
• Ultimate destination reassembles fragments
> MTU
Fragment 1
Fragmentation
Fragment 2
Fragment 3
Fragmentation
No-fragmentation
No-assemble
No-assemble
Each <= MTU
Assemble fragments
Lecture 10
Datagram Fragmentation & Reassembly
 Network links have MTU
- Different link types
with Different MTUs
* 1500 bytes for Ethernet
* 296 bytes for PPP
Fragmentation:
in: one large datagram
out: 3 smaller datagrams
 large IP datagram divided
(“fragmented”) within net
 one datagram becomes
several datagrams
 “reassembled” only at the
final destination
 IP header bits used to
identify, order related
fragments
Reassembly
Lecture 10
Fragment Related Fields in IP Header
Identification
- Datagram ID
- 16 bits counter
Flag
- Signal fragment.
- 3 bits, ABC
A: reserved
B: 1 – no fragment
0 - fragmented
C: 1 - not last fragment
0 - last fragment
Fragment offset
- Payload data location
- Numbers of 8 bytes
- 13 bits
Lecture 10
An Example of Datagram Fragmentation
Example
length ID fragflag offset
 MTU = 1500 bytes
=4020 =x
=0
=0
 4020 byte IP datagram
If one fragment is
One
large
datagram
becomes
 20 byte IP header
lost, IP discards all
several smaller datagrams
fragments
 4000 byte payload
 3 fragments: F1, F2, F3
length ID fragflag offset
 4000=1480+1480+1040
F1
=1500 =x
1480 bytes in
data field
offset = multiple of 8 bytes so
 1480/8 = 185
 185+185 = 370
=1
=0
length ID fragflag
=1500 =x
=1
offset
=185
F2
length ID fragflag
=1040 =x
=0
offset
=370
F3
ID: set by sending host IP layer; typically increments ID num for each
datagram it sends. Last fragment sent has flag field set to 0 to indicate it’s
the last fragment; all other fragments have flag set to 1
Lecture 10
Sub-fragmentation and Fragment Loss
•
•
•
•
Fragment may encounter a subsequent network with even smaller MTU
Router fragments the fragment to fit
Resulting (sub)fragments look just like original fragments (except for size)
No need to reassemble hierarchically; (sub)fragments include position in datagram
• IP may drop fragment
• What happens when a fragment is lost?
 Destination drops entire original datagram
• How does destination identify lost fragment?
IP Hdr21 data21
IP Hdr22
- Sets timer with each fragment
- If timer expires before all fragments arrive, fragment assumed lost
- Datagram dropped
• Source (transport/application layer protocol) assumed to retransmit
(sub)fragments
data22
Lecture 10
IP Datagram Errors and ICMP
 IP provides best-effort delivery
 Datagrams will be dropped if the following errors are detected
- corrupted bits  detected by header checksum
- illegal address  detected by routers (routing table) and ARP reply
- routing loop  detected by Time-To-Live (TTL) field
- fragment loss  detected by timeout
 IP ignores errors, but reports some errors !!
 Internet Control Message Protocol (ICMP) is a protocol to report errors and
provide some information.
- Error reporting function
Report problems that a router or a destination host encounters when it
processes an packet via sending an ICMP message TO a source host
- Information query function
Help a source host or a network manager get specific information from a
router or another host
Lecture 10
Error Report and Information Query Mechanism
Error report mechanism
with error
IP datagram
Router
X
Dropped
with error
Dropped
x
Router
x
Router
Source
Host
Destination
ICMP datagram
for error report
ICMP datagram
for error report
Host
Information query mechanism
ICMP datagram
for information query
q
Source
Host
Router
r
q
r
ICMP datagram
for reply
q
Router
Router
r
q
r
ICMP datagram
for reply
Destination
Host
Lecture 10
ICMP Message Format and Transmission
-
ICMP includes both error messages and information messages
ICMP message consists of ICMP header and ICMP data
ICMP encapsulates message in IP data area for transmission
ICMP datagram is processed and forwarded like conventional IP datagram
ICMP Message
ICMP Header
ICMP Datagram
ICMP Data Area
Encapsulated
IP Header
IP Data Area
IP Header: type=1 for ICMP message
ICMP Header
0
Encapsulated
8
16
24
31
Type Code
Checksum
Identifier
Sequence Num.
Type: error/information type
Code: detailed error type
ICMP Message Types
• Error messages:
- Source quench (type=4)
too many datagrams to buffer in a router
- Time exceeded (type=11)
TTL becomes zero in a router (code=0)
fragment reassembly timer expires
in a host (code=1)
- Destination unreachable (type=3, code=1~15)
network disconnection or
destination host is powered down or
TCP/application not run, firewall, etc
• Information query messages: (a pair)
- Request/reply
(type=8: request, type=0: reply)
- Timestamp request/reply
(type=13: request, type=14: reply)
- Address mask request/reply
(type=17: request, type=18: reply)
Lecture 10
ICMP, Host Reachability and Internet Route
 An internet host A is reachable from another host B if datagrams
can be delivered from A to B
 ping utility tests reachability
- Sends datagram from B to A that A echoes back to B
- Uses ICMP echo request and echo reply messages
ping & other network utilities
 Command format: ping IP-address/Host-name
 List of all routers on path from A to B is called the route from A to B
 traceroute uses UDP to non-existent port and TTL field to find route
- Sends ICMP echo messages with increasing TTL
- Router that decrements TTL to 0 sends ICMP time exceeded message,
with router's address as source address
ICMP & TraceRT Anim1
- First, with TTL=1, gets to first router, which
ICMP & TraceRT Anim2
discards and sends time exceeded message
- Next, with TTL=2, gets through first router to second router
- Continue, with TTL=3, 4, …, until message from destination received
 Command format for Unix/Linux: traceroute IP-address/Host-name
Command format for Windows: tracert IP-address/Host-name
Lecture 10
Motivation for Change from IPv4 to IPv6
- Current version of IPv4 - is more than 30 years old
- IPv4 has shown remarkable success !!!
- Then why change?
 Address space
- 32 bit address space allows for over a million networks
- But...most are Class C and too small for many organizations
- 214 = 16384 Class B network addresses already almost exhausted
 Type of service
- Different applications have different requirements for delivery reliability & speed
- Current IPv4 has type of service that's not often implemented
- Effective multimedia communication
- Data encryption and authentication
 Multicast
 One next version is called IPv6 !
Lecture 10
New Features in IPv6
-
Large address size – 128 bits = 16 bytes
Better header format - entirely different
Base header – 40 bytes
Extension headers - Additional information stored in optional extension headers
Support for resource allocation (QoS) - flow labels and quality of service allow
audio and video applications to establish appropriate connections
Support for more security
Extensible - new features can be added more easily
No checksum field - to reduce processing time in a router
No fragmentation - to reduce load of routers
Potential for the Internet of Things (IoT)
40 bytes
Lecture 10
IPv6 Base Header Format
It contains less information than IPv4 header
- VERS = 6 for IPv6
- PRIORITY (8 bits) for traffic classes, such as delay, jitter, reliability requirements
- PAYLOAD LENGTH (16 bits): Length excluding the base header
- NEXT HEADER points to first extension header
- HOP LIMIT (8 bits) same as TTL in IPv4
- FLOW LABEL (20 bits)
- used to associate datagrams belonging to a flow or communication
between two applications
- Specific path
- Routers use FLOW LABEL to forward datagrams along prearranged path
Lecture 10
IPv6 Next Header
Purpose of multiple headers: economy and extensibility
Next header codes
 0 - Hop-by-hop option
 2 - ICMP
 6 - TCP
17 - UDP
43 - Source routing
44 - Fragmentation
50 - Encrypted security payload
51 - Authentication
59 - Null (no next header)
60 - Destination option
Lecture 10
IPv6 Addressing
- 128-bit addresses: Type + Rest of address
- Groups of 16-bit numbers in hex separated by colons - colon hexadecimal (or colon hex)
69DC:8864:FFFF:FFFF:0:1280:8C0A:FFFF
- Special types of addresses: unicast, multicast, anycast - collection of computers with same prefix
- Type:
0000 0000 - Reserved
0000 000 - ISO network addresses
0000 010 - IPX (Novell)
010
- Provided-based unicast addresses
100
- Geographic unicast addresses
1111 1111 - Multicast address
- Provider-based unicast addresses for normal host
-------------------------------------------------------------------------------------------------------------| 010 | RegID(5) | ProviderID(16) | SubscriberID(24) | SubnetID(32) | HostID(48) |
------------------------------------------------------------------------------------------------- ------------- Register ID: 11000 - INTERNIC for North America
01000 - RIPNIC for European countries
10100 - APNIC for Asian and Pacific countries
- Address hierarchy
- Reserved addresses
IPv6 Introduction Video
- Loopback address: 000...0001
- IPv4 address: 000...000+IPv4 address = Ipv6 address
Lecture 10
Tunneling – Transition from IPv4 toIPv6
A
B
IPv6
IPv6
A
B
C
IPv6
IPv6
IPv4
Logical view:
Physical view:
 Not all routers can be
upgraded simultaneous

How will the network
operate with mixed
IPv4 and IPv6 routers?
Flow: X
Src: A
Dest: F
data
 Tunneling: IPv6 carried
as payload in IPv4
datagram among IPv4
routers
http://en.wikipedia.org/wiki/IPv6
http://ja.wikipedia.org/wiki/IPv6
A-to-B:
IPv6
E
F
IPv6
IPv6
D
E
F
IPv4
IPv6
IPv6
Tunnel
Src:B
Dest: E
Src:B
Dest: E
Flow: X
Src: A
Dest: F
Flow: X
Src: A
Dest: F
data
data
B-to-C:
IPv6 inside
IPv4
B-to-C:
IPv6 inside
IPv4
Flow: X
Src: A
Dest: F
data
E-to-F:
IPv6
Exercise 10
1. 100 byte data is sent using IP across an Ethernet. Before sent, the data will be first
formed an IP datagram and then the datagram will be encapsulated into an Ethernet
Frame. Calculate the percentage of headers in sending the 100 byte data. Assume
no optional field in IP header.
2. Suppose a file of 20 Kbytes to be sent from host H1 to host H2 across three networks as
shown in the following figure. How many IP datagrams will be sent from H1? And how many
IP datagrams will be received by H2? Assume no datagram loss, duplication and disorder
during the transmissions.
H1
Toking Ring
MTU=4464
R1
Ethernet
MTU=1500
R2
FDDI
MTU=4352
H2
3. Host A sends a message to host B and never receive reply from B. However, host A receives
an ICMP message with a header in hexadecimal format as the follows
03 01 1A C8 31 00 B7
Give possible reasons that A does not receive reply from B.
4. Explain how traceroute utility works. Use the utility in a Windows OS environment to probe
the Internet organization web server. The command is tracert www.ietf.org . How many routes
have been passed when your packet travel to the web server? Which one is the slowest?
5. Summarize main features of IPv6 as compared with IPv4.