Advocacy for IPv6 Deployment—Example

We include below some excerpt from the European Economic and Social Committee and the Committee of the Regions [39] to emphasize the issues related to IPv6. Clearly, issues about IPv6 impact not only Europe but the entire world.

The European Economic and Social Committee and the Committee of the Regions has issued an “Action Plan for the deployment of IPv6 in Europe.” It is the objective of this Action Plan to support the widespread introduction of the next version of the IP (IPv6) for the following reasons:

  • Timely implementation of IPv6 is required as the pool of IP addresses provided by the current protocol version 4 is being depleted.
  • IPv6 with its huge address space provides a platform for innovation in IP based services and applications.

Preparing for the Growth in Internet Usage and for Future Innovation. One common element of the Internet architecture is the IP that in
essence gives any device or good connecting to the Internet a number, an address, so that it can communicate with other devices and/or goods. This address should generally be unique, to ensure global connectivity. The current version, IPv4, already provides for more than 4 billion such addresses. Even this, however, will not be enough to keep pace with the continuing growth of the Internet. Being aware of this long-term problem the Internet community developed an upgraded protocol, IPv6, which has been gradually deployed since the late 1990s.

In a previous Communication on IPv6, the European Commission made the case for the early adoption of this protocol in Europe. This Communication has been successful in establishing IPv6 Task Forces, enabling IPv6 on research networks, supporting standards, and setting-up training actions. Following the Communication, more than 30 European R&D projects related to IPv6 were financed. Europe has now a large pool of experts with experience in IPv6 deployment. Yet, despite the progress made, adoption of the new protocol has remained slow while the issue of future IP address scarcity is becoming more urgent.

Increasing Scarcity of IPv4 Addresses: A Difficulty for Users, an Obstacle to Innovation. Initially all Internet addresses are effectively held
by the IANA and then large blocks of addresses are allocated to the five RIRs that in turn allocate them in smaller blocks to those who need them, including ISPs. The allocation, from IANA to RIR to ISP, is carried out on the basis of demonstrated need: there is no preallocation.

The address space of IPv4 has been used up to a considerable extent. At the end of January 2008 about 16% was left in the IANA pool, that is, approximately 700 million IPv4 addresses. There are widely quoted and regularly updated estimates that forecast the exhaustion of the unallocated IANA pool somewhere between 2010 and 2011. New end users will still be able to get addresses from their ISP for some time after these dates, but with increasing difficulty.

Even when IPv4 addresses can no longer be allocated by IANA or the RIRs, the Internet will not stop working: the addresses already assigned can and most probably will be used for a significant time to come. Yet the growth and also the capacity for innovation in IP-based networks would be hindered without an appropriate solution. How to deal with this transition is currently the subject of discussion in the Internet community in general, and within and amongst the RIR communities in particular.

All RIRs have recently issued public statements and have urged the adoption of IPv6.

IPv4 is only a Short-Term Solution Leading to More Complexity. Concerns about the future scarcity of IP addresses are not a recent phenomenon. In the early days of the Internet, before the establishment of the RIRs and before the take-off of the World Wide Web, addresses were assigned rather generously. There was a danger of running out of addresses very quickly. Therefore, changes in allocation policy and in technology were introduced that allowed allocation to be more aligned to actual need.

One key IPv4 technology has been NAT. NATs connect a private (home or corporate) network that uses private addresses to the public Internet where public IP addresses are required. Private addresses come from a particular part of the address space reserved for that purpose. The NAT device acts as a form of gateway between the private network and the public Internet by translating the private addresses into public addresses. This method therefore reduces consumption of IPv4 addresses. However, the usage of NATs has two main drawbacks, namely:

  • It hinders direct device-to-device communication: intermediate systems are required to allow devices or goods with private addresses to communicate across the public Internet.
  • It adds a layer of complexity in that there are effectively two distinct classes of computers: those with a public address and those with a private address. This often increases costs for the design and maintenance of networks, as well as for the development of applications.

Some other measures could extend the availability of IPv4 addresses. A market to trade IPv4 addresses might emerge that would offer incentives to organizations to sell addresses they are not using. However IP addresses are not strictly property. They need to be globally acceptable to be globally routable, which a seller cannot always guarantee. In addition, they could become a highly priced resource. So far, RIRs have been skeptical about the emergence of such a secondary market. Another option consists of trying to actively reclaim those already-allocated address blocks that are underutilized. However, there is no apparent mechanism for enforcing the return of such addresses. The possible cost of it has to be balanced against the additional lifetime this would bring to the IANA pool. Though such measures may provide some interim respite, sooner or later the demand for IP addresses will be too large to be satisfied by the global IPv4 space. Efforts to stay with IPv4 too long risk increasing unnecessary complexity and fragmentation of the global Internet. A timely introduction of IPv6 is thus the better strategy.

IPv6: The Best Way Forward. IPv6 provides a straightforward and long-term solution to the address space problem. The number of addresses defined by the IPv6 protocol is huge. IPv6 allows every citizen, every network operator (including those moving to all IP “Next Generation Networks”), and every organization in the world to have as many IP addresses as they need to connect every conceivable device or good directly to the global Internet. IPv6 was also designed to facilitate features that were felt to be missing in IPv4. Those features included quality of service, autoconfiguration, security, and mobility. In the meantime, however, most of those features have been engineered in and around the original IPv4 protocol. It is the large address space that makes IPv6 attractive for future applications as this will simplify their design when compared to IPv4. The benefits of IPv6 are, therefore, most obviously apparent whenever a large number of devices or goods need to be easily networked, and made potentially visible and directly reachable over the Internet. A study funded by the Commission demonstrated this potential for a number of market sectors such as home networks, building management, mobile communication, defense and security sector, and car industry.

Prompt and efficient adoption of IPv6 offers Europe potential for innovation and leadership in advancing the Internet. Other regions, in particular the Asian region, have already taken a strong interest in IPv6. For instance, the Japanese consumer electronics industry increasingly develops IP enabled products and exclusively for IPv6. The European industry should therefore be ready to meet future demand for IPv6-based services, applications, and devices and so secure a competitive advantage in world markets.

To conclude, the key advantage of IPv6 over IPv4 is the huge, more easily managed address space. This solves the future problem of address availability now and for a long time to come. It provides a basis for innovation—developing and deploying services and applications that may be too complicated or too costly in an IPv4 environment. It also empowers users, allowing them to have their own
network connected to the Internet.

What Needs to be Done? IPv6 is not directly interoperable with IPv4. IPv6 and IPv4 devices can only communicate with each other using
application-specific gateways. They do not provide a general future-proof solution for transparent interoperability. However, IPv6 can be enabled in parallel with IPv4 on the same device and on the same physical network. There will be a transition phase (expected to last for 10, 20, or even more years) when IPv4 and IPv6 will coexist on the same machines (technically often referred to as “dual stack”) and be transmitted over the same network links. In addition, other standards and technologies (technically referred to as “tunneling”) allow IPv6 packets to be transmitted using IPv4 addressing and routing mechanisms and ultimately vice versa. This provides the technical basis for the step-by-step introduction of IPv6. Because of the universal character of the IP, deployment of IPv6 requires the attention of many actors worldwide. The relevant stakeholders in this process are as follows:

  • Internet organizations (such as ICANN, RIRs, and IETF) that need to manage common IPv6 resources and services (allocate IPv6 addresses, operate DNS servers, etc.), and continue to develop needed standards and specifications. As of May 2008, the regional distribution of allocated IPv6 addresses is concentrated on Europe (R´eseaux Internet Protocol Europ´eens or RIPE: 49%), with Asia and North America growing fast (Asia–Pacific Network Information Centre, APNIC: 24%; ARIN: 20%). Less than half of those
    addresses are currently being announced on the public Internet (i.e., visible in the default-free routing table). In the DNS the root and top-level name servers are increasingly becoming IPv6 enabled. For instance, the gradual introduction of IPv6 connectivity to. eu name servers started in 2008.
  • ISPs that need over time to offer IPv6 connectivity and IPv6 based services to customers: There is evidence that less than half of the ISPs offer some kind of IPv6 interconnectivity. Only a few ISPs have a standard offer for IPv6 customer access service (mainly for business users) and provide IPv6 addresses. The percentage of “Autonomous Systems” (typically ISPs and large end users) that operate IPv6 is estimated at 2.5%. Accordingly, IPv6 traffic seems to be relatively low. Typically the IPv6/v4 ratio is less than
    0.1% at Internet Exchange Points (of which about one in five supports IPv6). However, this omits direct ISP to ISP traffic and IPv6 that is “tunneled” and so appears at first glance to be still IPv4. Recent measurements suggest that this kind of traffic IPv6 that is “tunneled” is growing.
  • Infrastructure vendors (such as network equipment, operating systems, network application software) that need to integrate IPv6 capability into their products: Many equipment and software vendors have upgraded their products to include IPv6. However, there are still issues with certain functions and performance, and vendor support equivalent to IPv4. The installed equipment base of consumers, such as small routers and home modems to access the Internet, still by and large do not yet support IPv6.
  • Content and service providers (such as websites, instant messaging, email, file sharing, voice over IP) that need to be reachable by enabling IPv6 on their servers: Worldwide there are only very few IPv6 websites. Almost none of the global top sites offer an IPv6 version. The de facto nonexistence of IPv6 reachable content and services on the Internet is a major obstacle in the take-up of the new protocol.
  • Business and consumer application vendors (such as business software, smart cards, peer-to-peer software, transport systems, sensor networks) that need to ensure that their solutions are IPv6 compatible and increasingly need to develop products and offer services that take advantage of IPv6 features. Today, there are few, if any, current applications that are exclusively built on IPv6. One expectation has been that proliferation of IP as the dominant network protocol would drive IPv6 into new areas such as logistics and traffic management, mobile communication, and environment monitoring that has not taken place to any significant degree yet.
  • End users (consumers, companies, academia, and public administrations) that need to purchase IPv6 capable products and services and to enable IPv6 on their own networks or home Internet access: Many home end users, without being aware of it, operate IPv6 capable equipment and yet, as a result of missing applications, without necessarily making use of it. Companies and public administrations are cautious to make changes to a functioning network without a clear need. Therefore not much user deployment in private networks is visible. Among the early adopters have been universities and research institutions. All EU national research and education networks also operate on IPv6. The European G´eant network is IPv6 enabled, whereby approximately 1% of its traffic is native IPv6.

How much and which efforts are required to adopt IPv6 differ amongst actors and depend on each individual case. Therefore, it is practically impossible to reliably estimate the aggregated costs to introduce IPv6 globally. Experience and learning from projects have shown that costs can be kept under control when deployment is gradual and planned ahead. It is recommended that IPv6 be introduced step-by-step, possibly in connection with hardware and software upgrades, organizational changes, and training measures (at first glance unrelated to IPv6). This requires a general awareness within the organization in order to not miss those synergies. The costs will be significantly higher when IPv6 is introduced as a separate project and under time constraints.

