Networking/Computing Tips/Tricks

Rate this content:
5 of 5 - 3 votes
Thank you for rating this article.

QUIC banner2As 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.

Note: Google originally called this protocol "QUIC" as you can tell by the original logo, but now that original version is referred to as GQUIC, whereas the IETF has chosen to call the newer version they are working on as "QUIC" - confusing - yes - so when I saw QUIC here I am referring to Googles original QUIC protocol.

Check out these great references as well: 

 Our custom profiles repository for Wireshark
 Our Udemy course on Wireshark 
 Our Udemy course on Wireless Packet capture

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:

  1. Start Wireshark on your working Internet interface, making sure the QUIC profile is selected
  2. Open Chrome, and then going to Google's home page (www.google.com), and then click on the "I'm Feeling Lucky" button. 
  3. 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 (note here – I took the screenshots below before the protocol name changed to GQUIC – so while I updated my profile at the repository, I do not show the updates below – but it is easy to resolve – anywhere it says “quic” – simply change in your mind or on your latest version of Wireshark to “gquic” and you are good):

QUIC4

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:

QUIC7

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:

QUIC5 

These packets have some clear text that we can examine.

Expand the packet QUIC contents:

QUIC6

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/gQUIC version information.

I hope this helps the reader get started using Wireshark and QUIC/gQUIC.

Comments?  Questions?

I hope you find this article and its content helpful. If you would like to see more articles like this, please support us by clicking the patron link where you will receive free bonus access to courses and more, or simply buying us a cup of coffee!, and all comments are welcome!

Add comment

Submit

Did you learn something?
Did I save you time? 

Buy me a coffeeBuy me a coffee!

Find by Tag

5G Networks 6LoWLAN 6LoWPAN 802.11 802.11ah 802.11ax 802.11ay 802.11az ACL Addressing Analysis Ansible Architecture ARP Assessment AToM Backup Bandwidth BGP Biography Bloom's Taxonomy Briefings CBRS CellStream Cellular Central Office Cheat Sheet Chrome Cisco Clock Cloud Computer Consulting CPI Data Center Data Networking Decryption DHCPv4 DHCPv6 Display Filter DNS Documentation ECMP EIGRP Ethernet Ethics Flipping the Certification Model Follow Me Fragmentation Git GNS3 Google GQUIC Hands-On History Home Network HTTPS ICMP ICMPv6 IEEE 802.11p IEEE 802.15.4 In A Day Internet IOS Classic IoT IPv4 IPv6 L2 Switch L2VPN L3VPN LDP Learning Services Linux LLN Logging LoL M-BGP MAC MAC OSx Macro Microsoft mininet Monitoring Monitor Mode MPLS Multicast Name Resolution Netflow NetMon netsh Networking Network Science nmap Npcap nslookup Online Learning Online School OpenFlow OSPF OSPFv2 OSPFv3 OSX Parrot PIM Ping Policy POTS POTS to Pipes PPP Profile Profiles Programming Project Management Python QoS QUIC Requirements RIP Routing RPL RSVP Rural SAS SDN Security Self Certification Service Provider Services Sharepoint Small Business Smartport SONET Speed SSH SSL Subnetting T-Shark TCP TCP/IP Telco Telecom 101 Telecommunications Telephone Telnet Terminal TLS Tools Traceroute Traffic Analysis Traffic Engineering Training Travel Tunnel Utility Video Virtualbox Virtualization Voice VoIP VRF VXLAN Webex Wi-Fi Wi-Fi 4 Wi-Fi 5 Wi-Fi 6 Wi-Fi 6/6E Windows Wireless Wireless 5G Wireshark Wireshark Tip WLAN ZigBee Zoom

Twitter Feed