Sunday, August 23, 2009

RFC - 2131 DHCP

The Dynamic Host Configuration Protocol, DHCP, is the mechanism by witch configuration parameters are provided to Internet hosts. DHCP is comprised of two components, one protocol for handing out configuration settings from a DHCP server and a second part which allocates network addresses to hosts. DHCP follow a client-server model, which means a network contains a server which acts as the DHCP which allocates the addresses and configuration parameters sent to hosts.

DHCP has three mechanisms of allocating addresses, automatic allocation, dynamic allocation and manual allocation. With automatic allocation, the DHCP server leases an IP address to a client for a set amount of time, by which the client must request a renewal. With dynamic allocation, a DHCP server assigns an IP to a client and when the client is done with it, the IP goes back into the address pool and is available to be assigned to another client. Dynamic allocation is useful in a network environment where clients are temporarily connected to the network or there are a limited number of IPs assigned to the network for allocation. With manual allocation, an IP is permanently assigned to a client by a network administrator and the DHCP server's role is simply to convey this assignment. This kind of IP assignment is also known as a "static IP."

The Dynamic Host Configuration Protocol uses the format of BOOTP and according to Droms, R. (1997), "The format of DHCP messages is based on the format of BOOTP messages, to capture the BOOTP relay agent behavior described as part of the BOOTP specification [7, 21] and to allow interoperability of existing BOOTP clients with DHCP servers. Using BOOTP relay agents eliminates the necessity of having a DHCP server on each physical network segment. "



Below, is an image representing the DHCP Message Format, created by Tanenbaum, A. (2003):


The above illustrates the Dynamic Host Configuration Protocol Messgage, which consists of a 1 bit Op field that tells the type of op code, a bootrequest or a bootreply. It consists of an Htype field that gives the hardware address type. It has a Hlen field th gives the hardware address length. It contains a Hops field which a client sets to zero and is used by relay agents when booting by way of a relay agent. It has a Xid field which represents the transaction ID and is used to aid the client and server to associate messages and responses. The DHCP message also has a Secs field that represents the elapsed seconds since the client began an address aquisition or address renewal operation. A flags field also exists which enables the broadcast flag. Also contained in the message is the Ciaddr field which contains the Client IP address, the Yiaddr Your IP address, the siaddr field which contains the IP address of the next serv to use in bootstrap, the Giaddr which contains the relay agent's IP address, and the Chaddr which contains the clients's hardware address. The DHCP message, also contains the Sname which is an optional server host name and a File field which contains the boot file name, and an Options field which allow for servers and clients to select DHCP related options.



REFERENCES


Tanenbaum, A. (2003) Computer Networks (fourth edition). Prentice Hall. Upper Saddle River, NJ, 2003.

Droms, R. (1997, March). Dynamic Host Configuration Protocol. RFC 2131. Bucknell University.

RFC- 793 TCP

Published in September, 1981, RFC 793 specifies the Standard Transmission Control Protocol, IP, laid out by the Department of Defense, DOD. According to Postel, 1981, the "document is based on nine earlier editions of the ARPA Transport Control Protocol Specification." RFC 793, according to Postel, 1981, "clarifies several details and removes the end-of-letter buffer-size adjustments and redescribes the letter mechanism as a push function.”

Transport Control Protocol, TCP, is used for reliable end-to-end transport of data between endpoints on packet-switched networks.
TCP is a connection-oriented protocol and is designed to support multi-network applications. On one side, TCP connects to user or application processes. On the other side, TCP connects to the Internet Protocol. The process side interface provide calls to open and close connection and to send and receive data. TCP's IP is unspecified. It is assumed that there exist mechanisms that all the two protocols to pass information between them. The aforementioned mechanisms are assumed to be provided by the Internet Protocol.


The Transport Control Protocol provides the following services:
Basic Data Transfer - provided between end-points and also provides for a push function which allows the sender to "push" all the octets to be sure that all data has arrived up to that point.

Reliability -
provided so that system can recover from damaged data. It achieves this through numbering each octet of data and requiring the receiver to verify its receipt. The numbering system also enables the receiver to place the octets in proper order. Damage is also handled through a checksum checked by the receiver, who discards damaged octets.

