Selepas medan penyegerakan yang diterangkan di atas, semua paket dibuat daripada bait 8-bit, dihantar bit paling tidak ketara terlebih dahulu. Bait pertama ialah bait pengecam paket (PID). PID sebenarnya 4 bit; bait terdiri daripada PID 4-bit diikuti dengan pelengkap bitwise. Lebihan ini membantu mengesan ralat. (Perhatikan juga bahawa bait PID mengandungi paling banyak empat 1 bit berturut-turut, dan oleh itu tidak akan memerlukan pemadat bit, walaupun digabungkan dengan 1 bit terakhir dalam bait penyegerakan. Walau bagaimanapun, bait PID OUT berakhir dengan tiga 1 bit berturut-turut, jadi jika alamat peranti USB berikut bermula dengan tiga 1 bit, pemadat bit akan diperlukan.)
Paket datang dalam tiga jenis asas, masing-masing dengan format yang berbeza dan CRC (semakan redundansi kitaran):
Paket jabat tangan hanya terdiri daripada bait PID, dan biasanya dihantar sebagai tindak balas kepada paket data. Tiga jenis asas ialah ACK, menunjukkan bahawa data telah berjaya diterima, NAK, menunjukkan bahawa data tidak boleh diterima pada masa ini dan harus dicuba semula, dan STALL, menunjukkan bahawa peranti mempunyai ralat dan tidak akan dapat berjaya memindahkan data sehingga beberapa tindakan pembetulan (seperti permulaan peranti) dilakukan.
USB 2.0 menambah dua paket jabat tangan tambahan, NYET yang menunjukkan bahawa urus niaga berpecah belum selesai, dan jabat tangan ERR untuk menunjukkan bahawa transaksi berpecah gagal.
Satu-satunya paket jabat tangan yang boleh dijana oleh hos USB ialah ACK; jika ia tidak bersedia untuk menerima data, ia tidak sepatutnya mengarahkan peranti untuk menghantar apa-apa.
Paket token terdiri daripada bait PID diikuti dengan 11 bit alamat dan CRC 5-bit. Token hanya dihantar oleh hos, bukan peranti.--
Token IN dan OUT mengandungi nombor peranti 7-bit dan nombor fungsi 4-bit (untuk peranti pelbagai fungsi) dan mengarahkan peranti menghantar paket DATAx, atau menerima paket DATAx berikut, masing-masing.
Token IN menjangkakan respons daripada peranti. Tanggapan mungkin respons NAK atau STALL, atau bingkai DATAx. Dalam kes kedua, hos mengeluarkan jabat tangan ACK jika sesuai.
Token OUT diikuti dengan serta-merta oleh bingkai DATAx. Peranti bertindak balas dengan ACK, NAK atau STALL, mengikut kesesuaian.
SETUP beroperasi seperti token OUT, tetapi digunakan untuk persediaan peranti awal.
Setiap milisaat (12000 kali bit berkelajuan penuh), hos USB menghantar token SOF (permulaan bingkai) khas, yang mengandungi nombor bingkai yang meningkat 11-bit sebagai ganti alamat peranti. Ini digunakan untuk menyegerakkan aliran data isokron. Peranti USB 2.0 berkelajuan tinggi menerima 7 token SOF pendua tambahan setiap bingkai, setiap satu memperkenalkan "bingkai mikro" 125 µs.
USB 2.0 menambahkan token PING, yang menanyakan peranti sama ada peranti itu bersedia untuk menerima pasangan paket OUT/DATA. Peranti bertindak balas dengan ACK, NAK atau STALL, mengikut kesesuaian. Ini mengelakkan keperluan untuk menghantar paket DATA jika peranti tahu bahawa ia hanya akan bertindak balas dengan NAK.
USB 2.0 juga menambah token SPLIT yang lebih besar dengan nombor hab 7-bit, 12 bit bendera kawalan dan CRC 5-bit. Ini digunakan untuk melakukan transaksi berpecah. Daripada mengikat bas USB berkelajuan tinggi yang menghantar data ke peranti USB yang lebih perlahan, hab berkeupayaan berkelajuan tinggi terdekat menerima token SPLIT diikuti dengan satu atau dua paket USB pada kelajuan tinggi, melakukan pemindahan data pada kelajuan penuh atau rendah dan memberikan respons pada kelajuan tinggi apabila digesa oleh token SPLIT kedua. Butirannya rumit; lihat spesifikasi USB.
Paket data
Terdapat dua paket data asas, DATA0 dan DATA1. Kedua-duanya terdiri daripada medan DATAx PID, 0–1023 bait muatan data (sehingga 1024 dalam kelajuan tinggi, paling banyak 8 pada kelajuan rendah) dan CRC 16-bit. Ia mesti sentiasa didahului oleh token alamat dan biasanya diikuti dengan token jabat tangan dari penerima kembali ke pemancar. Kedua-dua jenis paket-bit. Hos USB tidak menerima respons (seperti ACK) untuk data yang telah dihantar, ia tidak tahu sama ada data itu telah diterima atau tidak; atau mungkin telah diterima tetapi respons jabat tangan telah hilang.
Untuk menyelesaikan masalah ini, peranti menjejaki jenis paket DATAx yang terakhir diterimanya. Jika ia menerima paket DATAx lain daripada jenis yang sama, ia diakui tetapi diabaikan sebagai pendua. Hanya paket DATAx daripada jenis yang bertentangan sebenarnya diterima.
Apabila peranti ditetapkan semula dengan paket SETUP, ia menjangkakan paket DATA0 seterusnya.
USB 2.0 menambah jenis paket DATA2 dan MDATA juga. Ia hanya digunakan oleh peranti berkelajuan tinggi yang melakukan pemindahan isokron lebar jalur tinggi yang perlu memindahkan lebih daripada 1024 bait setiap 125 µs "mikroframe" (8192 kB/s).
PRE "paket"
Peranti berkelajuan rendah disokong dengan nilai PID khas, PRE. Ini menandakan permulaan paket berkelajuan rendah, dan digunakan oleh hab yang biasanya tidak menghantar paket berkelajuan penuh ke peranti berkelajuan rendah. Oleh kerana semua bait PID termasuk empat 0 bit, ia meninggalkan bas dalam keadaan K berkelajuan penuh, yang sama dengan keadaan J berkelajuan rendah. Ia diikuti dengan jeda singkat semasa hab mendayakan output berkelajuan rendahnya, sudah melahu dalam keadaan J, kemudian paket berkelajuan rendah menyusul, bermula dengan urutan penyegerakan dan bait PID, dan berakhir dengan tempoh singkat SE0. Peranti berkelajuan penuh selain hab hanya boleh mengabaikan paket PRE dan kandungan berkelajuan rendahnya, sehingga SE0 akhir menunjukkan bahawa paket baharu menyusul.