Introduction of IPv6 will take place alongside the existing IPv4 networks. Standards and technology allow for a steady incremental adoption of IPv6 by the various stakeholders that will help to keep costs under control. Users can use IPv6 applications and generate IPv6 traffic without waiting for their ISP to offer IPv6 connectivity. ISPs can increase their IPv6 capability and offer this in line with perceived demand.

IPv6 Overview

While the basic function of the IP is to move information across networks, IPv6 has more capabilities built into its foundation than IPv4. A key capability is the significant increase in address space. For example, all devices could have a public IP address so that they can be uniquely tracked.7 Today, inventory management of dispersed assets in a very large dispersed organization such as the United States Department of Defense (DoD) Department cannot be achieved with IP mechanisms; during the inventory cycle someone has to manually verify the location
of each desktop computer. With IPv6 one can use the network to verify that such equipment is there; even non-IT equipment in the field can also be tracked, by having an IP address permanently assigned to it. IPv6 also has extensive automatic configuration (autoconfiguration) mechanisms and reduces the IT burden, making configuration essentially plug-and-play (autoconfiguration implies that a Dynamic Host Configuration Protocol or DHCP server is not needed and/or does not have to be configured. Owing to the fact that IPv4 manual configuration is already a challenge in itself, one can understand that manually manipulating IPv6 addresses that are four times longer can be much more problematic. Corporations and government agencies will be able to achieve a number of improvements with IPv6 such as, but not limited to the following

  • expanded addressing capabilities;
  • serverless autoconfiguration (what some call “plug-n-play”) and reconfiguration;
  • streamlined header format and flow identification;
  • end-to-end security, with built-in, strong IP-layer encryption and authentication (embedded security support with mandatory IPsec implementation);
  • in IPv6, creating a VPN is easier and more standard than in IPv4, because of the Authentication Header (AH) and Encapsulating Security Protocol (ESP) Extension Headers and the performance penalty is lower for the VPN implemented in IPv6 compared to those built in IPv4 [25];
  • enhanced support for multicast and QoS (more refined support for flow control and QoS for the near real-time delivery of data);
  • more efficient and robust mobility mechanisms (enhanced support for Mobile IP and mobile computing devices);
  • extensibility: improved support for feature options/extensions;
  • IPv6 makes it easy for nodes to have multiple IPv6 addresses on the same network interface. This can create the opportunity for users to establish overlay or Communities of Interest (COI) networks on top of other physical IPv6 networks. Department, groups, or other users and resources can belong to one or more COIs, where each can have its own specific security policy [26];
  • merging two IPv4 networks with overlapping addresses (say, if two organizations merge) is complex; it will be much easier to merge networks with IPv6;
  • IPv6 network architectures can easily adapt to an end-to-end security model where the end hosts have the responsibility of providing the security services necessary to protect any data traffic between them; this results in greater flexibility for creating policy-based trust domains that are based on varying parameters including node address and application [27].

IPv6 basic capabilities include the following:

  • addressing,
  • anycast,
  • flow labels,
  • ICMPv6,
  • Neighbor Discovery (ND).

Table A5.1 shows the core protocols that comprise IPv6.

Key IPv6 ProtocolsIP was designed in the 1970s for the purpose of connecting computers that were in separate geographic locations. Computers in a campus were connected by means of local networks, but these local networks were separated into essentially stand-alone islands. “Internet,” as a name to designate the protocol and more recently the worldwide information network, simply means “internetwork”; that is, a connection between multiple networks. In the beginning, the protocol initially had only military use in mind, but computers from universities and enterprises were quickly added. The Internet as a worldwide information network is the result of the practical application of the IP protocol; that is, the result of the interconnection of a large set of information networks [19]. Starting in the early 1990s, developers realized that the communication needs of the twenty-first century required a protocol with some new features and capabilities, while at the
same time retaining the useful features of the existing protocol.

While link-level communication does not generally require a node identifier (address) since the device is intrinsically identified with the link-level address, communication over a group of links (a network) does require unique node identifiers (addresses). The IP address is an identifier that is applied to each device connected to an IP network. In this setup, different elements taking part in the network (servers, routers, desktop computers, etc.) communicate among each other using their IP address as an entity identifier. In version 4 of the IP protocol, addresses consist of four octets. For ease of human conversation, IP protocol addresses are represented as separated by periods, for example: 166.74.110.83, where the decimal numbers are a short hand (and correspond to) the binary code described by the byte in question (an 8 bit number takes a value in the 0–255 range). Since the IPv4 address has 32 bits there are nominally 232 different IP addresses (approximately 4 billion nodes, if all combinations are used). The Domain Name System (DNS) also helped the human conversation in the context of IPv4; DNS is going to be even more critical in IPv6 and will have substantial impact on security administrators that use IP addresses to define security policies (e.g., Firewalls).

IPv4 has proven, by means of its long life, to be a flexible and powerful networking mechanism. However, IPv4 is starting to exhibit limitations, not only with respect to the need for an increase of the IP address space, driven, for example, by new populations of users in countries such as China and India, and by new technologies with “always connected devices” (DSL, cable, networked Primary Deployment Area or PDAs, 2.5G/3G mobile telephones, etc.), but also in reference to a potential global rollout of VoIP. IPv6 creates a new IP address
format, so that the number of IP addresses will not get exhausted for several decades or longer even though an entirely new crop of devices are expected to connect to Internet.

IPv6 also adds improvements in areas such as routing and network autoconfiguration. Specifically, new devices that connect to Internet will be “plug-and-play” devices. With IPv6 one is not required to configure dynamic unpublished local IP addresses, the gateway address, the subnetwork mask or any other parameters. The equipment, when plugged into the network, automatically obtains all requisite
configuration data [19].

The advantages of IPv6 can be summarized as follows:

  • Scalability: IPv6 has 128 bit addresses versus 32 bit IPv4 addresses. With IPv4 the theoretical number of available IP addresses is 232 ∼ 1010. IPv6 offers a 2128 space. Hence, the number of available unique node addressees are 2128 ∼ 1039.
  • Security: IPv6 includes security features in its specifications such as payload encryption and authentication of the source of the communication.
  • Real-Time Applications: To provide better support for real-time traffic (e.g., VoIP), IPv6 includes “labeled flows” in its specifications. By means of this mechanism, routers can recognize the end-to-end flow to which transmitted packets belong. This is similar to the service offered by MPLS, but it is intrinsic with the IP mechanism rather than an add-on. Also, it preceded this MPLS feature by a number of years.
  • “Plug-And-Play”: IPv6 includes a “plug-and-play” mechanism that facilitates the connection of equipment to the network. The requisite configuration is automatic.
  • Mobility: IPv6 includes more efficient and enhanced mobility mechanisms, which are important for mobile networks.
  • Optimized Protocol: IPv6 embodies IPv4 best practices but removes unused or obsolete IPv4 characteristics. This results in a better-optimized Internet protocol.
  • Addressing and Routing: IPv6 improves the addressing and routing hierarchy.
  • Extensibility: IPv6 has been designed to be extensible and offers support for new options and extensions.

With IPv4, the 32-bit address can be represented as AdrClass|netID|hostID. The network portion can contain either a network ID or a network ID and a subnet. Every network and every host or device has a unique address, by definition. Basic NATing is a method by which IP addresses (specifically IPv4 addresses) are transparently mapped from one group to another. Specifically, private “unregistered”
addresses are mapped to a small set (as small as 1) of public registered addresses; this impacts the general addressability, accessibility, and “individuality” of the device. Network Address Port Translation (NAPT), also referred to as Port Address Translation (PAT), is a method by which many network addresses and their TCP/UDP ports are translated into a single network address and its TCP/UDP ports. Together, these two methods, referred to as traditional Network Address Translation (NAT), provide a mechanism to connect a realm with private
addresses to an external realm with globally unique registered addresses [29]. NAT is a short-term solution for the anticipated Internet growth requirements for this decade and a better solution is needed for address exhaustion. There is a clear recognition that NAT techniques make the Internet, the applications, and even the devices more complex (especially when conducting business-to-business transactions) and this means a cost overhead [19]. Overlapping encryptions domains has been a substantial issue for organizations to deal with when creating gateway-togateway VPNs. The expectation is that IPv6 can make IP devices less expensive, more powerful, and even consume less power; the power issue is not only important for environmental reasons, but also improves operability (e.g., longer battery
life in portable devices, such as mobile phones).

IPv4 addresses can be from an officially assigned public range or from an internal intranet private (but not globally unique) block. Internal intranet addresses may be in the ranges 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16, as suggested in RFC 1918. In the case of an internal intranet private address, a NAT function is employed to map the internal addresses to an external public address when the
private-to-public network boundary is crossed. This, however, imposes a number of limitations, particularly since the number of registered public addresses available to a company is almost invariably much smaller (as small as 1) than the number of internal devices requiring an address.

As noted, IPv4 theoretically allows up to 232 addresses, based on a four-octet address space. Public, globally unique addresses are assigned by the Internet Assigned Numbers Authority (IANA). IP addresses are addresses of network nodes at layer 3; each device on a network (whether the Internet or an intranet) must have a unique address. In IPv4, it is a 32-bit (4-byte) binary address used to identify the device. It is represented by the nomenclature a.b.c.d, each of a, b, c, and d being from 1 to 255 (0 has a special meaning). Examples are
167.168.169.170, 232.233.229.209, and 200.100.200.100.

The problem is that during the 1980s many public, registered addresses were allocated to firms and organizations without any consistent control. As a result, some organizations have more addresses than they actually need, giving rise to the present dearth of available “registerable” Layer 3 addresses. Furthermore, not all IP addresses can be used due to the fragmentation described above.

One approach to the issue would be a renumbering and a reallocation of the IPv4 addressing space. However, this is not as simple as it appears since it requires significant worldwide coordination efforts and it would not solve the medium-term need for a much larger address space for evolving end-user/ consumer applications. Moreover, it would still be limited for the human population and the quantity of devices that will be connected to the Internet in the medium-term future [19]. At this juncture, and as a temporary and pragmatic approach to alleviate the dearth of addresses, NAT mechanisms are employed by organizations and even home users. This mechanism consists of using only a small set of public IPv4 addresses for an entire network to access to Internet. The myriad of internal devices are assigned IP addresses from a specifically designated range of Class A or Class C address that are locally unique but are duplicatively used and reused within various organizations. In some cases (e.g., residential Internet access use via DSL or cable), the legal IP address is only
provided to a user on a time-lease basis, rather than permanently.

A number of protocols cannot travel through a NAT device and hence the use of NAT implies that many applications (e.g., VoIP) cannot be used effectively in all instances.9 As a consequence, these applications can only be used in intranets. Examples include the following [19]:

  • Multimedia applications such as videoconferencing, VoIP, or VOD/IPTV do not work smoothly through NAT devices. Multimedia applications make use of RTP and Real-Time Control Protocol (RTCP). These in turn use UDP with dynamic allocation of ports and NAT does not directly support this environment.
  • IPsec is used extensively for data authentication, integrity, and confidentiality. However, when NAT is used, IPsec operation is impacted, since NAT changes the address in the IP header.
  • Multicast, although possible in theory, requires complex configuration in a NAT environment and hence, in practice, is not utilized as often as could be the case.

The need for obligatory use of NAT disappears with IPv6 (but it can still be used if someone wanted to).

The format of IPv6 addressing is described in RFC 2373. As noted, an IPv6 address consists of 128 bits, rather than 32 bits as with IPv4 addresses. The number of bits correlates to the address space, as follows:

NAT disappears with IPv6The relatively large size of the IPv6 address is designed to be subdivided into hierarchical routing domains that reflect the topology of the modern-day Internet. The use of 128 bits provides multiple levels of hierarchy and flexibility in designing hierarchical addressing and routing. The IPv4-based Internet currently lacks this flexibility [30].

The IPv6 address is represented as 8 groups of 16 bits each, separated by the “:” character. Each 16 bit group is represented by 4 hexadecimal digits, that is, each digit has a value between 0 and F (0,1, 2, . . . A, B, C, D, E, F with A = 1010, B = 1110, etc., to F = 1510). What follows is an example of a hypothetical IPv6 address

3223 : 0BA0:01E0:D001 : 0000 : 0000 : D0F0 : 0010

If one or more four-digit groups is 0000, the zeros may be omitted and replaced with two colons (::). For example,

3223 : 0BA0 ::

is the abbreviated form of the following address:

3223 : 0BA0 : 0000 : 0000 : 0000 : 0000 : 0000 : 0000

Similarly, only one 0 is written, removing 0’s in the left side, and four 0’s in the middle of the address. For example, the address

3223 : BA0 : 0 : 0 : 0 : 0 :: 1234

is the abbreviated form of the following address

3223 : 0BA0 : 0000 : 0000 : 0000 : 0000 : 0000 : 1234

There is also a method to designate groups of IP addresses or subnetworks that is based on specifying the number of bits that designate the subnetwork, beginning from left to right, using remaining bits to designate single devices inside the network. For example, the notation

3223 : 0BA0:01A0 :: /48

indicates that the part of the IP address used to represent the subnetwork has 48 bits. Since each hexadecimal digit has 4 bits, this points out that the part used to represent the subnetwork is formed by 12 digits, that is “3223:0BA0:01A0.” The remaining digits of the IP address would be used to represent nodes inside the network.

There are a number of special IPv6 addresses, as follows:

  • Autoreturn or Loopback Virtual Address: This address is specified in IPv4 as the 127.0.0.1 address. In IPv6, this address is represented as ::1.
  • Unspecified Address (::): This address is not allocated to any node since it is used to indicate the absence of an address.
  • IPv6 over IPv4 Dynamic/Automatic Tunnel Addresses: These addresses are designated as IPv4-compatible IPv6 addresses and allow the sending of IPv6 traffic over IPv4 networks in a transparent manner. For example, they are represented as ::156.55.23.5.
  • IPv4 over IPv6 Addresses Automatic Representation: These addresses allow for IPv4-only-nodes to still work in IPv6 networks. They are designated as IPv4-mapped IPv6 addresses and are represented as ::FFFF: (e.g., ::FFFF:156.55.43.3).

Like IPv4, IPv6 is a connectionless, unreliable datagram protocol used primarily for addressing and routing packets between hosts. Connectionless means that a session is not established before exchanging data. Unreliable means that delivery is not guaranteed. IPv6 always makes a best-effort attempt to deliver a packet. An IPv6 packet might be lost, delivered out of sequence, duplicated, or delayed. IPv6 per se does not attempt to recover from these types of errors. The acknowledgment of packets delivered and the recovery of lost packets is done by a higher-layer protocol, such as TCP [30]. From a packet forwarding perspective, IPv6 operates just like IPv4.

An IPv6 packet, also known as an IPv6 datagram, consists of an IPv6 header and an IPv6 payload, as shown in Fig. A5.1. The IPv6 header consists of two parts, the IPv6 base header, and optional extension headers (Fig. A5.2). Functionally, the optional extension headers and upper-layer protocols, for example

IPv6 packet.IPv6 extension headers. IPv6 extension headers are optional headers that may follow the basic IPv6 header. An IPv6 PDU may include zero, one or multiple headers. When multiple extension headers are used, they form a chained list of headers identified by the “next header” field of the previous header.

TCP, are considered part of the IPv6 payload. Table A5.2 shows the fields in the IPv6 base header. IPv4 headers and IPv6 headers are not directly interoperable: hosts and/or routers must use an implementation of both IPv4 and IPv6 in order to recognize and process both header formats (Fig. A5.3). This gives rise to a number of complexities in the migration process between the IPv4 and the IPv6 environments. The IP header in IPv6 has been streamlined and defined to be of a fixed length (40 bytes). In IPv6, header fields from the IPv4 header have been removed, renamed, or moved to the new optional IPv6 Extension Headers. The header length field is no longer needed since the IPv6 header is now a fixed length entity. The IPv4 Type of Service is equivalent to the IPv6 Traffic Class field. The Total Length field has been replaced with the Payload Length field. Since IPv6 only allows for fragmentation to be performed by the IPv6 source
and destination nodes, and not individual routers, the IPv4 segment control fields (Identification, Flags, and Fragment Offset fields) have been moved to similar fields within the Fragment Extension Header. The functionality provided by the Time to Live (TTL10) field has been replaced with the Hop Limit field. The Protocol field has been replaced with the Next Header Type field. The Header Checksum field was removed; that has the main advantage of not having each relay spend time processing the checksum. The Options field is no longer part of

IPv6 Base HeaderComparison of IPv4 and IPv6 headersthe header as it was in IPv4. Options are specified in the optional IPv6 Extension Headers. The removal of the Options field from the header enables more efficient routing; only the information that is needed by a router needs to be processed [31].

One area requiring consideration, however, is the length of the IPv6 PDU: the 40-octet header can be a problem for real-time IP applications such as VoIP and IPTV. Header compression becomes critical [32].11 Also, there will be some bandwidth inefficiency in general, that could be an issue in limited-bandwidth environments or applications (e.g., sensor networks.)

“Autoconfiguration” is a new characteristic of the IPv6 protocol that facilitates network management and system setup tasks by users. This characteristic is often called “plug-and-play” or “connect-and-work.” Autoconfiguration facilitates initialization of user devices: after connecting a device to an IPv6 network, one or several IPv6 globally unique addresses are automatically allocated. DHCP allows systems to obtain an IPv4 address and other required information (e.g., default router or DNS server). A similar protocol, DHCPv6, has been published for IPv6. DHCP and DHCPv6 are known as stateful protocols because they maintain tables on (specialized) servers. However, IPv6 also has a new stateless autoconfiguration protocol that has no equivalent in IPv4. The stateless autoconfiguration protocol does not require a server component because there is no state to maintain (a DHCP server may typically run in a router or firewall). Every IPv6 system (other than routers) is able to build its own unicast global address. Stateless Address Autoconfiguration (SLAAC) provides an alternative between a purely manual configuration and stateful autoconfiguration [33].

“Stateless” autoconfiguration is also described as “serverless.” The acronym SLAAC is also used for serverless address autoconfiguration. SLAAC is defined in RFC 2462. With SLAAC, the presence of configuration servers to supply profile information is not required. The host generates its own address using a combination of the information that it possesses (in its interface or network card) and the information that is periodically supplied by the routers. Routers determine the prefix that identifies networks associated to the link under discussion. The “interface identifier” identifies an interface within a subnetwork and is often, and by default, generated from the Media Access Control (MAC) address of the network card. The IPv6 address is built combining the 64 bits of the interface identifier with the prefixes that routers determine as belonging to the subnetwork. If there is no router, the interface identifier is self-sufficient to allow the PC to generate a “link-local” address. The “link-local” address is sufficient to allow the communication between several nodes connected to the same link (the same local network).

IPv6 addresses are “leased” to an interface for a fixed established time (including an infinite time.) When this “lifetime” expires, the link between the interface and the address is invalidated and the address can be reallocated to other interfaces. For the suitable management of addresses expiration time, an address goes through two states (stages) while is affiliated to an interface [19]:

  1. At first, an address is in a “preferred” state, so its use in any communication is not restricted.
  2. After that, an address becomes “deprecated,” indicating that its affiliation with the current interface will (soon) be invalidated.

When it is in a “deprecated” state, the use of the address is discouraged, although it is not forbidden. However, when possible, any new communication (for example, the opening of a new TCP connection) must use a “preferred” address. A “deprecated” address should only be used by applications that have  already used it before and in cases where it is difficult to change this address to another address without causing a service interruption.

To ensure that allocated addresses (granted either by manual mechanisms or by autoconfiguration) are unique in a specific link, the link duplicated addresses detection algorithm is used. The address to which the duplicated address detection algorithm is being applied to is designated (until the end of this algorithmic session) as an “attempt address.” In this case, it does not matter that such an address has been allocated to an interface and received packets are discarded.

Next, we describe how an IPv6 address is formed. The lowest 64 bits of the address identify a specific interface and these bits are designated as “interface identifier.” The highest 64 bits of the address identify the “path” or the “prefix” of the network or router in one of the links to which such interface is connected. The IPv6 address is formed by combining the prefix with the interface identifier.

It is possible for a host or device to have IPv6 and IPv4 addresses simultaneously? Most of the systems that currently support IPv6 allow the simultaneous use of both protocols. In this way, it is possible to support communication with IPv4-only-networks as well as IPv6-only-networks and the use of the applications developed for both protocols [19].

Is it possible to transmit IPv6 traffic over IPv4 networks via tunneling methods. This approach consists of “wrapping” the IPv6 traffic as IPv4 payload data: IPv6 traffic is sent “encapsulated” into IPv4 traffic and at the receiving end, this traffic is parsed as IPv6 traffic. Transition mechanisms are methods used for the coexistence of IPv4 and/or IPv6 devices and networks. For example, an “IPv6-in- IPv4 tunnel” is a transition mechanism that allows IPv6 devices to communicate through an IPv4 network. The mechanism consists of creating the IPv6 packets in a normal way and encapsulating them in an IPv4 packet. The reverse process is undertaken in the destination machine that de-encapsulates the IPv6 packet.

There is a significant difference between the procedures to allocate IPv4 addresses, that focus on the parsimonious use of addresses (since addresses are a scare resource and should be managed with caution), and the procedures to allocate IPv6 addresses, that focus on flexibility. ISPs deploying IPv6 systems follow the RIRs policies relating to how to assign IPv6 addressing space among their clients. RIRs are recommending ISPs and operators allocate to each IPv6 client a/48 subnetwork; this allows clients to manage their own subnetworks without using NAT. (The implication is that the obligatory need for NAT disappears in IPv6).

In order to allow its maximum scalability, the IPv6 protocol uses an approach based on a basic header, with minimum information. This differentiates it from IPv4 where different options are included in addition to the basic header. IPv6 uses a header “concatenation” mechanism to support supplementary capabilities. The advantages of this approach include the following:

  • The size of the basic header is always the same, and is well known. The basic header has been simplified compared with IPv4, since only 8 fields are used instead of 12. The basic IPv6 header has a fixed size; hence, its processing by nodes and routers is more straightforward. Also, the header’s structure aligns to 64 bits, so that new and future processors (64 bits minimum) can process it in a more efficient way.
  • Routers placed between a source point and a destination point (that is, the route that a specific packet has to pass through), do not need to process or understand any “following headers.” In other words, in general, interior (core) points of the network (routers) only have to process the basic header while in IPv4, all headers must be processed. This flow mechanism is similar to the operation in MPLS, yet precedes it by several years.
  • There is no limit to the number of options that the headers can support (the IPv6 basic header is 40 octets in length, while IPv4 one varies from 20 to 60 octets, depending on the options used).

In IPv6, interior/core routers do not perform packets fragmentation, but the fragmentation is performed end-to-end. That is, source and destination nodes perform, by means of the IPv6 stack, the fragmentation of a packet and the reassembly, respectively. The fragmentation process consists of dividing the source packet into smaller packets or fragments [19].

The IPv6 specification defines a number of extension headers [31] (Table A5.3) [34]):

  • Routing Header: Similar to the source routing options in IPv4, the header is used to mandate a specific routing.
  • Authentication Header: AH is a security header that provides authentication and integrity.
  • Encapsulating Security Payload (ESP) Header: ESP is a security header that provides authentication and encryption.
  • Fragmentation Header: This is similar to the fragmentation options in IPv4. Destination Options Header: A header that contains a set of options to be processed only by the final destination node. Mobile IPv6 is an example of an environment that uses such a header
  • Hop-by-Hop Options Header: A set of options needed by routers to perform certain management or debugging functions..

