Compiled by: Jayakumar BalasubramanianWeb: http://www.jwritings.com
Email: [email protected]
Introduction to IPThe concept of ‘unreliability’Datagram delivery from source to
destinationCreates a ‘virtual path’ and forms the basis
of packet switchingTakes the optimal/shortest pathLearn the network topology and perform
‘routing’ functionalityIndependent of data link layer technology
Recap of addressing
The IP addressLogical address32 bit lengthIP address parts:
Network partHost part
Multiple classesClass AClass BClass CSpecial class
The ‘heart’ of routing
Subnet maskThe subnet mask is
used to get the network portion of the IP address.
This is basically achieved by performing logical AND.
By looking into the subnet mask we can determine the class of the IP address.
The concept of ‘subnetting’
Example
The concept of ‘routing’
Some more conceptsRoute types:
Network specific routeHost specific routeDefault route
Type of protocolsRouting protocols (Ex) OSPF,
BGPRouted protocols (Ex) TCP,
DNS, SNMP
Data link layer Maximum Transfer Unit
(MTU)Segmentation and re-
assembly (SAR)
Special class of IP addressesBroadcast AddressMulticast AddressLoop back Address
The concept of MulticastingHave you used Yahoo/Google groups?Instead of sending a separate copy of the
data for each recipient, the source ends the data only once.
Unicast does mass mailings; Multicast does chain letters.
Advantages: Cost-efficient Timely distribution of data Reduces WAN traffic
Multicast IP addressesThe IP address belongs to ‘Class D’Ranges from 224.0.0.0 to 239.255.255.255Each address corresponds to a particular
group/pre-defined protocol.224.0.0.1 is for “All-hosts-in-LAN”
Sockets and multicasting optionsThe ‘setsockopt’ API:
setsockopt (int sockFd, int level, int optname, const void* optval, socklen_t optlen);
level : IPPROTO_IP opt-name: IP_ADD_MEMBERSHIP IP_DROP_MEMBERSHIP
struct ip_mreqstruct ip_mreq{ struct in_addr imr_multiaddr; struct in_addr imr_interface;};
The ‘xinetd’ daemonThe ‘xinetd’ is a replacement for ‘inetd’, the
internet services daemon.Each internet services are categorized based
on port number.The daemons in Linux are started when the
system is booting up. Basically all standard servers (Telnet, FTP, SSH, etc..) are started in the similar way.
Our idea is to make our server program as a daemon and try out some things.
Some basicsThe syntax of ‘select()’ and brush up.Standard socket descriptors: STDIN and
STDOUT.Linux specific:
• The /etc directory• The *.conf files in Linux
The /etc/services fileDefines the sockets and protocols used for
Internet services. Each service is listed on a single line
corresponding to the form:Syntax:ServiceName PortNumber/ProtocolName Aliases
ServiceName - Specifies an official Internet service PortNumber - Specifies the socket port number user ProtocolName - Specifies the transport protocol used Aliases - Specifies a list of unofficial service names.
Example echo 7/tcp echo 7/udp discard 9/tcp
sink null discard 9/udp sink null daytime 13/tcp
daytime 13/udp chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp 21/tcp time 37/tcp timeserver
The /etc/xinetd.conf filexinetd.conf is the configuration file that
determines the services provided by xinetd. Any line whose first non-white-space
character is a '#' is considered a comment line. Empty lines are ignored.
Each entry defines a service identified by the service_name.
This is where the service specific details are provided.
Syntax and Exampleservice <service_name> {
<attribute> <assign_op> <value> <value> ... ...
}
service SMTP { socket type = streamprotocol = tcpwait = nouser = mailserver = /usr/sbin/exim
}
Inside your programImportant points:
Use ‘select’ and STDIN combination for receiving client requests.
Use STDOUT for sending the data out to clients.
Restarting the ‘xinetd’
/etc/init.d/xinetd restart
Web : http://www.jwritings.comEmail: [email protected]
Top Related