Presentation is loading. Please wait.

Presentation is loading. Please wait.

Department of Computer Science Southern Illinois University Edwardsville Spring, 2010 Dr. Hiroshi Fujinoki CS 547/490 Network.

Similar presentations


Presentation on theme: "Department of Computer Science Southern Illinois University Edwardsville Spring, 2010 Dr. Hiroshi Fujinoki CS 547/490 Network."— Presentation transcript:

1 Department of Computer Science Southern Illinois University Edwardsville Spring, 2010 Dr. Hiroshi Fujinoki E-mail: hfujino@siue.edu CS 547/490 Network Programming IP Version 6 (IPv6) IPv6.PPT/001

2 CS 547/490 Network Programming IPv6.PPT/002 History IPnG officially became IPv6 in RFC 1752 A project for IPnG (IP Next Generation) was started to improve the existing IP (IPv4) Many modifications were made to the first IPv6 draft - RFC 2460: Internet Protocol Version 6 (1998) - RFC 2374: IPv6 Aggregatable Global Unicast Address Format - RFC 2463: Internet Protocol Version 6 (Revision) - RFC 2464: Transmission of IPv6 packets over Ethernet Latest OSes support IPv6 (Windows XP, Solaris 8 and Linux (krnl: 2.1.2)

3 CS 547/490 Network Programming IPv6.PPT/003 IPv6 Goals 1. Extended address space 2. QoS (Quality of Service) support 3. Built-in security mechanisms 4. Better protocol service extendibility 6. More efficient routing 5. State-less DHCP services 7. Backward compatibility to IPv4 8. Network infrastructure for both IPv4 and IPv6 9. More flexible network set up

4 CS 547/490 Network Programming IPv6.PPT/004 Extended Address Space The address space for IPv4 = 2 32 = about 4.3 billion unique addresses The address space of IPv4 was considered to be large enough In the late 90s, the address space of IPv4 was getting starved - Advent of WWW - Household electric appliances started connected to the Internet - There usually are some addresses not used in every network domain (a group of IP addresses are reserved for every domain) (Commercial domains became popular) CIDR (Class-less Internet Domain Routing) proposed

5 CS 547/490 Network Programming IPv6.PPT/005 Extended Address Space Comparisons of IPv4 and IPv6 address spaces Protocol Unique Addresses IPv4 IPv6 340, 282, 366, 920, 938, 463, 374, 607, 431, 768, 211, 456 addresses 4, 294, 967, 296 addresses Using IPv6, we can assign 10 28 addresses to every one on the earth!

6 CS 547/490 Network Programming IPv6.PPT/006 Extended Address Space Due to the introduction of 128-bit address space, the available address space is now much larger …. This is a good thing, since we do not have to worry about address space starvation any more. However, there are something we (engineers) have to take care of...

7 CS 547/490 Network Programming IPv6.PPT/007 Extended Address Space Routing overhead at routers (especially core routers): (2) Routing algorithm overhead (1) Routing table size - 2 96 times larger address space than IPv4 - Each entry is now four times larger - Complexity of routing algorithm usually is in the order of O( nlog k n) and c  nlog k n (n is the number of network routers) - The throughput will go down quickly as n increases... Large address space There are something we (engineers) have to take care of

8 TLA IDFP Reserved NLA IDSLA ID CS 547/490 Network Programming IPv6.PPT/008 Extended Address Space Interface ID 3 13 8 2416 64 128 bits Public Address Site Address Interface Address (Interface ID) FP = Format Prefix (Address Format Prefix) TLA ID = Top Layer Aggregation ID NLA ID = Next Layer Aggregation ID SLA ID = Top Layer Aggregation ID

9 Class ID Domain Address CS 547/490 Network Programming IPv6.PPT/009 IP V4 Address Space Host ID 3 24 5 32 bits Public Address Interface Address (Interface ID) This is essentially a two-layer addressing

10 CS 547/490 Network Programming IPv6.PPT/010 Extended Address Space TLA NLA SLA Interface ID 4-layer routing Reduce “n” in O(nlogn)

11 CS 547/490 Network Programming IPv6.PPT/013 Security IPv4 security User name and Password Initially for recognizing every user, not for authentication Not enough system support for security - Security is performed by “application” IPv6 security Security even at the beginning of protocol design - Encryption is a part of protocol design (in IPv4, it’s a part of application-level protocol)

12 CS 547/490 Network Programming IPv6.PPT/014 Security IPv6 Packets = Packets for data transmission = Packets for authentication Each authentication packets should: 1. Have AH (Authentication Header) 2. Have ESP (Encapsulating Security Payload) header Data Packets Authentication Packets

13 CS 547/490 Network Programming IPv6.PPT/015 Protocol Service Extendibility In IPv4, header information is all within header It is difficult to change options without changing packet header format In IPv6, the header contains pointers to options Parameters are out of the “fixed” portion of the packet header

14 CS 547/490 Network Programming IPv6.PPT/017 Protocol Service Extendibility IPv6 Header Version # Traffic ClassFlow Label Data (Payload Data) Length Next Header PointerMax Hop Count Sender IPv6 IP Address (128 bits) Receiver IPv6 IP Address (128 bits) IPv6 Header Extended Header Next header Pointer

15 CS 547/490 Network Programming IPv6.PPT/018 Protocol Service Extendibility Concepts: Keep the “IPv6 header core” as small and as simple as possible Extension should be made outside of the “header core” 1. Throughput 2. End-to-end delay will be improved. 3. Delay jitter (variances in end-to-end delay)

16 CS 547/490 Network Programming IPv6.PPT/016 Protocol Service Extendibility IPv4 Header IPv6 Header Version # Traffic ClassFlow Label Data (Payload Data) Length Next Header PointerMax Hop Count Sender IPv6 IP Address (128 bits) Receiver IPv6 IP Address (128 bits) Fragment Offset IHL Service TypePacket Length Flags TTL Transport Protocol Header Check Sum Code Sender IP Address Receiver IP Address Options and Padding Version # Packet Sequence Number

17 CS 547/490 Network Programming IPv6.PPT/011 Quality of Service Support IPv4 does not have any quality of service support Factors for “quality of service”: (1) Transmission Rate (Link Bandwidth) Reservation (2) Guaranteeing Short Delay (end-to-end delay and delay jitter) (3) Error rate - end users usually do not see “errors” during data transmissions (4) Security - encryption methods applied during data transmissions

18 CS 547/490 Network Programming IPv6.PPT/012 Quality of Service Support QoS Support in IPv6: QoS Support by “flow” In IPv6, QoS is provided to each “flow” (sometimes called “pipe”) “IPv6 flow” is a “path” in virtual circuit QoS is managed for “flow”, but not for each packet The difference from “path” in the virtual circuit is that it can be a collection of paths.

19 CS 547/490 Network Programming IPv6.PPT/017 For each IPv6 flow (pipe), the following QoS parameters can be specified: Queuing Priority Network Resources - Memory Buffer - Link Bandwidth - Processor Time Slice (at routers) Requirements for Packet Drop Accounting Security - Better Encryption

20 CS 547/490 Network Programming IPv6.PPT/012 Quality of Service Support QoS Support in IPv6: QoS Support by “flow” A “flow” is a virtual pipe uniquely identified by a combination of: IPv6 Header Version # Traffic ClassFlow Label Data (Payload Data) Length Next Header PointerMax Hop Count Sender IPv6 IP Address (128 bits) Receiver IPv6 IP Address (128 bits) - Flow label (20 bits) - Sender IPv6 Address - Receiver IPv6 Address

21 CS 547/490 Network Programming IPv6.PPT/017 Router IPv6 Pipe IPv6 Sender IPv6 Receiver

22 CS 547/490 Network Programming IPv6.PPT/017 R1 R2R3 R4 RnRn SENDER RECEIVER Path Set-up delay Data Transmission Time ACK Signal Path Set-up Signal

23 CS 547/490 Network Programming IPv6.PPT/017 Internal Operation External Operation Virtual Circuit Datagram A BC D IPv4 IPv6

24 CS 547/490 Network Programming IPv6.PPT/019 State-Less DHCP Services Existing HDCP (State-Full) DHCP Server: DHCP Server Client A A 146.163.147.52 “146.163.147.52” Address Request Server keeps state (table) DHCP Address Pool

25 CS 547/490 Network Programming IPv6.PPT/020 DHCP Server Client A A 146.163.147.52 “146.163.147.52” Address Request Server keeps state (table) State-Less DHCP Services Client does not make a request at the beginning A client generates its own IPv6 address A client makes sure the address is available with a help of routers If the chosen address does not work, then a host talks to IPv6 DHCP server

26 CS 547/490 Network Programming IPv6.PPT/021 State-Less DHCP Services Client A Client BClient C Client D  Generate an IPv6 address from the network address and interface ID  Broadcast the generated IPv6 address within the network  If someone already uses it, the host sends NACK  If no one sends NACK, the host uses it as temporary address  Talk to the gateway router to broadcast the temporary address to all the other routers in the network domain (ACK must be returned)  If no ACK comes back, the joining host talks to IPv6 DHCP server

27 CS 547/490 Network Programming IPv6.PPT/022 State-Less DHCP Services  -A When a router receives a polling message, it broadcasts the address in the network  -B If anyone is not using the address, the router sends ACK to the router  -C If someone already uses it, the router sends NACK  -D If the gateway router receives at least one NACK, it sends NACK to the joining node  -E NACK is not received at all, the gateway router sends ACK to joining node

28 CS 547/490 Network Programming IPv6.PPT/023 Backward Compatibility to IPv4 - Unfortunately, there is no backward compatibility to IPv4 in the protocol implementation IPv4/IPv6 Dual-Protocol Server IPv4-mapped IPv6 addresses IPv4 Tunneling There are some techniques to realize IPv4/IPv6 hybrid: - Source code compatible with minor differences

29 CS 547/490 Network Programming IPv6.PPT/024 IPv4/IPv6 Dual-Protocol Servers During IPv4/IPv6 transition period, servers should be able to work with both IPv4 and IPv6 routers - IPv4-mapped addresses allow a host that supports both IPv4 and IPv6 to communicate with a host (or router) that supports only IPv4 - The IPv4-mapped IPv6 address is based on a unique format

30 CS 547/490 Network Programming IPv6.PPT/025 Class ID Domain Address Host ID 3 24 5 32 bits IPv4 Address IPv4-Mapped IPv6 Addresses “000 … 000” “FFFF” IPv4 Address 80 16 32 128 bits

31 CS 547/490 Network Programming IPv6.PPT/026 IPv4/IPv6 Dual-Protocol Servers Client 1 TCP IPv6 LLC Client 2 TCP IPv4 LLC Server TCP IPv6 LLC IPv4 Network IPv4-mapped IPv6 address Dual-stack node: define in RFC 1933

32 CS 547/490 Network Programming IPv6.PPT/027 IPv4 Addresses IPv6 Addresses IPv4-mapped IPv6 Addresses IPv4-Mapped IPv6 Addresses

33 CS 547/490 Network Programming IPv6.PPT/028 IPv6 Tunneling = IPv6 Router = IPv4 Router Internet Host A Host B Host C

34 CS 547/490 Network Programming IPv6.PPT/029 IPv6 Tunneling = IPv6 Router = IPv4 Router Internet Host A Host B Host C IPv6 Packet

35 CS 547/490 Network Programming IPv6.PPT/030 IPv6 Tunneling = IPv6 Router = IPv4 Router Internet Host A Host B Host C IPv6 Packet IPv4 Packet IPv4 Tunnel 4 6 6 4 6 6

36 CS 547/490 Network Programming IPv6.PPT/027

37 Dual-Stack Internal Server IPv6 host Private LAN F/W External Server Internet CS 547/490 Network Programming IPv6.PPT/027 If your domain is connected to an ISP that does not support IPv6 IPv4-mapped IPv6 address must be used for this IPv6 host The dual-stack internal server can establish an IPv4 tunnel From the public Internet, your IPv6 domain looks like an IPv4 domain!

38 Internet Private LAN F/W External Server IPv6 host Internal Server V4-V6 translator CS 547/490 Network Programming IPv6.PPT/027 If your domain is connected to an ISP that does not support IPv6 Most of your domain is IPv4 (only a few LAN segments in your domain is operated by IPv6) A technique to make a transition from an IPv4 to an IPv6 domain (when IPv6 hosts dominate, this domain uses dual-stack server) IPv6 extended features are available only in the same segment

39 IPv6 host Dual-Stack Internal Server F/W Dual-Stack Private LAN Internet External Server IPv6 over IPv4 tunneling CS 547/490 Network Programming IPv6.PPT/027

40 CS 547/490 Network Programming IPv6.PPT/031 6-Bone 6-bone is a virtual IPv6 network

41 CS 547/490 Network Programming IPv6.PPT/032 6-Bone Many operating systems and routers start adopting IPv6. IPv4 is still the majority A virtual IPv6 Internet constructed by IPv4 tunnel (Something similar to Mbone) Your host (local machine) must support IPv6 You get connected through an 6-Bone access point 6-Bonje is an experimental network established by IETF (Such as Windows XP - you do NOT need IPv6 router)

42 CS 547/490 Network Programming IPv6.PPT/036 IPv6 Programming

43 CS 547/490 Network Programming IPv6.PPT/037 How can we develop network applications using IPv6? IPv6 does not have compatibility to IPv4 in implementation ……. struct sockaddr_in server_addr; ……. server_addr.sin_family = AF_INET; server_addr.sin_len = sizeof (server_addr); ……. IPv4 Address structure IPv6 does have compatibility to IPv4 in source code

44 CS 547/490 Network Programming IPv6.PPT/038 How can we develop network applications using IPv6? ……. struct sockaddr_in6 server_addr; ……. server_addr.sin6_family = AF_INET6; server_addr.sin6_len = sizeof (server_addr); server_addr.sin6_port = PORT# ……. IPv6 Address structure

45 CS 547/490 Network Programming IPv6.PPT/039 How can we develop network applications using IPv6? socket (AF_INET, SOCK_STREAM, 0); Creating a socket (IPv4) Creating a socket (IPv6) socket (AF_INET6, SOCK_STREAM, 0);


Download ppt "Department of Computer Science Southern Illinois University Edwardsville Spring, 2010 Dr. Hiroshi Fujinoki CS 547/490 Network."

Similar presentations


Ads by Google