As noted, IPsec provides network-level security where the application data is encapsulated within the IPv6 packet. IPsec utilizes the AH and/or ESP header to provide security (the AH and ESP header may be used separately or in combination). IPsec, with ESP, offers integrity and data origin authentication, confidentiality, and optional (at the discretion of the receiver) antireplay features (using confidentiality without integrity is discouraged by the RFCs); ESP furthermore provides limited traffic flow confidentiality. Both the AH and ESP header may be employed as follows [31] (Fig. A5.4):

IPv6 Extension Headers

  • Tunnel Mode: The protocol is applied to the entire IP packet. This method is needed to ensure security over the entire packet, where a new IPv6 header and an AH or ESP header are wrapped around the original IP packet.
  • Transport Mode: The protocol is just applied to the transport layer (i.e., TCP, UDP, ICMP) in the form of an IPv6 header, AH or ESP header, followed by the transport protocol data (header, data).

IPsec modes and types.

Migration to IPv6 environments is expected to be fairly complex. Initially, internetworking between the two environments will be critical. Existing IPv4- endpoints and/or nodes will need to run dual-stack nodes or convert to IPv6 systems. Fortunately, the new protocol supports an IPv4-compatible IPv6 address that is an IPv6 address employing embedded IPv4 addresses. Tunneling, that we already described in passing, will play a major role in the beginning. There are a number of requirements that are typically applicable to an organization wishing to introduce an IPv6 service [35]:

  • the existing IPv4 service should not be adversely disrupted (e.g., as it might be by router loading of encapsulating IPv6 in IPv4 for tunnels);
  • the IPv6 service should perform as well as the IPv4 service (e.g., at the IPv4 line rate, and with similar network characteristics);
  • the service must be manageable and be able to be monitored (thus tools should be available for IPv6 as they are for IPv4);
  • the security of the network should not be compromised, due to the additional protocol itself or a weakness of any transition mechanism used;
  • an IPv6 address allocation plan must be drawn up.

