Modern Network Programming Application SHOULD support BOTH IPv6 and IPv4 Same source / binary should run on various configurations / envirionments Some may not have IPv6 stack Some may have IPv6 stack but no connectivity Eventually, some may no have IPv4 stack Modern programming style helps us getaddrinfo(), getnameinfo(), getifaddrs() clean, generic and abstract interface Independent from protocols Easier to support more protocols Less knowledge on protocols