As explained in our prior article on QUIC, you may be seeing a lot of QUIC traffic in your packet captures. Assuming you have read that article, and understand that all QUIC traffic is encrypted, you know the only way to see some of the details is using Chrome itself. That does not mean that you can't use Wireshark as well.
First, we have created a QUIC profile for Wireshark. It is in our Profiles repository - you can find that repository here. You will need to download and install that profile in your Wireshark personal configuration.
As you dive deeper into QUIC, you may want to refer to the detailed RFC drafts. Surprisingly there are approximately 30 internet draft specifications dealine with QUIC. You can find those drafts here.
Next, you will want to perform a simple capture on your computer by:
- Start Wireshark on your working Internet interface, making sure the QUIC profile is selected
- Open Chrome, and then going to Google's home page (www.google.com), and then click on the "I'm Feeling Lucky" button.
- Stop the capture.
Using the profile, click on the Display Filter bookmark, and select the QUIC packets only filter:
You should now only see QUIC packets. Let's discuss some of the columns I created:
Knowing the source and destination ports in Layer 4 UDP is important so I have created UDP port columns. QUIC uses the Ephemeral Port range, and it can have ports translated in NPAT without issue. These ports are never the same, so you may find that firewall configuration may need to be flexible here.
Expand the QUIC header and you should see something like this:
QUIC uses connection identifiers to identify the various streams it is carrying. Therefore I have a column for that identifier. You can filter based on the connection identifiers. There are multiple ways to do this, but one simple way is to click on the column header to sort!
Also there is a packet number that I extract as a column from the QUIC header.
The next thing to look at is once again in the Display filter pick list, it is the filter for QUIC client hello packets. Select it and you should see something like this:
These packets have some clear text that we can examine.
Expand the packet QUIC contents:
These Hello's define the stream 'personality'. I align this to the TCP SYN and SYN-ACK options in my mind. What we see is the much more complex and capable stream personality. It is from this format that I have extracted things like the maximum number of streams column and the QUIC version information.
I hope this helps the reader get started using Wireshark and QUIC.