Well-known interworking mechanisms include the following [36]12:

  • Dual IP-Layer (or Dual Stack): A technique for providing complete support for both IPs—IPv4 and IPv6—in hosts and routers.
  • Configured Tunneling of IPv6 over IPv4: Point-to-point tunnels made by encapsulating IPv6 packets within IPv4 headers to carry them over IPv4 routing infrastructures.
  • Automatic Tunneling of IPv6 over IPv4: A mechanism for using IPv4- compatible addresses to automatically tunnel IPv6 packets over IPv4 networks.

Tunneling techniques include the following [36]12:

  • IPv6-over-IPv4 Tunneling: The technique of encapsulating IPv6 packets within IPv4 so that they can be carried across IPv4 routing infrastructures.
  • Configured Tunneling: IPv6-over-IPv4 tunneling where the IPv4 tunnel endpoint address is determined by configuration information on the encapsulating node. The tunnels can be either unidirectional or bidirectional. Bidirectional configured tunnels behave as virtual point-to-point links.
  • Automatic Tunneling: IPv6-over-IPv4 tunneling where the IPv4 tunnel endpoint address is determined from the IPv4 address embedded in the IPv4- compatible destination address of the IPv6 packet being tunneled.
  • IPv4 Multicast Tunneling: IPv6-over-IPv4 tunneling where the IPv4 tunnel endpoint address is determined using ND. Unlike configured tunneling, this does not require any address configuration and unlike automatic tunneling it does not require the use of IPv4-compatible addresses. However, the mechanism assumes that the IPv4 infrastructure supports IPv4 multicast.

Applications (and the lower-layer protocol stack) need to be properly equipped. There are four cases [37].

Case 1: IPv4-only applications in a dual-stack node. IPv6 protocol is introduced in a node, but applications are not yet ported to support IPv6. The protocol stack is as follows:

IPv6 protocol is introduced in a node

Case 2: IPv4-only applications and IPv6-only applications in a dual-stack node. Applications are ported for IPv6-only. Therefore there are two similar applications, one for each protocol version (e.g., ping and ping6). The protocol stack is as follows:

IPv4-only applications and IPv6-only applications

Case 3: Applications supporting both IPv4 and IPv6 in a dual-stack node. Applications are ported for both IPv4 and IPv6 support. Therefore, the existing IPv4 applications can be removed. The protocol stack is as follows:

Applications supporting both IPv4 and IPv6

Case 4: Applications supporting both IPv4 and IPv6 in an IPv4-only node. Applications are ported for both IPv4 and IPv6 support, but the same applications may also have to work when IPv6 is not being used (e.g., disabled from the OS). The protocol stack is as follows:

IPv4 and IPv6

The first two cases are not interesting in the longer term; only a few applications are inherently IPv4- or IPv6-specific and should work with both protocols without having to care about which one is being used.

Figure A5.5 depicts some basic scenarios of carrier-based IPv6 support. Cases (a) and (b) represent traditional environments where the carrier link supports either a clear channel that is used to connect, say, two IPv4 routers, or is IPaware. (In each case, the “cloud” on the left could also be the IPv4 Internet or the IPv6 Internet.)

Support of IPv6 in carrier networks.In Case (c), the carrier link is used to connect as a transparent link two IPv6 routers; the carrier link is not (does not need to be) aware that it is transferring IPv6 PDUs. In Case (d), the carrier system is IPv4-aware, so the use of that environment to support IPv6 requires IPv6 to operate in a tunneled-mode over the non-IPv6 cloud, which is a capability of IPv6.

In Case (e), the carrier infrastructure needs to provide a gateway function between the IPv4 and the IPv6 world (this could entail repacking the IP PDUs from the v4 format to the v6 format). Case (f) is the ideal long-term scenario where the “world has converted to IPv6” and “so did the carrier network.”

In Case (g), the carrier IP-aware network provides a conversion function to support both IPv4 (as a baseline) and IPv6 (as a “new technology”) handoffs. Possibly a dual-stack mechanism is utilized. In Case (h), the carrier IPv6-aware network provides a support function for IPv6 (as a baseline) and also a conversion function to support legacy IPv4 islands.

Even network/security administrators that operate in a pure IPv4 environment need to be aware of IPv6-related security issues. In a standard IPv4 environment where IPv6 is not explicitly supported, any form of IPv6-based tunneling traffic must be considered abnormal, malicious traffic. For example, unconstrained 6to4-based traffic should be blocked (6to4 is a transitional mechanism intended for individual independent nodes to connect IPv6 over the greater Internet). Most commercial-grade IPv4 firewalls block IP protocol 41, the 6to4, and tunnel protocol, unless it has been explicitly enabled [38].

In 2008, the Cooperative Association for Internet Data Analysis (CAIDA) and the American Registry for Internet Numbers (ARIN) surveyed over 200 respondents from USG agencies, commercial organizations (including ISPs and end users), educational institutions, associations, and other profit and nonprofit entities to determine the state of affairs in the United States with reference to IPv6 plans. Between 50% and 75% of the organizations surveyed indicated that they plan to deploy IPv6 by 2010 or sooner. According to some observers IPv6 is still an emerging technology, maturing and growing as practical experience is gained; others take a more aggressive view, as seen in the next section.

 

 

Canon EOS 60D How I Shoot: A Closer Look at the Camera Settings I Use

I started my journey with photography before consumer digital cameras were affordable and available to the general public, so I had the advantage of learning how to photograph and develop film with a fully manual camera. When I finally upgraded to a camera with shooting modes, I had a solid understanding of how aperture and shutter speed worked together and knew how to create the look I wanted using certain settings. Because the majority of my work both then and now involves photographing people, I tend to want to control the depth of field in my images so that I have creative control over what parts are in focus and what areas are blurry. So, as you have probably guessed, the majority of my work is photographed using the Aperture Priority (Av) mode. Since I also do work in a studio or controlled-lighting environment, my second most frequently used mode is Manual (M).

Now, don’t get me wrong—I play around with the other modes depending on what I’m shooting, but I find that I prefer to have as much control as possible so that I’m creating images that fit my style of photography. If you handed me a camera that had only Av and M and no other modes, I would probably be able to photograph in any environment and capture the images that I wanted without any trouble.

What I love about Canon cameras is the ability to change the exposure compensation quickly when I’m using the Av mode. This can make shooting in Av or Tv mode very similar to using the Manual mode, because you regain control over your exposure. The internal light meter does an amazing job, but I find that when I’m in a tricky lighting situation, the Quick Control dial can work wonders to help bring the exposure back to where it should be.

The last thing that I always have enabled on my camera is the Highlight Alert. This tells me when my images are overexposed
or whether I have lost detail in an area of a properly exposed image. The ability to quickly adjust the exposure using the Quick Control dial makes it easy to capture as much detail in my images as possible.

