Unit 1
Unit 1
Hosts (A & B): Use all five layers to send and receive data.
Switches: Only work at data-link and physical layers.
Router: Uses network, data-link, and physical layers and handles IP
packet forwarding.
OSI Model
•The Open Systems Interconnection (OSI) model is a
conceptual framework that standardizes the functions
of a telecommunication or computing system into
seven distinct layers.
•It was developed by the International Organization for
Standardization (ISO) to enable interoperability
between different network devices and technologies.
•Unlike TCP/IP, which is a specific protocol suite used on
the Internet, the OSI model serves as a reference
model to guide the design and understanding of
network architectures.
The OSI model is a layered framework for the design of
network systems that allows communication between
all types of computer systems. It consists of seven
separate but related layers, each of which defines a
part of the process of moving information across a
network (shown in Fig).
The Seven Layers of the OSI Model
Each layer in the OSI model has a specific function, and together,
they ensure reliable communication between devices.
1. Physical Layer (Layer 1)
Deals with the physical connection between devices.
Concerned with hardware components, such as cables, switches,
and network interface cards.
Defines electrical signals, bit transmission, and data rates.
2. Data Link Layer (Layer 2)
Responsible for node-to-node data transfer.
Detects and corrects errors that may occur at the physical layer.
Uses MAC (Media Access Control) addresses to identify devices in a
local network.
Examples: Ethernet, Wi-Fi (IEEE 802.11).
3. Network Layer (Layer 3)
Handles routing and logical addressing (e.g., IP addresses).
Determines the best path for data transmission between different
networks.
Example protocols: IPv4, IPv6, ICMP.
4. Transport Layer (Layer 4)
Ensures end-to-end communication between devices.
Provides error recovery and flow control.
Can be connection-oriented (TCP) or connectionless (UDP).
Example protocols: TCP, UDP.
5. Session Layer (Layer 5)
Manages session establishment, maintenance, and termination
between applications.
Ensures a continuous exchange of data.
Example protocols: NetBIOS, RPC (Remote Procedure Call).
6. Presentation Layer (Layer 6)
Translates data into a format that can be understood
by applications.
Handles encryption, compression, and encoding.
Example formats: JPEG, MP3, ASCII, SSL/TLS.
7. Application Layer (Layer 7)
The closest layer to the user.
Provides network services directly to applications.
Example protocols: HTTP, FTP, SMTP, DNS.
OSI versus TCP/IP
1. TCP/IP Was Already Established
By the time the OSI model was completed, TCP/IP was
already widely implemented and had proven to be
effective and reliable.
The Internet was already running on TCP/IP, and a
significant amount of time, money, and resources had
been invested in its infrastructure.
Transitioning to OSI would have required a complete
overhaul of existing systems, which was not practical
or cost-effective.
2. Some OSI Layers Were Not Fully Defined
While the OSI model outlined the functions of
each of its seven layers, some layers lacked
concrete protocols.
The Presentation Layer (Layer 6) and Session
Layer (Layer 5) were particularly
underdeveloped.
Their roles were described in theory, but no
widely accepted protocols were created to
implement them.
As a result, developers and organizations
continued using existing TCP/IP-based
solutions rather than adopting the OSI model.
3. OSI Did Not Show Better Performance
When organizations tried implementing OSI-
based protocols in real-world applications,
they did not perform better than TCP/IP.
TCP/IP was simpler, faster, and more
efficient, especially for Internet
communication.
The OSI model was seen as too complex and
slow, making it unattractive for widespread
adoption.
Application-Layer Paradigms
Two main communication paradigms used by application programs on the Internet..,
1. Client-Server Paradigm
In this model, there are two distinct roles:
Client: Requests a service (e.g., a web browser requesting a webpage).
Server: Provides the requested service (e.g., a web server hosting a website).
The server is usually a powerful machine that remains online, waiting for requests.
The client initiates the communication, and the server responds.
Examples:
A web browser (client) requests data from a web server.
An email client fetches emails from a mail server.
2. Peer-to-Peer (P2P) Paradigm
In this model, each computer (or "peer") can act as both a client and a server.
Peers communicate directly without relying on a centralized server.
More decentralized and scalable compared to client-server models.
Examples:
File-sharing applications like BitTorrent.
Blockchain networks (e.g., Bitcoin).
Both paradigms help structure how applications interact over the Internet.
Some systems even combine both models (e.g., hybrid P2P networks with
central directories).
Application Layer Protocols
Application layer protocols are a set of communication rules that operate at the
application layer of the OSI and TCP/IP models. These protocols define how
applications interact over a network to exchange data. They enable user-level
applications to communicate with remote services.
HTTP (Hypertext Transfer Protocol) – Used for web browsing.
HTTPS (HTTP Secure) – Secure version of HTTP using SSL/TLS encryption.
FTP (File Transfer Protocol) – Transfers files between computers.
SMTP (Simple Mail Transfer Protocol) – Sends emails.
POP3 (Post Office Protocol v3) – Retrieves emails from a mail server.
IMAP (Internet Message Access Protocol) – Retrieves and manages emails on a
remote server.
DNS (Domain Name System) – Resolves domain names to IP addresses.
DHCP (Dynamic Host Configuration Protocol) – Assigns IP addresses dynamically.
Telnet – Provides remote command-line access (insecure).
SSH (Secure Shell) – Secure alternative to Telnet for remote access.
SNMP (Simple Network Management Protocol) – Manages network devices.
NTP (Network Time Protocol) – Synchronizes system clocks.
MQTT (Message Queuing Telemetry Transport) – Used in IoT communication.
HyperText Transfer Protocol (HTTP)
•The HyperText Transfer Protocol (HTTP) is the foundation of data
communication on the web. It defines how web pages are requested by a client
(like a browser) and served by a web server.
•The client (browser) sends an HTTP request.
•The server (website’s host) processes the request and sends back a response.
•The server operates on port 80, while the client uses a temporary port.
•HTTP relies on TCP (Transmission Control Protocol), which ensures reliable
data transmission.
•Since TCP is connection-oriented, a connection must be established before
data transfer and terminated after the transaction.
Nonpersistent vs. Persistent Connections
Web pages often contain multiple elements (like images, stylesheets, and
scripts). When a browser requests a webpage, it may need to fetch multiple
objects, either from the same or different servers.
Nonpersistent Connections
Every request/response requires a new TCP connection.
Once the server sends the response, the connection is closed immediately.
If a webpage has N linked objects, then N+1 connections must be opened and
closed.
Steps in Nonpersistent Connection:
The client opens a new TCP connection to the server and sends a
request.
The server processes the request, sends the response, and then
closes the connection.
The client reads the data until the end-of-file marker and then
closes its end of the connection.
Disadvantages of Nonpersistent Connections:
High Overhead: Every request requires a new TCP connection,
increasing server workload.
Increased Latency: The time taken to establish and close multiple
connections slows down webpage loading.
Resource Consumption: The server needs multiple buffers to
manage each connection separately.
Fig : Nonpersistent Connection
Three-Way Handshake for Connection Establishment:
•Each request requires a new TCP connection, which involves the
three-way handshake:
•First handshake: Client sends a SYN (synchronize) request to
initiate a connection.
•Second handshake: Server responds with SYN-ACK (synchronize-
acknowledge).
•Third handshake: Client acknowledges with ACK and sends the
HTTP request.
Retrieving the First Object (File):
•The client establishes a TCP connection with the server.
•After the handshake, the client sends an HTTP request for a file.
•The server processes the request and sends back the response.
•Once the file transfer is complete, the connection is closed.
Retrieving the Second Object (Image):
•The client needs to fetch an image, but since HTTP uses
nonpersistent connections, a new TCP connection must be
established.
•The same three-way handshake process repeats.
•After the handshake, the client requests the image, and the
server responds.
•Once the image transfer is complete, the connection is closed
again.
Persistent Connections (Introduced in HTTP 1.1)
•A single TCP connection is used to fetch multiple objects from
the same server.
•This reduces overhead and speeds up data transfer.
•Persistent connections remain open until explicitly closed by the
client or server.
•In HTTP/1.1, persistent connections are enabled by default. This
means that once a client establishes a connection with a server, it
can send multiple requests over the same connection without
needing to reopen it for each request. This improves efficiency by
reducing the overhead associated with repeatedly establishing
and closing connections.
Advantages of Persistent Connections:
Faster webpage loading: Reduces the time taken for multiple TCP
handshakes.
Less server workload: The server does not need to keep opening
and closing multiple connections.
HTTP Message Formats
HTTP messages consist of two main types:
1.Request Messages (sent by the client)
2.Response Messages (sent by the server)
Both message types share a similar structure, composed of four
sections:
1. Request Message Format:
A request message is used by the client to ask for a resource from
the server. It consists of:
•Request Line: Specifies the HTTP method (e.g., GET, POST), the
resource path, and the HTTP version.
•Header Fields: Contains additional information such as Host, User-
Agent, Accept, etc.
•Blank Line: Separates the headers from the body.
•Body (Optional): Contains data for methods like POST or PUT
2. Response Message Format:
A response message is sent by the server to provide the requested resource
or an error message. It consists of:
•Status Line: Contains the HTTP version, status code (e.g., 200 OK, 404 Not
Found), and a reason phrase.
•Header Fields: Provides metadata such as Content-Type, Content-Length,
etc.
•Blank Line: Separates the headers from the body.
•Body: Contains the actual content being sent.
Comparison of Request and Response Messages:
Web Caching: Proxy Server
A proxy server is an intermediary between the client and the web server. It
helps improve performance, security, and control over web traffic by caching
responses and reducing the load on the original server.
How a Proxy Server Works
The HTTP client (browser) sends a request to the proxy server instead of the
target web server.
The proxy server checks its cache to see if it already has a stored response for
that request.
Cache Hit: If the response exists in the cache, the proxy server directly
returns it to the client, acting as a server.
Cache Miss: If the response is not found, the proxy server forwards the
request to the original server, acting as a client.
Once the proxy server receives the response from the original server, it stores it
in the cache for future requests.
Proxy Server as Both Server and Client
A proxy server functions in two roles:
As a server: When it provides a cached response to a client.
As a client: When it forwards a request to the original server because the
response is not in its cache.
Proxy Server Locations
Proxy servers can be deployed at different levels to maximize efficiency:
Client-Side Proxy: A single computer can store frequently accessed responses locally.
LAN Proxy (Corporate Proxy): A company installs a proxy server to reduce external
traffic and speed up access for employees.
ISP Proxy: Internet Service Providers (ISPs) use proxy servers to reduce bandwidth
usage by caching common requests from multiple customers.
Cache Update Strategies
A critical challenge in web caching is deciding how long a cached response should be
stored before being updated or deleted. Different strategies help manage cache
freshness:
Predefined Expiry Rules:
Some websites update their content at fixed intervals (e.g., a news website
updates daily).
The proxy server can automatically refresh the cache based on this schedule.
Last-Modified Header:
The web server can include a Last-Modified header in responses.
The proxy server can check this timestamp to determine if an update is needed.
Cache-Control Headers:
The web server can explicitly define caching policies using headers like Cache-
Control: max-age=3600, which tells the proxy how long to keep the response.
HTTP Security & HTTPS
•By default, HTTP is not secure because:
•It does not encrypt data.
•It does not verify the identity of the server or client.
•Data can be intercepted or modified during transmission.
•To address this, HTTP can run over Secure Socket Layer (SSL), forming HTTPS (HyperText
Transfer Protocol Secure).
Features of HTTPS:
Confidentiality: Encrypts data to prevent eavesdropping.
Authentication: Uses SSL/TLS certificates to verify the identity of websites.
Data Integrity: Ensures that the data is not altered in transit.
This makes HTTPS essential for secure transactions, such as online banking, shopping,
and secure logins.
File Transfer Protocol (FTP)
FTP (File Transfer Protocol) is a standard protocol in the TCP/IP suite
that allows users to transfer files between two computers over a
network. While transferring files might seem simple, FTP solves
several challenges, such as:
•Different file naming conventions across systems.
•Different ways of representing data (e.g., text vs. binary).
•Different directory structures on different operating systems.
Although files can be transferred using HTTP, FTP is better suited for:
•Large file transfers
•Transferring files in different formats.
FTP Architecture
FTP follows a client-server model with the following components:
Client-Side Components:
1. User Interface – Allows users to interact with the FTP service.
2. Client Control Process – Manages communication with the server.
3. Client Data Transfer Process – Handles actual file transfers.
Server-Side Components:
4. Server Control Process – Listens for and processes client commands.
5. Server Data Transfer Process – Manages the transfer of files.
FTP uses two separate connections:
Control Connection: Manages commands and responses.
Data Connection: Handles actual file transfer.
This separation makes FTP efficient, as commands and data transfer are handled
independently.
Control Connection & FTP Commands:
1. FTP commands are sent from the client control process to the server control process in
uppercase ASCII text. Some commands require arguments, while others do not.
2. Stays open throughout the FTP session.
3. Uses port 21 for communication.
FTP Server Responses
•Every FTP command receives a server response, consisting of:
•A three-digit status code (indicating success, failure, or progress). The first digit defines
the status of the command. The second digit defines the area in which the status applies.
The third digit provides additional information.
•A textual message explaining the response.
Data Connection in FTP
The data connection in FTP is essential for transferring files between a client and a server. It
operates on port 20 on the server side and is established differently than the control
connection.
Steps to Create a Data Connection:
Client Initiates Passive Open:
The client opens an ephemeral (temporary) port for data transfer. This is necessary
because the client controls the commands for file transfers.
Sending Port Number to Server:
The client sends the port number it opened to the server using the PORT command.
This informs the server where to connect for data transfer.
Server Issues Active Open:
Upon receiving the port number, the server uses its well-known port 20 to establish a
data connection to the ephemeral port specified by the client.
Communication Over the Data Connection
The data connection is focused on transferring files and involves preparing for transmission
through commands sent over the control connection. Three main attributes must be
defined to handle the data transfer properly:
File Type
Data Structure
Transmission Mode
1. Data Structure
FTP can transfer files using different interpretations of data structure:
File Structure (default):
The data is treated as a continuous stream of bytes with no defined structure.
Record Structure:
The file is divided into records (usually applicable for text files). This allows for
structured access to the data.
Page Structure:
The file is divided into pages, each with a page number and header, allowing for both
random and sequential access to the data.
2. File Type
FTP supports several types of files for transfer, including:
ASCII File:
Standard text file; uses ASCII encoding for character representation.
EBCDIC File:
Text file using the EBCDIC encoding, primarily used on IBM mainframes.
Image File:
Binary file used for graphics or images.
The type of file being transferred determines how the data is interpreted during
transmission.
3. Transmission Mode
FTP allows for three different transmission modes:
Stream Mode (default):
Data is sent as a continuous stream of bytes, which is efficient for most transfers.
Block Mode:
Data is sent in blocks, where each block has a 3-byte header (describing the block
and its size). This mode is useful for applications requiring structured data.
Compressed Mode:
Data is sent in a compressed format to save bandwidth; this mode reduces the size
of the transmitted files.
File Transfer Operations
File transfer in FTP is controlled through commands sent over the control connection.
There are three primary operations defined for file transfer:
Retrieving a File:
Transferring a file from the server to the client. This operation typically involves
the RETR command.
Storing a File:
Transferring a file from the client to the server, usually performed using the STOR
command.
Directory Listing:
Requesting a list of files in a directory on the server, which is facilitated by the LIST
command.
Securing FTP with SSL (SSL-FTP)
To improve security, Secure Socket Layer (SSL) can be added between the FTP
application layer and the TCP layer. This enhanced version of FTP is called SSL-
FTP (or FTPS).
How SSL-FTP Works
Encryption of Credentials
SSL encrypts login credentials, preventing attackers from capturing plaintext
passwords.
Encrypted Data Transfer
All file transfers are encrypted, ensuring that sensitive data is not exposed to
unauthorized users.
Authentication with Digital Certificates
SSL-FTP supports server and client authentication using digital certificates,
ensuring that both parties in the communication are legitimate.
Data Integrity
SSL includes mechanisms to detect tampering during transmission, ensuring
that the files sent are received in their original form.
TELNET
TELNET (TErminaL NETwork) was one of the first protocols designed for remote logging
over the internet. However, it has security vulnerabilities that have led to its decline in favor
of SSH (Secure Shell).
Remote logging allows users to access and control a computer over a network. Instead of
running applications on a local machine, a user can log into a remote system and execute
commands as if they were physically present at that machine.
Instead of creating separate client-server programs for every application, remote logging
lets users connect to a remote system and use its applications.
Example: A student can use a Java compiler installed on a university server without needing
a separate Java compiler client.
TELNET Works
User Authentication
The user logs into a remote system using a username and password.
These credentials are sent in plaintext (unencrypted), making TELNET insecure.
Keystroke Transmission
The user's keystrokes are sent to the remote system without local interpretation.
TELNET converts them into Network Virtual Terminal (NVT) characters and sends them
over the network.
Remote Execution
The remote system interprets the commands and executes them as if they were typed
directly on its own terminal.
The output is sent back to the user's screen.
Security Issues in TELNET
Plaintext Communication: Everything, including passwords, is sent unencrypted, making
it vulnerable to hackers.
Eavesdropping: Attackers can use network sniffers to capture login credentials and
commands.
Man-in-the-Middle Attacks: Since there is no encryption, hackers can alter the
communication.
Network Virtual Terminal (NVT) in TELNET
Since different operating systems use different control characters, TELNET introduces a
universal format called Network Virtual Terminal (NVT):
NVT ASCII:
Uses a standard 8-bit character encoding (7-bit ASCII + an extra bit set to 0).
Ensures compatibility across different systems.
Control Characters:
Special commands (like "End of File" or "New Line") use an 8-bit encoding where
the highest-order bit is set to 1.
Different operating systems use different key combinations for commands:
Windows/DOS: Ctrl+Z for End-of-File.
UNIX/Linux: Ctrl+D for End-of-File.
Without NVT, remote access would be difficult because clients and servers would need to
pre-configure command translations.
TELNET Options
TELNET supports optional features through negotiation between the client and server.
Some users have advanced terminals with additional capabilities, while others use
simpler terminals. TELNET allows the client and server to agree on features dynamically.
Examples of TELNET Options
Echo Option:
Determines whether characters typed by the user should be displayed locally or
sent to the server first.
Window Size Negotiation:
Allows the client and server to adjust the screen size for compatibility.
Encryption Option (Rarely Used in Classic TELNET):
Some implementations allow encryption, but it was never widely adopted, leading
to SSH replacing TELNET.
TELNET vs. SSH
Feature TELNET SSH
✅ Uses strong encryption
Encryption ❌ No encryption (plaintext).
(AES, RSA, etc.).
❌ Vulnerable to ✅ Secure communication with
Security
eavesdropping and attacks. authentication.
Port Used 23 (TCP) 22 (TCP)
Used only for debugging and Widely used for secure
Usage Today
legacy systems. remote access.
Electronic mail
•One-Way Transaction: When Alice sends an e-mail to Bob, it is a one-way transaction.
Bob may or may not respond, but if he does, it's another separate one-way
transaction. There's no immediate request and response as seen in applications like
HTTP or FTP.
•Client/Server Programming: In applications like HTTP or FTP, the server program is
always running, waiting for a request from a client. When the request arrives, the
server provides the service. However, this approach doesn't work well for e-mail
because:
•E-mail is not an immediate request-response transaction.
•The recipient (Bob) might not have their computer on all the time to run a server
program.
•Intermediate Servers: To address this, e-mail uses intermediate computers (servers)
to implement the client/server model. Users run client programs only when they want
to send or receive e-mails. The intermediate servers handle the client/server
interactions, allowing users to send and receive e-mails without needing their
computers to be always on.
ARCHITECTURE OF E-MAIL
1) Basic Scenario: In a typical e-mail setup, both the sender (Alice) and the
receiver (Bob) are connected to their respective mail servers through a Local
Area Network (LAN) or a Wide Area Network (WAN). Each user has a mailbox
on their mail server where received messages are stored. This mailbox is a
special file with restricted access, meaning only the owner can access it.
2) Queue (Spool): The mail server also has a queue (spool) to store messages
waiting to be sent. This ensures that messages are managed efficiently before
being transferred.
3) Three Agents: The e-mail process involves three different agents:
•User Agent (UA): Alice uses a UA program to compose and send her message to
her mail server.
•Mail Transfer Agent (MTA): The MTA handles sending the message through the
Internet from Alice’s mail server to Bob’s mail server. Two MTAs are involved
here: one acts as the client and the other as the server. The server runs all the
time to be ready for incoming connections, while the client is triggered when
there is a message to be sent.
•Message Access Agent (MAA): Once Bob’s mail server receives the message,
Bob uses an MAA client to retrieve it from the MAA server running on his mail
server. The UA at Bob's site allows him to read the received message.
4) Constraints and Requirements:
•Running the MTA Server: Bob cannot bypass the mail server and directly use
the MTA server because he would need to run the MTA server all the time. This
is not feasible as it would require his computer to be always on or his WAN
connection to be continuously active.
•Push and Pull Programs: The MTA client-server program operates as a push
program, meaning it pushes the message to the server. However, Bob needs a
pull program to retrieve the message from the server. This is where the MAA
comes into play.
User Agent (UA)
•Purpose: The User Agent (UA) is a software program that helps users send and
receive messages. It handles composing, reading, replying to, and forwarding
messages, as well as managing local mailboxes.
•Types: There are two types of UAs:
•Command-Driven: These are older types of UAs that use one-character
commands from the keyboard to perform tasks. Examples include mail, pine,
and elm.
•GUI-Based: Modern UAs with graphical user interfaces (GUIs) that allow
interaction through icons, menu bars, and windows. Examples include
Eudora and Outlook.
Sending Mail
Process: When sending mail, the user creates a message that includes an
envelope and the actual message:
Envelope: Contains the sender and receiver addresses and other
information.
Message: Includes a header (with sender, receiver, subject, etc.) and a body
(the actual content of the message).
Receiving Mail
Notification: The UA notifies the user when there is new mail.
Displaying Mail: The UA shows a list of messages in the mailbox, each with a
summary (sender address, subject, time sent/received). The user can select and
view any message.
Addresses
Structure: E-mail addresses consist of two parts, separated by an @ sign:
Local Part: The name of the user’s mailbox where received mail is stored.
Domain Name: The name of the mail server (e.g., the organization’s
domain). Mail servers can be designated as mail exchangers.
Mailing List
Definition: A mailing list is an alias representing multiple e-mail addresses.
When a message is sent to the alias, it is forwarded to all addresses on the list.
Message Transfer Agent: SMTP
Three Client-Server Paradigms in E-Mail
Message Transfer Agents (MTAs):
First Use: Between the sender (Alice) and her mail server.
Second Use: Between Alice's mail server and Bob's mail server.
Both of these transfers are handled by the Simple Mail Transfer Protocol
(SMTP), which defines how commands and responses are exchanged
between the MTA client and server.
Message Access Agent (MAA):
Third Use: Between Bob's mail server and Bob's mail client. This requires a
different protocol to retrieve the message from the server to the client.
SMTP: Commands and Responses
SMTP (Simple Mail Transfer Protocol) is the protocol used to transfer messages.
It handles the interaction between the MTA client and the MTA server.
Commands: Sent from the MTA client to the MTA server.
Responses: Sent from the MTA server to the MTA client, typically in a three-digit
code format, sometimes followed by additional information.
Each command and response are terminated by a two-character end-of-line
token (carriage return and line feed).
Mail Transfer Phases
The process of transferring an e-mail message occurs in three main phases:
Connection Establishment:
The client makes a TCP connection to port 25, and the SMTP server responds.
Steps:
• Server sends code 220 (service ready) or code 421 (service not available).
• Client sends the HELO message with its domain name.
• Server responds with code 250 (request command completed) or another
appropriate code.
Message Transfer:
Once the connection is established, a message can be exchanged between the
sender and the recipient(s).
Steps:
• Client sends the MAIL FROM message with the sender's address.
• Server responds with code 250 or another appropriate code.
• Client sends the RCPT TO message with the recipient's address.
• Server responds with code 250 or another appropriate code.
• Client sends the DATA message to initiate message transfer.
• Server responds with code 354 (start mail input) or another appropriate
message.
• Client sends the message content line by line, each terminated by the end-of-
line token. The message ends with a line containing just a period.
• Server responds with code 250 (OK) or another appropriate code.
Connection Termination:
After the message is successfully transferred, the client ends the connection.
Steps:
• Client sends the QUIT command.
• Server responds with code 221 or another appropriate code
DNS Messages
DNS messages are used for querying and responding to requests.
DNS Encapsulation (UDP & TCP)
DNS can use UDP or TCP for communication, both on port 53.
When UDP is Used
•Most standard DNS queries use UDP.
•If the response is ≤ 512 bytes, UDP is preferred for speed.
When TCP is Used
•If a response is larger than 512 bytes, TCP is used.
•If a zone transfer (full DNS database update) is needed, TCP is required.
•If a response is truncated (TCP bit set), the resolver retries using TCP.