Course list: http://www.c-jump.com/bcc/
Transmission Control Protocol/Internet Protocol suite of protocols:
layered set of protocols
each layer adds its own functionality building upon the layer below it
top level: recognition/necessity of file transfers and email delivery
layers in-between: taking care of routing and reliability of data delivery
lowest level: sending and receiving of raw data.
IP is the mailroom of the TCP/IP stack, where packet sorting and delivery takes place.
At IP layer, each incoming or outgoing packet is referred to as a datagram.
Each IP datagram bears
the source IP address of the sender, and
the destination IP address of the intended recipient.
IPv4:
uses a 32-bit IP addressing system
similar to a town with 4,294,967,296 houses
with explosive growth of the Internet, this is no longer enough
NAT is required to deal with division between public and private IPv4 addresses.
IPv6:
new addressing system
based on 128-bit addressing system
vastly enhances the number of addresses available
IPv6 addresses in a datagram remain the same throughout a packet's journey across an inter-network.
NAT is a solution for IP addresses in the depleted IPv4 address space.
Rather than assigning a worldwide unique address to every user's machine,
NAT assigns a private IP address to network nodes.
On the internet, multiple computers/servers are covered under a single, globally unique, public IP address.
Ethernet protocol is designed for carrying blocks of data called frames.
Most commonly used type of network today.
Implements the following two principals of physical design of a network:
communication over a single cable
all data is shared by all devices on the network.
Any attached device can communicate with any other attached device.
New devices are easily accommodated, and the network expands.
Designed for always on connectivity
Larger address space
Mobile devices support: cell phones, home appliances, cars...
Auto-configuration
Built-in security (cryptographic key management and encryption)
Route aggregation hierarchy -- similar to ZIP code hierarchy:
mail to 9XXXX is directed to the West coast;
letters to 97XXX are sent to Oregon;
letters to 98XXX are sent to Washington state;
and so on.
Plug-and-play autoconfiguration
Mobility
Built-in encryption/security
Quality of Service
Simplified IP header format
Extensibility
Node: device that implements IPv6
Router: node that forwards IPv6 packets
Host: any node that isn't a router
Upper layer: protocol layer immediately above IPv6
Link: communication medium over which nodes communicate
Subnet: one or more links with the same 64-bits address prefix
Neighbor Nodes: network devices attached to the same link
Interface: Node's attachment to the link
Data Packet: IPv6 header + payload
Unicast address: identifies a single interface:
An IPv6 packet sent to a single Unicast address is delivered to the interface identified by that address.
Multicast address: identifies group/set of interfaces that belong to a group of nodes.
An IPv6 packet delivered to a Multicast address is delivered to multiple interfaces.
Anycast address: identifies a set of interfaces that belong to a group of nodes.
An IPv6 packet destined for an Anycast address is delivered to one of the interfaces identified by the address.
Anycast address is used by routers. The closest router using the address gets the packet.
Distributed, message-based software, e.g Network Gaming
Video on Demand VoD
Internet Radio and TV
Multipoint conferencing
...and so on.
IPv6 Address consists of 8 groups of 4 hexadecimal digits, separated by colons. For example,
2001:cdba:0000:0000:0000:0000:3257:9652
2001:cdba:0:0:0:0:3257:9652
2001:cdba::3257:9652
Any four-digit group of zeroes can be reduced to a single zero, or altogether omitted.
The URL for the above address is written as
http://[2001:cdba:0000:0000:0000:0000:3257:9652]/
Uncompressed form:
ff01:0000:0000:0000:0000:0000:0000:0043
Compressed form:
ff01::43
URL:
http://[ff01::43]/index.html
The first 48 bits (first 3 blocks) of a global unicast address
are publicly leased bits from IANA
specify the organization site
called the global routing prefix
IPv6 networks are denoted by Classless Inter Domain Routing (CIDR) notation.
A network is a contiguous group of IPv6 addresses whose size is a power of two.
A network prefix: a specified number of initial bits in IPv6 address -- identical for all hosts in a network.
The number of bits of the network prefix are separated with a slash / or percent sign %
For example,
2001:cdba:9abc:5678::/64
denotes the network address 2001:cdba:9abc:5678. Such network comprises of host addresses in range from
2001:cdba:9abc:5678::
to
2001:cdba:9abc:5678:ffff:ffff:ffff:ffff
In a similar fashion, a single host may be denoted as a network with a 128-bit prefix. In this way, IPv6 allows a network to comprise of a single host and above.
Every IPv6 address has a reachability scope:
Same node (Loopback address, Node-local multicast address)
Local link (Link-local Unicast/Multicast addresses are similar to private IPv4 addresses.)
The IPv6 Internet (Global Unicast addresses are similar to public IPv4 addresses.)
Network nodes can combine reachability scopes via multiple IPv6 interfaces. For example, a node may have
(a) link-local address, and
(b) global address.
Parts of a unique local unicast address:
Example of a link-local address:
FE80::9C13:4983:CCEA
where
FE80:0000:0000:0000 64-bit link-local prefix
0000:9C13:4983:CCEA 64-bit interface ID
Unicast: one-to-one
global (any address starting with 001...)
link-local
site-local
IPv4-compatible (96 zero-bit prefix)
Multicast: one-to-many
Anycast: one-to-nearest
Reserved
Note: first 48 bits (3 blocks) global unicast address specifies the organization site -- publicly leased bits from IANA.
::/96
96-bit zero prefix denotes IPv6 addresses compatible with IPv4 protocol.
::/128 (0:0:0:0:0:0:0:0 or simply ::)
address with all zeroes makes an unspecified/unknown address, used internally in network software.
::1/128 (0:0:0:0:0:0:0:1)
loop back address refers to the local host, similar to the 127.0.0.1 local host address in the IPv4.
An application sending a packet to this address is sending that packet back to itself.
2001:db8::/32
documentation prefix: for IPv6 example addresses that indicate a sample address.
fec0::/10
site-local unicast prefix: indicates that the address is valid only within the local organization.
The usage of this prefix is discouraged by the RFC.
fc00::/7
Unique Local Address, ULA, is routed only within a set of cooperating sites/nodes.
Such addresses provide a 40-bit pseudorandom number that reduces the risk of address conflicts.
ff00::/8
multicast: the address is automatically understood to be a multicast address.
fe80::/10
link-local unicast prefix signifies that the address is valid only inside the local physical link.
For use during auto-configuration and when no routers are involved.
An IPv6 address identifies an interface, not a node.
Two types of IPv6 interfaces:
physical attachment (such as a network adapter)
logical attachment (such as a tunneling interface)
The last 64 bits (last 4 blocks) of an IPv6 address identify the interface:
For a physical interface, Vista and XP use the MAC address to generate last 64 bits
Windows 7 uses random generation.
These last 64 bits are called the interface ID.
There are many ways to assign 64 lowest-order bits of the IPv6 unicast address:
48-bit MAC address (Ethernet Address) expanded into 64 bit field
via DHCP
manually configured
auto-generated pseudo-random number
more methods will exist in the future.
Windows Vista:
First operating system to automatically install/enable IPv6.
Supports tunneling of IPv6 traffic over an IPv4 backbone.
GUI-based config of IPv6 settings through the properties of TCP/IPv6.
IPSec support for IPv6 traffic, including
Internet Key Exchange (IKE)
data encryption with AES 128/192/256.
Also supports MLDv2, LLMNR, PPPv6, DHCPv6...
Windows Vista IPv6 is designed to be self-configuring, but allows manual configuration.
Stateless address configuration occurs in the absence of a DHCP server.
Stateful address configuration occurs in the presence of a DHCP server.
Link-local address automatically configured with the address prefix fe80::/64 for each physical or logical IPv6 interface.
(used only to reach the neighboring nodes.)
Plug-and-play option for the network devices -- allows nodes to configure themselves independently:
Plug a node into an IPv6 network -- no human intervention required.
Critical feature for connectivity of increasing number of mobile network devices.
Requires human intervention
Uses Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
DHCPv6 server:
uses IP address range specified by the network administrator
maintains a list of nodes
maintains information about node states
manages IP address availability
DNS servers with DHCPv6:
DNS servers not configured through router discovery.
DHCPv6 automatically configures the IPv6 addresses of DNS servers.
Suitable for small organizations and individuals.
Allows each host to determine its address from the contents of advertisements received from other network users.
Uses IEEE EUI-64 standard to define the network ID portion of the address.
With IPv6 router discovery, IPv6 host:
sends multicast Router Solicitation message
receives one or more Router Advertisement messages that contain subnet prefixes
determines additional IPv6 addresses
adds routes to the IPv6 routing table
configures other configuration parameters.
Since 1993, Dynamic Host Configuration Protocol facilitates addition of new machines to a network.
Significantly reduces the system administration workload
IPv6 Auto configuration versus DHCPv6 is a hotly debatable issue in the contemporary networking standards and configuration.
Auto configuration simplifies the configuration process in a streamlined manner.
DHCPv6 offers more comprehensible solution to the configuration needs (but considered a short-term solution.)
Auto-configuration is much more simpler, streamlined, and future-proof.
Defined in RFC-3056, allows different IPv6 domains communicate with other IPv6 domains through IPv4 clouds:
6to4 encapsulates IPv6 packets into IPv4 packets.
QoS stands for Quality of Service.
Quality ia a measurement of network behavior in context of particular service:
reliability of data delivery
tolerance of certain percentage of data loss
acceptable latency
transmission jittering
bandwidth concerns
A mobile host may have more than one address.
When a host discovers a different subnet (different from its current home subnet) two alternatives are available:
the host uses auto-configuration to get new address, or
registers its home address with the router