As you work your way through the coming chapters, you will see other tips and tricks I use in my daily photography, but the most important tip I can give you is to understand the features of your camera so that you can leverage the technology in a knowledgeable way—and produce better photographs.

Canon EOS 60D The Creative Zone

The Creative Zone is a group of shooting modes that gives the user (that’s you!) much more control over the camera settings. It’s good to have a basic understanding of how aperture, shutter speed, and ISO work together to create a balanced exposure when using any of these modes (see Chapter 2 for more information). The remaining chapters in this book will focus on using the modes in the Creative Zone, so I highly recommend familiarizing yourself with these shooting modes and settings so that you can take full control of the overall quality of your images.

P: PROGRAM MODE

Next up on the dial is the Program mode (P). This mode is similar to the Full and Creative Auto modes in that it gives the camera control over some of the settings, but it leaves the rest of the decisions to the photographer.

So how do the Auto modes and the Program mode differ? It’s actually quite simple. In Program mode, the only settings that the camera determines are shutter speed and aperture. You choose the ISO, white balance, focus point, and so on, so you will still have a lot of control over the quality of your images. The camera is just making some of the last, yet still very important, decisions for you.

WHEN TO USE PROGRAM (P) MODE INSTEAD OF THE AUTOMATIC MODES

  • When shooting in a casual environment where quick adjustments are needed
  • When you want control over the ISO
  • If you want to make corrections to the white balance

Now, just because the camera chooses a starting point with an aperture and shutter speed doesn’t mean that you are stuck with its first choice. The Canon 60D allows you to adjust the aperture and shutter speed on the fly while maintaining the same amount of light that is coming through the lens. if the camera wants the settings to be 1/250 of a second (shutter speed) at f/5.6 (aperture), you can turn the Main dial to a reciprocal exposure of 1/60 of a second at f/11. You will get the same exposure in your image, but your depth of field will vary because of the different aperture settings.

The key to adjusting your exposure in Program mode is understanding what you want the overall image to look like. If you are photographing a fast-moving subject and need to freeze the action, then you will turn the Main dial to the right to be sure that your shutter speed is fast enough to capture the movement. This also increases the size of the aperture, which can result in a blurred background, or shallow depth of field. Turning the Main dial to the left will do just the opposite—it will slow your shutter speed, possibly increasing the likelihood of motion in the image, and it will shrink the size of the aperture, which will result in a more focused image, or greater
depth of field.

Let’s set up the camera for Program mode and see how we can make all of this come together.

SETTING UP AND SHOOTING IN PROGRAM MODE

  1. Turn your camera on and then turn the Mode dial to align the P with the indicator line.
  2. Make sure that your ISO, white balance, and focus point are set appropriately (this is where you get to make the decisions!).
  3. Point the camera at your subject and then activate the camera meter by depressing the Shutter button halfway.
  4. View the exposure information while looking through the viewfinder (underneath the focusing screen) or at the LCD Panel on the top of the camera.
  5. To alter the shutter speed and aperture settings, use your index finger to roll the Main dial left and right to see the changed exposure values.
  6. Select the exposure that is right for you and start shooting.

STARTING POINTS FOR ISO SELECTION

There is a lot of discussion concerning ISO in this and other chapters, but it might be helpful if you know where your starting points should be for your ISO settings. The first thing you should always try to do is use the lowest possible ISO setting. That said, here are good starting points for your ISO settings:

  • 100: Bright sunny day
  • 200: Hazy or outdoor shade on a sunny day
  • 400: Indoor lighting at night or cloudy conditions outside
  • 800: Late night, low-light conditions, or sporting arenas at night

TV: SHUTTER PRIORITY MODE

The Shutter Priority mode, referred to on your Mode dial as Tv (which stands for “Time Value”), is where you select the shutter speed and the camera adjusts the aperture accordingly. Use this mode to push yourself toward the more advanced modes with your camera. This will allow you an enormous amount of control with your final image.

Before we go any further, let me briefly explain the mechanics of the camera shutter. The shutter is like a curtain that opens and closes to allow light to hit the sensor. The speed is calculated in seconds and fractions of a second (which is what you will likely use most often), and the longer the shutter stays open, the more light will reach the sensor. Using a very fast shutter speed is ideal for capturing fast-moving subjects (think of a football player jumping in the air to receive a pass), while a slow shutter speed can show movement in an image (like creating a soft effect on the water in a flowing stream or waterfall). These settings are offset by a larger aperture for fast shutter speeds and a smaller aperture for slow shutter speeds.

It’s important to understand that if the shutter speed gets too low, you won’t be able to handhold the camera to take the photo. Doing so might introduce “camera shake” in your image, which often makes an image appear out of focus. A good rule of thumb is to keep your shutter speed the same as your lens’s focal length. For example, if you are using a 200mm lens, try to keep the slowest handheld shutter
speed no slower than 1/200 of a second. Because the 60D has a 1.6 crop factor, the number might be slightly off, but sticking to that basic principle will help you keep your images sharp and free of camera shake.

WHEN TO USE SHUTTER PRIORITY (TV) MODE

  • When working with fast-moving subjects where you want to freeze the action (Figure 3.3)
  • When you want to emphasize movement in your subject with motion blur (Figure 3.4)
  • When you want to create that silky-looking water in a waterfall or stream (Figure 3.5)
To freeze the laptop midair and reduce motion blur, I used a very fast shutter speed to photograph this image.
FIGURE 3.3 To freeze the laptop midair and reduce motion blur, I used a very fast shutter speed to photograph this image.
A slow shutter speed was used to emphasize the movement of the biker.
FIGURE 3.4 A slow shutter speed was used to emphasize the movement of the biker.
I used a slow shutter speed to blur the motion of the water in the stream and give it a softer look.
FIGURE 3.5 I used a slow shutter speed to blur the motion of the water in the stream and give it a softer look.

As you can see, the subject of your photo usually determines whether or not you will use Tv mode. It’s important that you be able to visualize the result of using a particular shutter speed. The great thing about shooting with digital cameras is that you get instant feedback by checking your shot on the LCD screen. But what if you only have one chance to catch the shot? Such is often the case when shooting sporting events. It’s not like you can go ask the quarterback to throw that winning touchdown pass again because your last shot was blurry from a slow shutter speed. This is why it’s important to know what those speeds represent in terms of their capabilities to stop the action and deliver a blur-free shot.

First, let’s examine just how much control you have over the shutter speeds. The 60D has a shutter speed range from 1/8000 of a second all the way up to 30 seconds. With that much latitude, you should have enough control to capture almost any subject. The other thing to think about is that Tv mode is considered a “semiautomatic” mode. This means that you are taking control over one aspect of the total exposure while the camera handles the other. In this instance, you are controlling the shutter speed, and the camera is controlling the aperture. This is important, because there will be times that you want to use a particular shutter speed, but your lens won’t be able to accommodate your request.

For example, you might encounter this problem when shooting in low-light situations. If you are shooting a fast-moving subject that will blur at a shutter speed slower than 1/125 of a second but your lens’s largest aperture is f/3.5, you might find that the aperture display in your viewfinder and on the top LCD Panel will begin to blink. This is your warning that there won’t be enough light available for the shot—
due to the limitations of the lens—so your picture will be underexposed.

Another case where you might run into this situation is when you are shooting moving water. To get that look of silky, flowing water, it’s usually necessary to use a shutter speed of at least 1/15 of a second. If your waterfall is in full sunlight, you may get that blinking aperture display once again, because the lens you are using only stops down to f/22 at its smallest opening. In this instance, your camera is warning
you that you will be overexposing your image. There are workarounds for these problems, which we will discuss later, but it’s important to know that there can be limitations when using Tv mode.

SHUTTER SPEEDS

A slow shutter speed refers to leaving the shutter open for a long period of time—like 1/30 of a second or longer. A fast shutter speed means that the shutter is open for a very short period of time—like 1/250 of a second or less.

SETTING UP AND SHOOTING IN TV MODE

  1. Turn your camera on and then turn the Mode dial to align the Tv with the indicator line.
  2. Select your ISO by pressing the ISO button on the top of the camera and then turning the Main dial (the ISO selection will appear in the top LCD Panel).
  3. Point the camera at your subject and then activate the camera meter by depressing the Shutter button halfway.
  4. View the exposure information in the bottom area of the viewfinder or in the top LCD Panel.
  5. While the meter is activated, use your index finger to roll the Main dial left and right to see the changed exposure values. Roll the dial to the right for faster shutter speeds and to the left for slower speeds.

IMAGE STABILIZATION LENSES

Some Canon lenses come with a feature called Image Stabilization (IS) (Figure 3.6). It’s a mechanism that’s built directly into the lens and helps reduce motion blur due to camera shake when photographing at slower shutter speeds.

If you have this option on your lens, it’s a good idea to leave it turned on when doing any handheld photography. Because the IS mechanism in the lens moves when turned on, you’ll want to turn it off when using a tripod. It could introduce camera shake in your
images if the camera is perfectly still on a tripod, so it is typically recommended only for handheld photography.

The Image Stabilization switch on Canon IS lenses allows you to turn this feature on and off.
FIGURE 3.6 The Image Stabilization switch on Canon IS lenses allows you to turn this feature on and off.

AV: APERTURE PRIORITY MODE

The Aperture Priority mode, or Av (“Aperture Value”), is where you choose the aperture, and the camera selects the shutter speed—basically the reverse of the Tv mode. This is a very popular setting for many photographers, since it offers the most creative control over depth of field (how much of your image appears in focus). This is my favorite setting when I’m not shooting in the Manual mode, and I have a feeling that you will find it just as useful. I discussed the basics of how the aperture works, so you should know that a wide, or large, aperture (smaller number), equates to more light coming through the lens, and vice versa. The Av mode allows the camera to select the shutter speed. When you use a large aperture, you will end up with a faster shutter speed, and since a smaller aperture allows less light in through the lens, the camera will give a slower shutter speed to compensate. Once you have a solid understanding of how aperture and shutter speed work together, you will have taken a giant leap toward gaining complete control over your photography.

F-STOPS AND APERTURE

As discussed earlier, the numeric value of your lens aperture is described as an f-stop. The f-stop is one of those old photography terms that, technically, relates to the focal length of the lens (for example, 200mm) divided by the effective aperture diameter. These measurements are defined as “stops” and work incrementally with your shutter speed to determine proper exposure. Older camera lenses used one-stop increments to assist in exposure adjustments, such as 1.4, 2, 2.8, 4, 5.6, 8, 11, 16, and 22. Each stop represents about half as
much light entering the lens iris as the larger stop before it. Today, most lenses don’t have f-stop markings, since all adjustments to this setting are performed via the camera’s electronics. The stops are also now typically divided into 1/3-stop increments to allow much finer adjustments to exposures, as well as to match the incremental values of your camera’s ISO settings, which are also adjusted in 1/3-stop increments.

