Network Fundamentals: DHCP, Subnetting, and Transport Protocols
Classified in Computers
Written on in English with a size of 10.25 KB
Dynamic Host Configuration Protocol (DHCP) Servers
What is a DHCP Server?
A DHCP Server is a network server that automatically provides and assigns IP addresses, default gateways, and other network parameters to client devices. It relies on the standard protocol known as Dynamic Host Configuration Protocol (DHCP) to respond to broadcast queries by clients.
Benefits of DHCP
A DHCP server automatically sends the required network parameters for clients to properly communicate on the network. Without it, the network administrator has to manually set up every client that joins the network, which can be cumbersome, especially in large networks. DHCP servers usually assign each client with a unique dynamic IP address, which changes when the client’s lease for that IP address has expired.
Understanding Subnetting and Network Segmentation
Challenges of Large Broadcast Domains
A large broadcast domain is a network that connects many hosts. A problem with a large broadcast domain is that these hosts can generate excessive broadcasts and negatively affect the network. This can lead to:
- Slow network operations due to the significant amount of traffic it can cause.
- Slow device operations because a device must accept and process each broadcast packet.
Subnetting as a Solution
The solution is to reduce the size of the network to create smaller broadcast domains in a process called subnetting. These smaller network spaces are called subnets. Subnetting reduces overall network traffic and improves network performance. It also enables an administrator to implement security policies, such as which subnets are allowed or not allowed to communicate together.
There are various ways of using subnets to help manage network devices, including by:
- Location, such as floors in a building
- Organizational unit
- Device type
- Any other division that makes sense for the network
Variable Length Subnet Mask (VLSM)
Subnetting a subnet, or using Variable Length Subnet Mask (VLSM), was designed to avoid wasting addresses. In all of the previous examples of subnetting, notice that the same subnet mask was applied for all the subnets. This means that each subnet has the same number of available host addresses. Traditional subnetting creates subnets of equal size, with each subnet using the same subnet mask.
VLSM allows a network space to be divided into unequal parts. With VLSM, the subnet mask will vary depending on how many bits have been borrowed for a particular subnet, thus the “variable” part of the VLSM.
The Transport Layer: TCP and UDP Protocols
Transport Layer Responsibilities
The transport layer is responsible for establishing a temporary communication session between two applications and delivering data between them. An application generates data that is sent from an application on a source host to an application on a destination host. This is without regard to the destination host type, the type of media over which the data must travel, the path taken by the data, the congestion on a link, or the size of the network.
Key responsibilities of the transport layer include:
- Tracking Individual Conversations: At the transport layer, each set of data flowing between a source application and a destination application is known as a conversation. A host may have multiple applications communicating across the network simultaneously. Each of these applications communicates with one or more applications on one or more remote hosts. It is the responsibility of the transport layer to maintain and track these multiple conversations.
- Segmenting Data and Reassembling Segments: Data must be prepared to be sent across the media in manageable pieces. Most networks have a limitation on the amount of data that can be included in a single packet. Transport layer protocols have services that segment the application data into blocks of an appropriate size. This service includes the encapsulation required on each piece of data. A header, used for reassembly, is added to each block of data to track the data stream.
- Identifying the Applications: To pass data streams to the proper applications, the transport layer must identify the target application. To accomplish this, the transport layer assigns each application an identifier called a port number. Each software process that needs to access the network is assigned a port number unique to that host.
Multiplexing divides the data into smaller segments and enables communications from many different users to be interleaved (multiplexed) on the same network.
TCP/IP Transport Protocols
TCP/IP provides two transport layer protocols: Transmission Control Protocol (TCP) and User Datagram Protocol (UDP). IP uses these transport protocols to enable hosts to communicate and transfer data.
Transmission Control Protocol (TCP)
TCP is considered a reliable, full-featured transport layer protocol, which ensures that all of the data arrives at the destination. However, this requires additional fields in the TCP header, which increases the size of the packet and also increases delay.
TCP transport is analogous to sending packages that are tracked from source to destination. If a shipping order is broken up into several packages, a customer can check online to see the order of the delivery. With TCP, there are three basic operations of reliability:
- Numbering and tracking data segments transmitted to a specific host from a specific application
- Acknowledging received data
- Retransmitting any unacknowledged data after a certain period of time
TCP Use Cases
For example, applications such as databases, web browsers, and email clients require that all data sent arrives at the destination in its original condition. Any missing data could cause a corrupt communication that is either incomplete or unreadable. These applications are designed to use TCP.
TCP: Connection-Oriented and Stateful
TCP is a connection-oriented protocol. A connection-oriented protocol negotiates and establishes a virtual connection (or session) between source and destination devices prior to forwarding any traffic. Through session establishment, the devices negotiate the amount of traffic that can be forwarded at a given time, and the communication data between the two can be closely managed. Key aspects include:
- Reliable delivery
- Same order delivery
- Flow control
TCP is a stateful protocol. A stateful protocol keeps track of the state of the communication session. To track the state of a session, TCP records which information it has sent and which information has been acknowledged. The stateful session begins with session establishment and ends when closed with session termination.
User Datagram Protocol (UDP)
In contrast, UDP is a simpler transport layer protocol that does not provide for reliability. It therefore has fewer fields and is faster than TCP.
Whereas the TCP reliability functions provide more robust communication between applications, they also incur additional overhead and possible delays in transmission. There is a trade-off between the value of reliability and the burden it places on network resources. Adding overhead to ensure reliability for some applications could reduce the usefulness of the application and can even be detrimental. In such cases, UDP is a better transport protocol.
UDP provides the basic functions for delivering data segments between the appropriate applications, with very little overhead and data checking. UDP is known as a best-effort delivery protocol. In the context of networking, best-effort delivery is referred to as unreliable because there is no acknowledgment that the data is received at the destination. With UDP, there are no transport layer processes that inform the sender of a successful delivery. UDP is similar to placing a regular, non-registered letter in the mail. The sender of the letter is not aware of the availability of the receiver to receive the letter, nor is the post office responsible for tracking the letter or informing the sender if the letter does not arrive at the final destination.
UDP Use Cases
In other cases, an application can tolerate some data loss during transmission over the network, but delays in transmission are unacceptable. UDP is the better choice for these applications because less network overhead is required. UDP is preferable for applications such as streaming live audio, live video, and Voice over IP (VoIP). Acknowledgments and retransmission would slow down delivery. For example, if one or two segments of a live video stream fail to arrive, it creates a momentary disruption in the stream. This may appear as distortion in the image or sound, but may not be noticeable to the user. If the destination device had to account for lost data, the stream could be delayed while waiting for retransmissions, therefore causing the image or sound to be greatly degraded. In this case, it is better to render the best media possible with the segments received, and forego reliability.
UDP: Stateless Protocol
UDP is a stateless protocol, meaning neither the client nor the server is obligated to keep track of the state of the communication session. If reliability is required when using UDP as the transport protocol, it must be handled by the application.
Sockets: Source and Destination Identification
The source and destination ports are placed within the segment. The segments are then encapsulated within an IP packet. The IP packet contains the IP address of the source and destination. The combination of the source IP address and source port number, or the destination IP address and destination port number, is known as a socket. The socket is used to identify the server and service being requested by the client.