In regelmäßigen Abständen tauschen die zwei Teilnehmer eines PCIe-Links 6 Byte große Flow-Control-Pakete (FC) aus. Diese Pakete informieren über die Aufnahmefähigkeit des FC-Senders in Bezug auf weitere Datenpakete. Diese Information wird an die Transportschicht (Applikationslogik) des Empfängers weitergeleitet beziehungsweise von der Transportschicht des FC-Senders bezogen. Die Applikationslogik darf nur dann eine Datenübertragung initiieren, wenn der Link-Partner bereits eine ausreichende Aufnahmefähigkeit angezeigt hat, so genannte »Credits«.
Die Applikationslogik einer PCI-Express-Lösung wird in der Transportschicht untergebracht. Die Spezifikation definiert insgesamt zehn Übertragungsarten:
Die anfordernden Übertragungsarten werden wiederum in die zwei Gruppen »posted« (Speicher schreiben bzw. Messages) und »non-posted« (Speicher lesen, I/O-Zugriffe und Konfigurations-Zugriffe) geteilt. Die »Non-posted«-Zugriffe müssen vom Empfänger mit einem Quittierungspaket (Completion Packet) beantwortet werden, das je nach Anforderungstyp aus einem Header beziehungsweise Header plus Payload besteht. Nur »Posted«-Anforderungen sowie Quittierungspakete aufgrund von Speicher-Leseanforderungen können mehr als ein Doppelwort an Payload-Daten übertragen. Eine Übersicht über PCI-Express-Anforderungspakete und die dazugehörenden Quittierungspakete zeigt Tabelle 1.