The greatest benefit of using the Av mode is that the photographer can control the depth of field in the image. Photographing something with a large aperture will decrease the depth of field and blur the background, while a small aperture will increase the depth of field so that more of the image is in focus (Figures 3.7 and 3.8).

This image of a flower was photographed with a large aperture of f/1.8, allowing me to significantly blur the background. This is an example of shallow depth of field.
FIGURE 3.7 This image of a flower was photographed with a large aperture of f/1.8, allowing me to significantly blur the background. This is an example of shallow depth of field.
For this image, I reduced the size of the aperture to f/14. The focus is set on the flower, but you are still able to see a lot of detail in the background. This is an example of great depth of field.
FIGURE 3.8 For this image, I reduced the size of the aperture to f/14. The focus is set on the flower, but you are still able to see a lot of detail in the background. This is an example of great depth of field.

WHEN TO USE APERTURE PRIORITY (AV) MODE

  • When shooting portraits or wildlife (Figure 3.9)
  • When shooting most landscape photography (Figure 3.10)
  • When shooting macro, or close-up, photography (Figure 3.11)

It’s important to note that because the aperture is physically located inside the lens (not the camera), your lens will determine how large an opening you can use. Lenses with a large maximum aperture are considered “fast” lenses, and tend to be much more expensive. Canon’s fastest glass goes to an f-stop of 1.2, which allows you to shoot at faster shutter speeds in lower-light situations. The largest aperture available for the majority of lenses on the market ranges from f/2.8 to f/4, which still allows a lot of light through to the sensor. The lens I use with my 60D for most of my work will only go to f/4, but I tend to work in brighter, more controlled lighting situations. Photographers who shoot weddings or events with uncontrollable lighting generally find that they need faster lenses with an opening of f/2.8 or larger.

A large aperture gave this image a blurry background.
FIGURE 3.9 A large aperture gave this image a blurry background.
A small aperture kept both the foreground and background in focus.
FIGURE 3.10 A small aperture kept both the foreground and background in focus.
A macro lens in combination with a large aperture helped to show more detail and focus the attention on the ants in this image.
FIGURE 3.11 A macro lens in combination with a large aperture helped to show more detail and focus the attention on the ants in this image.

SETTING UP AND SHOOTING IN AV MODE

  1. Turn your camera on and then turn the Mode dial to align the Av with the indicator line.
  2. Select your ISO by pressing the ISO button on the top of the camera and then turning the Main dial (the ISO selection will appear in the top LCD Panel).
  3. Point the camera at your subject and then activate the camera meter by depressing the Shutter button halfway.
  4. View the exposure information in the bottom area of the viewfinder or in the top LCD Panel.
  5. While the meter is activated, use your index finger to roll the Main dial left and right to see the changed exposure values. Roll the dial to the right for a smaller aperture (higher f-stop number) and to the left for a larger aperture (smaller f-stop number).

ZOOM LENSES AND MAXIMUM APERTURES

Some zoom lenses (like the 18–55mm kit lens) have a variable maximum aperture. This means that the largest opening will change depending on the zoom setting. In the example of the 18–55mm zoom, the lens has a maximum aperture of f/3.5 at 18mm and only f/5.6 when the lens is zoomed out to 55mm.

EXPOSURE COMPENSATION

One of my favorite features of Canon cameras is that they allow you to change the exposure compensation very quickly using the Quick Control dial on the back of your camera. Exposure compensation is a way to trick the camera into thinking that there is more or
less light coming through the lens than its light meter actually reads. This meter wants to balance the exposure so that it is equal to a neutral gray shade. For example, if you were to photograph in an all-white environment, such as in the snow, your camera would want
to make all of the white areas look gray, and your image would end up dark and underexposed. You can compensate for this by telling the camera to overexpose the image so that your white snow will look white in your photograph (Figure 3.12).

The white color of both the snow and the dog fooled my camera meter to underexpose the image, so I overexposed the image by two-thirds of a stop to add more light and keep the white areas white.
FIGURE 3.12 The white color of both the snow and the dog fooled my camera meter to underexpose the image, so I overexposed the image by two-thirds of a stop to add more light and keep the white areas white.

SETTING EXPOSURE COMPENSATION

SETTING EXPOSURE COMPENSATION

  1. If you have the Quick Control dial lock enabled, push the UNLOCK button on the back of the camera.
  2. Use your thumb to scroll the Quick Control dial to the left or right while watching the top LCD Panel (A). Moving the dial to the left will tell your camera to underexpose the image, and moving it to the right will tell it to overexpose the image. Note that you can also make these changes on the LCD Monitor by using the Quick Control screen (B).
  3. Using the Quick Control dial to change your exposure compensation will expand the flexibility of using the P, Tv, and Av modes on your camera so that you won’t always have to rely on the camera to make the final decision.

M: MANUAL MODE

Before cameras had shooting modes such as Aperture Priority, Program, and so on, all exposures were set manually. This means that the photographer chose all of the settings, and since both the ISO and white balance were already decided depending on the kind of film loaded into the camera, the photographer was only responsible for selecting the proper aperture and shutter speed. As technology advanced and automatic features were added to cameras, many photographers discovered new ways of capturing their images. However, the “old-fashioned” method of taking pictures was never set aside or forgotten. You will find that using the Manual (M) mode on the 60D will give you total control over your images.

When shooting in Manual mode, you choose both the aperture and shutter speed, and the camera will do nothing other than give you its feedback through the internal light meter. You can view how the meter is reading a scene by looking in one of two places: the LCD on the top of the camera (Figure 3.13), or underneath the focusing frame while looking through the viewfinder. This meter is what the camera uses when shooting images in all other modes, and its goal is always to find the most balanced exposure. Sometimes, the light meter reads
the scene incorrectly or the photographer wants to have full control over the exposure, and in those scenarios using the Manual mode is the best choice.

The light meter located on the top LCD Panel ranges from –3 stops (underexposed) to +3 stops (overexposed).
FIGURE 3.13 The light meter located on the top LCD Panel ranges from –3 stops (underexposed) to +3 stops (overexposed).

WHEN TO USE MANUAL (M) MODE

  • When learning how each exposure element interacts with the others
  • When your environment is fooling your light meter, and you need to maintain a certain exposure setting, such as with a silhouette (Figure 3.14)
  • When using an artificial light source, such as strobes or flashes, in a controlled environment (Figures 3.15 and 3.16)
Use the Manual mode for silhouettes to obtain proper exposure.
FIGURE 3.14 Use the Manual mode for silhouettes to obtain proper exposure.
This image was photographed in a studio setting. Because the main light source was a radio-triggered strobe, I used Manual mode in order to get the correct exposure.
FIGURE 3.15 This image was photographed in a studio setting. Because the main light source was a radio-triggered strobe, I used Manual mode in order to get the correct exposure.
It’s necessary to use Manual mode for most studio portrait images when using strobe lights or flash units.
FIGURE 3.16 It’s necessary to use Manual mode for most studio portrait images when using strobe lights or flash units.

I prefer to use the Manual mode when using strobes or any other type of controlled light source in an unchanging environment. I also use it when I have my camera on a tripod while photographing things such as food or landscapes. The great thing about Manual mode is that it can be used in any circumstance and can yield some amazing results if you know what you’re doing.

SETTING UP AND SHOOTING IN MANUAL MODE

  1. Turn your camera on and turn the Mode dial to align the M with the indicator line.
  2. Select your ISO by pressing the ISO button on the top of the camera and then turning the Main dial (the ISO selection will appear in the top LCD Panel).
  3. Point the camera at your subject and then activate the camera meter by depressing the Shutter button halfway.
  4. View the exposure information in the bottom area of the viewfinder or by looking at the display panel on top of the camera.
  5. While the meter is activated, use your index finger to roll the Main dial left and right to change your shutter speed value until the exposure mark is lined up with the zero mark. The exposure information is displayed by a scale with marks that run from –3 to +3 stops. The camera will meter a proper exposure when it is lined up with the arrow mark in the middle. As the indicator moves to the
    left, it’s a sign that you’ll be underexposing (telling you that there is not enough light on the sensor to provide adequate exposure). Move the indicator to the right and you will be providing more exposure than the camera meter calls for. This is overexposure.
  6. To set your exposure using the aperture, depress the Shutter button until the meter is activated. Then, using your thumb, scroll the Quick Control dial to change the aperture: clockwise for a smaller aperture (large f-stop number), and counterclockwise for a larger aperture (small f-stop number). (If you have the Quick Control dial lock enabled, you’ll need to press the UNLOCK button before making any changes to the aperture.)

B: BULB MODE

The Bulb (B) mode on your camera is another manual mode setting that gives you complete control over the shutter speed, but instead of
choosing a specific setting, you are able to leave the shutter open for an indefinite period of time. The word bulb comes from the early days of photography when camera shutters were pneumatically activated, meaning a bulb was pressed and the air from it was released through a tube that caused the shutter to open and close. It’s a mode that is typically used in dark environments to capture light that is sporadic
or changing, such as fireworks or star trails. It can be extremely useful in creating images that need very long shutter speeds.

 A tripod and a cable release are essential accessories when photographing in Bulb mode. This image shows the 60D with the Canon RS-60E3 remote switch.
FIGURE 3.17 A tripod and a cable release are essential accessories when photographing in Bulb mode. This image shows the 60D with the Canon RS-60E3 remote switch.

When using this mode, it’s essential to use both a tripod and a cable release (Figure 3.17). A tripod will keep the camera steady while the
shutter is open, and a cable release will open and close the shutter without you having to push the button on the top of the camera,
reducing the likelihood of camera shake in your images.

WHEN TO USE BULB (B) MODE

  • When shooting fireworks displays (Figure 3.18)
  • When you want to capture trails of lights, such as stars or cars moving down a street at night (Figure 3.19)
  • When you want to photograph any image in a dark environment at a very small aperture (Figure 3.20)

Using the Bulb mode can bring a lot of creativity into your photography, and there are really no limits to what you can create. The wonderful thing about this mode is that you are able to capture images that are so different from what we see with our eyes. When I lived in the Midwest, I used to chase storms and photograph lightning and was always amazed at the results (Figure 3.21). We see the bolts of light for only a split second, but by using the Bulb mode we can freeze the lightning and see more than we could with our eyes during the storm.

A long shutter speed was necessary to capture several bursts of fireworks on one image.
FIGURE 3.18 A long shutter speed was necessary to capture several bursts of fireworks on one image.
I left the shutter open for several seconds to catch the trail of lights created by the Ferris wheel as it was spinning.
FIGURE 3.19 I left the shutter open for several seconds to catch the trail of lights created by the Ferris wheel as it was spinning.
A very long exposure was required to photograph this skyline scene at night.
FIGURE 3.20 A very long exposure was required to photograph this skyline scene at night.
 Although this image was photographed on 35mm film, it’s a good example of the types of images you can create digitally using the Bulb mode on your 60D.
