1. IPv6 address (abbreviated representation) 2. IPv6 address (abbreviation and expansion practice) 3. IPv6 advantages over IPv4 4. IPv4 address structure 5. IPv6 address structure
IPv4 Address 32 bit address (computer stores information in binary (binary notation) Use of dotted decimal notation for external data representation (values 0 to 255) 2 32 (about 4.3 billion) addresses Fields are separated by dots ("."). 8 bits in the first octet, 8 in the second etc. (01111011.00100010. etc.)
128 bit address (not easily handled by humans) 2 128 (340 undecillion about 340 trillion, trillion, trillion addresses). Represented with the use of "coloned-hex" (hexadecimal) notation
Three hundred and forty undecillion, two hundred and eighty-two decillion, three hundred and sixty-six nonillion, nine hundred and twenty octillion, nine hundred and thirty-eight septillion, four hundred and sixty-three sextillion, four hundred and sixty-three quintillion, three hundred and seventy-four quadrillion, six hundred and seven trillion, four hundred and thirty-one billion, seven hundred and sixty-eight million, two hundred and eleven thousand, four hundred and fifty-six.
Addresses are written using 32 hexadecimal digits 8 fields with 16 bits in each field and with 4 hex characters inside 2340:1111:AAAA:0001:1234:5678:9ABCD:1234 Each hexadecimal character represents 4 bits i.e. (4 * 4) * 8 = 128 bits Fields or ‘hextet’ are separated by colons (:) Sixteen bits can hold binary values from 0000 0000 0000 0000 to 1111 1111 1111 1111 Each field with values from 0000 to ffff Remember: Hexadecimal is a Base 16 numbering system uses the numbers 0 to 9 and the letters A to F.
Hexadecimal digits are NOT case sensitive i.e. case-independent
Even in hexadecimal format, an IPv6 address is long (hard to remember) and many digits are zero’s. IPv6 accepts abbreviations in address notation 1090:0000:0000:0000:0009:0900:210D:325F Becomes 1090::9:900:210D:325F Here’s the thing Hosts/routers usually use the shortest abbreviation, even if you type in all 32 hex digits. You need to know abbreviated version
Leading zero’s in a 16 -bit block can be dropped NEVER remove trailing 0s in a quartet. 01AB can be represented as 1AB 0A00 → A00 00AB →AB 0000 → 0 FE80:0000:0000:0000:1232:E4BF:FE1A:8324 → FE80:0:0:0:1232:E4BF:FE1A:8324 3210 can not be abbreviated!
Omitting All 0 Segments (Zero Compression) Pair of colons/double colon (::) Replace any single, contiguous string of two or more consecutive quartets of all hex 0s with :: Zero compression can only be used once in a given address, otherwise the address will be ambiguous. 1090:0000:0000:0000:0009:0900:210D:325F → 1090::9:900:210D:325F
Show abbreviations for the following addresses a. 0000:0000:FFFF:0000:0000:0000:0000:0000 0:0:FFFF:: b. 1234:2346:0000:0000:0000:0000:0000:1111 1234:2346::1111 c. 0000:0001:0000:0000:0000:0000:1200:1000 0:1::1200:1000 d. 0000:0000:0000:0000:0000:FFFF:24.123.12.6 ::FFFF:24.123.12.6
Structurally/superficially valid or invalid? If invalid, why? a. 2001:468:0d01:003c:0000:0000:80df:3c15 b. 2001:468:0d01:003c::80df:3c15 c. 2001:468:d01:3c::80df:3c15 d. 2001:760:2e01:1::dead:beef e. 2001:480:10:1048:a00:20ff:fe9a:58c1:80 f. 2001:500::4:13::80 g. 2001:13G7:7002:4000::10 h. 2607:f278:4101:11:209:5bff:fe8f:6609 i. fe80::209:3dff:fe13:fcf7
a. 2001:468:0d01:003c:0000:0000:80df:3c15 (Valid) b. 2001:468:0d01:003c::80df:3c15 (Valid) c. 2001:468:d01:3c::80df:3c15 (Valid) d. 2001:760:2e01:1::dead:beef (Valid) e. 2001:480:10:1048:a00:20ff:fe9a:58c1:80 Invalid (nine chunks instead of eight) f. 2001:500::4:13::80 Invalid (double colons appear more than once) g. 2001:13G7:7002:4000::10 Invalid (G is not a valid hexadecimal digit) h. 2607:f278:4101:11:209:5bff:fe8f:6609 (Valid) i. fe80::209:3dff:fe13:fcf7 (Valid)
2 Rules 1. In each quartet, add leading 0s as needed until the quartet has four hex digits 2. If a double colon (::) exists, count the quarters currently shown; total should be < 8. Replace the :: with multiple quarters so that 8 total quarters exist.
FULL Abbreviation 2340:0000:0010:0100:1000:ABCD:0101:1010 30A0:ABCD:EF12:3456:ABC:B0B0:9999:9009 2222:3333:4444:5555:0000:0000:6060:0707 3210:: 210F:0000:0000:0000:CCCC:0000:0000:000D 34BA:B:B::20 FE80:0000:0000:0000:DEAD:BEFF:FEEF:CAFE
FULL Abbreviation 2340:0000:0010:0100:1000:ABCD:0101:1010 2340:0:10:100:1000:ABCD:101:1010 30A0:ABCD:EF12:3456:0ABC:B0B0:9999:9009 30A0:ABCD:EF12:3456:ABC:B0B0:9999:9009 2222:3333:4444:5555:0000:0000:6060:0707 2222:3333:4444:5555:::6060:0707 3210:0000:0000:0000:0000:0000:0000:0000 3210:: 210F:0000:0000:0000:CCCC:0000:0000:000D 210F::CCCC:0:0:D 34BA:000B:000B:0000:0000:0000:0000:0020 34BA:B:B::20 FE80:0000:0000:0000:DEAD:BEFF:FEEF:CAFE FE80::DEAD:BEFF:FEEF:CAFE
Mixed representation of IPv6 address = colon hex + dotted decimal notation Appropriate during transition period in which IPv4 address is embedded in IPv6 (rightmost 32 bits) Happens when most/all of left most sections are zero’s ::192.168.0.2 (legitimate address & all 96 left most bits are zero) OR 0:0:0:0:0:0:0:192.168.0.2 OR ::C0a8:2 (hex representation of 192.168.0.2)
1. Leading zero’s must be suppressed 2. Single 0000 field must be represented as 0 and should not be replaced by double colon 3. Shorten as much as possible 4. Always shorten largest number of zero’s 5. If two blocks pf zeros are equally long, shorten the first one 6. Use lowercase of a - f
Larger Address Space Shortage of IPv6 addresses would only happen in Year 2400 IPv4 – 4.3 Billion Addresses (short supply since early 1990’s) 4, 294, 967, 296 IPv6 – 340 undecillion Addresses 340, 282, 366, 920, 938, 463, 374, 607, 431, 768, 211, 456 Some say, address depletion in this version is impossible.
Non-Broadcast Less expensive in terms of bandwidth and router resources Reduces collisions as less traffic No longer any broadcast i.e. only unicast, multicast , anycast In IPv6 all nodes must support multicast, otherwise services will not work
No more ARP Replaced by Network Discovery Protocol (NDP)
No more NAT Brings back original end-to-end model of Internet
Security IP Security Protocol (IPsec) is mandatory for IPv6 BUT only optional for IPv4 Secure IPv4 by updating all nodes to support IPsec support
Autoconfiguration Hello “Stateless Address Autoconfiguration” (SLAAC) In IPv4 we assign IP addresses (static or DHCP) In IPv6, device can get prefix information (used for routing IPv6 packets) from the router on the link The device can then autoconfigure 1 or more global IP address by using its MAC identifier No more reconfiguring your DHCP server, reduce admin costs when you buy a new fridge! So many IP devices of all types.
During the connection phase between hosts (via TCP 3 way handshake) Maximum Segment Size (MSS) is exchanged (not negotiated) between hosts MSS: maximum (now minimum) largest amount of data the host will can handle in a single, unfragmented piece + We also have the MTU Maximum Transmission Unit (MTU): maximum packet size for a link Ethernet interfaces have a default MTU of 1500 byte
Maximum Segment Size (MSS) of data that the host would accept Lead to fragmentation at the endpoints as packets were larger than the interface MTU (endpoints – source and destination)
Minimum Segment Size of data that the host would accept Each host will first compare its outgoing interface MTU with its MSS Choose the lowest value as the MSS to send. Hosts then compare MSS sizes and choose the lowest Now avoiding fragmentation
TCP computes the MSS Using the MTU size of the network interface + Then subtracting the protocol headers to come up with the size of data in the TCP packet e.g. Ethernet with a MTU of 1500 would result MSS of 1460 after subtracting 20 bytes for IPv4 header and 20 bytes for TCP header.
TCP protocol includes a mechanism for both ends of a connection to advertise the MSS T o be used over the connection when the connection is created. Each end uses the OPTIONS field in the TCP header to advertise a proposed MSS. MSS that is chosen is the smaller of the values provided by the two ends. If one endpoint does not provide its MSS, then 536 bytes is assumed, which is bad for performance. The problem is that each TCP endpoint only knows the MTU of the network it is attached to. It does not know what the MTU size of other networks that might be between the two endpoints. So, TCP only knows the correct MSS if both endpoints are on the same network
ISP use much faster links e.g. gigabit & 10 gigabit and these allow bigger packets up to 9,000 bytes. Size of packet that can get from A → B without any difficulties depends on the smallest link in the chain Internet as a whole generally works with 1,500 byte packets with no problem But There are cases where smaller MTU links are used i.e. VPN (Virtual Private Network) Smallest link allowed is 576 bytes i.e. modems on dialup-internet
What happens if a packet is too big?
A. Don't send the packet and send an error message back saying it could not be sent B. Break the packet up in to smaller bits (fragments) which will fit, and send these on to the next router.
Recommend
More recommend