Table of Contents
Project Overview
In this capstone project you will apply everything you learned about packets, protocols, and troubleshooting tools to capture and analyze real network traffic. The goal is not to become a professional analyst in one project, but to develop a practical, repeatable workflow that lets you understand what is happening on the wire and to recognize normal and abnormal behavior.
You will design a small scenario, capture packets that flow through it, then answer specific questions using a packet analysis tool. This project connects theory to reality, because you will see real frames, packets, and segments instead of only diagrams.
Objectives and Skills
By the end of this project you should be able to describe clearly what a capture shows, walk through a conversation packet by packet, and use evidence from the capture to support conclusions.
The project focuses on these skills:
Understanding what you are capturing. You will identify layers, protocols, and endpoints in real traffic and link them back to concepts from earlier chapters such as IP addressing, TCP and UDP, DNS, HTTP, and routing.
Working with capture tools. You will use a packet capture tool to start and stop captures, apply filters, follow streams, and inspect fields inside packets. You will not learn every feature, but you will become comfortable with a core workflow.
Building a structured analysis. You will move from raw packets to a clear explanation. That means forming questions, searching for relevant traffic, tracing flows, and drawing conclusions that are consistent with the evidence.
Recognizing normal patterns. Instead of hunting only for errors, you will first learn to recognize what “healthy” traffic looks like. You will observe typical DNS lookups, TCP handshakes, simple web browsing, and common timing patterns.
Spotting simple problems. Once you know what normal traffic looks like, you will examine patterns that suggest problems such as timeouts, unreachable hosts, or basic misconfigurations. You do not need to be an expert troubleshooter, but you will practice using packets as clues.
Required Tools and Setup
You can complete this project on a single computer with an internet connection. The most important tool is a packet analyzer that can display and decode captured traffic. A typical choice is Wireshark, but the general workflow would be similar with other tools.
For this project you need a system where you are allowed to capture traffic on at least one interface, such as your main network interface or a loopback interface. You should have a web browser and access to at least one external website, as well as the ability to run simple utilities like ping if your operating system provides them.
If you cannot capture real network traffic, for example due to policy restrictions on a shared network, you can still complete the logical part of the project with provided capture files. However, the full learning experience comes from capturing your own traffic so you see traffic patterns that match your own network.
Project Scenario and Scope
To keep the project practical and focused, you will work with a small, well defined scenario. The scope is intentionally narrow so you can go deep on a few flows instead of getting lost in a large capture.
A simple scenario that works well for this project is:
You are on a client device that browses to a specific website, for example a test page or a small personal site, and you want to see every network step involved in loading that page. You want to know which servers you talk to, what protocols you use, and how many round trips are needed. You also want to verify that DNS is working correctly and that HTTP or HTTPS sessions complete successfully.
As an optional extension, you can add one more task, such as downloading a small file, checking email, or making a DNS query to a particular server, and then compare the patterns you see.
The project does not require full enterprise visibility. You capture only from the client perspective and work with what you can see from that point of view.
Designing Your Capture Plan
Before you start a capture, it is important to decide what you want to observe and how you will avoid unnecessary noise. This planning step keeps the project manageable.
First, choose a concrete action to observe. For example, “open the browser, go to example.com, wait for the page to finish loading, then stop the capture.” A clear start and end point makes analysis much easier.
Second, decide which interface to capture on. You should choose the interface that carries the traffic from your device to the network, such as a wired Ethernet interface or a wireless interface. Avoid capturing on every interface at once unless you know why you need that.
Third, plan your background environment. Close applications that generate a lot of traffic that is not related to your scenario, such as heavy downloads or streaming. You do not need a perfectly silent network, but reducing noise helps.
Fourth, define the key questions you want the capture to answer. For example, you might want to know which IP addresses are involved, which ports are used, how many DNS queries occur, and how long it takes for the first HTTP response to arrive. Writing down a short list of questions will shape how you later search and filter the capture.
Finally, set rules for starting and stopping captures. Start the capture just before you perform the action, and stop it soon after the action completes. Long unattended captures quickly become huge and difficult to analyze.
Important rule: Always capture with a specific question and a clear time window in mind. Unfocused, very long captures make packet analysis much harder for beginners.
Capturing the Traffic
With a simple plan in place you can perform your capture. This step is about disciplined collection, not yet about interpretation.
Begin with your analyzer tool closed or idle. Ensure that your chosen test application, such as your browser, is not already open on the target page. Then open your analyzer, select the appropriate interface, and be ready to click “start capture.”
Start the capture, then immediately perform the action you planned, such as opening the browser and entering the chosen URL. Avoid performing unrelated tasks until the action finishes. Watch your browser or application until it reports that loading is complete or until you reach the state you decided on.
Once your action is complete, return to the analyzer and stop the capture. Save the capture file with a descriptive name that reflects the scenario, for example “web_example_site_load.pcap.” Check the file size to be sure it is reasonable. You should see a list of captured packets with timestamps close to each other and a manageable count.
If the capture is dominated by unrelated traffic, or if your action is not clearly represented in the time window, it is better to discard it and repeat with a cleaner setup. Building the habit of capturing only relevant data is part of the project’s learning outcome.
Building a Basic Analysis Workflow
After you have a capture, the main part of the project begins. You will work through a repeatable workflow that you can later apply to other scenarios.
Start with a high level overview rather than jumping into individual packets. Look at the packet list and note the first and last timestamps, the general duration, and the total number of packets. This gives you a sense of scale.
Then identify the most common protocols in the capture. Many tools show a brief summary of protocol distribution. You will likely see protocols such as DNS, TCP, UDP, HTTP, HTTPS, ARP, or others depending on your scenario. At this stage you are not yet investigating each protocol in detail, only identifying what is present.
Next, find your client’s IP address if you do not already know it. That allows you to focus on flows that involve your device. For example, you might apply a display filter such as “packets involving this IP” so that unrelated traffic is hidden temporarily. Do not worry if you still see some broadcast or multicast traffic, this is normal.
Now move from a broad view to specific flows. Look for a likely starting point, such as a DNS query for the domain you visited. From there, you can follow the responses, then the subsequent TCP or UDP sessions.
This workflow is designed to prevent you from getting overwhelmed. It begins with overall structure and then narrows down to details.
Important analysis habit: Always move from general to specific. First understand which protocols and conversations exist, then drill into individual packets and fields.
Interpreting a TCP Conversation
Many application protocols in your scenario will be carried over TCP. Part of this project is to practice reading a TCP conversation step by step and linking it to the application behavior you see.
Once you identify a TCP connection that belongs to your scenario, such as a connection between your client IP and the web server IP, use your analyzer’s function to follow that stream. This will present all packets for that conversation in order.
Start with the beginning of the stream. You should see the establishment of the connection with the handshake, then the flow of application data, then the termination. Without restating the theory, you should be able to map these phases to what you previously learned about the transport layer.
Pay attention to sequence numbers and acknowledgment numbers as they are displayed. Even if you do not analyze every number in detail, notice how they increase as data is sent and acknowledged. This will give you a practical sense of how reliability is implemented.
Observe timing between packets. Look for long gaps that might indicate waiting or delay. If your web page feels slow, see if the capture shows where the time is spent. Perhaps the delay occurs before the server’s first response, or between different resource requests.
Finally, note how the connection ends. Confirm that both sides participate in closing the session. An orderly teardown appears differently from a sudden reset, and this is part of recognizing normal versus abnormal behavior.
Examining Application-Level Traffic
With the TCP conversation identified, you can look at the application layer data that rides on top. The goal here is to connect what you did as a user with what appears in the protocol fields.
In the case of web browsing, you can inspect individual HTTP or HTTPS messages within the selected stream. For plain HTTP, you may be able to read request methods, URLs, status codes, and headers directly. For HTTPS, the content is encrypted, but you can still see the handshake messages, server names in some fields, and certain negotiation details.
Relate each request to a visible result. For example, an initial request to the main page is usually followed by further requests for images, stylesheets, and scripts. By counting these requests, you learn how a “simple” page actually generates many separate transactions.
If your scenario involves DNS, you can inspect DNS queries and responses to see which names are looked up, which servers respond, and how long the resolution takes. If your action involves another application protocol, you can look for its characteristic messages.
Your purpose is not to master every application protocol. The purpose is to learn how to recognize them, where they appear in a TCP or UDP flow, and how the packet analyzer lets you inspect their fields.
Timing, Latency, and Performance Clues
A key part of packet analysis is relating packet timing to user experience. In this project you will practice reading timestamps and simple delays.
Most analyzers show the time since the start of the capture or the time between packets. Use these fields to answer basic questions such as “how many milliseconds passed between this DNS query and the response” or “how long between the first SYN and the first application data segment.”
You do not need complex formulas, but you should be able to interpret simple differences. For example, if a DNS response takes 200 ms while others take 10 ms, that is a clue. If the server does not send any data for a noticeable time after accepting the connection, that might explain why the page appears slow.
You can also compare parallel flows. For instance, if some image files arrive very quickly while others are delayed, you can look for differences such as the destination servers or the paths the connections appear to take.
Important statement: Packet timing is one of the strongest clues you have about where delays occur. Always look at timestamps when you investigate performance.
Identifying Anomalies and Simple Issues
Once you understand the normal pattern in your capture, you can begin to search for anomalies, even if your network is not broken in an obvious way.
Look for repeated attempts. For example, several DNS queries for the same name without a response, or repeated connection attempts to the same server that never become full data exchanges. This may indicate that something is not reachable or is responding slowly.
Observe any error messages at the application level, such as HTTP status codes that indicate failure or redirection. Relate these to your user experience: did the browser show an error, a warning, or a redirect?
At the transport layer, look for resets or unusual termination patterns that differ from normal closures. Note which side triggers the reset. This can point to misconfiguration or to services that immediately refuse connections.
You are not expected to solve complex enterprise problems in this project. The goal is to learn to spot that “something is off” and to support that idea with concrete evidence from individual packets and sequences.
Documenting Your Findings
A central part of this capstone project is how you present your analysis. The raw packets are not useful unless you can convert them into a clear story.
Your project report should include at least the following kinds of information:
A description of your scenario. State what you did on the client, which site or service you accessed, and over what time period.
A brief summary of the capture. Include the number of packets, the main protocols seen, and the key IP addresses involved. A simple table can help make this clear.
For example:
| Item | Value |
|---|---|
| Capture duration | e.g. 12.3 seconds |
| Total packets | e.g. 450 |
| Client IP | e.g. 192.0.2.10 |
| Main server IP | e.g. 198.51.100.23 |
| Key protocols | e.g. DNS, TCP, HTTP, HTTPS, ARP |
A description of at least one complete flow. Pick a representative conversation such as the main web page load. Describe how it starts, how the application requests and responses proceed, and how it ends. Reference packet numbers or timestamps from your capture to support your description.
A timing section. Present a few timing measurements you extracted from the capture, such as how long the DNS resolution took, how long until the first byte of application data, and the total time until the page or action completed.
Anomalies and observations. List any behavior that looked unusual, even if it did not break the application, and what packets showed that behavior.
Clear, concise writing is more important than length. You do not have to cover every packet. Focus on the flows and pieces of evidence that best answer your initial questions.
Reflection and Next Steps
At the end of your project, you should take a moment to reflect on how your understanding of network theory changed when you saw real traffic. Concepts like layers, ports, and conversations are easier to grasp once you have traced them in an actual capture.
Consider what surprised you. Many learners are surprised by how many packets a single web page requires, or how often DNS queries occur, or how much encrypted traffic they see. Write down these observations as part of your reflection.
Also consider what parts of packet analysis felt difficult. Maybe it was finding the right filter, or keeping track of which direction traffic was flowing, or interpreting error messages. Those areas can guide your future practice.
Finally, think about how you might extend this project. You could capture traffic for different applications, compare captures from slow and fast connections, or study traffic before and after a configuration change. Each new capture you analyze will reinforce your skills and make you faster and more confident.
Key takeaway: Packet analysis converts abstract networking knowledge into concrete evidence. Learning to read captures is one of the most powerful ways to understand, troubleshoot, and improve networks.
By completing this packet analysis project, you establish a practical foundation that supports all other topics in this course, from basic connectivity to advanced design and troubleshooting.