FIGURE 3.21 Although this image was photographed on 35mm film, it’s a good example of the types of images you can create digitally using the Bulb mode on your 60D.

SETTING UP AND SHOOTING IN BULB MODE

  1. Set your camera on a sturdy tripod and attach a cable release to the Remote Control terminal on the side of your camera.
  2. Turn the Mode dial to align the B with the indicator line.
  3. Select your aperture by turning the Main dial.
  4. Select your ISO by pressing the ISO button on the top of the camera and then turning the Main dial (the ISO selection will appear in the top LCD Panel).
  5. Position the camera toward your subject and press the button on the cable release. Hold the button down until you are satisfied with your exposure, and then release the shutter.
  6. If you want an extremely long exposure (several minutes or hours), lock the cable release by sliding the button up, which will allow you to lock the shutter in place indefinitely. The only limitation to your exposure is the amount of life left in your battery.

C: CAMERA USER SETTING

The 60D allows you to customize a shooting mode with the Camera User setting (C). This is useful if you frequently find yourself shooting in the same environment with the same settings. It allows you to completely customize a shooting setting any way you like and then record those settings as a preset

One example of when you may want to use these settings is when shooting high-dynamic range images, also known as HDR (more information on this technique is in Chapter 5). It doesn’t matter where I am, what lens I’m using, or what time of day it is, I always use the same starting point. I set the ISO to 100, shoot in Av mode, set the drive mode to High-speed continuous shooting, and make sure that Auto Exposure Bracket mode is turned on. I can record all of these settings in one of the custom settings, and they will be ready any time
I want to photograph a series of images for HDR.

Another useful preset to create is one for using the Movie shooting mode. I like to have a good starting point for all of the movies I record, and I don’t want to make a silly mistake like forgetting to turn sound recording on, shooting at too high a shutter speed, or using the wrong movie-recording size. Setting up a preset and using a customized camera user setting will guarantee that I won’t make any of those mistakes. It also allows me to jump straight into movie shooting without having to think about my settings.

DIGITAL NOISE AND LONG EXPOSURES

One issue that arises when making extremely long exposures is that you are likely to introduce more digital noise into your images than with a normal exposure. This is one area in which film still has an advantage over digital (Figure 3.22). Digital noise due to long exposures is difficult to prevent, but there are some advanced ways to reduce its effect by using noise-reduction software while editing your images. You can also reduce the amount of noise in-camera by turning on the Long Exposure Noise Reduction setting in your 60D.

Long exposures photographed with film, such as this image of fireworks at night, had a high dynamic range (more detail in the darker and brighter areas) and, unlike the digital cameras of today, did not introduce excess noise or grain in the images.
FIGURE 3.22 Long exposures photographed with film, such as this image of fireworks at night, had a high dynamic range (more detail in the darker and brighter areas) and, unlike the digital cameras of today, did not introduce excess noise or grain in the images.

SETTING UP YOUR OWN CUSTOM SHOOTING MODES

SETTING UP YOUR OWN CUSTOM SHOOTING MODES

  1. First, make all of the adjustments to the camera that you want in your custom shooting mode. For example, you might set the camera to Av mode, ISO 100, Daylight white balance, and RAW+JPEG image quality.
  2. Press the Menu button and use the Main dial to get to the third setup tab.
  3. Use the Quick Control dial to highlight the Camera User Settings option (A), and then press Set. Select Register and press Set again.
  4. Use the Quick Control dial to select OK (B), and then press Set one last time.
  5. When you want to use a setting, just rotate the Mode dial to the Camera User setting mode and begin shooting.

Canon EOS 60D The Basic Zone

The 60D has two basic “zones” to set your shooting mode to—Basic and Creative. The Basic Zone is a group of settings that give the camera full
control of most settings, whereas the Creative Zone has the more advanced shooting modes that will give you more control over the camera and your images. In this section, I will list all of the Basic Zone shooting modes, explain what the camera controls versus what you can control, and show you when it’s best to use the various modes.

SETTING UP AND SHOOTING IN THE BASIC ZONE

  1. Turn your camera on and, while pressing down on the Mode dial lock-release button, turn the Mode dial to align one of the eight shooting modes with the indicator line.
  2. Make sure your preferred image-quality setting is selected
  3. To make changes to the settings, press the Q button on the back of the camera and use the Multi-Controller to scroll through the options.
  4. Point the camera at your subject and press the Shutter button to take a photo. The camera will determine its settings based on the shooting mode you have selected.

FULLY AUTOMATIC MODE

Full Auto mode, indicated on the Mode dial by a green square, is exactly what it sounds like—fully automatic shooting. This means that the camera decides all of your in-camera settings. It chooses the ISO, shutter speed, aperture, white balance, and whether or not you will use the built-in flash. You only have control over the quality settings (RAW or JPEG) and drive mode setting (where you can choose between single or self-timer shooting). Because this mode allows you very little control over your camera settings, it’s best to use it sparingly.

DISABLING FLASH MODE

There may be times when you want to shoot in the Fully Automatic mode but are unable to use your flash, such as when you are indoors at an event that prohibits flash photography, or perhaps when at a museum. This mode is identical to the Fully Automatic mode except that it completely disables the use of the 60D’s built-in flash.

CA: CREATIVE AUTO MODE

One good alternative for new photographers is to start out in the Creative Auto (CA) mode. It’s very similar to Full Auto, so it’s something you might want to use in moderation, but you do have a bit more control over some of the settings. You have the ability to change the
drive mode, flash, ambience setting, and the blurriness of the background in each image, along with your quality setting (RAW or JPEG). The camera will decide the rest for you. It’s a good option if you know what you want your image to look like but are still not familiar with how aperture and shutter speed function to properly expose your image.

The display on the LCD gives you the ability to adjust some of the settings while in the CA mode. This is an example of changing the setting so that your background is blurry.
FIGURE 3.1 The display on the LCD gives you the ability to adjust some of the settings while in the CA mode. This is an example of changing the setting so that your background is blurry.

One feature that is unique to the CA mode is the ability to control the blurriness of the  background (Figure 3.1). This setting tells the camera where to set the aperture so you get the effect you want to see. (Note that the background-blur function will be disabled when the built-in flash is popped up. To re-enable this function and adjust its setting, just push the flash back into the camera, change your settings, and then continue shooting.)

AMBIENCE SETTING

The Ambience setting is a feature you are able to select in all of the Basic Zone shooting modes except for the Fully Automatic and Disable Flash modes. These settings affect the color intensity of your image and are permanently embedded into your image when shooting in JPEG quality (using the RAW format will allow you to change and manipulate your image in post-processing without loss of quality).

MENU ITEMS IN THE BASIC ZONE

One important detail to know when using the Full Auto and Creative Auto modes is that your menu tabs are limited. Only seven out of the eleven tabs that are normally visible when shooting in all other mode settings will display (Figure 3.2). Since the camera decides the majority of the exposure and color settings when in the fully automatic modes, the information in some menu tabs is not necessary.

The menu tabs are limited in the Basic Zone shooting modes.
FIGURE 3.2 The menu tabs are limited in the Basic Zone shooting modes.

PORTRAIT MODE

The Portrait shooting mode blurs the background by opening the aperture wide, and also gives skin tone a warmer and softer look than the Full Auto mode. If there’s not enough light on your subject, then the built-in flash will pop up automatically. You have control over the image quality (RAW or JPEG), ambience setting, drive mode (low-speed continuous or self-timer), and white balance (a.k.a. lighting/scene type). This mode is best used when photographing people.

LANDSCAPE MODE

The Landscape shooting mode is for photographing wide scenes, nighttime scenes, or any time you want the majority of your image in focus. This mode will default to using a smaller aperture for greater depth of field, and it also enhances the color saturation of the greens and blues in your images. You have control over the image quality (RAW or JPEG), ambience setting, drive mode (single shooting or self-timer), and white balance (a.k.a. lighting/scene type). When using this mode, the built-in flash is disabled.

CLOSE-UP MODE

Use the Close-up mode when getting in close to your subject—for example, when photographing flowers or small objects, or when using a macro lens. The settings will default to using a wide aperture for shallow depth of field to make the background look blurry, and the built-in flash will also pop up automatically if the scene is too dark. You can control the image quality (RAW or JPEG), ambience setting, drive mode (single shooting or self-timer), and white balance (a.k.a. lighting/scene type).

SPORTS MODE

The Sports mode is for when you want to photograph a moving subject, such as a child playing sports, an active pet, or a moving vehicle. The settings will default to using a fast shutter speed to “freeze” the action and will continually try to find focus if you keep the Shutter button half-pressed (or when pressing the AF-ON button). You have control over the image quality (RAW or JPEG), ambience setting, drive mode (High-speed continuous shooting or self-timer), and white balance (a.k.a. lighting/scene type).

NIGHT PORTRAIT MODE

The Night Portrait mode is for photographing people at night or in a darkened room. This differs from the Portrait mode because it keeps the shutter open longer to allow the darker background to show up in the image and appear more natural. You will be using the built-in flash the majority of the time, since this mode will typically be used in low-light environments. You have control over the image quality (RAW or JPEG), ambience setting, and drive mode (single shooting or self-timer).

MY ADVICE ON USING THE BASIC ZONE

The Basic Zone gives the camera a lot of control over the settings while you, the photographer, are creating images. New photographers who are still learning the ins and outs of the technical side of photography and their camera may find these settings useful, but using these modes basically reverts your camera to a glorified point-and-shoot camera set to automatic. Chances are that if you’re reading this book, you want to take your photography a step further, and if you’re only using the modes in the Basic Zone, you may find that over time you’re not achieving the image results you want.

Now, there’s absolutely nothing wrong with using the modes in the Basic Zone, and I’m not going to tell you that you shouldn’t use them. However, if you haven’t yet strayed from the Basic Zone, I would like to challenge and encourage you to try using the shooting modes in the Creative Zone (listed in the next section of this chapter). Taking more control over your camera will help you gain a deeper understanding of how depth of field, light, and the exposure triangle work together to create those amazing images you’ve probably already visualized in your mind.

Synchronization for Windows Azure and Windows Phone 7

Version 3.0 of the Sync Framework includes providers for Windows Azure and Windows Phone 7 that can exchange synchronization messages using the OData Sync protocol. The samples available for the Sync Framework include examples that use these providers. The Windows Phone 7 provider uses isolated storage on the device to hold the local data and the synchronization metadata as a series of collections in the form of a local context.

The Sync Framework includes a utility named SyncSvcUtil that developers can use to create both a set of entities that extend the IsolatedStorageOfflineEntity base class to define the data types, and a class that extends the IsolatedStorageOfflineContext class to interact
with stored data.