Flow Control - provided so that the receiver and can control the amount of data sent by the sender. This is accomplished by the receiver sending back a number with the acknowledgement of how many more octets the sender can send until told by the receiver again.

Multiplexing - provides the concept of sockets, which allow multiple processes on a host machine to use a connection.

Connections - provided to ensure TCP's reliability, ensures that a connection is created and maintain between to endpoints.

Precedence and Security -
provided so that users can indicate the level of security and precedence of their communications.

Provided by Sinha, S. 1998, below is an image of the TCP packet header:

As can be seen from above diagram, the Transport Control Protocol's 20 byte header provides 16-bit source port number, 16-bit destination port number, 32-bit sequence number, 32 bit acknowledgment number, 4-bit header length, 6-bit reserved, 6-bit flags field, 16-bit window size, 16-bit TCP checksum, 16-bit urgent pointer fields. The 6-bit flags field support Syn & Fin to establish and end connections, ACK to let receive know to acknowledge receipt, URG to signify urgent data is carried within, PUSH to let system know that the sender has invoked the push function, and RESET to let the sender know that the receiver is confused and wants to end the connection.

Provided by Sinha S. 1998, below is an diagram of a typical TCP connection between to end-points:




As can be seen from the above image, TCP is connection oriented and provides a reliable connection between two end-points.

align="center">REFERENCES


Sinha, S. (1998). A TCP Tutorial. Retrieved August 19, 2009, from http://www.ssfnet.org/Exchange/tcp/tcpTutorialNotes.html

Postel, J. (1981, September). Internet Control Message Protocol - DARPA Internet Program Protocol Specification. RFC 793. University of Southern California/Information Sciences Institute.



RFC 791 - IP

Published in September, 1981, RFC 791 specifies the Standard Internet Protocol, IP, laid out by the Department of Defense, DOD. According to Postel, 1981, the "document is based on six earlier editions of the ARPA Internet Protocol Specification." RFC 791, according to Postel, 1981, "revises the addressing, error handling, option codes, and the security, precedence, compartments, and handling restriction features of the internet protocol.”

The Internet Protocol has been designed to be used for intercommunication of data blocks called datagrams within a packet-switched network. The protocol enables the splitting apart and reassembly of long datagrams, to allow fro transmission on networks that only have the ability to transmit small packets of data. The Internet Protocol does not provide the services of error control, flow control, or sequencing. It relies on the supporting networks to provide these services. The protocol is called on by protocols such as TCP and UDP to send their packets. Their packets provide the source and destination information that IP wraps and creates the datagram to be sent over the network through the local network interface.

The internet protocol provides two basic functions, addressing and fragmentation. The address fields in the header of the datagram are use to direct the datagram to its destination. IP is concerned with addresses, it is up to higher level protocols to map names to addresses and it is up to lower level procedures to map local net addresses to routes. There are also fields in the header which are used to break the data into smaller sections and reassemble the sections when they arrive at the destination. The fragmentation field can specify "don't fragment." If the datagram can not be delivered without fragmenting than it is discarded. The purpose of fragmentation is to allow a datagram to cross "small packet" networks when traveling to its destination. The identification field is used by a receiving network to reassemble a datagram; this field is a number sequence in the number of fragments of the datagram. When the receiver has all fragments it can then reassemble the datagram based on the identification field.

The Internet Protocol provides for four key mechanisms, type of service, time to live, options, and header checksum, to provide is services. Type of Service is used to let the network know the type of service required for the data. The network uses this information in order to decide the route the data will take to its destination. Time to Live is a value set by the sender that determines how long, or through how many hops the data should take to be delivered. If delivery is not achieved by this time, the datagram is destroyed. The Options mechanism provide for datagram timestamps, security, and special routing. The Header Checksum provides for checking the header for errors, if errors are detected, then the detecting party deletes the datagram.

The Internet Protocol of course has a specifically formatted header as shown in the diagram from Kozierok, 2005:





References

Kozierok, C. (2005). The TCP/IP Guide. Retrieved August 19, 2009, from http://www.tcpipguide.com

Postel, J. (1981, September). Internet Control Message Protocol - DARPA Internet Program Protocol Specification. RFC 791. University of Southern California/Information Sciences Institute.

First Post

The first post of my blog, required for Network Architecture class I'm taking at Strayer University.