IP Version 6

 

 

Ø     Overview & Concepts

Ø     TCP Unicast Examples

Ø     UDP Unicast Examples

Ø     Sctp Examples

Ø     Multicast Example

 

 

 

 



Ø   TCP Unicast Examples

 

Daytime Servers and Clients

 

Ø  Server IPv4:  s4

Ø  Server IPv6:  s6

Ø  Client IPv4:  c4

Ø  Client IPv6:  c6

 

Examples of possible  scenarios:

 

% cd /home/cs779/stevens3rd.book/unpv13e/intro

 

Use tcpdump to observe the exchanged messages:

%  sudo tcpdump -N -t | grep 1313

 

Run server on host something (IPv4: 128.82.4.210  & IPv6: fe80::203:baff:fe2a:67ff )

 

% s4 &
% c4   128.82.4.210

% c6  fe80::203:baff:fe2a:67ff

    connect error: Connection refused
% c6    ::ffff:128.82.4.210

 

 

% s6 &
% c4   128.82.4.210

% c6    fe80::203:baff:fe2a:67ff
% c6    ::ffff:128.82.4.210

 

In general:

For IPv6 client to talk to IPv4 server it should use:

 ::ffff:ip4

 

 

 



Ø   UDP Unicast Examples

 

Daytime Servers and Clients

 

Ø  Server IPv4:  s4u

Ø  Server IPv6:  s6u

Ø  Client IPv4:   c4u

Ø  Client IPv6:   c6u

 

Examples of possible  scenarios:

Similar to TCP above



Ø   Sctp Examples

 

Daytime Servers and Clients

 

Ø  Server IPv4 Stream:  DayTimeServer4SctpS

Ø  Server IPv6 Stream:  DayTimeServer6SctpS

Ø  Client IPv4 Stream:  DayTimeClient4SctpS

Ø  Client IPv6 Stream:  DayTimeClient6SctpS

Ø  Server IPv4 Sequence  Packet:  DayTimeServer4SctpQ

Ø  Server IPv6 Sequence  Packet:  DayTimeServer6SctpQ

Ø  Client IPv4 Sequence  Packet:   DayTimeClient4SctpQ

Ø  Client IPv6 Sequence  Packet:   DayTimeClient6SctpQ

 

Examples of possible  scenarios

 

(match 4 servers & 4 clients): 16 cases

 

 

 

 


Ø   Multicast Example

  mcast6

IPv6 multicast addresses starts with ff.

Example: " ff80::203:baff:fe2a:6722"

Also you can use IPv4-mapped IPv6 addresses: ::ffff:224..1.1.22 

 

    s = socket(AF_INET6,SOCK_DGRAM, 0);

 

    joinGroup(s,” ::ffff:224..1.1.22 ”);

 

 

 

void joinGroup(int s, char *group)

{

  struct sockaddr_in6 groupStruct;

  struct ipv6_mreq mreq; 

 

  inet_pton(AF_INET6, group, &groupStruct.sin6_addr);

    

 

  mreq.ipv6mr_multiaddr = groupStruct.sin6_addr;

  mreq.ipv6mr_interface = INADDR_ANY;

 

  setsockopt(s,IPPROTO_IPV6,IPV6_ADD_MEMBERSHIP,(char *) &mreq, sizeof(mreq));

 

}

 

 

 

Example:

 

% cd   /home/cs779/public_html/mcast/mcast6

 

    % mchat  0

 


% cd   /home/cs779/public_html/mcast/mcast4

 

    % mchat  0