The IsolatedStorageOfflineEntity base class exposes properties used by the Sync Framework provider to define and monitor changes
to the local data. For example, it exposes the entity state (such as Unmodified, Modified, and Saved) if the change encountered a conflict
or error or if the local entity is a tombstone (because it was deleted on the device). The IsolatedStorageOfflineEntity type also exposes events that indicate when the entity value changes and a method to reject the changes and restore the original version.

The concrete type created by the SyncSvcUtil that extends IsolatedStorageOfflineEntity exposes application-specific entity
types based on the schema of the data source with which the device will synchronize. The application on the device uses these entity types
when accessing and interacting with the data that is stored locally.

The IsolatedStorageOfflineContext base class exposes properties, methods, and events that manage the synchronization process and indicate its progress when synchronization is occurring. These include methods to initiate a session, add and remove items, and initiate
synchronization; properties that expose collections of errors and conflicts; and events that indicate the progress and result of the process.

The concrete type created by the SyncSvcUtil utility that extends IsolatedStorageOfflineContext exposes the schema for the stored data, collections of the stored entities, and methods that allow the application to add and delete items in the collections. The application
on the device uses these methods and properties to display and manipulate the data that is stored locally.

To learn more about using the Sync Framework with Windows Azure and Windows Phone 7, see the following resources:

  • “Synchronization” on MSDN: http://msdn.microsoft.com/en-us/library/dd938837(SQL.10).aspx
  • Sync Framework Team Blog: http://blogs.msdn.com/b/sync/

Using the Sync Framework

To perform synchronization, the developer writes code that does the following:

  • Initiates a synchronization session
  • Sets up references to two synchronization providers and configures them appropriately
  • Starts the synchronization process

Each client or server store holds information about the changes occurring in that store. This metadata, stored local to and available to
each provider, contains the knowledge used by the provider to detect changes and conflicts. The Sync Framework includes a small footprint metadata store service that developers can use when implementing custom providers. Alternatively, developers can implement the metadata
functionality as part of the local data store. An example is the offline store provider for Silverlight web applications and Windows phone 7 applications.

Data converters are required if the format of the data is different between the two data stores, and if the existing providers or your custom providers do not expose data in OData Sync format. For example, if one store exposes ADO.NET DataSets and the other exposes data in XML format, the developer can create a pair of data converters and specify these when setting up the synchronization process. If there are many data store formats, it may be easier to create data converters that convert to and
from a common format, and then to use the appropriate pair for each synchronization session.

Events are raised during the synchronization process to indicate the individual changes occurring and any errors that arise (including
conflicts if the data in both locations has changed). The application can handle these events to provide status information to the user,
manage conflicts by applying business rules (such as “latest change wins”), and to display the results.

For a useful introduction to the synchronization process and details of the way that synchronization metadata is used, see “Introduction
to Microsoft Sync Framework” on MSDN (http://msdn.microsoft.com/en-us/sync/bb821992.aspx). This article discusses the metadata used by the framework, the synchronization flow, and includes examples of synchronization with and without update conflicts.

About the Microsoft Sync Framework

The Microsoft Sync Framework version 3.0 is designed to make it easy to allow synchronization of databases (including complete tables
and individual rows), file system content, and arbitrary data in a range of scenarios. The following are some of these synchronization scenarios:

  • Between on-premises databases and single or multiple cloud databases
  • Between multiple on-premises databases via the cloud (“data hub in the sky”)
  • Between multiple cloud databases
  • Between remote data store(s) and client applications
  • Between data stores and Microsoft Excel® spreadsheet software (Pivot) or other Microsoft Office applications such as Microsoft SharePoint® team services, Exchange Server, and other enterprise solutions
  • To populate remote databases from on-premises databases
  • To aggregate data from multiple remote databases to onpremises databases
  • To maintain a consistent view of data across “three screens” (mobile, desktop, and cloud)
  • To allow reuse of the same application model and logic with just a different user interface (UI) for each client type
  • To enable simple development of occasionally-connected (“offline-and-sync”) clients

The Sync Framework exposes changes to data using the OData Sync protocol. This is based on the Open Data (OData) protocol. OData allows a wide range of data sources to be exposed and consumed over the web in a simple, secure, and interoperable format. It uses well-established standards and web technologies such as XML, HTTP, Atom Publishing (Atom Pub), and JavaScript Object Notation (JSON). For information about OData, see the Developers page on the Open Data Protocol website (http://www.odata.org/developers). For a list of OData providers and tools, see the OData SDK page on the Open Data Protocol website (http://www.odata.org/developers/odata-sdk).

Figure 1 shows an overview of how the Sync Framework can be used in a Windows Azure service to synchronize data with different types of clients. The service exposes synchronization endpoints to which clients can connect. The way that the synchronization occurs depends on the type of client, and the synchronization protocols it supports. The synchronization is managed by the Sync Framework itself, and can optionally include custom business logic to perform tasks such as authentication, authorization, and management.

Overview of the Sync Framework capabilities

Components of the Sync Framework

To achieve the required fl exibility, the architecture of the Sync Framework consists of a central orchestration mechanism, a small synchronization runtime for each client, and individual pluggable providers for each of the data stores and client types.

In many cases, the synchronization runtime and provider can run on the client; this enables full integration with the sync framework as
well as the capability for peer-to-peer synchronization. Code on the client can access the functionality of the Sync Framework using the
simple API available in the provider runtime to synchronize with another data source, send changes to that data source, and access data
in the data source that has changed since the last synchronization. The mechanism also allows clients and data stores to specify rules on
how to resolve confl icts. Figure 2 shows a schematic of this process.

The components and process for synchronization with Windows clients

In cases in which the synchronization provider cannot execute on the client, such as with non-Windows devices or web browsers, developers can write code that accesses the provider on the remote data store using the OData Sync protocol to synchronize data, send updates, and get changes from the remote data store.

The server (in this example, running in Windows Azure) specifi es an endpoint that exposes changes using the OData Sync protocol.
Typically, this is a Windows Communication Foundation (WCF) service. The client may use a runtime and provider that understands the OData Sync protocol, or—where this is not available or practical—it can use custom code to read and parse the OData Sync information.
Figure 3 shows a schematic of this approach.

The components and process for synchronization with non-Windows clientsThe main advantage is that there is now a standard way to read and submit changes for synchronization between the data store, this client device, and other devices that use the same set of data.

Sync Framework Providers

Some providers are still under development, and others will be added to the list in the future. At present, the range of providers available, or soon to be available, includes the following:

  • SQL Server using tabular data stream (TDS) protocol over HTTP(S) and a wizard in SQL Server 2008 R2
  • SQL Server Compact Edition over HTTP(S)
  • SQL Azure™ technology platform using the TDS protocol over HTTP(S) and a wizard in SQL Server 2008 R2
  • Azure Web Roles using an HTTP(S) endpoint with access to Azure table and binary large object (BLOB) storage
  • Silverlight synchronization to isolated storage using HTTP(S) to synchronize data stored as collections
  • Windows Phone 7 synchronization to isolated storage using HTTP(S) to synchronize data stored as collections
  • Windows Mobile 6.x support over HTTP(S) to SQL Compact Edition
  • Synchronization to HTML 5 clients over HTTP(S) (coming in a future release)
  • Synchronization to any existing HTTP-enabled client using HTTP(S) with a custom proxy and code
  • File-based synchronization across computers and networks using standard network protocols

For more information about the Sync Framework, see the Microsoft Sync Framework Developer Center on MSDN® (http://msdn.microsoft.com/en-us/sync/default.aspx).

Microsoft Sync Framework and Windows Phone 7

Application models based on traditional client-server and web-based technologies tend to have little need for synchronizing data between
locations. In most cases, all instances of clients—such as Windows® Forms applications or web browsers—access a single store that holds
the data used by the application (although this store may itself be a server farm). However, the increasing use of cloud-based data stores
and mobile devices means that the capability to synchronize or replicate data across separate locations and devices is becoming even more
vital.

Synchronization between databases has been a common requirement for a while, and technologies to achieve this are available and
widely used. However, they are often closely tied to a specific scenario and do not support more general client application scenarios. The following are some examples of the capabilities that are becoming essential for distributed applications:

  • Synchronizing data between geographically separated cloudbased data repositories and applications
  • Synchronizing data between one or more on-premises databases or applications and one or more cloud-based databases or applications
  • Synchronizing data between rich client applications and the data source to maximize interactivity and usability of the application
  • Synchronizing data between mobile and occasionally connected devices and the application data store to allow off-line operation

Some of these requirements can be satisfied using relational database replication and synchronization technologies, generally where
there is a database available on the client computer (which, in some cases, may be SQL Server® Compact Edition or another file-based
database mechanism). However, there is an increasing requirement to synchronize data for devices and clients that do not have a local database mechanism available. Typical examples of this are mobile phones and similar small form factor devices.

The Microsoft® Sync Framework aims to provide an extensible and easy-to-use mechanism for synchronizing data between almost
any type of data source and client. In the context of this guide, it specifically enables synchronization between Windows Azure™ technology platform services and Windows Phone 7 devices.

Developing an Online Media Center for Public Relations

If publicity is a significant part of your public relations strategy, you should consider developing an online media center as part of your site (Figure 16.3). The media center should be easily accessible from your navigation bar. It would include all the components a journalist needs when doing a story on your company. Journalists should be able to find pictures to include in the story and all the information necessary to do their due diligence. They should be able to send a question to the appropriate media contact within the organization with one click. The media center should include:

  • A chronology of news releases distributed by the company. Make sure you put the latest news release at the top.
    Nu Skin provides a media center on its Web site.
  • The company history and background information.
  • An electronic brochure.
  • Links to other articles written about your operation. Make sure you have these on your site and not as a link to the magazine site that published the article.
  • Links to story ideas for future articles.
  • Links to pictures that can be used by journalists in their story. Perhaps have a gallery where journalists can choose the pictures they want to include in their story. Alternatively, you can provide a link to your Flickr photostream or photos on your Facebook page.
  • Background information on key company personnel, along with their pictures, bios, and quotes.
  • A link to your company’s media contact and all contact information.
  • FAQs and answers to anticipated questions.

By having a media center on your site, you are sending a clear message to the journalist. You are saying, “You’re important to me! I want to provide you with everything you need to quickly and easily complete your story on our operation or our products and services.” With the media center you are providing all the information, in a format that journalists can use, to enable them to do the story no matter when they choose to do it.

You will want to encourage permission marketing by offering visitors the opportunity to be notified to receive your news releases “hot off the press.” Place a “Click here to join our media list and to receive notification of our news releases” link on your Web site. In addition, make it easy for visitors to send a copy of your news release to a friend. Sometimes journalists work on stories together, so give the journalist the option to send the news release to a colleague, or even to his or her editor, through viral marketing.