A capture can contain many conversations at once. To follow one exchange, identify its two endpoints and read data in each direction rather than treating every visible row as part of the same conversation.
Wireshark is a desktop program for examining network captures. A stream is the data associated with one conversation; following a TCP stream reconstructs its application bytes from the saved records. A display filter selects which recorded packets you see, while a capture filter selects during recording.
The printed stream transcript is the required activity evidence. Installing Wireshark or opening a supplied file is optional; neither requires starting a capture. An earlier file read from 2026-10-12 is recorded separately from graphical Wireshark use.
Before you begin
- Recommended first
- Files, programs, and processes, Processes, Packages with apt, What a packet capture is
- Estimated time
- 15 min reading, 15 min activity. Setup and optional practice may take longer.
- Where you work
- Use the supplied original network cards, packet tables and stream transcripts in any browser, including on a phone. You need no account, paid lab or live network access. Reading a saved file in Wireshark is optional; installation time is separate from the estimate. Optional challenges take about ten extra minutes.
- Without a lab
- The page prints every address, row and message needed for its activity. Follow the numbered steps in notes and label your conclusions as predictions or interpretations of supplied evidence. The pcapng files are synthetic, constructed examples; opening one is different from recording a network. Reading works without JavaScript. Answer checking needs JavaScript and a secure context, such as HTTPS. Saving correct progress also needs usable browser storage.
After this lesson you can:
- Follow endpoint direction in a supplied stream transcript.
- Trace a visible subset under a display filter and after clearing it.
- Distinguish viewing, recording selection and rewriting evidence.
01Example
The worked synthetic conversation is in streams-demo.pcapng. The transcript gives both endpoint addresses and ports, then their application words. Each serialized word has a trailing newline. This is the supplied text representation, not a screenshot of Follow TCP Stream.
Worked endpoints
desk: 192.168.50.10 port 49152
shelf: 192.168.50.23 port 9090
Setup: SYN, SYN-ACK, ACK
Application text, by direction:
desk -> shelf: list
shelf -> desk: listed
The response word is listed; each payload also ends with a newline.02Open a file, then hide rows
If Wireshark is already available, use File, then Open to select a supplied saved pcapng. Opening an existing file is different from selecting a live interface and recording traffic. No capture privilege or shared-network access is needed for this reading task. If installation is unavailable, continue with the complete transcript.
The display-filter toolbar controls the visible subset. Typing tcp and applying it selects TCP packets. Clearing the filter restores the broader view. This is a viewing operation: the underlying saved records remain available. In these supplied TCP-only files, tcp may leave every row visible, so that unchanged row count is expected.
For a fresh paper filter example, imagine three saved rows: P1 TCP, P2 UDP, P3 TCP. Applying tcp shows P1 and P3. Clearing it shows all three again. Track the visible row list separately from the unchanged three-row saved record.
A capture filter instead selects traffic while recording. The Open dialog can also offer a read filter, which limits loaded records. Saving or exporting a subset is another distinct operation. Do not use any of those as substitutes for the display-filter action named in the question.
To follow a conversation in Wireshark, select one of its TCP packets, then choose Analyze, Follow, TCP Stream. Wireshark applies a display filter for that stream and opens a data dialog. Back can restore the earlier filter. Use endpoint and direction labels rather than relying on display colors, which can vary.
Following traffic does not automatically decrypt encrypted content. TLS, Transport Layer Security, is commonly used to encrypt application traffic. These files contain plain original payloads, with no TLS traffic or decryption keys. A menu capable of following TLS does not establish that application text is readable without the needed keys.
A paper display filter changes the visible subset; saved P1/P2/P3 remain unchanged and reappear when it is cleared.Model. A teaching model drawn by hand. It shows the idea, not real tool output.
Read the full explanation below.
Show every row in this paper saved-record model.
Immutable supplied teaching corpus
| Paper row | Protocol |
|---|---|
| P1 | TCP |
| P2 | UDP |
| P3 | TCP |
Result
P1 TCP
P2 UDP
P3 TCPPaper saved rows and visible rows initially contain P1, P2 and P3.
Follow the explanation
- Paper saved rows and visible rows initially contain P1, P2 and P3.
- Apply tcp: visible rows become P1 and P3; P2 remains in the saved source.
- Clear the display filter to show all three saved rows again.
Read every state and value
1. Paper saved rows and visible rows initially contain P1, P2 and P3.
- View
- all
- Rows shown
- P1 · TCP · P2 · UDP · P3 · TCP
- Highlighted Cell Refs
- None
- Result rows
- Source Row: P1 · TCP; Cells: P1 · TCP · Source Row: P2 · UDP; Cells: P2 · UDP · Source Row: P3 · TCP; Cells: P3 · TCP
2. Apply tcp: visible rows become P1 and P3; P2 remains in the saved source.
- View
- tcp
- Rows shown
- P1 · TCP · P3 · TCP
- Highlighted Cell Refs
- Row: P1 · TCP; Column: Protocol · Row: P3 · TCP; Column: Protocol
- Result rows
- Source Row: P1 · TCP; Cells: P1 · TCP · Source Row: P3 · TCP; Cells: P3 · TCP
3. Clear the display filter to show all three saved rows again.
- View
- all
- Rows shown
- P1 · TCP · P2 · UDP · P3 · TCP
- Highlighted Cell Refs
- Row: P2 · UDP; Column: Protocol
- Result rows
- Source Row: P1 · TCP; Cells: P1 · TCP · Source Row: P2 · UDP; Cells: P2 · UDP · Source Row: P3 · TCP; Cells: P3 · TCP
03Read the activity conversation
The activity uses streams-field.pcapng with client port 49160 and listener port 9092. That is a different conversation from the worked file. Identify both endpoints first, then follow the shelf-to-desk direction and predict the response word.
Compare with the transcript's printed check after making your prediction. The retained 2026-10-12 TShark record reports ask plus newline and noted plus newline in that activity file. This historical file read is separate from using a display filter or Follow dialog. You can complete the direction and word reasoning entirely from text.
Follow one conversation by endpoint and direction
A stream groups data in one conversation. Read the addresses and ports
before finding the response word. The two files below are different
conversations, each with a client request and a server response.
The text describes synthetic payloads, not a Follow TCP Stream dialog.
Historical file-read record, 2026-10-12: TShark 4.2.2 read list plus
newline and listed plus newline in streams-demo.pcapng, and ask plus
newline and noted plus newline in streams-field.pcapng. The files are
still synthetic; this is not a live capture or a new execution record.
Fresh paper filter example, separate from those TCP-only files:
Saved rows: P1 TCP, P2 UDP, P3 TCP.
Display filter tcp shows P1 and P3. Clear shows all three again.
The visible subset changed while the saved three-row record stayed.
Synthetic stream transcripts. Not a Follow TCP Stream dialog. The rows describe constructed payloads; the historical read is labeled above.
Each pcapng is separate.
Worked file streams-demo.pcapng
Peers: desk 192.168.50.10 port 49152, shelf 192.168.50.23 port 9090
Setup: SYN, SYN-ACK, ACK
desk to shelf: list
shelf to desk: listed
Predict before reading the check. Check word: listed
Activity file streams-field.pcapng
Peers: desk 192.168.50.10 port 49160, shelf 192.168.50.23 port 9092
Setup: SYN, SYN-ACK, ACK
desk to shelf: ask
shelf to desk: noted
Predict before reading the check. Check word: noted
The serialized payload includes one newline after each word. The check word is the letters.
- From the worked file, name the shelf-to-desk word. Check word: listed.
- From the activity file, name the peers, the ports, and the shelf-to-desk word.
- Check word: noted. The serialized payload includes one newline after the word. The check word is the letters.
- Stop. Do not start a capture. The question link is the activity file. The transcript is the complete fallback. streams-field.pcapng is the activity file, and the transcript prints it in full. streams-demo.pcapng is the separate worked conversation.
04Optional challenge
Allow about ten extra minutes. Before applying a filter, count conversations in the two supplied transcript sections. Each file describes one. Explain why filtering rows within one file differs from choosing between the two files, and why a visible subset alone cannot count unseen conversations.
05Fresh cases for the checks
Use these fictional cases for the checks below. They have different inputs from the worked examples. Read them here or make notes; no installation or external service is needed.
Filter case A: independent saved rowsOwned fixture. An original file made for this course. Follow the activity's instructions in your own lab.
Saved records: K1 UDP; K2 TCP; K3 UDP; K4 TCP.
Action: apply the display filter tcp, then clear it. No capture/read filter, save or subset export occurs.
Stream case B: independent supplied transcriptOwned fixture. An original file made for this course. Follow the activity's instructions in your own lab.
Client iris: 192.0.2.71 port 53214.
Server violet: 192.0.2.72 port 9046.
iris → violet: fetch
violet → iris: delivered
Each word has one trailing LF. This is a supplied text model.
06Explain your prediction
Optional written self-check: Keep viewing, capture selection and export separate. Identify the two endpoints and response direction using labels, and do not claim encrypted content is readable without the required evidence.
07Common mistakes
If no row disappears after applying tcp, inspect the supplied protocols. A TCP-only file already satisfies that filter; clearing it can therefore leave the same count.
If the filter is rejected, check that you are using the display toolbar and its language. The simple display example is lowercase tcp. Do not start a capture to repair a viewing expression.
If the activity response appears to be listed, reread the file heading and endpoint ports. listed belongs to the worked stream; the activity uses the separate streams-field transcript.
References
- Wireshark User's Guide 5.2: Open Capture Files
File, then Open, reads a saved file. pcapng is native and has been the default since Wireshark 1.8. A read filter uses display-filter syntax and can exclude traffic while opening.
- Wireshark User's Guide 6.3: Filtering Packets While Viewing
A display filter hides packets. The guide says all packets remain in the capture file and the filter does not change the file content. Clear shows the packets again. The example filter is tcp. This lesson does not walk section 4.10 line by line.
- Wireshark User's Guide 7.2: Following Protocol Streams
Select a packet, then Analyze, then Follow. Wireshark applies a display filter and opens a dialog. Back restores the previous display filter. The transcripts in this lesson are not that dialog.