IP Version 6
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
![]()
Daytime Servers and Clients
Ø Server IPv4: s4u
Ø Server IPv6: s6u
Ø Client IPv4: c4u
Ø Client IPv6: c6u
Examples of possible
scenarios:
Similar to TCP
above
![]()
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
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