Chapter 11 Advanced Name and Address Conversion. Introduction gethostbyname, gethostbyaddr: protocol dependent getaddrinfo: –a function providing protocol.

Slides:



Advertisements
Similar presentations
Socket Programming 101 Vivek Ramachandran.
Advertisements

IPv6 Technologies and Advanced Services page 1 Porting applications to IPv6 OpenH323 and IPv6 support K. Stamos Computer Engineer, University of Patras.
Chapter 10 IPv4 and IPv6 Interoperability. contents Introduction IPv4 Client, IPv6 Server IPv6 Client, IPv4 Server IPv6 Address Testing Macros IPV6_ADDRFORM.
CSE 333 – SECTION 8 Networking and sockets. Overview Network Sockets IP addresses and IP address structures in C/C++ DNS – Resolving DNS names Demos.
Programming with UDP – I Covered Subjects: IPv4 Socket Address Structure Byte Ordering Functions Address Access/Conversion Functions Functions: 1.socket()
Netprog Advanced Sockets Programming1 Advanced Sockets Programming Ref: Chapter 7,11,21,22.
Today’s topic: Basic TCP API –Socket –Bind –Listen –Connect –Accept –Read –Write –Close.
Lecture 19 Advanced Sockets Programming CPE 401 / 601 Computer Network Systems slides are modified from Dave Hollinger.
Networks: TCP/IP Socket Calls1 Elementary TCP Sockets Chapter 4 UNIX Network Programming Vol. 1, Second Ed. Stevens.
Elementary TCP Sockets Chapter 4 UNIX Network Programming Vol. 1, Second Ed. Stevens.
#include DatatypeDescription int8_t uint8_t int16_t uint16_t int32_t uint32_t Signed 8-bit integer Unsigned 8-bit integer Signed 16-bit integer Unsigned.
1 Advanced Name and Address Conversions getaddrinfo, getnameinfo, gai_strerror, freeaddrinfo host_serv, tcp_connect, tcp_listen, udp_client, udp_connect,
UNIX Sockets COS 461 Precept 1.
Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 “Tour of.
Basic Socket Programming TCP/IP overview. TCP interface Reference: –UNIX Network Programming, by Richard Stevens. –UNIX man page.
ECE 4110 – Internetwork Programming Client-Server Model.
TCP/IP Protocol Stack IP Device Drivers TCPUDP Application Sockets (Gate to network) TCP: –Establish connection –Maintain connection during the communication.
Elementary TCP Sockets
Socket Programming. Introduction Sockets are a protocol independent method of creating a connection between processes. Sockets can be either – Connection.
Client-Side Network Programming
Class A Addresses The 1 st bit of a class A address is 0 The 1 st byte has a value from (128.x.x.x would not be a class A) 127.x.x.x is reserved.
Elementary Name and Address Conversions
More on Socket API. More on Socket I/O Functions  Scatter read and gather write.
Elementary Name and Address Conversions
Name and Address Conversions Chap 11. Domain Name System  A lookup mechanism for translating objects into other objects  A globally distributed, loosely.
API Extension Discussion for MIF-enabled Hosts IETF#77 Dapeng Liu, Zhen Cao.
Netprog: Advanced Sockets Programming1 Advanced Sockets Programming Ref: Chapter 7,11,21,22.
UNIX Sockets COS 461 Precept 1. Socket and Process Communication The interface that the OS provides to its networking subsystem application layer transport.
Socket Programming Lab 1 1CS Computer Networks.
TELE 402 Lecture 6: Name and address conversions 1 Overview Last Lecture –Socket Options and elementary UDP sockets This Lecture –Name and address conversions.
CSCI 330 UNIX and Network Programming Unit XV: Transmission Control Protocol.
S OCKET P ROGRAMMING IN C Professor: Dr. Shu-Ching Chen TA: HsinYu Ha.
EGEE-III INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks gLite middleware IPv6 compliance (sub-task.
Research and developments Introduction to IPv6 Lana Abadie, Februar 5 th 2008.
Sockets Introduction Socket address structures Value-result arguments
Introduction to Sockets
S OCKET P ROGRAMMING IN C Professor: Dr. Shu-Ching Chen TA: Hsin-Yu Ha.
CSCI 330 UNIX and Network Programming Unit XIV: User Datagram Protocol.
Carnegie Mellon 1 Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition Network Programming: Part I : Introduction to.
API Extension Discussion for MIF-enabled Hosts IETF#77 Dapeng Liu, Zhen Cao.
1 Socket Interface. 2 Basic Sockets API Review Socket Library TCPUDP IP EthernetPPP ARP DHCP, Mail, WWW, TELNET, FTP... Network cardCom Layer 4 / Transport.
CSE 333 – SECTION 8 Client-Side Network Programming.
Name and Address Conversions
Network Programming: Part I
UNIX Sockets COS 461 Precept 1.
Network Programming: Part I : Introduction to Computer Systems 21st Lecture, March 31, 2016 Instructors: Seth Copen Goldstein, Franz Franchetti,
Chapter 10 IPv4 and IPv6 Interoperability
Internet Address Routines
CS 105 “Tour of the Black Holes of Computing”
Class A Addresses The 1st bit of a class A address is 0
Socket Programming in C
Name and Address Conversions Part I
Client-side Networking CSE 333 Spring 2018
תקשורת ומחשוב תרגול 3-5 סוקטים ב-C.
Advanced Network Programming spring 2007
Advanced Sockets Programming
Chapter 11 Name and Address Conversions (Part II)
Network Programming: Part II CSCI 380: Operating Systems Lecture #13
CIS5930 Internet Computing
IP Addresses, DNS CSE 333 Spring 2018
IP Addresses, DNS CSE 333 Summer 2018
Client-side Networking CSE 333 Summer 2018
IP Addresses, DNS CSE 333 Autumn 2018
Network Programming: Part I CSCI 380: Operating Systems
Client-side Networking CSE 333 Autumn 2018
Network Programming: Part II CSCI 380: Operating Systems
IP Addresses, DNS CSE 333 Winter 2019
Client-side Networking CSE 333 Winter 2019
Today’s topic: Basic TCP API
Client-side Networking CSE 333 Spring 2019
Presentation transcript:

Chapter 11 Advanced Name and Address Conversion

Introduction gethostbyname, gethostbyaddr: protocol dependent getaddrinfo: –a function providing protocol independence for appications –get a member of socket address structure getnameinfo

getaddrinfo Function #include int getaddrinfo(const addr *hostname, const char *service, const struct addrinfo *hints, struct addrinfo **result); returns : 0 if OK, nonzero on error struct info { int ai_flags; // AI_PASSIVE, AI_CANONNAME int ai_family; // AF_XXX int ai_socktype; // SOCK_XXX int ai_protocol; // 0 or IPPROTO_xxx for IPv4 and IPv6 size_t ai_addrlen; // length of ai_addr char *ai_canonname; // ptr to cannonical name for host struct sockaddr *ai_addr; // ptr to socket address structure struct addrinfo *ai_next; // ptr to next structure in linked list };

hostname: – a hostname or an address string(dotted-decimal for IPv4 or a hex string for IPv6) service –a service name or a decimal port number string hints –a null pointer or a pointer to an addrinfo structure that the caller fills in ai_flags: AI_PASSSIVE, AI_CANONNAME ai_family (an AF_xxx value) ai_socktype (a SOCK_xxx value ai_protocol

Result –a pointer to a linked list of addrinfo structures –four addrinfo structures for hint: null, two IP address first IP address, SOCK_STREAM first IP address, SOCK_DGRAM second IP address, SOCK_STREAM second IP address, SOCK_DGRAM see Figure 11.1

gai_strerror function #include char *gai_strerror(int error); returns: pointer to string describing error message

freeaddrinfo function #include void freeaddrinfo(struct addrinfo *ai)

getaddrinfo Function: IPv6 and unix Domain

getaddrinfo Function:Examples testga –f inet: the address family –c : the canonical name –h bsdi: the hostname –s domain: the service name

Testga -f inet -t stream -h gateway.tuc.noao.edu -s daytime (-t socktype, -s service name) testga -h alpha -s ftp testga -p -s 8888 (-p AI_PASSIVE) testga -c -p -h /local -s /tmp/test.1

host_serv function

>daytimetcpcli bsdi daytime connected to Fri May 30 12:33: >daytimetcpcli aix daytime

tcp_listen function #include “unp.h” int tcp_listen(const char *hostname, const char *service, socklen_t *lenptr); -create a TCP socket, bind the server’s well-known port -allow incoming connection requests to be accepted

Udp_client function unconnected UDP #include “unp.h” int udp_client(const char *hostname, const char *service, void **saptr, socklen_t *lenp);

udp_connect function #include “unp.h” int udp_connect(const char *hostname, const char *service); udp_server function #include “unp.h” int udp_server(const char *hostname, const char *service, socklen_t *lenptr);

getnameinfo function Takes a socket address and returns a character string describing the host and another character nstring describing the service #include int getnameinfo(const struct sockaddr *sockaddr, socklen_t addrlen, char *host, size_t hostlen, char *serv, size_t servlen, int flags);